:root{
  --paper: #FAF8F3;
  --paper-alt: #EFEBE2;
  --ink: #2B2E29;
  --ink-soft: #565B52;
  --sage: #5F7A63;
  --sage-deep: #435347;
  --gold: #B99257;
  --line: #DCD6C8;
  --focus: #2B2E29;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Source Sans 3', system-ui, sans-serif;
  font-size:17px;
  line-height:1.6;
}
h1,h2,h3{
  font-family:'Fraunces', Georgia, serif;
  font-weight:500;
  line-height:1.15;
  margin:0 0 0.5em;
  color:var(--ink);
}
p{margin:0 0 1em;}
a{color:var(--sage-deep);}
:focus-visible{outline:3px solid var(--focus); outline-offset:3px;}

.wrap{max-width:1040px; margin:0 auto; padding:0 28px;}

header{
  display:flex; justify-content:space-between; align-items:center;
  padding:26px 28px; max-width:1040px; margin:0 auto;
}
.brand{font-family:'Fraunces', serif; font-size:1.15rem; letter-spacing:0.01em; text-decoration:none; color:var(--ink);}
nav a{
  color:var(--ink-soft); text-decoration:none; margin-left:28px; font-size:0.95rem;
}
nav a:hover, nav a[aria-current="page"]{color:var(--sage-deep);}

.hero{
  padding:64px 0 88px;
  display:grid;
  grid-template-columns: 1.3fr 1fr;
  gap:56px;
  align-items:end;
}
.hero h1{
  font-size:clamp(2.3rem, 4vw, 3.4rem);
  max-width:12ch;
}
.hero .lede{
  font-size:1.15rem;
  color:var(--ink-soft);
  max-width:42ch;
  margin-bottom:1.6em;
}
.hero-meta{
  border-left:2px solid var(--sage);
  padding-left:22px;
  font-size:0.95rem;
  color:var(--ink-soft);
}
.hero-meta strong{display:block; color:var(--ink); font-family:'Fraunces', serif; font-size:1.05rem; font-weight:500; margin-bottom:6px;}
.hero-meta ul{margin:0; padding-left:1.1em;}
.hero-meta li{margin-bottom:4px;}

.btn{
  display:inline-block;
  background:var(--sage-deep);
  color:#fff;
  text-decoration:none;
  padding:13px 26px;
  border-radius:2px;
  font-size:0.98rem;
  border:none;
  cursor:pointer;
  font-family:'Source Sans 3', sans-serif;
  font-weight:600;
}
.btn:hover{background:var(--ink);}
.btn-ghost{
  display:inline-block;
  color:var(--sage-deep);
  text-decoration:none;
  font-weight:600;
  font-size:0.95rem;
  border-bottom:1px solid var(--sage);
  padding-bottom:2px;
}

section{padding:64px 0; border-top:1px solid var(--line);}
.section-head{display:flex; justify-content:space-between; align-items:baseline; gap:24px; margin-bottom:2.2em; flex-wrap:wrap;}
.section-head h2{font-size:1.7rem;}
.section-head .count{color:var(--ink-soft); font-size:0.92rem;}

.about{display:grid; grid-template-columns: 1fr 1.4fr; gap:56px;}
.credentials{
  background:var(--paper-alt);
  padding:24px 26px;
  border-left:3px solid var(--gold);
}
.credentials h3{font-size:1rem; margin-bottom:0.8em;}
.credentials ul{margin:0; padding-left:1.1em; color:var(--ink-soft); font-size:0.95rem;}
.credentials li{margin-bottom:0.5em;}

.services{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
.service{
  padding:26px 24px 26px 0;
  border-right:1px solid var(--line);
}
.service:last-child{border-right:none;}
.service h3{font-size:1.1rem; margin-bottom:0.5em;}
.service p{color:var(--ink-soft); font-size:0.95rem; margin-bottom:0;}

.therapies{display:flex; gap:14px; flex-wrap:wrap; margin-top:0.5em;}
.therapy-tag{
  background:var(--paper-alt);
  border:1px solid var(--line);
  padding:8px 16px;
  font-size:0.9rem;
  color:var(--ink-soft);
}

.contact-grid{display:grid; grid-template-columns: 1fr 1.3fr; gap:56px;}
.contact-info p{color:var(--ink-soft);}
.contact-info .note{
  margin-top:22px; padding:16px 18px; background:var(--paper-alt);
  font-size:0.88rem; color:var(--ink-soft); border-left:3px solid var(--sage);
}
.contact-details{list-style:none; padding:0; margin:1.6em 0;}
.contact-details li{margin-bottom:0.9em; font-size:1.02rem;}
.contact-details span{display:block; font-size:0.82rem; color:var(--ink-soft); text-transform:none;}

form{display:flex; flex-direction:column; gap:18px;}
.field{display:flex; flex-direction:column; gap:6px;}
label{font-size:0.92rem; font-weight:600; color:var(--ink);}
input, textarea{
  font-family:inherit; font-size:1rem;
  padding:12px 14px;
  border:1px solid var(--line);
  background:#fff;
  border-radius:2px;
  color:var(--ink);
}
textarea{resize:vertical; min-height:120px;}
input:focus, textarea:focus{border-color:var(--sage-deep);}
.consent{flex-direction:row; align-items:flex-start; gap:10px;}
.consent input{width:auto; margin-top:4px;}
.consent label{font-weight:400; font-size:0.9rem; color:var(--ink-soft);}
.hp{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;}
.form-msg{font-size:0.9rem; margin-top:4px;}
.form-msg.ok{color:var(--sage-deep);}
.form-msg.err{color:#a44;}

footer{padding:34px 0 50px; border-top:1px solid var(--line); color:var(--ink-soft); font-size:0.85rem;}

@media (max-width:760px){
  .hero{grid-template-columns:1fr; gap:28px;}
  .about, .contact-grid{grid-template-columns:1fr;}
  .services{grid-template-columns:1fr;}
  .service{border-right:none; border-bottom:1px solid var(--line); padding:22px 0;}
  nav a{margin-left:16px; font-size:0.88rem;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
}
