/* Adam C. Booser, MD. Own stylesheet, loaded last. Prefix ab-.
   Palette is deliberately not the house cream and navy: near black with a clinical teal. */
:root{
  --ab-ink:#0C1214;         /* page base */
  --ab-panel:#131C1F;       /* raised panel */
  --ab-line:#24343A;
  --ab-bone:#ECE7DD;        /* body text on dark: 15.8:1 on --ab-ink */
  --ab-dim:#AFBDC0;         /* secondary text on dark: 8.6:1 */
  --ab-teal:#6FD3C3;        /* accent on dark: 10.3:1 */
  --ab-teal-ink:#0B5E55;    /* accent on light: 6.1:1 on --ab-paper */
  --ab-amber:#E2B168;       /* figures on dark: 9.7:1 */
  --ab-paper:#F1EDE5;       /* light sections */
  --ab-paper-ink:#141C1E;   /* text on light: 15.2:1 */
  --ab-paper-dim:#44565A;   /* secondary on light: 7.3:1 */
  --ab-disp:'Spectral',Georgia,serif;
  --ab-text:'Karla',system-ui,sans-serif;
}
html{scroll-behavior:smooth}
body{background:var(--ab-ink);color:var(--ab-bone);font-family:var(--ab-text);font-size:17px;line-height:1.65;margin:0;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--ab-disp);font-weight:400;letter-spacing:-.01em;margin:0}
p{margin:0 0 1rem}
a{color:inherit}
.ab-wrap{width:min(1180px,92vw);margin:0 auto}
.ab-eyebrow{font:500 12px/1 var(--ab-text);letter-spacing:.18em;text-transform:uppercase;color:var(--ab-teal);margin:0 0 14px}
.ab-head{max-width:760px;margin:0 auto 54px;text-align:center}
.ab-head-left{text-align:left;margin-left:0}
.ab-head h2,.ab-split h2,.ab-contact h2{font-size:clamp(28px,3.6vw,46px);line-height:1.12;margin-bottom:16px}
.ab-lede{color:var(--ab-dim);font-size:18px}

/* bar */
.ab-bar{position:sticky;top:0;z-index:40;background:rgba(12,18,20,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--ab-line)}
.ab-bar-in{width:min(1180px,92vw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:66px}
.ab-mark{font-family:var(--ab-disp);font-size:19px;text-decoration:none;color:var(--ab-bone)}
.ab-mark span{color:var(--ab-dim)}
.ab-nav{display:flex;gap:26px;align-items:center}
.ab-nav a{font-size:14px;text-decoration:none;color:var(--ab-dim)}
.ab-nav a:hover{color:var(--ab-bone)}
.ab-nav .ab-cta{border:1px solid var(--ab-teal);color:var(--ab-teal);padding:7px 16px;border-radius:2px}
.ab-burger{display:none;background:none;border:0;padding:8px;cursor:pointer}
.ab-burger span{display:block;width:22px;height:2px;background:var(--ab-bone);margin:4px 0}
.ab-drawer{display:none;flex-direction:column;padding:10px 4vw 22px;border-top:1px solid var(--ab-line)}
.ab-drawer a{padding:12px 0;text-decoration:none;color:var(--ab-bone);border-bottom:1px solid var(--ab-line)}

/* hero: full bleed picture, copy low left. Not the house split. */
.ab-hero{position:relative;min-height:clamp(560px,86vh,860px);display:flex;align-items:flex-end;overflow:hidden}
.ab-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.ab-hero-veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,12,14,.94) 0%,rgba(8,12,14,.86) 34%,rgba(8,12,14,.35) 68%,rgba(8,12,14,.5) 100%)}
.ab-hero-copy{position:relative;width:min(1180px,92vw);margin:0 auto;padding:0 0 clamp(48px,7vh,96px)}
.ab-kicker{font:500 12px/1.6 var(--ab-text);letter-spacing:.18em;text-transform:uppercase;color:var(--ab-teal);margin-bottom:18px}
.ab-hero h1{font-size:clamp(40px,6.4vw,84px);line-height:1.02;max-width:12ch}
.ab-md{color:var(--ab-dim);font-size:.42em;vertical-align:middle;letter-spacing:.02em}
.ab-hero-line{max-width:46ch;color:var(--ab-bone);font-size:clamp(17px,1.35vw,20px);margin-top:20px}
.ab-btn{display:inline-block;margin-top:14px;border:1px solid var(--ab-teal);color:var(--ab-teal);padding:12px 24px;border-radius:2px;text-decoration:none;font-size:14px;letter-spacing:.04em}
.ab-btn:hover{background:var(--ab-teal);color:var(--ab-ink)}

/* figures */
.ab-figures{background:var(--ab-panel);padding:56px 0;border-block:1px solid var(--ab-line)}
.ab-fig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.ab-fig-grid b{display:block;font-family:var(--ab-disp);font-size:clamp(34px,4vw,54px);color:var(--ab-amber);line-height:1}
.ab-fig-grid span{display:block;margin-top:10px;color:var(--ab-dim);font-size:15px;max-width:34ch}

/* practice */
.ab-practice{padding:clamp(64px,9vw,120px) 0}
.ab-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-bottom:64px}
.ab-cards article{border:1px solid var(--ab-line);padding:26px 22px;background:var(--ab-panel)}
.ab-cards h3{font-size:20px;margin-bottom:10px;color:var(--ab-bone)}
.ab-cards p{color:var(--ab-dim);font-size:15px;margin:0}
.ab-split{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,4vw,64px);align-items:center}
.ab-split figure{margin:0}
.ab-split img{width:100%;border:1px solid var(--ab-line)}
.ab-split h3{font-size:23px;margin:0 0 8px}
.ab-split div>h3+p{color:var(--ab-dim);margin-bottom:26px}
.ab-split-flip figure{order:2}

/* quote */
.ab-quote{background:var(--ab-paper);color:var(--ab-paper-ink);padding:clamp(56px,8vw,104px) 0}
.ab-quote blockquote{margin:0;max-width:860px}
.ab-quote p{font-family:var(--ab-disp);font-size:clamp(22px,2.9vw,36px);line-height:1.34;font-style:italic;margin-bottom:18px}
.ab-quote cite{font-style:normal;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--ab-teal-ink)}

/* training */
.ab-training{padding:clamp(64px,9vw,120px) 0}
.ab-train-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,80px);align-items:start}
.ab-time{list-style:none;margin:0;padding:0;border-top:1px solid var(--ab-line)}
.ab-time li{display:grid;grid-template-columns:150px 1fr;gap:26px;padding:22px 0;border-bottom:1px solid var(--ab-line)}
.ab-yr{color:var(--ab-teal);font-size:13px;letter-spacing:.12em;text-transform:uppercase;padding-top:4px}
.ab-time h4{font-size:21px;margin-bottom:6px}
.ab-time p{color:var(--ab-dim);font-size:15px;margin:0}

/* company */
.ab-company{background:var(--ab-panel);padding:clamp(64px,9vw,120px) 0;border-block:1px solid var(--ab-line)}
.ab-company p{color:var(--ab-dim)}
.ab-inline-quote{margin:26px 0 0;padding-left:20px;border-left:2px solid var(--ab-teal)}
.ab-inline-quote p{font-family:var(--ab-disp);font-style:italic;font-size:19px;color:var(--ab-bone);margin:0}

/* gallery */
.ab-gallery{padding:clamp(64px,9vw,120px) 0}
.ab-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ab-grid figure{margin:0}
.ab-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--ab-line)}
.ab-disclosure{margin:34px auto 0;max-width:70ch;text-align:center;color:var(--ab-dim);font-size:14px}

/* contact */
.ab-contact{background:var(--ab-paper);color:var(--ab-paper-ink);padding:clamp(64px,9vw,120px) 0}
.ab-contact .ab-eyebrow{color:var(--ab-teal-ink)}
.ab-contact .ab-lede{color:var(--ab-paper-dim)}
.ab-contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,72px);align-items:center}
.ab-pending{color:var(--ab-paper-ink);font-weight:500}
.ab-details{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid rgba(20,28,30,.18)}
.ab-details li{padding:14px 0;border-bottom:1px solid rgba(20,28,30,.18);font-size:15px}
.ab-details span{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ab-teal-ink);margin-bottom:3px}
.ab-portrait img{width:100%;filter:grayscale(.15)}

/* footer */
.ab-foot{padding:44px 0;border-top:1px solid var(--ab-line);color:var(--ab-dim);font-size:14px}
.ab-foot p{margin:0 0 6px}
.ab-small{font-size:13px;color:#8FA0A4}

@media (max-width:991px){
  .ab-nav{display:none}
  .ab-burger{display:block}
  .ab-drawer[hidden]{display:none}
  .ab-drawer{display:flex}
  .ab-fig-grid{grid-template-columns:1fr;gap:26px}
  .ab-cards{grid-template-columns:repeat(2,1fr)}
  .ab-split,.ab-train-grid,.ab-contact-grid{grid-template-columns:1fr}
  .ab-split-flip figure{order:0}
  .ab-grid{grid-template-columns:repeat(2,1fr)}
  .ab-hero-veil{background:linear-gradient(180deg,rgba(8,12,14,.55) 0%,rgba(8,12,14,.86) 58%,rgba(8,12,14,.96) 100%)}
}
@media (max-width:575px){
  .ab-cards{grid-template-columns:1fr}
  .ab-time li{grid-template-columns:1fr;gap:6px}
}
