  :root{
    color-scheme:light;
    --ink:#14261F;
    --forest:#1B3A31;
    --forest-deep:#102520;
    --sage:#6F8375;
    --sage-pale:#DCE3D8;
    --paper:#F3F0E9;
    --paper-2:#EAE6DC;
    --brass:#9C7439;
    --rule:rgba(20,38,31,.15);
    --rule-light:rgba(243,240,233,.22);
    --serif:"Newsreader",Georgia,"Times New Roman",serif;
    --sans:"Karla","Helvetica Neue",Arial,sans-serif;
    --measure:34rem;
  }

  *,*::before,*::after{box-sizing:border-box}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--serif);
    font-size:1.0625rem;
    line-height:1.7;
    font-weight:350;
    -webkit-font-smoothing:antialiased;
  }
  img,picture{max-width:100%;display:block}
  a{color:inherit}
  :focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}

  .wrap{width:min(100% - 2.5rem, 68rem);margin-inline:auto}
  .wrap-narrow{width:min(100% - 2.5rem, 50rem);margin-inline:auto}

  /* ---------- type ---------- */
  h1,h2,h3,h4{font-weight:350;line-height:1.14;letter-spacing:-.012em;margin:0}
  h1{font-size:clamp(2.6rem,5.6vw,4.5rem);line-height:1.02;letter-spacing:-.022em;text-wrap:balance}
  h2{font-size:clamp(1.9rem,3.8vw,2.85rem)}
  h3{font-size:1.3rem;line-height:1.3}
  p{margin:0 0 1.15em}
  p:last-child{margin-bottom:0}
  .lede{font-size:clamp(1.15rem,1.9vw,1.375rem);line-height:1.6;color:#33473D}
  .marker{
    font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;
    text-transform:uppercase;color:var(--sage);font-weight:600;
  }
  .measure{max-width:var(--measure)}

  /* ---------- buttons ---------- */
  .btn{
    font-family:var(--sans);font-size:.875rem;font-weight:600;letter-spacing:.02em;
    display:inline-block;padding:.85rem 1.6rem;border-radius:999px;
    text-decoration:none;border:1px solid var(--ink);background:var(--ink);color:var(--paper);
    transition:background .25s ease,color .25s ease,border-color .25s ease;
    cursor:pointer;
  }
  .btn:hover{background:transparent;color:var(--ink)}
  .btn-light{border-color:var(--paper);background:var(--paper);color:var(--forest-deep)}
  .btn-light:hover{background:transparent;color:var(--paper)}

  /* ---------- nav ---------- */
  .nav{
    position:fixed;inset:0 0 auto 0;z-index:60;
    display:flex;align-items:center;gap:2rem;
    padding:1.1rem clamp(1.25rem,4vw,2.5rem);
    color:var(--paper);
    transition:background .3s ease,color .3s ease,box-shadow .3s ease,padding .3s ease;
  }
  .nav.solid{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--rule);padding-block:.75rem}
  .wordmark{
    font-family:var(--serif);font-size:1.0625rem;letter-spacing:.06em;
    text-decoration:none;text-transform:uppercase;white-space:nowrap;
  }
  .wordmark span{display:block;font-size:.62rem;letter-spacing:.2em;font-family:var(--sans);opacity:.7;margin-top:.15rem;text-transform:none}
  .nav-links{display:flex;gap:1.6rem;margin-left:auto;font-family:var(--sans);font-size:.8125rem;letter-spacing:.03em}
  .nav-links a{text-decoration:none;opacity:.85;padding-block:.25rem}
  .nav-links a:hover{opacity:1;text-decoration:underline;text-underline-offset:.35em}
  .nav .btn{padding:.6rem 1.15rem;font-size:.8125rem}
  .nav-toggle{display:none}

  /* ---------- hero ---------- */
  .hero{
    background:var(--forest);color:var(--paper);
    padding:clamp(7rem,12vw,9rem) 0 0;
    position:relative;overflow:hidden;
    min-height:min(100svh,900px);
    display:flex;align-items:flex-end;
  }
  .hero-grid{
    width:min(100% - 2.5rem, 68rem);margin-inline:auto;
    display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
    gap:clamp(2rem,5vw,4rem);align-items:end;
  }
  .hero-copy{padding-bottom:clamp(4.5rem,7vw,6.5rem)}
  .hero-eyebrow{
    display:block;font-family:var(--sans);font-size:.7rem;font-weight:600;
    letter-spacing:.18em;text-transform:uppercase;color:rgba(239,231,213,.62);
    margin-bottom:1.5rem;
  }
  .hero h1{color:#F7F5EF}
  .hero-sub{margin-top:1.75rem;max-width:31rem;color:rgba(243,240,233,.78);font-size:1.0625rem}
  .rotator{
    margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--rule-light);
    max-width:31rem;
  }
  .rotator-label{font-family:var(--sans);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(243,240,233,.55)}
  .rotator-line{
    display:block;margin-top:.6rem;min-height:3.4em;
    font-size:clamp(1.25rem,2.4vw,1.6rem);line-height:1.35;font-style:italic;
    color:#EFE7D5;transition:opacity .6s ease;
  }
  .rotator-line.fade{opacity:0}
  .hero-cta{margin-top:2.25rem;display:flex;gap:.75rem;flex-wrap:wrap}

  /* photo placeholders */
  .photo{
    position:relative;background:var(--paper-2);border:1px solid var(--rule);
    display:grid;place-items:center;color:var(--sage);
    font-family:var(--sans);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;text-align:center;
    padding:1rem;
  }
  .photo::after{
    content:"";position:absolute;inset:.5rem;border:1px dashed rgba(111,131,117,.4);pointer-events:none;
  }
  .photo-portrait{aspect-ratio:4/5}
  .photo img{width:100%;height:100%;object-fit:cover;display:block}
  .hero-portrait{
    margin:0;position:relative;align-self:end;justify-self:end;
    width:100%;max-width:33.5rem;
  }
  .hero-portrait::before{
    content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
    width:120%;height:78%;border-radius:50% 50% 0 0;
    background:radial-gradient(58% 68% at 50% 100%, rgba(233,226,206,.15), rgba(233,226,206,0) 72%);
    pointer-events:none;
  }
  .hero-portrait img{
    position:relative;display:block;width:100%;height:auto;
  }
  .hero-portrait figcaption{
    position:absolute;right:.25rem;bottom:1rem;
    font-family:var(--sans);font-size:.55rem;letter-spacing:.14em;
    text-transform:uppercase;color:rgba(243,240,233,.28);
  }
  .photo-tall{aspect-ratio:3/4}
  .hero .photo{background:rgba(243,240,233,.07);border-color:var(--rule-light);color:rgba(243,240,233,.5)}
  .hero .photo::after{border-color:rgba(243,240,233,.2)}

  /* ---------- sections ---------- */
  section{padding:clamp(4.5rem,9vw,7.5rem) 0}
  /* Keep anchored sections clear of the fixed nav when jumped to. */
  section[id],div[id]{scroll-margin-top:5.5rem}
  .band-paper2{background:var(--paper-2)}
  .band-sage{background:var(--sage-pale)}
  .band-forest{background:var(--forest-deep);color:var(--paper)}
  .band-forest h2{color:#F7F5EF}
  .band-forest p{color:rgba(243,240,233,.8)}

  .two-col{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(2rem,6vw,5rem);align-items:start}
  .sticky-head{position:sticky;top:6rem}

  /* ---------- focus areas ---------- */
  .focus-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:3rem;border-top:1px solid var(--rule)}
  .focus-item{padding:1.6rem 1.75rem 1.7rem 0;border-bottom:1px solid var(--rule)}
  .focus-item:nth-child(odd){border-right:1px solid var(--rule);padding-right:2.5rem}
  .focus-item:nth-child(even){padding-left:2.5rem}
  .focus-item h3{font-size:1.1875rem}
  .focus-item p{margin-top:.4rem;font-size:.9375rem;line-height:1.6;color:#41544A}

  /* ---------- steps ---------- */
  .steps{margin-top:2.5rem;display:grid;gap:0}
  .step{display:grid;grid-template-columns:5.5rem 1fr;gap:1.5rem;padding:1.9rem 0;border-top:1px solid var(--rule)}
  .step:last-child{border-bottom:1px solid var(--rule)}
  .step-num{font-family:var(--sans);font-size:.8125rem;font-weight:600;color:var(--brass);letter-spacing:.08em;padding-top:.45rem}
  .step p{margin-top:.5rem;color:#41544A;max-width:38rem}

  /* ---------- services ---------- */
  .services-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:3rem}
  .services-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:1.25rem}
  .service{
    background:var(--paper);border:1px solid var(--rule);
    padding:2rem 1.9rem 2.25rem;display:flex;flex-direction:column;
  }
  .service h3{padding-bottom:1rem;border-bottom:1px solid var(--rule);margin-bottom:1rem}
  .service p{font-size:.9375rem;line-height:1.65;color:#41544A}
  .service ul{margin:.9rem 0 0;padding-left:1.1rem;font-size:.9375rem;color:#41544A}
  .service li{margin-bottom:.3rem}
  .service-meta{
    margin-top:auto;padding-top:1.25rem;font-family:var(--sans);font-size:.75rem;
    letter-spacing:.06em;color:var(--sage);text-transform:uppercase;
  }
  .service-quiet{background:transparent;border-style:solid;border-color:var(--rule)}
  .service-quiet h3{font-size:1.125rem}

  /* ---------- about ---------- */
  .about-portrait{margin:0}
  .about-portrait img{width:100%;height:auto;display:block;border:1px solid var(--rule)}
  .about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,4.5rem);align-items:start}
  .about-body{font-size:1.0625rem}
  .pullquote{
    margin:2.25rem 0;padding:1.5rem 0 1.5rem 1.75rem;border-left:2px solid var(--brass);
    font-size:clamp(1.15rem,2vw,1.4rem);line-height:1.45;font-style:italic;color:var(--forest);
  }
  .creds{margin-top:2.5rem;border-top:1px solid var(--rule);padding-top:1.5rem;font-family:var(--sans);font-size:.875rem;color:#41544A}
  .creds dl{display:grid;grid-template-columns:8.5rem 1fr;gap:.55rem 1.25rem;margin:0}
  .creds dt{color:var(--sage);font-weight:600;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;padding-top:.15rem}
  .creds dd{margin:0}

  /* ---------- faith band ---------- */
  .faith{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,4.5rem);align-items:center}

  /* ---------- faq ---------- */
  .faq{margin-top:2.75rem;border-top:1px solid var(--rule)}
  details{border-bottom:1px solid var(--rule)}
  summary{
    cursor:pointer;list-style:none;padding:1.35rem 2.5rem 1.35rem 0;position:relative;
    font-size:1.125rem;line-height:1.4;
  }
  summary::-webkit-details-marker{display:none}
  summary::after{
    content:"";position:absolute;right:.5rem;top:1.85rem;width:.7rem;height:.7rem;
    border-right:1px solid var(--sage);border-bottom:1px solid var(--sage);
    transform:rotate(45deg);transition:transform .25s ease;
  }
  details[open] summary::after{transform:rotate(-135deg)}
  details p{padding:0 3rem 1.1rem 0;color:#41544A;font-size:.9875rem;max-width:44rem}
  details p:last-of-type{padding-bottom:1.6rem}

  /* ---------- contact ---------- */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,4.5rem);align-items:start}
  .reach{border:1px solid var(--rule-light);padding:2rem 1.9rem 2.15rem}
  .reach h3{font-size:1.125rem;padding-bottom:1rem;border-bottom:1px solid var(--rule-light);margin-bottom:1.25rem}
  .reach-steps{margin:0;padding-left:1.15rem;display:grid;gap:.85rem;color:rgba(243,240,233,.8);font-size:.9375rem;line-height:1.6}
  .reach-steps::marker,.reach-steps li::marker{color:var(--brass);font-family:var(--sans);font-size:.8125rem}
  .reach-cta{margin-top:1.75rem}
  .reach-cta-alt{border-color:rgba(243,240,233,.45);background:transparent;color:#F3F0E9;margin-left:.6rem}
  .reach-cta-alt:hover{background:var(--paper);color:var(--forest-deep)}
  .form-note{font-family:var(--sans);font-size:.75rem;line-height:1.6;color:rgba(243,240,233,.5);margin-top:1.5rem}
  .contact-detail{border-top:1px solid var(--rule-light);padding-top:1.25rem;margin-top:1.75rem}
  .contact-detail h3{font-size:1rem;margin-bottom:.35rem}
  .contact-detail p{font-size:.9375rem;color:rgba(243,240,233,.75)}
  /* Plain links in this band only. Without :not(.btn) this rule outranks
     .btn-light and paints the Email button cream-on-cream. */
  .contact-grid a:not(.btn){color:#EFE7D5}

  /* ---------- legal pages ---------- */
  .nav-static{background:var(--paper);color:var(--ink);box-shadow:0 1px 0 var(--rule);padding-block:.75rem}
  .legal{padding:clamp(8rem,14vw,11rem) 0 clamp(4rem,9vw,7rem)}
  .legal h1{font-size:clamp(2.1rem,4.4vw,3.1rem);max-width:18ch}
  .legal h2{font-size:clamp(1.35rem,2.4vw,1.65rem);margin:3rem 0 1.1rem;padding-top:1.5rem;border-top:1px solid var(--rule)}
  .legal h3{font-size:1.0625rem;margin:1.75rem 0 .6rem}
  .legal p,.legal li{max-width:42rem;color:#41544A}
  .legal ul{padding-left:1.15rem}
  .legal li{margin-bottom:.5rem}
  .legal dl{display:grid;grid-template-columns:11rem 1fr;gap:.55rem 1.25rem;margin:1.5rem 0 0;max-width:42rem;font-family:var(--sans);font-size:.875rem}
  .legal dt{color:var(--sage);font-weight:600;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;padding-top:.15rem}
  .legal dd{margin:0;color:#41544A}
  .legal-meta{font-family:var(--sans);font-size:.8125rem;color:var(--sage);margin-top:1.25rem}
  .legal-back{display:inline-block;margin-top:3.5rem;padding-block:.4rem;font-family:var(--sans);font-size:.8125rem;letter-spacing:.03em}
  .review{
    margin:2.5rem 0 0;padding:1.25rem 1.4rem;border:1px solid var(--brass);
    background:rgba(156,116,57,.07);font-family:var(--sans);font-size:.8125rem;
    line-height:1.65;color:#5C4620;max-width:42rem;
  }
  .review strong{color:var(--brass);display:block;margin-bottom:.35rem;letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}
  @media (max-width:640px){.legal dl{grid-template-columns:1fr;gap:.2rem 0}.legal dt{margin-top:.75rem}}

  /* ---------- closing ---------- */
  .closing{background:var(--forest);color:var(--paper);text-align:center;padding:clamp(5rem,10vw,8rem) 0}
  .closing h2{font-size:clamp(2rem,5vw,3.5rem);color:#F7F5EF;max-width:22ch;margin-inline:auto}
  .closing .btn{margin-top:2.25rem}

  /* ---------- footer ---------- */
  footer{background:var(--forest-deep);color:rgba(243,240,233,.62);padding:3.5rem 0 2.5rem;font-family:var(--sans);font-size:.8125rem;line-height:1.7}
  .footer-top{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding-bottom:2rem;border-bottom:1px solid var(--rule-light)}
  footer .wordmark{color:var(--paper)}
  .footer-links{display:flex;gap:1.5rem;flex-wrap:wrap}
  .footer-links a{text-decoration:none}
  .footer-links a:hover{text-decoration:underline;text-underline-offset:.3em}
  .crisis{margin-top:2rem;padding:1.15rem 1.35rem;border:1px solid var(--rule-light);color:rgba(243,240,233,.8);max-width:46rem}
  .crisis strong{color:#EFE7D5;font-weight:600}
  .fine{margin-top:2rem;display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;font-size:.75rem;color:rgba(243,240,233,.45)}
  .fine-links a{text-decoration:none;color:rgba(243,240,233,.62)}
  .fine-links a:hover{text-decoration:underline;text-underline-offset:.3em;color:var(--paper)}

  /* ---------- responsive ---------- */
  @media (max-width:960px){
    .services-3{grid-template-columns:1fr}
  }
  @media (max-width:900px){
    .hero-grid,.two-col,.about-grid,.faith,.contact-grid,.services-2,.focus-list{grid-template-columns:1fr}
    .hero-grid .photo,.hero-grid .hero-portrait{display:none}
    .hero{padding-bottom:clamp(3.5rem,8vw,5rem);min-height:0;display:block}
    .hero-copy{padding-bottom:0}
    .sticky-head{position:static}
    .focus-item{padding:1.35rem 0!important;border-right:0!important}
    .nav-links{display:none}
    .nav-links.open{
      display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;
      background:var(--paper);color:var(--ink);padding:1.25rem clamp(1.25rem,4vw,2.5rem) 1.75rem;gap:1rem;
      box-shadow:0 12px 24px rgba(16,37,32,.12);margin-left:0;
    }
    .nav-toggle{
      display:flex;align-items:center;min-height:44px;margin-left:auto;background:none;border:0;color:inherit;
      font-family:var(--sans);font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:.5rem;
    }
    .nav > .btn{display:none}
    .about-grid .photo,.about-grid .about-portrait{max-width:22rem}

    /* Touch targets. Standalone links need to clear the 24px WCAG minimum;
       the nav and the open menu get a full 44px since they are the primary
       way around the site on a phone. */
    .nav-links.open a{min-height:44px;display:flex;align-items:center;padding-block:0}
    .footer-links{gap:.25rem 1.5rem}
    .footer-links a{display:inline-block;padding-block:.5rem}
    .fine-links a{display:inline-block;padding-block:.45rem}
    .reach-cta-alt{margin-left:0;margin-top:.75rem}
  }

  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *{transition-duration:.01ms!important;animation-duration:.01ms!important}
  }
