/* Ortho Dental Labs — landing page */
:root {
  --blue: #2253d4;
  --blue-text: #224fd8;
  --blue-medium: #1b42aa;
  --blue-dark: #14327f;
  --ink: #1c1b19;
  --ink-2: #21211a;
  --gray-700: #494d57;
  --gray-500: #adb2bd;
  --gray-300: #dee0e6;
  --warm-700: #4a4640;
  --warm-400: #bcb6ae;
  --sand: #f5f3ef;
  --sand-2: #e8e3dc;
  --paper: #fbfaf8;
  --white: #feffff;
  --off-white: #fefefd;
  --footer: #161513;
  --footer-text: #a8a49e;
  --pad-x: 112px;
  --pad-y: 112px;
  --jakarta: "Plus Jakarta Sans", system-ui, sans-serif;
  --geist: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: "Geist Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--geist); font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
h1, h2, h3, p, ul, ol, dl, dd, figure { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
em { font-style: normal; color: var(--blue-text); }
h3, dt, dd, .mcard__head, .footer p, .footer span { line-height: normal; }
.specs dt, .specs dd { line-height: 20px; }

.wrap { width: 100%; max-width: 1440px; margin: 0 auto; padding-left: var(--pad-x); padding-right: var(--pad-x); }
.section { padding: var(--pad-y) 0; }
.section > .wrap { display: flex; flex-direction: column; gap: 64px; }

/* Type */
.h2 { font-family: var(--jakarta); font-weight: 700; font-size: 56px; line-height: 64px; color: var(--ink); }
.lead { font-size: 18px; line-height: 26px; color: var(--gray-700); }
.lead--loose { line-height: 28.8px; }
.body { font-size: 16px; line-height: 24px; color: var(--gray-700); }
.mono { font-family: var(--mono); font-size: 13px; line-height: normal; }

/* Buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; padding: 20px 24px; font-family: var(--geist); font-weight: 600; font-size: 15px; line-height: 15px; white-space: nowrap; border: 1px solid transparent; transition: background-color .15s, border-color .15s, color .15s; align-self: center; }
.btn--sm { font-size: 14px; line-height: 14px; }
.btn--white { background: var(--off-white); color: var(--ink); }
.btn--white:hover { background: #e9ecf6; }
.nav .btn--white, .numbers .btn--white, .cta .btn--white { color: var(--blue-dark); background: var(--white); }
.btn--ghost { border-color: rgba(254,254,253,.35); color: var(--off-white); }
.btn--ghost:hover { border-color: rgba(254,254,253,.8); }
.btn--blue { background: var(--blue); color: var(--white); }
.btn--blue:hover { background: var(--blue-medium); }
.btns { display: flex; flex-wrap: wrap; gap: 12px; }
.btns .btn { align-self: auto; }
.btns--center { justify-content: center; }
a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Split header */
.split { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; }
.split__title { width: 469px; flex: none; }
.split__title--wide { width: 709px; }
.split__title--auto { width: auto; white-space: nowrap; }
.split__lead { width: 474px; flex: none; }
.split__lead--narrow { width: 325px; }
.split__lead--mid { width: 385px; }

/* Hero */
.hero { position: relative; isolation: isolate; overflow: hidden; background: var(--blue-medium); color: var(--off-white); min-height: min(737px, 100vh); display: flex; flex-direction: column; }
.hero__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.hero__bg img { position: absolute; right: -3.05%; bottom: 0; width: 70%; height: 89.15%; max-width: none; object-fit: cover; -webkit-mask-image: linear-gradient(to bottom, transparent, #000 22%), linear-gradient(to right, transparent, #000 30%); -webkit-mask-composite: source-in; mask-image: linear-gradient(to bottom, transparent, #000 22%), linear-gradient(to right, transparent, #000 30%); mask-composite: intersect; }
.hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(270deg, rgba(27,66,170,.5) 46.632%, #1b42aa 76.563%); }
.nav { display: flex; align-items: center; justify-content: space-between; padding-top: 24px; padding-bottom: 24px; position: relative; z-index: 2; }
.nav__logo { padding: 6px 0; }
.nav__logo img { width: 104px; height: 55px; }
.nav__links { display: flex; gap: 4px; }
.nav__links a, .nav__signin { font-weight: 500; font-size: 14px; line-height: 14px; color: rgba(254,254,253,.78); padding: 12px 16px; }
.nav__links a:hover, .nav__signin:hover { color: var(--off-white); }
.nav__signin { padding: 14px 10px; }
.nav__actions { display: flex; align-items: center; gap: 8px; }
.hero__body { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 24px; padding-top: 32px; padding-bottom: 72px; position: relative; z-index: 1; }
.hero__eyebrow { display: flex; align-items: center; gap: 10px; font-weight: 500; font-size: 14px; line-height: 20px; text-transform: uppercase; letter-spacing: .06em; }
.hero__eyebrow span { display: none; }
.hero__title { font-family: var(--jakarta); font-weight: 400; font-size: 72px; line-height: 80px; }
.hero__title b { font-weight: 700; }
.hero__foot { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 40px; }
.hero__copy { width: 590px; max-width: 100%; display: flex; flex-direction: column; gap: 24px; }
.hero__copy p { color: rgba(254,254,253,.78); }
.hero__stats { display: flex; gap: 40px; }
.hero__stats > div { display: flex; flex-direction: column; gap: 8px; }
.hero__stats > div + div { border-left: 1px solid rgba(254,254,253,.18); padding-left: 40px; }
.hero__stats dt { font-family: var(--jakarta); font-weight: 600; font-size: 32px; line-height: normal; letter-spacing: -0.96px; }
.hero__stats dd { font-size: 14px; color: rgba(254,254,253,.78); }

/* Manifesto */
.manifesto { background: var(--white); }
.manifesto__grid { display: grid; grid-template-columns: 1fr 2fr; gap: 16px; }
.manifesto__cards { display: flex; flex-direction: column; gap: 16px; }
.mcard { background: var(--sand); min-height: 172px; padding: 32px; display: flex; flex-direction: column; justify-content: center; gap: 16px; }
.mcard__big { font-family: var(--jakarta); font-weight: 800; font-size: 44px; line-height: 44px; letter-spacing: -1.76px; color: var(--blue-text); }
.mcard__head { font-family: var(--jakarta); font-weight: 700; font-size: 20px; color: var(--ink-2); }
.mcard__head em { color: var(--blue); }
.manifesto__fig { background: var(--sand); height: 360px; overflow: hidden; }
.manifesto__fig img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.manifesto__list { display: flex; gap: 32px; border-top: 1px solid var(--blue); }
.manifesto__list li { flex: 1; padding-top: 32px; display: flex; flex-direction: column; gap: 8px; }
.manifesto__list h3 { font-family: var(--jakarta); font-weight: 700; font-size: 20px; color: var(--ink-2); }

/* Capabilities */
.capabilities { background: var(--sand); }
.capabilities .wrap { align-items: center; }
.center-head { text-align: center; display: flex; flex-direction: column; gap: 15px; }
.center-head .lead { color: var(--warm-700); }
.caps { display: flex; gap: 32px; width: 100%; }
.cap { flex: 1; min-width: 0; background: var(--off-white); display: flex; flex-direction: column; }
.cap__img { height: 414px; overflow: hidden; background: var(--sand-2); }
.cap__img img { width: 100%; height: 100%; object-fit: cover; }
.cap__img img.pos-left { object-position: 0% 50%; }
.cap__body { padding: 32px; display: flex; flex-direction: column; gap: 8px; }
.cap__body h3 { font-family: var(--jakarta); font-weight: 700; font-size: 24px; color: var(--ink); }
.specs { margin-top: 8px; border-top: 1px solid var(--gray-300); font-size: 14px; line-height: 20px; }
.specs div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--gray-300); }
.specs div:last-child { border-bottom: 0; }
.specs dt { color: var(--gray-700); }
.specs dd { color: var(--ink-2); text-align: right; }

/* Process */
.process { background: var(--white); }
.steps { display: flex; gap: 16px; }
.step { flex: 1; min-width: 0; background: var(--sand); }
.step__img { height: 231px; overflow: hidden; background: var(--sand-2); }
.step__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 52%; }
.step__body { padding: 24px; display: flex; flex-direction: column; gap: 8px; }
.step__body .mono { color: var(--blue); }
.step__body h3 { font-family: var(--jakarta); font-weight: 700; font-size: 22px; letter-spacing: -0.44px; color: var(--ink-2); }
.step__body p { font-size: 15px; line-height: 23.25px; color: var(--gray-700); }

/* Numbers */
.numbers { background: var(--blue); color: var(--off-white); }
.numbers .h2 { color: var(--off-white); }
.numbers__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.numbers__stats { display: flex; justify-content: space-between; gap: 32px; }
.numbers__stats > div { padding-top: 8px; display: flex; flex-direction: column; gap: 8px; }
.numbers__stats dt { font-family: var(--jakarta); font-weight: 800; font-size: 80px; line-height: 80px; letter-spacing: -3.6px; }
.numbers__stats dd { font-size: 16px; }
.numbers__cards { display: flex; gap: 32px; }
.numbers__cards > div { flex: 1; background: rgba(254,254,253,.08); border: 1px solid rgba(254,254,253,.18); padding: 29px; display: flex; flex-direction: column; gap: 9px; }
.numbers__cards h3 { font-family: var(--jakarta); font-weight: 700; font-size: 22px; letter-spacing: -0.44px; }
.numbers__cards p { font-size: 16px; line-height: 24.8px; }

/* Trust */
.trust { background: var(--paper); }
.trust .wrap { align-items: center; }
.trust .split { width: 100%; }
.badges { display: flex; gap: 32px; width: 100%; }
.badges li { flex: 1; background: var(--sand); padding: 32px; display: flex; flex-direction: column; gap: 112px; }
.badges svg { width: 32px; height: 32px; margin: 4px 0; fill: none; stroke: var(--blue); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.badges span { font-family: var(--jakarta); font-weight: 700; font-size: 20px; line-height: 28px; color: #1c1b17; min-height: 56px; }

/* Precision */
.precision { background: var(--paper); }
.precision__head { display: flex; flex-direction: column; gap: 16px; }
.specgrid { display: flex; }
.specgrid ul { flex: 1; display: flex; flex-direction: column; gap: 32px; }
.specgrid li { border-left: 2px solid var(--warm-400); padding-left: 18px; }
.specgrid li.is-active { border-left-color: var(--blue-text); }
.specgrid .mono { display: block; color: var(--warm-700); margin-bottom: 9px; }
.specgrid li.is-active .mono { color: var(--blue-text); }
.specgrid h3 { font-family: var(--jakarta); font-weight: 700; font-size: 18px; letter-spacing: -0.27px; color: var(--ink); margin-bottom: 7px; }
.specgrid p { font-size: 15px; line-height: 22.5px; color: var(--gray-700); }

/* Final CTA */
.cta { background: var(--blue-medium); color: var(--off-white); text-align: center; }
.cta .wrap { align-items: center; }
.cta .h2 { color: var(--off-white); }
.cta .lead { color: var(--gray-500); max-width: 560px; margin-top: -40px; }
.cta .btn { min-height: 54px; padding: 1px 25px; }
.cta__fine { font-size: 14px; line-height: 20px; color: var(--gray-500); }

/* Footer */
.footer { background: var(--footer); color: var(--footer-text); padding: 24px 0 calc(24px + var(--sticky-h, 0px)); }
.footer__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.footer__inner { padding-top: 32px; padding-bottom: 32px; padding-left: calc(var(--pad-x) + 20px); padding-right: calc(var(--pad-x) + 20px); }
.footer__brand { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; font-size: 14px; }
.footer__brand img { width: 76px; height: 40px; }
.footer__nav { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; font-size: 14px; }
.footer__nav a { font-weight: 500; line-height: 14px; padding: 14px 0; }
.footer__nav a:hover { color: var(--off-white); }

/* Sticky bar */
.stickybar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; background: var(--blue-dark); color: var(--white); cursor: pointer; transform: translateY(100%); transition: transform .3s ease, background-color .2s; }
.stickybar.is-visible { transform: translateY(0); }
.stickybar:hover { background: #102a6d; }
.stickybar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 12px; padding-bottom: 12px; }
.stickybar__msg { flex: 1; display: flex; align-items: center; gap: 12px; font-family: "Epilogue", var(--geist); font-weight: 500; font-size: 18px; line-height: 24px; }
.stickybar__msg img { width: 56px; height: 9px; flex: none; }
.stickybar .btn { align-self: auto; padding: 12px 18px; font-size: 14px; line-height: 14px; }
.stickybar:hover .btn { background: #e9ecf6; }

/* ---------- Motion ---------- */
@keyframes odl-up { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes odl-zoom { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes odl-fade { from { opacity: 0; } to { opacity: 1; } }

.js .hero__bg img { animation: odl-zoom 2.4s cubic-bezier(.2,.7,.2,1) both; translate: 0 var(--py, 0px); }
.js .nav { animation: odl-fade .8s ease both .1s; }
.js .hero__eyebrow { animation: odl-up .9s cubic-bezier(.2,.7,.2,1) both .2s; }
.js .hero__title { animation: odl-up 1s cubic-bezier(.2,.7,.2,1) both .32s; }
.js .hero__copy { animation: odl-up 1s cubic-bezier(.2,.7,.2,1) both .5s; }
.js .hero__stats { animation: odl-up 1s cubic-bezier(.2,.7,.2,1) both .65s; }

.js .rv { opacity: 0; transform: translateY(32px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); transition-delay: calc(var(--i, 0) * 110ms); }
.js .rv.in { opacity: 1; transform: none; }
.manifesto__fig { position: relative; }
.js .manifesto__fig.rv { transform: none; opacity: 1; }
.js .manifesto__fig.rv::after { content: ""; position: absolute; inset: 0; background: var(--white); transform-origin: right center; transition: transform 1.2s cubic-bezier(.7,0,.2,1); }
.js .manifesto__fig.rv.in::after { transform: scaleX(0); }
.js .manifesto__fig img, .js .cap__img img, .js .step__img img { transition: transform 1.6s cubic-bezier(.2,.7,.2,1); }
.js .manifesto__fig.rv:not(.in) img, .js .cap.rv:not(.in) .cap__img img, .js .step.rv:not(.in) .step__img img { transform: scale(1.12); }
.cap__img img, .step__img img { transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.cap:hover .cap__img img, .step:hover .step__img img { transform: scale(1.04); }
.manifesto__list { border-top: 0; padding-top: 1px; background: linear-gradient(var(--blue), var(--blue)) top left / 100% 1px no-repeat; }
.js .manifesto__list { background-size: 0 1px; transition: background-size 1.4s cubic-bezier(.7,0,.2,1); }
.js .manifesto__list.lined { background-size: 100% 1px; }
.js .specgrid li { transition-property: opacity, transform, border-color; }
.badges svg { transition: transform .4s cubic-bezier(.2,.7,.2,1); }
.badges li:hover svg { transform: translateY(-3px) scale(1.08); }
.btn { transition: background-color .15s, border-color .15s, color .15s, transform .2s; }
.btn:hover { transform: translateY(-1px); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ---------- Tablet ---------- */
@media (max-width: 1200px) {
  :root { --pad-x: 48px; --pad-y: 88px; }
  .split { flex-wrap: wrap; align-items: flex-start; }
  .split__title, .split__title--wide, .split__title--auto { width: auto; max-width: 709px; flex: 1 1 420px; white-space: normal; }
  .split__lead, .split__lead--narrow, .split__lead--mid { width: auto; flex: 1 1 300px; max-width: 474px; }
  .numbers__stats dt { font-size: 64px; line-height: 64px; letter-spacing: -2.8px; }
  .steps { flex-wrap: wrap; }
  .step { flex: 1 1 calc(50% - 8px); }
  .badges { flex-wrap: wrap; gap: 16px; }
  .badges li { flex: 1 1 calc(50% - 8px); gap: 56px; }
}

@media (max-width: 960px) {
  .nav__links { display: none; }
  .hero__title { font-size: 56px; line-height: 64px; }
  .caps { overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(-1 * var(--pad-x)); padding: 0 var(--pad-x); width: calc(100% + 2 * var(--pad-x)); scrollbar-width: none; }
  .caps::-webkit-scrollbar { display: none; }
  .cap { flex: 0 0 340px; scroll-snap-align: start; }
  .cap__img { height: 340px; }
  .numbers__stats { flex-wrap: wrap; row-gap: 32px; }
  .numbers__stats > div { flex: 1 1 calc(50% - 16px); }
}

/* ---------- Mobile ---------- */
@media (max-width: 640px) {
  :root { --pad-x: 16px; --pad-y: 32px; }
  .section > .wrap { gap: 32px; }
  .d-only { display: none; }
  .h2 { font-size: 32px; line-height: 40px; }
  .lead { font-size: 16px; line-height: 24px; }
  .split { flex-direction: column; gap: 16px; }
  .split__title, .split__title--wide, .split__lead, .split__lead--narrow, .split__lead--mid { flex: none; max-width: none; }

  .hero { min-height: 864px; padding: 32px 0 0; }
  .hero__bg img { left: -29.24%; top: 57.18%; right: auto; bottom: auto; width: 142.29%; height: 42.82%; object-position: 70% 50%; -webkit-mask-image: none; mask-image: none; }
  .hero__bg::after { background: linear-gradient(-6.37deg, rgba(27,66,170,.5) 17.715%, #1b42aa 41.291%); }
  .nav { padding-top: 16px; padding-bottom: 16px; }
  .nav__logo img { width: 88px; height: 46px; }
  .nav__actions .btn { display: none; }
  .nav__signin { padding: 14px 12px 14px 20px; font-size: 16px; line-height: 16px; color: var(--off-white); }
  .hero__body { padding-top: 24px; padding-bottom: 56px; }
  .hero__title { font-size: 40px; line-height: 48px; }
  .hero__foot { flex: 1; flex-direction: column; align-items: stretch; justify-content: space-between; }
  .hero__stats > div { flex: 1; }

  .manifesto__grid { grid-template-columns: 1fr; }
  .manifesto__fig { height: 260px; order: 2; }
  .manifesto__list { flex-direction: column; gap: 0; }
  .manifesto__list li { padding-top: 24px; }
  .mcard { padding: 24px; }

  .cap { flex: 0 0 294px; }
  .cap__img { height: 294px; }
  .cap__body { padding: 24px; }
  .cap__body h3 { font-size: 20px; line-height: 28px; }
  .cap__body .body { font-size: 14px; line-height: 20px; }

  .steps { flex-direction: column; }
  .step__img { height: 260px; }

  .numbers__head { display: contents; }
  .numbers__head .btn { order: 3; align-self: center; }
  .numbers__stats { order: 1; }
  .numbers__cards { order: 2; }
  .numbers__stats { gap: 24px 16px; }
  .numbers__stats dt { font-size: 40px; line-height: 44px; letter-spacing: -1.6px; }
  .numbers__cards { flex-direction: column; gap: 16px; }
  .numbers__cards > div { padding: 24px; }

  .badges li { padding: 24px; gap: 32px; }
  .badges span { font-size: 16px; line-height: 22px; }

  .specgrid { flex-direction: column; gap: 32px; }

  .cta .lead { margin-top: -16px; }
  .btns--center { flex-direction: column; width: 100%; }
  .btns--center .btn { width: 100%; }
  .cta .h2 br { display: none; }

  .footer__inner { flex-direction: column; align-items: center; text-align: center; padding-left: var(--pad-x); padding-right: var(--pad-x); }
  .footer__brand { flex-direction: column; gap: 12px; }
  .footer__nav { justify-content: center; gap: 4px 20px; }

  .stickybar__inner { gap: 12px; padding-top: 10px; padding-bottom: 10px; }
  .stickybar__msg { font-size: 14px; line-height: 18px; }
  .stickybar__msg img { display: none; }
  .stickybar .btn { padding: 10px 14px; font-size: 13px; line-height: 13px; }
}

/* ---------- Partner page ---------- */
[hidden] { display: none !important; }
.hero--page { min-height: 0; }
.hero--page .hero__body { padding-top: 32px; padding-bottom: 72px; gap: 16px; }
.hero__lead { color: rgba(254,254,253,.78); font-size: 18px; line-height: 26px; max-width: 560px; }
.partner { background: var(--paper); }
.section > .wrap.partner__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 64px; align-items: start; }
.partner__aside { position: sticky; top: 32px; display: flex; flex-direction: column; gap: 40px; }
.partner__title { font-family: var(--jakarta); font-weight: 700; font-size: 40px; line-height: 48px; color: var(--ink); }
.partner__steps { display: flex; flex-direction: column; gap: 28px; }
.partner__steps li { border-left: 2px solid var(--warm-400); padding-left: 18px; }
.partner__steps li.is-active { border-left-color: var(--blue-text); }
.partner__steps .mono { display: block; color: var(--warm-700); margin-bottom: 9px; }
.partner__steps li.is-active .mono { color: var(--blue-text); }
.partner__steps h3 { font-family: var(--jakarta); font-weight: 700; font-size: 18px; letter-spacing: -0.27px; color: var(--ink); margin-bottom: 7px; }
.partner__steps p { font-size: 15px; line-height: 22.5px; color: var(--gray-700); }
.partner__stats { display: flex; gap: 32px; border-top: 1px solid var(--gray-300); padding-top: 24px; }
.partner__stats > div { display: flex; flex-direction: column; gap: 4px; }
.partner__stats dt { font-family: var(--jakarta); font-weight: 800; font-size: 28px; letter-spacing: -1px; color: var(--blue-text); }
.partner__stats dd { font-size: 14px; color: var(--gray-700); }
.partner__card { background: var(--white); border: 1px solid var(--gray-300); padding: 40px; }
.partner__card iframe { display: block; width: 100%; height: 1100px; border: 0; }
.partner__done { background: var(--white); border: 1px solid var(--gray-300); padding: 48px; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.partner__done p { font-size: 18px; line-height: 26px; color: var(--gray-700); }
.partner__done .btn { align-self: flex-start; margin-top: 8px; }
@media (max-width: 960px) {
  .section > .wrap.partner__grid { grid-template-columns: 1fr; gap: 40px; }
  .partner__aside { position: static; }
}
@media (max-width: 640px) {
  .hero.hero--page { min-height: 0; }
  .hero--page .hero__body { padding-top: 32px; padding-bottom: 48px; }
  .hero__lead { font-size: 16px; line-height: 24px; }
  .partner__title { font-size: 32px; line-height: 40px; }
  .partner__card { padding: 16px; }
  .partner__card iframe { height: 1400px; }
  .partner__stats { gap: 20px; }
  .partner__stats dt { font-size: 22px; }
  .partner__done { padding: 24px; }
}

/* Partner hero: doctor photo */
.hero--doctor { min-height: min(600px, 100vh); }
.hero--doctor .hero__bg img { left: auto; top: 96px; bottom: 0; right: 0; width: 48%; height: auto; object-fit: cover; object-position: 50% 20%; -webkit-mask-image: linear-gradient(to bottom, transparent, #000 22%), linear-gradient(to right, transparent, #000 30%); -webkit-mask-composite: source-in; mask-image: linear-gradient(to bottom, transparent, #000 22%), linear-gradient(to right, transparent, #000 30%); mask-composite: intersect; }
.hero--doctor .hero__bg::after { background: linear-gradient(180deg, #1b42aa 0, #1b42aa 96px, rgba(27,66,170,0) 190px), linear-gradient(90deg, #1b42aa 0%, #1b42aa 42%, rgba(27,66,170,.42) 64%); }
.hero--doctor .hero__body { justify-content: center; }
.hero--doctor .hero__title { font-size: 64px; line-height: 72px; max-width: 640px; }
.hero--doctor .hero__lead { max-width: 520px; }
@media (max-width: 960px) {
  .hero--doctor .hero__bg img { width: 60%; }
  .hero--doctor .hero__title { font-size: 48px; line-height: 56px; max-width: 460px; }
  .hero--doctor .hero__lead { max-width: 400px; }
}
@media (max-width: 640px) {
  .hero.hero--doctor { min-height: 0; }
  .hero--doctor .hero__body { padding-bottom: 450px; justify-content: flex-start; }
  .hero--doctor .hero__bg img { left: 0; right: 0; top: auto; bottom: -120px; width: 100%; height: 560px; object-position: 50% 0%; -webkit-mask-image: linear-gradient(to bottom, transparent 0, rgba(0,0,0,.3) 40px, rgba(0,0,0,.75) 85px, #000 130px); -webkit-mask-composite: source-over; mask-image: linear-gradient(to bottom, transparent 0, rgba(0,0,0,.3) 40px, rgba(0,0,0,.75) 85px, #000 130px); mask-composite: add; }
  .hero--doctor .hero__bg::after { background: linear-gradient(to top, rgba(27,66,170,.42) 310px, rgba(27,66,170,.75) 380px, #1b42aa 450px); }
  .hero--doctor .hero__title { font-size: 40px; line-height: 48px; max-width: none; }
}

/* Why it costs less */
.pricing { background: var(--white); }
.pricing__eyebrow { font-weight: 500; font-size: 14px; line-height: 20px; letter-spacing: .06em; text-transform: uppercase; color: var(--blue-text); }
.models { display: flex; flex-direction: column; }
.model { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; padding: 40px 0; }
.model + .model { border-top: 1px solid var(--gray-300); }
.model__name .mono { display: block; text-transform: uppercase; color: var(--warm-700); margin-bottom: 6px; }
.model__name h3 { font-family: var(--jakarta); font-weight: 700; font-size: 22px; color: var(--ink); }
.model--direct .model__name .mono { color: var(--blue-text); }
.model__steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.model__steps li { position: relative; padding-right: 24px; }
.model__steps li::after { content: ""; position: absolute; top: 36px; left: 72px; right: 0; height: 1.5px; background: var(--warm-400); }
.model__steps li:last-child::after { display: none; }
.model__steps .model__skip::after { left: 0; }
.model__icon { position: relative; z-index: 1; display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; border: 1.5px solid var(--warm-400); background: var(--white); margin-bottom: 20px; }
.model__icon svg { width: 26px; height: 26px; fill: none; stroke: var(--warm-700); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.model__steps p { font-size: 15px; line-height: 22.5px; color: var(--gray-700); max-width: 220px; }
.model--direct .model__steps li::after { background: var(--blue); }
.model--direct .model__icon { border-color: var(--blue); }
.model--direct .model__icon svg { stroke: var(--blue); }
.model--direct .model__steps p { color: var(--ink); font-weight: 500; }
@media (max-width: 960px) {
  .model { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 640px) {
  .model { padding: 32px 0; }
  .model__steps { grid-template-columns: 1fr; gap: 20px; }
  .model__steps li { display: flex; align-items: center; gap: 16px; padding-right: 0; }
  .model__steps li::after { top: 56px; bottom: -20px; left: 27px; right: auto; width: 1.5px; height: auto; }
  .model__steps .model__skip { display: none; }
  .model__icon { flex: none; width: 56px; height: 56px; margin-bottom: 0; }
  .model__icon svg { width: 22px; height: 22px; }
  .model__steps p { max-width: none; }
}
