/*
Theme Name: Behavioral Concepts
Theme URI: https://bc-aba.com
Author: Custom
Description: Custom Gutenberg theme for Behavioral Concepts ABA therapy
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: behavioral-concepts
*/

/* =========================================
   CSS VARIABLES
   ========================================= */
:root {
  --navy:       #3D3535;   /* dark warm brown — headings, body text */
  --teal:       #7BBFC0;   /* primary brand teal — topbar, search bar, footer, icons */
  --teal-dark:  #5AACAC;   /* darker teal — hover states */
  --cream:      #F5F0E8;   /* warm cream — page background */
  --cream-dark: #EDE7D9;   /* slightly darker cream — dividers */
  --white:      #FFFFFF;
  --green:      #7BBFC0;   /* remapped to teal — all former green accent uses */
  --text:       #3D3535;
  --font-head:  "diazo-mvb-ex-cond", sans-serif;
  --font-body:  "diazo-mvb-ex-cond", sans-serif;
  --radius:     4px;
  --transition: 0.25s ease;
}

/* =========================================
   RESET & BASE
   ========================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  background: var(--cream);
  color: var(--text);
  font-size: 16px;
  line-height: 1.6;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }

/* =========================================
   TYPOGRAPHY
   ========================================= */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-head);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--navy);
}

p { font-family: var(--font-body); }

/* =========================================
   TOP BAR
   ========================================= */
.bc-topbar {
  background: var(--teal);
  color: var(--navy);
  font-family: var(--font-head);
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 8px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.bc-topbar a { color: var(--navy); transition: opacity var(--transition); }
.bc-topbar a:hover { opacity: 0.7; }

.bc-topbar__marquee-wrap {
  flex: 1;
  overflow: hidden;
  text-align: center;
}

.bc-topbar__marquee {
  display: inline-block;
  white-space: nowrap;
  animation: marquee 22s linear infinite;
}
@keyframes marquee {
  0%   { transform: translateX(60px); }
  100% { transform: translateX(-100%); }
}

/* =========================================
   HEADER / NAV
   ========================================= */
.bc-header {
  background: var(--cream);
  padding: 16px 40px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  position: sticky;
  top: 0;
  z-index: 100;
}

.bc-header__logo img { height: 64px; width: auto; }

.bc-header__nav {
  display: flex;
  align-items: center;
  gap: 36px;
	flex-grow:1;
}

.bc-header__nav a {
  font-family: var(--font-head);
  font-size: 1.85rem;
	font-weight:700;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--navy);
  transition: color var(--transition);
  position: relative;
}
.bc-header__nav a::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 0;
  width: 0; height: 2px;
  background: var(--green);
  transition: width var(--transition);
}
.bc-header__nav a:hover { color: var(--green); }
.bc-header__nav a:hover::after { width: 100%; }

.bc-header__cta {
  font-family: var(--font-head);
  font-size: 1.2rem;
	font-weight:700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 10px 22px;
  border: 2px solid var(--navy);
  color: var(--navy);
  border-radius: var(--radius);
  transition: background var(--transition), color var(--transition);
}
.bc-header__cta:hover {
  background: var(--navy);
  color: var(--white);
}

/* Mobile hamburger */
.bc-header__toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
}
.bc-header__toggle span {
  display: block;
  width: 24px; height: 2px;
  background: var(--navy);
  transition: transform var(--transition), opacity var(--transition);
}

/* =========================================
   HERO
   ========================================= */
.bc-hero {
  background: var(--cream);
  padding: 60px 40px 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}

.bc-hero__image-wrap {
  position: relative;
  width: 340px;
  height: 340px;
}

.bc-hero__image-bg {
  width: 280px; height: 280px;
  border-radius: 50%;
  overflow: hidden;
  position: absolute;
  bottom: 0; left: 0;
  border: 4px solid var(--white);
  box-shadow: 0 8px 32px rgba(61,53,53,0.15);
}
.bc-hero__image-bg img { width: 100%; height: 100%; object-fit: cover; }

.bc-hero__image-front {
  width: 180px; height: 180px;
  border-radius: 50%;
  overflow: hidden;
  position: absolute;
  top: 0; right: 0;
  border: 4px solid var(--white);
  box-shadow: 0 8px 32px rgba(61,53,53,0.2);
  background: #F5A623;
}
.bc-hero__image-front img { width: 100%; height: 100%; object-fit: cover; }

.bc-hero__content { text-align: center; }

.bc-hero__sun {
  width: 120px;
  height: auto;
  margin: 0 auto 20px;
}

.bc-hero__headline {
  font-family: var(--font-head);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-weight: 800;
  color: #4D4B32;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.2;
  margin-bottom: 28px;
}

.bc-hero__headline span {
  background: none !important;
  color: inherit;
  padding: 0;
  display: inline;
}

.bc-hero__btn {
  display: inline-block;
  font-family: var(--font-head);
  font-size: 1.2rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 14px 36px;
  border: 2px solid var(--navy);
  color: var(--navy);
  border-radius: var(--radius);
  transition: all var(--transition);
	font-weight:700;
}
.bc-hero__btn:hover {
  background: var(--navy);
  color: var(--white);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(61,53,53,0.2);
}

/* =========================================
   PROCESS SECTION
   ========================================= */
.bc-process {
  background: var(--cream);
  padding: 70px 40px;
  text-align: center;
}

.bc-process__title {
  font-family: var(--font-head);
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  color: var(--navy);
  letter-spacing: 0.06em;
  margin-bottom: 60px;
}

/* No outer border — only internal column dividers */
.bc-process__steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 1100px;
  margin: 0 auto;
}

.bc-process__step {
  padding: 20px 40px 40px;
  border-right: 1px solid rgba(123,191,192,0.5);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
}
.bc-process__step:last-child { border-right: none; }

/* Title above icon, lighter weight */
.bc-process__step-title {
  font-family: var(--font-head);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0;
  color: var(--navy);
  text-align: center;
  text-transform: uppercase;
  opacity: 0.75;
  line-height: 1.5;
}

/* Teal square tile behind icon */
.bc-process__icon-tile {
  width: auto;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.bc-process__icon {
  width: auto;
  height: 100px;
  object-fit: contain;
  /* White icon on teal tile */
}

/* =========================================
   SEARCH BAR SECTION
   ========================================= */
.bc-search-bar {
  background: var(--teal);
  padding: 32px 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

.bc-search-bar__label {
  font-family: var(--font-head);
  font-size: 1.5rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--navy);
  white-space: nowrap;
}

.bc-search-bar__select-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.bc-search-bar__select {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: none;
  border-bottom: 2px solid var(--navy);
  color: var(--navy);
  font-family: var(--font-head);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 36px 4px 4px;
  cursor: pointer;
  outline: none;
  min-width: 340px;
  transition: border-color var(--transition);
}

.bc-search-bar__select option {
  background: var(--teal);
  color: var(--navy);
  font-size: 0.95rem;
}

.bc-search-bar__select:hover { border-color: rgba(61,53,53,0.5); }
.bc-search-bar__select:focus { border-color: var(--navy); }

.bc-search-bar__chevron {
  position: absolute;
  right: 4px;
  pointer-events: none;
  color: var(--navy);
  font-size: 1rem;
}

/* =========================================
   INSURANCE SECTION
   ========================================= */
.bc-insurance {
  background: var(--cream);
  padding: 80px 40px;
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}

.bc-insurance__text-col { max-width: 640px; }

.bc-insurance__title {
  font-size: clamp(1.5rem, 2.5vw, 2.1rem);
  color: var(--navy);
  margin-bottom: 20px;
  line-height: 1.15;
	text-align:Center;
}

.bc-insurance__body {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--navy);
  opacity: 0.8;
  line-height: 1.7;
	text-align:Center;
}

.bc-insurance__featured {
  width: 100%;
  max-width: 320px;
}

.bc-insurance__logo-cell.bc-insurance__logo-cell--featured {
  border: none;
  min-height: 90px;
  padding: 20px;
}
.bc-insurance__logo-cell.bc-insurance__logo-cell--featured:hover { background: none; }
.bc-insurance__logo-cell--featured .bc-insurance__logo-text { font-size: 0.85rem; }

.bc-insurance__logos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px;
  width: 100%;
}

.bc-insurance__logo-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 1 calc((100% - 32px) / 3);
  padding: 24px 16px;
  border: 1px solid rgba(123,191,192,0.4);
  border-radius: var(--radius);
  min-height: 80px;
  transition: background var(--transition);
}
.bc-insurance__logo-cell:hover { background: rgba(123,191,192,0.08); }

.bc-insurance__logo-cell img { max-width: 110px; max-height: 40px; object-fit: contain; }

.bc-insurance__disclaimer {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--navy);
  opacity: 0.75;
  line-height: 1.6;
  text-align: center;
  max-width: 640px;
  margin: 0;
}

.bc-insurance__cta {
  display: inline-block;
  font-family: var(--font-head);
  font-size: 1rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 12px 32px;
  border: 2px solid var(--teal);
  color: var(--navy);
  border-radius: var(--radius);
  transition: all var(--transition);
}
.bc-insurance__cta:hover {
  background: var(--teal);
  color: var(--white);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(61,53,53,0.2);
}

/* Text fallback for insurance logos */
.bc-insurance__logo-text {
  font-family: var(--font-head);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  color: var(--navy);
  text-align: center;
  text-transform: uppercase;
  font-weight: 700;
}

/* =========================================
   FOOTER
   ========================================= */
.bc-footer {
  background: var(--teal);
  color: var(--navy);
  padding: 60px 40px 30px;
}

.bc-footer__inner {
  max-width: 1100px;
  margin: 0 auto;
}

.bc-footer__logo {
  margin-bottom: 40px;
}
.bc-footer__logo img {
  height: 48px;
  /* No invert — logo on teal bg, keep original colors */
  filter: none;
}

.bc-footer__cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  margin-bottom: 50px;
}

/* Individual column — flex so nav list and contact stack naturally */
.bc-footer__col {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Optional column heading */
.bc-footer__col-title {
  font-family: var(--font-head);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  color: rgba(61,53,53,0.55);
  text-transform: uppercase;
  margin-bottom: 16px;
}

/* Footer nav list styles → .bc-footer__nav-list section */

.bc-footer__contact {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: rgba(61,53,53,0.85);
  line-height: 1.9;
}
.bc-footer__contact a { color: rgba(61,53,53,0.85); transition: color var(--transition); }
.bc-footer__contact a:hover { color: var(--navy); text-decoration: underline; }

.bc-footer__bottom {
  border-top: 1px solid rgba(61,53,53,0.15);
  padding-top: 24px;
  text-align: center;
  font-size: 0.75rem;
  color: rgba(61,53,53,0.5);
  font-family: var(--font-body);
  letter-spacing: 0.05em;
}

/* =========================================
   GUTENBERG BLOCK STYLES
   ========================================= */
.wp-block-group { width: 100%; }

/* =========================================
   RESPONSIVE
   ========================================= */
@media (max-width: 900px) {
  .bc-hero {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 40px 24px;
  }
  .bc-hero__image-wrap { margin: 0 auto; }
  .bc-process__steps { grid-template-columns: 1fr; }
  .bc-process__step { border-right: none; border-bottom: 1px solid rgba(61,53,53,0.2); }
  .bc-process__step:last-child { border-bottom: none; }
  .bc-insurance { padding: 50px 24px; gap: 28px; }
  .bc-footer__cols { grid-template-columns: repeat(2, 1fr); }
  .bc-header__nav { display: none; gap: 0; }
  .bc-header__nav.is-open {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: var(--cream);
    padding: 24px 40px;
    border-bottom: 2px solid var(--teal);
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    gap: 20px;
  }
  .bc-header__toggle { display: flex; }
  .bc-header { position: relative; }
}

@media (max-width: 600px) {
  .bc-topbar { font-size: 0.95rem; padding: 6px 16px; }
  .bc-topbar__left, .bc-topbar__right { display: none; }
  .bc-search-bar__select { min-width: 220px; font-size: 18px; }
  .bc-footer__cols { grid-template-columns: 1fr; }
  .bc-insurance__logo-cell { flex-basis: calc((100% - 16px) / 2); }
}

@media (max-width: 400px) {
	
}

/* =========================================
   SCROLL REVEAL ANIMATIONS
   ========================================= */
.bc-will-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.bc-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* =========================================
   SHARED BUTTON
   ========================================= */
.bc-btn {
  display: inline-block;
  font-family: var(--font-head);
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 14px 36px;
  border: 2px solid var(--navy);
  color: var(--navy);
  border-radius: var(--radius);
  transition: all var(--transition);
  cursor: pointer;
  background: transparent;
}
.bc-btn:hover {
  background: var(--navy);
  color: var(--white);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(61,53,53,0.2);
}
.bc-btn--fill {
  background: var(--navy);
  color: var(--white);
}
.bc-btn--fill:hover {
  background: #2e2828;
  border-color: #2e2828;
}

/* =========================================
   ENTRY CONTENT (page/post body)
   ========================================= */
.bc-entry-content {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.75;
  color: var(--navy);
}
.bc-entry-content h1,
.bc-entry-content h2,
.bc-entry-content h3,
.bc-entry-content h4 { margin: 0 0 0.6em; }
.bc-entry-content p { margin-bottom: 1.3em; }
.bc-entry-content ul,
.bc-entry-content ol { padding-left: 1.6em; margin-bottom: 1.3em; }
.bc-entry-content li { margin-bottom: 0.4em; }
.bc-entry-content a { color: var(--navy); text-decoration: underline; }
.bc-entry-content a:hover { color: var(--green); }
.bc-entry-content img { border-radius: var(--radius); margin: 1.5em 0; }
.bc-entry-content blockquote {
  border-left: 4px solid var(--teal);
  padding-left: 20px;
  margin: 1.5em 0;
  font-style: italic;
  opacity: 0.8;
}
.bc-entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5em;
  font-size: 0.9rem;
}
.bc-entry-content th,
.bc-entry-content td {
  border: 1px solid rgba(61,53,53,0.18);
  padding: 10px 14px;
  text-align: left;
}
.bc-entry-content th {
  background: rgba(61,53,53,0.06);
  font-family: var(--font-head);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* =========================================
   SINGLE POST
   ========================================= */
.bc-single-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: 60px 40px;
}
.bc-single__hero-img {
  border-radius: var(--radius);
  overflow: hidden;
  margin-bottom: 40px;
}
.bc-single__hero-img img {
  width: 100%;
  height: 420px;
  object-fit: cover;
}
.bc-single__meta {
  display: flex;
  gap: 16px;
  font-size: 0.8rem;
  font-family: var(--font-head);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(61,53,53,0.55);
  margin-bottom: 16px;
}
.bc-single__meta a { color: var(--green); }
.bc-single__title {
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  margin-bottom: 36px;
}
.bc-single__nav {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  margin-top: 60px;
  padding-top: 32px;
  border-top: 1px solid rgba(61,53,53,0.15);
}
.bc-single__nav-link {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 45%;
  transition: opacity var(--transition);
}
.bc-single__nav-link:hover { opacity: 0.7; }
.bc-single__nav-link--next { text-align: right; margin-left: auto; }
.bc-single__nav-arrow {
  font-size: 1.1rem;
  color: var(--navy);
}
.bc-single__nav-label {
  font-family: var(--font-head);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(61,53,53,0.5);
}
.bc-single__nav-title {
  font-family: var(--font-head);
  font-size: 0.9rem;
  color: var(--navy);
  letter-spacing: 0.04em;
}

/* =========================================
   ARCHIVE / BLOG GRID
   ========================================= */
.bc-archive-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 40px;
}
.bc-archive__header {
  margin-bottom: 50px;
  text-align: center;
}
.bc-archive__title {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  margin-bottom: 12px;
}
.bc-archive__desc {
  font-size: 1rem;
  opacity: 0.7;
  max-width: 560px;
  margin: 0 auto;
}
.bc-post-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-bottom: 60px;
}
.bc-post-card {
  background: var(--white);
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid rgba(61,53,53,0.1);
  transition: box-shadow var(--transition), transform var(--transition);
  display: flex;
  flex-direction: column;
}
.bc-post-card:hover {
  box-shadow: 0 8px 32px rgba(61,53,53,0.1);
  transform: translateY(-3px);
}
.bc-post-card__img-link img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.bc-post-card:hover .bc-post-card__img-link img { transform: scale(1.04); }
.bc-post-card__body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.bc-post-card__meta {
  font-family: var(--font-head);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(61,53,53,0.5);
}
.bc-post-card__meta a { color: var(--green); }
.bc-post-card__title {
  font-size: 1rem;
  line-height: 1.3;
}
.bc-post-card__title a { color: var(--navy); transition: color var(--transition); }
.bc-post-card__title a:hover { color: var(--green); }
.bc-post-card__excerpt {
  font-size: 0.88rem;
  opacity: 0.75;
  flex: 1;
}
.bc-post-card__read-more {
  font-family: var(--font-head);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--navy);
  transition: color var(--transition);
  margin-top: auto;
}
.bc-post-card__read-more:hover { color: var(--green); }

/* =========================================
   PAGINATION
   ========================================= */
.bc-pagination {
  display: flex;
  justify-content: center;
}
.bc-pagination .nav-links {
  display: flex;
  gap: 8px;
  align-items: center;
}
.bc-pagination .page-numbers {
  font-family: var(--font-head);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 8px 14px;
  border: 1px solid rgba(61,53,53,0.25);
  border-radius: var(--radius);
  color: var(--navy);
  transition: all var(--transition);
}
.bc-pagination .page-numbers:hover,
.bc-pagination .page-numbers.current {
  background: var(--navy);
  color: var(--white);
  border-color: var(--navy);
}
.bc-pagination .page-numbers.dots { border: none; }

/* =========================================
   404 PAGE
   ========================================= */
.bc-404 {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  padding: 80px 40px;
  text-align: center;
}
.bc-404__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.bc-404__sun { width: 100px; margin-bottom: 8px; }
.bc-404__code {
  font-family: var(--font-head);
  font-size: clamp(5rem, 12vw, 9rem);
  font-weight: 800;
  color: var(--navy);
  letter-spacing: -0.02em;
  line-height: 1;
  opacity: 0.12;
  margin-top: -20px;
}
.bc-404__title { font-size: clamp(1.5rem, 3vw, 2.4rem); }
.bc-404__body { max-width: 420px; opacity: 0.7; }

/* =========================================
   NO RESULTS / SEARCH FORM
   ========================================= */
.bc-no-results {
  text-align: center;
  padding: 60px 20px;
  opacity: 0.7;
}
.search-form {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-top: 24px;
}
.search-field {
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 10px 16px;
  border: 2px solid rgba(61,53,53,0.25);
  border-radius: var(--radius);
  background: var(--white);
  color: var(--navy);
  outline: none;
  min-width: 260px;
  transition: border-color var(--transition);
}
.search-field:focus { border-color: var(--navy); }
.search-submit {
  font-family: var(--font-head);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 10px 22px;
  background: var(--navy);
  color: var(--white);
  border: 2px solid var(--navy);
  border-radius: var(--radius);
  cursor: pointer;
  transition: background var(--transition);
}
.search-submit:hover { background: #2e2828; }

/* =========================================
   ARCHIVE/SINGLE RESPONSIVE
   ========================================= */
@media (max-width: 900px) {
  .bc-post-grid { grid-template-columns: repeat(2, 1fr); }
  .bc-single-wrap { padding: 40px 24px; }
  .bc-archive-wrap { padding: 40px 24px; }
}
@media (max-width: 600px) {
  .bc-post-grid { grid-template-columns: 1fr; }
  .bc-single__nav { flex-direction: column; }
  .bc-single__nav-link--next { text-align: left; margin-left: 0; }
}

/* =========================================
   COMMENTS
   ========================================= */
.bc-comments {
  max-width: 860px;
  margin: 60px auto 0;
  padding: 48px 40px;
  border-top: 1px solid rgba(61,53,53,0.15);
}

.bc-comments__title {
  font-size: 1.5rem;
  margin-bottom: 36px;
}

.bc-comments__closed {
  font-family: var(--font-body);
  font-style: italic;
  opacity: 0.6;
  margin-bottom: 24px;
}

/* Comment list */
.bc-comment-list {
  list-style: none;
  padding: 0;
  margin: 0 0 48px;
}

.bc-comment {
  padding: 28px 0;
  border-bottom: 1px solid rgba(61,53,53,0.1);
}
.bc-comment:last-child { border-bottom: none; }

.bc-comment__inner {
  display: flex;
  gap: 16px;
}

.bc-comment__avatar img {
  border-radius: 50%;
  flex-shrink: 0;
}

.bc-comment__body { flex: 1; }

.bc-comment__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: baseline;
  margin-bottom: 10px;
}

.bc-comment__author {
  font-family: var(--font-head);
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--navy);
  font-weight: 600;
}
.bc-comment__author a { color: var(--navy); }

.bc-comment__date {
  font-size: 0.75rem;
  font-family: var(--font-body);
  color: rgba(61,53,53,0.5);
}

.bc-comment__reply a {
  font-family: var(--font-head);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--green);
  transition: opacity var(--transition);
}
.bc-comment__reply a:hover { opacity: 0.7; }

.bc-comment__text p {
  font-size: 0.95rem;
  line-height: 1.7;
  margin-bottom: 0.8em;
}

.bc-comment__moderation {
  font-style: italic;
  opacity: 0.6;
  font-size: 0.85rem;
}

/* Nested comments */
.children {
  padding-left: 48px;
  list-style: none;
}

/* Comment form */
.bc-comment-form__title {
  font-size: 1.5rem;
  margin-bottom: 28px;
}

.bc-comment-form {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.bc-comment-form__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 20px;
}

.bc-comment-form__field label {
  font-family: var(--font-head);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--navy);
}
.bc-comment-form__field label .required { color: var(--green); }

.bc-comment-form__field input[type="text"],
.bc-comment-form__field input[type="email"],
.bc-comment-form__field textarea {
  font-family: var(--font-body);
  font-size: 0.95rem;
  padding: 10px 14px;
  border: 1px solid rgba(61,53,53,0.25);
  border-radius: var(--radius);
  background: var(--white);
  color: var(--navy);
  outline: none;
  transition: border-color var(--transition);
  width: 100%;
}
.bc-comment-form__field input:focus,
.bc-comment-form__field textarea:focus {
  border-color: var(--navy);
}
.bc-comment-form__field textarea { resize: vertical; min-height: 130px; }

.bc-comment-form__submit {
  align-self: flex-start;
  margin-top: 8px;
}

@media (max-width: 600px) {
  .bc-comments { padding: 32px 20px; }
  .children { padding-left: 20px; }
}

/* =========================================
   PAGE TEMPLATES: FULL WIDTH
   ========================================= */
.bc-page-full__banner {
  position: relative;
  height: 420px;
  overflow: hidden;
}
.bc-page-full__banner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bc-page-full__banner-overlay {
  position: absolute;
  inset: 0;
  background: rgba(61,53,53,0.55);
  display: flex;
  align-items: flex-end;
  padding: 48px 60px;
}
.bc-page-full__banner-title {
  color: var(--white);
  font-size: clamp(2rem, 4vw, 3.2rem);
}
.bc-page-full__title-bar {
  background: var(--teal);
  padding: 48px 60px;
  color: var(--white);
}
.bc-page-full__title-bar h1 { color: var(--white); font-size: clamp(1.8rem, 3vw, 2.8rem); }
.bc-page-full__content {
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 60px;
}

/* =========================================
   PAGE TEMPLATES: LANDING
   ========================================= */
.bc-landing-body { background: var(--cream); }

.bc-landing-header {
  background: var(--cream);
  padding: 20px 40px;
  border-bottom: 1px solid rgba(61,53,53,0.1);
}
.bc-landing-header img { height: 52px; }

.bc-landing-content {
  max-width: 860px;
  margin: 0 auto;
  padding: 60px 40px;
}

.bc-landing-footer {
  text-align: center;
  padding: 24px;
  font-size: 0.75rem;
  color: rgba(61,53,53,0.45);
  font-family: var(--font-body);
  border-top: 1px solid rgba(61,53,53,0.1);
}

/* =========================================
   HERO IMAGE PLACEHOLDER (template-part)
   ========================================= */
.bc-hero__image-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bc-hero__image-placeholder--bg {
  background: linear-gradient(135deg, #e8d5c0, #d4b896);
}
.bc-hero__image-placeholder--fg {
  background: linear-gradient(135deg, #f5a623, #e8901a);
}
.bc-hero__image-placeholder span {
  font-family: var(--font-head);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  padding: 12px;
  opacity: 0.6;
  color: var(--navy);
}
.bc-hero__image-placeholder--fg span { color: var(--white); opacity: 0.85; }

/* =========================================
   ACCESSIBILITY HELPERS
   ========================================= */
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  background: var(--navy);
  color: var(--white);
  padding: 8px 16px;
  z-index: 999;
  font-family: var(--font-head);
  font-size: 0.8rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: top 0.2s;
}
.skip-link:focus { top: 0; }

/* =========================================
   WP CORE OVERRIDES
   ========================================= */

/* Alignments */
.alignleft  { float: left;  margin-right: 24px; margin-bottom: 16px; }
.alignright { float: right; margin-left: 24px;  margin-bottom: 16px; }
.aligncenter { display: block; margin: 0 auto 24px; }
.alignwide  { margin-left: calc(-1 * clamp(0px, 5vw, 80px)); margin-right: calc(-1 * clamp(0px, 5vw, 80px)); }
.alignfull  { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw; }

/* WP caption */
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 0.8rem; text-align: center; opacity: 0.6; margin-top: 6px; }

/* Gutenberg: buttons block */
.wp-block-buttons { gap: 12px; }
.wp-block-button__link {
  font-family: var(--font-head) !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 12px 28px !important;
  border-radius: 4px !important;
  transition: all var(--transition) !important;
}

/* Gutenberg: separator */
.wp-block-separator { border-color: rgba(61,53,53,0.2); }

/* Gutenberg: pullquote */
.wp-block-pullquote {
  border-top: 3px solid var(--teal);
  border-bottom: 3px solid var(--teal);
  padding: 28px 0;
}
.wp-block-pullquote blockquote p {
  font-family: var(--font-head);
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  color: var(--navy);
  letter-spacing: 0.02em;
}

/* Gutenberg: cover */
.wp-block-cover { border-radius: var(--radius); }

/* =========================================
   PRINT STYLES
   ========================================= */
@media print {
  .bc-topbar, .bc-header, .bc-footer,
  .bc-search-bar, .bc-header__toggle { display: none !important; }
  body { background: white; color: black; }
  a { color: black; text-decoration: underline; }
  .bc-single-wrap, .bc-archive-wrap { padding: 0; max-width: 100%; }
}

/* =========================================
   MISSING / GAP-FILL CLASSES
   ========================================= */

/* bc-main: wraps all page content between header and footer */
.bc-main {
  min-height: 50vh;
}

/* bc-page-wrap / bc-page-title: generic page template */
.bc-page-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 40px;
}
.bc-page-title {
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  margin-bottom: 36px;
}

/* bc-page-content: optional Gutenberg block area on front-page */
.bc-page-content {
  max-width: 1100px;
  margin: 0 auto;
  padding: 60px 40px;
}

/* bc-insurance-wrap: outer section wrapper */
.bc-insurance-wrap {
  width: 100%;
}

/* bc-header__logo-default: text fallback when no custom logo set */
.bc-header__logo-default {
  display: flex;
  align-items: center;
}

/* bc-single__inner: content container inside single post */
.bc-single__inner {
  padding: 0;
}

/* bc-single__cat and bc-single__date: post meta spans */
.bc-single__cat {
  font-family: var(--font-head);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--green);
}
.bc-single__cat a {
  color: var(--green);
  transition: opacity var(--transition);
}
.bc-single__cat a:hover { opacity: 0.7; }

.bc-single__date {
  font-family: var(--font-head);
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(61,53,53,0.5);
}

/* bc-single__nav-link--prev directional modifier */
.bc-single__nav-link--prev { margin-right: auto; }

/* bc-comment-form__field--full: textarea row spanning full width */
.bc-comment-form__field--full {
  grid-column: 1 / -1;
}

/* Make comment form fields sit in a 2-col grid on wider screens */
@media (min-width: 600px) {
  .bc-comment-form .bc-comment-form__field:not(.bc-comment-form__field--full) {
    display: inline-flex;
    width: calc(50% - 10px);
  }
  .comment-form {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
  }
  .comment-form .bc-comment-form__field {
    flex: 1 1 calc(50% - 10px);
    margin-bottom: 0;
  }
  .comment-form .bc-comment-form__field--full {
    flex: 1 1 100%;
  }
}

/* =========================================
   GUTENBERG: WIDE/FULL ALIGNMENT FIXES
   ========================================= */

/* Prevent alignwide/alignfull from breaking inside constrained wrappers */
.bc-page-wrap .alignwide,
.bc-single-wrap .alignwide {
  margin-left:  calc(-1 * clamp(0px, 4vw, 60px));
  margin-right: calc(-1 * clamp(0px, 4vw, 60px));
}

/* =========================================
   HEADER LOGO IMG SIZING
   ========================================= */

/* Ensure custom logo from WP doesn't overflow */
.bc-header__logo .custom-logo-link img,
.bc-header__logo img {
  height: 60px;
  width: auto;
  max-width: 220px;
  object-fit: contain;
}

/* Footer logo — the header's asset, rendered dark rather than knocked out.
   This used to be brightness(0) invert(1), a white silhouette written for a
   dark footer; the Customizer has since made the footer a pale sage
   (#b7d2c9), against which white reads at only ~1.7:1.

   Dropping the filter entirely to match the header exactly is not an option
   either: the mark's butterfly is rgb(192,216,192), which lands at 1.06:1 on
   that sage and disappears, leaving a wordmark-only logo. brightness(0)
   keeps the complete mark — butterfly included — at ~9:1.

   Height stays 52px: the footer's scale, not the header's 100px. */
.bc-footer__logo img {
  height: 52px;
  width: auto;
  filter: brightness(0);
}

/* =========================================
   FOCUS STYLES (accessibility)
   ========================================= */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px;
  border-radius: 2px;
}

/* =========================================
   SMOOTH IMAGE LOADING
   ========================================= */
img {
  transition: opacity 0.3s ease;
}
img[loading="lazy"] {
  opacity: 0;
}
img[loading="lazy"].loaded,
img:not([loading]) {
  opacity: 1;
}

/* =========================================
   UTILITY CLASSES
   ========================================= */
.bc-text-center  { text-align: center; }
.bc-text-navy    { color: var(--navy); }
.bc-text-green   { color: var(--green); }
.bc-bg-navy      { background-color: var(--navy); color: var(--white); }
.bc-bg-cream     { background-color: var(--cream); }
.bc-mt-0         { margin-top: 0 !important; }
.bc-mb-0         { margin-bottom: 0 !important; }
.bc-visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* =========================================
   HEADER SCROLL STATE
   ========================================= */
.bc-header--scrolled {
	padding:20px 40px;
	
}

/* =========================================
   ACTIVE NAV LINK
   ========================================= */
.bc-header__nav a.bc-nav-active {
  color: var(--green);
}
.bc-header__nav a.bc-nav-active::after {
  width: 100%;
}

/* =========================================
   FOOTER NAV LIST
   (WP default walker outputs ul.bc-footer__nav-list > li > a)
   ========================================= */
.bc-footer__nav-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.bc-footer__nav-list li {
  margin-bottom: 8px;
}
.bc-footer__nav-list li a {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: rgba(61,53,53,0.85);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  transition: color var(--transition);
}
.bc-footer__nav-list li a:hover { color: var(--navy); text-decoration: underline; }

/* =========================================
   404: ACTIONS + SEARCH
   ========================================= */
.bc-404__actions {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
}
.bc-404__search {
  margin-top: 8px;
}
.bc-404__search .search-form {
  display: flex;
  gap: 8px;
  justify-content: center;
}

/* =========================================
   FOOTER ADDRESS TAG RESET
   ========================================= */
.bc-footer__contact {
  font-style: normal; /* <address> is italic by default */
}

/* =========================================
   PAGE ARTICLE (page.php)
   ========================================= */
.bc-page-article {
  /* No special styles needed — content handled by bc-entry-content */
}

/* =========================================
   NO POSTS (index.php fallback)
   ========================================= */
.bc-no-posts {
  padding: 60px 0;
  text-align: center;
  opacity: 0.6;
  font-style: italic;
}

/* =========================================
   HERO SUN — CUSTOM IMAGE VARIANT
   ========================================= */
.bc-hero__sun--custom {
  width: 300px;
  height: auto;
  object-fit: contain;
  margin: 0 auto 20px;
  display: block;
}

/* =========================================
   PROCESS — RESPONSIVE UPDATES
   ========================================= */
@media (max-width: 700px) {
  .bc-process__steps {
    grid-template-columns: 1fr;
  }
  .bc-process__step {
    border-right: none;
    border-bottom: 1px solid rgba(123,191,192,0.5);
    padding: 32px 24px;
  }
  .bc-process__step:last-child { border-bottom: none; }
}

/* =========================================
   HERO HEADLINE — TWO LINES
   ========================================= */
.bc-hero__headline-l1,
.bc-hero__headline-l2 {
  display: block;
}

h1.bc-hero__headline {
  background: url(https://behavioralconc.wpenginepowered.com/wp-content/uploads/2026/04/bursh.png) no-repeat;
  background-size: contain;
  background-position: bottom;
}

h1.bc-hero__headline {
  display: flex;
  flex-direction: column;
}

/* =========================================
   HERO CIRCLES — FLOAT ANIMATION
   ========================================= */
@keyframes bc-float-bg {
  0%   { transform: translateY(0px) rotate(0deg); }
  45%  { transform: translateY(-50px) rotate(0.3deg); }
  70%  { transform: translateY(-25px) rotate(-0.2deg); }
  100% { transform: translateY(0px) rotate(0deg); }
}

@keyframes bc-float-fg {
  0%   { transform: translateY(0px) rotate(0deg); }
  45%  { transform: translateY(-50px) rotate(0.3deg); }
	
  80%  { transform: translateY(-10px) rotate(-0.2deg); }

  100% { transform: translateY(0px) rotate(0deg); }
}

.bc-hero__image-bg {
  animation: bc-float-bg 7.6s ease-in-out infinite;
  will-change: transform;
}

.bc-hero__image-front {
  animation: bc-float-fg 10.2s ease-in-out infinite;
  will-change: transform;
}

/* Respect reduced motion preference */
@media (prefers-reduced-motion: reduce) {
  .bc-hero__image-bg,
  .bc-hero__image-front {
    animation: none;
  }
}


img.custom-logo {
    max-width: 275px;
}

.bc-topbar__rotator {
    display: flex;
    justify-content: space-between;
}

.bc-rotator__track {
    padding: 0 25px;
}

button.bc-rotator__arrow {
    padding: 0 10px;
    background: transparent;
    border: none;
}


/* ── Topbar rotator ───────────────────────────────── */
.bc-topbar__rotator {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
    justify-content: center;
    min-width: 0;
}

.bc-rotator__track {
    position: relative;
    height: 1.4em;           /* lock height to one line so layout doesn't shift */
    min-width: 320px;
    text-align: center;
}

.bc-rotator__slide {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 400ms ease;
    pointer-events: none;
    white-space: nowrap;
}

.bc-rotator__slide.is-active {
    opacity: 1;
    pointer-events: auto;
}

.bc-rotator__arrow {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.25rem;
    line-height: 1;
    padding: 0 0.25rem;
    color: inherit;
    opacity: 0.6;
    transition: opacity 200ms;
    flex-shrink: 0;
}

.bc-rotator__arrow:hover,
.bc-rotator__arrow:focus-visible {
    opacity: 1;
    outline: 0px solid currentColor;
    outline-offset: 0px;
}

a.bc-header__cta {
    line-height: 1;
}



.bc-hero__btn,
a.bc-header__cta {
	padding:12px 30px 14px;
}

a.bc-header__cta:hover,
.bc-hero__btn:hover
{
	background:#b7d2ca;
}

.bc-header__nav a.bc-nav-active {
	color:rgb(77, 75, 50);
	text-decoration:none;
	border-bottom:0;
}


.bc-header__nav a.bc-nav-active::after {
	display:none;
}

img.custom-logo {
    margin-left: -25px;
}

.bc-topbar__rotator {
    display: none;
}

/* ── Rising sun animation ───────────────────────────── */

@keyframes bc-rise {
    0% {
        transform: translateY(40px);
        opacity: 0;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

.bc-hero__sun--custom {
    animation: bc-rise 1s ease-out forwards;
}

@media (max-width: 600px) {
	img.custom-logo{
		max-width: 205px;
	}
}
@media (max-width: 400px) {
	.bc-header{
		flex-wrap: wrap;
		justify-content: center;
		gap: 20px;
	}
	.bc-hero__image-wrap{
		width: 285px;
	}
	.bc-search-bar__select{
		font-size: 16px; /* iOS Safari zooms the page when a focused field is under 16px */
	}
}










/* SERVICES */

/* ============================================
   Behavioral Concepts — Services Page
   ============================================ */

/* Hero section */
.bc-services-hero {
	padding: 0px 24px 60px;
}

.bc-services-hero .wp-block-columns {
	gap: 40px;
}

/* Rounded-blob hero image (organic shape like the mockup) */
.bc-hero-image img {
	width: 100%;
	height: auto;
	object-fit: contain;
}

/* Section title */
.bc-services-list {
	padding: 20px 24px 60px;
}

.bc-section-title {
	position: relative;
	display: inline-block;
	left: 50%;
	transform: translateX(-50%);
}

.bc-section-title::before,
.bc-section-title::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 60px;
	height: 1px;
	background: #3d3d2e;
}

.bc-section-title::before { right: calc(100% + 20px); }
.bc-section-title::after  { left:  calc(100% + 20px); }

/* Service cards */
.bc-service-card {
	display: flex;
	gap: 32px;
	align-items: flex-start;
}

.bc-service-icon {
	flex: 0 0 120px;
	margin: 0 !important;
}

.bc-service-icon img {
	width: 120px;
	height: 120px;
	padding: 24px;
	background: #d8dcd0;
	border-radius: 50%;
	object-fit: contain;
	display: block;
}

.bc-service-content {
	flex: 1;
	border-left: 1px solid #d8dcd0;
	padding-left: 32px;
}

/* Short accent divider under each card heading */
.bc-card-divider {
	max-width: 60px;
	margin-left: 0 !important;
	border: none;
	height: 2px;
}

/* CTA Footer */
.bc-cta-footer {
	margin-top: 40px;
}

/* ============================================
   Responsive — Mobile
   ============================================ */
@media (max-width: 781px) {
	.bc-services-hero .wp-block-columns {
		flex-direction: column-reverse;
	}

	.bc-hero-title {
		font-size: 48px !important;
	}

	.bc-section-title::before,
	.bc-section-title::after {
		display: none;
	}

	.bc-service-card {
		flex-direction: column;
		align-items: center;
		text-align: center;
		padding: 24px !important;
	}

	.bc-service-icon {
		flex: 0 0 auto;
	}

	.bc-service-content {
		border-left: none;
		padding-left: 0;
		padding-top: 16px;
		border-top: 1px solid #d8dcd0;
		width: 100%;
	}

	.bc-card-divider {
		margin-left: auto !important;
		margin-right: auto !important;
	}

	.bc-cta-footer .wp-block-columns {
		flex-direction: column;
		gap: 16px;
	}
}
.page .bc-page-wrap {
	padding-top:0;
}

/* ============================================
   Behavioral Concepts — The Team Page
   ============================================ */

/* Color palette
   #faf6ed - cream background
   #3d3d2e - dark olive text
   #a8c4c2 - sage accent
   #5a7a6d - deeper green (role text)
   #e0e0d8 - card border
   #ede7d8 - photo background ring
*/

/* Hero */
.bc-team-hero-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 40px 24px 20px;
}

.bc-page-title {
	font-size: 72px;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1;
	color: #3d3d2e;
	margin: 0 0 16px;
}

.bc-title-divider {
	max-width: 80px;
	margin: 0 0 24px;
	border: none;
	height: 2px;
	background: #a8c4c2;
}

.bc-team-intro {
	max-width: 520px;
	font-size: 16px;
	line-height: 1.7;
	color: #3d3d2e;
	margin: 0;
}

/* Shared photo treatment */
.bc-team-photo img,
.bc-featured-photo img {
	border-radius: 50%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	background: #ede7d8;
	padding: 6px;
	display: block;
	width: 100%;
}

/* Featured CEO card */
.bc-team-featured-card {
	max-width: 1152px;
	margin: 40px auto;
	background: #faf6ed;
	border: 1px solid #e0e0d8;
	border-radius: 8px;
	padding: 40px;
}

.bc-featured-inner {
	display: flex;
	align-items: center;
	gap: 40px;
}

.bc-featured-photo {
	flex: 0 0 260px;
}

.bc-featured-content {
	flex: 1;
}

.bc-team-name {
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 2px;
	color: #3d3d2e;
	margin: 0 0 8px;
}

.bc-team-role {
	font-size: 16px;
	color: #5a7a6d;
	margin: 0 0 16px;
}

.bc-card-divider {
	max-width: 60px;
	margin: 0 0 16px;
	border: none;
	height: 2px;
	background: #a8c4c2;
}

.bc-team-bio {
	font-size: 15px;
	line-height: 1.7;
	color: #3d3d2e;
	margin: 0;
}

/* Grid */
.bc-team-grid {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 0;
}

.bc-team-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-bottom: 24px;
}

.bc-team-card {
	background: #faf6ed;
	border: 1px solid #e0e0d8;
	border-radius: 8px;
	padding: 32px;
	text-align: center;
}

.bc-team-card .bc-team-photo {
	max-width: 220px;
	margin: 0 auto 16px;
}

.bc-team-card .bc-team-name {
	font-size: 20px;
	margin: 0 0 8px;
}

.bc-team-card .bc-team-role {
	margin: 0 0 16px;
	font-size: 15px;
}

.bc-team-card .bc-team-bio {
	font-size: 14px;
}

/* Mission callout */
.bc-mission-card {
	max-width: 1152px;
	margin: 40px auto;
	background: #a8c4c2;
	border-radius: 8px;
	padding: 32px 40px;
}

.bc-mission-inner {
	display: flex;
	align-items: center;
	gap: 32px;
}

.bc-mission-icon {
	flex: 0 0 120px;
}

.bc-mission-icon img {
	width: 120px;
	height: 120px;
	background: #f5efdf;
	border-radius: 50%;
	padding: 20px;
	object-fit: contain;
	box-sizing: border-box;
	display: block;
}

.bc-mission-content h2 {
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 3px;
	color: #3d3d2e;
	margin: 0 0 12px;
}

.bc-mission-content p {
	font-size: 15px;
	line-height: 1.7;
	color: #3d3d2e;
	margin: 0;
}

/* CTA footer */
.bc-cta-footer {
	background: #a8c4c2;
	padding: 40px;
}

.bc-cta-inner {
	max-width: 1200px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 24px;
}

.bc-cta-text {
	flex: 2;
	text-align: center;
}

.bc-cta-text h3 {
	font-size: 24px;
	font-weight: 700;
	letter-spacing: 3px;
	color: #3d3d2e;
	margin: 0 0 8px;
}

.bc-cta-text p {
	font-size: 15px;
	color: #3d3d2e;
	margin: 0;
}

.bc-cta-button {
	flex: 1;
	text-align: center;
}

.bc-button {
	display: inline-block;
	border: 2px solid #3d3d2e;
	background: transparent;
	color: #3d3d2e;
	padding: 16px 32px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 2px;
	text-decoration: none;
}

.bc-button:hover {
	background: #3d3d2e;
	color: #faf6ed;
}

/* Responsive */
@media (max-width: 781px) {
	.bc-page-title {
		font-size: 48px;
	}

	.bc-featured-inner {
		flex-direction: column;
		text-align: center;
	}

	.bc-featured-photo {
		flex: 0 0 auto;
		max-width: 220px;
	}

	.bc-card-divider {
		margin-left: auto;
		margin-right: auto;
	}

	.bc-team-row {
		grid-template-columns: 1fr;
	}

	.bc-mission-inner {
		flex-direction: column;
		text-align: center;
	}

	.bc-cta-inner {
		flex-direction: column;
	}
}



h1.bc-page-title {
display:none !important; 
}



p {
	font-family: "oso-sans", sans-serif;
font-weight: 400;
font-style: normal;
	font-size:14px;
	line-height:1.5;
}

p.bc-team-role.has-text-color { 
	    font-family: var(--font-head);
}



/* GETTING STARTED STYLES */
/* in the .bc-gs block, change: *//* Behavioral Concepts — "Get Started" page
   Paste into Appearance → Customize → Additional CSS. */
/* Behavioral Concepts — "Get Started" page
   Paste into Appearance → Customize → Additional CSS. */

.bc-gs{
  --cream:#F4EFE5; --card:#FBF8F2; --accent:#93AB9B; --ink:#3A3829;
  --body:#57543F; --muted:#827C68; --border:#E2DAC9;
  --eyebrow:#9DB6BC;   /* dusty blue-sage, matches "OUR" */
  --rule:#A9C3AF;      /* underline accent */
  --bc-display:var(--font-head, 'Oswald', sans-serif); /* uses the theme heading font */
  /* Butterfly watermark — replace the url() with your real brand asset for an exact match:
     --bc-butterfly: url('https://behavioralconc.wpenginepowered.com/wp-content/uploads/butterfly.svg'); */
  --bc-butterfly: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20100%20100%22%20fill%3D%22none%22%20stroke%3D%22%239DB6BC%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M50%2034%20C42%2016%2014%2016%2020%2040%20C24%2054%2044%2050%2050%2044%22%2F%3E%3Cpath%20d%3D%22M50%2034%20C58%2016%2086%2016%2080%2040%20C76%2054%2056%2050%2050%2044%22%2F%3E%3Cpath%20d%3D%22M50%2044%20C44%2058%2024%2062%2028%2080%20C31%2092%2048%2082%2050%2064%22%2F%3E%3Cpath%20d%3D%22M50%2044%20C56%2058%2076%2062%2072%2080%20C69%2092%2052%2082%2050%2064%22%2F%3E%3Cpath%20d%3D%22M50%2030%20C49%2044%2049%2056%2050%2066%22%2F%3E%3C%2Fsvg%3E");
  color:var(--body);
}

/* hero — text left, organic photo right (matches the Services page header) */
.bc-gs__hero{align-items:center;gap:48px;margin-bottom:8px;}
.bc-gs__hero-media{position:relative;}
.bc-gs__hero-img{margin:0;}
.bc-gs__hero-img img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;
  border-radius:45% 55% 48% 52% / 60% 56% 44% 40%;display:block;}
.bc-gs__hero-media::after{content:"";position:absolute;right:-6px;bottom:-22px;
  width:120px;height:120px;background:url(https://behavioralconc.wpenginepowered.com/wp-content/uploads/2026/04/cropped-favicon.png) no-repeat center/contain;
  opacity:.55;pointer-events:none;}

/* hero */
.bc-gs__eyebrow{font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.28em;font-weight:600;color:var(--eyebrow);font-size:24px;line-height:1;margin:0 0 10px;}
.bc-gs__title{font-family:var(--font-head);text-transform:uppercase;font-weight:700;letter-spacing:1px;font-size:72px;line-height:1;color:var(--ink);margin:0;}
.bc-gs__rule{margin:20px 0 26px!important;width:110px!important;max-width:110px!important;height:2px!important;background:var(--rule)!important;border:0!important;}
.bc-gs__lede{max-width:440px;font-size:18px;line-height:1.65;color:var(--body);margin:0;}

/* divider */
.bc-gs__divider{display:flex;align-items:center;justify-content:center;gap:22px;font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.26em;font-weight:600;color:var(--ink);font-size:20px;margin:60px 0 44px;}
.bc-gs__divider::before,.bc-gs__divider::after{content:"";height:1px;background:var(--border);flex:0 0 90px;}

/* columns */
.bc-gs-cols{gap:48px;align-items:flex-start;}

/* left — office */
.bc-gs__label{font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.2em;font-weight:600;color:var(--accent);font-size:14px;margin:0 0 16px;}
.bc-gs__card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:30px 32px;}
.bc-gs__office{font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--ink);font-size:18px;margin:0 0 14px;}
.bc-gs__addr{font-size:16px;line-height:1.7;color:var(--body);margin:0 0 18px;}
.bc-gs__row{display:flex;gap:12px;align-items:baseline;font-size:15.5px;color:var(--body);margin:5px 0;}
.bc-gs__row strong{font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.1em;font-weight:600;color:var(--accent);font-size:13px;min-width:44px;}
.bc-gs__row a{color:var(--ink);text-decoration:none;font-weight:600;}
.bc-gs__row a:hover{text-decoration:underline;}

/* services button */
.bc-gs__btn{margin-top:24px;}
.bc-gs__btn .wp-block-button__link{font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:14px;color:var(--ink);background:transparent;border:1.5px solid var(--ink);border-radius:2px;padding:14px 24px;transition:background .18s ease,color .18s ease;}
.bc-gs__btn .wp-block-button__link:hover{background:var(--ink);color:var(--cream);}

/* right — form */
.bc-gs__formhead{font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.04em;font-weight:700;color:var(--ink);font-size:30px;margin:0 0 10px;}
.bc-gs__prompt{font-size:16px;line-height:1.6;color:var(--body);max-width:560px;margin:0 0 24px;}
.bc-gs__disclaimer{font-size:12.5px;line-height:1.6;font-style:italic;color:var(--muted);max-width:600px;margin:18px 2px 0;}
.bc-gs__disclaimer a{color:var(--accent);}

/* Forminator skin (scoped to this page's form) */
.bc-gs-formcol .forminator-guttenberg{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:30px;}
.bc-gs-formcol .forminator-input,
.bc-gs-formcol .forminator-textarea,
.bc-gs-formcol input[type=text],
.bc-gs-formcol input[type=email],
.bc-gs-formcol input[type=tel],
.bc-gs-formcol textarea{background:transparent!important;border:1px solid var(--border)!important;border-radius:6px!important;color:var(--ink)!important;font-size:15.5px!important;}
.bc-gs-formcol .forminator-input:focus,
.bc-gs-formcol .forminator-textarea:focus,
.bc-gs-formcol input:focus,
.bc-gs-formcol textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(147,171,155,.25)!important;outline:none!important;}
.bc-gs-formcol .forminator-label{font-family:var(--bc-display)!important;text-transform:uppercase!important;letter-spacing:.1em!important;font-weight:500!important;font-size:12.5px!important;color:var(--muted)!important;}
.bc-gs-formcol .forminator-button-submit,
.bc-gs-formcol button[type=submit]{font-family:var(--bc-display)!important;text-transform:uppercase!important;letter-spacing:.16em!important;font-weight:600!important;font-size:15px!important;color:var(--cream)!important;background:var(--ink)!important;border:0!important;padding:15px 38px!important;border-radius:4px!important;}
.bc-gs-formcol .forminator-button-submit:hover,
.bc-gs-formcol button[type=submit]:hover{opacity:.88!important;}

@media (max-width:781px){
  .bc-gs-cols{gap:34px;}
  .bc-gs__hero{gap:28px;}
  .bc-gs__hero-media::after{width:84px;height:84px;right:0;bottom:-14px;}
}
/* GETTING STARTED STYLES END */










.page-id-36 h1.wp-block-heading.bc-page-titlex.has-text-color {
    text-align: left;
	padding-bottom:15px;
}

.page-id-56 figcaption.wp-element-caption,
.page-id-37 figcaption.wp-element-caption{
	display:none !important;
}




/* policy page styling */
/* Behavioral Concepts — Privacy Policy / legal page
   Setup: group the blocks and give the Group the class  bc-policy
   Paste into Appearance → Customize → Additional CSS. */

.bc-policy{
  --ink:#3A3829; --body:#57543F; --muted:#8A8470;
  --accent:#93AB9B; --rule:#A9C3AF; --link:#5E7A66;
  --card:#FBF8F2; --border:#E2DAC9;

  /* PARAGRAPH FONT — pick ONE (default inherits your theme body font) */
  --font-text: inherit;                               /* match the rest of the site */
  /* --font-text: Georgia, 'Times New Roman', serif;     formal document feel       */
  /* --font-text: 'Mulish', system-ui, sans-serif;       clean humanist sans        */
  /* --font-text: 'Lora', Georgia, serif;                warm reading serif (load font first) */

  max-width:820px; margin:0 auto;
  background:var(--card); border:1px solid var(--border); border-radius:12px;
  padding:clamp(28px,5vw,56px); color:var(--body);
}

/* base paragraph type */
.bc-policy p{font-family:var(--font-text);font-size:16.5px;line-height:1.75;color:var(--body);margin:0 0 18px;}

/* "Last Updated:" line */
.bc-policy p:first-of-type{font-family:var(--font-head,inherit);text-transform:uppercase;letter-spacing:.14em;
  font-size:12.5px;font-weight:600;color:var(--muted);margin:0 0 28px;padding-bottom:18px;border-bottom:1px solid var(--border);}

/* intro / welcome line (paragraph right after the date) */
.bc-policy p:first-of-type + p{font-family:var(--font-text);font-size:19px;line-height:1.6;color:var(--ink);margin-bottom:30px;}

/* section headings */
.bc-policy h2{font-family:var(--font-head,inherit);text-transform:uppercase;letter-spacing:.04em;font-weight:700;
  font-size:22px;color:var(--ink);margin:38px 0 14px;padding-bottom:10px;position:relative;}
.bc-policy h2::after{content:"";position:absolute;left:0;bottom:0;width:46px;height:2px;background:var(--rule);}

/* lists with sage markers */
.bc-policy ul{list-style:none;margin:0 0 18px;padding:0;}
.bc-policy li{font-family:var(--font-text);font-size:16.5px;line-height:1.6;color:var(--body);
  position:relative;padding-left:24px;margin:0 0 9px;}
.bc-policy li::before{content:"";position:absolute;left:2px;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--accent);}

/* links + emphasis */
.bc-policy a{color:var(--link);text-decoration:underline;text-underline-offset:2px;font-weight:600;}
.bc-policy a:hover{color:var(--ink);}
.bc-policy strong{color:var(--ink);font-weight:700;}

/* contact block (final list) as a soft card */
.bc-policy ul:last-of-type{background:#fff;border:1px solid var(--border);border-radius:10px;padding:20px 24px;margin-top:6px;}
.bc-policy ul:last-of-type li{padding-left:0;margin-bottom:8px;}
.bc-policy ul:last-of-type li::before{display:none;}

@media (max-width:600px){.bc-policy p:first-of-type + p{font-size:17.5px;}}

/* policy page styling end */




/* CAREERS STYLES *//* Behavioral Concepts — Careers page (job cards + Apply modal)
/* Behavioral Concepts — Careers page (job cards + Apply modal)
   Paste into Appearance → Customize → Additional CSS. */

/* Behavioral Concepts — Careers page (job cards + Apply modal)
   Paste into Appearance → Customize → Additional CSS. */

.bc-careers,
.bc-careers__modal{
  --cream:#F4EFE5; --card:#FBF8F2; --accent:#93AB9B; --ink:#3A3829;
  --body:#57543F; --muted:#827C68; --border:#E2DAC9; --eyebrow:#9DB6BC;
  --rule:#A9C3AF;
  --bc-display:var(--font-head, 'Oswald', sans-serif);
  color:var(--body);
}

/* section heading above the cards */
.bc-careers__section{display:flex;align-items:center;justify-content:center;gap:22px;font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.22em;font-weight:600;color:var(--ink);font-size:22px;margin:0 0 40px;}
.bc-careers__section::before,.bc-careers__section::after{content:"";height:1px;background:var(--border);flex:0 0 80px;}

/* header */
.bc-careers__eyebrow{font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.28em;font-weight:600;color:var(--eyebrow);font-size:22px;line-height:1;margin:0 0 8px;}
.bc-careers__title{font-family:var(--font-head);text-transform:uppercase;font-weight:700;letter-spacing:1px;line-height:1;color:var(--ink);font-size:64px;margin:0;}
.bc-careers__rule{margin:20px 0 24px!important;width:110px!important;max-width:110px!important;height:2px!important;background:var(--rule)!important;border:0!important;}
.bc-careers__lede{max-width:560px;font-size:18px;line-height:1.65;color:var(--body);margin:0 0 52px;}

/* card list — full width, stacked vertically */
.bc-careers__grid{display:flex;flex-direction:column;gap:20px;}

/* job card — row: details left, Apply right */
.bc-job{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:28px 32px;
  display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:30px;}
.bc-job__main{flex:1;min-width:0;}
.bc-job__title{font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.02em;font-weight:700;font-size:21px;color:var(--ink);margin:0 0 8px;}
.bc-job__meta{font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.12em;font-weight:600;font-size:12.5px;color:var(--eyebrow);margin:0 0 10px;}
.bc-job__salary{display:inline-block;font-family:var(--bc-display);font-weight:600;font-size:13px;letter-spacing:.03em;
  color:var(--ink);background:#EEF2EC;border:1px solid #DCE6DD;border-radius:999px;padding:5px 13px;margin:0 0 14px;}
.bc-job__desc{font-size:15.5px;line-height:1.65;color:var(--body);margin:0;max-width:74ch;}

/* apply button */
.bc-job__apply{flex:0 0 auto;margin:0;}
.bc-job__apply .wp-block-button__link{font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:14px;color:var(--cream);background:var(--ink);border:0;border-radius:4px;padding:14px 30px;transition:opacity .15s;}
.bc-job__apply .wp-block-button__link:hover{opacity:.88;}

/* modal */
.bc-careers__modal{position:fixed;inset:0;z-index:99999;display:none;align-items:flex-start;justify-content:center;background:rgba(58,56,41,.55);padding:40px 16px;overflow-y:auto;}
.bc-careers__modal.is-open{display:flex;}
.bc-careers__dialog{position:relative;background:var(--card);border-radius:14px;max-width:560px;width:100%;padding:40px;margin:auto;box-shadow:0 24px 64px rgba(0,0,0,.28);max-height:calc(100vh - 80px);overflow-y:auto;}
.bc-careers__dialog:focus{outline:none;}
.bc-careers__close{position:absolute;top:12px;right:16px;width:36px;height:36px;border:0;background:transparent;font-size:28px;line-height:1;color:var(--muted);cursor:pointer;border-radius:50%;}
.bc-careers__close:hover{background:rgba(0,0,0,.05);color:var(--ink);}
.bc-careers__formtitle{font-family:var(--bc-display);text-transform:uppercase;letter-spacing:.04em;font-weight:700;font-size:22px;color:var(--ink);margin:0 0 6px;padding-right:30px;}
.bc-careers__formsub{font-size:14px;color:var(--muted);margin:0 0 22px;}
body.bc-modal-open{overflow:hidden;}

/* Forminator skin inside the modal */
.bc-careers__dialog .forminator-input,
.bc-careers__dialog .forminator-textarea,
.bc-careers__dialog input[type=text],
.bc-careers__dialog input[type=email],
.bc-careers__dialog input[type=tel],
.bc-careers__dialog textarea{background:#fff!important;border:1px solid var(--border)!important;border-radius:6px!important;color:var(--ink)!important;font-size:15px!important;}
.bc-careers__dialog .forminator-input:focus,
.bc-careers__dialog .forminator-textarea:focus,
.bc-careers__dialog input:focus,
.bc-careers__dialog textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(147,171,155,.25)!important;outline:none!important;}
.bc-careers__dialog .forminator-label{font-family:var(--bc-display)!important;text-transform:uppercase!important;letter-spacing:.1em!important;font-weight:500!important;font-size:12px!important;color:var(--muted)!important;}
.bc-careers__dialog .forminator-button-submit,
.bc-careers__dialog button[type=submit]{font-family:var(--bc-display)!important;text-transform:uppercase!important;letter-spacing:.16em!important;font-weight:600!important;font-size:14px!important;color:var(--cream)!important;background:var(--ink)!important;border:0!important;padding:14px 36px!important;border-radius:4px!important;}

/* shrink the "Choose File" upload button */
.bc-careers__dialog .forminator-button-upload,
.bc-careers__dialog .forminator-field .forminator-button-upload,
.bc-careers__dialog input[type=file]::file-selector-button{
  font-family:var(--bc-display)!important;text-transform:uppercase!important;letter-spacing:.08em!important;
  font-weight:600!important;font-size:11.5px!important;
  padding:8px 16px!important;width:auto!important;min-width:0!important;border-radius:4px!important;}

@media (max-width:600px){
  .bc-careers__title{font-size:46px;}
  .bc-careers__dialog{padding:30px 24px;}
  .bc-job{flex-direction:column;align-items:flex-start;gap:18px;}
  .bc-job__apply .wp-block-button__link{display:block;text-align:center;}
}
/* END CAREERSE STYLES */





hr.wp-block-separator.has-text-color.has-alpha-channel-opacity.has-background.bc-hero-divider,
hr.wp-block-separator.has-text-color.has-alpha-channel-opacity.has-background.bc-title-divider{
	margin-left:0 !important;
}



.bc-entry-content a {
	text-decoration:none !important;
}

.bc-page-wrap ul li {
	list-style-type:disc;
	    font-family: "oso-sans", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 14px;
    line-height: 1.5;
}
.forminator-ui.forminator-custom-form-100.forminator-design--material.forminator-ui.forminator-custom-form[data-design=material] .forminator-button {
    padding: 6px 30px !important;
    font-size: 12px !important;
}

.forminator-field,
.forminator-field p,
.forminator-field a,

.forminator-field label,

.forminator-field input{
	
	    font-family: "oso-sans", sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.5;
}



/* =========================================
   FAQ PAGE STYLES  (Template Name: FAQ)
   Header mirrors the interior-page organic hero (.bc-gs__hero);
   palette values match the Services / Get Started pages.
   ========================================= */
.bc-faq{
  --body:#57543F; --muted:#827C68; --border:#E2DAC9;
  --eyebrow:#9DB6BC;      /* dusty blue-sage, same as interior headers */
  --rule:#A9C3AF;         /* underline accent */
  max-width:1100px;
  margin:0 auto;
  padding:60px 40px 80px;
  color:var(--body);
}

/* --- organic hero: text left, blob photo right --- */
.bc-faq__hero{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:center;
  gap:48px;
  margin-bottom:64px;
}
.bc-faq__eyebrow{
  font-family:var(--font-head);
  text-transform:uppercase;
  letter-spacing:.28em;
  font-weight:600;
  color:var(--eyebrow);
  font-size:24px;
  line-height:1;
  margin:0 0 10px;
}
.bc-faq__title{
  font-family:var(--font-head);
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:1px;
  font-size:72px;
  line-height:1;
  color:var(--navy);
  margin:0;
}
.bc-faq__rule{
  width:110px;
  height:2px;
  background:var(--rule);
  border:0;
  margin:20px 0 26px;
}
.bc-faq__lede{
  max-width:440px;
  font-family:"oso-sans", sans-serif;
  font-size:18px;
  line-height:1.65;
  color:var(--body);
  margin:0;
}

.bc-faq__media{position:relative;}
.bc-faq__img{margin:0;}
.bc-faq__img img{
  width:100%;
  height:auto;
  aspect-ratio:3/2;
  object-fit:cover;
  border-radius:45% 55% 48% 52% / 60% 56% 44% 40%;   /* organic blob — same curve as .bc-gs__hero-img */
  display:block;
}
.bc-faq__img-placeholder{
  aspect-ratio:3/2;
  border:2px dashed var(--border);
  border-radius:45% 55% 48% 52% / 60% 56% 44% 40%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:24px;
  color:var(--muted);
  font-family:"oso-sans", sans-serif;
  font-size:14px;
  background:var(--cream-dark);
}
/* soft brand watermark, echoing the interior hero */
.bc-faq__media::after{
  content:"";
  position:absolute;
  right:-6px;
  bottom:-22px;
  width:120px;
  height:120px;
  background:url(https://behavioralconc.wpenginepowered.com/wp-content/uploads/2026/04/cropped-favicon.png) no-repeat center/contain;
  opacity:.55;
  pointer-events:none;
}

/* --- accordion: styles the native core/details blocks built in Gutenberg --- */
.bc-faq__list{
  max-width:840px;
  margin:0 auto;
  border-top:1px solid var(--border);
}
.bc-faq__list .wp-block-details{
  border-bottom:1px solid var(--border);
  margin:0;
  padding:0;
}
.bc-faq__list .wp-block-details > summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:22px 4px;
  font-family:var(--font-head);
  font-weight:600;
  font-size:21px;
  letter-spacing:.01em;
  color:var(--navy);
  transition:color var(--transition);
}
.bc-faq__list .wp-block-details > summary::-webkit-details-marker{display:none;}  /* hide default triangle */
.bc-faq__list .wp-block-details > summary:hover{color:var(--teal-dark);}

/* +/- marker that flips to a minus when open */
.bc-faq__list .wp-block-details > summary::after{
  content:"+";
  flex:0 0 auto;
  font-family:var(--font-head);
  font-weight:400;
  font-size:28px;
  line-height:1;
  color:var(--teal);
  transition:color var(--transition);
}
.bc-faq__list .wp-block-details[open] > summary::after{content:"\2013";}  /* en dash */

.bc-faq__list .wp-block-details > *:not(summary){
  padding:0 4px 6px;
  animation:bc-faq-fade .25s ease;
}
.bc-faq__list .wp-block-details p{
  max-width:70ch;
  font-family:"oso-sans", sans-serif;
  font-size:16px;
  line-height:1.7;
  color:var(--body);
  margin:0 0 16px;
}
.bc-faq__list .wp-block-details a{color:var(--teal-dark);text-decoration:underline;}
@keyframes bc-faq-fade{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}

/* editor-only hint on an empty FAQ page */
.bc-faq__hint{
  font-family:"oso-sans", sans-serif;
  font-size:15px;
  line-height:1.7;
  color:var(--muted);
  background:var(--cream-dark);
  border:1px dashed var(--border);
  border-radius:var(--radius);
  padding:20px 24px;
  margin:24px 0;
}

/* --- responsive --- */
@media (max-width:781px){
  .bc-faq{padding:40px 22px 60px;}
  .bc-faq__hero{grid-template-columns:1fr;gap:28px;margin-bottom:44px;}
  .bc-faq__title{font-size:48px;}
  .bc-faq__media{order:-1;max-width:420px;}
  .bc-faq__media::after{width:84px;height:84px;right:0;bottom:-14px;}
  .bc-faq__list .wp-block-details > summary{font-size:19px;padding:18px 2px;}
}
/* FAQ PAGE STYLES END */


/* =========================================
   GET STARTED (page-id-56) — contact form field polish
   High-specificity (module id + design class) so it beats
   Forminator's own material-design field styles.
   - textarea background -> transparent, to match the inputs
   - ~6px inset on all fields so placeholder text isn't flush
     against the edge
   ========================================= */
body.page-id-56 #forminator-module-53.forminator-design--material .forminator-input,
body.page-id-56 #forminator-module-53.forminator-design--material .forminator-textarea,
body.page-id-56 #forminator-module-53.forminator-design--material input[type=text],
body.page-id-56 #forminator-module-53.forminator-design--material input[type=email],
body.page-id-56 #forminator-module-53.forminator-design--material input[type=tel],
body.page-id-56 #forminator-module-53.forminator-design--material textarea{
  background:transparent !important;
  padding-left:6px !important;
  padding-right:6px !important;
}
body.page-id-56 #forminator-module-53.forminator-design--material .forminator-textarea,
body.page-id-56 #forminator-module-53.forminator-design--material textarea{
  padding-top:6px !important;
  padding-bottom:6px !important;
}
/* The material-design floating labels double as the placeholder text and sit
   at the field's left edge (the input's own padding doesn't move them). Inset
   the labels + the select2 chosen-value text so nothing hugs the left edge. */
body.page-id-56 #forminator-module-53.forminator-design--material .forminator-label,
body.page-id-56 #forminator-module-53 .select2-selection__rendered,
body.page-id-56 #forminator-module-53 .select2-selection__placeholder{
  padding-left:6px !important;
}


/* =========================================
   MOBILE REFINEMENTS
   Sections above each ship their own media queries; these are the
   gaps that were left behind — desktop padding that never shrank,
   tap targets under the 44px minimum, and fields that trigger the
   iOS focus zoom. Kept last in the file so equal-specificity rules
   here win over the earlier ones they correct.
   ========================================= */

/* ── Top bar: tap-to-call ─────────────────────────────
   .bc-topbar__left/__right are hidden under 600px and __rotator is
   hidden at every width, so the bar rendered as an empty teal strip.
   The phone link is the one thing worth keeping here on a phone. */
@media (max-width: 600px) {
  .bc-topbar {
    justify-content: center;
    padding: 0 16px;
  }
  .bc-topbar__right { display: block; }
  .bc-topbar__right a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    font-size: 1.05rem;
    letter-spacing: 0.06em;
  }
  .bc-topbar__right a::before {
    content: "\260F";
    font-size: 1.15em;
    line-height: 1;
  }
}

/* ── Header ───────────────────────────────────────────
   Base padding is 40px a side and never shrank, so the sticky header
   held ~20% of the viewport at 390px.

   The row itself can't fit logo + CTA + toggle under ~600px: left as a
   single row the CTA wrapped to two lines mid-button (measured 136x68 at
   414px), and pinning it to one line instead pushed the toggle past the
   right edge. So wrap to two rows across the whole mobile range — the
   shape the 400px breakpoint already used, applied consistently. */
@media (max-width: 600px) {
  .bc-header,
  .bc-header--scrolled {
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    padding: 10px 20px;
  }
  .bc-header__nav.is-open { padding: 20px; }
  .bc-header__nav.is-open a { padding: 6px 0; }

  /* The logo carries a -25px nudge that assumed the 40px desktop gutter;
     against the 20px mobile gutter it hung off the left edge. */
  img.custom-logo { margin-left: 0; }
}

@media (max-width: 900px) {
  .bc-header__cta { white-space: nowrap; }

  .bc-header__toggle {
    width: 44px;
    height: 44px;
    flex-shrink: 0;   /* the header is a flex row; without this the 44px
                         collapses back to 32px once the row gets tight */
    align-items: center;
    justify-content: center;
  }
}

/* ── Fields: never below 16px ─────────────────────────
   Under 16px iOS Safari zooms the page on focus and leaves the user
   scrolled sideways — worst on the Get Started form, the main
   conversion path. */
@media (max-width: 600px) {
  .bc-search-bar { padding: 24px 20px; }
  .bc-search-bar__select-wrap { width: 100%; max-width: 320px; }
  .bc-search-bar__select {
    font-size: 16px;
    min-width: 0;
    width: 100%;
    padding: 10px 36px 10px 4px;
  }

  .bc-gs-formcol .forminator-input,
  .bc-gs-formcol .forminator-textarea,
  .bc-gs-formcol input[type=text],
  .bc-gs-formcol input[type=email],
  .bc-gs-formcol input[type=tel],
  .bc-gs-formcol textarea,
  .bc-careers__dialog .forminator-input,
  .bc-careers__dialog .forminator-textarea,
  .bc-careers__dialog input[type=text],
  .bc-careers__dialog input[type=email],
  .bc-careers__dialog input[type=tel],
  .bc-careers__dialog textarea,
  .search-field {
    font-size: 16px !important;
  }
}

/* ── Interior page gutters ────────────────────────────
   These wrappers kept 40–60px of horizontal padding on a 390px
   screen; .bc-page-wrap plus a 40px card inset left team bios
   about 217px of usable width. */
@media (max-width: 600px) {
  .bc-page-wrap,
  .bc-page-content {
    padding-left: 20px;
    padding-right: 20px;
  }
  .bc-process { padding: 48px 20px; }
  .bc-footer { padding: 44px 20px 24px; }

  .bc-page-full__content { padding: 40px 20px; }
  .bc-page-full__title-bar { padding: 32px 20px; }
  .bc-page-full__banner { height: 240px; }
  .bc-page-full__banner-overlay { padding: 24px 20px; }

  .bc-landing-header { padding: 16px 20px; }
  .bc-landing-content { padding: 40px 20px; }

  .bc-single__hero-img img { height: 220px; }
}

/* ── Card insets ──────────────────────────────────────*/
@media (max-width: 600px) {
  .bc-team-featured-card,
  .bc-team-card,
  .bc-mission-card { padding: 24px; }
  .bc-cta-footer { padding: 28px 20px; }
  .bc-job { padding: 22px 20px; }
  .bc-gs__card { padding: 24px 20px; }
}

/* ── Get Started header ───────────────────────────────
   .bc-gs__title alone kept its 72px desktop size on mobile; its
   siblings already step down (.bc-faq__title 48px, .bc-careers__title 46px). */
@media (max-width: 781px) {
  .bc-gs__title { font-size: 48px; }
  .bc-gs__eyebrow { font-size: 20px; }
  .bc-gs__lede { font-size: 16px; }
}

/* ── Footer links ─────────────────────────────────────
   18px tall with no padding, stacked one per row under 600px —
   too small and too close together to hit reliably. */
@media (max-width: 600px) {
  .bc-footer__nav-list li { margin-bottom: 0; }
  .bc-footer__nav-list li a {
    display: inline-block;
    padding: 11px 0;
  }
  .bc-footer__contact { line-height: 2.2; }
}


/* =========================================
   PRIVACY / COOKIE NOTICE  (CCPA)
   Not a modal and not an overlay: CCPA is opt-out, so the site stays
   usable while the visitor decides. Colours are taken from the pairs
   already proven above — navy on white, white on navy.
   ========================================= */
.bc-privacy {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 9998;          /* below the sticky header's 100, above content */
  background: var(--white);
  border-top: 2px solid var(--teal);
  box-shadow: 0 -6px 24px rgba(61,53,53,0.16);
  padding: 16px 20px;
}
.bc-privacy[hidden] { display: none; }

.bc-privacy__inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}

.bc-privacy__text {
  font-family: "oso-sans", sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: var(--navy);
  margin: 0;
  flex: 1 1 380px;
  max-width: 74ch;
}
.bc-privacy__text a {
  color: var(--navy);
  text-decoration: underline;   /* never colour alone (1.4.1) */
}

.bc-privacy__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  flex-shrink: 0;
}

.bc-privacy__btn {
  font-family: var(--font-head);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 12px 20px;
  min-height: 44px;             /* tap target */
  border-radius: var(--radius);
  border: 2px solid var(--navy);
  background: transparent;
  color: var(--navy);
  cursor: pointer;
  transition: background var(--transition), color var(--transition);
}
.bc-privacy__btn:hover { background: var(--navy); color: var(--white); }

.bc-privacy__btn--ok {
  background: var(--navy);
  color: var(--white);
}
.bc-privacy__btn--ok:hover { opacity: 0.88; }

/* Once opted out the choice is recorded, so the control has nothing left
   to do — the status line replaces it. */
.bc-privacy.is-opted-out .bc-privacy__btn--optout { display: none; }

.bc-privacy__status {
  font-family: "oso-sans", sans-serif;
  font-size: 13px;
  line-height: 1.6;
  color: var(--navy);
  max-width: 1100px;
  margin: 0 auto;
}
.bc-privacy__status:empty { display: none; }
.bc-privacy.is-opted-out .bc-privacy__status { margin-top: 10px; }

/* Persistent footer opt-out link — a <button>, so it needs resetting */
.bc-footer__privacy {
  text-align: center;
  padding-bottom: 12px;
}
.bc-privacy__footer-link {
  font-family: var(--font-body);
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  color: rgba(61,53,53,0.9);    /* matches .bc-footer__bottom's ratio */
  background: none;
  border: 0;
  padding: 14px 4px;            /* 44px tap target at this line-height */
  cursor: pointer;
  text-decoration: underline;
}
.bc-privacy__footer-link:hover { color: var(--navy); }

@media (max-width: 600px) {
  .bc-privacy { padding: 14px 16px; }
  .bc-privacy__inner { gap: 14px; }
  .bc-privacy__actions { width: 100%; }
  .bc-privacy__btn {
    flex: 1 1 100%;
    text-align: center;
    font-size: 0.75rem;
    letter-spacing: 0.08em;
  }
}


/* =========================================
   SERVICES PAGE — ONE SHARED CONTAINER
   Each section brought its own gutter on top of .bc-page-wrap's 40px,
   so their content landed on three different edges:

     CTA banner background  40px   (section padding is its inner inset)
     service cards          64px   (24px section gutter)
     FAQ items              80px   (40px section gutter)

   Zeroing the inner gutters lets .bc-page-wrap define a single
   container, so all three line up on its edge. The CTA keeps its
   padding — that's the inset inside its own background, and the
   background *is* its container edge.

   1000px mirrors the content width set on the Group blocks themselves in
   the editor — Gutenberg emits it per-block as
   .wp-container-core-group-is-layout-<hash> > * { max-width: 1000px }.
   It is deliberately NOT --wp--style--global--content-size: that resolves
   to 860px here (theme.json), so binding to it would narrow the whole
   page rather than line it up. The service grid and FAQ items already sit
   at 1000px; the CTA group is the one that never got the setting, which
   is why its banner ran 10px wider a side. Retune here if that editor
   value ever changes.

   Scoped to .bc-entry-content, which only exists on editor-built pages.
   The FAQ page template puts .bc-faq at main > .bc-faq with no
   .bc-entry-content anywhere, so its max-width and gutter — which are
   load-bearing there — stay untouched.
   ========================================= */
.bc-entry-content .bc-services-hero,
.bc-entry-content .bc-faq,
.bc-entry-content .bc-cta-footer {
  --bc-page-container: 1000px;
  max-width: var(--bc-page-container);
  margin-left: auto;
  margin-right: auto;
}

/* =========================================
   SERVICES — "WHAT WE OFFER" FULL-BLEED BAND
   Breaks out of .bc-page-wrap (1100px + 40px gutters) to span 90% of the
   viewport, capped at 2000px.

   .bc-page-wrap is margin:0 auto, so its centre IS the viewport's centre —
   left:50% + translateX(-50%) re-centres this section on the viewport from
   inside the wrapper, without hard-coding the wrapper's width.

   90vw, not 100vw: vw includes the scrollbar, so a full-viewport width would
   overflow horizontally by the scrollbar's width.

   Deliberately NOT part of the shared-container rule above — this section is
   now intentionally wider than the hero, FAQ and CTA banner.
   ========================================= */
.bc-entry-content .bc-services-list {
  width: min(90vw, 2000px);
  max-width: none;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}

/* The Group block carries a 1000px content width set in the editor, which
   would otherwise pin the heading and card grid to 1000px inside the now
   wider section. Beats Gutenberg's .wp-container-<hash> > :where(…) rule,
   which :where() keeps at (0,1,0). */
.bc-entry-content .bc-services-list > * {
  max-width: none;
}

/* Drop the per-section gutters that pushed content inside that edge.
   The CTA is excluded on purpose: its 40px is the inset within its own
   background, and that background is the container edge. */
.bc-entry-content .bc-services-hero,
.bc-entry-content .bc-services-list,
.bc-entry-content .bc-faq {
  padding-left: 0;
  padding-right: 0;
}


/* =========================================
   ACCESSIBILITY — WCAG 2.1 AA
   Measured against the rendered pages; each value below is the
   brand hue darkened only as far as it takes to clear the ratio,
   so the palette keeps its character.
   ========================================= */

/* ── Text contrast (1.4.3) ────────────────────────────
   These three custom properties are re-declared per page-block
   (.bc-gs, .bc-careers, .bc-policy, .bc-faq). Overriding them in one
   place lifts every element that reads from them.

     --eyebrow  #9DB6BC → 1.88:1 on cream  (needs 4.5)
     --accent   #93AB9B → 2.32:1 on card   (needs 4.5)
     --muted    #827C68 → 3.68:1 on card   (needs 4.5)

   Values are set to pass 4.5:1 at ANY size against the darkest
   background they sit on (--cream #F4EFE5). The eyebrows look like
   "large text" but don't qualify: WCAG's 3:1 allowance needs 24px, or
   18.66px *bold*, and .bc-careers__eyebrow is 22px/600. */
.bc-gs,
.bc-careers,
.bc-careers__modal,
.bc-policy,
.bc-faq {
  --eyebrow: #5C6A6E;
  --accent:  #5C6B61;
  --muted:   #6C6857;
}

/* Footer legal line: navy at 0.5 alpha over teal reads 2.42:1 */
.bc-footer__bottom { color: rgba(61,53,53,0.9); }

/* Role text sits on the #faf6ed card at 4.39:1 — just short. The editor
   sets this per-block as an inline style="color:#5a7a6d", so only
   !important reaches it. The durable fix is re-picking the colour on the
   blocks themselves; until then this holds the ratio. */
.bc-team-role,
p.bc-team-role.has-text-color { color: #547063 !important; }

/* Forminator's default required-asterisk red is 4.42:1 on the form card
   (4.09:1 on cream). The asterisk is the only marker of a required
   field, so it has to carry text contrast. */
.forminator-required,
.forminator-ui .forminator-required { color: #D51717 !important; }

/* Services hero eyebrow — the editor sets color:#a8c4c2 inline, which is
   1.63:1 on cream (needs 3:1 even at its 32px display size). */
.bc-hero-eyebrow,
h1.bc-hero-eyebrow.has-text-color { color: #5C6B61 !important; }

/* --teal-dark and --green are Customizer-driven brand tints. The live
   Customizer sets both --teal and --teal-dark to #b7d2c9, so anything
   using them as a TEXT colour renders around 1.4:1 — the FAQ answer
   links were effectively invisible. Body-coloured + underlined is the
   safe pairing here; the links keep their underline either way, so they
   stay identifiable without relying on colour (1.4.1). */
.bc-faq__list .wp-block-details a { color: var(--navy); }
.bc-faq__list .wp-block-details > summary:hover {
  color: var(--navy);
  text-decoration: underline;
}

/* ── Reduced motion (2.3.3) ───────────────────────────
   The hero circles already opt out; the scroll-reveal, the rising
   sun, the FAQ panel fade and the smooth-scroll jump did not. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  .bc-will-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .bc-hero__sun--custom,
  .bc-faq__list .wp-block-details > *:not(summary) {
    animation: none !important;
  }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}
