:root { --deep:#062d20; --cream:#faf7ef; --card:#fffdf9; --sand:#f1e8d3; --gold:#d3a85f; --ink:#0a281d; --muted:#59625d; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"DM Sans",sans-serif; }
img { display:block; max-width:100%; }
h1,h2,h3,strong { font-family:"Fraunces",serif; font-weight:400; }
p { line-height:1.65; }
a { color:inherit; }
.container { width:min(1260px,calc(100% - 48px)); margin:auto; }
.narrow { max-width:850px; text-align:center; }
.section { padding:96px 0; }
.eyebrow { margin:0; color:var(--muted); font-size:.78rem; font-weight:500; letter-spacing:.28em; text-transform:uppercase; }
.gold { color:var(--gold); }
.hero,.results,footer { background:var(--deep); color:#f9f4e8; }
.hero-grid { display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:58px; padding-block:28px; }
.hero h1 { margin:34px 0 0; font-size:clamp(3rem,5.2vw,5.1rem); line-height:.98; }
.hero h1 em { color:var(--gold); font-style:normal; }
.hero-copy { max-width:610px; margin:36px 0 0; color:#e8e5dccc; font-size:1.05rem; }
.actions { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin-top:40px; }
.button { display:inline-flex; justify-content:center; padding:17px 34px; border:1px solid transparent; text-decoration:none; transition:transform .2s,background .2s,color .2s; }
.button:hover { transform:translateY(-2px); }
.button-gold { background:var(--gold); color:#102a20; }
.text-link { color:#f1eee4cc; text-underline-offset:9px; }
.doctors-copy { max-width:620px; margin-top:56px; padding-top:30px; border-top:1px solid #ffffff26; }
.doctors-copy strong { font-size:1.45rem; }
.doctors-copy p { margin:10px 0 0; color:#f1eee4a8; font-style:italic; }
.hero-image-wrap { position:relative; }
.hero-image-wrap>img { width:100%; max-height:810px; object-fit:cover; }
.image-card { position:absolute; bottom:-20px; left:24px; display:grid; gap:8px; padding:22px 30px; background:var(--cream); color:var(--ink); box-shadow:0 12px 30px #0002; }
.image-card strong { font-size:1.25rem; }
.services h2,.results h2,.community h2 { margin:28px 0 0; font-size:clamp(2.4rem,4.3vw,4rem); line-height:1.18; }
.services h2 { max-width:850px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:70px; background:#ded8cb; }
.service-grid article { padding:42px 38px; background:var(--card); }
.service-grid article>span { color:var(--gold); font-family:"Fraunces",serif; font-size:2.2rem; }
.service-grid h3 { margin:32px 0 0; font-size:1.45rem; }
.service-grid p { color:var(--muted); font-size:.96rem; }
.location-card { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:48px; margin-top:64px; padding:48px; background:var(--sand); }
.location-card img { width:100%; height:420px; object-fit:cover; }
.location-card h3 { margin:26px 0 0; font-size:2rem; line-height:1.32; }
.results-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin:60px 0 46px; }
.results figure { position:relative; margin:0; overflow:hidden; }
.results figure img { width:100%; aspect-ratio:4/5; object-fit:cover; transition:transform .6s; }
.results figure:hover img { transform:scale(1.04); }
.results figcaption { position:absolute; inset:auto 0 0; min-height:78px; padding:20px; background:#16392fe8; }
.button-outline { border-color:var(--gold); color:var(--gold); }
.button-outline:hover { background:var(--gold); color:var(--ink); }
.community p:not(.eyebrow) { max-width:650px; margin:28px auto 0; color:var(--muted); }
.button-green { margin-top:34px; background:#174b38; color:white; }
.footer-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:72px; padding-block:82px; }
footer h3 { margin:0; font-size:1.5rem; }
footer p,footer li { color:#f8f5edbd; }
footer ul { margin:24px 0 0; padding:0; list-style:none; line-height:2.25; }
footer a { text-underline-offset:4px; }
.copyright { padding:22px 0; border-top:1px solid #ffffff20; color:#f8f5ed99; font-size:.8rem; }
@media (max-width:900px) {
  .hero-grid,.location-card { grid-template-columns:1fr; }
  .hero-grid { padding-block:64px; }
  .hero-image-wrap { margin-top:10px; }
  .service-grid { grid-template-columns:1fr; }
  .results-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr; gap:36px; }
}
@media (max-width:560px) {
  .container { width:min(100% - 32px,1260px); }
  .section { padding:70px 0; }
  .hero h1 { font-size:2.75rem; }
  .image-card { position:relative; bottom:auto; left:auto; }
  .service-grid { margin-top:46px; }
  .service-grid article,.location-card { padding:28px; }
  .location-card img { height:260px; }
  .results-grid { grid-template-columns:1fr; }
  .community h2 { font-size:2.25rem; overflow-wrap:anywhere; }
}
