:root{
  --cream: #F7F1E8;
  --cream-dim: #EFE6D6;
  --plum: #451B3E;
  --wine: #8C2F4B;
  --sage: #6E8B62;
  --gold: #C6A15B;
  --ink: #2A1F26;
  --ink-soft: #5B4B54;
  --card: #FFFFFF;
  --border: rgba(42,31,38,0.12);
  --font-display: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --cream:#241820; --cream-dim:#2C1E27; --plum:#F3E6EE; --wine:#E2809C;
    --sage:#9CBB8E; --gold:#D8B876; --ink:#F3EAE0; --ink-soft:#C9B9C2;
    --card:#2C1E27; --border: rgba(243,234,224,0.14);
  }
}
:root[data-theme="dark"]{
  --cream:#241820; --cream-dim:#2C1E27; --plum:#F3E6EE; --wine:#E2809C;
  --sage:#9CBB8E; --gold:#D8B876; --ink:#F3EAE0; --ink-soft:#C9B9C2;
  --card:#2C1E27; --border: rgba(243,234,224,0.14);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--cream); color:var(--ink); font-family:var(--font-body); line-height:1.55; -webkit-font-smoothing:antialiased; }
img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3{ font-family:var(--font-display); color:var(--plum); line-height:1.1; margin:0 0 0.5em; font-weight:600; }
.wrap{ max-width:1160px; margin:0 auto; padding:0 28px; }
section{ padding:96px 0; }
.eyebrow{ font-family:var(--font-body); font-size:0.95rem; color:var(--wine); margin:0 0 14px; font-weight:600; }
p{ margin:0 0 1em; color:var(--ink-soft); max-width:62ch; }
.section-intro{ max-width:60ch; margin-bottom:48px; }

/* header / nav */
.site-header{ position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--cream) 88%, transparent); backdrop-filter:blur(8px); border-bottom:1px solid var(--border); }
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; padding-top:18px; padding-bottom:18px; gap:16px; }
.logo{ font-family:var(--font-display); font-size:1.4rem; font-weight:700; color:var(--plum); text-decoration:none; display:flex; align-items:center; gap:10px; }
.logo svg{ width:28px; height:28px; flex-shrink:0; }
nav.primary-nav{ display:flex; gap:28px; }
nav.primary-nav a{ text-decoration:none; font-size:0.95rem; color:var(--ink-soft); font-weight:500; padding-bottom:4px; border-bottom:2px solid transparent; }
nav.primary-nav a:hover{ color:var(--wine); }
nav.primary-nav a.active{ color:var(--plum); border-bottom-color:var(--wine); }
.menu-toggle{ display:none; background:none; border:none; cursor:pointer; padding:6px; }
.menu-toggle svg{ width:26px; height:26px; color:var(--plum); }
.mobile-nav{ display:none; flex-direction:column; border-top:1px solid var(--border); }
.mobile-nav.open{ display:flex; }
.mobile-nav a{ text-decoration:none; padding:14px 28px; color:var(--ink-soft); border-bottom:1px solid var(--border); font-size:0.95rem; }
.mobile-nav a.active{ color:var(--wine); font-weight:600; }

.btn{ display:inline-flex; align-items:center; justify-content:center; padding:12px 24px; border-radius:999px; text-decoration:none; font-weight:600; font-size:0.95rem; border:1px solid transparent; cursor:pointer; font-family:var(--font-body); }
.btn-primary{ background:var(--wine); color:#FFF8F5; }
.btn-primary:hover{ background:var(--plum); }
.btn-ghost{ background:transparent; color:var(--plum); border-color:var(--border); }
.btn-ghost:hover{ border-color:var(--wine); color:var(--wine); }

/* home hero */
.hero{ padding-top:72px; padding-bottom:60px; }
.hero-inner{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center; }
.hero h1{ font-size:clamp(2.3rem, 4.2vw, 3.4rem); max-width:14ch; }
.hero .lead{ font-size:1.1rem; max-width:46ch; }
.hero-actions{ display:flex; gap:16px; margin-top:30px; flex-wrap:wrap; }
.hero-art svg{ width:100%; height:auto; }
.hero-art .draw-path{ stroke-dasharray:900; stroke-dashoffset:900; animation:draw 2.4s ease forwards 0.3s; }
@media (prefers-reduced-motion: reduce){ .hero-art .draw-path{ animation:none; stroke-dashoffset:0; } }
@keyframes draw{ to{ stroke-dashoffset:0; } }

/* interior page header (about / doctors / services / contact) */
.page-hero{ background:var(--plum); padding:80px 0 64px; }
.page-hero .eyebrow{ color:var(--gold); }
.page-hero h1{ color:var(--cream); max-width:22ch; }
.page-hero p{ color:color-mix(in srgb, var(--cream) 78%, transparent); font-size:1.05rem; max-width:58ch; }

.mission{ background:var(--plum); padding:72px 0; }
.mission .wrap{ max-width:780px; text-align:center; }
.mission p{ color:var(--cream); font-family:var(--font-display); font-size:clamp(1.3rem, 2.4vw, 1.7rem); font-weight:500; max-width:none; line-height:1.4; }
.mission .attribution{ color:var(--gold); font-family:var(--font-body); font-size:0.95rem; font-weight:600; }

/* doctors */
.doctor-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.doctor-card{ background:var(--card); border:1px solid var(--border); border-radius:18px; padding:36px; }
.doctor-card--gynec{ border-top:3px solid var(--wine); }
.doctor-card--neo{ border-top:3px solid var(--sage); }
.doctor-mark{ width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; margin-bottom:20px; }
.doctor-card--gynec .doctor-mark{ background:color-mix(in srgb, var(--wine) 14%, transparent); color:var(--wine); }
.doctor-card--neo .doctor-mark{ background:color-mix(in srgb, var(--sage) 18%, transparent); color:var(--sage); }
.doctor-mark svg{ width:28px; height:28px; }
.doctor-role{ font-weight:600; color:var(--ink); margin-bottom:14px; font-size:0.95rem; }
.doctor-focus{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding:0; list-style:none; }
.doctor-focus li{ font-size:0.82rem; padding:5px 12px; border-radius:999px; border:1px solid var(--border); color:var(--ink-soft); }
.doctor-card--full{ padding:44px; }
.doctor-card--full + .doctor-card--full{ margin-top:32px; }

/* services */
.services{ background:var(--cream-dim); }
.service-columns{ display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.service-col h3{ font-size:1.3rem; margin-bottom:22px; }
.service-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:18px; }
.service-list li{ display:flex; gap:14px; align-items:flex-start; padding-bottom:18px; border-bottom:1px solid var(--border); }
.service-list li:last-child{ border-bottom:none; padding-bottom:0; }
.service-icon{ width:10px; height:10px; flex-shrink:0; margin-top:8px; border-radius:50%; background:var(--wine); }
.service-col:last-child .service-icon{ background:var(--sage); }
.service-list strong{ color:var(--ink); display:block; font-size:1rem; }
.service-list span{ color:var(--ink-soft); font-size:0.92rem; }

/* testimonial */
.testimonial .wrap{ max-width:760px; }
blockquote{ margin:0; font-family:var(--font-display); font-size:clamp(1.4rem,2.6vw,1.9rem); color:var(--plum); font-weight:500; line-height:1.45; }
.testimonial cite{ display:block; margin-top:22px; font-style:normal; color:var(--ink-soft); font-size:0.95rem; }

/* about page */
.about-block{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.about-block + .about-block{ margin-top:64px; }

/* visit / contact */
.visit{ background:var(--plum); color:var(--cream); }
.visit h2{ color:var(--cream); }
.visit p, .visit address{ color:color-mix(in srgb, var(--cream) 78%, transparent); }
.visit-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
address{ font-style:normal; margin:18px 0 28px; line-height:1.7; }
.hours-row{ display:flex; justify-content:space-between; max-width:320px; padding:8px 0; border-bottom:1px solid rgba(247,241,232,0.16); font-size:0.95rem; }
.visit-form{ background:var(--card); border-radius:18px; padding:32px; color:var(--ink); }
.visit-form label{ display:block; font-size:0.85rem; font-weight:600; margin-bottom:6px; color:var(--ink); }
.visit-form input, .visit-form textarea{ width:100%; padding:12px 14px; margin-bottom:18px; border-radius:10px; border:1px solid var(--border); font-family:var(--font-body); font-size:0.95rem; background:var(--cream); color:var(--ink); }
.visit-form textarea{ min-height:90px; resize:vertical; }
.visit-form button{ width:100%; border:none; }
.form-note{ font-size:0.85rem; margin-top:14px; max-width:none; }
.form-status{ font-size:0.9rem; margin-top:14px; padding:12px 14px; border-radius:10px; }
.form-status.success{ background:color-mix(in srgb, var(--sage) 20%, transparent); color:var(--ink); }
.form-status.error{ background:color-mix(in srgb, var(--wine) 16%, transparent); color:var(--ink); }

/* footer */
footer{ padding:56px 0 40px; }
.footer-grid{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; border-top:1px solid var(--border); padding-top:36px; }
.footer-links{ display:flex; gap:24px; list-style:none; padding:0; margin:0; flex-wrap:wrap; }
.footer-links a{ text-decoration:none; color:var(--ink-soft); font-size:0.9rem; }
.footer-note{ font-size:0.85rem; color:var(--ink-soft); margin-top:24px; }

@media (max-width:900px){
  .hero-inner{ grid-template-columns:1fr; }
  .hero-art{ order:-1; max-width:340px; margin:0 auto; }
  .doctor-grid, .service-columns, .visit-grid, .about-block{ grid-template-columns:1fr; }
  nav.primary-nav{ display:none; }
  .menu-toggle{ display:block; }
  section{ padding:64px 0; }
}
