/* Blue-and-white campaign theme with explicit high-contrast text states. */
:root {
  --ink: #0b2d43;
  --plum: #0b5e9f;
  --deep: #063452;
  --rose: #38b7d0;
  --blush: #e8f7fb;
  --cream: #f7fcfe;
  --teal: #0d9da9;
  --muted: #506d7d;
  --line: rgba(11, 94, 159, 0.16);
  --shadow: 0 24px 70px rgba(6, 52, 82, 0.14);
}

body { background: #f7fcfe; color: #0b2d43; }
.topbar { background: rgba(255, 255, 255, 0.96); }
.topbar-inner { min-height: 88px; }
.topbar .brand img {
  width: 210px;
  height: auto;
  max-height: 68px;
  object-fit: contain;
}
.brand small, .top-call small { color: #567180; }
.top-call i { background: #e8f7fb; color: #0b5e9f; }

.hero {
  background: linear-gradient(135deg, #ffffff 0%, #eaf8fc 58%, #d8f0f7 100%);
}
.orb.one { background: rgba(255, 255, 255, 0.82); }
.hero h1 em, .eyebrow, .text-link { color: #0b5e9f; }
.lead { color: #36596c; }
.primary { background: #0b5e9f; box-shadow: 0 15px 32px rgba(11, 94, 159, 0.24); }
.primary:hover { background: #074c82; }
.secondary { color: #0b5e9f; border-color: rgba(11, 94, 159, 0.34); background: #ffffff; }
.proof { border-color: rgba(11, 94, 159, 0.16); }
.proof i { background: #0d9da9; }
.offer { background: #063f68; box-shadow: 0 18px 42px rgba(6, 52, 82, 0.26); }
.offer small { color: #bdebf5; }
.rating { border-color: rgba(11, 94, 159, 0.15); box-shadow: 0 18px 42px rgba(6, 52, 82, 0.14); }

.invisalign-logo {
  width: min(248px, 62vw);
  margin: 0 0 24px;
  padding: 12px 18px;
  background: #ffffff;
  border: 1px solid rgba(11, 94, 159, 0.16);
  border-radius: 14px;
  box-shadow: 0 12px 34px rgba(6, 52, 82, 0.10);
}
.invisalign-logo img { width: 100%; height: auto; }

.benefits, .process { background: #ffffff; }
.benefit-grid i, .steps article > span { color: #0b5e9f; background: #e8f7fb; }
.check-card { background: #ffffff; box-shadow: 0 24px 70px rgba(6, 52, 82, 0.12); }
.check-card li i, .simple-list i { color: #0d9da9; }

.cost { background: #f7fcfe; }
.cost-shell { background: #063452; box-shadow: 0 24px 70px rgba(6, 52, 82, 0.18); }
.cost-copy h2 { color: #ffffff; }
.cost-copy .eyebrow.light { color: #ffffff; }
.cost-copy .eyebrow.light span { background: #52d2df; }
.cost-copy > p:not(.eyebrow) { color: #d8edf5; }
.pills span { color: #ffffff; background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.32); }
.savings { background: linear-gradient(150deg, #0a7bb5 0%, #0aa4b2 100%); }
.savings small, .savings b, .savings > div { color: #ffffff; }
.light { color: #064a78; background: #ffffff; }

.doctor-photo > div { background: #0b5e9f; box-shadow: 0 16px 36px rgba(6, 52, 82, 0.24); }
.doctor-photo span { color: #d5f1f7; }
.outline { color: #0b5e9f; border-color: #0b5e9f; background: #ffffff; }

.reviews { background: #eaf8fc; }
.reviews .heading h2 { color: #0b2d43; }
.reviews .heading .eyebrow { color: #0b5e9f; }
.review-grid blockquote {
  color: #0b2d43;
  background: #ffffff;
  border-color: rgba(11, 94, 159, 0.16);
  box-shadow: 0 14px 40px rgba(6, 52, 82, 0.08);
}
.review-grid blockquote p { color: #173f57; }
.review-grid blockquote footer {
  margin-top: auto;
  padding: 0;
  color: #0b5e9f;
  background: transparent;
  border: 0;
  font-size: 0.86rem;
  font-weight: 800;
}
.stars { color: #e59b22; }

.final-cta { background: linear-gradient(125deg, #042c49, #0b639f); }
.final-cta p { color: #d7edf5; }
.site-footer { background: #05263c; color: #ffffff; }
.site-footer .footer-brand {
  width: fit-content;
  padding: 10px 15px;
  background: #ffffff;
  border-radius: 14px;
}
.site-footer .footer-brand img {
  width: 190px;
  height: auto;
  object-fit: contain;
}
.site-footer p, .site-footer .contact a, .site-footer .footer-brand small { color: #c5dce6; }
.site-footer .contact > b, .site-footer .terms > b { color: #e9f8fc; }
.site-footer .footer-bottom { color: #9fbecb; }

@media (max-width: 980px) {
  .invisalign-logo { margin-inline: auto; }
}

@media (max-width: 720px) {
  .topbar .brand img { width: 174px; max-height: 56px; }
  .topbar-inner { min-height: 72px; }
  .mobile-cta { background: #ffffff; border-color: rgba(11, 94, 159, 0.16); }
  .mobile-cta a:first-child { color: #0b5e9f; background: #e8f7fb; }
  .mobile-cta a:last-child { color: #ffffff; background: #0b5e9f; }
}
