/* A calm, readable home for the clinic's complete policies. */
.terms-site { background:#faf7f2; }
.terms-hero { background:#eee6db; border-bottom:1px solid #d8ccbc; padding:78px 0 66px; }
.terms-hero .eyebrow { color:#806043; }
.terms-hero h1 { font:clamp(2.7rem,5.7vw,5.35rem)/1.08 var(--serif); letter-spacing:-.025em; margin:0 0 28px; max-width:1060px; }
.terms-hero h1 em { font-style:normal; color:#906b47; }
.terms-intro { max-width:700px; font-size:1.0625rem; line-height:1.85; color:#685b4d; margin:0 0 20px; }
.terms-updated { font-size:.8125rem; color:#7b6b5a; margin:0; }
.terms-layout { display:grid; grid-template-columns:250px minmax(0,1fr); align-items:start; gap:72px; padding-top:66px; padding-bottom:88px; }
.terms-sidebar { position:sticky; top:150px; align-self:start; padding:0 25px 12px 0; border-right:1px solid #dbcebd; }
.terms-sidebar h2 { font:500 .875rem/1.5 var(--sans); color:#594533; margin:0 0 19px; }
.terms-sidebar ol { list-style:none; margin:0; padding:0; }
.terms-sidebar li { margin:0; }
.terms-sidebar a { display:flex; align-items:baseline; gap:11px; color:#756451; font-size:.875rem; line-height:1.55; padding:7px 0; text-decoration:none; }
.terms-sidebar a>span { flex:none; width:21px; font-size:.75rem; color:#a08566; font-variant-numeric:tabular-nums; }
.terms-sidebar a:hover { color:#302720; text-decoration:underline; text-underline-offset:4px; }
.terms-content { min-width:0; }
.terms-fee-note { padding:30px 35px; margin:0 0 8px; background:#eee3d4; border:1px solid #d6c1a6; }
.terms-fee-note .eyebrow { margin-bottom:12px; color:#765638; }
.terms-fee-note h2 { font:2.15rem/1.25 var(--serif); margin:0 0 14px; color:#493322; }
.terms-fee-note h2 strong { font-weight:400; color:#8e643a; }
.terms-fee-note>p:last-child { margin:0; font-size:1rem; line-height:1.8; color:#6f5c49; }
.policy-section { display:grid; grid-template-columns:34px minmax(0,1fr); gap:22px; border-bottom:1px solid #ddd0bf; padding:36px 0; scroll-margin-top:155px; }
.policy-number { padding-top:7px; font-size:.8125rem; color:#a18563; letter-spacing:.07em; }
.policy-section h2 { font:2rem/1.3 var(--serif); letter-spacing:-.012em; color:#463527; margin:0 0 18px; }
.policy-section h3 { font:500 1rem/1.65 var(--sans); color:#4f3b2a; margin:23px 0 9px; }
.policy-section p,.policy-section li { font-size:1rem; line-height:1.85; color:#6b5d50; }
.policy-section p { margin:0 0 15px; }
.policy-section ul { padding-left:21px; margin:12px 0 18px; }
.policy-section li { padding-left:5px; margin:7px 0; }
.policy-section li::marker { color:#a27e58; }
.policy-section p:last-child,.policy-section ul:last-child { margin-bottom:0; }
.policy-section a { color:#76512e; text-underline-offset:4px; overflow-wrap:anywhere; }
.terms-contact { padding:38px; margin-top:38px; background:#eee6dc; }
.terms-contact .eyebrow { margin-bottom:16px; }
.terms-contact h2 { font:2.7rem/1.15 var(--serif); margin:0 0 20px; }
.terms-contact>div { display:flex; flex-direction:column; align-items:flex-start; gap:8px; margin-bottom:27px; }
.terms-contact>div a { font-size:1rem; color:#76512e; text-underline-offset:4px; overflow-wrap:anywhere; max-width:100%; }
.terms-site a:focus-visible { outline:2px solid #987145; outline-offset:4px; }
@media(max-width:1100px) {
  .terms-layout { grid-template-columns:225px minmax(0,1fr); gap:42px; }
  .terms-sidebar { position:static; }
  .terms-fee-note { padding:28px; }
}
@media(max-width:760px) {
  .terms-hero { padding:48px 0 40px; }
  .terms-hero h1 { font-size:clamp(2.35rem,8.5vw,3.6rem); }
  .terms-intro { font-size:1rem; }
  .terms-layout { grid-template-columns:1fr; gap:32px; padding-top:34px; padding-bottom:50px; }
  .terms-sidebar { border-right:0; border-bottom:1px solid #dbcebd; padding:0 0 24px; }
  .terms-sidebar ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:20px; }
  .terms-sidebar a { font-size:.875rem; gap:7px; padding:7px 0; }
  .terms-sidebar a>span { width:18px; }
  .terms-fee-note { padding:25px; }
  .terms-fee-note h2 { font-size:1.95rem; }
  .policy-section { grid-template-columns:24px minmax(0,1fr); gap:12px; padding:29px 0; scroll-margin-top:120px; }
  .policy-section h2 { font-size:1.8rem; }
  .terms-contact { padding:27px; }
  .terms-contact h2 { font-size:2.3rem; }
  .terms-contact .button { text-align:left; gap:15px; font-size:.75rem; }
}
@media(max-width:360px) {
  .terms-sidebar ol { grid-template-columns:1fr; }
  .policy-section { grid-template-columns:1fr; gap:8px; }
}
