/*
Theme Name: Kolmac
Theme URI: https://kolmac.com
Author: Kolmac Integrated Behavioral Health
Author URI: https://kolmac.com
Description: A modern, accessible WordPress theme for Kolmac Integrated Behavioral Health. Built with Tailwind CSS, full Gutenberg block support, custom block patterns, and a sticky navigation header with search functionality.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: kolmac
Tags: block-patterns, full-site-editing, custom-colors, custom-logo, custom-menu, featured-images, footer-widgets, sticky-post, threaded-comments, translation-ready, wide-blocks
*/

/* Theme base styles — Tailwind handles utilities via compiled CSS */
:root {
  --color-primary:       #0d4a5a;
  --color-primary-dark:  #083847;
  --color-primary-light: #1a6b7f;
  --color-accent:        #c84b1f;
  --color-accent-hover:  #a83c17;
  --color-teal-light:    #e8f2f4;
  --color-teal-mid:      #d0e8ec;
  --color-green-accent:  #5a8a60;
  --color-green-light:   #8ab890;
  --color-text:          #1a2e35;
  --color-text-muted:    #4a6572;
  --color-white:         #ffffff;
  --color-bg-light:      #f0f7f9;
  --color-border:        #c8dde3;
  --font-heading:        'Newsreader', Georgia, serif;
  --font-body:           'DM Sans', 'Helvetica Neue', sans-serif;
  --header-height:       80px;
  --container-max:       1200px;
  --radius-sm:           0.375rem;
  --radius-md:           0.75rem;
  --radius-lg:           1rem;
  --shadow-sm:           0 1px 3px rgba(0,0,0,0.08);
  --shadow-md:           0 4px 16px rgba(13,74,90,0.12);
  --shadow-lg:           0 8px 32px rgba(13,74,90,0.18);
  --transition:          0.2s ease;
}

/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--color-text);
  background: var(--color-white);
  -webkit-font-smoothing: antialiased;
  margin: 0;
}
img, video { max-width: 100%; height: auto; display: block; }
a { color: var(--color-primary); transition: color var(--transition); }
a:hover { color: var(--color-primary-light); }
h1,h2,h3,h4,h5,h6 {
  font-family: var(--font-heading);
  color: var(--color-primary);
  line-height: 1.25;
  margin-top: 0;
}

/* ===== LAYOUT ===== */
.site { display: flex; flex-direction: column; min-height: 100vh; }
.site-content { flex: 1; }
.container {
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.wp-block-group.alignfull,
.wp-block-cover.alignfull { width: 100%; max-width: none; }

/* ===== STICKY HEADER ===== */
#masthead {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: var(--color-white);
  border-bottom: 1px solid transparent;
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
  height: var(--header-height);
  display: flex;
  align-items: center;
  width: 100%;
}
#masthead.scrolled {
  box-shadow: var(--shadow-md);
  border-bottom-color: var(--color-border);
}
.site-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 2rem;
}
.site-branding { flex-shrink: 0; }
.site-branding .custom-logo { height: 50px; width: auto; }
.site-branding .site-title {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--color-primary);
  text-decoration: none;
  margin: 0;
}

/* ===== TOP ACTION BAR – desktop only ===== */
.header-top-bar {
  background: var(--color-white);
  border-bottom: 1px solid var(--color-border);
  padding: 0.4rem 0;
  font-size: 0.8rem;
}
@media (max-width: 1024px) {
  .header-top-bar { display: none; }
}
.header-top-bar-inner {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.5rem;
}
.header-action-btn {
  display: inline-block;
  padding: 0.3rem 0.8rem;
  border: 1.5px solid var(--color-primary);
  border-radius: var(--radius-sm);
  color: var(--color-primary);
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  transition: all var(--transition);
  background: transparent;
  cursor: pointer;
}
.header-action-btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
}
.header-action-btn.primary {
  background: var(--color-primary);
  color: var(--color-white);
}
.header-action-btn.primary:hover {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
}

/* ===================================================================
   DESKTOP NAVIGATION
   =================================================================== */
.main-navigation { display: flex; align-items: center; }
.main-navigation > ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; align-items: center; gap: 0;
}
.main-navigation > ul > li { position: relative; }

/* Top-level links */
.main-navigation > ul > li > a {
  display: block;
  padding: 0.625rem 0.75rem;
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--color-text);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--transition);
}
.main-navigation > ul > li > a:hover,
.main-navigation > ul > li.current-menu-item > a,
.main-navigation > ul > li.current-menu-ancestor > a,
.main-navigation > ul > li:hover > a,
.main-navigation > ul > li:focus-within > a {
  color: var(--color-accent);
}

/* ===================================================================
   DROPDOWN PANEL
   Flex-row container: left-col | sub-col | cta
   Sub-col is always in the flow (uses visibility not display)
   so the panel width never jumps when sub-col appears.
   =================================================================== */
.main-navigation > ul > li > ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;            /* JS overrides to right-align when near viewport edge */
  z-index: 990;
  list-style: none;
  margin: 0; padding: 0;
  background: transparent;
  /* Shadow via filter so it wraps the whole panel including teal sections */
  filter: drop-shadow(0 10px 30px rgba(0,0,0,0.16)) drop-shadow(0 2px 6px rgba(13,74,90,0.10));
}
.main-navigation > ul > li:hover > ul,
.main-navigation > ul > li:focus-within > ul {
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
/* Hover bridge — no gap on mouse travel */
.main-navigation > ul > li > ul::before {
  content: '';
  position: absolute;
  bottom: 100%; left: 0; right: 0;
  height: 8px;
  background: transparent;
}

/* ===================================================================
   LEFT COLUMN — div.nav-left-col injected by JS
   =================================================================== */
.nav-left-col {
  background: var(--color-white);
  min-width: 240px;
  width: 240px;
  flex-shrink: 0;
  padding: 0.5rem 0;
  border-radius: 0 0 0 10px;
  overflow: visible;   /* allow triangle to bleed over right border */
}
.nav-left-col li {
  position: relative;
  display: block;
  list-style: none;
}

/* Left-col links */
.nav-left-col li > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.625rem 1.125rem;
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--color-text);
  text-decoration: none;
  transition: background var(--transition), color var(--transition);
  white-space: normal;
  line-height: 1.35;
  gap: 0.5rem;
}
.nav-left-col li > a:hover {
  background: var(--color-teal-light);
  color: var(--color-text);
}
.nav-left-col li.current-menu-item > a,
.nav-left-col li.current-menu-ancestor > a {
  color: #1a7fbf;
  font-weight: 600;
}

/* ---- Triangle arrow indicator for items with children ----
   Sits at the very right edge of the left column.
   Uses a pseudo-element on the <a> tag.
   Inactive: gray outline triangle. Active: solid teal-blue filled.
   Matches the screenshot — arrow is flush with/overlapping the
   right border of the left column. ---- */
.nav-left-col li.menu-item-has-children > a {
  /* Extra right padding to make room for the triangle */
  padding-right: 0.875rem;
}
.nav-left-col li.menu-item-has-children > a::after {
  content: '';
  display: block;
  flex-shrink: 0;
  /* Solid right-pointing triangle */
  width: 0; height: 0;
  border-style: solid;
  border-width: 5.5px 0 5.5px 8px;
  border-color: transparent transparent transparent #b0c4cc;
  transition: border-left-color 0.15s ease, transform 0.15s ease;
  margin-left: auto;
  /* Push it flush to the right edge — will sit at column boundary */
  margin-right: -0.125rem;
}

/* Active state (sub-col is showing for this item) */
.nav-left-col li.nav-sub-active > a {
  background: var(--color-teal-light);
  color: #1a7fbf;
  font-weight: 600;
}
.nav-left-col li.nav-sub-active > a::after {
  border-left-color: #1a7fbf;
}

/* Hover state (sub-col will open) */
.nav-left-col li.menu-item-has-children:hover > a,
.nav-left-col li.menu-item-has-children:focus-within > a {
  background: var(--color-teal-light);
  color: #1a7fbf;
  font-weight: 600;
}
.nav-left-col li.menu-item-has-children:hover > a::after,
.nav-left-col li.menu-item-has-children:focus-within > a::after {
  border-left-color: #1a7fbf;
}

/* ===================================================================
   SUB-COLUMN — div.nav-sub-col injected by JS
   Hidden by default (display:none). JS sets display:flex when a
   child item is hovered/focused. Width stays constant at 190px
   once shown so the CTA card doesn't jump.
   =================================================================== */
.nav-sub-col {
  display: none;               /* JS toggles to flex */
  flex-direction: column;
  background: var(--color-teal-light);
  border-left: 1px solid var(--color-border);
  width: 190px;
  flex-shrink: 0;
  padding: 0.5rem 0;
  align-self: stretch;
}
.nav-sub-col ul {
  list-style: none;
  margin: 0; padding: 0;
  display: flex;
  flex-direction: column;
}
.nav-sub-col li { display: block; list-style: none; }

/* Sub-col links — tighter left pad on narrow column */
.nav-sub-col li > a {
  display: block;
  padding: 0.6rem 1rem;         /* 1rem left (not 1.25) — column only 190px */
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--color-text);
  text-decoration: none;
  white-space: normal;
  line-height: 1.35;
  transition: background var(--transition), color var(--transition);
}
.nav-sub-col li > a:hover {
  background: var(--color-teal-mid);
  color: var(--color-primary);
}

/* ===================================================================
   CTA CARD — li.nav-dropdown-cta injected by JS
   =================================================================== */
.nav-dropdown-cta {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  padding: 1rem 1.125rem;
  background: var(--color-teal-light);
  border-left: 1px solid var(--color-border);
  border-radius: 0 0 10px 0;
  width: 210px;
  flex-shrink: 0;
  list-style: none;
}
.nav-dropdown-cta-card {
  background: var(--color-primary);
  border-radius: var(--radius-md);
  padding: 1.25rem;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.nav-dropdown-cta-card h3 {
  font-family: var(--font-heading);
  font-size: 1rem;
  color: var(--color-white);
  margin: 0; line-height: 1.3;
}
.nav-dropdown-cta-card .cta-phone {
  display: flex; align-items: center; gap: 0.4rem;
  color: var(--color-white); text-decoration: underline;
  font-size: 0.875rem; font-weight: 600;
  font-family: var(--font-body);
}
.nav-dropdown-cta-card .cta-phone:hover { color: var(--color-teal-mid); }
.nav-dropdown-cta-card .btn-appt {
  display: block;
  padding: 0.5rem 0.875rem;
  border: 1.5px solid var(--color-white);
  border-radius: var(--radius-sm);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 0.8rem; font-weight: 600;
  text-decoration: none; background: transparent;
  transition: background var(--transition);
  cursor: pointer; text-align: center;
}
.nav-dropdown-cta-card .btn-appt:hover {
  background: rgba(255,255,255,0.15); color: var(--color-white);
}

/* Rounded bottom-left when no sub-col/CTA follow */
.nav-left-col:last-child { border-radius: 0 0 10px 10px; }

/* ===== SEARCH TOGGLE ===== */
.header-search-wrap { position: relative; display: flex; align-items: center; }
.search-toggle-btn {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  color: var(--color-text);
  display: flex;
  align-items: center;
  border-radius: var(--radius-sm);
  transition: color var(--transition), background var(--transition);
}
.search-toggle-btn:hover { color: var(--color-primary); background: var(--color-teal-light); }

/* Desktop search panel — positioned below the toggle button */
.header-search-form {
  position: absolute;
  top: calc(100% + 0.75rem);
  right: 0;
  background: transparent;
  z-index: 999;
  width: 340px;
}
/* Pill inner — matches .mobile-search-inner exactly */
.desktop-search-inner {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  background: var(--color-white);
  border: 1.5px solid var(--color-border);
  border-radius: 999px;
  padding: 0.625rem 1.125rem;
  color: var(--color-text-muted);
  box-shadow: var(--shadow-lg);
  transition: border-color var(--transition);
}
.desktop-search-inner:focus-within {
  border-color: var(--color-primary);
}
.desktop-search-inner svg { flex-shrink: 0; }
.desktop-search-input {
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--color-text);
  width: 100%;
  min-width: 0;
}
.desktop-search-input::placeholder { color: var(--color-text-muted); }
.desktop-search-clear {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  color: var(--color-text-muted);
  display: flex;
  align-items: center;
  flex-shrink: 0;
  transition: color var(--transition);
}
.desktop-search-clear:hover { color: var(--color-primary); }

/* ── Shared AJAX search results dropdown ──
   Used by both desktop (.header-search-form) and mobile (.mobile-search-wrap) */
.search-results-dropdown {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  margin-top: 0.5rem;
  overflow: hidden;
  max-height: 420px;
  overflow-y: auto;
}
/* Desktop: dropdown aligns with the pill field */
.header-search-form .search-results-dropdown {
  /* width matches the pill wrapper (.header-search-form) */
  width: 100%;
}
/* Mobile: full width inside the search wrap */
.mobile-search-wrap .search-results-dropdown {
  width: 100%;
  border-radius: 12px;
  margin-top: 0.375rem;
}
/* Result item */
.srd-item {
  display: block;
  padding: 0.75rem 1rem;
  text-decoration: none;
  color: var(--color-text);
  border-bottom: 1px solid var(--color-border);
  transition: background var(--transition);
  outline-offset: -2px;
}
.srd-item:last-child { border-bottom: none; }
.srd-item:hover,
.srd-item:focus    { background: var(--color-bg-light); color: var(--color-primary); }
.srd-item-title {
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-primary);
  line-height: 1.3;
  margin-bottom: 0.2rem;
}
.srd-item:hover .srd-item-title,
.srd-item:focus .srd-item-title { text-decoration: underline; }
.srd-item-meta {
  display: flex;
  gap: 0.5rem;
  align-items: baseline;
  flex-wrap: wrap;
}
.srd-item-type {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--color-accent);
  flex-shrink: 0;
}
.srd-item-excerpt {
  font-size: 0.8rem;
  color: var(--color-text-muted);
  line-height: 1.4;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}
/* Loading dots */
.srd-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 1.25rem;
}
.srd-loading-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--color-teal-mid);
  animation: srd-pulse 1.2s ease-in-out infinite;
}
.srd-loading-dot:nth-child(2) { animation-delay: 0.2s; }
.srd-loading-dot:nth-child(3) { animation-delay: 0.4s; }
@keyframes srd-pulse {
  0%, 100% { opacity: 0.3; transform: scale(0.85); }
  50%       { opacity: 1;   transform: scale(1); }
}
/* Empty / no-results */
.srd-empty {
  padding: 1.25rem 1rem;
  text-align: center;
}
.srd-empty-msg {
  font-size: 0.875rem;
  color: var(--color-text-muted);
  margin: 0 0 0.625rem;
}
.srd-all-results {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: underline;
}

/* ===== OLD MOBILE TOGGLE — superseded by new mobile nav system ===== */
/* See "MOBILE HEADER & NAVIGATION" section appended at end of file */

/* ===== COLOR HEADER ACCENT BAR — superseded by 3-segment version below ===== */
.header-accent-bar {
  height: 5px;
  width: 100%;
}

/* ===== BUTTONS ===== */
.btn, .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: all var(--transition);
  border: 2px solid transparent;
}
.btn-primary, .wp-block-button.is-style-primary .wp-block-button__link {
  background: var(--color-accent);
  color: var(--color-white);
  border-color: var(--color-accent);
}
.btn-primary:hover, .wp-block-button.is-style-primary .wp-block-button__link:hover {
  background: var(--color-accent-hover);
  border-color: var(--color-accent-hover);
  color: var(--color-white);
}
.btn-secondary, .wp-block-button.is-style-secondary .wp-block-button__link {
  background: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
}
.btn-secondary:hover {
  background: var(--color-primary-dark);
  border-color: var(--color-primary-dark);
  color: var(--color-white);
}
.btn-outline {
  background: transparent;
  color: var(--color-primary);
  border-color: var(--color-primary);
}
.btn-outline:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

/* ===== SECTION SPACING ===== */
.section { padding: 5rem 0; }
.section-sm { padding: 3rem 0; }
.section-lg { padding: 7rem 0; }
.section-bg-light { background: var(--color-bg-light); }
.section-bg-teal { background: var(--color-teal-light); }
.section-bg-primary { background: var(--color-primary); color: var(--color-white); }
.section-bg-primary h1,.section-bg-primary h2,.section-bg-primary h3 { color: var(--color-white); }

/* ===== CARDS ===== */
.card {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--color-border);
  overflow: hidden;
  transition: box-shadow var(--transition), transform var(--transition);
}
.card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.card-teal {
  background: var(--color-teal-light);
  border-color: var(--color-teal-mid);
}
.card-primary {
  background: var(--color-primary);
  color: var(--color-white);
}
.card-primary h2, .card-primary h3, .card-primary p { color: var(--color-white); }
.card-body { padding: 2rem; }
.card-img { width: 100%; aspect-ratio: 16/9; object-fit: cover; }

/* ===== STAT CARDS ===== */
.stat-card {
  background: var(--color-primary);
  border-radius: var(--radius-md);
  padding: 2rem;
  text-align: center;
  color: var(--color-white);
}
.stat-card .stat-number {
  font-family: var(--font-heading);
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--color-white);
  display: block;
  margin-bottom: 0.5rem;
}
.stat-card .stat-label {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.85);
  line-height: 1.4;
}

/* ===== HERO SECTION ===== */
.hero-section {
  background: var(--color-bg-light);
  padding: 4rem 0 3rem;
  overflow: hidden;
}
.hero-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}
.hero-heading {
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-family: var(--font-heading);
  color: var(--color-primary);
  line-height: 1.2;
  margin-bottom: 1.25rem;
  font-weight: 700;
}
.hero-body { color: var(--color-text-muted); font-size: 1rem; margin-bottom: 1.5rem; line-height: 1.7; }
.hero-image-wrap {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: visible;
}
.hero-image-wrap::before {
  content: '';
  position: absolute;
  top: -1rem;
  right: -1rem;
  width: 60%;
  height: 60%;
  background: var(--color-teal-mid);
  border-radius: var(--radius-lg);
  z-index: 0;
}
.hero-image-wrap::after {
  content: '';
  position: absolute;
  bottom: -1rem;
  left: -0.5rem;
  width: 40%;
  height: 40%;
  background: var(--color-primary);
  border-radius: var(--radius-md);
  z-index: 0;
}
.hero-image-wrap img {
  position: relative;
  z-index: 1;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}
@media (max-width: 768px) {
  .hero-inner { grid-template-columns: 1fr; }
  .hero-image-wrap { display: none; }
}

/* ===== STATS BAR ===== */
.stats-bar { padding: 3rem 0; }
.stats-bar .stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
@media (max-width: 640px) {
  .stats-bar .stats-grid { grid-template-columns: 1fr; }
}

/* ===== 3-COLUMN GRID ===== */
.col-3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.col-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
@media (max-width: 900px) { .col-3 { grid-template-columns: 1fr; } }
@media (max-width: 768px) { .col-2 { grid-template-columns: 1fr; } }

/* ===== FAQ ACCORDION ===== */
.faq-item {
  border-bottom: 1px solid var(--color-border);
  padding: 1.25rem 0;
}
.faq-question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  gap: 1rem;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-primary);
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  padding: 0;
}
.faq-icon {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  background: var(--color-accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1rem;
  transition: transform var(--transition);
}
.faq-item.open .faq-icon { transform: rotate(180deg); }
.faq-answer {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.35s ease, padding 0.35s ease;
  color: var(--color-text-muted);
  font-size: 0.95rem;
  line-height: 1.7;
}
.faq-item.open .faq-answer { max-height: 500px; padding-top: 0.75rem; }

/* ===== CTA BANNER ===== */
.cta-banner {
  background: var(--color-teal-light);
  border-radius: var(--radius-lg);
  padding: 3rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 2rem;
  overflow: hidden;
}
.cta-banner .cta-heading {
  font-size: 1.75rem;
  margin-bottom: 1rem;
}
.cta-banner .cta-body {
  color: var(--color-text-muted);
  font-size: 0.95rem;
  margin-bottom: 1.25rem;
}
.cta-banner .cta-note {
  font-size: 0.8rem;
  font-style: italic;
  color: var(--color-text-muted);
  margin-top: 0.75rem;
}
.cta-banner-image { border-radius: var(--radius-lg); overflow: hidden; }
.cta-banner-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius-lg); }
@media (max-width: 768px) {
  .cta-banner { grid-template-columns: 1fr; }
  .cta-banner-image { display: none; }
}

/* ===== SECTION HEADER ===== */
.section-header { text-align: center; max-width: 700px; margin: 0 auto 3rem; }
.section-title { font-size: clamp(1.5rem, 3vw, 2.25rem); margin-bottom: 0.75rem; }
.section-subtitle { color: var(--color-text-muted); font-size: 1rem; line-height: 1.6; }

/* ===== LOCATIONS GRID ===== */
.location-card { display: flex; align-items: flex-start; gap: 1.25rem; }
.location-card .state-icon { flex-shrink: 0; width: 70px; }
.location-card .state-icon img { width: 100%; }
.location-card h3 { margin-bottom: 0.4rem; font-size: 1.1rem; }
.location-card p { font-size: 0.875rem; color: var(--color-text-muted); margin: 0; line-height: 1.55; }

/* ===== PROGRAM CARDS ===== */
.program-card { background: var(--color-teal-light); border-radius: var(--radius-lg); padding: 1.75rem; border: 1px solid var(--color-teal-mid); }
.program-card .program-tag {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.program-card h3 { font-size: 1.2rem; margin-bottom: 0.75rem; }
.program-card p { font-size: 0.875rem; color: var(--color-text-muted); line-height: 1.6; margin: 0; }

/* ===== WHY KOLMAC ===== */
.why-kolmac-wrap {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.why-kolmac-image { height: 100%; min-height: 350px; }
.why-kolmac-image img { width: 100%; height: 100%; object-fit: cover; }
.why-kolmac-content {
  background: var(--color-teal-light);
  padding: 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.why-kolmac-content h2 { font-size: 1.75rem; margin-bottom: 1.25rem; }
.why-kolmac-content p { color: var(--color-text-muted); margin-bottom: 1rem; font-size: 0.95rem; line-height: 1.7; }
@media (max-width: 768px) {
  .why-kolmac-wrap { grid-template-columns: 1fr; }
  .why-kolmac-image { min-height: 250px; }
}

/* ===== FOOTER ===== */
#colophon {
  background: var(--color-bg-light);
  border-top: 1px solid var(--color-border);
}
.footer-main { padding: 3.5rem 0; }
.footer-inner {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  gap: 3rem;
  align-items: start;
}
.footer-brand .footer-logo { margin-bottom: 1.25rem; height: 55px; width: auto; }
.footer-brand .footer-phone { display: flex; align-items: center; gap: 0.5rem; font-weight: 600; color: var(--color-primary); font-size: 1rem; text-decoration: none; }
.footer-brand .footer-cta { margin-top: 1.25rem; }
.footer-links-section { }
.footer-links-title { font-size: 0.85rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-green-accent); margin-bottom: 1.25rem; }
.footer-links-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 2rem; }
.footer-links-grid a { color: var(--color-text-muted); text-decoration: none; font-size: 0.9rem; transition: color var(--transition); }
.footer-links-grid a:hover { color: var(--color-primary); }
.footer-badges { display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; }
.footer-divider { border: none; border-top: 1px solid var(--color-border); margin: 0; }
.footer-bottom { padding: 1.25rem 0; }
.footer-bottom-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem; }
.footer-legal { font-size: 0.8rem; color: var(--color-text-muted); }
.footer-legal a { color: var(--color-text-muted); }
.footer-legal a:hover { color: var(--color-primary); }
.footer-description { font-size: 0.82rem; color: var(--color-text-muted); margin-top: 0.75rem; max-width: 300px; line-height: 1.5; }
.footer-social { display: flex; gap: 0.6rem; }
.footer-social a {
  width: 2rem; height: 2rem;
  border-radius: 50%;
  background: var(--color-primary);
  color: white;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.75rem;
  text-decoration: none;
  transition: background var(--transition);
}
.footer-social a:hover { background: var(--color-accent); }
.copyright-text { font-size: 0.8rem; color: var(--color-text-muted); }
@media (max-width: 900px) {
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .footer-badges { display: none; }
}
@media (max-width: 600px) {
  .footer-inner { grid-template-columns: 1fr; }
}

/* ===== SIDEBAR ===== */
.content-sidebar-wrap { display: grid; grid-template-columns: 1fr 300px; gap: 3rem; }
.content-sidebar-wrap.no-sidebar { grid-template-columns: 1fr; }
@media (max-width: 900px) { .content-sidebar-wrap { grid-template-columns: 1fr; } }
.widget { margin-bottom: 2rem; }
.widget-title { font-size: 1rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--color-primary); margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--color-teal-mid); }
.widget ul { list-style: none; padding: 0; margin: 0; }
.widget ul li { padding: 0.4rem 0; border-bottom: 1px solid var(--color-border); }
.widget ul li:last-child { border-bottom: none; }
.widget ul li a { color: var(--color-text-muted); font-size: 0.9rem; text-decoration: none; }
.widget ul li a:hover { color: var(--color-primary); }

/* ===== BLOG / ARCHIVE ===== */
.post-card {
  background: var(--color-white);
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--color-border);
  transition: box-shadow var(--transition);
}
.post-card:hover { box-shadow: var(--shadow-md); }
.post-card-thumbnail { aspect-ratio: 16/9; overflow: hidden; }
.post-card-thumbnail img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.post-card:hover .post-card-thumbnail img { transform: scale(1.03); }
.post-card-body { padding: 1.5rem; }
.post-card-meta { font-size: 0.8rem; color: var(--color-text-muted); margin-bottom: 0.5rem; }
.post-card-title { font-size: 1.1rem; margin-bottom: 0.5rem; }
.post-card-title a { color: var(--color-primary); text-decoration: none; }
.post-card-excerpt { font-size: 0.875rem; color: var(--color-text-muted); line-height: 1.55; }
.post-card-read-more { display: inline-block; margin-top: 1rem; font-size: 0.875rem; font-weight: 700; color: var(--color-primary); text-decoration: underline; }
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
@media (max-width: 900px) { .post-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 580px) { .post-grid { grid-template-columns: 1fr; } }

/* ===== SINGLE POST ===== */
.entry-header { margin-bottom: 2rem; }
.entry-title { font-size: clamp(1.5rem, 3vw, 2.5rem); }
.entry-meta { font-size: 0.85rem; color: var(--color-text-muted); margin-bottom: 1rem; }
.entry-content { font-size: 1rem; line-height: 1.75; }
.entry-content h2 { font-size: 1.5rem; margin-top: 2.5rem; }
.entry-content h3 { font-size: 1.2rem; margin-top: 2rem; }
.entry-content p { margin-bottom: 1.25rem; }
.entry-content ul, .entry-content ol { padding-left: 1.5rem; margin-bottom: 1.25rem; }
.entry-content ul li, .entry-content ol li { margin-bottom: 0.4rem; }
.entry-content blockquote {
  border-left: 4px solid var(--color-primary);
  margin: 1.5rem 0;
  padding: 1rem 1.5rem;
  background: var(--color-teal-light);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-style: italic;
  color: var(--color-primary);
}
.entry-content a { color: var(--color-primary); text-decoration: underline; }
.entry-footer { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--color-border); font-size: 0.85rem; color: var(--color-text-muted); }

/* ===== COMMENTS ===== */
.comments-area { margin-top: 3rem; padding-top: 2rem; border-top: 2px solid var(--color-border); }
.comment-list { list-style: none; padding: 0; }
.comment { padding: 1.25rem 0; border-bottom: 1px solid var(--color-border); }
.comment-meta { font-size: 0.82rem; color: var(--color-text-muted); margin-bottom: 0.5rem; }
.comment-author b { color: var(--color-primary); font-weight: 700; }
.comment-content p { margin: 0; font-size: 0.9rem; color: var(--color-text-muted); }
.comment-respond { margin-top: 2rem; }
.comment-respond .comment-reply-title { font-size: 1.2rem; margin-bottom: 1rem; }
.comment-form label { display: block; font-size: 0.875rem; font-weight: 600; margin-bottom: 0.25rem; }
.comment-form input[type=text],
.comment-form input[type=email],
.comment-form input[type=url],
.comment-form textarea {
  width: 100%;
  padding: 0.6rem 0.75rem;
  border: 1.5px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.9rem;
  margin-bottom: 1rem;
  outline: none;
  transition: border-color var(--transition);
}
.comment-form input:focus, .comment-form textarea:focus { border-color: var(--color-primary); }
.comment-form textarea { min-height: 120px; resize: vertical; }
.comment-form .submit {
  background: var(--color-primary);
  color: white;
  border: none;
  padding: 0.65rem 1.5rem;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-weight: 700;
  cursor: pointer;
  transition: background var(--transition);
}
.comment-form .submit:hover { background: var(--color-primary-dark); }

/* ===== PAGE HERO / BANNER ===== */
.page-hero {
  background: var(--color-bg-light);
  padding: 3.5rem 0 2.5rem;
  text-align: center;
}
.page-hero h1 { font-size: clamp(1.75rem, 3.5vw, 2.75rem); margin-bottom: 0.75rem; }
.page-hero .page-hero-intro { color: var(--color-text-muted); font-size: 1rem; max-width: 600px; margin: 0 auto; line-height: 1.65; }
.breadcrumb { font-size: 0.8rem; color: var(--color-text-muted); margin-bottom: 0.75rem; }
.breadcrumb a { color: var(--color-text-muted); text-decoration: none; }
.breadcrumb a:hover { color: var(--color-primary); }
.breadcrumb span:not(:last-child)::after { content: ' / '; }

/* ===== PAGINATION ===== */
.pagination, .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.4rem;
  margin-top: 3rem;
  flex-wrap: wrap;
}
.page-numbers, .nav-links a, .nav-links span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 0.5rem;
  border-radius: var(--radius-sm);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--color-text-muted);
  border: 1.5px solid var(--color-border);
  background: var(--color-white);
  transition: all var(--transition);
}
.page-numbers:hover, .nav-links a:hover { border-color: var(--color-primary); color: var(--color-primary); }
.page-numbers.current { background: var(--color-primary); color: white; border-color: var(--color-primary); }

/* ===== 404 ===== */
.error-404 { text-align: center; padding: 6rem 0; }
.error-404 .error-code { font-size: 6rem; font-weight: 700; color: var(--color-teal-mid); font-family: var(--font-heading); line-height: 1; margin-bottom: 1rem; }
.error-404 h1 { font-size: 2rem; }

/* ===== ACCESSIBILITY ===== */
.screen-reader-text {
  border: 0;
  clip: rect(1px,1px,1px,1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}
/* .screen-reader-text:focus defined in ADA section */
/* :focus-visible fully defined in ADA section */

/* ===== WP ALIGNMENTS ===== */
.alignleft { float: left; margin-right: 1.5rem; margin-bottom: 1rem; }
.alignright { float: right; margin-left: 1.5rem; margin-bottom: 1rem; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignwide { max-width: 1400px; margin-left: auto; margin-right: auto; }
.alignfull { max-width: none; width: 100%; }

/* ===== PRINT ===== */
@media print {
  #masthead, #colophon, .sidebar, .no-print { display: none !important; }
  body { font-size: 12pt; color: #000; }
  a { color: #000; text-decoration: underline; }
}

/* ================================================================
   MOBILE HEADER & NAVIGATION — COMPLETE REWRITE
   ================================================================ */

/* Desktop/mobile visibility helpers */
.desktop-only { display: flex; }
.mobile-only  { display: none; }

@media (max-width: 1024px) {
  .desktop-only { display: none !important; }
  .mobile-only  { display: flex !important; }
}

/* ===== ACCENT BAR (3-segment) ===== */
.header-accent-bar {
  display: flex;
  height: 5px;
  width: 100%;
}
.accent-segment { display: block; flex: 1; }
.accent-dark  { background: var(--color-primary); }
.accent-mid   { background: var(--color-green-accent); }
.accent-light { background: var(--color-green-light); }

/* ===== MOBILE HEADER ===== */
@media (max-width: 1024px) {
  #masthead {
    height: 70px;
  }
  .site-branding .custom-logo { height: 42px; }
  .site-header-inner { gap: 0; }
}

/* Mobile actions (calendar icon + hamburger) */
.mobile-header-actions {
  align-items: center;
  gap: 0.75rem;
}

.mobile-appt-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--color-primary);
  color: var(--color-white);
  text-decoration: none;
  transition: background var(--transition);
}
.mobile-appt-btn:hover {
  background: var(--color-primary-dark);
  color: var(--color-white);
}

.menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: none;
  border: none;
  padding: 0.5rem;
  cursor: pointer;
  border-radius: var(--radius-sm);
}
@media (max-width: 1024px) {
  .menu-toggle { display: flex; }
}
.hamburger-line {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--color-primary);
  border-radius: 2px;
  transition: all 0.2s ease;
}

/* ================================================================
   MOBILE NAV PANEL — full-height slide-in overlay
   ================================================================ */

/* Prevent body scroll when menu is open */
body.mobile-menu-open { overflow: hidden; }

/* Backdrop */
.mobile-menu-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.4);
  z-index: 1099;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.mobile-menu-backdrop.is-visible {
  opacity: 1;
  pointer-events: auto;
}

/* Outer panel container */
.mobile-menu-panel {
  position: fixed;
  top: 0;
  right: 0;
  width: min(440px, 100vw);
  height: 100dvh;
  height: 100vh; /* fallback */
  background: var(--color-white);
  z-index: 1100;
  overflow: hidden;
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  flex-direction: column;
}
.mobile-menu-panel.is-open {
  transform: translateX(0);
}

/* Individual panels stack inside the container */
.mobile-panel {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  background: var(--color-white);
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.mobile-panel.is-active {
  transform: translateX(0);
}
.mobile-panel.is-prev {
  transform: translateX(-30%);
}

/* Panel header */
.mobile-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--color-border);
  flex-shrink: 0;
}
.mobile-panel-header.sub-header {
  padding: 1rem 1.5rem;
}
.mobile-panel-logo .custom-logo { height: 40px; width: auto; }
.mobile-panel-logo .site-title {
  font-family: var(--font-heading);
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--color-primary);
  text-decoration: none;
}

.mobile-menu-close {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.25rem;
  color: var(--color-text);
  display: flex;
  align-items: center;
  border-radius: var(--radius-sm);
  transition: color var(--transition);
}
.mobile-menu-close:hover { color: var(--color-primary); }

.mobile-panel-back {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--color-text);
  padding: 0.25rem 0;
  text-transform: uppercase;
  transition: color var(--transition);
}
.mobile-panel-back:hover { color: var(--color-primary); }

/* Mobile search bar */
.mobile-search-wrap {
  padding: 1rem 1.5rem;
  flex-shrink: 0;
  position: relative;       /* dropdown positioned inside this */
}
.mobile-search-inner {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  background: var(--color-white);
  border: 1.5px solid var(--color-border);
  border-radius: 999px;
  padding: 0.625rem 1.125rem;
  color: var(--color-text-muted);
}
.mobile-search-inner svg { flex-shrink: 0; }
.mobile-search-inner input {
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--color-text);
  width: 100%;
}
.mobile-search-inner input::placeholder { color: var(--color-text-muted); }

/* Mobile nav list */
.mobile-nav { flex: 1; }
.mobile-nav-list {
  list-style: none;
  margin: 0;
  padding: 0 1.5rem;
}
.mobile-nav-item {
  border-bottom: 1px solid var(--color-border);
}
.mobile-nav-item:last-child { border-bottom: none; }

.mobile-nav-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 1.1rem 0;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 400;
  color: var(--color-text);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: color var(--transition);
}
.mobile-nav-row:hover { color: var(--color-primary); }
.mobile-nav-row span { flex: 1; }
.mobile-nav-chevron {
  flex-shrink: 0;
  color: var(--color-text-muted);
}

/* Subpanel title (blue link) */
.mobile-subpanel-title {
  padding: 0.5rem 1.5rem 0.25rem;
  border-bottom: 1px solid var(--color-border);
}
.mobile-subpanel-title a {
  display: block;
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  color: #0099cc; /* bright blue like screenshots */
  text-decoration: none;
  padding: 0.75rem 0;
}

/* Sub-panel CTA card (Give Us a Call) */
.mobile-subpanel-cta {
  padding: 1.5rem;
  background: var(--color-teal-light);
  flex-shrink: 0;
  margin-top: auto;
}
.mobile-cta-card {
  background: var(--color-primary);
  border-radius: var(--radius-md);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.mobile-cta-heading {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  color: var(--color-white);
  margin: 0;
}
.mobile-cta-phone {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--color-white);
  text-decoration: underline;
  font-size: 1rem;
  font-weight: 600;
}
.mobile-cta-phone:hover { color: var(--color-teal-mid); }
.btn-outline-white-sm {
  display: inline-block;
  padding: 0.5rem 1rem;
  border: 1.5px solid var(--color-white);
  border-radius: var(--radius-sm);
  color: var(--color-white);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  background: transparent;
  transition: background var(--transition);
  cursor: pointer;
}
.btn-outline-white-sm:hover {
  background: rgba(255,255,255,0.15);
  color: var(--color-white);
}

/* Panel footer CTA */
.mobile-panel-footer {
  padding: 1.25rem 1.5rem;
  border-top: 1px solid var(--color-border);
  flex-shrink: 0;
  background: var(--color-white);
}
.btn-cta {
  background: var(--color-accent);
  color: var(--color-white);
  border: 2px solid var(--color-accent);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  padding: 0.875rem 1.5rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--transition), border-color var(--transition);
}
.btn-cta:hover {
  background: var(--color-accent-hover);
  border-color: var(--color-accent-hover);
  color: var(--color-white);
}
.btn-full { width: 100%; justify-content: center; }

/* ================================================================
   MOBILE HOMEPAGE SECTIONS
   ================================================================ */

@media (max-width: 768px) {

  /* Hero – image above text */
  .hero-section { padding: 0 0 2.5rem; background: var(--color-bg-light); }
  .hero-layout {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  .hero-image-wrap {
    width: 100%;
    order: -1;
    border-radius: 0;
    margin: 0;
  }
  .hero-image-wrap img { width: 100%; border-radius: 0 0 var(--radius-md) var(--radius-md); }
  .hero-content {
    padding: 2rem 1.25rem 0;
    text-align: left;
  }
  .hero-content h1 {
    font-size: 1.85rem;
    line-height: 1.2;
    color: var(--color-primary);
  }
  .hero-content p {
    font-size: 0.95rem;
    margin-bottom: 1.5rem;
    color: var(--color-text);
  }
  .hero-cta-btn {
    width: 100%;
    justify-content: center;
    font-size: 1rem;
    padding: 1rem 1.5rem;
    background: var(--color-accent);
    color: var(--color-white);
    border-radius: var(--radius-sm);
    font-weight: 700;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  /* Stats – stacked vertically */
  .stats-section { background: var(--color-bg-light); padding: 0 1.25rem 2rem; }
  .stats-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
  }
  .stat-card {
    border-radius: var(--radius-md);
    padding: 2rem 1.5rem;
    text-align: center;
  }
  .stat-card .stat-number { font-size: 3rem; }
  .stat-card .stat-label { font-size: 0.95rem; }

  /* Why Kolmac – light bg, centered text */
  .why-kolmac { background: var(--color-bg-light); padding: 2.5rem 1.25rem; text-align: center; }
  .why-kolmac h2 { font-size: 1.75rem; margin-bottom: 1rem; }
  .why-kolmac p { font-size: 0.95rem; line-height: 1.7; }
  .why-kolmac-image {
    width: 100%;
    border-radius: var(--radius-md);
    margin-bottom: 1.5rem;
  }
  .why-kolmac .btn { margin-top: 1rem; padding: 0.875rem 1.5rem; font-size: 0.95rem; }

  /* Section headings – consistent mobile style */
  .section-header { padding: 2.5rem 1.25rem 1.5rem; text-align: center; }
  .section-header h2 { font-size: 1.75rem; }
  .section-header p { font-size: 0.95rem; line-height: 1.7; }

  /* Kolmac Difference – stacked cards */
  .kolmac-diff-section { padding: 2.5rem 1.25rem; }
  .kolmac-diff-cards { display: flex; flex-direction: column; gap: 1rem; }
  .kolmac-diff-card {
    background: var(--color-bg-light);
    border-radius: var(--radius-md);
    padding: 1.5rem;
  }
  .kolmac-diff-card .diff-icon {
    width: 56px; height: 56px;
    background: var(--color-white);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1rem;
  }
  .kolmac-diff-card h3 { font-size: 1.1rem; margin-bottom: 0.5rem; }
  .kolmac-diff-card p { font-size: 0.9rem; margin: 0 0 0.875rem; }
  .kolmac-diff-card .btn-outline { font-size: 0.875rem; padding: 0.5rem 1rem; }

  /* What We Treat / Who We Treat – cards */
  .treat-section { background: var(--color-bg-light); padding: 2.5rem 1.25rem; }
  .treat-cards { display: flex; flex-direction: column; gap: 1.25rem; }
  .treat-card {
    background: var(--color-white);
    border-radius: var(--radius-lg);
    padding: 0;
    overflow: hidden;
  }
  .treat-card-icon { padding: 1.25rem 1.25rem 0; }
  .treat-card-icon img, .treat-card-icon svg { width: 56px; height: 56px; }
  .treat-card-body { padding: 0 1.25rem 1.25rem; }
  .treat-card-body h3 { font-size: 1.1rem; margin-bottom: 0.5rem; color: var(--color-primary); }
  .treat-card-body p { font-size: 0.9rem; margin-bottom: 0.875rem; }
  .treat-card img.treat-photo {
    width: 100%;
    height: 200px;
    object-fit: cover;
    display: block;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  }
  .treat-section .view-all-btn { margin-top: 1.5rem; display: flex; justify-content: center; }

  /* Our Programs – stacked with label + icon */
  .programs-section { background: var(--color-white); padding: 2.5rem 1.25rem; }
  .programs-grid { display: flex; flex-direction: column; gap: 1.25rem; }
  .program-card {
    background: var(--color-bg-light);
    border-radius: var(--radius-md);
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }
  .program-card-meta {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
  }
  .program-tag {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-text-muted);
  }
  .program-icon {
    width: 50px; height: 50px;
    background: var(--color-white);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
  }
  .program-card h3 { font-size: 1.1rem; margin: 0; }
  .program-card p { font-size: 0.9rem; margin: 0; }
  .programs-section .view-all-btn { margin-top: 1.5rem; display: flex; justify-content: center; }

  /* Locations – stacked cards with state SVG */
  .locations-section { background: var(--color-bg-light); padding: 2.5rem 1.25rem; }
  .location-cards { display: flex; flex-direction: column; gap: 1.25rem; }
  .location-card {
    background: var(--color-bg-light);
    border-radius: var(--radius-md);
    padding: 1.5rem;
    text-align: left;
  }
  .location-card .state-image {
    max-width: 160px;
    margin: 0 auto 1rem;
    display: block;
  }
  .location-card h3 { font-size: 1.1rem; color: var(--color-primary); margin-bottom: 0.5rem; }
  .location-card p { font-size: 0.9rem; margin: 0; }
  .locations-section .view-all-btn { margin-top: 1.5rem; display: flex; justify-content: center; }

  /* FAQ */
  .faq-section { padding: 2.5rem 1.25rem; }
  .faq-section .faq-image {
    width: 100%;
    border-radius: var(--radius-md);
    margin-bottom: 1.5rem;
  }
  .faq-item { border-top: 1px solid var(--color-border); padding: 0; }
  .faq-question {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 1.1rem 0;
    background: none;
    border: none;
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-primary);
    text-align: left;
    cursor: pointer;
    gap: 1rem;
  }
  .faq-question-icon {
    flex-shrink: 0;
    width: 32px; height: 32px;
    background: var(--color-accent);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: white;
    transition: transform 0.2s ease;
  }
  .faq-item.open .faq-question-icon { transform: rotate(180deg); }
  .faq-answer { display: none; padding: 0 0 1rem; font-size: 0.95rem; }
  .faq-item.open .faq-answer { display: block; }

} /* end @media (max-width: 768px) */

/* ================================================================
   FOOTER — COMPLETE STYLES (desktop + mobile)
   ================================================================ */

.site-footer { background: var(--color-bg-light); }
.footer-accent-bar { flex-shrink: 0; }
.footer-main { padding: 3rem 0 0; }

/* ----------------------------------------------------------------
   TOP GRID — 4 columns on desktop, single column on mobile
   ---------------------------------------------------------------- */
.footer-top-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 2rem 3rem;
  align-items: start;
  padding-bottom: 2.5rem;
}

/* ---- Col 1: Brand ---- */
.footer-col--brand {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: flex-start;
}

.footer-logo-wrap img,
.footer-logo-wrap .custom-logo {
  max-height: 60px;
  width: auto;
}
.footer-logo-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.footer-logo-name {
  font-family: var(--font-heading);
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1;
}
.footer-logo-sub {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}

.footer-phone {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--color-text);
  text-decoration: none;
  transition: color var(--transition);
}
.footer-phone:hover { color: var(--color-primary); }
.footer-phone svg { color: var(--color-primary); flex-shrink: 0; }

/* CTA button — orange, full-width within brand col */
.btn-footer-cta {
  display: inline-block;
  width: 100%;
  padding: 0.875rem 1.25rem;
  background: var(--color-accent);
  color: var(--color-white);
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--transition);
}
.btn-footer-cta:hover {
  background: var(--color-accent-hover);
  color: var(--color-white);
}

/* ---- Col 2+3: Helpful Links ---- */
.footer-col--links {
  grid-column: span 2;
}
.footer-links-title {
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 700;
  font-style: italic;
  color: var(--color-green-accent);
  letter-spacing: 0;
  text-transform: none;
  margin: 0 0 1.1rem;
}
.footer-links-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.625rem 2rem;
}
.footer-link-col {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.footer-link-col a {
  font-size: 0.9rem;
  font-weight: 400;
  color: var(--color-text);
  text-decoration: none;
  transition: color var(--transition);
}
.footer-link-col a:hover { color: var(--color-primary); }

/* ---- Col 4: Badges ---- */
.footer-col--badges {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.75rem;
  padding-top: 0.25rem;
}
.footer-badge-link {
  display: block;
  text-decoration: none;
}
.footer-badge-img {
  display: block;
  max-height: 72px;
  width: auto;
}
/* LegitScript placeholder */
.footer-badge-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
}
.legitscript-placeholder svg {
  width: 60px;
  height: 68px;
}
.footer-badge-label {
  font-size: 0.6rem;
  font-weight: 600;
  color: var(--color-text-muted);
  text-align: center;
  line-height: 1.3;
  display: none; /* hidden — SVG has its own text */
}
/* Pride flag placeholder */
.pride-placeholder {
  width: 52px;
  height: 36px;
  border-radius: 3px;
  overflow: hidden;
}
.pride-stripes {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.pride-stripes span { flex: 1; display: block; }

/* ----------------------------------------------------------------
   DIVIDER
   ---------------------------------------------------------------- */
.footer-divider {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: 0;
}

/* ----------------------------------------------------------------
   BOTTOM GRID — 3 zones: left (desc+legal) | center (social) | right (copyright)
   ---------------------------------------------------------------- */
.footer-bottom-grid {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1.5rem 2rem;
  padding: 1.5rem 0 2rem;
}

/* Left: description + legal */
.footer-bottom-left {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.footer-description {
  font-size: 0.8rem;
  color: var(--color-text-muted);
  line-height: 1.6;
  margin: 0;
  max-width: 360px;
}
.footer-legal {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
}
.footer-legal a {
  color: var(--color-text-muted);
  text-decoration: none;
  transition: color var(--transition);
}
.footer-legal a:hover { color: var(--color-primary); }
.footer-legal span { color: var(--color-text-muted); }

/* Center: social icons */
.footer-bottom-center { justify-self: center; }
.footer-social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
}
.footer-social-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--color-border);
  color: var(--color-text);
  text-decoration: none;
  transition: background var(--transition), color var(--transition);
  flex-shrink: 0;
}
.footer-social-icon:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

/* Right: copyright */
.footer-bottom-right { text-align: right; }
.footer-copyright {
  font-size: 0.8rem;
  color: var(--color-text-muted);
  margin: 0;
}

/* ----------------------------------------------------------------
   MOBILE FOOTER — single column stack
   ---------------------------------------------------------------- */
@media (max-width: 768px) {
  .footer-main { padding: 2.5rem 0 0; }

  /* Stack everything single column */
  .footer-top-grid {
    grid-template-columns: 1fr;
    gap: 0;
    padding-bottom: 0;
  }

  /* Brand col — larger logo/name on mobile */
  .footer-col--brand {
    padding-bottom: 2rem;
  }
  .footer-logo-name { font-size: 2.5rem; }
  .footer-logo-sub { font-size: 0.7rem; letter-spacing: 0.16em; }
  .footer-phone { font-size: 1rem; }
  .btn-footer-cta {
    font-size: 1rem;
    padding: 1rem 1.25rem;
  }

  /* Links col — full width, spans 1 col */
  .footer-col--links {
    grid-column: span 1;
    padding-bottom: 2rem;
  }
  .footer-links-grid { gap: 0.75rem 2rem; }
  .footer-link-col a { font-size: 0.95rem; }

  /* Social icons — centered, wrap to 2 rows of 5 */
  .footer-col--badges {
    /* On mobile badges move to bottom, hide in top grid */
    display: none;
  }

  /* Bottom grid — stacked */
  .footer-bottom-grid {
    grid-template-columns: 1fr;
    padding: 1.5rem 0 2rem;
    gap: 1.25rem;
  }
  .footer-bottom-left { order: 2; }
  .footer-bottom-center { order: 1; justify-self: start; }
  .footer-bottom-right { order: 4; text-align: left; }
  .footer-social { justify-content: flex-start; gap: 0.625rem; }
  .footer-social-icon { width: 44px; height: 44px; }
  .footer-copyright { font-size: 0.85rem; }

  /* Mobile badges row — shown after social, before divider */
  .footer-bottom-grid::before {
    content: none;
  }
}

/* Mobile: inject badges after social via a dedicated wrapper */
@media (max-width: 768px) {
  /* We show the badges in a special mobile-badges section
     that sits between the social icons and the divider.
     We do this by giving .footer-bottom-center a sibling
     via the footer-bottom-grid order trick + an extra row */
  .footer-bottom-grid {
    grid-template-rows: auto auto auto auto;
  }
  /* Mobile badge row — visible only on mobile, injected via CSS order */
  .footer-mobile-badges {
    order: 3;
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.5rem 0 0.5rem;
  }
  .footer-mobile-badges .footer-badge-img { max-height: 60px; }
  .footer-mobile-badges .legitscript-placeholder svg { width: 52px; height: 60px; }
  .footer-mobile-badges .pride-placeholder { width: 52px; height: 36px; }
}

/* Desktop: hide mobile-only badges wrapper */
@media (min-width: 769px) {
  .footer-mobile-badges { display: none; }
}


/* ===== Scroll-reveal ===== */
.kolmac-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}
.kolmac-reveal.revealed {
  opacity: 1;
  transform: none;
}

/* ================================================================
   FONT REFINEMENTS
   ================================================================ */

/* Headings use Newsreader */
h1, h2, h3, h4, h5, h6,
.hero-heading,
.site-title,
.stat-number,
.footer-logo-name {
  font-family: var(--font-heading);
}

/* Everything body/UI uses DM Sans */
body,
.btn, .wp-block-button__link,
.main-navigation > ul > li > a,
.mobile-nav-row,
.footer-link-col a,
.header-action-btn,
input, textarea, select, button {
  font-family: var(--font-body);
}

/* Newsreader italic for hero heading */
.hero-heading {
  font-style: normal;
  font-weight: 700;
}


/* ================================================================
   FAQ SECTION — image + header stacked above full-width accordion
   ================================================================ */
.faq-section { padding: 4rem 0; }

/* Hero photo above heading */
.faq-image-wrap { margin-bottom: 2rem; }
.faq-photo {
  width: 100%;
  max-height: 340px;
  object-fit: cover;
  border-radius: var(--radius-lg);
  display: block;
}
.faq-photo-placeholder {
  width: 100%;
  height: 280px;
  background: var(--color-teal-mid);
  border-radius: var(--radius-lg);
}

/* Section header — left-aligned, max readable width */
.faq-header {
  margin-bottom: 2rem;
}
.faq-header h2 {
  font-size: 2.25rem;
  margin-bottom: 0.75rem;
}
.faq-header p {
  font-size: 1rem;
  color: var(--color-text);
  line-height: 1.7;
  max-width: 720px;
}
.faq-header p a {
  color: var(--color-primary);
  text-decoration: underline;
}

/* Accordion items — full width, dividers */
.faq-list { max-width: 900px; }
.faq-item {
  border-top: 1px solid var(--color-border);
}
.faq-item:last-child { border-bottom: 1px solid var(--color-border); }

.faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 1.1rem 0;
  background: none;
  border: none;
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-primary);
  text-align: left;
  cursor: pointer;
  gap: 1rem;
  transition: color var(--transition);
}
.faq-question:hover { color: var(--color-primary-light); }
.faq-question-text { flex: 1; line-height: 1.4; }

.faq-question-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  background: var(--color-accent);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  transition: transform 0.25s ease;
}
.faq-item.open .faq-question-icon {
  transform: rotate(180deg);
}

.faq-answer {
  display: none;
  padding: 0 0 1.25rem;
  font-size: 0.975rem;
  line-height: 1.7;
  color: var(--color-text);
}
.faq-answer p { margin: 0; }
.faq-item.open .faq-answer { display: block; }

/* Mobile FAQ */
@media (max-width: 768px) {
  .faq-section { padding: 2.5rem 0; }
  .faq-header h2 { font-size: 1.75rem; }
  .faq-question { font-size: 0.975rem; }
}

/* ================================================================
   BREADCRUMB
   ================================================================ */
.kb-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: var(--color-text-muted);
  padding: 0.75rem 0 0;
}
.kb-breadcrumb__link { color: var(--color-text-muted); text-decoration: none; }
.kb-breadcrumb__link:hover { color: var(--color-primary); }
.kb-breadcrumb__sep { margin: 0 0.3rem; color: var(--color-text-muted); }
.kb-breadcrumb__current { color: var(--color-text-muted); }
.page-breadcrumb-bar { background: var(--color-bg-light); padding-bottom: 0; }

/* ================================================================
   INTRO TITLE BLOCK
   ================================================================ */
.kb-intro-title {
  background: var(--color-bg-light);
  padding: 2.5rem 0 3rem;
}
.kb-intro-title .kb-breadcrumb { margin-bottom: 1.5rem; }
.kb-intro-title__body { text-align: center; }
.kb-intro-title__h1 {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.15;
  margin-bottom: 0.75rem;
}
.kb-intro-title__sub {
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
}
@media (max-width: 768px) {
  .kb-intro-title { padding: 2rem 0 2.5rem; }
  .kb-intro-title__h1 { font-size: 2rem; }
}

/* ================================================================
   CONTENT CONTAINER BLOCK
   ================================================================ */
.kb-content-container { background: var(--color-white); }
.kb-content-container__body { max-width: 800px; }
.kb-content-container__body h1 {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  color: var(--color-primary);
  font-weight: 700;
  margin-bottom: 2rem;
  line-height: 1.2;
}
.kb-content-container__body h2,
.kb-content-container__body h3 {
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--color-green-accent);
  margin: 2rem 0 0.5rem;
  line-height: 1.35;
}
.kb-content-container__body p {
  font-size: 0.975rem;
  line-height: 1.75;
  color: var(--color-text);
  margin-bottom: 1rem;
}
.kb-content-container__body ul {
  margin: 0.75rem 0 1.25rem 0;
  padding: 0;
  list-style: none;
}
.kb-content-container__body ul li {
  padding: 0.2rem 0 0.2rem 1.5rem;
  position: relative;
  font-size: 0.975rem;
  line-height: 1.6;
  color: var(--color-text);
}
.kb-content-container__body ul li::before {
  content: '•';
  position: absolute;
  left: 0.5rem;
  color: var(--color-text);
}
@media (max-width: 768px) {
  .kb-content-container { }
}

/* ================================================================
   CONTENT WITH IMAGE BLOCK
   ================================================================ */
.kb-content-image { padding: 3rem 0; background: var(--color-white); }
.kb-content-image__card {
  background: var(--color-bg-light);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: stretch;
  overflow: hidden;
  gap: 0;
}
.kb-content-image__text {
  flex: 1;
  padding: 2.5rem 2.5rem 2.5rem 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1rem;
}
.kb-content-image--right .kb-content-image__text { order: 1; padding: 2.5rem 3rem 2.5rem 2.5rem; }
.kb-content-image--left  .kb-content-image__text { order: 2; }
.kb-content-image__heading {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--color-primary);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
}
.kb-content-image__body { font-size: 0.95rem; line-height: 1.75; color: var(--color-text); }
.kb-content-image__photo { flex: 0 0 42%; max-width: 42%; }
.kb-content-image__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kb-content-image--right .kb-content-image__photo { order: 2; }
.kb-content-image--left  .kb-content-image__photo { order: 1; }
@media (max-width: 768px) {
  .kb-content-image__card { flex-direction: column; }
  .kb-content-image__photo,
  .kb-content-image__photo.kb-content-image__photo--left,
  .kb-content-image__photo.kb-content-image__photo--right { flex: none; max-width: 100%; order: -1; }
  .kb-content-image__photo img { height: 260px; }
  .kb-content-image__text,
  .kb-content-image--right .kb-content-image__text,
  .kb-content-image--left .kb-content-image__text { order: 2; padding: 1.75rem 1.5rem; }
}

/* ================================================================
   CTA BLOCK
   ================================================================ */
.kb-cta-block { padding: 3rem 0; background: var(--color-white); }
.kb-cta-block__card {
  background: var(--color-bg-light);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: stretch;
  overflow: hidden;
}
.kb-cta-block__image { flex: 0 0 38%; max-width: 38%; }
.kb-cta-block__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.kb-cta-block__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2.5rem 3rem;
  text-align: center;
  gap: 1.25rem;
}
.kb-cta-block__heading {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--color-primary);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
}
.kb-cta-block__body { font-size: 0.975rem; line-height: 1.7; color: var(--color-primary); margin: 0; }
.kb-cta-block__content .kb-cta-block__btn,
a.kb-cta-block__btn {
  background: var(--color-accent);
  color: var(--color-white) !important;
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.975rem;
  font-weight: 700;
  padding: 0.875rem 1.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none !important;
  transition: background var(--transition);
}
.kb-cta-block__content .kb-cta-block__btn:hover,
a.kb-cta-block__btn:hover { background: var(--color-accent-hover); color: var(--color-white) !important; }
@media (max-width: 768px) {
  .kb-cta-block__card { flex-direction: column; }
  .kb-cta-block__image { flex: none; max-width: 100%; }
  .kb-cta-block__image img { height: 300px; }
  .kb-cta-block__content { padding: 2rem 1.5rem; }
  .kb-cta-block__btn { width: 100%; justify-content: center; }
}

/* ================================================================
   FAQ BLOCK (interior pages) — two-column desktop
   ================================================================ */
.kb-faq-block { padding: 3rem 0; background: var(--color-white); }
.kb-faq-block__layout {
  display: grid;
  grid-template-columns: 1fr 1.8fr;
  gap: 3rem 4rem;
  align-items: start;
}
.kb-faq-block__left { display: flex; flex-direction: column; gap: 1.25rem; }
.kb-faq-block__image { width: 100%; border-radius: var(--radius-md); display: block; }
.kb-faq-block__heading {
  font-family: var(--font-heading);
  font-size: 1.75rem;
  color: var(--color-primary);
  font-weight: 700;
  margin: 0;
  line-height: 1.2;
}
.kb-faq-block__desc { font-size: 0.9rem; line-height: 1.7; color: var(--color-text); margin: 0; }

/* Accordion — matches screenshot */
.kb-faq-item { border-top: 1px solid var(--color-border); }
.kb-faq-item:last-child { border-bottom: 1px solid var(--color-border); }
.kb-faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  background: none;
  border: none;
  padding: 1.1rem 0;
  cursor: pointer;
  text-align: left;
  gap: 1rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-primary);
  transition: color var(--transition);
}
.kb-faq-question:hover { color: var(--color-primary-light); }
.kb-faq-question__text { flex: 1; line-height: 1.4; }
.kb-faq-question__icon {
  flex-shrink: 0;
  width: 32px; height: 32px;
  background: var(--color-accent);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--color-white);
  transition: transform 0.25s ease;
}
.kb-faq-item.open .kb-faq-question__icon { transform: rotate(180deg); }
.kb-faq-answer { display: none; padding: 0 0 1.25rem; }
.kb-faq-answer__inner { font-size: 0.975rem; line-height: 1.75; color: var(--color-text); }
.kb-faq-item.open .kb-faq-answer { display: block; }

@media (max-width: 768px) {
  .kb-faq-block__layout { grid-template-columns: 1fr; gap: 2rem; }
}

/* ================================================================
   INFORMATION BLOCK
   ================================================================ */
.kb-information-block { padding: 4rem 0; background: var(--color-bg-light); }
.kb-information-block__header {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 3rem;
}
.kb-information-block__heading {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  color: var(--color-primary);
  font-weight: 700;
  margin-bottom: 0.75rem;
}
.kb-information-block__sub {
  font-size: 0.975rem;
  line-height: 1.7;
  color: var(--color-text);
  margin: 0;
}
.kb-information-block__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.kb-information-block__card {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.kb-information-block__card-title {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  color: var(--color-primary);
  font-weight: 700;
  margin: 0;
  line-height: 1.3;
}
.kb-information-block__card-body { font-size: 0.9rem; line-height: 1.7; color: var(--color-text); }
.kb-information-block__card-body ul { padding-left: 1.25rem; margin: 0.5rem 0 0; }
.kb-information-block__card-body li { font-size: 0.9rem; line-height: 1.6; margin-bottom: 0.25rem; }
@media (max-width: 900px) {
  .kb-information-block__grid { grid-template-columns: 1fr; }
  .kb-information-block { padding: 3rem 0; }
}

/* ================================================================
   OUR PROGRAMS BLOCK
   ================================================================ */
.kb-programs-block { padding: 4rem 0; background: var(--color-white); }
.kb-programs-block__header { text-align: center; max-width: 700px; margin: 0 auto 3rem; }
.kb-programs-block__heading {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  color: var(--color-primary);
  font-weight: 700;
  margin-bottom: 0.75rem;
}
.kb-programs-block__sub { font-size: 0.975rem; line-height: 1.7; color: var(--color-text); margin: 0; }
.kb-programs-block__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}
.kb-programs-block__card {
  background: var(--color-bg-light);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.kb-programs-block__card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}
.kb-programs-block__label {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.kb-programs-block__icon {
  width: 48px; height: 48px;
  background: var(--color-white);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.kb-programs-block__icon img { width: 28px; height: 28px; object-fit: contain; }
.kb-programs-block__card-title {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.2;
}
.kb-programs-block__card-title a { color: var(--color-primary); text-decoration: none; }
.kb-programs-block__card-title a:hover { color: var(--color-primary-light); }
.kb-programs-block__card-body { font-size: 0.9rem; line-height: 1.7; color: var(--color-text); margin: 0; }
.kb-programs-block__footer { text-align: center; }
.kb-programs-block__btn {
  background: var(--color-primary);
  color: var(--color-white);
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.975rem;
  font-weight: 700;
  padding: 0.875rem 2rem;
  text-decoration: none;
  transition: background var(--transition);
  display: inline-block;
}
.kb-programs-block__btn:hover { background: var(--color-primary-light); color: var(--color-white); }
@media (max-width: 900px) {
  .kb-programs-block__grid { grid-template-columns: 1fr; }
  .kb-programs-block { padding: 3rem 0; }
}

/* ================================================================
   SERVICES LIST BLOCK
   ================================================================ */
.kb-services-list { padding: 4rem 0; }
.kb-services-list--teal { background: var(--color-bg-light); }
.kb-services-list--white { background: var(--color-white); }
.kb-services-list__layout {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 3rem 4rem;
  align-items: start;
}
.kb-services-list__left { position: sticky; top: calc(var(--header-height) + 1rem); }
.kb-services-list__heading {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--color-primary);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1rem;
}
.kb-services-list__desc { font-size: 0.95rem; line-height: 1.7; color: var(--color-text); margin-bottom: 1.5rem; }
.kb-services-list__image { width: 100%; border-radius: var(--radius-md); display: block; }
.kb-services-list__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}
.kb-services-card {
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.kb-services-card--white { background: var(--color-white); }
.kb-services-card--teal  { background: var(--color-bg-light); }
.kb-services-card__title {
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.25;
}
.kb-services-card--white .kb-services-card__title a { color: var(--color-primary); text-decoration: none; }
.kb-services-card--teal  .kb-services-card__title a { color: var(--color-primary); text-decoration: none; }
.kb-services-card__title a:hover { color: var(--color-primary-light, #1a6a80); }
.kb-services-card__body { font-size: 0.9rem; line-height: 1.7; color: var(--color-text); flex: 1; }
.kb-services-card__btn {
  display: inline-block;
  padding: 0.5rem 1.125rem;
  border: 1.5px solid var(--color-primary);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  background: transparent;
  transition: background var(--transition), color var(--transition);
  align-self: flex-start;
}
.kb-services-card__btn:hover { background: var(--color-primary); color: var(--color-white); }
@media (max-width: 900px) {
  .kb-services-list__layout { grid-template-columns: 1fr; }
  .kb-services-list__left { position: static; }
  .kb-services-list__grid { grid-template-columns: 1fr; }
  .kb-services-list { padding: 3rem 0; }
}

/* ================================================================
   HOMEPAGE FAQ — match faq-block-desktop layout
   Two-column: left = image + heading + desc, right = accordion
   ================================================================ */
.faq-section { padding: 4rem 0; background: var(--color-white); }
.faq-section .container { display: grid; grid-template-columns: 1fr 1.8fr; gap: 3rem 4rem; align-items: start; }
.faq-image-wrap { display: flex; flex-direction: column; gap: 1.25rem; }
.faq-photo { width: 100%; border-radius: var(--radius-md); display: block; }
.faq-photo-placeholder { width: 100%; height: 220px; background: var(--color-teal-mid); border-radius: var(--radius-md); }
.faq-header h2 { font-family: var(--font-heading); font-size: 1.75rem; color: var(--color-primary); font-weight: 700; margin: 0 0 0.75rem; }
.faq-header p { font-size: 0.9rem; line-height: 1.7; color: var(--color-text); margin: 0; }
.faq-header p a { color: var(--color-primary); text-decoration: underline; }
.faq-list { display: flex; flex-direction: column; }
.faq-item { border-top: 1px solid var(--color-border); }
.faq-item:last-child { border-bottom: 1px solid var(--color-border); }
.faq-question {
  display: flex; align-items: center; justify-content: space-between;
  width: 100%; background: none; border: none;
  padding: 1.1rem 0; cursor: pointer; text-align: left; gap: 1rem;
  font-family: var(--font-heading); font-size: 1rem; font-weight: 700;
  color: var(--color-primary); transition: color var(--transition);
}
.faq-question:hover { color: var(--color-primary-light); }
.faq-question-text { flex: 1; line-height: 1.4; }
.faq-question-icon {
  flex-shrink: 0; width: 32px; height: 32px;
  background: var(--color-accent); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--color-white); transition: transform 0.25s ease;
}
.faq-item.open .faq-question-icon { transform: rotate(180deg); }
.faq-answer { display: none; padding: 0 0 1.25rem; font-size: 0.975rem; line-height: 1.75; color: var(--color-text); }
.faq-answer p { margin: 0; }
.faq-item.open .faq-answer { display: block; }

@media (max-width: 768px) {
  .faq-section { padding: 2.5rem 0; }
  .faq-section .container { grid-template-columns: 1fr; gap: 2rem; display: flex; flex-direction: column; }
  .faq-header h2 { font-size: 1.5rem; }
}

/* ================================================================
   INFORMATION BLOCK — bullet list support inside cards
   ================================================================ */
.kb-information-block__card-body ul,
.kb-information-block__card-body ol {
  padding-left: 1.25rem;
  margin: 0.5rem 0 0;
  list-style: disc;
}
.kb-information-block__card-body ol { list-style: decimal; }
.kb-information-block__card-body li {
  font-size: 0.9rem;
  line-height: 1.65;
  margin-bottom: 0.3rem;
  color: var(--color-text);
}
.kb-information-block__card-body p {
  font-size: 0.9rem;
  line-height: 1.7;
  margin: 0 0 0.5rem;
  color: var(--color-text);
}
.kb-information-block__card-body p:last-child { margin-bottom: 0; }

/* ================================================================
   SECTION SPACING — consistent vertical rhythm for all kb-blocks
   ================================================================ */
.kb-intro-title           { padding: 3rem 0; }
.kb-content-container     { }
.kb-content-image         { padding: 3rem 0; }
.kb-cta-block             { padding: 3rem 0; }
.kb-faq-block             { padding: 4rem 0; }
.kb-information-block     { padding: 4rem 0; }
.kb-programs-block        { padding: 4rem 0; }
.kb-services-list         { padding: 4rem 0; }

/* Tighter spacing on mobile */
@media (max-width: 768px) {
  .kb-intro-title,
  .kb-content-container,
  .kb-content-image,
  .kb-cta-block,
  .kb-faq-block,
  .kb-information-block,
  .kb-programs-block,
  .kb-services-list { padding: 2.5rem 0; }
}

/* ================================================================
   CTA BLOCK BUTTON — calendar icon alignment
   High specificity to override global anchor color/underline rules.
   ================================================================ */
.kb-cta-block__content .kb-cta-block__btn,
a.kb-cta-block__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  background: var(--color-accent);
  color: var(--color-white) !important;
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.975rem;
  font-weight: 700;
  padding: 0.875rem 1.75rem;
  text-decoration: none !important;
  transition: background var(--transition);
  cursor: pointer;
}
.kb-cta-block__content .kb-cta-block__btn svg,
a.kb-cta-block__btn svg { flex-shrink: 0; }
.kb-cta-block__content .kb-cta-block__btn:hover,
a.kb-cta-block__btn:hover {
  background: var(--color-accent-hover);
  color: var(--color-white) !important;
  text-decoration: none !important;
}

/* ================================================================
   PROGRAMS BLOCK BUTTON — teal, matches screenshot
   ================================================================ */
.kb-programs-block__btn {
  background: var(--color-primary);
  color: var(--color-white);
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.975rem;
  font-weight: 700;
  padding: 0.875rem 2rem;
  text-decoration: none;
  transition: background var(--transition);
  display: inline-block;
}
.kb-programs-block__btn:hover {
  background: var(--color-primary-light, #1a6a80);
  color: var(--color-white);
}

/* ================================================================
   SERVICES LIST — card button outline style
   ================================================================ */
.kb-services-card__btn {
  display: inline-block;
  padding: 0.5rem 1.125rem;
  border: 1.5px solid var(--color-primary);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  background: transparent;
  transition: background var(--transition), color var(--transition);
  align-self: flex-start;
  cursor: pointer;
}
.kb-services-card__btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

/* Information block bullet list from bullets[] array */
.kb-information-block__card-list {
  list-style: disc;
  padding-left: 1.25rem;
  margin: 0.25rem 0 0;
}
.kb-information-block__card-list li {
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--color-text);
  margin-bottom: 0.3rem;
  padding-left: 0.2rem;
}

/* ================================================================
   BLOG INDEX — full layout
   ================================================================ */

/* Breadcrumb bar */
.blog-breadcrumb-bar {
  background: var(--color-bg-light);
  padding: 0.875rem 0 0;
}

/* Hero */
.blog-hero {
  background: var(--color-bg-light);
  padding: 2rem 0 2.5rem;
  text-align: center;
}
.blog-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 2.75rem);
  color: var(--color-primary);
  font-weight: 700;
  margin: 0;
}

/* ── Search bar ── */
.blog-search-bar {
  background: var(--color-white);
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
  padding: 1rem 0;
}
.blog-search-inner {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.blog-search-label {
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--color-text);
  white-space: nowrap;
  flex-shrink: 0;
}
.blog-search-form {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 1;
  flex-wrap: wrap;
}

/* Input */
.blog-search-input-wrap {
  position: relative;
  flex: 1;
  min-width: 180px;
}
.blog-search-input {
  width: 100%;
  padding: 0.6rem 2.5rem 0.6rem 0.875rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--color-text);
  background: var(--color-white);
  outline: none;
  transition: border-color var(--transition);
}
.blog-search-input:focus { border-color: var(--color-primary); }
.blog-search-input::placeholder { color: var(--color-text-muted); }
.blog-search-submit {
  position: absolute;
  right: 0.625rem;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--color-text-muted);
  padding: 0;
  display: flex;
  align-items: center;
}
.blog-search-submit:hover { color: var(--color-primary); }

/* Selects */
.blog-search-select-wrap {
  position: relative;
  flex-shrink: 0;
}
.blog-search-select {
  appearance: none;
  -webkit-appearance: none;
  padding: 0.6rem 2.25rem 0.6rem 0.875rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--color-text);
  background: var(--color-white);
  cursor: pointer;
  outline: none;
  min-width: 130px;
  transition: border-color var(--transition);
}
.blog-search-select:focus { border-color: var(--color-primary); }
.blog-select-chevron {
  position: absolute;
  right: 0.625rem;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--color-text-muted);
}

/* Index body */
.blog-index-body { padding: 2.5rem 0 4rem; background: var(--color-white); }

/* ── Section heading ── */
.blog-section-title {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  color: var(--color-primary);
  font-weight: 700;
  margin: 0 0 1.5rem;
}

/* ── Featured 4-col grid ── */
.blog-featured { margin-bottom: 3rem; }
.blog-featured-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
.blog-featured-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.blog-featured-card__img-link {
  display: block;
  height: 160px;   /* fixed height — same for real images and logo fallback */
  overflow: hidden;
}
.blog-featured-card__img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.blog-featured-card__img-placeholder {
  width: 100%; height: 100%;
  background: var(--color-teal-mid);
}
.blog-featured-card__body {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
  flex: 1;
}
.blog-featured-card__title {
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.3;
  margin: 0;
}
.blog-featured-card__title a { color: inherit; text-decoration: none; }
.blog-featured-card__title a:hover { color: var(--color-primary-light, #1a6a80); }

/* ── Shared card atoms ── */
.blog-card-category {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-green-accent);
  display: block;
}
.blog-card-date {
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: var(--color-text-muted);
  display: block;
}
.blog-card-read-more {
  display: inline-block;
  padding: 0.375rem 0.875rem;
  border: 1.5px solid var(--color-primary);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  align-self: flex-start;
  margin-top: auto;
  transition: background var(--transition), color var(--transition);
}
.blog-card-read-more:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

/* ── Horizontal post cards ── */
.blog-posts-list { display: flex; flex-direction: column; gap: 1.5rem; }
.blog-post-card {
  display: flex;
  align-items: stretch;
  background: var(--color-bg-light);
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--color-border);
}
.blog-post-card__img-link {
  display: flex;          /* flex so child logo-wrap fills the height */
  flex: 0 0 38%;
  max-width: 38%;
  overflow: hidden;
}
.blog-post-card__img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  flex-shrink: 0;
}
.blog-post-card__img-placeholder {
  width: 100%; height: 100%;
  min-height: 200px;
  background: var(--color-teal-mid);
}
.blog-post-card__body {
  flex: 1;
  padding: 1.75rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.blog-post-card__title {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.25;
  margin: 0;
}
.blog-post-card__title a { color: inherit; text-decoration: none; }
.blog-post-card__title a:hover { color: var(--color-primary-light, #1a6a80); }
.blog-post-card__excerpt {
  font-size: 0.9rem;
  line-height: 1.7;
  color: var(--color-text);
  margin: 0;
}

/* ── Pagination ── */
.blog-pagination { margin-top: 3rem; }
.blog-pagination__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
}
.blog-pagination__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 0.5rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--color-text);
  text-decoration: none;
  background: var(--color-white);
  transition: background var(--transition), color var(--transition), border-color var(--transition);
}
.blog-pagination__btn:hover {
  border-color: var(--color-primary);
  color: var(--color-primary);
}
.blog-pagination__btn--active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-white);
  font-weight: 700;
}
.blog-pagination__btn--active:hover {
  background: var(--color-primary);
  color: var(--color-white);
}
.blog-pagination__btn--icon { color: var(--color-text-muted); }
.blog-pagination__ellipsis {
  font-size: 0.875rem;
  color: var(--color-text-muted);
  padding: 0 0.25rem;
  line-height: 36px;
}

/* ── No results ── */
.blog-no-results { padding: 3rem 0; text-align: center; color: var(--color-text-muted); }

/* ================================================================
   SINGLE POST
   ================================================================ */

/* Hero card */
.single-post-hero { background: var(--color-bg-light); padding: 2rem 0 0; }
.single-post-hero__card {
  background: var(--color-bg-light);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: stretch;
  gap: 0;
  overflow: hidden;
  min-height: 280px;
}
.single-post-hero__left {
  flex: 1;
  padding: 2.5rem 2.5rem 2.5rem 0;
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  justify-content: center;
}
.single-post-hero__category {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-green-accent);
}
.single-post-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--color-primary);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
}
.single-post-hero__date {
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: var(--color-text-muted);
}

/* Share */
.single-post-share {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.single-post-share__label {
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-text);
}
.single-post-share__icons {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.single-post-share__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  color: var(--color-primary);
  text-decoration: none;
  transition: background var(--transition), color var(--transition);
  flex-shrink: 0;
}
.single-post-share__btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

/* Hero image */
.single-post-hero__image {
  flex: 0 0 46%;
  max-width: 46%;
  position: relative;
}
.single-post-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0 var(--radius-lg) var(--radius-lg) 0;
}

/* Post body */
.single-post-content { padding: 3rem 0 4rem; background: var(--color-white); }
.single-post-content__inner { max-width: 860px; }
.single-post-body { font-size: 0.975rem; line-height: 1.8; color: var(--color-text); }
.single-post-body h1 { font-family: var(--font-heading); font-size: clamp(1.5rem,2.5vw,2rem); color: var(--color-primary); font-weight: 700; margin-bottom: 2rem; }
.single-post-body h2 { font-family: var(--font-heading); font-size: 1.35rem; color: var(--color-primary); font-weight: 700; margin: 2rem 0 0.75rem; }
.single-post-body h3 { font-family: var(--font-body); font-size: 1rem; font-weight: 700; color: var(--color-green-accent); margin: 1.75rem 0 0.5rem; }
.single-post-body h4 { font-family: var(--font-body); font-size: 0.95rem; font-weight: 700; color: var(--color-primary); margin: 1.5rem 0 0.5rem; }
.single-post-body p { margin-bottom: 1.1rem; }
.single-post-body ul, .single-post-body ol { padding-left: 1.5rem; margin-bottom: 1.1rem; }
.single-post-body ul { list-style: disc; }
.single-post-body ol { list-style: decimal; }
.single-post-body li { margin-bottom: 0.3rem; }
.single-post-body a { color: var(--color-primary); text-decoration: underline; }
.single-post-body a:hover { color: var(--color-accent); }

/* Tag chips */
.single-post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 2rem;
  padding-top: 2rem;
  border-top: 1px solid var(--color-border);
}
.single-post-tag {
  display: inline-block;
  padding: 0.35rem 0.875rem;
  background: var(--color-teal-light);
  border: 1px solid var(--color-border);
  border-radius: 999px;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--color-primary);
  text-decoration: none;
  transition: background var(--transition), border-color var(--transition);
}
.single-post-tag:hover {
  background: var(--color-teal-mid);
  border-color: var(--color-primary);
  color: var(--color-primary);
}

/* ================================================================
   BLOG MOBILE STYLES
   ================================================================ */
@media (max-width: 768px) {

  /* Index hero */
  .blog-hero { padding: 1.5rem 0 2rem; }
  .blog-hero__title { font-size: 1.75rem; }

  /* Search bar stacks */
  .blog-search-inner { flex-direction: column; align-items: flex-start; gap: 0.75rem; }
  .blog-search-form { flex-direction: column; width: 100%; gap: 0.625rem; }
  .blog-search-input-wrap { width: 100%; min-width: 0; }
  .blog-search-select-wrap { width: 100%; }
  .blog-search-select { width: 100%; }

  /* Featured: horizontal scroll carousel on mobile */
  .blog-featured-grid {
    grid-template-columns: repeat(4, 75vw);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    gap: 1rem;
    padding-bottom: 0.75rem;
    /* Scroll indicator dots via JS — pure CSS dots as fallback */
  }
  .blog-featured-card { scroll-snap-align: start; }
  .blog-featured-card__img-link { height: 180px; }  /* taller on mobile for carousel */

  /* Post cards: stack */
  .blog-post-card { flex-direction: column; }
  .blog-post-card__img-link { flex: none; max-width: 100%; height: 220px; display: flex; }
  .blog-post-card__img { height: 220px; }
  .blog-post-card__img-placeholder { min-height: 220px; }
  .blog-post-card__body { padding: 1.25rem; }
  .blog-post-card__title { font-size: 1.1rem; }

  /* Single post hero: stack */
  .single-post-hero__card { flex-direction: column; }
  .single-post-hero__left {
    padding: 1.75rem 1.25rem 1.25rem;
    order: 2;
  }
  .single-post-hero__image {
    flex: none;
    max-width: 100%;
    order: 1;
  }
  .single-post-hero__img {
    height: 240px;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  }
  .single-post-hero__title { font-size: 1.5rem; }

  /* Post content */
  .single-post-content { padding: 2rem 0 3rem; }
  .single-post-body h2 { font-size: 1.2rem; }
  .single-post-body h3 { font-size: 0.95rem; }

  /* Pagination: compact */
  .blog-pagination__btn { min-width: 32px; height: 32px; font-size: 0.8rem; }
}

/* ================================================================
   TEAM MEMBERS — Archive & Single
   ================================================================ */

/* ── Archive Hero ── */
.team-archive-hero {
  background: var(--color-bg-light);
  padding: 2.5rem 0 2.5rem;
  text-align: center;
}
.team-archive-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3.5vw, 2.75rem);
  color: var(--color-primary);
  font-weight: 700;
  line-height: 1.2;
  max-width: 760px;
  margin: 0 auto;
}

/* ── Philosophy intro ── */
.team-philosophy {
  background: var(--color-white);
  padding: 2.5rem 0 1rem;
  text-align: center;
}
.team-philosophy__heading {
  font-family: var(--font-heading);
  font-size: 1.6rem;
  color: var(--color-primary);
  font-weight: 700;
  margin: 0 0 0.75rem;
}
.team-philosophy__text {
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--color-text);
  max-width: 600px;
  margin: 0 auto;
}

/* ── Search / filter bar ── */
.team-search-bar {
  background: var(--color-white);
  padding: 1.5rem 0 1.25rem;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}
.team-search-bar__label {
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 0.875rem;
}
.team-search-form {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

/* Name input */
.team-search-input-wrap {
  flex: 1;
  min-width: 200px;
  position: relative;
  display: flex;
  align-items: center;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  padding: 0 0.75rem;
  gap: 0.5rem;
}
.team-search-input-wrap svg { color: var(--color-text-muted); flex-shrink: 0; }
.team-search-input {
  flex: 1;
  border: none;
  outline: none;
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--color-text);
  padding: 0.6rem 0;
  background: transparent;
}
.team-search-input::placeholder { color: var(--color-text-muted); }

/* Selects */
.team-search-select-wrap {
  position: relative;
  flex-shrink: 0;
}
.team-search-select {
  appearance: none;
  -webkit-appearance: none;
  padding: 0.6rem 2.25rem 0.6rem 0.875rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.875rem;
  color: var(--color-text);
  background: var(--color-white);
  cursor: pointer;
  outline: none;
  min-width: 160px;
  transition: border-color var(--transition);
}
.team-search-select:focus { border-color: var(--color-primary); }
.team-select-chevron {
  position: absolute;
  right: 0.625rem;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--color-text-muted);
}

/* Clear All button */
.team-clear-btn {
  display: inline-flex;
  align-items: center;
  padding: 0.6rem 1.125rem;
  background: var(--color-primary);
  color: var(--color-white);
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background var(--transition);
  white-space: nowrap;
}
.team-clear-btn:hover { background: var(--color-primary-light, #1a6a80); color: var(--color-white); }

/* ── Team archive body ── */
.team-archive-body {
  padding: 2.5rem 0 4rem;
  background: var(--color-white);
}

/* ── Team 4-col grid ── */
.team-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

/* Team card */
.team-card {
  background: var(--color-white);
  border-radius: var(--radius-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-border);
}
.team-card__photo-link { display: block; }
.team-card__photo {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  display: block;
}
.team-card__photo-placeholder {
  width: 100%;
  aspect-ratio: 1;
  background: var(--color-teal-mid);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  opacity: 0.7;
}
.team-card__body {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  flex: 1;
}
.team-card__name {
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
  line-height: 1.25;
}
.team-card__name a { color: inherit; text-decoration: none; }
.team-card__name a:hover { color: var(--color-primary-light, #1a6a80); }
.team-card__credentials {
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--color-green-accent);
}
.team-card__position {
  font-family: var(--font-body);
  font-size: 0.8rem;
  color: var(--color-text-muted);
}
.team-card__btn {
  display: inline-block;
  margin-top: 0.625rem;
  padding: 0.35rem 0.875rem;
  border: 1.5px solid var(--color-primary);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  align-self: flex-start;
  transition: background var(--transition), color var(--transition);
}
.team-card__btn:hover { background: var(--color-primary); color: var(--color-white); }

/* ── Below-grid WYSIWYG content (referral section) ── */
.team-below-grid {
  margin-top: 3rem;
  padding-top: 3rem;
  border-top: 1px solid var(--color-border);
}
.team-below-grid h2 {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  color: var(--color-primary);
  font-weight: 700;
  margin: 0 0 0.75rem;
}
.team-below-grid h3 {
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-green-accent);
  margin: 1.75rem 0 0.5rem;
}
.team-below-grid p { font-size: 0.95rem; line-height: 1.75; margin-bottom: 1rem; }
.team-below-grid ul, .team-below-grid ol { padding-left: 1.5rem; margin-bottom: 1rem; }
.team-below-grid ul { list-style: disc; }
.team-below-grid li { font-size: 0.9rem; line-height: 1.65; margin-bottom: 0.3rem; }
.team-below-grid a.button,
.team-below-grid .wp-block-button__link,
.team-below-grid a[class*="btn"] {
  display: inline-block;
  padding: 0.75rem 1.5rem;
  background: var(--color-primary);
  color: var(--color-white);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 700;
  text-decoration: none;
  margin-top: 0.5rem;
  transition: background var(--transition);
}
.team-below-grid a.button:hover { background: var(--color-primary-light, #1a6a80); color: var(--color-white); }

/* ── Join Our Team section ── */
.team-join-section {
  background: var(--color-bg-light);
  padding: 4rem 0;
  text-align: center;
}
.team-join-section__inner {
  max-width: 640px;
  margin: 0 auto;
  padding: 0 1.5rem;
}
.team-join-section__heading {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--color-primary);
  font-weight: 700;
  margin: 0 0 1rem;
}
.team-join-section__body {
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--color-text);
  margin: 0 0 1.5rem;
}
.team-join-section__btn {
  display: inline-block;
  padding: 0.875rem 2rem;
  background: var(--color-primary);
  color: var(--color-white);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.975rem;
  font-weight: 700;
  text-decoration: none;
  transition: background var(--transition);
}
.team-join-section__btn:hover { background: var(--color-primary-light, #1a6a80); color: var(--color-white); }

/* ================================================================
   TEAM SINGLE — Bio card
   ================================================================ */
.team-single-hero {
  background: var(--color-white);
  padding: 3rem 0;
}
.team-single-card {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 3rem;
  align-items: start;
}
.team-single-card__photo { flex-shrink: 0; }
.team-single-card__img {
  width: 100%;
  border-radius: var(--radius-lg);
  display: block;
  aspect-ratio: 3/4;
  object-fit: cover;
}
.team-single-card__photo-placeholder {
  width: 100%;
  aspect-ratio: 3/4;
  background: var(--color-teal-mid);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  opacity: 0.7;
}
.team-single-card__details {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.team-single-card__name {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--color-primary);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
}
.team-single-card__credentials {
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--color-green-accent);
}
.team-single-card__position {
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--color-text);
  margin: 0;
}
.team-single-card__location {
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: var(--color-text);
  margin: 0;
}
.team-single-card__bio {
  font-size: 0.95rem;
  line-height: 1.8;
  color: var(--color-text);
  margin-top: 0.75rem;
}
.team-single-card__bio p { margin-bottom: 1rem; }
.team-single-card__location-btn {
  display: inline-block;
  margin-top: 0.75rem;
  padding: 0.6rem 1.5rem;
  border: 1.5px solid var(--color-primary);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  transition: background var(--transition), color var(--transition);
  align-self: flex-start;
}
.team-single-card__location-btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

/* ================================================================
   TEAM MOBILE STYLES
   ================================================================ */
@media (max-width: 900px) {
  .team-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
  /* Archive */
  .team-archive-hero { padding: 2rem 0; }
  .team-archive-hero__title { font-size: 1.75rem; }
  .team-philosophy { padding: 1.75rem 0 0.5rem; }

  .team-search-form { flex-direction: column; align-items: stretch; gap: 0.625rem; }
  .team-search-input-wrap { min-width: 0; }
  .team-search-select-wrap { width: 100%; }
  .team-search-select { width: 100%; min-width: 0; }
  .team-clear-btn { align-self: flex-start; }

  .team-grid { grid-template-columns: 1fr; gap: 1.25rem; }
  .team-card__photo { aspect-ratio: 4/3; }
  .team-card__photo-placeholder { aspect-ratio: 4/3; }

  /* Single */
  .team-single-card {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .team-single-card__img { aspect-ratio: 4/3; }
  .team-single-card__photo-placeholder { aspect-ratio: 4/3; }
  .team-single-card__name { font-size: 1.5rem; }

  .team-join-section { padding: 3rem 0; }
}

/* ================================================================
   LOCATIONS GRID BLOCK
   ================================================================ */
.kb-locations-grid { padding: 4rem 0; background: var(--color-white); }
.kb-locations-grid__header {
  text-align: center;
  max-width: 700px;
  margin: 0 auto 3rem;
}
.kb-locations-grid__heading {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  color: var(--color-primary);
  font-weight: 700;
  margin: 0 0 0.75rem;
}
.kb-locations-grid__desc {
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--color-text);
  margin: 0;
}
.kb-locations-grid__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin-bottom: 2.5rem;
}
.kb-location-card {
  background: var(--color-bg-light);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
}
.kb-location-card__img {
  flex-shrink: 0;
  width: 110px;
}
.kb-location-card__img img {
  width: 100%;
  height: auto;
  display: block;
}
.kb-location-card__img--placeholder {
  height: 80px;
  background: var(--color-teal-mid);
  border-radius: 6px;
}
.kb-location-card__body { flex: 1; }
.kb-location-card__state {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  color: var(--color-primary);
  font-weight: 700;
  margin: 0 0 0.5rem;
}
.kb-location-card__state a { color: inherit; text-decoration: none; }
.kb-location-card__state a:hover { color: var(--color-primary-light, #1a6a80); }
.kb-location-card__desc {
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--color-text-muted);
  margin: 0;
}
.kb-locations-grid__footer { text-align: center; }
.kb-locations-grid__btn {
  display: inline-block;
  padding: 0.875rem 2rem;
  background: var(--color-primary);
  color: var(--color-white);
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.975rem;
  font-weight: 700;
  text-decoration: none;
  transition: background var(--transition);
}
.kb-locations-grid__btn:hover { background: var(--color-primary-light, #1a6a80); color: var(--color-white); }

@media (max-width: 768px) {
  .kb-locations-grid { padding: 2.5rem 0; }
  .kb-locations-grid__grid { grid-template-columns: 1fr; }
  .kb-location-card { flex-direction: column; gap: 1rem; }
  .kb-location-card__img { width: 80px; }
}

/* ================================================================
   STATS BAR BLOCK (kb-stats-bar) — replaces old .stats-bar
   Light teal outer bg, 3 cards with dark teal gradient + rounded corners.
   Screenshot 1: cards are rounded, dark teal gradient (darker at top).
   ================================================================ */
.kb-stats-bar {
  background: var(--color-bg-light);
  padding: 3rem 0;
}
.kb-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
.kb-stat-card {
  background: linear-gradient(160deg, #0d6a80 0%, #0d4a5a 60%, #09384a 100%);
  border-radius: 14px;
  padding: 2.25rem 2rem;
  text-align: center;
  color: var(--color-white);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.kb-stat-number {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 4vw, 3.5rem);
  font-weight: 700;
  color: var(--color-white);
  display: block;
  line-height: 1;
  letter-spacing: -0.02em;
}
.kb-stat-label {
  font-family: var(--font-body);
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.5;
  max-width: 200px;
}
@media (max-width: 768px) {
  .kb-stats-grid { grid-template-columns: 1fr; gap: 1rem; }
  .kb-stat-number { font-size: 2.75rem; }
}

/* ================================================================
   CONTENT-WITH-IMAGE — why kolmac style (screenshot 2)
   Light teal rounded card, image left fills full height, text right centred.
   ================================================================ */
.kb-content-image__card {
  box-shadow: 0 4px 24px rgba(13,74,90,0.08);
}
.kb-content-image__text {
  text-align: left;
  align-items: flex-start;
}
.kb-content-image__heading {
  font-size: clamp(1.75rem, 2.5vw, 2.25rem);
}
.kb-content-image__body {
  text-align: left;
  color: var(--color-text);
}
.kb-content-image__link {
  background: var(--color-primary);
  color: var(--color-white) !important;
  border: none;
  border-radius: var(--radius-sm);
  padding: 0.875rem 1.75rem;
  font-weight: 700;
  text-decoration: none !important;
  transition: background var(--transition);
}
.kb-content-image__link:hover {
  background: var(--color-primary-light, #1a6a80);
  color: var(--color-white) !important;
}

/* ================================================================
   INFORMATION BLOCK — Kolmac Difference (screenshot 3)
   White bg section, teal-light cards, icon circle top-left,
   teal heading, body text, Learn More outline btn.
   ================================================================ */
.kb-information-block { background: var(--color-white); }
.kb-information-block__card {
  box-shadow: 0 2px 12px rgba(13,74,90,0.07);
  border: 1px solid var(--color-border);
}
.kb-information-block__card-title {
  color: var(--color-primary);
  font-size: 1.2rem;
}

/* ================================================================
   OUR PROGRAMS BLOCK
   - What We Treat (screenshot 4): teal-light bg, white cards, icons top-left,
     teal heading on card, body, Learn More outline btn, View All centred below.
   - Our Programs (screenshot 5): white bg, teal-light cards, label+icon row,
     large Newsreader heading, body, View All centred below.
   - Who We Treat (screenshot 6): teal-light bg, white cards, IMAGE on top
     (full width, no border radius on top corners), title+body+btn below.
   ================================================================ */

/* Card title uses Newsreader */
.kb-programs-block__card-title {
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.2;
  margin: 0;
}
.kb-programs-block__card-title a {
  color: inherit;
  text-decoration: none;
}

/* When cards have a top image (Who We Treat variant) */
.kb-programs-block__card--has-image {
  padding: 0;
  overflow: hidden;
}
.kb-programs-block__card--has-image .kb-programs-block__card-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.kb-programs-block__card--has-image .kb-programs-block__card-inner {
  padding: 1.5rem;
}

/* Learn More outline button on cards */
.kb-programs-block__card-btn {
  display: inline-block;
  margin-top: 0.75rem;
  padding: 0.45rem 1rem;
  border: 1.5px solid var(--color-primary);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  background: transparent;
  transition: background var(--transition), color var(--transition);
  align-self: flex-start;
}
.kb-programs-block__card-btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

/* ================================================================
   CTA BANNER BLOCK (screenshot 7)
   Light teal card, text centred on left half, image right rounded.
   Heading is dark teal Newsreader, body is dark teal, button orange with phone icon.
   Note is italic muted below button.
   ================================================================ */
.cta-banner-block { padding: 3rem 0; background: var(--color-white); }
.cta-banner-block .kb-cta-block__heading {
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--color-primary);
}
.cta-banner-block .kb-cta-block__body { color: var(--color-primary); }

/* ================================================================
   CTA BANNER BLOCK — homepage bottom CTA (screenshot 7)
   ================================================================ */
.kb-cta-banner-block { padding: 3rem 0; background: var(--color-white); }
.kb-cta-banner-card {
  background: var(--color-bg-light);
  border-radius: 16px;
  display: flex;
  align-items: stretch;
  overflow: hidden;
  min-height: 300px;
}
.kb-cta-banner-card__content {
  flex: 1;
  padding: 3rem 3.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 1.25rem;
}
.kb-cta-banner-card__heading {
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  color: var(--color-primary);
  font-weight: 700;
  margin: 0;
  line-height: 1.2;
}
.kb-cta-banner-card__body {
  font-family: var(--font-body);
  font-size: 0.975rem;
  line-height: 1.75;
  color: var(--color-primary);
  margin: 0;
}
.kb-cta-banner-card__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.875rem 1.75rem;
  background: var(--color-accent);
  color: var(--color-white) !important;
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.975rem;
  font-weight: 700;
  text-decoration: none !important;
  transition: background var(--transition);
  cursor: pointer;
}
.kb-cta-banner-card__btn:hover { background: var(--color-accent-hover, #a83a15); color: var(--color-white) !important; }
.kb-cta-banner-card__btn svg { flex-shrink: 0; }
.kb-cta-banner-card__note {
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--color-text-muted);
  font-style: italic;
  margin: 0;
  line-height: 1.5;
}
.kb-cta-banner-card__image {
  flex: 0 0 38%;
  max-width: 38%;
}
.kb-cta-banner-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Left-align variant */
.kb-cta-banner-card__content--left {
  align-items: flex-start;
  text-align: left;
}
.kb-cta-banner-card__content--left .kb-cta-banner-card__heading,
.kb-cta-banner-card__content--left .kb-cta-banner-card__body,
.kb-cta-banner-card__content--left .kb-cta-banner-card__note {
  text-align: left;
}

/* ================================================================
   CARD GRID BLOCK — all 4 variants
   Replaces old .kb-programs-block CSS (kept for backward compat).
   ================================================================ */

/* Section backgrounds */
.kb-card-grid          { padding: 4rem 0; }
.kb-card-grid--white       { background: var(--color-white); }
.kb-card-grid--teal-light  { background: var(--color-bg-light); }

/* Section header — centred */
.kb-card-grid__header {
  text-align: center;
  max-width: 740px;
  margin: 0 auto 3rem;
}
.kb-card-grid__heading {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  color: var(--color-primary);
  font-weight: 700;
  margin: 0 0 0.875rem;
  line-height: 1.15;
}
.kb-card-grid__desc {
  font-size: 0.975rem;
  line-height: 1.7;
  color: var(--color-text);
  margin: 0;
}

/* 3-col grid */
.kb-card-grid__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

/* ── Base card ── */
.kb-card-grid__card {
  border-radius: var(--radius-lg);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.kb-card-grid__card--white      { background: var(--color-white); border: 1px solid var(--color-border); }
.kb-card-grid__card--teal-light { background: var(--color-bg-light); border: 1px solid transparent; }
.kb-card-grid__card--image-top  { background: var(--color-white); border: 1px solid var(--color-border); }

/* ── Body padding ── */
.kb-card-grid__body { padding: 1.5rem; display: flex; flex-direction: column; gap: 0.75rem; flex: 1; }

/* ── Photo top (Who We Treat) ── */
.kb-card-grid__photo-link { display: block; }
.kb-card-grid__photo { width: 100%; height: 200px; object-fit: cover; display: block; }

/* ── Icon: circle standalone top-left (Kolmac Difference) ── */
.kb-card-grid__icon-circle--standalone {
  width: 52px; height: 52px;
  background: var(--color-white);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin: 1.5rem 0 0 1.5rem;
  flex-shrink: 0;
}
.kb-card-grid__card--teal-light .kb-card-grid__icon-circle--standalone {
  background: var(--color-white);
}
.kb-card-grid__card--white .kb-card-grid__icon-circle--standalone {
  background: var(--color-bg-light);
}
.kb-card-grid__icon-circle--standalone img { width: 30px; height: 30px; object-fit: contain; }

/* ── Icon: circle right of label row (Our Programs) ── */
.kb-card-grid__toprow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 1.5rem 0;
}
.kb-card-grid__label {
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-text-muted);
}
.kb-card-grid__icon-circle {
  width: 48px; height: 48px;
  background: var(--color-white);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.kb-card-grid__icon-circle img { width: 28px; height: 28px; object-fit: contain; }

/* ── Icon: plain, no circle (What We Treat) ── */
.kb-card-grid__icon-plain { padding: 1.5rem 1.5rem 0; }
.kb-card-grid__icon-plain img { width: 60px; height: 60px; object-fit: contain; display: block; }

/* ── Card title ── */
.kb-card-grid__card-title {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  color: var(--color-primary);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
}
.kb-card-grid__card-title a { color: inherit; text-decoration: none; }
.kb-card-grid__card-title a:hover { color: var(--color-primary-light, #1a6a80); }

/* When section is teal-light and cards are white → heading uses primary green accent */
.kb-card-grid--teal-light .kb-card-grid__card--white .kb-card-grid__card-title { color: var(--color-primary); }

/* ── Card body text ── */
.kb-card-grid__card-text {
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--color-text);
  margin: 0;
}

/* ── Bullet list ── */
.kb-card-grid__bullets {
  list-style: disc;
  padding-left: 1.25rem;
  margin: 0;
}
.kb-card-grid__bullets li {
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--color-text);
  margin-bottom: 0.3rem;
}

/* ── Per-card Learn More button ── */
.kb-card-grid__card-btn {
  display: inline-block;
  margin-top: auto;
  padding: 0.5rem 1.125rem;
  border: 1.5px solid var(--color-primary);
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary);
  text-decoration: none;
  background: transparent;
  transition: background var(--transition), color var(--transition);
  align-self: flex-start;
}
.kb-card-grid__card-btn:hover {
  background: var(--color-primary);
  color: var(--color-white);
}

/* ── View All button ── */
.kb-card-grid__footer { text-align: center; }
.kb-card-grid__view-all {
  display: inline-block;
  padding: 0.875rem 2.25rem;
  background: var(--color-primary);
  color: var(--color-white);
  border: none;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.975rem;
  font-weight: 700;
  text-decoration: none;
  transition: background var(--transition);
}
.kb-card-grid__view-all:hover {
  background: var(--color-primary-light, #1a6a80);
  color: var(--color-white);
}

/* ── Mobile ── */
@media (max-width: 900px) {
  .kb-card-grid__grid { grid-template-columns: 1fr; }
  .kb-card-grid { padding: 2.5rem 0; }
}

/* ================================================================
   ARTICLE CONTENT CONTAINER (kolmac/content-container)
   Wraps standard WP blocks at 834px max-width, white background.
   Targets core/* blocks nested inside — no custom classes needed
   on the blocks themselves.
   ================================================================ */
.kb-content-container {
  background: var(--color-white);
  width: 100%;
}
.kb-content-container__wrap {
  /* max-width and padding come from inline styles saved in the block */
}

/* H1 — page title only */
.kb-content-container h1,
.kb-content-container .wp-block-heading.kb-article-h1 {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  color: #03455C;
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 1.75rem;
}

/* H2 — Figma Headline 2: Newsreader 36px 600 weight 120% line-height */
.kb-content-container h2 {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 36px;
  font-style: normal;
  font-weight: 600;
  line-height: 1.2;
  color: #03455C;
  margin: 2rem 0 0.875rem;
}

/* H3 — Figma Subtitle 1: DM Sans 18px 500 weight 150% line-height, same primary color */
.kb-content-container h3 {
  font-family: 'DM Sans', sans-serif;
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
  line-height: 1.5;
  color: #03455C;
  margin: 1.75rem 0 0.5rem;
}

/* H4/H5/H6 — DM Sans, same primary color, progressively smaller */
.kb-content-container h4 {
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  color: #03455C;
  margin: 1.5rem 0 0.5rem;
}
.kb-content-container h5 {
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
  color: #03455C;
  margin: 1.25rem 0 0.4rem;
}
.kb-content-container h6 {
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  color: #03455C;
  margin: 1rem 0 0.4rem;
}

/* Paragraphs */
.kb-content-container p,
.kb-content-container .wp-block-paragraph {
  font-family: var(--font-body);
  font-size: 0.975rem;
  line-height: 1.8;
  color: var(--color-text);
  margin-bottom: 1rem;
}
.kb-content-container p:last-child { margin-bottom: 0; }

/* Lists — disc bullets with proper indent (matches screenshot) */
.kb-content-container ul,
.kb-content-container .wp-block-list {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 1.25rem;
}
.kb-content-container ul li,
.kb-content-container .wp-block-list li {
  position: relative;
  padding-left: 1.5rem;
  font-size: 0.975rem;
  line-height: 1.75;
  color: var(--color-text);
  margin-bottom: 0.3rem;
}
.kb-content-container ul li::before,
.kb-content-container .wp-block-list li::before {
  content: '•';
  position: absolute;
  left: 0.5rem;
  color: var(--color-text);
  font-size: 0.8rem;
  line-height: 1.75;
}

/* Ordered lists */
.kb-content-container ol {
  padding-left: 1.5rem;
  margin: 0.5rem 0 1.25rem;
}
.kb-content-container ol li {
  font-size: 0.975rem;
  line-height: 1.75;
  color: var(--color-text);
  margin-bottom: 0.3rem;
}

/* Links */
.kb-content-container a { color: var(--color-primary); text-decoration: underline; }
.kb-content-container a:hover { color: var(--color-accent); }

/* Separator */
.kb-content-container hr,
.kb-content-container .wp-block-separator {
  border: none;
  border-top: 1px solid var(--color-border);
  margin: 2rem 0;
}

/* Image */
.kb-content-container img,
.kb-content-container .wp-block-image img {
  border-radius: var(--radius-md);
  max-width: 100%;
  height: auto;
}

/* Quote */
.kb-content-container blockquote,
.kb-content-container .wp-block-quote {
  border-left: 4px solid var(--color-primary);
  padding: 1rem 1.5rem;
  margin: 1.5rem 0;
  background: var(--color-bg-light);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-style: italic;
  color: var(--color-text);
}

/* Mobile */
@media (max-width: 768px) {
  .kb-content-container__wrap {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
  .kb-content-container h1 { font-size: 1.75rem; }
  .kb-content-container h2 { font-size: 1.35rem; }
  .kb-content-container h3 { font-size: 1rem; }
}

/* ── Editor canvas styles (mirrors front-end inside the block editor) ── */
.wp-block-kolmac-content-container h1 { font-family: 'Newsreader', Georgia, serif; color: #0d4a5a; font-weight: 700; }
.wp-block-kolmac-content-container h3 { font-family: 'DM Sans', sans-serif; color: #5a8a60; font-weight: 700; }

/* ================================================================
   CONTENT CONTAINER — additional selectors to catch all cases
   WordPress always adds wp-block-{namespace}-{slug} to the root
   element regardless of save format. Targeting both classes ensures
   styles apply even if the kb-content-container class is absent.
   ================================================================ */

/* The WP-generated class is always present on the block root */
.wp-block-kolmac-content-container,
.wp-block-kolmac-content-container .kb-content-container__wrap {
  /* Ensure the wrapper is seen as a block context */
}

/* Apply all heading styles via the WP class too */
.wp-block-kolmac-content-container h2,
.kb-content-container h2 {
  font-family: 'Newsreader', Georgia, serif !important;
  font-size: 36px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: #03455C !important;
  margin: 2rem 0 0.875rem;
}
.wp-block-kolmac-content-container h3,
.kb-content-container h3 {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  color: #03455C !important;
  margin: 1.75rem 0 0.5rem;
}
.wp-block-kolmac-content-container h4,
.wp-block-kolmac-content-container h5,
.wp-block-kolmac-content-container h6,
.kb-content-container h4,
.kb-content-container h5,
.kb-content-container h6 {
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  color: #03455C !important;
}
.wp-block-kolmac-content-container h4, .kb-content-container h4 { font-size: 16px !important; margin: 1.5rem 0 0.5rem; }
.wp-block-kolmac-content-container h5, .kb-content-container h5 { font-size: 15px !important; margin: 1.25rem 0 0.4rem; }
.wp-block-kolmac-content-container h6, .kb-content-container h6 { font-size: 14px !important; margin: 1rem 0 0.4rem; }

.wp-block-kolmac-content-container p,
.kb-content-container p {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.975rem;
  line-height: 1.8;
  color: #1a2e35;
  margin-bottom: 1rem;
}

/* Max-width centering — applied even when kb-content-container__wrap
   inline style isn't present (old saved instances) */
.wp-block-kolmac-content-container {
  background: #ffffff;
  width: 100%;
}
.wp-block-kolmac-content-container > * {
  max-width: 834px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2rem;
  padding-right: 2rem;
}
/* But the __wrap div already handles centering — don't double-pad */
.wp-block-kolmac-content-container .kb-content-container__wrap > * {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

/* Bullet list styles via WP class */
.wp-block-kolmac-content-container ul,
.wp-block-kolmac-content-container .wp-block-list {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 1.25rem;
}
.wp-block-kolmac-content-container ul li,
.wp-block-kolmac-content-container .wp-block-list li {
  position: relative;
  padding-left: 1.5rem;
  font-size: 0.975rem;
  line-height: 1.75;
  color: #1a2e35;
  margin-bottom: 0.3rem;
}
.wp-block-kolmac-content-container ul li::before,
.wp-block-kolmac-content-container .wp-block-list li::before {
  content: '•';
  position: absolute;
  left: 0.5rem;
  color: #1a2e35;
  font-size: 0.8rem;
  line-height: 1.75;
}

/* ================================================================
   LOCATION MAP BLOCK
   Two-column: searchable list left, Google Map right.
   ================================================================ */
.kb-location-map-block { padding: 3rem 0; }

.kb-location-map__heading {
  font-family: 'Newsreader', Georgia, serif;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 600;
  color: #03455C;
  margin: 0 0 1.5rem;
}

.kb-location-map__layout {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 24px;
  height: var(--klm-height, 703px);
  align-items: stretch;
}

/* ── Sidebar ── */
.kb-location-map__sidebar {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-height: 0;
}

/* Search bar */
.kb-location-map__search-wrap {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
}
.kb-location-map__search-input-wrap {
  flex: 1;
  position: relative;
}
.kb-location-map__search-icon {
  position: absolute;
  left: 0.875rem;
  top: 50%;
  transform: translateY(-50%);
  color: #aab8be;
  pointer-events: none;
  flex-shrink: 0;
}
.kb-location-map__search-input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.75rem 0.875rem 0.75rem 2.5rem;
  border: 1.5px solid #c8dde5;
  border-radius: 8px;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.925rem;
  color: #1a2e35;
  background: #fff;
  outline: none;
  transition: border-color 0.2s;
}
.kb-location-map__search-input:focus { border-color: #03455C; }
.kb-location-map__search-input::placeholder { color: #9bb0b8; }

.kb-location-map__search-btn {
  padding: 0.75rem 1.25rem;
  background: #03455C;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-family: 'DM Sans', sans-serif;
  font-size: 0.925rem;
  font-weight: 700;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.2s;
  white-space: nowrap;
}
.kb-location-map__search-btn:hover { background: #052f40; }

/* List container */
.kb-location-map__list-container {
  flex: 1;
  background: #EAF4F6;
  border-radius: 16px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-height: 0;
  overflow: hidden;
}

.kb-location-map__results-count {
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  color: #2F3337;
  flex-shrink: 0;
}

.kb-location-map__list {
  flex: 1;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #8FAEB8 transparent;
}
.kb-location-map__list::-webkit-scrollbar { width: 4px; }
.kb-location-map__list::-webkit-scrollbar-track { background: transparent; }
.kb-location-map__list::-webkit-scrollbar-thumb { background: #8FAEB8; border-radius: 2px; }

/* ── Individual location card in list ── */
.klm-list-item {
  padding: 1rem 0;
  border-bottom: 1px solid #8FAEB8;
  cursor: pointer;
  transition: background 0.15s;
  border-radius: 4px;
  outline: none;
}
.klm-list-item:last-child { border-bottom: none; }
.klm-list-item:first-child { padding-top: 0; }
.klm-list-item.is-active,
.klm-list-item:focus-visible { background: rgba(3,69,92,0.06); border-radius: 8px; padding-left: 8px; padding-right: 8px; }

.klm-list-title {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.2;
  color: #03455C;
  margin: 0 0 4px;
}
.klm-list-title a {
  color: #03455C;
  text-decoration: underline;
  text-decoration-skip-ink: auto;
}
.klm-list-title a:hover { color: #052f40; }

.klm-list-coming-soon {
  font-family: 'Sora', sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #E85C1A;
  margin: 0 0 4px;
}

.klm-list-addr-wrap { margin: 0 0 6px; }
.klm-list-address {
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
  color: #03455C;
  text-decoration: none;
}
.klm-list-address:hover { text-decoration: underline; }

.klm-list-services {
  list-style: disc;
  padding-left: 1.25rem;
  margin: 0;
}
.klm-list-services li {
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: #2F3337;
  margin-bottom: 2px;
}

/* ── Map ── */
.kb-location-map__map-wrap {
  border-radius: 16px;
  overflow: hidden;
  height: 100%;
}
.kb-location-map__map {
  width: 100%;
  height: 100%;
  border-radius: 16px;
}
.kb-location-map__no-key {
  width: 100%; height: 100%;
  background: #EAF4F6;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 2rem;
  text-align: center;
  color: #03455C;
}
.kb-location-map__no-key p { margin: 0; font-size: 0.9rem; }
.kb-location-map__no-key a { color: #03455C; font-weight: 600; }

/* ── Info window styles (Google Maps injects into page) ── */
.klm-info-window { font-family: 'DM Sans', sans-serif; min-width: 200px; }
.klm-info-window h4 { font-family: 'Newsreader', Georgia, serif; font-size: 16px; font-weight: 600; color: #03455C; margin: 0 0 6px; }
.klm-info-window h4 a { color: #03455C; text-decoration: underline; }
.klm-info-coming-soon { font-size: 11px; font-weight: 600; color: #E85C1A; text-transform: uppercase; letter-spacing: 0.04em; margin: 0 0 6px; }
.klm-info-address { font-size: 13px; color: #03455C; margin: 0 0 8px; line-height: 1.5; }
.klm-info-address a { color: #03455C; }
.klm-info-services { list-style: disc; padding-left: 1.1rem; margin: 0; }
.klm-info-services li { font-size: 12px; color: #2F3337; line-height: 1.5; margin-bottom: 2px; }

/* ── Mobile ── */
@media (max-width: 900px) {
  .kb-location-map__layout {
    grid-template-columns: 1fr;
    height: auto;
  }
  .kb-location-map__list-container { height: 400px; }
  .kb-location-map__map-wrap { height: 360px; }
  .kb-location-map__map { height: 360px; }
}

/* CTA Banner mobile (kept separate so left-align fix above isn't lost) */
@media (max-width: 768px) {
  .kb-cta-banner-card { flex-direction: column; }
  .kb-cta-banner-card__image { flex: none; max-width: 100%; }
  .kb-cta-banner-card__image img { height: 240px; }
  .kb-cta-banner-card__content { padding: 2rem 1.5rem; }
  .kb-cta-banner-card__btn { width: 100%; justify-content: center; }
}

/* ── Intro Title: inline subtitle (wrapped inside H1) ── */
.kb-intro-title__h1--has-sub {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.kb-intro-title__sub-inline {
  display: block;
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.5;
}
/* Ensure existing separated-subtitle style is unchanged */
.kb-intro-title__sub {
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-primary);
  margin: 0.375rem 0 0;
  line-height: 1.5;
}

/* Information Block: rich body text list styles */
.kb-information-block__card-body ul,
.kb-information-block__sub ul {
  list-style: disc;
  padding-left: 1.25rem;
  margin: 0.5rem 0;
}
.kb-information-block__card-body ul li,
.kb-information-block__sub ul li {
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--color-text);
  margin-bottom: 0.2rem;
}
.kb-information-block__card-body p { margin-bottom: 0.5rem; }
.kb-information-block__card-body p:last-child { margin-bottom: 0; }

/* ── Information Block: icon + card styles ── */
.kb-information-block__card-icon {
  width: 52px; height: 52px;
  background: var(--color-bg-light);
  border-radius: 50%;
  display: flex; align-items:center; justify-content:center;
  margin-bottom: 0.75rem;
}
.kb-information-block__card-icon img { width:30px; height:30px; object-fit:contain; }
.kb-information-block__card--mini { padding: 1.25rem; }
.kb-information-block__card--mini .kb-information-block__card-title { margin: 0; }
.kb-information-block__card-link {
  display: inline-block;
  margin-top: 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: #03455C;
  text-decoration: underline;
}
/* List support in card body */
.kb-information-block__card-body ul,
.kb-information-block__card-body ol {
  padding-left: 1.25rem;
  margin: 0.4rem 0;
}
.kb-information-block__card-body ul { list-style: disc; }
.kb-information-block__card-body ol { list-style: decimal; }
.kb-information-block__card-body li { font-size:0.9rem; line-height:1.75; color:var(--color-text); margin-bottom:0.2rem; }
.kb-information-block__card-body h2,.kb-information-block__card-body h3,
.kb-information-block__card-body h4,.kb-information-block__card-body h5,
.kb-information-block__card-body h6 { color:#03455C; font-weight:700; margin:0.75rem 0 0.25rem; }
.kb-information-block__card-body h2 { font-family:var(--font-heading); font-size:1.1rem; }
.kb-information-block__card-body h3 { font-size:1rem; }
.kb-information-block__card-body h4,.kb-information-block__card-body h5,.kb-information-block__card-body h6 { font-size:0.9rem; }

/* ── CTA Button Block ── */
.kb-cta-button-wrap { display:flex; }
.kb-cta-button {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.875rem 1.5rem;
  border-radius: 10px;
  text-decoration: none !important; /* override any global a { text-decoration } */
  transition: filter 0.2s, opacity 0.2s;
  font-family: var(--font-body);
  cursor: pointer;
  border: 2px solid transparent;
}
.kb-cta-button:hover { filter: brightness(0.88); opacity: 0.95; }
.kb-cta-button--full { width:100%; justify-content:center; }
/* Legacy variant classes — kept for old blocks, new blocks use inline style */
.kb-cta-button--teal    { background:#03455C; color:#fff !important; border-color:#03455C; }
.kb-cta-button--outline { background:#fff; color:#03455C !important; border-color:#03455C; }
.kb-cta-button__icon { display:inline-flex; align-items:center; flex-shrink:0; }
.kb-cta-button__icon img { width:24px; height:24px; object-fit:contain; }
.kb-cta-button__text { display:flex; flex-direction:column; gap:1px; }
/* Force text color through even when inside .entry-content or other link-styling containers */
.kb-cta-button .kb-cta-button__title,
.kb-cta-button .kb-cta-button__subtitle { text-decoration:none !important; }
.kb-cta-button__title { font-weight:700; font-size:1rem; line-height:1.3; }
.kb-cta-button__subtitle { font-weight:400; font-size:0.8rem; line-height:1.3; opacity:0.85; }

/* ── CTA Block text alignment modifiers ── */
.kb-cta-block__content--align-left    { align-items:flex-start; text-align:left; }
.kb-cta-block__content--align-center  { align-items:center;     text-align:center; }
.kb-cta-block__content--align-right   { align-items:flex-end;   text-align:right; }
.kb-cta-block__content--align-left .kb-cta-block__heading,
.kb-cta-block__content--align-left .kb-cta-block__body    { text-align:left; }
.kb-cta-block__content--align-right .kb-cta-block__heading,
.kb-cta-block__content--align-right .kb-cta-block__body   { text-align:right; }

/* ── Services List: header-top layout ── */
.kb-services-list--header-top .kb-services-list__header-top {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
  margin-bottom: 2rem;
}
.kb-services-list--header-top .kb-services-list__header-img {
  width: 240px;
  flex-shrink: 0;
  border-radius: 12px;
  object-fit: cover;
}
.kb-services-list--header-top .kb-services-list__header-text { flex: 1; }
.kb-services-list--header-top .kb-services-list__grid--full {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 1.25rem;
}
@media (max-width:768px) {
  .kb-services-list--header-top .kb-services-list__header-top { flex-direction:column; }
  .kb-services-list--header-top .kb-services-list__header-img { width:100%; }
  .kb-services-list--header-top .kb-services-list__grid--full { grid-template-columns:1fr; }
}

/* ── Services List: read-more expand/collapse ── */
.kb-read-more-wrap { display:flex; flex-direction:column; gap:0.375rem; }
.kb-services-card__body-text { font-size:0.9rem; line-height:1.75; color:var(--color-text); }
.kb-read-more-btn {
  background: none;
  border: none;
  padding: 0;
  font-family: var(--font-body);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--color-primary);
  cursor: pointer;
  text-decoration: underline;
  align-self: flex-start;
  transition: color 0.15s;
}
.kb-read-more-btn:hover { color: var(--color-accent); }

/* ── Services List: image-right layout ── */
.kb-services-list__img-right {
  display: none; /* hidden on mobile — handled inside left col */
}
.kb-services-list__layout {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 3rem 4rem;
  align-items: start;
}
.kb-services-list__layout:has(.kb-services-list__img-right) {
  grid-template-columns: 1fr 1fr 2fr;
}
/* Fallback for browsers without :has() */
.kb-services-list__right--has-img-right { grid-column: 3; }
.kb-services-list__img-right { display:block; }
@media (max-width:900px) {
  .kb-services-list__layout:has(.kb-services-list__img-right) { grid-template-columns:1fr; }
  .kb-services-list__right--has-img-right { grid-column:1; }
}

/* Header-top image right variant */
.kb-services-list__header-top--img-right { flex-direction:row-reverse; }

/* ── Information block body: allow lists ── */
.kb-information-block__card-body > ul,
.kb-information-block__card-body > ol {
  margin: 0.4rem 0;
  padding-left: 1.25rem;
}
.kb-information-block__card-body > ul { list-style: disc; }
.kb-information-block__card-body > ol { list-style: decimal; }
.kb-information-block__card-body > ul li,
.kb-information-block__card-body > ol li {
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--color-text);
  margin-bottom: 0.2rem;
}
/* Mixed content: paragraphs between lists */
.kb-information-block__card-body > p { margin-bottom: 0.5rem; }
.kb-information-block__card-body > p:last-child { margin-bottom: 0; }

/* ================================================================
   LOCATION SIDEBAR BLOCK — Revised layout per spec
   ================================================================ */
.kb-location-sidebar-block { padding: 2rem 0; }

/* Outer container: max-width 1051px, white bg, centered */
.kb-location-sidebar__outer {
  max-width: 1051px;
  margin: 0 auto;
  background: #ffffff;
}

/* Two-column row */
.kb-location-sidebar__row {
  display: flex;
  gap: 24px;
  align-items: stretch;
}

/* Image: fills all space left of the 330px sidebar.
   Container is 1051px, sidebar is 330px, gap is 24px → image gets 697px. */
.kb-location-sidebar__image {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 320px;
  border-radius: 12px;
  overflow: hidden;
}
.kb-location-sidebar__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Sidebar: teal bg, fixed 330px, 16px radius */
.kb-location-sidebar__sidebar {
  flex: 0 0 330px;
  width: 330px;
  background: #EAF4F6;
  border-radius: 16px;
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  box-sizing: border-box;
}

.kb-location-sidebar__card-title {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 700;
  color: #03455C;
  margin: 0;
  line-height: 1.3;
}

/* Location entries in sidebar */
.kb-location-sidebar__list { display: flex; flex-direction: column; gap: 0.875rem; }
.kb-location-sidebar__loc  { display: flex; flex-direction: column; gap: 3px; }
.kb-location-sidebar__loc-name { margin: 0; }
.kb-location-sidebar__loc-name a {
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  color: #03455C;
  text-decoration: none;
}
.kb-location-sidebar__loc-name a:hover { text-decoration: underline; }
.kb-location-sidebar__coming-soon {
  font-family: 'Sora', sans-serif;
  font-size: 11px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: #E85C1A; margin: 0;
}
.kb-location-sidebar__status {
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--color-green-accent); margin: 0;
}
.kb-location-sidebar__address {
  display: flex; align-items: flex-start; gap: 0.375rem;
  font-size: 0.875rem; font-weight: 500;
  color: #03455C; text-decoration: none; line-height: 1.5;
}
.kb-location-sidebar__address:hover { text-decoration: underline; }
.kb-location-sidebar__pin { flex-shrink: 0; margin-top: 2px; }
.kb-location-sidebar__services {
  list-style: disc; padding-left: 1.25rem; margin: 2px 0 0;
}
.kb-location-sidebar__services li { font-size: 0.8rem; line-height: 1.5; color: var(--color-text); }

/* CTA buttons in sidebar */
.kb-location-sidebar__ctas { display: flex; flex-direction: column; gap: 0.625rem; margin-top: auto; }
.kb-location-sidebar__btn {
  display: flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 0.75rem 1rem; border-radius: 8px;
  font-family: var(--font-body); font-size: 0.875rem; font-weight: 700;
  text-decoration: none; transition: background 0.2s; text-align: center;
}
.kb-location-sidebar__btn--phone { background: var(--color-accent); color: #fff; }
.kb-location-sidebar__btn--phone:hover { background: var(--color-accent-hover,#a83a15); color: #fff; }
.kb-location-sidebar__btn--appt { background: #03455C; color: #fff; }
.kb-location-sidebar__btn--appt:hover { background: #022a3a; color: #fff; }

/* Map: max-width 650px, 48px top spacing */
.kb-location-sidebar__map-wrap {
  max-width: 650px;
  margin: 48px auto 0;
  border-radius: 12px;
  overflow: hidden;
}
.kb-location-sidebar__map { border-radius: 12px; }
.kb-location-sidebar__map-placeholder {
  background: var(--color-bg-light); border-radius: 12px;
  height: 100%; display: flex; align-items: center; justify-content: center;
  font-size: 0.85rem; color: var(--color-text-muted); padding: 2rem;
}

/* Mobile */
@media (max-width: 768px) {
  .kb-location-sidebar__row { flex-direction: column; }
  .kb-location-sidebar__image { height: 220px; flex: none; }
  .kb-location-sidebar__sidebar { flex: none; max-width: 100%; }
  .kb-location-sidebar__map-wrap { max-width: 100%; margin-top: 1.5rem; }
}

/* ── Button icon shared styles ── */
.kb-btn-icon { display:inline-flex; align-items:center; flex-shrink:0; }
.kb-btn-icon--custom img { width:18px; height:18px; object-fit:contain; }
.kb-btn-icon svg { display:block; }

/* ── InfoBodyEditor inline images (via 🖼 Image toolbar button) ── */
.kb-information-block__card-body .kb-body-img,
.kb-services-list .kb-body-img,
.kb-faq-block .kb-body-img {
  max-width: 100%; height: auto; border-radius: 6px;
}
.kb-body-img--left   { float:left;  margin:0 1rem 0.5rem 0; max-width:50%; }
.kb-body-img--right  { float:right; margin:0 0 0.5rem 1rem; max-width:50%; }
.kb-body-img--center { display:block; margin:0.5rem auto; max-width:100%; float:none; }
/* Clearfix after floated images */
.kb-information-block__card-body::after,
.kb-services-card__body::after { content:''; display:table; clear:both; }

/* Contenteditable placeholder */
[data-placeholder]:empty::before {
  content: attr(data-placeholder);
  color: #aaa; pointer-events:none; font-style:italic;
}

/* ================================================================
   TESTIMONIALS BLOCK
   ================================================================ */
.kb-testimonials-block { padding: 4rem 0; }
.kb-testimonials--teal  { background: #EAF4F6; }
.kb-testimonials--white { background: #ffffff; }

.kb-testimonials-block__heading {
  font-family: 'Newsreader', Georgia, serif;
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 700;
  color: #03455C;
  text-align: center;
  margin: 0 0 2.5rem;
}

/* Swiper wrapper */
.kb-testimonials-swiper { padding-bottom: 3rem !important; }
.kb-testimonials-swiper .swiper-slide { height: auto; }

/* Card */
.kb-testimonial-card {
  height: 100%;
  border-radius: 16px;
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  box-shadow: 0 2px 16px rgba(3,69,92,0.08);
  box-sizing: border-box;
}
.kb-testimonial-card--white { background: #ffffff; }
.kb-testimonial-card--teal  { background: #EAF4F6; }

.kb-testimonial-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}
.kb-testimonial-card__stars { display: flex; gap: 3px; }
.kb-testimonial-card__quote-icon {
  color: #03455C;
  opacity: 0.5;
  flex-shrink: 0;
  margin-top: 2px;
}
.kb-testimonial-card__quote {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.95rem;
  line-height: 1.75;
  color: #1a2e35;
  margin: 0;
  flex: 1;
}
.kb-testimonial-card__footer { margin-top: auto; }
.kb-testimonial-card__author {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  color: #03455C;
  margin: 0;
}
.kb-testimonial-card__location {
  font-family: 'DM Sans', sans-serif;
  font-size: 0.825rem;
  color: #4CAF50;
  font-weight: 500;
  margin: 3px 0 0;
  text-align: right;
}

/* Pagination dots */
.kb-testimonials-pagination { bottom: 0 !important; }
.kb-testimonials-pagination .swiper-pagination-bullet { background: #8FAEB8; opacity: 1; }
.kb-testimonials-pagination .swiper-pagination-bullet-active { background: #03455C; }

/* Nav arrows */
.kb-testimonials-prev, .kb-testimonials-next { color: #03455C !important; }
.kb-testimonials-prev::after, .kb-testimonials-next::after { font-size: 1.25rem !important; }

/* Hero secondary CTA button */
.kb-hero-btn--primary {
  display: inline-flex; align-items:center; gap:0.5rem;
  padding: 0.875rem 1.75rem; border-radius:8px;
  background: #E85C1A; color:#fff; font-weight:700;
  font-size:0.975rem; text-decoration:none; transition:background 0.2s;
}
.kb-hero-btn--primary:hover { background:#a83a15; color:#fff; }
.kb-hero-btn--secondary {
  display:inline-flex; align-items:center; gap:0.5rem;
  padding:0.875rem 1.75rem; border-radius:8px;
  background:transparent; color:#fff; font-weight:700;
  font-size:0.975rem; text-decoration:none;
  border:2px solid rgba(255,255,255,0.7); transition:background 0.2s,border-color 0.2s;
}
.kb-hero-btn--secondary:hover { background:rgba(255,255,255,0.1); color:#fff; }
.hero-ctas { display:flex; gap:0.875rem; flex-wrap:wrap; margin-top:0.25rem; }

/* Inline image alignment inside InfoBodyEditor-driven fields */
.kb-body-img { max-width:100%; height:auto; border-radius:6px; }
.kb-body-img--left   { float:left;  margin:0.25rem 1rem 0.5rem 0; max-width:45%; }
.kb-body-img--right  { float:right; margin:0.25rem 0 0.5rem 1rem; max-width:45%; }
.kb-body-img--center { display:block; margin:0.5rem auto; float:none; }

/* ── Shared: rich body content output (information-block, services-list, faq-block) ── */
.kb-rich-body ul, .kb-rich-body ol,
.kb-information-block__card-body ul, .kb-information-block__card-body ol,
.kb-services-card__body ul, .kb-services-card__body ol,
.kb-faq-answer ul, .kb-faq-answer ol {
  padding-left: 1.4rem; margin: 0.4rem 0;
}
.kb-information-block__card-body ul,
.kb-services-card__body ul,
.kb-faq-answer ul { list-style: disc; }
.kb-information-block__card-body ol,
.kb-services-card__body ol,
.kb-faq-answer ol { list-style: decimal; }
.kb-information-block__card-body li,
.kb-services-card__body li,
.kb-faq-answer li { line-height:1.75; margin-bottom:0.15rem; color:var(--color-text); font-size:0.9rem; }

/* Clearfix for floated images */
.kb-information-block__card-body::after,
.kb-services-card__body::after,
.kb-faq-answer::after { content:''; display:table; clear:both; }

/* ================================================================
   HERO BLOCK — Interior page variant
   heroStyle: 'interior' — teal-light card bg, image flush bottom-right.
   The default variant uses the original .hero-section rules above — no
   overrides needed. Adding hero-section--interior only applies these rules.
   ================================================================ */
.hero-section--interior .hero-inner {
  background: #EAF4F6;
  border-radius: 16px;
  overflow: hidden;
  align-items: stretch;
  min-height: 280px;
  gap: 0;
}
.hero-section--interior .hero-content {
  padding: 3rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hero-section--interior .hero-heading {
  color: #03455C;
  margin-bottom: 0.75rem;
}
.hero-section--interior .hero-body {
  color: #1a2e35;
  margin-bottom: 1.5rem;
}
/* Interior image — flush to bottom-right with top-left radius */
.hero-image-interior {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  overflow: hidden;
}
.hero-image-interior img {
  width: 100%;
  height: 100%;
  min-height: 260px;
  object-fit: cover;
  display: block;
  border-radius: 16px 0 0 0;
}
@media (max-width: 768px) {
  .hero-section--interior .hero-inner { grid-template-columns: 1fr; }
  .hero-image-interior { min-height: 220px; }
  .hero-image-interior img { border-radius: 0 0 16px 16px; min-height: 220px; }
}

/* ================================================================
   STORIES CPT — Video embed
   ================================================================ */
/* Responsive 16:9 wrapper */
.story-video-embed-wrap {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  overflow: hidden;
  border-radius: 12px;
  background: #000;
}
.story-video-embed-wrap iframe {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  border: none;
}
/* Video in the hero area */
.single-story-video-hero .story-video-embed-wrap {
  border-radius: 12px;
}
/* Video below the hero (when not shown in hero slot) */
.single-story-video-section {
  padding: 2rem 0;
}
.single-story-video-section .story-video-embed-wrap {
  max-width: 760px;
  margin: 0 auto;
}

/* MP4 video in embed wrapper — fills the 16:9 box like an iframe */
.story-video-embed-wrap--mp4 video {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  border-radius: 12px;
  background: #000;
  object-fit: contain;
}

/* ================================================================
   STORIES ARCHIVE — 2-column grid
   ================================================================ */
.stories-archive { padding: 2.5rem 0 4rem; }

.stories-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  max-width: 860px; /* keeps cards from getting too wide */
  margin: 0 auto;
}

/* Story card */
.story-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(13,74,90,0.08);
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s, transform 0.2s;
}
.story-card:hover {
  box-shadow: 0 6px 24px rgba(13,74,90,0.14);
  transform: translateY(-2px);
}
.story-card__img-link { display: block; overflow: hidden; aspect-ratio: 16/9; }
.story-card__img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 0.3s;
}
.story-card:hover .story-card__img { transform: scale(1.03); }
.story-card__img-placeholder {
  width: 100%; height: 100%;
  background: var(--color-bg-light);
}
.story-card__body {
  padding: 1.25rem 1.25rem 1.5rem;
  display: flex; flex-direction: column; gap: 0.5rem;
  flex: 1;
}
.story-card__title {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.3;
  margin: 0;
}
.story-card__title a { color: inherit; text-decoration: none; }
.story-card__title a:hover { text-decoration: underline; }
.story-card__excerpt {
  font-size: 0.875rem;
  color: var(--color-text-muted);
  line-height: 1.6;
  margin: 0;
}

@media (max-width: 640px) {
  .stories-grid { grid-template-columns: 1fr; max-width: 100%; }
}

/* ── Blog card: logo fallback when no featured image is set ──
   The logo must NOT use object-fit:cover — it must sit centred
   at its natural proportions within the image slot.             */
.blog-card__logo-wrap {
  /* Must fill the parent link element completely so the logo
     centres within the same area a real image would occupy.
     Works for both fixed-height featured links and flex listing links. */
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;           /* fills fixed-height .blog-featured-card__img-link */
  min-height: inherit;    /* picks up min-height from placeholder if set */
  background: var(--color-bg-light);
  flex: 1;                /* fills the flex .blog-post-card__img-link */
}
.blog-card-logo-fallback {
  max-width: 55%;
  max-height: 55%;
  width: auto;
  height: auto;
  object-fit: contain;    /* never crop or stretch — preserve natural proportions */
  opacity: 0.7;
}

/* ================================================================
   CALL US POPUP  (#kcu-popup) + STICKY TAB (#kcu-tab)
   ================================================================ */

/* ── Popup container ── */
.kcu-popup {
  position: fixed;
  z-index: 9990;
  width: calc(100vw - 32px);
  max-width: 330px;
  border-radius: 16px;
  border: 1px solid #EAF4F6;
  background: #ffffff;
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.25);
  overflow: hidden;
  /* Hidden by default — visibility allows CSS transitions unlike display:none */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(20px);
  transition: opacity 0.35s ease, transform 0.35s ease, visibility 0s linear 0.35s;
}
.kcu-popup.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition: opacity 0.35s ease, transform 0.35s ease, visibility 0s linear 0s;
}

/* ── Top teal bar ── */
.kcu-popup__bar {
  height: 24px;
  background: #EAF4F6;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding: 0 8px;
}
.kcu-popup__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #03455C;
  padding: 0;
  border-radius: 4px;
  transition: background 0.15s;
}
.kcu-popup__close:hover { background: rgba(3,69,92,0.1); }
.kcu-popup__close:focus-visible { outline: 2px solid #03455C; outline-offset: 2px; }

/* ── Main body ── */
.kcu-popup__body {
  padding: 8px 24px 23px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

/* ── Profile image ── */
.kcu-popup__img-wrap { width: 120px; height: 120px; flex-shrink: 0; }
.kcu-profile-img {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}

/* ── Headline ── */
.kcu-popup__headline {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
  color: #03455C;
  text-align: center;
  margin: 0;
}

/* ── Body + secondary text ── */
.kcu-popup__text,
.kcu-popup__secondary {
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  color: #2F3337;
  text-align: center;
  margin: 0;
}
.kcu-popup__secondary a {
  color: #03455C;
  text-decoration: underline;
}
.kcu-popup__secondary a:hover { color: #E85C1A; }

/* ── CTA button ── */
.kcu-popup__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 22px 16px;
  border-radius: 4px;
  background: linear-gradient(0deg, #C84D14 0%, #D85C1A 100%);
  color: #ffffff;
  font-family: 'DM Sans', sans-serif;
  font-size: 16px;
  font-weight: 700;
  line-height: normal;
  text-decoration: none !important;
  box-sizing: border-box;
  transition: filter 0.2s;
}
.kcu-popup__cta:hover { filter: brightness(0.9); color: #ffffff; }
.kcu-cta-icon { width: 20px; height: 20px; object-fit: contain; flex-shrink: 0; }
.kcu-cta-icon svg { width: 20px; height: 20px; display: block; }

/* ── Sticky tab ── */
.kcu-tab {
  position: fixed;
  z-index: 9990;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 8px 8px 0 0;
  background: #03455C;
  color: #ffffff;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.15);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity 0.3s ease, transform 0.3s ease, background 0.2s, visibility 0s linear 0.3s;
}
.kcu-tab.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition: opacity 0.3s ease, transform 0.3s ease, background 0.2s, visibility 0s linear 0s;
}
.kcu-tab:hover { background: #0d4a5a; }
.kcu-tab:focus-visible { outline: 2px solid #E85C1A; outline-offset: 2px; }
.kcu-tab svg { flex-shrink: 0; }

/* ── Mobile safety ── */
@media (max-width: 400px) {
  .kcu-popup {
    right: 16px !important;
    width: calc(100vw - 32px);
  }
  .kcu-tab { right: 16px !important; }
}

/* ================================================================
   ADA / WCAG 2.1 AA COMPLIANCE FIXES
   Applied globally — no visual design changes, only accessibility
   ================================================================ */

/* ── 1. Skip-to-content link — ensure always reachable by keyboard ── */
.screen-reader-text:focus {
  clip: auto !important;
  clip-path: none !important;
  height: auto !important;
  width: auto !important;
  overflow: visible !important;
  position: fixed !important;
  top: 6px !important;
  left: 6px !important;
  z-index: 99999 !important;
  padding: 0.5rem 1rem !important;
  background: var(--color-primary) !important;
  color: #fff !important;
  font-weight: 700 !important;
  border-radius: 4px !important;
  text-decoration: none !important;
  outline: 3px solid #fff !important;
  outline-offset: 2px !important;
}

/* ── 2. Global focus-visible — consistent, high-contrast ring ──
   Only shows on keyboard navigation (not mouse clicks).
   Uses :focus-visible so mouse users see no ring. */
:focus-visible {
  outline: 3px solid #0d4a5a !important;
  outline-offset: 3px !important;
  border-radius: 2px !important;
}
/* Override for elements that have their own focus styling */
.kaf-open:focus-visible,
.btn:focus-visible,
.button:focus-visible,
.kb-hero-btn--primary:focus-visible,
.kb-hero-btn--secondary:focus-visible,
.kb-cta-button:focus-visible,
.kcu-popup__cta:focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(13,74,90,0.4) !important;
}
/* Remove default outline on mouse users (already handled by :focus-visible) */
:focus:not(:focus-visible) { outline: none; }

/* ── 3. Color contrast: accent button text ──
   White on #E85C1A = 3.51:1 (FAIL for normal text, AA requires 4.5:1).
   Darken the accent colour to #C84D14 which achieves 4.64:1.
   This affects .kb-hero-btn--primary, .kcu-popup__cta gradient, etc. */
:root {
  --color-accent:       #C84D14;  /* was #E85C1A — darkened for WCAG AA contrast */
  --color-accent-hover: #a03910;
}

/* ── 4. Color contrast: green text ──
   #4CAF50 on white = 2.78:1 (fail).
   Star ratings are decorative (aria-hidden) — no fix needed there.
   green-accent #5a8a60 on white = 4.01:1 (borderline — boost to 4.5+) */
:root {
  --color-green-accent: #3d7045;  /* was #5a8a60 — contrast 5.9:1 on white */
}

/* ── 5. Nav dropdown: announce expanded state on parent <a> ──
   The walker adds aria-expanded=false; JS needs to toggle it on open/close.
   CSS ensures the trigger link is never invisible to AT. */
.main-navigation > ul > li > a[aria-expanded="true"] {
  color: var(--color-primary);
}

/* ── 6. Focus ring inside nav dropdowns ── */
.nav-left-col li > a:focus-visible,
.nav-sub-col li > a:focus-visible {
  outline: 3px solid var(--color-primary) !important;
  outline-offset: -3px !important;
  border-radius: 2px !important;
}

/* ── 7. Interactive elements min touch target 44×44px (WCAG 2.5.5) ──
   Most buttons already have adequate padding. These are the edge cases. */
.mobile-menu-close,
.mobile-panel-back,
.menu-toggle,
.kcu-popup__close,
#kcu-close,
.search-toggle-btn {
  min-width: 44px;
  min-height: 44px;
}

/* ── 8. Form inputs: visible label association ──
   Inputs must have sufficient contrast borders (3:1 against bg). */
.kaf-input:focus-visible,
.kaf-select:focus-visible,
.kaf-textarea:focus-visible {
  outline: 3px solid #0d4a5a !important;
  outline-offset: 0 !important;
  border-color: #0d4a5a !important;
}

/* ── 9. Links: distinguish from body text beyond colour alone ──
   WCAG requires non-colour visual distinction for inline links.
   Body links already have underline via WP default — ensure it stays. */
.entry-content a:not(.btn):not([class*="kb-"]):not([class*="kaf-"]):not([class*="kcu-"]) {
  text-decoration: underline;
}

/* ── 10. Reduce motion: respect prefers-reduced-motion ──
   Transitions can cause vestibular issues. ── */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ── 11. High contrast mode support ── */
@media (forced-colors: active) {
  .kb-hero-btn--primary,
  .kb-hero-btn--secondary,
  .kb-cta-button,
  .kcu-popup__cta {
    border: 2px solid ButtonText;
  }
  .nav-left-col li.nav-sub-active > a {
    forced-color-adjust: none;
    outline: 2px solid Highlight;
  }
}

/* ── sr-only: visually hidden but screen-reader accessible ──
   Use class="sr-only" to hide text visually while keeping it
   available to assistive technologies. */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* =============================================================
   KOLMAC DESIGN SYSTEM — TYPOGRAPHY
   Applies the full styleguide heading scale (H1–H6) and text
   roles (Subtitle, Body, Caption, Overline, Button, Links).
   Mobile-first: base sizes scale up at 1024 px.
   ============================================================= */

/* ── Global heading scale ── */
h1 {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 2.25rem;       /* mobile base */
  font-weight: 600;
  line-height: 1.2;
  color: #03455C;
}
h2 {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 1.875rem;
  font-weight: 600;
  line-height: 1.2;
  color: #03455C;
}
h3 {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.2;
  color: #03455C;
}
h4 {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.2;
  color: #03455C;
}
h5 {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.2;
  color: #03455C;
}
h6 {
  font-family: 'Newsreader', Georgia, serif;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.2;
  color: #03455C;
}

/* ── Desktop heading scale (1024 px +) ── */
@media (min-width: 1024px) {
  h1 { font-size: 3.125rem; }
  h2 { font-size: 2.25rem;  }
  h3 { font-size: 1.875rem; }
  h4 { font-size: 1.5rem;   }
  h5 { font-size: 1.25rem;  }
  h6 { font-size: 1.125rem; }
}

/* ── Body copy ── */
body,
.body1,
.entry-content p,
.entry-content li {
  font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: #2F3337;
}
.entry-content p { margin-bottom: 0.5333rem; }
.entry-content ul li,
.entry-content ol li { margin-bottom: 0.5333rem; }

.body2 {
  font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  color: #2F3337;
}

/* ── Subtitle roles ── */
.subtitle1 {
  font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.5;
  color: #03455C;
}
.subtitle2 {
  font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  color: #03455C;
}

/* ── Caption ── */
.caption1 {
  font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1.5;
  color: #03455C;
}

/* ── Overline ── */
.overline {
  font-family: 'Sora', 'DM Sans', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.03rem;
  text-transform: uppercase;
}

/* ── Button text ── */
.button1,
.btn,
button,
input[type="submit"] {
  font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
}

/* ── Inline text links ── */
.entry-content a:not([class]),
.entry-content a.inline-link {
  font-family: 'DM Sans', 'Helvetica Neue', sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  text-decoration: underline;
  text-decoration-style: solid;
  text-underline-offset: auto;
  color: #2F3337;
}
.entry-content a:not([class]):hover,
.entry-content a.inline-link:hover {
  color: #03455C;
}


/* =============================================================
   KOLMAC CUSTOM STYLES
   Site-specific overrides and component polish.
   Moved from WordPress Additional CSS to keep them version-
   controlled inside the theme and prevent accidental removal.
   ============================================================= */

.kb-programs-block__footer a {
  color: #fff;
  text-decoration: none;
}

.kb-services-list--white .kb-services-card--white {
  background: #EAF4F6;
}
a.kb-services-card__btn {
  text-decoration: none;
  background: #fff;
}

.klm-list-addr-wrap {
  display: flex;
  gap: 5px;
  margin-top: 10px;
}
.klm-list-addr-wrap a {
  text-decoration: none;
}
h3.klm-list-title {
  margin-top: 10px;
}

.kb-location-sidebar__image {
  max-width: 100%;
}

.footer-social a {
  background: white;
}
.footer-social a svg {
  fill: #0d4a5a;
}
.footer-bottom-grid {
  gap: 0;
  align-items: end;
}
.footer-social {
  margin-bottom: 24px;
  justify-content: end;
}

.kb-intro-title {
  padding-top: 0;
}

.kb-card-grid__icon-circle img {
  width: auto;
  height: auto;
}

a.header-action-btn.btn-dark-blue {
  background-color: #0d4a5a;
  color: #fff;
}

a.kb-hero-btn--primary,
.wp-block-button a {
  color: #fff;
  text-decoration: none;
}
.wp-block-button a,
a.btn.kb-cta-block__btn {
  background: #E85C1A;
}
.wp-block-button a:hover,
a.btn.kb-cta-block__btn:hover {
  color: #fff;
  background: #a83a15;
}

/* ── Gutenberg + general content tables ── */
.entry-content table,
.wp-block-table table,
.wp-block-table.is-style-regular table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid #8fb5c1;
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  color: #2f3337;
  font-size: clamp(16px, 1.1vw, 20px);
}
.entry-content table thead th,
.wp-block-table table thead th {
  background: #eaf5f8;
  color: #064d63;
  font-family: Georgia, serif;
  font-size: clamp(20px, 1.4vw, 28px);
  font-weight: 700;
  text-align: left;
  padding: 28px 20px;
  border-bottom: 1px solid #8fb5c1;
}
.entry-content table td,
.entry-content table th,
.wp-block-table table td,
.wp-block-table table th {
  padding: 26px 20px;
  vertical-align: middle;
  border-bottom: 1px solid #8fb5c1;
}
.entry-content table tbody tr:last-child td,
.wp-block-table table tbody tr:last-child td {
  border-bottom: 0;
}
.entry-content table tbody td:first-child,
.wp-block-table table tbody td:first-child {
  color: #064d63;
  font-weight: 700;
}
.wp-block-table {
  margin: 2rem 0;
  overflow-x: visible;
}
.wp-block-table figcaption {
  margin-top: 0.75rem;
  font-size: 0.9rem;
  color: #5f6b70;
}
@media (max-width: 767px) {
  .entry-content table,
  .wp-block-table table {
    border: 0;
    border-radius: 0;
    background: transparent;
  }
  .entry-content table thead,
  .wp-block-table table thead {
    display: none;
  }
  .entry-content table tbody,
  .entry-content table tr,
  .entry-content table td,
  .wp-block-table table tbody,
  .wp-block-table table tr,
  .wp-block-table table td {
    display: block;
    width: 100%;
  }
  .entry-content table tr,
  .wp-block-table table tr {
    margin-bottom: 18px;
    border: 1px solid #8fb5c1;
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
  }
  .entry-content table td,
  .wp-block-table table td {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 18px 16px;
    border-bottom: 1px solid #8fb5c1;
    text-align: right;
  }
  .entry-content table td:last-child,
  .wp-block-table table td:last-child {
    border-bottom: 0;
  }
  .entry-content table td::before,
  .wp-block-table table td::before {
    content: attr(data-label);
    color: #064d63;
    font-family: Georgia, serif;
    font-weight: 700;
    text-align: left;
  }
  .entry-content table tbody td:first-child,
  .wp-block-table table tbody td:first-child {
    background: #eaf5f8;
    font-size: 18px;
    justify-content: flex-start;
    text-align: left;
  }
  .entry-content table tbody td:first-child::before,
  .wp-block-table table tbody td:first-child::before {
    display: none;
  }
}

/* ── Locations button grid ── */
.locations-btn-grid {
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  align-items: center;
  gap: 24px;
  padding-top: 32px;
  padding-bottom: 64px;
}
.locations-btn-grid a.kb-cta-button {
  background-color: #fff !important;
  border-radius: 16px;
  border: 1px solid var(--Primary, #03455C);
  background: var(--White, #FFF);
  display: flex;
  padding: 16px 24px;
  align-items: center;
  gap: 10px;
  justify-content: start;
}
.locations-btn-grid a.kb-cta-button .kb-cta-button__title {
  color: var(--Primary, #03455C);
  font-family: Newsreader;
  font-size: 18px;
  font-weight: 600;
  line-height: 120%;
}
.locations-btn-grid .kb-cta-button__subtitle {
  color: var(--Gray-Dark, #2F3337);
  font-family: "DM Sans";
  font-size: 14px;
  font-weight: 400;
  line-height: 150%;
}
.locations-btn-grid .kb-btn-icon--custom {
  width: auto;
}
.locations-btn-grid .kb-btn-icon--custom img {
  width: 100%;
  height: 28px;
}
.locations-btn-grid .kb-cta-button__text {
  width: 100%;
  flex-grow: 1;
  text-wrap: nowrap;
}
@media (min-width: 768px) and (max-width: 1023px) {
  .locations-btn-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.5rem;
  }
  .locations-btn-grid .kb-cta-button-wrap {
    width: 100%;
    min-width: 0;
  }
  .locations-btn-grid .kb-cta-button {
    width: 100%;
  }
}
@media (max-width: 767px) {
  .locations-btn-grid {
    grid-template-columns: 1fr !important;
    gap: 1rem;
  }
  .locations-btn-grid .kb-cta-button-wrap {
    width: 100%;
    min-width: 0;
  }
  .locations-btn-grid .kb-cta-button {
    width: 100%;
  }
}

/* ── Locations icon cards ── */
.locations-icon-cards .kb-card-grid__card {
  display: flex;
  flex-direction: row;
  justify-content: start;
  gap: 24px;
  padding: 24px;
  align-items: center;
}
.locations-icon-cards .kb-card-grid__icon-plain {
  padding: 0;
}
.locations-icon-cards .kb-card-grid__body {
  padding: 0;
}
.kb-card-grid {
  padding-top: 40px;
}
.entry-content .kb-card-grid__desc {
  color: var(--Primary, #03455C);
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 500;
  line-height: 150%;
}
h3.kb-card-grid__card-title {
  margin-top: 0;
}
.kb-card-grid__card-text {
  font-size: 16px;
}
.kb-faq-question__text {
  font-size: 20px;
}

/* ── Intro title overrides ── */
h1.kb-intro-title__h1 {
  color: var(--Primary, #03455C);
  text-align: center;
  font-family: Newsreader;
  font-size: 36px;
  font-weight: 600;
  line-height: 120%;
}
h1.kb-intro-title__h1 .kb-intro-title__sub-inline {
  color: var(--Primary, #03455C);
  text-align: center;
  font-family: Newsreader;
  font-size: 20px;
  font-weight: 600;
  line-height: 120%;
}

/* ── FAQ styling ── */
.kb-faq-question {
  padding: 24px 16px;
}
.kb-faq-answer__inner {
  padding: 0 16px;
}
.kb-faq-answer {
  background: #fff;
  padding: 10px;
}
h2.kb-faq-block__heading {
  font-size: 36px;
  margin-top: 16px;
}

/* ── Content + image block ── */
.kb-content-image__body {
  font-size: 16px;
  color: #2F3337;
}

/* ── Hero typography ── */
h1.hero-heading {
  color: var(--Primary, #03455C);
  font-family: Newsreader;
  font-size: 36px;
  font-weight: 600;
  line-height: 120%;
}
.hero-body {
  color: var(--Primary, #03455C);
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 500;
  line-height: 150%;
}
@media (min-width: 1024px) {
  h1.hero-heading               { font-size: 50px; }
  .hero-body                    { font-size: 18px; }
  .entry-content .kb-card-grid__header h2 { font-size: 36px; }
  h3.kb-card-grid__card-title   { font-size: 24px; }
  .kb-faq-question__text        { font-size: 24px; }
  h1.kb-intro-title__h1         { font-size: 50px; }
  h1.kb-intro-title__h1 .kb-intro-title__sub-inline { font-size: 24px; }
  .kb-card-grid                 { padding-top: 64px; }
}

/* ── Hero image decorative pseudo-elements ── */
.hero-image-wrap::before {
  width: 70%;
  border-radius: 0 16px 0 16px;
  height: 85px;
  background: var(--Linear, linear-gradient(90deg, #FFF 0%, #C0E2CA 100%));
}
.hero-image-wrap::after {
  width: 50%;
  border-radius: 16px 16px 0 16px;
  height: 85px;
  background: linear-gradient(90deg, #03455C 0%, rgba(6, 145, 194, 0.10) 100%);
}
.hero-section {
  background: white;
  z-index: 1;
  position: relative;
}
@media (max-width: 768px) {
  .hero-image-wrap {
    opacity: 1;
    display: block;
    margin-top: 32px;
  }
  .hero-inner    { gap: 24px; }
  .hero-content  { padding-left: 0; padding-right: 0; }
  h1.hero-heading { font-size: 30px; }
}

/* ── Hero interior image ── */
.hero-image-interior img {
  border-radius: 16px;
}

/* ── Stats bar gradient overlap ── */
.kb-stats-bar {
  position: relative;
  z-index: 0;
}
.kb-stats-bar::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: -400px;
  height: 400px;
  background: linear-gradient(to top, #f0f7f9 0%, transparent 100%);
  pointer-events: none;
  z-index: -1;
}

/* ── Navigation ── */
.nav-dropdown-cta {
  width: 280px;
}
@media (min-width: 1024px) {
  .main-navigation > ul > li > a {
    color: var(--Primary, #03455C);
    font-family: "DM Sans";
    font-size: 16px;
    font-weight: 500;
  }
  .nav-left-col li > a,
  ul.sub-menu .nav-sub-col a {
    color: var(--Primary, #03455C);
    font-family: "DM Sans";
    font-size: 16px;
    font-weight: 500;
  }
}

/* ── Footer ── */
.footer-description {
  max-width: 100%;
  color: var(--Primary, #03455C);
  font-family: "DM Sans";
  font-size: 14px;
  font-weight: 400;
  line-height: 150%;
}
.footer-links-title {
  color: var(--Green, #5FBF77);
  font-family: Newsreader;
  font-size: 18px;
  font-weight: 600;
  line-height: 120%;
}
.footer-col.footer-col--links {
  max-width: 700px;
  margin-left: auto;
}
.footer-col.footer-col--brand {
  max-width: 300px;
}
.footer-logo-wrap img,
.footer-logo-wrap .custom-logo {
  max-height: 100%;
  width: 300px;
}
.btn-footer-cta {
  padding: 16px 22px;
  width: auto;
  color: var(--White, #FFF);
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 700;
}
.footer-phone {
  color: var(--Primary, #03455C);
  font-family: "DM Sans";
  font-size: 18px;
  font-weight: 600;
  line-height: 150%;
}
.footer-link-col a {
  color: var(--Primary, #03455C);
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 500;
  line-height: 150%;
}
.footer-legal {
  color: var(--Primary, #03455C);
  font-family: "DM Sans";
  font-size: 12px;
  font-weight: 500;
  line-height: 150%;
}
@media (min-width: 1024px) {
  .footer-description     { margin-bottom: 32px; }
  .footer-social          { padding-bottom: 32px; }
  .footer-bottom-grid     { align-items: start; }
  .footer-bottom-right    { display: flex; flex-direction: column; gap: 0.5rem; }
}
@media (max-width: 768px) {
  .footer-col.footer-col--links { margin-right: auto; margin-left: 0; }
}

/* ── Nav CTA card ── */
.nav-dropdown-cta-card h3,
.mobile-cta-heading {
  color: var(--White, #FFF);
  font-family: Newsreader;
  font-size: 24px;
  font-weight: 600;
  line-height: 120%;
}
.nav-dropdown-cta-card .cta-phone,
.mobile-cta-phone {
  color: var(--White, #FFF);
  font-family: "DM Sans";
  font-size: 18px;
  font-weight: 600;
  line-height: 150%;
}
.nav-dropdown-cta-card .btn-appt,
.btn-outline-white-sm {
  border-radius: 4px;
  border: 1px solid var(--Primary, #03455C);
  background: var(--White, #FFF);
  padding: 8px 14px;
  color: var(--Primary, #03455C);
  font-family: "DM Sans";
  font-size: 14px;
  font-weight: 600;
}
.btn-outline-white-sm {
  width: auto;
  display: inline-block;
}

/* ── Header ── */
.site-header > .container {
  width: 100%;
}
.header-search-form {
  width: 768px;
}

/* ── Locations grid text ── */
.kb-location-card__state {
  color: var(--Primary, #03455C);
  font-family: Newsreader;
  font-size: 24px;
  font-weight: 600;
  line-height: 120%;
}
.kb-location-card__desc {
  color: var(--Gray-Dark, #2F3337);
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 400;
  line-height: 150%;
}
.kb-locations-grid__heading {
  color: var(--Primary, #03455C);
  text-align: center;
  font-family: Newsreader;
  font-size: 36px;
  font-weight: 600;
  line-height: 120%;
}
.kb-locations-grid__desc {
  color: var(--Primary, #03455C);
  text-align: center;
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 500;
  line-height: 150%;
}
h3.kb-location-card__state a {
  text-decoration: none !important;
}

/* ── Services list ── */
h3.kb-services-card__title {
  margin-top: 0;
  color: var(--Primary, #03455C);
  font-family: Newsreader;
  font-size: 30px;
  font-weight: 600;
  line-height: 120%;
}
.kb-services-card__body-text {
  color: var(--Gray-Dark, #2F3337);
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 400;
  line-height: 150%;
}
p.kb-services-list__desc {
  color: var(--Primary, #03455C);
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 500;
  line-height: 150%;
}
h2.kb-services-list__heading {
  color: var(--Primary, #03455C);
  font-family: Newsreader;
  font-size: 36px;
  font-weight: 600;
  line-height: 120%;
  margin-top: 0;
}
.kb-services-list__layout {
  gap: 24px;
}
.kb-services-card--white .kb-services-card__title a {
  text-decoration: none !important;
}
@media (max-width: 1024px) {
  .kb-services-list__layout { grid-template-columns: 1fr; gap: 2rem; }
  .kb-services-list         { padding-bottom: 0; }
}

/* ── Card grid ── */
h3.kb-card-grid__card-title {
  color: var(--Primary, #03455C);
  font-family: Newsreader;
  font-size: 30px;
  font-weight: 600;
  line-height: 120%;
}
p.kb-card-grid__card-text {
  color: var(--Gray-Dark, #2F3337);
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 400;
  line-height: 150%;
}
.kb-card-grid__header {
  max-width: 623px;
}
.kb-card-grid__card--teal-light .kb-card-grid__card-btn {
  background: #fff;
}
.kb-card-grid__card--teal-light .kb-card-grid__card-btn:hover {
  background: var(--Gradient-1, linear-gradient(0deg, #03455C 0%, #0A5F73 100%));
}
.kb-card-grid__view-all,
.kb-locations-grid__btn {
  background: var(--Gradient-1, linear-gradient(0deg, #03455C 0%, #0A5F73 100%));
  transition: all .25s ease-in-out;
  padding: 0.875rem 2.25rem;
  border: 1px solid #03455C;
}
.kb-card-grid__view-all:hover,
.kb-locations-grid__btn:hover {
  background: #fff;
  color: #03455C;
  border: 1px solid #03455C;
  padding: 0.875rem 2.25rem;
}
a.kb-card-grid__view-all,
.btn.kb-locations-grid__btn {
  text-decoration: none;
  color: #fff;
}
.kb-card-grid__view-all:hover,
.kb-locations-grid__btn:hover {
  color: #03455C;
}
@media (max-width: 768px) {
  .kb-card-grid__grid,
  .kb-locations-grid__grid {
    max-width: 100%;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  }
  .kb-card-grid__card,
  .kb-location-card {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }
  .kb-card-grid__body,
  .kb-location-card__body,
  .kb-card-grid__card-title,
  .kb-location-card__state,
  .kb-card-grid__card-title a,
  .kb-location-card__state a,
  .kb-location-card__desc,
  .kb-location-card__desc a {
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
  .kb-card-grid__card-title a {
    display: inline !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }
  .kb-card-grid__body {
    min-width: 0;
  }
}
@media (max-width: 1024px) {
  .kb-card-grid        { /* padding-top: 0; — intentionally commented */ }
  .wp-block-kolmac-content-container h2,
  .kb-content-container h2 { margin-top: 0 !important; }
  .kb-content-container__wrap { padding-top: 0 !important; }
}

/* ── CTA Banner ── */
.kb-cta-banner-card__heading {
  color: var(--Primary, #03455C);
  text-align: center;
  font-family: Newsreader;
  font-size: 36px;
  font-weight: 600;
  line-height: 120%;
}
.kb-cta-banner-card__body {
  color: var(--Primary, #03455C);
  text-align: center;
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 500;
  line-height: 150%;
  max-width: 505px;
}
.kb-cta-banner-card__note {
  max-width: 505px;
}
@media (min-width: 1024px) {
  .kb-cta-banner-card__heading { font-size: 36px; }
  .kb-cta-banner-card__body   { font-size: 18px; }
}

/* ── CTA Block ── */
h2.kb-cta-block__heading {
  color: var(--Primary, #03455C);
  text-align: center;
  font-family: Newsreader;
  font-size: 30px;
  font-weight: 600;
  line-height: 120%;
}
.kb-cta-block__body {
  color: var(--Primary, #03455C);
  text-align: center;
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 500;
  line-height: 150%;
  max-width: 505px;
}
@media (min-width: 1024px) {
  h2.kb-cta-block__heading { font-size: 36px; }
  .kb-cta-block__body      { font-size: 18px; }
}
.entry-content a.wp-block-button__link {
  text-decoration: none !important;
}

/* ── Content image heading ── */
.kb-content-image__heading {
  color: var(--Primary, #03455C);
  text-align: center;
  font-family: Newsreader;
  font-size: 30px;
  font-weight: 600;
  line-height: 120%;
}
@media (min-width: 1024px) {
  .kb-content-image__heading { font-size: 36px; }
}

/* ── Stats ── */
.kb-stat-card .kb-stat-label {
  max-width: 240px;
}

/* ── Popup ── */
#kcu-popup {
  bottom: 24px !important;
}

/* ── Team single page ── */
h1.team-single-card__name {
  color: var(--Primary, #03455C);
  font-family: Newsreader;
  font-size: 30px;
  font-weight: 600;
  line-height: 120%;
}
.team-single-card__credentials {
  color: var(--Primary, #03455C);
  font-family: Newsreader;
  font-size: 18px;
  font-weight: 600;
  line-height: 120%;
}
.team-single-card__position {
  color: var(--Primary, #03455C);
  font-family: "DM Sans";
  font-size: 18px;
  font-weight: 500;
  line-height: 150%;
}
.team-single-card__bio,
.team-single-card__bio p {
  color: var(--Gray-Dark, #2F3337);
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 400;
  line-height: 150%;
}

/* ── Join Our Team section ── */
.team-join-section {
  max-width: 1200px;
  padding: 24px;
  border-radius: 16px;
  justify-content: center;
  display: flex;
  align-items: center;
  background: none;
  margin: 0 auto;
}
.team-join-section__inner {
  background: #EAF4F6;
  max-width: 1250px;
  padding: 68px 300px 69px 300px;
  border-radius: 16px;
  margin: 32px 0 54px 0;
  justify-content: center;
  align-items: center;
}

/* ── Team below grid content ── */
.team-below-grid h3 {
  color: var(--Primary, #03455C);
  font-family: "DM Sans";
  font-size: 18px;
  font-weight: 500;
  line-height: 150%;
}
.team-below-grid p,
.team-below-grid li {
  color: var(--Gray-Dark, #2F3337);
  font-family: "DM Sans";
  font-size: 16px;
  font-weight: 400;
  line-height: 150%;
}

/* ── Mobile menu height fix ── */
@media (max-width: 1023px) {
  #mobile-menu-panel {
    height: 100dvh;
    max-height: 100dvh;
    overflow: hidden;
  }
  #mobile-menu-panel .mobile-panel {
    height: 100dvh;
    max-height: 100dvh;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    padding-bottom: calc(24px + env(safe-area-inset-bottom));
  }
  #mobile-menu-panel .mobile-panel-footer,
  #mobile-menu-panel .mobile-subpanel-cta {
    flex-shrink: 0;
    padding-bottom: env(safe-area-inset-bottom);
  }
}

/* ── Location sidebar mobile ── */
@media (max-width: 1024px) {
  .kb-location-sidebar__outer { padding: 0 15px; }
  .kb-location-sidebar__sidebar { width: 100%; }
}

.kb-location-sidebar__sidebar .kb-location-sidebar__loc-name {
	color: var(--Primary, #03455C);
	font-family: Newsreader;
	font-size: 30px;
	font-style: normal;
	font-weight: 600;
	line-height: 120%;
}
.kb-location-sidebar__sidebar .kb-location-sidebar__status {
	color: var(--Accent, #E85C1A);
	font-family: Sora;
	font-size: 12px;
	font-style: normal;
	font-weight: 600;
	line-height: 150%;
	letter-spacing: 0.48px;
	text-transform: uppercase;	
}
.footer-legal-menu {
	display:flex;
	justify-content:start;
	padding-left:0;
	flex-wrap:wrap;
	margin:0;
}
.footer-legal-menu span {
	margin:0 3px;
}
.footer-legal-menu a,
.footer-legal-menu span,
p.footer-copyright {
	color: #03455C;
	font-family: "DM Sans";
	font-size: 12px;
	font-style: normal;
	font-weight: 500;
	line-height: 150%; /* 18px */
}
.footer-bottom-right {
	height:100%;
}
@media (min-width: 1024px) {
	div.footer-social {
		padding-bottom:0;		
	}
	.footer-bottom-right {
		justify-content:center;
	}
}
.footer-copyright {
	margin-top:auto;
}
