/* ClinicBrain — shared styles for sub-pages (services, process, faq, legal) */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --paper:#F4F2F8; --paper-2:#ECE9F3; --paper-3:#E2DDEE;
  --ink:#14131A; --ink-2:#211D2B; --body:#565463; --muted:#8C8A9C;
  --gold:#7E6CC0; --gold-dk:#574794; --gold-lt:#BCAEE6; --aqua:#6FC4BA; --pink:#CE8FBE;
  --line:rgba(20,19,26,0.12); --line-2:rgba(20,19,26,0.24);
  --max-w:1200px; --ease:cubic-bezier(0.22,1,0.36,1);
}

html { scroll-behavior:smooth; }
body { font-family:'Hanken Grotesk',sans-serif; background:var(--paper); color:var(--ink); font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; -webkit-user-select:none; user-select:none; overflow-x:hidden; }
a { text-decoration:none; color:inherit; }
img { max-width:100%; display:block; -webkit-user-drag:none; user-select:none; }
button { font-family:inherit; cursor:pointer; background:none; border:none; }
::selection { background:var(--gold); color:#fff; }

.wrap { max-width:var(--max-w); margin:0 auto; padding:0 32px; }

.kicker { font-size:11px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold-dk); display:inline-flex; align-items:center; gap:11px; }
.kicker::before { content:""; width:24px; height:1px; background:var(--gold); opacity:.6; }
.ital { font-style:italic; color:var(--gold); font-weight:400; }

.btn { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:15px 28px; font-size:14.5px; font-weight:600; border-radius:10px; transition:transform .35s var(--ease), background .3s, color .3s, box-shadow .3s; }
.btn-fill { background:var(--ink); color:#fff; }
.btn-fill:hover { background:var(--gold-dk); transform:translateY(-2px); box-shadow:0 12px 28px -12px var(--gold-dk); }
.btn-line { color:var(--ink); box-shadow:inset 0 0 0 1px var(--line-2); }
.btn-line:hover { box-shadow:inset 0 0 0 1px var(--ink); transform:translateY(-2px); }
.btn .arr { transition:transform .35s var(--ease); }
.btn:hover .arr { transform:translate(3px,-3px); }
.ulink { position:relative; }
.ulink::after { content:""; position:absolute; left:0; bottom:-3px; height:1px; width:100%; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .35s var(--ease); }
.ulink:hover::after { transform:scaleX(1); transform-origin:left; }

/* nav */
#nav { position:sticky; top:0; z-index:1000; background:rgba(244,242,248,0.86); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); padding:12px 0; }
.nav-in { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand img { height:44px; width:auto; }
.nav-links { display:flex; align-items:center; gap:32px; list-style:none; }
.nav-links a { font-size:14.5px; font-weight:500; color:var(--body); }
.nav-links a:hover, .nav-links a[aria-current="page"] { color:var(--ink); }
.nav-right { display:flex; align-items:center; gap:16px; }
.burger { display:none; width:44px; height:44px; border-radius:10px; box-shadow:inset 0 0 0 1px var(--line-2); align-items:center; justify-content:center; }
.burger .x { display:none; } .burger.open .m { display:none; } .burger.open .x { display:block; }
.m-menu { display:none; position:fixed; top:74px; left:16px; right:16px; background:#fff; border:1px solid var(--line); border-radius:16px; padding:12px; z-index:999; opacity:0; transform:translateY(-8px); pointer-events:none; transition:opacity .3s var(--ease), transform .3s var(--ease); box-shadow:0 24px 60px -24px rgba(20,19,26,0.4); }
.m-menu.open { opacity:1; transform:translateY(0); pointer-events:auto; }
.m-menu a { display:block; padding:14px; font-size:16px; font-weight:500; color:var(--ink); border-bottom:1px solid var(--line); }
.m-menu a:last-child { border-bottom:none; }
.m-menu .btn { margin-top:10px; width:100%; }

/* page hero */
.page-hero { position:relative; padding:96px 0 64px; overflow:hidden; }
.page-hero .wash { position:absolute; top:-160px; left:50%; transform:translateX(-50%); width:1100px; max-width:130%; height:560px; z-index:0; pointer-events:none; opacity:.65; filter:blur(20px);
  background:radial-gradient(420px 300px at 28% 24%,rgba(126,108,192,.30),transparent 70%),radial-gradient(380px 280px at 72% 16%,rgba(206,143,190,.22),transparent 70%),radial-gradient(420px 320px at 55% 44%,rgba(111,196,186,.20),transparent 72%); }
.page-hero .wrap { position:relative; z-index:1; }
.crumb { font-size:13px; color:var(--muted); margin-bottom:22px; }
.crumb a:hover { color:var(--gold-dk); }
.page-title { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(38px,6vw,76px); line-height:1.02; letter-spacing:-0.035em; margin-top:18px; max-width:16ch; }
.page-intro { font-size:18.5px; color:var(--body); line-height:1.6; max-width:640px; margin-top:22px; }

/* section shell */
.pad { padding:96px 0; }
.sec-title { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(30px,4.2vw,52px); line-height:1.05; letter-spacing:-0.03em; margin-top:18px; }
.sec-note { font-size:17px; color:var(--body); margin-top:16px; max-width:560px; }

/* services blocks */
.svc-block { display:grid; grid-template-columns:80px 1fr; gap:30px; padding:54px 0; border-top:1px solid var(--line); }
.svc-block:last-child { border-bottom:1px solid var(--line); }
.svc-num { font-family:'Fraunces',serif; font-style:italic; font-size:30px; color:var(--gold); }
.svc-block h2 { font-family:'Fraunces',serif; font-weight:500; font-size:clamp(26px,3.4vw,40px); letter-spacing:-0.025em; margin-bottom:14px; }
.svc-block p { color:var(--body); max-width:680px; margin-bottom:14px; }
.svc-list { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:10px 28px; margin:20px 0 22px; max-width:680px; }
.svc-list li { position:relative; padding-left:22px; color:var(--ink); font-size:15.5px; }
.svc-list li::before { content:"✦"; position:absolute; left:0; color:var(--gold); font-size:12px; top:3px; }
.chips { display:flex; flex-wrap:wrap; gap:7px; }
.chip { font-size:11.5px; letter-spacing:.03em; color:var(--gold-dk); padding:5px 12px; border-radius:100px; box-shadow:inset 0 0 0 1px var(--line); }

/* process steps */
.steps { border-top:1px solid var(--line); margin-top:10px; }
.step { display:grid; grid-template-columns:130px 1fr; gap:26px; padding:38px 0; border-bottom:1px solid var(--line); align-items:baseline; }
.step .d { font-family:'Fraunces',serif; font-style:italic; font-size:19px; color:var(--gold); }
.step h3 { font-family:'Fraunces',serif; font-weight:500; font-size:24px; letter-spacing:-0.01em; margin-bottom:8px; }
.step p { color:var(--body); max-width:560px; }

/* faq */
.faq { max-width:860px; }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item:first-child { border-top:1px solid var(--line); }
.faq-q { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:26px 0; width:100%; text-align:left; }
.faq-qt { font-family:'Fraunces',serif; font-weight:500; font-size:clamp(19px,2.4vw,26px); letter-spacing:-0.01em; }
.faq-item.open .faq-qt { color:var(--gold); }
.faq-sign { position:relative; width:20px; height:20px; flex-shrink:0; }
.faq-sign::before, .faq-sign::after { content:""; position:absolute; background:var(--ink); transition:transform .4s var(--ease); }
.faq-sign::before { top:50%; left:0; right:0; height:1.5px; transform:translateY(-50%); }
.faq-sign::after { left:50%; top:0; bottom:0; width:1.5px; transform:translateX(-50%); }
.faq-item.open .faq-sign::after { transform:translateX(-50%) scaleY(0); }
.faq-item.open .faq-sign::before { background:var(--gold); }
.faq-a { max-height:0; overflow:hidden; transition:max-height .5s var(--ease); }
.faq-item.open .faq-a { max-height:420px; }
.faq-a-in { padding:0 0 28px; font-size:16px; color:var(--body); line-height:1.7; }

/* prose (legal pages) */
.prose { max-width:780px; }
.prose h2 { font-family:'Fraunces',serif; font-weight:500; font-size:26px; letter-spacing:-0.02em; margin:42px 0 14px; }
.prose h3 { font-size:18px; font-weight:700; margin:26px 0 8px; }
.prose p, .prose li { color:var(--body); margin-bottom:14px; }
.prose ul { padding-left:22px; margin-bottom:14px; }
.prose li { margin-bottom:8px; }
.prose a { color:var(--gold-dk); }
.prose a:hover { text-decoration:underline; }
.prose strong { color:var(--ink); }
.prose .updated { font-size:14px; color:var(--muted); }
.prose .note { background:var(--paper-2); border:1px solid var(--line); border-radius:12px; padding:16px 18px; font-size:14.5px; color:var(--body); margin:24px 0; }

/* split CTA band */
.cta-band { background:var(--ink); color:#fff; text-align:center; padding:96px 0; }
.cta-band h2 { font-family:'Fraunces',serif; font-weight:400; font-size:clamp(30px,4.4vw,52px); letter-spacing:-0.03em; line-height:1.05; margin-bottom:26px; }
.cta-band h2 .ital { color:var(--gold-lt); }

/* footer */
#footer { background:var(--paper-2); padding:64px 0 32px; border-top:1px solid var(--line); }
.foot-top { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; padding-bottom:46px; border-bottom:1px solid var(--line); }
.foot-logo { height:52px; width:auto; margin-bottom:16px; }
.foot-tag { font-size:14.5px; color:var(--body); line-height:1.55; max-width:300px; }
.foot-ct { font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); margin-bottom:16px; }
.foot-links { list-style:none; display:flex; flex-direction:column; gap:11px; }
.foot-links a { font-size:14.5px; color:var(--body); }
.foot-links a:hover { color:var(--gold-dk); }
.foot-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:26px; font-size:13px; color:var(--muted); flex-wrap:wrap; gap:8px; }

@media (max-width:980px){ .foot-top{ grid-template-columns:1fr 1fr; gap:32px; } .foot-top>div:first-child{ grid-column:1/-1; } .svc-list{ grid-template-columns:1fr; } }
@media (max-width:820px){
  .nav-links{ display:none; } .nav-right .btn-fill{ display:none; } .burger{ display:flex; } .m-menu{ display:block; }
  .pad{ padding:72px 0; } .svc-block{ grid-template-columns:1fr; gap:14px; } .step{ grid-template-columns:1fr; gap:6px; }
}
@media (max-width:520px){ .wrap{ padding:0 22px; } .foot-top{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } *{ transition-duration:.001ms !important; } }
