@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--cream:#e6d7ba;--linen:#d9c6a8;--linen-deep:#c4a98d;--ink:#3a332a;--sage:#e8dcc3;--clay:#c19a6b;--camel:#c19a6b;--wood:#8a6d4b;--sand:#ece1c8;--beige:#ece1c8;--olive:#a08b6f;--moss:#d9c6a8;--line:#d5c6a8}*{box-sizing:border-box}body{margin:0;background-color:var(--linen);background-image:linear-gradient(rgba(250,242,226,.18),rgba(250,242,226,.18)),url('stone-texture.jpg');background-size:400px auto;color:var(--ink);font:17px/1.7 "DM Sans",sans-serif}a{color:inherit}header{border-bottom:1px solid var(--line)}.wrap{max-width:1160px;margin:auto;padding:24px}.brand{text-decoration:none;font-weight:700;line-height:1.3;display:block}.brand small{display:block;font-weight:400;font-size:12px;letter-spacing:.13em}nav{display:flex;gap:22px;flex-wrap:wrap;margin-top:22px}nav a{text-decoration:none;font-size:14px}.hero{padding:80px 0 64px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:50px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px}h1,h2,h3{font-family:"Libre Caslon Display",Georgia,serif;font-weight:400;line-height:1.08}h1{font-size:clamp(46px,6vw,78px);margin:20px 0}h2{font-size:42px}h3{font-size:29px}p{max-width:740px}.art{min-height:390px;border-radius:240px 240px 25px 25px;background:radial-gradient(ellipse at 65% 30%,#f3e9d2 0 15%,transparent 16%),linear-gradient(145deg,#e8dcc3,#f7efdd 55%,#c9a06b);position:relative;overflow:hidden}.art:after{content:"";position:absolute;width:190px;height:290px;bottom:-70px;left:25%;border:2px solid #faf7f088;border-radius:100px 100px 0 0}.btn{display:inline-block;padding:13px 22px;border-radius:30px;background:var(--clay);color:white;text-decoration:none;margin:12px 10px 12px 0;font-weight:600}.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--ink)}section{padding:40px 0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.card{background:#f6eeda;border:1px solid var(--line);padding:28px;border-radius:18px;text-decoration:none;display:block}.card h3{margin:5px 0 16px}.card:hover{border-color:var(--clay)}.band{background:var(--sage);padding:38px;border-radius:22px;margin:28px 0}.two{display:grid;grid-template-columns:1fr 1fr;gap:40px}footer{margin-top:65px;border-top:1px solid var(--line);font-size:14px}details{padding:18px 0;border-bottom:1px solid var(--line)}summary{cursor:pointer;font-weight:600}.skip{position:absolute;left:-10000px}.skip:focus{left:10px;background:white;padding:12px}a:focus-visible,summary:focus-visible{outline:3px solid var(--clay);outline-offset:5px}@media(max-width:760px){.hero,.two{grid-template-columns:1fr}.hero{padding-top:38px;gap:20px}.art{min-height:240px}.grid{grid-template-columns:1fr}nav{gap:16px}.wrap{padding:20px}.band{padding:24px}h2{font-size:36px}}@media(prefers-reduced-motion:no-preference){a{transition:background .15s,border-color .15s}}
.reviews{background:#fffdf8;border:1px solid var(--line);border-radius:22px;padding:38px;margin:28px 0;text-align:center}
.reviews h2{margin:10px 0}
.review-summary{margin:0 auto}
.review{margin:28px auto 10px;max-width:760px}
.review p{font-family:"Libre Caslon Display",Georgia,serif;font-size:24px;line-height:1.45;margin:12px auto}
.review cite{font-style:normal;font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.stars{color:#b8860b;letter-spacing:.2em;font-size:20px}
.carousel-controls{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:18px}
.carousel-controls button{cursor:pointer;background:transparent;border:1px solid var(--ink);border-radius:50%;width:42px;height:42px;font-size:22px;line-height:1}
.dots{display:flex;gap:8px}
.dot{width:12px !important;height:12px !important;border-radius:50% !important;font-size:0 !important;padding:0;background:var(--line) !important;border:none !important}
.dot.active{background:var(--clay) !important}
.fineprint{font-size:13px;margin-top:18px}
@media(max-width:760px){.reviews{padding:24px}.review p{font-size:20px}}

/* Arch-shaped photos (bohemian) — photos display in an arch frame, not squares/rectangles */
main img{border-radius:999px 999px 20px 20px;object-fit:cover;object-position:center top;max-width:100%;height:auto}
img.before-after{border-radius:20px;object-fit:contain}

nav a.book-btn{background:#9a6b38;color:#fff;border-radius:999px;padding:.35rem .9rem}
form label{display:block;margin:.7rem 0;font-weight:600}
form input,form select,form textarea{display:block;width:100%;max-width:520px;margin-top:.3rem;padding:.6rem;border:1px solid #d5c6a8;border-radius:10px;background:#fffaf0;font:inherit}
form button{margin-top:.5rem}
iframe{border-radius:14px}

/* Homepage hero photo — matches the approved preview: shallow arch, focal point on the doctors' faces, full frame on phones */
.hero-photo{align-self:stretch;position:relative;overflow:hidden;border-radius:50% 50% 14px 14px / 36% 36% 14px 14px;min-height:380px}
.hero-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 18%;border-radius:inherit;max-width:none}
@media(max-width:760px){.hero-photo{min-height:0}.hero-photo img{position:relative;aspect-ratio:3/2;height:auto}}

/* Homepage walkthrough video — portrait clip, centered, shallow arch like the hero photo */
.walkthrough{text-align:center}
.walkthrough p{margin-left:auto;margin-right:auto}
.walkthrough video{display:block;width:100%;max-width:420px;height:auto;margin:24px auto 0;border-radius:50% 50% 14px 14px / 36% 36% 14px 14px;background:#1c1712}
