/* Mary K. Shields, DMD — built on the MKS design system tokens */

:root{
  color-scheme: light;

  --surface-page:#faf6f6;
  --surface-raised:#ffffff;
  --surface-sunken:#f2e9ea;
  --surface-ink:#1e1419;

  --ink:#1e1419;
  --ink-muted:#574a50;
  --ink-subtle:#77686f;
  --ink-on-dark:#f8f1f3;

  --plum:#8f2f5f;
  --plum-strong:#6e1f48;
  --plum-tint:#f7e4ec;
  --plum-on-dark:#ef8bb5;
  --on-plum:#fff7fa;

  --clay:#a3513c;
  --clay-tint:#f7e9e2;
  --on-clay:#fffaf6;

  --iris:#4b4e8f;
  --iris-tint:#e9e9f6;
  --on-iris:#f9f9ff;

  --hairline:#e6dcdf;
  --hairline-strong:#8e8087;
  --focus-ring:#8f2f5f;

  --success:#17635c;
  --danger:#b3302b;
  --warning:#8f5a15;

  /* discipline accent — remapped per page */
  --accent:var(--plum);
  --accent-strong:var(--plum-strong);
  --accent-tint:var(--plum-tint);
  --on-accent:var(--on-plum);

  --display:Fraunces,Georgia,"Times New Roman",serif;
  --text:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;
  --data:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --space-1:4px;  --space-2:8px;  --space-3:12px; --space-4:16px; --space-5:24px;
  --space-6:32px; --space-7:48px; --space-8:64px; --space-9:96px; --space-10:128px;

  --radius-none:0; --radius-sm:2px; --radius-md:4px; --radius-lg:8px; --radius-pill:999px;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme: dark;
    --surface-page:#161114; --surface-raised:#211a1e; --surface-sunken:#0e0a0c; --surface-ink:#2a2126;
    --ink:#f8f1f3; --ink-muted:#bbaab1; --ink-subtle:#9c8d94; --ink-on-dark:#f8f1f3;
    --plum:#f08cb6; --plum-strong:#f7abc9; --plum-tint:#33192a; --plum-on-dark:#f7abc9; --on-plum:#2e0a1c;
    --clay:#e2957a; --clay-tint:#2e1d16; --on-clay:#2a1109;
    --iris:#a3a6e8; --iris-tint:#1c1d33; --on-iris:#12132b;
    --hairline:#362c31; --hairline-strong:#8a7b82; --focus-ring:#f08cb6;
    --success:#6ec9b6; --danger:#f0938c; --warning:#e0a64a;
  }
}
:root[data-theme="dark"]{
  color-scheme: dark;
  --surface-page:#161114; --surface-raised:#211a1e; --surface-sunken:#0e0a0c; --surface-ink:#2a2126;
  --ink:#f8f1f3; --ink-muted:#bbaab1; --ink-subtle:#9c8d94; --ink-on-dark:#f8f1f3;
  --plum:#f08cb6; --plum-strong:#f7abc9; --plum-tint:#33192a; --plum-on-dark:#f7abc9; --on-plum:#2e0a1c;
  --clay:#e2957a; --clay-tint:#2e1d16; --on-clay:#2a1109;
  --iris:#a3a6e8; --iris-tint:#1c1d33; --on-iris:#12132b;
  --hairline:#362c31; --hairline-strong:#8a7b82; --focus-ring:#f08cb6;
  --success:#6ec9b6; --danger:#f0938c; --warning:#e0a64a;
}

/* discipline scopes — one per page */
.disc-iris{ --accent:var(--iris); --accent-strong:var(--iris); --accent-tint:var(--iris-tint); --on-accent:var(--on-iris); }
.disc-clay{ --accent:var(--clay); --accent-strong:var(--clay); --accent-tint:var(--clay-tint); --on-accent:var(--on-clay); }

*{box-sizing:border-box}
body{
  margin:0;
  background:var(--surface-page);
  color:var(--ink);
  font-family:var(--text);
  font-size:16px;
  line-height:26px;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1060px;margin:0 auto;padding-inline:var(--space-5)}

/* ---------- type styles ---------- */
.display-xl{font-family:var(--display);font-size:clamp(40px,7vw,64px);line-height:1.04;font-weight:500;letter-spacing:-.02em;margin:0;text-wrap:balance;max-width:18ch}
.display-l{font-family:var(--display);font-size:clamp(32px,5vw,44px);line-height:1.05;font-weight:500;letter-spacing:-.015em;margin:0;text-wrap:balance}
.display-m{font-family:var(--display);font-size:clamp(26px,3.6vw,32px);line-height:1.13;font-weight:500;letter-spacing:-.01em;margin:0;text-wrap:balance}
.heading-l{font-family:var(--display);font-size:24px;line-height:30px;font-weight:600;margin:0}
.heading-m{font-family:var(--display);font-size:20px;line-height:26px;font-weight:600;margin:0}
.lede{font-size:20px;line-height:31px;color:var(--ink-muted);max-width:60ch;margin:0}
.body-l{font-size:18px;line-height:29px;max-width:68ch}
p{font-size:16px;line-height:26px;max-width:68ch;margin:0 0 var(--space-4)}
.body-s{font-size:14px;line-height:22px}
.caption{font-size:13px;line-height:18px;color:var(--ink-subtle)}
.label{font-family:var(--text);font-size:13px;line-height:16px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.label-s{font-family:var(--text);font-size:11px;line-height:14px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.data{font-family:var(--data);font-size:13px;line-height:18px;font-weight:500;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.data-s{font-family:var(--data);font-size:11px;line-height:16px;font-weight:500;letter-spacing:.03em;font-variant-numeric:tabular-nums}

a{color:var(--accent)}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}

/* ---------- masthead ---------- */
.mast{border-bottom:1px solid var(--hairline)}
.mast-in{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3) var(--space-6);padding-block:var(--space-5)}
.lockup{text-decoration:none;color:var(--ink);display:block}
.lockup .name{font-family:var(--display);font-size:21px;line-height:26px;font-weight:600;letter-spacing:-.01em}
.lockup .discipline{margin-top:var(--space-1);color:var(--accent)}
.mast-nav{display:flex;gap:var(--space-5);align-items:center}
.mast-nav a{color:var(--ink-muted);text-decoration:none;font-size:15px;line-height:20px;font-weight:600;padding-bottom:2px;border-bottom:2px solid transparent;transition:color 150ms ease-out,border-color 150ms ease-out}
.mast-nav a:hover{color:var(--ink)}
.mast-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent)}

/* ---------- layout ---------- */
.hero{padding-block:var(--space-9) var(--space-8)}
section{padding-block:var(--space-9);border-top:1px solid var(--hairline)}
.eyebrow{color:var(--accent);margin:0 0 var(--space-5)}
.section-head{margin-bottom:var(--space-6)}
.stack-4>*+*{margin-top:var(--space-4)}
.stack-5>*+*{margin-top:var(--space-5)}
.stack-6>*+*{margin-top:var(--space-6)}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;font-family:var(--text);font-size:15px;line-height:20px;font-weight:600;letter-spacing:.01em;
  padding:var(--space-3) var(--space-5);border-radius:var(--radius-sm);text-decoration:none;cursor:pointer;
  background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);
  transition:background 150ms ease-out,border-color 150ms ease-out;
}
.btn:hover{background:var(--accent-strong);border-color:var(--accent-strong)}
.btn.secondary{background:transparent;color:var(--ink);border-color:var(--hairline-strong)}
.btn.secondary:hover{background:transparent;border-color:var(--accent);color:var(--accent)}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-4);align-items:center;margin-top:var(--space-6)}

/* ---------- badges ---------- */
.badge{display:inline-block;border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);background:var(--accent-tint);color:var(--accent)}
.chip{display:inline-block;border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);background:var(--accent-tint);color:var(--accent);font-family:var(--data)}

/* ---------- doors (home) ---------- */
.doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-5)}
.door{
  background:var(--surface-raised);border:1px solid var(--hairline);border-radius:var(--radius-md);
  padding:var(--space-6) var(--space-5) var(--space-5);text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;gap:var(--space-4);box-shadow:none;
  border-top:3px solid var(--door-accent,var(--accent));
  transition:border-color 150ms ease-out;
}
.door:hover{border-color:var(--hairline-strong);border-top-color:var(--door-accent,var(--accent))}
.door .door-k{color:var(--door-accent,var(--accent))}
.door p{margin:0;color:var(--ink-muted);font-size:16px}
.door .go{margin-top:auto;padding-top:var(--space-3);color:var(--door-accent,var(--accent));font-weight:600;font-size:15px}
.door-clay{--door-accent:var(--clay)}
.door-iris{--door-accent:var(--iris)}

/* ---------- credential bar ---------- */
.credbar{background:var(--surface-sunken);border-block:1px solid var(--hairline)}
.credbar-in{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-3) var(--space-7);padding-block:var(--space-5)}
.credbar-k{color:var(--ink-subtle);margin:0;flex:0 0 auto}
.credbar ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-7)}
.credbar li{display:flex;align-items:baseline;gap:var(--space-3)}
.credbar .org{font-size:16px;line-height:26px;font-weight:500;color:var(--ink)}
.credbar .data-s{color:var(--accent);background:var(--accent-tint);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-2)}

/* ---------- spec strip ---------- */
.spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:1px;background:var(--hairline);border:1px solid var(--hairline);border-radius:var(--radius-md);overflow:hidden}
.spec>div{background:var(--surface-raised);padding:var(--space-4) var(--space-5)}
.spec dt{color:var(--ink-subtle);margin-bottom:var(--space-2)}
.spec dd{margin:0;font-family:var(--data);font-size:15px;line-height:20px;font-weight:500;font-variant-numeric:tabular-nums}

/* ---------- lists ---------- */
.objectives{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 var(--space-7)}
.objectives li{padding:var(--space-3) 0;border-bottom:1px solid var(--hairline);display:flex;gap:var(--space-3);align-items:flex-start}
.objectives li::before{content:"";flex:0 0 auto;width:6px;height:6px;margin-top:10px;background:var(--accent);border-radius:var(--radius-pill)}
.excludes{list-style:none;padding:0;margin:0}
.excludes li{padding:var(--space-2) 0 var(--space-2) var(--space-5);position:relative;color:var(--ink-muted);border-bottom:1px solid var(--hairline)}
.excludes li::before{content:"—";position:absolute;left:0;color:var(--ink-subtle)}

/* ---------- module grid ---------- */
.modules{display:grid;grid-template-columns:repeat(auto-fit,minmax(252px,1fr));gap:var(--space-6) var(--space-7)}
.modules article{border-top:1px solid var(--hairline-strong);padding-top:var(--space-3)}
.modules p{margin:var(--space-2) 0 0;color:var(--ink-muted);font-size:15px;line-height:24px}

/* ---------- bio ---------- */
.bio{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:var(--space-7)}
.creds{background:var(--surface-sunken);border-radius:var(--radius-md);padding:var(--space-5)}
.creds dl{margin:0}
.creds dt{color:var(--ink-subtle);margin-bottom:var(--space-1)}
.creds dd{margin:0 0 var(--space-4);font-size:14px;line-height:22px}
.creds dd:last-child{margin-bottom:0}
.creds .data{display:block}

/* ---------- table ---------- */
.tablewrap{overflow-x:auto;border:1px solid var(--hairline-strong);border-radius:var(--radius-md)}
table{border-collapse:collapse;width:100%;min-width:480px;background:var(--surface-raised)}
caption{text-align:left;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--hairline-strong);color:var(--ink-subtle);font-family:var(--text);font-size:11px;line-height:14px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
th,td{padding:var(--space-3) var(--space-5);text-align:left;border-bottom:1px solid var(--hairline)}
thead th{background:var(--surface-sunken);color:var(--ink-subtle);font-family:var(--text);font-size:11px;line-height:14px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
tbody th,tbody td{font-family:var(--data);font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}
tbody td.price{font-size:15px;color:var(--ink)}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:none}

/* ---------- dark band ---------- */
.band{background:var(--surface-ink);color:var(--ink-on-dark);border-radius:var(--radius-none)}
.band .inner{padding-block:var(--space-7)}
.band .display-m,.band .heading-l{color:var(--ink-on-dark)}
.band p{color:#d9c9d0}
.band .eyebrow{color:var(--plum-on-dark)}
.band .btn{background:var(--plum-on-dark);border-color:var(--plum-on-dark);color:#2e0a1c}
.band .btn:hover{background:var(--ink-on-dark);border-color:var(--ink-on-dark)}

/* ---------- accreditation ---------- */
.accred{background:var(--surface-sunken);border-radius:var(--radius-md);padding:var(--space-5)}
.accred p{font-size:14px;line-height:22px;color:var(--ink-muted);max-width:80ch}
.accred p:first-child{color:var(--ink);font-size:16px}
.accred p:last-child{margin-bottom:0}

/* ---------- forms ---------- */
form.inquiry{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:var(--space-4) var(--space-5);max-width:800px}
form.inquiry .full{grid-column:1/-1}
label{display:block;color:var(--ink-subtle);margin-bottom:var(--space-2);font-family:var(--text);font-size:11px;line-height:14px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
input,select,textarea{
  width:100%;font-family:var(--text);font-size:16px;line-height:26px;color:var(--ink);
  background:var(--surface-raised);border:1px solid var(--hairline-strong);border-radius:var(--radius-sm);
  padding:var(--space-2) var(--space-3);
}
textarea{min-height:104px;resize:vertical}
.formnote{font-size:13px;line-height:18px;color:var(--ink-subtle);margin-top:var(--space-4);max-width:60ch}

/* ---------- draft flags ---------- */
.tbd{font-family:var(--data);font-size:.88em;color:var(--warning);border-bottom:1px dashed var(--warning);padding-bottom:1px;white-space:nowrap}
.slot{border:1px dashed var(--hairline-strong);border-radius:var(--radius-md);padding:var(--space-7) var(--space-5);text-align:center;background:var(--surface-raised)}
.slot .slot-label{color:var(--ink-subtle);margin:0 0 var(--space-3)}
.slot p{margin:0 auto;color:var(--ink-muted);max-width:52ch;font-size:15px}
.flag{border-left:3px solid var(--warning);background:var(--surface-sunken);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-6)}
.flag p{margin:0;font-size:14px;line-height:22px;color:var(--ink-muted);max-width:76ch}
.flag .flag-t{color:var(--warning);margin-bottom:var(--space-2)}

/* ---------- footer ---------- */
footer{background:var(--surface-ink);color:var(--ink-on-dark)}
footer .inner{display:flex;flex-wrap:wrap;gap:var(--space-5) var(--space-8);justify-content:space-between;padding-block:var(--space-7)}
footer .f-name{font-family:var(--display);font-size:20px;line-height:26px;font-weight:600}
footer .f-meta{color:#bba9b1;margin-top:var(--space-2)}
footer a{color:var(--plum-on-dark)}
footer .f-contact{color:#d9c9d0;font-size:14px;line-height:22px}

@media (max-width:760px){
  .bio{grid-template-columns:1fr;gap:var(--space-6)}
  .hero{padding-block:var(--space-7) var(--space-6)}
  section{padding-block:var(--space-7)}
  .mast-nav{gap:var(--space-4)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
