/* ============================ base ============================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink-body);
  font-family:var(--font-body);
  font-size:var(--t-body);
  line-height:var(--lh-body);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
strong{font-weight:600;color:var(--ink)}

:focus-visible{
  outline:var(--edge) solid var(--accent);
  outline-offset:var(--s-1);
  border-radius:var(--s-1);
}
.btn:focus-visible,.menu>summary:focus-visible,.skip:focus-visible,.field input:focus-visible,.field textarea:focus-visible{border-radius:var(--r-btn)}
.on-deep :focus-visible,.util :focus-visible,.foot :focus-visible,.revs :focus-visible{outline-color:var(--on-deep)}

.skip{
  position:absolute;left:var(--gutter);top:calc(var(--s-4) * -6);
  z-index:var(--z-skip);background:var(--deep);color:var(--on-deep);
  padding:var(--s-3) var(--s-6);border-radius:var(--r-btn);
  font-size:var(--t-small);text-decoration:none;
  transition:top var(--dur) var(--ease);
}
.skip:focus{top:var(--s-4)}
[id]{scroll-margin-top:calc(var(--head-h) + var(--s-5))}

/* ============================ layout ============================ */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.wrap--read{max-width:calc(var(--wrap-read) + var(--gutter) * 2)}
.band{padding-block:var(--sp-section)}
.band--tint{background:var(--tint);--rule:var(--rule-on-tint)}
.band--deep{background:var(--deep);color:var(--on-deep-body);--rule:var(--rule-deep)}
.band--deep h1,.band--deep h2,.band--deep h3{color:var(--on-deep)}
.stack{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5)}
.stack--tight{gap:var(--s-4)}
.lead-in{margin-bottom:var(--sp-compact)}

/* ============================ type ============================ */
.eyebrow{
  font-size:var(--t-micro);letter-spacing:.18em;text-transform:uppercase;
  font-weight:600;color:var(--ink-mute);line-height:1.5;
}
.eyebrow--deep,.band--deep .eyebrow{color:var(--on-deep-mute)}
.eyebrow--accent{color:var(--accent)}
h1,h2,h3,h4,.t-display{font-family:var(--font-head);color:var(--ink);font-weight:var(--w-head);line-height:1.1;text-wrap:balance}
h1,.t-display{font-size:var(--t-display);line-height:1.04;letter-spacing:var(--track-h1);max-width:14ch}
h2{font-size:var(--t-h2);letter-spacing:var(--track-h2);max-width:24ch}
h3{font-size:var(--t-h3);line-height:1.25;letter-spacing:var(--track-h3)}
h4{font-size:var(--t-h4);line-height:1.3;letter-spacing:var(--track-h3)}
p{text-wrap:pretty}
.lede{font-size:var(--t-lede);line-height:1.55;max-width:54ch}
.mute{color:var(--ink-mute)}
.small{font-size:var(--t-small);line-height:1.5}
.break-any{overflow-wrap:anywhere}
.link{
  color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule);
  text-underline-offset:.22em;text-decoration-thickness:var(--hair);
  transition:color var(--dur) var(--ease),text-decoration-color var(--dur) var(--ease);
}
.link:hover{color:var(--accent);text-decoration-color:var(--accent)}
.go{
  display:inline-flex;align-items:center;gap:var(--s-2);min-height:var(--tap);
  font-size:var(--t-small);font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--accent);text-decoration:none;
}
.go svg{will-change:transform;backface-visibility:hidden;transition:transform var(--dur) var(--ease)}
.go:hover svg,a:hover .go svg{transform:translate3d(4px,0,0)}
.todo{
  display:inline-flex;align-items:center;gap:var(--s-2);width:fit-content;
  border:var(--hair) dashed currentColor;border-radius:999px;
  padding:6px var(--s-4);
  font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  color:var(--ink-mute);
}
.ph{
  display:grid;place-items:center;text-align:center;padding:var(--s-5);
  background:repeating-linear-gradient(135deg, var(--tint-2) 0 12px, var(--tint) 12px 24px);
  color:var(--ink-mute);font-size:var(--t-small);font-weight:500;line-height:1.4;
  border-radius:var(--r-photo);
}

/* ============================ buttons ============================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);
  min-height:var(--btn-h);padding:var(--s-3) var(--s-6);
  border-radius:var(--r-btn);border:0;
  font-family:inherit;font-size:var(--t-body);font-weight:500;line-height:1.2;
  text-decoration:none;white-space:nowrap;cursor:pointer;
  will-change:transform;backface-visibility:hidden;
  transition:background-color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.btn--primary{background:var(--deep);color:var(--on-deep)}
.btn--primary:hover{background:var(--deep-2)}
.btn--soft{background:var(--tint-2);color:var(--ink)}
.btn--soft:hover{background:var(--soft-hover)}
.band--tint .btn--soft{background:var(--soft-on-tint)}
.band--tint .btn--soft:hover{background:var(--soft-on-tint-hover)}
.btn--onDeep{background:var(--panel);color:var(--deep)}
.btn--onDeep:hover{background:var(--ondeep-hover)}
.btn--sm{min-height:calc(var(--btn-h) - 8px);padding:var(--s-2) var(--s-5);font-size:1rem}
.btn:hover{transform:translate3d(0,-1px,0)}
.btn:active{transform:translate3d(0,0,0)}

/* ============================ utility bar ============================ */
.util{background:var(--deep);color:var(--on-deep-body);font-size:var(--t-small)}
.util__row{
  width:100%;padding-inline:var(--gutter);min-height:40px;
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);
}
.util__news{
  display:inline-flex;align-items:center;gap:var(--s-3);min-width:0;
  color:var(--on-deep);text-decoration:none;
}
.util__news b{
  flex:none;font-size:var(--t-micro);letter-spacing:.16em;text-transform:uppercase;font-weight:600;
  color:var(--accent-on-deep);
}
.util__news span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.util__news:hover span{text-decoration:underline;text-underline-offset:.22em}
.util__links{display:flex;align-items:center;gap:var(--s-5);margin-left:auto;flex:none}
.util__links a{
  display:inline-flex;align-items:center;min-height:40px;
  color:var(--on-deep-body);text-decoration:none;letter-spacing:.02em;
  transition:color var(--dur) var(--ease);
}
.util__links a:hover{color:var(--on-photo)}
.util__tel{display:none !important;gap:var(--s-2)}
.util__tel svg{color:var(--accent-on-deep)}

/* ============================ masthead ============================ */
.masthead{
  position:sticky;top:0;z-index:var(--z-head);
  background:color-mix(in srgb, var(--ground) 74%, transparent);
  border-bottom:var(--hair) solid transparent;
  transition:border-color var(--dur) var(--ease), background-color var(--dur) var(--ease);
}
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px)){
  .masthead{
    -webkit-backdrop-filter:blur(16px) saturate(1.5);
    backdrop-filter:blur(16px) saturate(1.5);
  }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .masthead{background:var(--ground)}
}
html[data-scrolled] .masthead{
  border-bottom-color:var(--rule);
  background:color-mix(in srgb, var(--ground) 86%, transparent);
}
.masthead__row{
  width:100%;padding-inline:var(--gutter);
  min-height:var(--head-h);
  display:flex;align-items:center;gap:var(--s-6);justify-content:space-between;
}
.brand{
  display:inline-flex;align-items:center;gap:var(--s-3);
  text-decoration:none;color:var(--ink);min-height:var(--tap);flex:none;
}
.brand__logo{display:block;height:64px;width:auto;max-width:none;flex:none}

.nav{display:flex;align-items:center;gap:clamp(var(--s-4), 1.8vw, var(--s-6))}
.nav>a,.drop>button{
  font-family:inherit;font-size:1rem;letter-spacing:.03em;font-weight:450;
  color:var(--ink-body);text-decoration:none;white-space:nowrap;
  background:none;border:0;padding:0;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);
  transition:color var(--dur) var(--ease);
}
.nav>a:hover,.drop>button:hover,.nav>a[aria-current="page"]{color:var(--ink)}
.drop{position:relative}
.drop__ic{color:var(--ink-mute);will-change:transform;backface-visibility:hidden;transition:transform var(--dur) var(--ease)}
.drop>button[aria-expanded="true"] .drop__ic{transform:rotate3d(0,0,1,180deg)}
.drop__panel{
  display:none;position:absolute;left:calc(var(--s-4) * -1);top:calc(100% - var(--s-2));z-index:var(--z-pop);
  min-width:296px;padding-block:var(--s-2);
  background:var(--ground);border:var(--hair) solid var(--rule);
  border-radius:var(--r-btn);
  box-shadow:var(--lift);
}
.drop__panel a{
  display:flex;align-items:center;min-height:var(--tap);
  padding:var(--s-2) var(--s-5);text-decoration:none;
  font-size:1rem;letter-spacing:.01em;font-weight:450;color:var(--ink-body);
  transition:color var(--dur) var(--ease),background-color var(--dur) var(--ease);
}
.drop__panel a + a{border-top:var(--hair) solid var(--rule)}
.drop__panel a:hover{color:var(--ink);background:var(--tint)}
.drop__panel .drop__parent{font-weight:600;color:var(--ink)}
.drop>button[aria-expanded="true"] + .drop__panel{display:block}
@media (hover:hover){
  .drop:hover .drop__panel,.drop:focus-within .drop__panel{display:block}
}

.masthead__act{display:flex;align-items:center;gap:clamp(var(--s-4), 2vw, var(--s-5));flex:none}
.act__tel{
  display:inline-flex;align-items:center;gap:var(--s-2);min-height:var(--tap);
  font-size:1rem;font-weight:500;letter-spacing:.01em;color:var(--ink);text-decoration:none;white-space:nowrap;
  transition:color var(--dur) var(--ease);
}
.act__tel svg{flex:none;color:var(--accent)}
.act__tel:hover{color:var(--accent)}

.menu{position:relative;display:none}
.menu>summary{
  list-style:none;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);
  min-height:var(--tap);min-width:var(--tap);padding:var(--s-2) var(--s-4);
  border:var(--hair) solid var(--rule);border-radius:var(--r-btn);
  font-size:1rem;font-weight:500;color:var(--ink);
}
.menu>summary::-webkit-details-marker{display:none}
.menu:not([open]) .menu__panel{display:none}
.menu__panel{
  position:absolute;right:0;top:calc(100% + var(--s-3));z-index:var(--z-pop);
  width:min(84vw, 340px);max-height:calc(100dvh - var(--head-h) - var(--s-6));overflow:auto;
  background:var(--ground);border:var(--hair) solid var(--rule);border-radius:var(--r-btn);
  padding:var(--s-3) var(--s-5);box-shadow:var(--lift);
}
.menu__panel a:not(.btn){
  display:flex;align-items:center;min-height:var(--tap);
  padding-block:var(--s-1);text-decoration:none;font-size:1rem;color:var(--ink);
}
.menu__panel>a:not(.btn),.menu__panel .sub{border-top:var(--hair) solid var(--rule)}
.menu__panel>a:first-child{border-top:0}
.sub>summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);
  min-height:var(--tap);font-size:1rem;font-weight:500;color:var(--ink);
}
.sub>summary::-webkit-details-marker{display:none}
.sub:not([open]) .sub__list{display:none}
.sub__list{padding:0 0 var(--s-2) var(--s-4)}
.sub__list a{color:var(--ink-body) !important;font-size:var(--t-sub) !important}
.sub[open] .drop__ic{transform:rotate3d(0,0,1,180deg)}
.menu__util{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-5);border-top:var(--hair) solid var(--rule);padding-top:var(--s-2)}
.menu__util a:not(.btn){font-size:var(--t-small);color:var(--ink-mute)}

/* ============================ home hero ============================ */
.hero{padding-block:calc(clamp(var(--s-7), 6vw, var(--s-9)) * var(--density)) 0}
.hero__grid{
  display:grid;grid-template-columns:minmax(0,1fr);
  gap:var(--sp-compact);align-items:center;
}
.hero__copy{display:grid;gap:var(--s-5);justify-items:start}
.hero__copy .lede{max-width:46ch}
.hero__cta{display:flex;flex-wrap:wrap;gap:var(--s-3);padding-top:var(--s-2)}
.collage{position:relative;padding:0 0 var(--s-7) clamp(var(--s-5), 4vw, var(--s-8));max-width:600px;justify-self:end;width:100%}
.collage__main{aspect-ratio:4 / 4.8;border-radius:var(--r-photo);overflow:hidden;background:var(--tint)}
.collage__main img{width:100%;height:100%;object-fit:cover;object-position:50% 16%}
.collage__over{
  position:absolute;left:0;bottom:0;width:54%;
  aspect-ratio:3 / 2;border-radius:var(--r-photo);overflow:hidden;
  background:var(--tint);box-shadow:var(--lift);
}
.collage__over img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
@media (min-width:960px){
  .hero__grid{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(var(--s-7), 5vw, var(--s-9))}
}

/* ============================ trust strip ============================ */
.facts{
  margin-top:clamp(var(--s-7), 6vw, var(--s-9));
  border-top:var(--hair) solid var(--rule);
  padding-block:var(--s-5) var(--s-6);
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3) clamp(var(--s-6), 4vw, var(--s-9));
}
.facts li{
  font-size:var(--t-small);letter-spacing:.13em;text-transform:uppercase;
  font-weight:550;color:var(--ink-mute);line-height:1.5;
}
.facts--flush{margin-top:0}

/* ============================ page header ============================ */
.page-head{padding-block:calc(clamp(var(--s-7), 6vw, var(--s-9)) * var(--density))}
.page-head__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-compact);align-items:center}
.page-head__copy{display:grid;gap:var(--s-5);justify-items:start}
.page-head__title{max-width:16ch}
.crumbs{display:flex;flex-wrap:wrap;gap:var(--s-2);font-size:1rem;color:var(--ink-mute)}
.crumbs a{color:inherit;text-decoration:none}
.crumbs a:hover{color:var(--ink)}
.crumbs li + li::before{content:"/";margin-right:var(--s-2);color:var(--rule-on-tint)}
.duo{position:relative;border-radius:var(--r-photo);overflow:hidden;background:var(--deep);aspect-ratio:4 / 3}
.duo img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06);mix-blend-mode:luminosity;opacity:.9}
.duo::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg, transparent 40%, color-mix(in srgb, var(--deep) 40%, transparent))}
@media (min-width:960px){
  .page-head__grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(var(--s-7), 5vw, var(--s-9))}
}

/* ============================ comparison ============================ */
.diff__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-compact);align-items:start}
.diff__lead{max-width:56ch}
.cmp{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5);align-items:start}
.panel{border-radius:var(--r-card);padding:var(--s-6);min-width:0}
.panel__head{display:grid;gap:var(--s-2);padding-bottom:var(--s-4)}
.panel__title{font-family:var(--font-head);font-size:1.375rem;font-weight:var(--w-head);letter-spacing:-.01em;line-height:1.2}
.panel li{
  border-top:var(--hair) solid var(--rule);
  padding-block:14px;
  display:flex;gap:var(--s-3);align-items:baseline;
  font-size:var(--t-sub);line-height:1.45;
}
.panel__ic{flex:none;width:15px;transform:translate3d(0,2px,0)}
.panel--typ{background:var(--tint-2);--rule:var(--rule-on-tint-2);color:var(--ink-mute)}
.panel--typ .panel__title{color:var(--ink-mute)}
.panel--typ .panel__ic{color:var(--mark-mute)}
.panel--here{background:var(--panel);--rule:var(--rule-on-panel);box-shadow:var(--lift)}
.panel--here .panel__title{color:var(--ink)}
.panel--here .panel__ic{color:var(--accent)}
.panel--here .eyebrow{color:var(--accent)}
.panel--here li{color:var(--ink);font-weight:550}
@media (min-width:900px){
  .cmp{--tuck:52px;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:0}
  .panel--typ{
    margin-top:var(--tuck);margin-right:-28px;
    position:relative;z-index:1;
    padding:var(--s-6) 56px var(--s-7) var(--s-6);
  }
  .panel--here{
    position:relative;z-index:2;
    padding:calc(var(--s-6) + var(--tuck)) var(--s-7) var(--s-7);
  }
}
@media (min-width:1200px){
  .diff__grid{grid-template-columns:minmax(0,.74fr) minmax(0,1.26fr);gap:var(--s-9)}
  .diff__lead{position:sticky;top:calc(var(--head-h) + var(--sp-compact))}
}

/* ============================ inclusions ============================ */
.inc__cols{
  display:grid;grid-template-columns:minmax(0,1fr);
  gap:var(--sp-compact) clamp(var(--s-8), 6vw, 120px);
}
.inc__group{min-width:0;display:grid;gap:0}
.inc__label{
  font-size:var(--t-micro);letter-spacing:.18em;text-transform:uppercase;
  font-weight:600;color:var(--accent);
  padding-bottom:var(--s-4);
}
.inc__group li{
  border-top:var(--hair) solid var(--rule);
  padding-block:var(--s-4);
  display:grid;gap:var(--s-1);align-content:start;
}
.inc__group li:last-child{border-bottom:var(--hair) solid var(--rule)}
.inc__group b{font-weight:600;color:var(--ink);font-size:var(--t-body)}
.inc__group span{color:var(--ink-mute);font-size:var(--t-sub);line-height:1.5;max-width:52ch}
.inc__outro{
  margin-top:var(--sp-compact);
  display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5);align-items:center;
}
.inc__outro p{max-width:62ch}
@media (min-width:880px){
  .inc__cols{
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto repeat(5, auto);
    row-gap:0;
  }
  .inc__group{grid-row:1 / span 6;grid-template-rows:subgrid}
  .inc__group ul{display:grid;grid-row:2 / span 5;grid-template-rows:subgrid}
  .inc__outro{grid-template-columns:minmax(0,1fr) auto;gap:var(--s-8)}
}

/* ============================ steps ============================ */
.hiw__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-compact);align-items:start}
.steps{position:relative;display:grid;gap:var(--s-7);padding-left:calc(44px + var(--s-5))}
.steps li{position:relative;display:grid;gap:var(--s-2)}
.steps li:not(:last-child)::before{
  content:"";position:absolute;width:var(--hair);background:var(--rule);
  left:calc((44px + var(--s-5)) * -1 + 21px);
  top:46px;bottom:calc(var(--s-7) * -1);
}
.steps__no{
  position:absolute;left:calc((44px + var(--s-5)) * -1);top:-2px;
  width:44px;height:44px;border-radius:50%;
  background:var(--tint-2);color:var(--ink);
  display:grid;place-items:center;
  font-size:var(--t-small);font-weight:650;font-variant-numeric:tabular-nums;
}
.band--tint .steps__no{background:var(--panel)}
.steps h3{font-size:calc(1.25rem * var(--head-k))}
.steps p{color:var(--ink-mute);font-size:var(--t-sub);line-height:1.55;max-width:44ch}
.hiw__media{border-radius:var(--r-photo);overflow:hidden;background:var(--tint-2);width:100%}
.hiw__media img{width:100%;height:100%;object-fit:cover;aspect-ratio:4 / 3.4}
@media (min-width:940px){
  .hiw__grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(var(--s-8), 6vw, var(--s-10))}
  .hiw__media{position:sticky;top:calc(var(--head-h) + var(--sp-compact))}
}

/* ============================ physicians ============================ */
.team{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-6) var(--s-5)}
.person{display:grid;gap:var(--s-3);align-content:start;text-decoration:none;color:inherit}
.person__media{border-radius:var(--r-photo);overflow:hidden;background:var(--tint);aspect-ratio:4 / 4.6}
.person__media img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;will-change:transform;backface-visibility:hidden;transition:transform .6s var(--ease)}
.person__media.ph{aspect-ratio:4 / 4.6}
.person:hover .person__media img{transform:scale3d(1.03,1.03,1)}
.person h3{margin-top:var(--s-2)}
.person__role{font-size:var(--t-sub);color:var(--ink-mute)}
.person p:not(.person__role){font-size:var(--t-sub);line-height:1.55;max-width:44ch}
@media (min-width:640px){.team{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1040px){
  .team--pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-7) clamp(var(--s-6), 4vw, var(--s-9))}
  .team--four{grid-template-columns:repeat(4,minmax(0,1fr))}
}

.phys{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-compact);align-items:start}
.phys__text{display:grid;gap:var(--s-5);max-width:60ch}
.pull{
  border-left:3px solid var(--accent);
  padding-left:var(--s-5);
  margin-block:var(--s-2);
  font-family:var(--font-head);
  font-size:calc(clamp(1.375rem, 1.15rem + .9vw, 1.75rem) * var(--head-k));
  line-height:1.3;letter-spacing:-.015em;
  color:var(--ink);font-weight:550;text-wrap:balance;max-width:24ch;
}
.pull cite{display:block;font-family:var(--font-body);font-style:normal;margin-top:var(--s-3);
  font-size:var(--t-micro);letter-spacing:.18em;text-transform:uppercase;
  font-weight:600;color:var(--accent)}
.creds{display:grid;gap:0;margin-top:var(--s-2)}
.creds li{
  border-top:var(--hair) solid var(--rule);
  padding-block:var(--s-3);
  font-size:var(--t-sub);line-height:1.5;color:var(--ink-mute);
}
.creds b{font-weight:600;color:var(--ink-body)}
.phys__media{border-radius:var(--r-photo);overflow:hidden;background:var(--tint);max-width:460px;width:100%;justify-self:center}
.phys__media img{width:100%;height:auto;object-position:50% 28%}
@media (min-width:1000px){
  .phys{grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr);gap:clamp(var(--s-8), 6vw, var(--s-10))}
  .phys__media{justify-self:end;position:sticky;top:calc(var(--head-h) + var(--sp-compact))}
}

/* ============================ bio header ============================ */
.bio-head{padding-block:calc(clamp(var(--s-7), 6vw, var(--s-9)) * var(--density))}
.bio-head__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-compact);align-items:start}
.bio-head__media{border-radius:var(--r-photo);overflow:hidden;background:var(--tint);max-width:420px;width:100%}
.bio-head__media img{width:100%;height:auto}
.bio-head__copy{display:grid;gap:var(--s-5);justify-items:start}
.bio-head__title{font-size:var(--t-h2);line-height:1.1;letter-spacing:var(--track-h2);max-width:20ch}
.bio-head__role{font-size:var(--t-lede);color:var(--ink-body);max-width:44ch}
.bio-head__video{width:100%;aspect-ratio:16 / 9;margin-top:var(--s-3)}
@media (min-width:900px){
  .bio-head__grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(var(--s-7), 5vw, var(--s-9))}
}

/* ============================ care cards ============================ */
.care{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5)}
.care__card{
  display:grid;gap:var(--s-3);align-content:start;
  min-height:100%;padding:var(--s-6);
  background:var(--panel);border:var(--hair) solid var(--rule);border-radius:var(--r-card);
  text-decoration:none;color:inherit;
  will-change:transform;backface-visibility:hidden;
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),
             border-color var(--dur) var(--ease);
}
.band--tint .care__card{border-color:var(--rule-on-panel)}
.care__card h3{font-size:calc(1.1875rem * var(--head-k));letter-spacing:-.005em}
.care__card p{color:var(--ink-mute);font-size:var(--t-sub);line-height:1.55}
.care__card .go{margin-top:var(--s-3);min-height:0}
.care__card:hover{transform:translate3d(0,-3px,0);box-shadow:var(--lift-hi);border-color:color-mix(in srgb, var(--accent) 34%, var(--rule))}
.care__card:active{transform:translate3d(0,0,0)}
@media (min-width:640px){.care{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1040px){.care{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-6)}}

/* ============================ reviews ============================ */
.revs{position:relative;background:var(--deep);color:var(--on-deep-body);overflow:hidden}
.revs__stage{position:relative;isolation:isolate;display:grid;min-height:clamp(460px, 46vw, 600px)}
.rev{
  grid-area:1 / 1;
  display:grid;grid-template-rows:1fr auto;
  opacity:0;visibility:hidden;pointer-events:none;
}
.rev[data-on]{opacity:1;visibility:visible;pointer-events:auto}
@media (prefers-reduced-motion: no-preference){
  .rev{will-change:opacity;transition:opacity .45s var(--ease), visibility 0s linear .45s}
  .rev[data-on]{transition:opacity .45s var(--ease)}
  .rev__inner{will-change:transform,opacity;backface-visibility:hidden;transform:translate3d(0,10px,0);transition:transform .5s var(--ease)}
  .rev[data-on] .rev__inner{transform:translate3d(0,0,0)}
}
.rev__bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
.rev__bg img{width:100%;height:100%;object-fit:cover;object-position:var(--focus, 50% 44%)}
.rev__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(102deg,
    color-mix(in srgb, var(--deep) 93%, transparent) 0%,
    color-mix(in srgb, var(--deep) 78%, transparent) 52%,
    color-mix(in srgb, var(--deep) 34%, transparent) 100%);
}
.rev__body{
  width:100%;max-width:var(--wrap);margin-inline:auto;
  padding:clamp(var(--s-7), 5vw, var(--s-9)) var(--gutter) var(--s-5);
  display:grid;align-content:center;
}
.rev__inner{display:grid;gap:var(--s-5);max-width:42ch}
.quote{
  font-family:var(--font-head);
  font-size:calc(clamp(1.5rem, 1.05rem + 1.9vw, 2.625rem) * var(--head-k));
  line-height:1.24;letter-spacing:-.02em;
  color:var(--on-photo);font-weight:550;text-wrap:balance;
}
.quote-cite{
  font-size:var(--t-small);letter-spacing:.18em;text-transform:uppercase;
  color:var(--on-deep-body);font-style:normal;font-weight:600;
}
.rev--todo .quote{font-size:calc(clamp(1.3125rem, 1rem + 1.2vw, 1.875rem) * var(--head-k));color:var(--on-deep);font-weight:500}
.rev .todo{color:var(--on-deep-mute)}
.revs__ctl{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  width:100%;max-width:var(--wrap);margin-inline:auto;
  padding:0 var(--gutter) clamp(var(--s-5), 3vw, var(--s-7));
  display:flex;align-items:center;gap:var(--s-3);
}
.revs__btn{
  width:46px;height:46px;flex:none;border-radius:50%;cursor:pointer;
  background:var(--scrim-btn);color:var(--on-photo);
  border:var(--hair) solid color-mix(in srgb, var(--on-photo) 26%, transparent);
  display:grid;place-items:center;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.revs__btn:hover{background:var(--accent);border-color:var(--accent)}
.revs__dots{display:flex;gap:0;margin-left:var(--s-2)}
.revs__dot{
  width:var(--tap);height:var(--tap);padding:0;border:0;background:none;cursor:pointer;
  display:grid;place-items:center;
}
.revs__dot i{
  display:block;width:8px;height:8px;border-radius:50%;
  background:var(--on-photo);opacity:.42;
  will-change:transform,opacity;backface-visibility:hidden;
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.revs__dot[aria-current="true"] i{opacity:1;transform:scale3d(1.35,1.35,1)}
.revs__count{
  margin-left:auto;font-size:var(--t-small);letter-spacing:.14em;
  color:var(--on-photo);opacity:.7;font-variant-numeric:tabular-nums;
}
@media (max-width:599px){
  .revs__count{display:none}
  .rev__bg::after{background:linear-gradient(168deg,
    color-mix(in srgb, var(--deep) 92%, transparent) 0%,
    color-mix(in srgb, var(--deep) 74%, transparent) 58%,
    color-mix(in srgb, var(--deep) 42%, transparent) 100%)}
}

/* ============================ questions ============================ */
.qa details{border-top:var(--hair) solid var(--rule)}
.qa details:last-of-type{border-bottom:var(--hair) solid var(--rule)}
.qa summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);
  min-height:var(--tap);padding-block:var(--s-5);
  font-family:var(--font-head);
  font-size:calc(1.25rem * var(--head-k));font-weight:550;letter-spacing:-.01em;color:var(--ink);line-height:1.3;
}
.qa summary::-webkit-details-marker{display:none}
.qa__ic{flex:none;color:var(--ink-mute);will-change:transform;backface-visibility:hidden;transition:transform .34s var(--ease)}
.qa summary:hover .qa__ic{color:var(--ink)}
.qa details[open] .qa__ic{transform:rotate3d(0,0,1,180deg)}
.qa details:not([open]) .qa__a{display:none}
.qa__a{overflow:hidden}
.qa__a p{padding-bottom:var(--s-6);max-width:64ch;color:var(--ink-body)}
.qa__a a{
  color:var(--ink);text-decoration-color:var(--rule);text-underline-offset:var(--s-1);
  display:inline-block;padding-block:var(--s-2);
}
.qa__a a:hover{color:var(--accent);text-decoration-color:var(--accent)}

/* ============================ the ask ============================ */
.ask{background:var(--tint);padding-block:calc(clamp(var(--s-8), 7vw, var(--s-9)) * var(--density))}
.ask__inner{display:grid;gap:var(--s-6);justify-items:start;max-width:44ch}
.ask h2{max-width:20ch}
.ask__cta{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.ask .btn--soft{background:var(--soft-on-tint)}
.ask .btn--soft:hover{background:var(--soft-on-tint-hover)}
@media (min-width:900px){
  .ask__inner{grid-template-columns:minmax(0,1fr) auto;align-items:center;max-width:none;gap:var(--s-8)}
  .ask__copy{display:grid;gap:var(--s-4);max-width:46ch}
}

/* ============================ consultation form ============================ */
.consult{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--sp-compact);align-items:start}
.consult__copy{display:grid;gap:var(--s-5);max-width:48ch}
.consult__next{display:grid;gap:0;margin-top:var(--s-2)}
.consult__next li{border-top:var(--hair) solid var(--rule);padding-block:var(--s-3);font-size:var(--t-sub);color:var(--ink-mute)}
.consult__next b{color:var(--ink);font-weight:600}
.form{
  display:grid;gap:var(--s-5);
  background:var(--panel);border-radius:var(--r-card);box-shadow:var(--lift);
  padding:clamp(var(--s-5), 3vw, var(--s-7));
}
.form__row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-5)}
.field{display:grid;gap:var(--s-2)}
.field label{font-size:var(--t-small);font-weight:600;color:var(--ink);letter-spacing:.01em}
.field label span{font-weight:400;color:var(--ink-mute)}
.field input,.field textarea{
  width:100%;min-height:calc(var(--tap) + 8px);padding:var(--s-3) var(--s-4);
  font:inherit;font-size:var(--t-body);color:var(--ink);
  background:var(--ground);border:var(--hair) solid color-mix(in srgb, var(--ink) 22%, var(--ground));border-radius:var(--r-btn);
  transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease);
}
.field textarea{min-height:120px;resize:vertical}
.field input:hover,.field textarea:hover{border-color:color-mix(in srgb, var(--ink) 40%, var(--ground))}
.field input:focus,.field textarea:focus{background:var(--panel);border-color:var(--ink)}
.form .btn{width:100%}
.form__note{font-size:1rem;color:var(--ink-mute);line-height:1.5}
@media (min-width:600px){.form__row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){
  .consult{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(var(--s-8), 6vw, var(--s-10))}
}

/* ============================ contact ============================ */
.contact{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-7) var(--s-6)}
.contact__col{display:grid;gap:var(--s-3);align-content:start}
.contact__col h3{font-size:calc(1.25rem * var(--head-k))}
.contact__col address{font-style:normal}
.contact__big{font-family:var(--font-head);font-size:calc(1.5rem * var(--head-k));font-weight:var(--w-head);color:var(--ink);text-decoration:none;letter-spacing:-.01em}
.contact__big:hover{color:var(--accent)}
.hours{display:grid;gap:0;font-size:var(--t-sub)}
.hours li{display:flex;justify-content:space-between;gap:var(--s-5);border-top:var(--hair) solid var(--rule);padding-block:var(--s-2)}
.hours li span:last-child{color:var(--ink)}
.contact__map{aspect-ratio:16 / 10;margin-top:var(--s-2)}
@media (min-width:900px){.contact{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ============================ posts ============================ */
.posts{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-7) var(--s-6)}
.post{display:grid;gap:var(--s-3);align-content:start;text-decoration:none;color:inherit}
.post__media{border-radius:var(--r-photo);overflow:hidden;background:var(--tint);aspect-ratio:3 / 2}
.post__media img{width:100%;height:100%;object-fit:cover;will-change:transform;backface-visibility:hidden;transition:transform .6s var(--ease)}
.post:hover .post__media img{transform:scale3d(1.03,1.03,1)}
.post h3{font-size:calc(1.3125rem * var(--head-k));transition:color var(--dur) var(--ease)}
.post:hover h3{color:var(--accent)}
.post p{font-size:var(--t-sub);color:var(--ink-mute);line-height:1.55}
.posts__head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--s-4)}
.filters{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.filters a{
  display:inline-flex;align-items:center;min-height:40px;padding:0 var(--s-4);
  border:var(--hair) solid var(--rule);border-radius:var(--r-btn);
  font-size:var(--t-small);color:var(--ink-body);text-decoration:none;
  transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.filters a:hover{border-color:var(--ink-mute);color:var(--ink)}
.filters a[aria-current="true"]{background:var(--deep);border-color:var(--deep);color:var(--on-deep)}
@media (min-width:700px){.posts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1040px){.posts{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ============================ article ============================ */
.article-head{padding-block:clamp(var(--s-7), 6vw, var(--s-9)) var(--s-7)}
.article-head .wrap{display:grid;gap:var(--s-5);justify-items:start}
.article-head__title{font-size:calc(clamp(2.125rem, 1.5rem + 2.4vw, 3.5rem) * var(--head-k));letter-spacing:var(--track-h2);max-width:22ch}
.byline{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-4);font-size:1rem;color:var(--ink-mute)}
.byline a{color:var(--ink);font-weight:600;text-decoration:none}
.byline a:hover{color:var(--accent)}
.prose{color:var(--ink-body)}
.prose > * + *{margin-top:1.1em}
.prose h2{font-size:calc(clamp(1.5rem, 1.25rem + 1vw, 2rem) * var(--head-k));margin-top:1.8em;max-width:none}
.prose h3{font-size:calc(1.3125rem * var(--head-k));margin-top:1.6em}
.prose a:not(.btn){color:var(--ink);text-decoration-color:color-mix(in srgb, var(--accent) 50%, var(--rule));text-underline-offset:.2em;text-decoration-thickness:var(--hair)}
.prose a:not(.btn):hover{color:var(--accent)}
.prose ul,.prose ol{padding-left:1.25em}
.prose ul{list-style:disc}
.prose ol{list-style:decimal}
.prose li + li{margin-top:.4em}
.prose li::marker{color:var(--accent)}
.prose blockquote{border-left:3px solid var(--accent);padding-left:var(--s-5);font-size:var(--t-lede);color:var(--ink);font-weight:500}
.prose figure img{border-radius:var(--r-photo)}
.prose figcaption{margin-top:var(--s-2);font-size:var(--t-small);color:var(--ink-mute)}
.inline-ask{
  display:grid;gap:var(--s-4);margin-block:2em;
  background:var(--tint);border-radius:var(--r-card);padding:clamp(var(--s-5), 3vw, var(--s-6));
}
.inline-ask p{color:var(--ink);font-weight:500}
.inline-ask .btn{justify-self:start}
@media (min-width:700px){
  .inline-ask{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--s-6)}
}
.author{
  display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--s-4) var(--s-5);align-items:center;
  border-top:var(--hair) solid var(--rule);border-bottom:var(--hair) solid var(--rule);
  padding-block:var(--s-6);margin-top:var(--s-8);
}
.author__img{width:72px;height:72px;border-radius:50%;overflow:hidden;background:var(--tint)}
.author__img img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.author__name{font-family:var(--font-head);font-weight:var(--w-head);color:var(--ink);font-size:calc(1.125rem * var(--head-k))}
.author p:not(.author__name){font-size:var(--t-sub);color:var(--ink-mute);line-height:1.5}

/* ============================ footer ============================ */
.foot{background:var(--deep);color:var(--on-deep-body);border-radius:0}
.foot__inner{padding-block:var(--s-8) var(--s-6)}
.foot__grid{
  display:grid;grid-template-columns:minmax(0,1fr);
  gap:var(--s-7) clamp(var(--s-6), 3.5vw, var(--s-8));align-items:start;
}
.foot .brand{color:var(--on-deep)}
.foot__logo{display:block;height:72px;width:auto;max-width:none}
.foot__h{
  font-family:var(--font-body);font-size:var(--t-micro);letter-spacing:.18em;text-transform:uppercase;
  font-weight:600;color:var(--on-deep-mute);margin-bottom:var(--s-2);
}
.foot ul{display:grid;gap:0}
.foot__grid a{
  color:var(--on-deep-body);text-decoration:none;font-size:var(--t-sub);
  display:inline-flex;align-items:center;min-height:var(--tap);
  transition:color var(--dur) var(--ease);
}
.foot__grid a:hover{color:var(--on-photo)}
.foot__contact{font-size:var(--t-sub);color:var(--on-deep-body);font-style:normal;line-height:1.65;margin-top:var(--s-4)}
.foot__contact a{min-height:0;padding-block:2px}
.foot__911{
  margin-top:var(--s-7);padding-top:var(--s-4);
  border-top:var(--edge) solid var(--accent-on-deep);
  font-size:1rem;line-height:1.55;color:var(--on-deep-body);max-width:78ch;
}
.foot__911 b{color:var(--on-photo);font-weight:600}
.foot__legal{
  margin-top:var(--s-6);padding-top:var(--s-4);
  border-top:var(--hair) solid var(--rule-deep);
  font-size:1rem;line-height:1.6;color:var(--on-deep-mute);
  display:grid;gap:var(--s-2) var(--s-5);
}
.foot__legal a{color:var(--on-deep-body);text-underline-offset:.2em}
.foot__legal a:hover{color:var(--on-photo)}
@media (min-width:720px){
  .foot__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1100px){
  .foot__grid{grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr))}
  .foot__legal{grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline}
}

/* ============================ motion ============================ */
html[data-motion="on"] .reveal{
  opacity:0;transform:translate3d(0,14px,0);
  will-change:transform,opacity;backface-visibility:hidden;
  transition:opacity .7s var(--ease),transform .7s var(--ease);
  transition-delay:calc(var(--rv, 0) * 70ms);
}
html[data-motion="on"] .reveal.is-in{opacity:1;transform:translate3d(0,0,0)}
html[data-motion="on"] .care__card:nth-child(3n+2),html[data-motion="on"] .post:nth-child(3n+2),html[data-motion="on"] .person:nth-child(2n){--rv:1}
html[data-motion="on"] .care__card:nth-child(3n),html[data-motion="on"] .post:nth-child(3n){--rv:2}
html[data-motion="on"] .steps li:nth-child(2){--rv:1}
html[data-motion="on"] .steps li:nth-child(3){--rv:2}
html[data-motion="on"] .steps li:nth-child(4){--rv:3}

/* ============================ breakpoints ============================ */
@media (max-width:1279px){
  .nav{display:none}
  .menu{display:block}
}
@media (min-width:1280px) and (max-width:1439px){
  .act__cta-long{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}
@media (max-width:899px){
  .util__news{display:none}
  .act__tel{display:none}
  .util__tel{display:inline-flex !important}
}
@media (max-width:719px){
  .act__tel{display:none}
  .util__tel{display:inline-flex !important}
  .util__links{width:100%;justify-content:space-between;gap:var(--s-3)}
  .menu__label{display:none}
  .act__cta-long{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}
@media (max-width:599px){
  h1,.t-display{max-width:none}
  .btn{white-space:normal;text-align:center;width:100%}
  .masthead .btn{width:auto;white-space:nowrap}
  .hero__cta,.ask__cta{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-3);width:100%}
  .inc__outro .btn,.inline-ask .btn{width:100%}
  .collage{padding:0;max-width:none}
  .collage__main{aspect-ratio:4 / 3.6}
  .collage__over{position:static;width:100%;aspect-ratio:16 / 7;margin-top:var(--s-3);box-shadow:none}
  .steps{padding-left:calc(36px + var(--s-4))}
  .steps__no{width:36px;height:36px;left:calc((36px + var(--s-4)) * -1)}
  .steps li:not(:last-child)::before{left:calc((36px + var(--s-4)) * -1 + 17px);top:40px}
  .masthead__row{gap:var(--s-3)}
  .masthead__act{gap:var(--s-2)}
  .masthead .btn{padding-inline:var(--s-4)}
  .brand{gap:var(--s-2)}
}
@media (max-width:479px){
  .util__forms{display:none !important}
  .masthead__act .btn{display:none}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important;scroll-behavior:auto !important;
  }
}
