/* Layout refinements only. Original font families, sizes and weights come from the preceding stylesheets. */
:root {
  --paper:#f8f7f2; --ink:#1c4035; --muted:#62746b;
}
body {  background:var(--paper);  }
body::before { opacity:.35; }

h2, .needs-section .needs-heading h2 {


  text-wrap:balance;
}


.body-copy, .journey-card p, .service-grid p { text-wrap:pretty; }
.site-header { background:rgba(248,247,242,.9); border-bottom-color:rgba(85,114,94,.14); }


.site-header .nav-journey { border-radius:30px; border-color:#b8c4b4; padding-inline:23px; }
.hero { background:radial-gradient(ellipse at 50% 48%,#edf1e5 0,transparent 63%),var(--paper); }
.hero h1 {    padding-left:.115em; }

.hero-tagline em { display:inline-block; margin-top:5px;  }
.quiet-link {  border-color:#a5b29f; padding-bottom:10px; }
.statement h2 { max-width:1000px;     }

#about .statement-copy > .body-copy:not(.zh) { color:#63746b;   max-width:47ch; }
.body-copy {   color:#63746b; }
#about .journey-cards { gap:20px; }
#about .journey-card, #about .journey-card.featured { padding:25px 27px; border-radius:22px; }
#about .journey-card h3 {      margin:9px 0 14px; }
#about .journey-card p {   color:#546c60; }
#about .journey-card > span {   color:#718775; }
#about .journey-card::before { background:radial-gradient(ellipse at top left,rgba(255,255,255,.5),transparent 70%); }
#about .journey-card::after { border-color:rgba(255,255,255,.35); }

.needs-info-row { border-color:#d6dfd4; border-radius:12px; }

.needs-info-row p, .role-table p, .privacy-points p {  color:#617369; }

.services .service-grid > li:nth-child(n) { border-color:#dce4d7; box-shadow:0 6px 22px -20px #31553c; }
.services .service-grid p {   color:#4c665a; }



.availability, .needs-reference-note { color:#6c7b72;  }
.lead-dialog { border-radius:24px; }


.lead-form input:not([type=checkbox]):not([type=hidden]), .lead-form select, .lead-form textarea { border-radius:10px; }
.lead-submit-row button, .dialog-done { border-radius:12px; }
.site-footer { border-top-color:#dbe1d5; }

@media (min-width:681px) {
  .statement, .coordination, .services, .costs { padding-block:clamp(76px,8vw,114px); }
  .needs-section, .privacy-section { padding-block:clamp(76px,8vw,114px); }
  .coordination h2, .privacy-intro h2 { max-width:18ch; }
  .services-heading h2 { max-width:25ch; }
  .services .service-grid { gap:18px; margin-top:38px; }
}
@media (max-width:680px) {
  body { background:var(--paper); }
  .site-header { background:rgba(248,247,242,.93); }

  .menu-toggle { background:transparent; border-color:rgba(133,154,124,.25); border-radius:24px;    }
  .site-header .nav-journey { padding:12px; }
  .hero-content { padding:38px 22px; }
  .hero h1 {   margin-bottom:20px; }

  .hero-tagline em {  margin-top:3px; }
  .quiet-link { margin-top:27px;  }
  #about.statement { padding:42px 24px 38px; row-gap:27px; }
  .coordination, .services, .costs, .needs-section, .privacy-section { padding:42px 24px; }
  #about .journey-cards { gap:12px; }
  #about .journey-card, #about .journey-card.featured { padding:20px; row-gap:9px; border-radius:20px; }
  #about .journey-card h3 { margin:0;   }


  .needs-info-row { border-radius:0; }

  .needs-info-row .mobile-disclosure-toggle { min-height:64px; }
  .services .service-grid { gap:11px; margin-top:26px; }
  .services .service-grid > li:nth-child(n) { padding:15px 14px; border-radius:19px; }





  .mobile-tabbar { background:rgba(250,250,244,.93); border-color:rgba(255,255,255,.95); box-shadow:0 5px 30px -12px rgba(38,66,46,.26); }

}

/* Keep the opening statement compact, with an intro and a clear focal line. */
@media (max-width:680px) {
  #about.statement { padding:30px 22px 34px; row-gap:21px; }
  #about #statement-title {
    width:100%; max-width:none; min-width:0; height:auto;
    padding:0; margin:0;
    font-size:clamp(19px,5.1vw,23px); font-weight:400;
    line-height:1.35; letter-spacing:-.55px; text-wrap:pretty;
  }
  #about #statement-title > br { display:none; }
  #about #statement-title > em {
    display:block; margin-top:6px;
    font-size:clamp(26px,7.1vw,31px); line-height:1.18;
    letter-spacing:-.65px; text-wrap:balance;
  }
  #about .statement-copy > .body-copy:not(.zh) {
    width:100%; max-width:none; margin:0; font-size:15px; line-height:1.7;
  }
}
