:root{
    --bg:#F7F8F8; --navy:#2A3A4A; --navy-deep:#1E2D3D; --primary:#2A333C;
    --secondary:#DDE2E4; --card:#FFFFFF; --border:#DDE2E4;
    --accent:#29A397; --accent-hover:#218478;
    --heading:#1D242B; --muted:#6C787F; --on-dark:#F7F8F8;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{font-family:"DM Sans",system-ui,sans-serif;background:var(--bg);color:var(--heading);line-height:1.6;-webkit-font-smoothing:antialiased;}
  h1,h2,h3,.serif{font-family:"DM Serif Display",Georgia,serif;font-weight:400;line-height:1.15;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .container{max-width:1152px;margin:0 auto;padding:0 24px;}
  .accent{color:var(--accent);}

  /* Header */
  header{position:fixed;top:0;left:0;right:0;z-index:50;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.08);}
  .nav{display:flex;align-items:center;justify-content:space-between;height:72px;}
  .brand{display:flex;align-items:center;gap:10px;}
  .brand img{height:40px;width:auto;}
  .brand .wordmark{font-family:"DM Serif Display",serif;font-size:26px;color:var(--heading);letter-spacing:-.02em;}
  .nav-links{display:flex;align-items:center;gap:30px;}
  .nav-links a{font-size:14px;font-weight:500;color:var(--heading);transition:color .2s;}
  .nav-links a:hover{color:var(--accent);}
  .btn{display:inline-block;border-radius:6px;font-weight:600;transition:background .2s,color .2s;cursor:pointer;}
  .btn-primary{background:var(--accent);color:#fff;padding:10px 20px;font-size:14px;}
  .btn-primary:hover{background:var(--accent-hover);}
  .btn-lg{padding:14px 32px;font-size:16px;}
  .btn-outline{border:1px solid rgba(247,248,248,.3);color:var(--on-dark);padding:14px 32px;font-size:16px;}
  .btn-outline:hover{background:rgba(247,248,248,.1);}
  .nav-toggle{display:none;background:none;border:none;cursor:pointer;color:var(--heading);}

  /* Hero */
  .hero{min-height:88vh;display:flex;align-items:center;justify-content:center;text-align:center;background:linear-gradient(135deg,var(--navy-deep),var(--navy));color:var(--on-dark);padding:120px 0 80px;}
  .hero h1{font-size:clamp(40px,6vw,72px);color:var(--on-dark);max-width:900px;margin:0 auto;text-shadow:0 2px 12px rgba(0,0,0,.25);}
  .hero p{margin:28px auto 0;font-size:clamp(18px,2.2vw,22px);color:rgba(255,255,255,.9);max-width:640px;}
  .hero-cta{margin-top:40px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}

  /* Sections */
  section{padding:88px 0;}
  .sec-light{background:var(--bg);}
  .sec-secondary{background:var(--secondary);}
  .sec-dark{background:var(--primary);color:var(--on-dark);}
  .sec-head{text-align:center;max-width:640px;margin:0 auto 56px;}
  .sec-head h2{font-size:clamp(28px,4vw,40px);color:var(--heading);}
  .sec-dark .sec-head h2{color:var(--on-dark);}
  .sec-head p{margin-top:16px;color:var(--muted);}
  .sec-dark .sec-head p{color:rgba(247,248,248,.7);}

  /* Grids & cards */
  .grid{display:grid;gap:24px;}
  .grid-4{grid-template-columns:repeat(4,1fr);}
  .grid-2{grid-template-columns:repeat(2,1fr);}
  .card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:26px;transition:box-shadow .3s,transform .3s;}
  .card:hover{box-shadow:0 10px 24px rgba(0,0,0,.08);transform:translateY(-4px);}
  .card.center{text-align:center;}
  .icon-badge{width:48px;height:48px;border-radius:50%;background:rgba(41,163,151,.1);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;}
  .icon{width:24px;height:24px;color:var(--accent);}
  .icon-lg{width:32px;height:32px;color:var(--accent);margin-bottom:16px;}
  .card h3{font-family:"DM Sans",sans-serif;font-weight:600;font-size:17px;margin-bottom:8px;color:var(--heading);}
  .card p{font-size:14px;color:var(--muted);}

  /* Help cards (two-up) */
  .help-two{margin-top:56px;}
  .help-two .card h3{font-size:20px;}
  .help-list{list-style:none;margin-top:16px;display:flex;flex-direction:column;gap:9px;}
  .help-list li{display:flex;align-items:flex-start;gap:9px;font-size:14px;color:var(--muted);}
  .help-list .check{width:17px;height:17px;color:var(--accent);flex-shrink:0;margin-top:2px;}
  .card-dark{background:var(--primary);color:var(--on-dark);}
  .card-dark h3,.card-dark p{color:var(--on-dark);}
  .card-dark p{color:rgba(247,248,248,.8);}
  .card-dark .help-list li{color:rgba(247,248,248,.8);}
  .card-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;}

  /* Credentials */
  .creds{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;text-align:center;}
  .cred-num{font-family:"DM Serif Display",Georgia,serif;font-size:clamp(28px,3.5vw,38px);color:var(--accent);}
  .cred-label{margin-top:8px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:500;}

  /* FAQ */
  .faq-wrap{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:16px;}
  details.faq{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:22px 24px;}
  details.faq summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-weight:600;color:var(--heading);list-style:none;font-size:16px;}
  details.faq summary::-webkit-details-marker{display:none;}
  details.faq summary .chev{width:20px;height:20px;color:var(--accent);flex-shrink:0;margin-left:16px;transition:transform .2s;}
  details.faq[open] summary .chev{transform:rotate(180deg);}
  details.faq p{margin-top:14px;font-size:14px;color:var(--muted);line-height:1.7;}

  /* CTA */
  .cta-wrap{text-align:center;}
  .cta-wrap h2{font-size:clamp(28px,4vw,40px);}
  .cta-wrap p{margin:16px auto 0;color:rgba(247,248,248,.7);max-width:560px;}
  .cta-btns{margin-top:40px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

  /* Footer */
  footer{background:var(--primary);color:var(--on-dark);}
  .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;padding:56px 0 0;align-items:start;}
  .footer-brand{display:flex;align-items:center;gap:10px;}
  .footer-brand img{height:40px;width:auto;}
  .footer-brand .wordmark{font-family:"DM Serif Display",serif;font-size:26px;letter-spacing:-.02em;}
  .footer-tag{margin-top:12px;font-size:14px;color:rgba(247,248,248,.7);max-width:280px;}
  .footer-col h4{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:rgba(247,248,248,.5);margin-bottom:14px;}
  .footer-col a{display:flex;align-items:center;gap:8px;font-size:14px;color:rgba(247,248,248,.7);padding:4px 0;transition:color .2s;}
  .footer-col a:hover{color:var(--accent);}
  .footer-col .ico{width:16px;height:16px;}
  .footer-bottom{margin-top:40px;padding:22px 0;border-top:1px solid rgba(247,248,248,.1);text-align:center;font-size:12px;color:rgba(247,248,248,.4);}

  /* Responsive */
  @media(max-width:900px){
    .grid-4{grid-template-columns:repeat(2,1fr);}
    .creds{grid-template-columns:repeat(2,1fr);}
  }
  @media(max-width:768px){
    .nav-links{display:none;}
    .nav-toggle{display:block;}
    .grid-2{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr;}
  }
  @media(max-width:560px){
    .grid-4{grid-template-columns:1fr;}
    .creds{grid-template-columns:1fr;gap:24px;}
  }
  /* ---- Page-specific helpers (About / Services / Contact) ---- */
  .page-hero{background:linear-gradient(135deg,var(--navy-deep),var(--navy));color:var(--on-dark);text-align:center;padding:140px 0 72px;}
  .page-hero h1{font-size:clamp(34px,5vw,56px);color:var(--on-dark);}
  .page-hero p{margin:18px auto 0;font-size:clamp(17px,2vw,20px);color:rgba(255,255,255,.88);max-width:640px;}
  .prose{max-width:760px;margin:0 auto;}
  .prose p{color:var(--muted);margin-bottom:18px;}
  .lead-badge{display:inline-block;font-size:14px;font-weight:600;color:var(--accent);letter-spacing:.04em;margin-bottom:8px;}
  .bio-head{text-align:center;margin-bottom:8px;}
  .bio-head h2{font-size:clamp(26px,3.5vw,34px);}
  .bio-sub{text-align:center;color:var(--accent);font-weight:600;margin-bottom:32px;letter-spacing:.03em;}
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .community-card{display:flex;flex-direction:column;gap:6px;}
  .community-card .role{font-size:13px;color:var(--accent);font-weight:600;}
  .svc-model{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:34px;}
  .svc-model.dark{background:var(--primary);color:var(--on-dark);}
  .svc-model.dark h2,.svc-model.dark h3,.svc-model.dark p,.svc-model.dark li{color:var(--on-dark);}
  .svc-model.dark p,.svc-model.dark li{color:rgba(247,248,248,.82);}
  .svc-item{padding:16px 0;border-bottom:1px solid var(--border);}
  .svc-item:last-child{border-bottom:none;}
  .svc-item h3{font-family:"DM Sans",sans-serif;font-weight:600;font-size:16px;color:var(--heading);margin-bottom:4px;}
  .svc-item p{font-size:14px;color:var(--muted);}
  .model-tier{padding:12px 0;border-bottom:1px solid rgba(247,248,248,.12);font-size:14px;}
  .model-tier:last-child{border-bottom:none;}
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start;}
  .contact-box{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:32px;}
  .contact-box.dark{background:var(--primary);color:var(--on-dark);}
  .contact-box.dark h2,.contact-box.dark p{color:var(--on-dark);}
  .contact-box.dark p{color:rgba(247,248,248,.8);}
  .field{margin-bottom:18px;}
  .field label{display:block;font-size:14px;font-weight:500;margin-bottom:6px;color:var(--heading);}
  .field input,.field textarea{width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;font-family:inherit;font-size:15px;color:var(--heading);}
  .field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(41,163,151,.15);}
  .field textarea{min-height:120px;resize:vertical;}
  .req{color:#c0392b;}
  .contact-info a{display:flex;align-items:center;gap:10px;padding:8px 0;color:var(--muted);font-size:15px;transition:color .2s;}
  .contact-info a:hover{color:var(--accent);}
  .form-note{font-size:13px;color:var(--muted);margin-top:12px;}
  @media(max-width:768px){ .grid-3{grid-template-columns:1fr;} .contact-grid{grid-template-columns:1fr;} }

  /* ---- About headshot ---- */
  .bio-photo-wrap{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:760px;margin:0 auto 8px;}
  .bio-photo{width:200px;height:200px;border-radius:50%;object-fit:cover;object-position:center top;border:4px solid var(--card);box-shadow:0 8px 24px rgba(0,0,0,.12);}

  /* ---- Community card photos ---- */
  .community-card{padding:0;overflow:hidden;}
  .community-card .cc-photo{width:100%;height:200px;object-fit:cover;display:block;}
  .community-card .cc-body{padding:24px;display:flex;flex-direction:column;gap:6px;}

  /* ---- Homepage meet-Keith strip ---- */
  .meet{background:var(--bg);}
  .meet-inner{display:flex;align-items:center;gap:40px;max-width:900px;margin:0 auto;}
  .meet-photo{width:180px;height:180px;border-radius:50%;object-fit:cover;object-position:center top;flex-shrink:0;border:4px solid var(--card);box-shadow:0 8px 24px rgba(0,0,0,.12);}
  .meet-text h2{font-size:clamp(24px,3vw,32px);margin-bottom:6px;}
  .meet-text .meet-sub{color:var(--accent);font-weight:600;margin-bottom:12px;letter-spacing:.02em;}
  .meet-text p{color:var(--muted);margin-bottom:16px;}
  @media(max-width:700px){.meet-inner{flex-direction:column;text-align:center;gap:24px;}}
