:root{
  /* Typography */
  --font-body: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  --font-head: "Fraunces", Georgia, "Times New Roman", serif;

  /* Palette: evergreen + sky + wheat, with a sun accent */
  --brand-900:#15352e;   /* deep evergreen/teal */
  --brand-700:#1a3e2c;   /* evergreen */
  --brand-600:#204b36;   /* original brand */
  --brand-300:#cfe6dc;   /* misty green */

  --blue-800:#134b68;    /* deep slate blue */
  --blue-700:#1a5776;    /* link/hover */
  --sky-300:#cfe8f6;     /* pale sky */

  --wheat-500:#e8d9b0;   /* warm wheat */
  --wheat-600:#d6c28b;   /* wheat border */

  --sun-500:#de6a26;     /* sun accent */
  --sun-600:#c85a18;

  --ink:#101414;
  --muted:#5f6a6f;
  --line:#e9eef0;
  --bg:#f8fbfa;

  --gap: 1rem;
  --max: 1000px;
  --radius: 12px;

  --shadow-1: 0 1px 2px rgba(16,24,40,.08), 0 1px 1px rgba(16,24,40,.04);
  --shadow-2: 0 8px 24px rgba(16,24,40,.12);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family: var(--font-body); color:var(--ink); line-height:1.6; background:var(--bg)}
a{color:var(--blue-700); text-decoration:underline; text-underline-offset:2px}
a:hover{color:var(--blue-800); opacity:1}
img{max-width:100%; display:block}
.container{max-width:var(--max); margin:0 auto; padding:0 1rem}

/* Typography hierarchy */
h1,h2,h3{font-family: var(--font-head); letter-spacing:.1px}
h1{font-weight:700}
h2{font-weight:700; font-size:1.6rem; margin:.1rem 0 .75rem; color:var(--brand-900)}
h3{font-weight:600; font-size:1.1rem; margin:.1rem 0 .35rem; color:#1f2a2f}
p{margin:0 0 1rem}
ul{margin:.5rem 0 1.25rem 1.25rem}

/* Skip link */
.skip{position:absolute; left:-9999px; top:auto}
.skip:focus{left:1rem; top:1rem; background:#fff; padding:.5rem .75rem; border-radius:8px; border:1px solid var(--line); z-index:999}

/* Header */
.site-header{position:sticky; top:0; background:#fff; border-bottom:1px solid var(--line); z-index:20; backdrop-filter:saturate(180%) blur(6px)}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0}
.brand{display:inline-flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--brand-700)}
.brand-badge{width:28px; height:28px; border-radius:6px; background:linear-gradient(145deg,var(--brand-600),#18382a); display:inline-block; box-shadow:inset 0 0 0 2px rgba(255,255,255,.2)}
/* Logo */
/* Bigger logo + ensure nothing is capping it */
.brand .logo {
  display: block;
  height: 96px;       /* try 96; go 110–120 if you want it bolder */
  width: auto;
  max-height: none;   /* prevent any accidental caps */
}

@media (max-width: 700px){
  .brand .logo {
    height: 64px;     /* mobile size */
  }
}

/* Give the header row more vertical room */
.header-inner {
  align-items: center;
  padding: 1rem 0;          /* was .75rem; increase if you push logo higher */
  min-height: 96px;         /* ensures the row expands with the logo */
}

/* Make sure nothing else is forcing a shorter header */
.site-header, .site-header .container {
  line-height: 1.2;         /* keep it tight but predictable */
}

/* Nav alignment stays centered next to a taller logo */
nav.nav a {
  line-height: 1.2;         /* avoid tall line-height pushing layout */
}

nav.nav{display:flex; align-items:center; gap:.9rem; flex-wrap:wrap}
.nav a{text-decoration:none; color:var(--ink)}
.nav a:hover{color:var(--blue-700)}
.btn{display:inline-block; padding:.7rem 1rem; border-radius:10px; border:1px solid var(--line); text-decoration:none; font-weight:600; box-shadow:var(--shadow-1); transition:transform .08s ease, box-shadow .15s ease}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--brand-600); color:#fff; border-color:var(--brand-600)}
.btn.primary:hover{box-shadow:0 6px 18px rgba(32,75,54,.24)}
.btn.secondary{background:#fff; color:var(--brand-600); border-color:var(--brand-600)}
.btn.wheat{background:var(--wheat-500); color:#3b320e; border-color:var(--wheat-600)}
.btn.wheat:hover{border-color:var(--sun-500)}
.btn.ghost{background:#fff; color:var(--blue-700); border-color:var(--line)}

/* Mobile nav toggle */
.menu-btn{display:none; appearance:none; border:1px solid var(--line); background:#fff; border-radius:10px; padding:.55rem .7rem}
@media (max-width: 820px){
  .menu-btn{display:inline-block}
  nav.nav{display:none; position:absolute; inset:60px 0 auto 0; background:#fff; border-bottom:1px solid var(--line); padding:1rem; box-shadow:var(--shadow-2)}
  nav.nav.open{display:flex}
}

/* Hero */
.hero {
  position: relative;
  background:
    radial-gradient(420px 220px at 85% 8%, rgba(222,106,38,.14), transparent 60%), /* soft sun glow */
    radial-gradient(1200px 600px at 80% -10%, var(--sky-300), transparent 60%),
    radial-gradient(900px 600px at -10% 20%, var(--brand-300), transparent 55%),
    linear-gradient(#fff, #fffdf8), /* slight cream */
    url('/images/river-abstract.jpg'); /* <- your generated image */
  background-size: cover, cover, cover, cover, cover; 
  background-position: center;
  background-repeat: no-repeat;
  background-blend-mode: overlay, overlay, overlay, normal, normal;
  border-bottom: 1px solid var(--line);
}

.hero-inner {
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  gap: 2rem;
  padding: 3.2rem 0;
}

.hero h1 {
  line-height: 1.15;
  margin: .2rem 0 .6rem;
  font-size: clamp(1.8rem, 2.4vw + 1rem, 2.6rem);
  color: var(--brand-900);
}

.lead { font-size: 1.05rem; color: #243035; }
.cta-row { margin-top: 1.1rem; display: flex; gap: .6rem; flex-wrap: wrap; }
.note { font-size: .95rem; color: var(--muted); }
.hero-card {
  align-self: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 1rem;
  box-shadow: var(--shadow-2);
}
.hero-list {
  margin: 0; padding: 0;
  list-style: none;
  display: grid;
  gap: .6rem;
}
.hero-list li {
  display: flex; gap: .6rem; align-items: flex-start;
}
.dot {
  width: .7rem; height: .7rem;
  border-radius: 50%;
  background: var(--sun-500);
  margin-top: .45rem;
}

@media (max-width: 900px){
  .hero-inner { grid-template-columns:1fr; }
}


/* Sections */
section.section{padding:2.5rem 0}

/* Values row */
.values{background:#fff; border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.pill{display:inline-block; background:var(--wheat-500); color:#3b320e; border:1px solid var(--wheat-600); padding:.25rem .6rem; border-radius:999px; font-size:.85rem; font-weight:600}

/* Services grid */
.service-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem}
.service{background:#fff; border:1px solid var(--line); border-radius:12px; padding:1rem; box-shadow:var(--shadow-1)}

/* Team / Clinician cards */
.team-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1rem}
.card{background:#fff; border:1px solid var(--line); border-radius:14px; padding:1rem; box-shadow:var(--shadow-1)}
.media{display:grid; grid-template-columns:125px 1fr; gap:1rem; align-items:center}
.avatar{
  width:84px; height:84px; border-radius:10px; overflow:hidden;
  background: linear-gradient(145deg, var(--brand-300), var(--sky-300));
  display:flex; align-items:center; justify-content:center; color:#244; font-weight:800;
  border:1px solid #dfe8e6;
}

.media h3 {
  margin: 0;
  line-height: 1.3;
}
.avatar img{width:100%; height:100%; object-fit:cover; display:block}
.badge{display:inline-block; font-size:.8rem; padding:.15rem .4rem; border-radius:6px; background:var(--blue-300); color:#143247; border:1px solid #c7dde9; margin-top:.25rem}
.bio{margin-top:.5rem; color:#2a2f33}
details summary{cursor:pointer; user-select:none; list-style:none; font-weight:600; color:var(--blue-700)}
details summary::-webkit-details-marker{display:none}

/* Quotes, tags */
.quote{margin:.75rem 0 1rem; padding:.75rem 1rem; background:#fff; border:1px solid var(--line);
       border-left:4px solid var(--sun-500); border-radius:10px; color:#2a3136}
.quote p{margin:0 0 .4rem; font-style:italic}
.quote cite{font-size:.9rem; color:var(--muted)}
.tags{display:flex; flex-wrap:wrap; gap:.4rem .5rem; margin:.6rem 0 1rem; padding:0; list-style:none}
.tags li{padding:.2rem .5rem; border:1px solid var(--line); border-radius:999px; background:#fff; font-size:.85rem}

/* Contact + Schedule */
.callout{background:linear-gradient(180deg, #fff, #fdfaf2); border:1px solid var(--wheat-600); padding:1rem; border-radius:12px}
.hint{color:var(--muted); font-size:.95rem}
.center{text-align:center}

/* --- Insurance section: uniform badges + per-logo tuning via CSS vars --- */

/* Center the whole section */
.insurance { text-align:center; padding:1.5rem 1rem; }
.insurance h3 { margin:0 0 .5rem; font-size:1.3rem; }
.insurance .hint { margin-bottom:1.25rem; }

/* Row of badges */
.insurer-logos{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:1rem 1.25rem;
}
/* Badge defaults */
.insurer-logos .insurer {
  --badge-w: 180px;
  --badge-h: 90px;

  width: var(--badge-w);
  height: var(--badge-h);
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .5rem;
  box-shadow: var(--shadow-1);
}

.insurer-logos .insurer img {
  display: block;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(12%);
  transition: filter .2s ease;
}

/* --- Per-logo adjustments --- */

/* Blue Cross Blue Shield: medium height */
.insurer.bcbs img {
  max-height: 60px;
  max-width: 150px;
}

/* Cigna: shrink a bit so it sits comfortably */
.insurer.cigna img {
  max-height: 48px;   /* was too tall before */
  max-width: 140px;
}

/* UnitedHealthcare: give it more room to stretch */
.insurer.united img {
  max-height: 65px;   /* allow taller */
  max-width: 170px;   /* allow wider */
}

/* Magellan: keep compact */
.insurer.magellan img {
  max-height: 50px;
  max-width: 150px;
}

/* Aetna: medium size */
.insurer.aetna img {
  max-height: 55px;
  max-width: 150px;
}

/* Mobile: slightly smaller badges, keep proportions */
@media (max-width:600px){
  .insurer-logos .insurer{
    --badge-w: 150px;
    --badge-h: 76px;
  }
  .insurer-logos .insurer img{
  /* global bump */
.insurer-logos .insurer{ --badge-w: 200px; --badge-h: 100px; }

  }
}


/* Footer */
.site-footer{border-top:1px solid var(--line); padding:1.2rem 0; background:#fff; margin-top:2rem; color:#2b3135}

/* Animation helpers */
.reveal{opacity:0; transform:translateY(8px); transition:opacity .5s ease, transform .5s ease}
.reveal.show{opacity:1; transform:none}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none}
  .btn{transition:none}
}

/* SimplePractice widget buttons (override minimal) */
.spwidget-button-wrapper{text-align:center}
.spwidget-button{
  display:inline-block; padding:.7rem 1rem; border-radius:10px; font-weight:700; text-decoration:none;
  border:1px solid var(--brand-600); background:#fff; color:var(--brand-600)!important;
  box-shadow:var(--shadow-1);
}
.spwidget-button:hover{background:#fff}
.spwidget-button.primary{background:var(--brand-600); color:#fff!important; border-color:var(--brand-600)}
