@font-face {
  font-family:'Inter Tight';
  src:url('../fonts/inter-tight.ttf') format('truetype');
  font-weight:100 900;
  font-style:normal;
  font-display:swap
}
@font-face {
  font-family:'Inter Tight';
  src:url('../fonts/inter-tight-italic.ttf') format('truetype');
  font-weight:100 900;
  font-style:italic;
  font-display:swap
}
:root {
  --color-primary:#57aba6;
  --color-text:#555e5b;
  --color-muted:#a5a8a7;
  --color-background:#f7f7f7;
  --color-white:#fff;
  --color-border:#e4e4e4;
  --color-soft:#e6f7f5;
  --container:1160px;
  --radius:12px;
  --button-radius:8px;
  --section-space:100px;
  --grid-gap:28px;
  --font:'Inter Tight',Arial,sans-serif
}
*,*::before,*::after {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:30px
}
body {
  margin:0;
  background:var(--color-background);
  color:var(--color-text);
  font-family:var(--font);
  font-size:18px;
  line-height:1.35;
  -webkit-font-smoothing:antialiased
}
body.dialog-open {
  overflow:hidden
}
button,input,select,textarea {
  font:inherit;
  color:inherit
}
button,a,input {
  -webkit-tap-highlight-color:transparent
}
button {
  cursor:pointer
}
button:disabled {
  cursor:wait;
  opacity:.7
}
a {
  color:inherit;
  text-decoration:none
}
a:hover {
  color:var(--color-primary)
}
img {
  display:block;
  max-width:100%;
  height:auto
}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure {
  margin:0
}
h1,h2,h3,h4 {
  font-weight:600
}
h1 {
  font-size:56px;
  line-height:1.1
}
h2 {
  font-size:46px;
  line-height:1.1
}
h3 {
  font-size:24px;
  line-height:1.15
}
em {
  font-style:normal;
  color:var(--color-primary)
}
button {
  border:0;
  background:none
}
input[type=checkbox] {
  accent-color:var(--color-primary)
}
[hidden] {
  display:none!important
}
:focus-visible {
  outline:3px solid var(--color-text);
  outline-offset:4px
}
::selection {
  background:var(--color-primary);
  color:white
}
.container {
  width:min(var(--container),calc(100% - 80px));
  margin-inline:auto
}
.section {
  padding-block:var(--section-space)
}
.section--white {
  background:var(--color-white)
}
.section-heading {
  text-align:center;
  margin:0 auto 48px;
  max-width:940px
}
.section-heading h2,.section-heading h1 {
  max-width:790px;
  margin-inline:auto
}
.section-heading h1 {
  font-size:46px
}
.section-heading p {
  max-width:550px;
  margin:18px auto 0;
  font-size:18px
}
.section-action {
  text-align:center;
  margin-top:38px
}
.grid {
  display:grid;
  gap:var(--grid-gap);
  align-items:stretch
}
.grid--2 {
  grid-template-columns:repeat(2,minmax(0,1fr))
}
.grid--3 {
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.grid--4 {
  grid-template-columns:repeat(4,minmax(0,1fr))
}
.card {
  border:1px solid var(--color-border);
  border-radius:var(--radius);
  background:linear-gradient(180deg,var(--color-background),#fff);
  padding:28px
}
.card--teal {
  background:var(--color-primary);
  color:white;
  border-color:var(--color-primary)
}
.icon {
  width:24px;
  height:24px;
  flex:0 0 auto;
  object-fit:contain
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:16px 20px;
  gap:8px;
  border:1px solid var(--color-primary);
  border-radius:var(--button-radius);
  background:var(--color-primary);
  font-weight:600;
  font-size:18px;
  line-height:1.1;
  color:white;
  text-align:center;
  transition:background-color .18s,color .18s,box-shadow .18s
}
.button:hover {
  background:#46918d;
  border-color:#46918d;
  color:white
}
.button--outline {
  background:transparent;
  color:var(--color-primary)
}
.button--outline:hover {
  background:var(--color-primary);
  color:white
}
.button--secondary {
  background:transparent;
  color:var(--color-text);
  border-color:#dfd7d7
}
.button--secondary:hover {
  background:white;
  border-color:var(--color-text);
  color:var(--color-text)
}
.button--dark {
  background:var(--color-text);
  border-color:var(--color-text)
}
.button--dark:hover {
  background:#414a46;
  border-color:#414a46
}
.button--light-outline {
  background:transparent;
  border-color:#a4d4d1;
  color:white
}
.button--light-outline:hover {
  background:white;
  color:var(--color-primary);
  border-color:white
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.skip-link {
  position:fixed;
  top:10px;
  left:10px;
  padding:12px;
  transform:translateY(-150%);
  z-index:200;
  background:white;
  border:2px solid var(--color-primary)
}
.skip-link:focus {
  transform:translateY(0)
}
.honeypot {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden
}
/* Shared header: desktop 58 + 78, mobile 44 + 62. */
.topbar {
  height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size:14px
}
.city-toggle {
  display:flex;
  align-items:center;
  gap:6px;
  padding:0;
  font-weight:600
}
.city-toggle>.icon:first-child {
  width:24px;
  height:24px;
  padding:5px;
  border:1px solid #a4d4d1;
  border-radius:50%
}
.chevron {
  width:8px;
  height:5px
}
.topbar-contact {
  display:flex;
  align-items:center;
  gap:18px
}
.online {
  display:flex;
  align-items:center;
  gap:6px;
  white-space:nowrap
}
.online::before {
  content:'';
  width:6px;
  height:6px;
  background:var(--color-primary);
  border-radius:50%
}
.socials {
  display:flex;
  gap:6px;
  align-items:center
}
.social {
  padding:0;
  display:block;
  border-radius:50%;
  flex:none
}
.social>.icon {
  height:30px;
  width:30px
}
.phone {
  font-size:18px;
  font-weight:600;
  white-space:nowrap
}
.nav-shell {
  background:white;
  border-block:1px solid var(--color-border);
  position:relative;
  z-index:20
}
.nav-row {
  height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:98px
}
.brand {
  display:inline-flex;
  align-items:center;
  gap:13px;
  font-size:26px;
  font-weight:600;
  line-height:1;
  white-space:nowrap
}
.brand .icon {
  width:38px;
  height:42px
}
.navigation {
  display:flex;
  align-items:center;
  gap:36px;
  flex:1;
  justify-content:flex-end
}
.nav-links {
  list-style:none;
  padding:0;
  display:flex;
  gap:36px;
  align-items:center;
  white-space:nowrap
}
.navigation .mobile-menu-scroll>.button {
  margin-left:auto;
  white-space:nowrap;
  min-height:50px;
  padding-inline:22px
}
.services-menu>summary {
  list-style:none;
  display:flex;
  gap:6px;
  align-items:center;
  cursor:pointer
}
.services-menu>summary::-webkit-details-marker {
  display:none
}
.mega-menu {
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  top:100%;
  width:min(1160px,calc(100vw - 80px));
  background:#fff;
  border:1px solid var(--color-border);
  border-radius:0 0 12px 12px;
  box-shadow:0 20px 30px #555e5b12;
  display:grid;
  grid-template-columns:1fr 330px;
  padding:36px;
  gap:36px
}
.mega-links {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 30px;
  align-content:start
}
.mega-links a {
  padding:17px 0;
  border-bottom:1px solid var(--color-border);
  font-size:18px
}
.menu-expert {
  padding:22px;
  background:var(--color-background);
  border-radius:12px;
  overflow:hidden
}
.menu-expert h3 {
  font-size:22px;
  margin-bottom:12px
}
.menu-expert>img {
  height:110px;
  width:100px;
  float:left;
  object-fit:contain;
  object-position:bottom;
  margin-right:15px
}
.menu-expert>strong {
  font-size:16px;
  display:block;
  padding-top:35px
}
.menu-expert p {
  font-size:12px;
  margin-top:6px
}
.menu-expert .button {
  margin-top:20px;
  font-size:16px;
  width:100%
}
.menu-toggle {
  display:none
}
.breadcrumbs {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:18px;
  padding-block:20px;
  flex-wrap:wrap
}
.breadcrumbs [aria-current] {
  color:var(--color-muted)
}
/* Flexible hero retains the source image positioning within its own section. */
.hero {
  overflow:hidden
}
:is(.home .hero--fullscreen,.hero--fullscreen.hero--service) {
  background-color:var(--color-background);
  background-image:url('../images/hero-pattern.svg');
  background-position:center top;
  background-repeat:repeat;
  background-size:560px 480px
}
.hero-inner {
  position:relative;
  min-height:680px;
  padding-top:80px;
  padding-bottom:100px
}
.hero-copy {
  position:relative;
  z-index:2;
  max-width:665px
}
.hero-copy h1 {
  max-width:665px
}
.hero-city {
  display:block
}
.hero-copy>p {
  font-size:20px;
  max-width:516px;
  margin-top:18px
}
.hero-actions {
  display:flex;
  gap:8px;
  margin-top:38px;
  position:relative;
  z-index:2
}
.hero-actions .button {
  white-space:nowrap
}
.hero-image {
  position:absolute;
  top:20px;
  right:-60px;
  width:660px;
  height:660px;
  object-fit:contain;
  z-index:0
}
.benefits {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
  margin-top:58px;
  position:relative;
  z-index:3
}
.benefit {
  display:flex;
  align-items:center;
  gap:12px;
  min-height:92px;
  padding:20px 20px 20px 28px;
  border:1px solid var(--color-border);
  background:white;
  border-radius:12px
}
.benefit .icon {
  width:36px;
  height:36px
}
.benefit p {
  font-size:18px
}
.hero--service .hero-inner {
  min-height:530px
}
.hero--service .hero-copy {
  max-width:764px
}
.hero--service .hero-image {
  object-fit:contain;
  object-position:center bottom;
  height:560px;
  width:483px;
  right:-27px;
  top:0
}
.hero--service .hero-copy>p {
  max-width:616px
}
.audience .section-heading h2 {
  max-width:940px
}
.audience .section-heading p {
  max-width:486px
}
.audience-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-block:1px solid var(--color-border);
  align-items:stretch
}
.check-list {
  list-style:none;
  padding:0;
  border-right:1px solid var(--color-border)
}
.check-list li {
  min-height:79px;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:22px;
  border-bottom:1px solid var(--color-border);
  padding:16px 20px 16px 0
}
.check-list li:last-child {
  border:0
}
.check-list .icon {
  width:42px;
  height:30px
}
.audience-image {
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  justify-content:center
}
.audience-image::before {
  content:'';
  position:absolute;
  border-radius:50%;
  width:400px;
  height:400px;
  background:#b9e2df;
  bottom:-53px;
  right:63px
}
.audience-image>img {
  position:relative;
  width:601px;
  max-width:none;
  height:400px;
  object-fit:contain;
  flex-shrink:0
}
.mini-cta {
  text-align:center;
  margin:0 auto;
  padding:80px 20px;
  position:relative;
  overflow:hidden
}
.mini-cta::before,.cta::before {
  content:'';
  position:absolute;
  width:368px;
  height:368px;
  left:50%;
  top:0;
  transform:translateX(-50%);
  border-radius:50%;
  background:repeating-radial-gradient(circle,transparent 0,transparent 19px,#57aba610 20px,#57aba610 21px);
  pointer-events:none
}
.mini-cta h3 {
  position:relative;
  font-size:32px;
  max-width:770px;
  margin:auto
}
.mini-cta p {
  position:relative;
  max-width:485px;
  margin:18px auto 28px
}
.audience {
  padding-bottom:20px
}
.dental-audience {
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:28px
}
.dental-cards {
  display:grid;
  grid-template-columns:1fr 1fr
}
.audience-card {
  padding:28px 26px 28px 0;
  border-top:1px solid var(--color-border)
}
.audience-card:nth-child(even) {
  border-left:1px solid var(--color-border);
  padding-left:28px
}
.audience-card .icon {
  width:42px;
  height:30px;
  margin-bottom:18px
}
.audience-card h3 {
  font-size:24px;
  margin-bottom:18px
}
.audience-card p {
  font-size:18px
}
.dental-office {
  height:100%;
  width:100%;
  object-fit:cover;
  border-radius:12px;
  max-height:628px
}
.dental-audience~.mini-cta {
  padding-bottom:90px
}
.services .section-heading h2 {
  max-width:660px
}
.service-list {
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-auto-flow:column;
  grid-template-rows:repeat(5,1fr);
  gap:8px 28px
}
.service-link {
  min-height:66px;
  padding:18px 20px;
  border:1px solid var(--color-border);
  border-radius:8px;
  background:#fff;
  display:flex;
  align-items:center;
  gap:12px;
  font-size:18px
}
.service-link .icon {
  width:24px;
  height:24px
}
.service-arrow {
  margin-left:auto;
  color:var(--color-primary);
  font-size:22px
}
.steps .section-heading h2 {
  max-width:660px
}
.steps .section-heading p {
  max-width:620px
}
.step-card {
  min-height:201px;
  padding:28px
}
.step-heading {
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:26px
}
.step-heading .icon {
  width:48px;
  height:48px;
  padding:9px;
  border-radius:50%;
  background:var(--color-soft)
}
.step-heading h3 {
  font-size:22px;
  max-width:185px
}
.step-number {
  margin-left:auto;
  align-self:flex-start;
  color:var(--color-muted);
  font-size:32px
}
.step-card p {
  font-size:18px
}
.step-card.card--teal h3 {
  margin-bottom:12px
}
.step-card.card--teal p {
  margin-bottom:20px
}
.step-card.card--teal .button {
  font-size:16px;
  min-height:44px;
  width:100%
}
.trust .section-heading {
  margin-bottom:68px
}
.trust .section-heading h2 {
  max-width:800px
}
.trust .section-heading p {
  max-width:605px
}
.trust-layout {
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:28px;
  min-height:640px
}
.trust-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}
.trust-card {
  padding:22px;
  background:#fff
}
.trust-card>.icon {
  width:30px;
  height:30px;
  margin-bottom:18px
}
.trust-card h3 {
  font-size:22px;
  margin-bottom:16px
}
.trust-card p {
  font-size:18px
}
.trust-card:last-child {
  grid-column:1/-1;
  padding:22px;
  display:grid;
  grid-template-columns:30px 1fr;
  gap:12px
}
.trust-card:last-child p {
  grid-column:2
}
.trust-card:last-child h3,.trust-card:last-child .icon {
  margin-bottom:0
}
.trust-person {
  position:relative;
  overflow:hidden;
  align-self:stretch;
  min-height:640px
}
.trust-person>img {
  position:absolute;
  width:533px;
  max-width:none;
  height:800px;
  object-fit:cover;
  object-position:top;
  bottom:-107px;
  right:-7px
}
.trust-stat {
  position:absolute;
  left:10px;
  top:90px;
  background:var(--color-primary);
  color:#fff;
  padding:18px 26px;
  border-radius:12px
}
.trust-stat strong {
  font-size:52px;
  line-height:1;
  display:block
}
.trust-stat span {
  font-size:16px
}
.person-caption {
  position:absolute;
  bottom:0;
  left:60px;
  right:0;
  background:var(--color-text);
  padding:24px 28px;
  border-radius:12px;
  color:#fff
}
.person-caption strong {
  font-size:26px
}
.person-caption p {
  font-size:16px;
  margin-top:10px
}
.stars {
  font-size:20px;
  letter-spacing:4px;
  color:var(--color-primary);
  display:block;
  margin-top:12px
}
.review-card {
  min-height:275px;
  display:grid;
  grid-template-columns:156px 1fr;
  gap:28px;
  background:linear-gradient(180deg,var(--color-background),white)
}
.review-image {
  padding:0;
  align-self:start
}
.review-image img {
  width:156px;
  height:219px;
  object-fit:contain
}
.review-card h3 {
  margin-bottom:18px;
  font-size:24px
}
.review-card p {
  font-size:18px
}
.review-grid {
  gap:28px
}
.team-card {
  position:relative;
  border:1px solid var(--color-border);
  border-radius:12px;
  overflow:hidden;
  min-width:0;
  background:#e5ddcc;
  padding:220px 3px 3px
}
.team-card>img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top
}
.team-card-body {
  position:relative;
  padding:18px;
  background:white;
  border:1px solid var(--color-border);
  border-radius:10px;
  min-height:170px
}
.team-card-body h3 {
  font-size:22px;
  margin-bottom:12px
}
.team-card-body p {
  font-size:16px
}
.team-card-body .team-role {
  font-size:14px;
  margin-bottom:14px;
  color:var(--color-muted)
}
.team-grid.grid--3 .team-card {
  padding-top:320px
}
.team-grid.grid--3 .team-card-body {
  min-height:200px
}
.experience {
  display:inline-block;
  padding:5px 8px;
  border:1px solid #d7efed;
  background:#f2faf9;
  color:var(--color-primary);
  border-radius:5px;
  font-size:14px;
  line-height:1.1;
  margin-top:12px
}
.cta-wrap {
  padding-block:0 0
}
.cta {
  position:relative;
  overflow:hidden;
  padding:70px 60px 60px;
  border-radius:12px;
  background:var(--color-primary);
  color:white;
  min-height:453px
}
.cta::before {
  top:42px;
  width:430px;
  height:430px;
  background:repeating-radial-gradient(circle,transparent 0,transparent 22px,#ffffff20 23px,#ffffff20 24px)
}
.cta>* {
  position:relative
}
.cta .section-heading {
  margin-bottom:38px
}
.cta .section-heading h2 {
  font-size:36px;
  max-width:940px
}
.cta .section-heading p {
  max-width:470px
}
.form-fields {
  display:flex;
  gap:6px;
  justify-content:center
}
.lead-form input:not([type=checkbox]) {
  height:54px;
  border:1px solid var(--color-border);
  border-radius:8px;
  padding:16px 20px;
  background:#fff;
  width:190px;
  min-width:0;
  font-size:16px;
  color:var(--color-text)
}
.lead-form input::placeholder {
  color:var(--color-muted)
}
.lead-form .button {
  font-size:16px
}
.consent {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-size:14px;
  margin-top:16px;
  color:inherit
}
.consent input {
  width:17px;
  height:17px;
  flex-shrink:0;
  margin:0
}
.consent a {
  text-decoration:underline;
  text-underline-offset:3px
}
.cta .consent {
  color:#e2f3f1
}
.cta .consent a:hover {
  color:#fff
}
.form-status {
  font-size:16px;
  margin-top:10px;
  text-align:center
}
.form-status:empty {
  display:none
}
.cta-note {
  text-align:center;
  font-size:14px;
  margin:24px auto 0;
  max-width:850px
}
.blog-section {
  padding-top:100px
}
.post-card {
  border-radius:12px;
  overflow:hidden
}
.post-image {
  display:block;
  height:268px;
  border-radius:12px;
  overflow:hidden
}
.post-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .2s
}
.post-image:hover img {
  transform:scale(1.02)
}
.post-body {
  padding:22px;
  border:1px solid var(--color-border);
  background:linear-gradient(180deg,var(--color-background),white);
  border-radius:12px;
  min-height:195px;
  display:flex;
  flex-direction:column
}
.post-meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--color-muted);
  font-size:16px;
  font-weight:600;
  line-height:1;
  margin-bottom:22px
}
.post-meta>span {
  display:flex;
  gap:6px;
  align-items:center
}
.post-meta .icon {
  width:16px;
  height:16px
}
.post-body h3 {
  font-size:22px;
  line-height:1.15;
  margin-bottom:20px
}
.post-author {
  margin-top:auto;
  text-decoration:underline;
  text-decoration-color:var(--color-primary);
  text-underline-offset:4px;
  font-size:16px
}
.pagination {
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:38px
}
.page-numbers {
  min-width:44px;
  height:44px;
  padding:12px;
  background:#f7f7f7;
  border-radius:8px;
  line-height:1
}
.page-numbers.current {
  background:var(--color-primary);
  color:white
}
.site-footer {
  padding-top:38px;
  padding-bottom:38px
}
.footer-grid {
  display:grid;
  grid-template-columns:1.2fr 1.2fr .65fr 1fr;
  gap:38px;
  font-size:16px
}
.footer-grid h2 {
  color:var(--color-muted);
  font-size:16px;
  font-weight:400;
  margin-bottom:18px
}
.footer-grid ul {
  list-style:none;
  padding:0
}
.footer-grid li {
  margin-bottom:8px
}
.footer-grid p {
  line-height:1.5
}
.footer-description {
  font-size:16px;
  max-width:285px;
  color:var(--color-muted);
  margin:18px 0 22px
}
.footer-phone {
  display:flex;
  gap:8px;
  align-items:center;
  white-space:nowrap;
  font-size:20px;
  font-weight:600
}
.footer-phone>.icon {
  width:18px;
  height:18px
}
.footer-phone .social .icon {
  width:30px;
  height:30px
}
.footer-bottom {
  margin-top:38px;
  padding-top:20px;
  border-top:1px solid var(--color-border);
  display:grid;
  grid-template-columns:1.2fr 1.5fr 1.35fr;
  gap:38px;
  color:var(--color-muted);
  font-size:14px
}
.footer-bottom>a:last-child {
  text-align:right
}
/* Service sections and content layouts. */
.document-card {
  background:white
}
.document-card h3 {
  display:flex;
  align-items:center;
  gap:18px;
  font-size:28px;
  padding-bottom:28px;
  border-bottom:1px solid var(--color-border)
}
.document-card h3>.icon {
  width:42px;
  height:42px
}
.document-card ul {
  list-style:none;
  padding:0
}
.document-card li {
  display:flex;
  gap:12px;
  padding-block:20px;
  border-bottom:1px solid var(--color-border);
  min-height:80px
}
.document-card li:last-child {
  border:0
}
.document-card li>.icon {
  width:30px;
  height:24px;
  margin-top:3px
}
.document-card strong {
  font-size:22px;
  font-weight:500
}
.document-card li p {
  font-size:16px;
  color:var(--color-muted);
  margin-top:6px
}
.document-callout {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:28px;
  padding:38px 0 0
}
.document-callout p {
  margin-top:12px
}
.price-card {
  padding:28px;
  display:flex;
  flex-direction:column;
  position:relative
}
.price-number {
  position:absolute;
  right:24px;
  top:28px;
  color:var(--color-muted);
  font-size:24px
}
.price-card h3 {
  font-size:26px;
  max-width:240px;
  padding-right:35px
}
.price-description {
  margin-top:16px;
  min-height:73px
}
.price {
  display:flex;
  align-items:baseline;
  gap:8px;
  flex-wrap:wrap;
  margin-block:28px
}
.price strong {
  font-size:40px
}
.price small {
  font-size:13px;
  color:var(--color-muted)
}
.price-time {
  border-block:1px solid var(--color-border);
  padding-block:18px;
  display:flex;
  gap:18px;
  align-items:center
}
.price-time small {
  color:var(--color-muted);
  font-size:12px
}
.price-time strong {
  font-size:24px
}
.price-card ul {
  list-style:none;
  padding:26px 0;
  margin-bottom:20px
}
.price-card li {
  display:flex;
  gap:8px;
  font-size:16px;
  margin-bottom:14px
}
.price-card li .icon {
  width:17px;
  height:17px;
  margin-top:2px
}
.price-card>.button {
  margin-top:auto
}
.price-card--featured {
  border:2px solid var(--color-primary);
  background:var(--color-primary);
  color:#fff
}
.price-card--featured .price small,.price-card--featured .price-time small {
  color:#d9f0ee
}
.price-card--featured .price-time {
  border-color:#ffffff40
}
.price-card--featured>.button {
  background:var(--color-text);
  border-color:var(--color-text)
}
.faq-list details {
  border:1px solid var(--color-border);
  border-radius:12px;
  background:linear-gradient(180deg,var(--color-background),#fff);
  margin-bottom:10px
}
.faq-list summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:25px 28px;
  font-size:24px;
  font-weight:600
}
.faq-list summary::-webkit-details-marker {
  display:none
}
.faq-list summary>span {
  width:20px;
  height:20px;
  position:relative;
  flex:none
}
.faq-list summary>span::before,.faq-list summary>span::after {
  content:'';
  position:absolute;
  top:9px;
  left:0;
  width:20px;
  height:2px;
  background:var(--color-primary)
}
.faq-list summary>span::after {
  transform:rotate(90deg)
}
.faq-list details[open] summary>span::after {
  transform:none
}
.faq-answer {
  padding:0 28px 28px;
  max-width:1080px
}
.seo-section {
  padding-top:20px
}
.seo-section h2 {
  margin-bottom:26px
}
.about-intro .section-heading h1 {
  max-width:850px
}
.about-photo {
  width:100%;
  height:545px;
  object-fit:cover;
  border-radius:12px
}
.stats .section-heading {
  max-width:710px
}
.stat {
  border:1px solid var(--color-border);
  border-radius:12px;
  padding:28px;
  min-height:224px
}
.stat strong {
  font-size:46px;
  color:var(--color-primary)
}
.stat p {
  font-size:18px;
  margin-top:30px
}
.timeline {
  padding:0;
  list-style:none;
  background:white;
  border:1px solid var(--color-border);
  border-radius:12px;
  padding-inline:28px
}
.timeline li {
  display:grid;
  grid-template-columns:240px 1fr;
  gap:28px;
  padding-block:28px;
  border-bottom:1px solid var(--color-border);
  align-items:stretch;
  min-height:186px
}
.timeline li:last-child {
  border-bottom:0
}
.timeline-year {
  border-radius:8px;
  background:var(--color-soft);
  color:var(--color-primary);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:36px;
  font-weight:500
}
.timeline h3 {
  font-size:26px;
  margin-bottom:16px
}
.timeline p {
  font-size:18px
}
.mission-statement {
  padding:38px
}
.eyebrow {
  font-size:14px;
  display:block;
  margin-bottom:18px
}
.mission-statement h3 {
  font-size:32px;
  margin-bottom:26px
}
.mission-statement p {
  font-size:18px;
  margin-bottom:45px
}
.mission-statement>strong {
  display:block;
  font-size:22px;
  font-weight:500;
  border-top:1px solid #ffffff30;
  padding-top:24px
}
.values {
  display:grid;
  gap:14px
}
.values .card {
  display:flex;
  gap:16px;
  padding:26px
}
.values .icon {
  width:40px;
  height:40px
}
.values h3 {
  font-size:24px;
  margin-bottom:16px
}
.values p {
  font-size:18px
}
.office-layout {
  gap:28px
}
.office-map {
  display:block;
  border-radius:12px;
  overflow:hidden
}
.office-map img {
  width:100%;
  height:100%;
  min-height:430px;
  object-fit:cover
}
.office {
  padding:38px
}
.office h2 {
  font-size:36px;
  padding-bottom:26px
}
.office dl>div {
  border-top:1px solid #ffffff40;
  padding-top:20px;
  margin-bottom:28px
}
.office dl>div:last-child {
  margin:0
}
.office dt {
  font-size:16px;
  margin-bottom:10px
}
.office dt::before {
  content:'• ';
  color:white
}
.office dd {
  font-size:22px;
  font-weight:500
}
.contact-cards {
  margin-top:28px
}
.contact-cards .card {
  display:flex;
  flex-direction:column;
  padding:22px;
  background:white
}
.contact-label {
  display:block;
  border:1px solid var(--color-border);
  border-radius:7px;
  background:var(--color-background);
  padding:8px 12px;
  font-size:16px;
  align-self:flex-start;
  margin-bottom:24px
}
.contact-cards h3 {
  font-size:22px;
  overflow-wrap:anywhere
}
.contact-cards p {
  font-size:14px;
  color:var(--color-muted);
  margin-top:8px;
  margin-bottom:32px
}
.contact-cards .button {
  font-size:16px;
  min-height:46px;
  padding:12px 10px;
  margin-top:auto
}
.company-details {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border:1px solid var(--color-border);
  border-radius:12px;
  overflow:hidden;
  background:white;
  margin-top:28px
}
.company-details>div {
  border-right:1px solid var(--color-border);
  border-bottom:1px solid var(--color-border);
  padding:22px
}
.company-details dt {
  text-transform:uppercase;
  font-size:14px;
  color:var(--color-muted);
  margin-bottom:12px
}
.company-details dd {
  font-size:20px;
  overflow-wrap:anywhere
}
.company-bank {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:30px;
  margin-top:22px
}
.company-bank p {
  font-size:14px;
  color:var(--color-muted)
}
.company-bank .button {
  font-size:16px;
  min-height:46px
}
.expert-intro {
  padding:30px 0 60px
}
.expert-layout {
  display:grid;
  grid-template-columns:2fr 1fr;
  gap:38px
}
.expert-layout h1 {
  font-size:46px
}
.expert-role {
  font-size:26px;
  margin-top:18px
}
.expert-bio {
  margin-top:48px;
  font-size:18px;
  line-height:1.45
}
.expert-bio p+p {
  margin-top:20px
}
.expert-portrait {
  background:#eee9de;
  border-radius:12px;
  overflow:hidden;
  position:relative
}
.expert-portrait img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:top
}
.article-section {
  padding:48px 0 100px
}
.article-layout {
  display:grid;
  grid-template-columns:minmax(0,764px) minmax(0,368px);
  gap:28px;
  align-items:start
}
.article h1 {
  font-size:46px
}
.article-meta {
  display:flex;
  gap:28px;
  flex-wrap:wrap;
  font-size:16px;
  margin-block:24px
}
.article-meta a {
  text-decoration:underline;
  text-decoration-color:var(--color-primary)
}
.article-meta time {
  color:var(--color-muted)
}
.article-cover {
  margin-block:28px
}
.article-cover img {
  width:100%;
  height:430px;
  object-fit:cover;
  border-radius:12px
}
.article-toc {
  background:var(--color-background);
  border:1px solid var(--color-border);
  padding:28px;
  border-radius:12px;
  margin-block:38px
}
.article-toc h2 {
  font-size:26px;
  margin-bottom:20px
}
.article-toc li {
  margin-bottom:12px
}
.article-sidebar {
  position:sticky;
  top:28px
}
.article-sidebar h2 {
  font-size:30px;
  line-height:1.15
}
.article-sidebar p {
  margin-block:24px
}
.article-sidebar .button {
  width:100%
}
.article .mini-cta {
  background:var(--color-background);
  border-radius:12px;
  padding:38px;
  margin-top:50px
}
.article .mini-cta h2 {
  font-size:32px
}
.prose {
  line-height:1.55;
  overflow-wrap:break-word
}
.prose h1 {
  margin-bottom:36px
}
.prose h2 {
  font-size:32px;
  margin:38px 0 22px;
  line-height:1.2
}
.prose h3 {
  font-size:26px;
  margin:30px 0 18px
}
.prose p {
  margin-bottom:20px
}
.prose ul,.prose ol {
  padding-left:26px;
  margin:20px 0
}
.prose li {
  margin-bottom:8px
}
.prose a {
  text-decoration:underline;
  text-decoration-color:var(--color-primary);
  text-underline-offset:3px
}
.prose a.button {
  text-decoration:none
}
.prose blockquote {
  margin:28px 0;
  padding:24px;
  border-left:4px solid var(--color-primary);
  background:var(--color-soft);
  border-radius:0 10px 10px 0
}
.prose blockquote p:last-child {
  margin-bottom:0
}
.prose .notice {
  padding:24px;
  border:1px solid var(--color-primary);
  border-radius:12px;
  background:var(--color-background)
}
.prose table {
  width:100%;
  border-collapse:collapse;
  margin:28px 0;
  font-size:16px
}
.prose th,.prose td {
  border:1px solid var(--color-border);
  padding:16px;
  text-align:left
}
.prose th {
  background:var(--color-soft)
}
.prose figure {
  margin:28px 0
}
.prose figcaption {
  color:var(--color-muted);
  font-size:14px;
  text-align:center;
  margin-top:10px
}
.prose img {
  border-radius:12px
}
.table-scroll {
  overflow:auto
}
.dialog {
  border:1px solid var(--color-border);
  border-radius:12px;
  padding:70px 56px 56px;
  max-width:566px;
  width:calc(100% - 40px);
  color:var(--color-text);
  background:white;
  max-height:calc(100dvh - 40px);
  overflow:auto
}
.dialog::backdrop {
  background:#253c3670;
  backdrop-filter:blur(3px)
}
.dialog h2 {
  text-align:center;
  font-size:40px;
  line-height:1.1;
  margin-bottom:18px
}
.dialog-content>p {
  max-width:354px;
  margin:0 auto 28px;
  text-align:center
}
.dialog-close {
  position:absolute;
  right:0;
  top:0;
  width:48px;
  height:48px;
  background:var(--color-background);
  color:var(--color-text);
  font-size:32px;
  border-radius:0 12px 0 8px;
  line-height:1
}
.dialog .form-fields {
  display:flex;
  flex-direction:column;
  gap:10px
}
.dialog .lead-form input:not([type=checkbox]) {
  width:100%;
  height:58px;
  font-size:18px
}
.dialog .lead-form .button {
  background:var(--color-primary);
  border-color:var(--color-primary);
  font-size:18px
}
.dialog .consent {
  align-items:flex-start;
  font-size:12px;
  text-align:left
}
.dialog .consent input {
  margin-top:2px
}
.dialog--cities {
  max-width:1160px;
  padding:38px
}
.dialog--cities h2 {
  text-align:left;
  font-size:32px;
  margin-bottom:28px
}
.dialog--cities>input {
  width:100%;
  height:58px;
  border:1px solid var(--color-border);
  background:var(--color-background);
  border-radius:8px;
  padding:18px 20px
}
.city-list {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-top:28px
}
.city-list a {
  font-size:18px;
  padding-block:4px
}
.city-empty {
  margin-top:24px
}
.success-image {
  height:240px;
  width:100%;
  object-fit:contain
}
.dialog#success-dialog>.button {
  width:100%
}
.dialog--image {
  max-width:800px;
  padding:48px 24px 24px
}
.dialog--image>img {
  max-height:80vh;
  width:auto;
  margin:auto
}
.component-samples {
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  align-items:center;
  margin-bottom:35px
}
.swatch {
  width:160px;
  min-height:100px;
  border:1px solid var(--color-border);
  padding:20px;
  border-radius:12px
}
.component-section {
  padding-block:40px;
  border-bottom:1px solid var(--color-border)
}
@media(min-width:1101px) and (max-width:1300px) {
  .nav-row {
    gap:28px
  }
  .navigation,.nav-links {
    gap:22px
  }
  .navigation .mobile-menu-scroll>.button {
    padding-inline:14px;
    font-size:16px
  }
  .brand {
    font-size:24px
  }
  .hero-image {
    right:-90px
  }
  .hero-copy {
    max-width:60%
  }
  .hero-copy h1 {
    font-size:52px
  }
  .hero-actions {
    flex-wrap:wrap
  }
  .footer-grid {
    gap:24px
  }
  .footer-phone {
    flex-wrap:wrap
  }
}
@media(max-width:1100px) {
  :root {
    --section-space:80px
  }
  .nav-row {
    height:76px
  }
  .menu-toggle {
    display:flex;
    width:42px;
    height:42px;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    background:var(--color-primary);
    border-radius:7px;
    padding:10px
  }
  .menu-toggle span {
    height:2px;
    background:white;
    width:100%;
    transition:transform .18s
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(7px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:nth-child(2) {
    opacity:0
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-7px) rotate(-45deg)
  }
  .navigation {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    width:100%;
    padding:24px 40px;
    background:#fff;
    border-bottom:1px solid var(--color-border);
    max-height:calc(100dvh - 136px);
    overflow:auto
  }
  .navigation.is-open {
    display:block
  }
  .nav-links {
    display:block
  }
  .nav-links a {
    display:block;
    padding-block:14px
  }
  .navigation .mobile-menu-scroll>.button {
    margin-top:18px;
    width:100%
  }
  .services-menu summary {
    padding-block:14px;
    justify-content:space-between
  }
  .mega-menu {
    position:static;
    transform:none;
    width:100%;
    padding:20px;
    background:var(--color-background);
    box-shadow:none;
    border-radius:12px;
    grid-template-columns:1fr;
    gap:20px
  }
  .mega-links {
    grid-template-columns:1fr 1fr
  }
  .menu-expert {
    display:none
  }
  .hero-copy {
    max-width:65%
  }
  .hero-copy h1 {
    font-size:44px
  }
  .hero-copy>p {
    font-size:18px;
    max-width:85%
  }
  .hero-image {
    width:560px;
    height:560px;
    top:30px;
    right:-110px
  }
  .hero-actions {
    flex-wrap:wrap;
    max-width:370px
  }
  .hero-actions .button {
    width:100%;
    font-size:16px
  }
  .benefits {
    gap:14px;
    margin-top:38px
  }
  .benefit {
    padding:18px;
    gap:10px;
    align-items:flex-start
  }
  .benefit p {
    font-size:16px
  }
  .hero-inner {
    min-height:650px;
    padding-bottom:70px
  }
  .hero--service .hero-inner {
    min-height:600px
  }
  .hero--service .hero-image {
    right:-80px;
    top:0
  }
  .section-heading h2,.section-heading h1 {
    font-size:38px
  }
  .grid--4 {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .step-card {
    padding:20px
  }
  .step-heading {
    flex-wrap:wrap
  }
  .step-number {
    font-size:24px
  }
  .step-heading h3 {
    font-size:20px;
    max-width:none
  }
  .step-card p {
    font-size:16px
  }
  .trust-layout {
    grid-template-columns:1.2fr 1fr
  }
  .trust-person>img {
    right:-95px
  }
  .trust-stat {
    left:0;
    top:100px;
    padding:14px
  }
  .person-caption {
    left:0;
    padding:20px
  }
  .person-caption strong {
    font-size:22px
  }
  .trust-card p {
    font-size:16px
  }
  .review-card {
    grid-template-columns:120px 1fr;
    padding:22px;
    gap:18px;
    min-height:240px
  }
  .review-image img {
    width:120px;
    height:169px
  }
  .review-card h3 {
    font-size:22px
  }
  .review-card p {
    font-size:16px
  }
  .team-card {
    padding-top:260px
  }
  .team-card>img {
    object-position:center 20%
  }
  .team-grid.grid--3 .team-card {
    padding-top:230px
  }
  .team-grid.grid--3 .team-card-body {
    min-height:230px
  }
  .team-card-body h3 {
    font-size:20px
  }
  .cta {
    padding:60px 35px
  }
  .cta .section-heading h2 {
    font-size:32px
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
    gap:38px
  }
  .footer-bottom {
    gap:20px;
    grid-template-columns:1fr 1fr
  }
  .footer-bottom>a:last-child {
    text-align:left
  }
  .dental-audience {
    grid-template-columns:1fr
  }
  .dental-office {
    height:350px;
    object-position:center
  }
  .price-card {
    padding:20px
  }
  .price {
    gap:4px
  }
  .price strong {
    font-size:30px
  }
  .price-number {
    display:none
  }
  .price-card h3 {
    padding:0;
    font-size:24px
  }
  .price-card li {
    font-size:14px
  }
  .mission-statement h3 {
    font-size:28px
  }
  .values .card {
    padding:20px;
    gap:10px
  }
  .values h3 {
    font-size:20px
  }
  .values p {
    font-size:16px
  }
  .article-layout {
    grid-template-columns:minmax(0,1fr)
  }
  .article-sidebar {
    display:none
  }
  .expert-layout {
    grid-template-columns:1.5fr 1fr
  }
  .office-map img {
    min-height:390px
  }
  .office {
    padding:28px
  }
  .office h2 {
    font-size:30px
  }
  .office dd {
    font-size:20px
  }
  .timeline li {
    grid-template-columns:180px 1fr
  }
  .post-image {
    height:220px
  }
  .post-body {
    padding:18px
  }
  .post-body h3 {
    font-size:20px
  }
}
@media(max-width:767px) {
  :root {
    --section-space:60px;
    --grid-gap:20px
  }
  body {
    font-size:16px
  }
  .container {
    width:calc(100% - 40px)
  }
  h1 {
    font-size:28px
  }
  h2 {
    font-size:28px
  }
  h3 {
    font-size:22px
  }
  .section-heading {
    margin-bottom:30px
  }
  .section-heading h2,.section-heading h1 {
    font-size:28px;
    line-height:1.1
  }
  .section-heading p {
    font-size:16px;
    margin-top:12px
  }
  .grid--2,.grid--3,.grid--4 {
    grid-template-columns:minmax(0,1fr)
  }
  .button {
    min-height:48px;
    font-size:16px;
    padding:14px 18px
  }
  .topbar {
    height:44px
  }
  .city-toggle {
    display:none
  }
  .topbar-contact {
    width:100%;
    justify-content:space-between;
    gap:8px
  }
  .online {
    font-size:12px;
    gap:6px
  }
  .topbar .socials {
    gap:5px
  }
  .topbar .social>.icon {
    width:24px;
    height:24px
  }
  .phone {
    font-size:14px
  }
  .nav-row {
    height:60px
  }
  .brand {
    font-size:22px;
    gap:10px
  }
  .brand .icon {
    width:29px;
    height:32px
  }
  .menu-toggle {
    width:38px;
    height:38px;
    padding:9px
  }
  .navigation {
    padding:14px 20px 20px;
    max-height:calc(100dvh - 106px)
  }
  .mega-menu {
    padding:0;
    border:0;
    background:white
  }
  .mega-links {
    display:block
  }
  .mega-links a {
    display:block;
    font-size:16px;
    padding-block:14px
  }
  .navigation .nav-links a {
    padding-block:8px
  }
  .services-menu[open] {
    padding-bottom:16px
  }
  .navigation .mobile-menu-scroll>.button {
    margin-top:18px
  }
  .breadcrumbs {
    font-size:14px;
    padding-block:16px;
    gap:8px
  }
  .hero {
    text-align:center
  }
  .hero-inner {
    padding-top:60px;
    padding-bottom:60px;
    min-height:0;
    display:flex;
    flex-direction:column
  }
  .hero-copy {
    max-width:none;
    width:100%
  }
  .hero-copy h1 {
    font-size:28px;
    max-width:420px;
    margin:auto;
    line-height:1.1
  }
  .hero-copy>p {
    font-size:16px;
    max-width:306px;
    margin:16px auto 0
  }
  .hero-actions {
    display:flex;
    flex-direction:column;
    gap:10px;
    margin:34px auto 0;
    width:100%;
    max-width:none
  }
  .hero-actions .button {
    min-height:48px;
    white-space:normal
  }
  .hero-actions .button--secondary {
    font-size:14px;
    min-height:52px;
    padding-inline:12px
  }
  .hero-image {
    position:relative;
    right:auto;
    top:auto;
    width:360px;
    height:360px;
    max-width:calc(100% + 40px);
    align-self:center;
    margin:20px -20px 0;
    object-fit:contain
  }
  .benefits {
    grid-template-columns:1fr;
    margin-top:0;
    gap:10px;
    text-align:left
  }
  .benefit {
    min-height:92px;
    align-items:center;
    padding:20px;
    gap:12px
  }
  .benefit p {
    font-size:16px;
    max-width:240px
  }
  .benefit .icon {
    width:36px;
    height:36px
  }
  .hero--service .hero-inner {
    min-height:0
  }
  .hero--service .hero-image {
    position:relative;
    top:auto;
    right:auto;
    width:310px;
    height:360px;
    margin-bottom:-60px
  }
  .hero--service .hero-copy>p {
    max-width:310px
  }
  .audience {
    padding-bottom:0
  }
  .audience-layout {
    display:flex;
    flex-direction:column
  }
  .check-list {
    border-right:0
  }
  .check-list li {
    min-height:65px;
    font-size:18px;
    padding:15px 0;
    gap:10px
  }
  .check-list .icon {
    width:36px;
    height:26px
  }
  .audience-image {
    height:280px
  }
  .audience-image::before {
    height:270px;
    width:270px;
    right:25px;
    bottom:-25px
  }
  .audience-image>img {
    width:390px;
    height:280px
  }
  .mini-cta {
    padding:60px 0;
    overflow:visible
  }
  .mini-cta::before {
    max-width:100%
  }
  .mini-cta h3 {
    font-size:26px
  }
  .mini-cta p {
    font-size:16px;
    max-width:300px;
    margin:16px auto 24px
  }
  .mini-cta .button {
    width:100%
  }
  .service-list {
    display:flex;
    flex-direction:column;
    gap:8px
  }
  .service-link {
    font-size:16px;
    min-height:58px;
    padding:16px;
    gap:10px
  }
  .service-link .icon {
    width:22px;
    height:22px
  }
  .services .section-heading br {
    display:none
  }
  .steps .section-heading p {
    max-width:300px
  }
  .step-card {
    padding:22px;
    min-height:170px
  }
  .step-heading {
    flex-wrap:nowrap;
    margin-bottom:22px
  }
  .step-heading h3 {
    font-size:22px;
    max-width:180px
  }
  .step-heading .icon {
    width:42px;
    height:42px
  }
  .step-number {
    font-size:26px
  }
  .step-card p {
    font-size:16px
  }
  .step-card.card--teal .button {
    min-height:46px
  }
  .trust .section-heading {
    margin-bottom:30px
  }
  .trust-layout {
    display:flex;
    flex-direction:column;
    gap:20px;
    min-height:0
  }
  .trust-grid {
    display:flex;
    flex-direction:column;
    gap:10px
  }
  .trust-card {
    padding:20px;
    min-height:178px
  }
  .trust-card h3 {
    font-size:22px;
    margin-bottom:14px
  }
  .trust-card p {
    font-size:16px
  }
  .trust-card>.icon {
    margin-bottom:14px
  }
  .trust-card:last-child {
    display:block;
    min-height:0
  }
  .trust-card:last-child .icon {
    margin-bottom:14px
  }
  .trust-card:last-child h3 {
    margin-bottom:14px
  }
  .trust-person {
    min-height:450px
  }
  .trust-person>img {
    width:355px;
    height:533px;
    right:calc(50% - 185px);
    bottom:-68px
  }
  .trust-stat {
    top:40px;
    left:0;
    border-radius:8px;
    padding:14px 16px
  }
  .trust-stat strong {
    font-size:34px
  }
  .trust-stat span {
    font-size:12px
  }
  .person-caption {
    left:20px;
    right:0;
    padding:18px 20px;
    bottom:0
  }
  .person-caption strong {
    font-size:22px
  }
  .person-caption p {
    font-size:13px;
    margin-top:8px
  }
  .stars {
    font-size:16px;
    margin-top:10px
  }
  .reviews .section-heading h2 {
    max-width:300px
  }
  .review-grid {
    gap:10px
  }
  .review-card {
    min-height:181px;
    padding:20px;
    grid-template-columns:100px 1fr;
    gap:16px
  }
  .review-image img {
    width:100px;
    height:141px
  }
  .review-card h3 {
    font-size:18px;
    margin-bottom:14px
  }
  .review-card p {
    font-size:14px;
    line-height:1.35
  }
  .section-action {
    margin-top:30px
  }
  .section-action .button {
    width:100%
  }
  .team .section-heading p {
    max-width:290px
  }
  .team-card,.team-grid.grid--3 .team-card {
    padding-top:204px;
    min-height:347px
  }
  .team-card>img {
    object-position:center 27%;
    object-fit:cover
  }
  .team-card-body,.team-grid.grid--3 .team-card-body {
    padding:16px;
    min-height:139px
  }
  .team-card-body h3 {
    font-size:20px;
    margin-bottom:10px
  }
  .team-card-body p {
    font-size:14px
  }
  .team-card-body .team-role {
    font-size:12px;
    margin-bottom:12px
  }
  .team-grid.grid--3 .team-card {
    padding-top:275px
  }
  .team-grid.grid--3 .team-card-body {
    min-height:170px
  }
  .cta {
    padding:60px 20px 20px;
    min-height:581px
  }
  .cta .section-heading {
    margin-bottom:30px
  }
  .cta .section-heading h2 {
    font-size:26px;
    line-height:1
  }
  .cta .section-heading p {
    font-size:16px;
    max-width:280px;
    margin-top:16px
  }
  .cta::before {
    width:320px;
    height:320px;
    top:0
  }
  .form-fields {
    flex-direction:column;
    gap:10px
  }
  .lead-form input:not([type=checkbox]) {
    width:100%;
    height:44px;
    font-size:14px;
    padding:14px 15px
  }
  .lead-form .button {
    min-height:48px
  }
  .consent {
    font-size:12px;
    line-height:1.35;
    align-items:center;
    max-width:265px;
    margin:15px auto 0
  }
  .cta-note {
    text-align:left;
    font-size:13px;
    margin-top:24px;
    line-height:1.3
  }
  .blog-section {
    padding-top:60px
  }
  .post-image {
    height:200px
  }
  .post-body {
    padding:20px;
    min-height:179px
  }
  .post-body h3 {
    font-size:20px;
    line-height:1.15;
    margin-bottom:18px
  }
  .post-meta {
    font-size:14px;
    margin-bottom:18px
  }
  .post-author {
    font-size:14px
  }
  .site-footer {
    padding-top:38px;
    padding-bottom:35px
  }
  .footer-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px 20px;
    font-size:14px
  }
  .footer-grid>div:first-child,.footer-grid>div:last-child {
    grid-column:1/-1
  }
  .footer-grid h2 {
    font-size:14px;
    margin-bottom:14px
  }
  .footer-grid .brand {
    font-size:22px
  }
  .footer-description {
    font-size:14px;
    max-width:285px;
    margin:14px 0 18px
  }
  .footer-phone {
    font-size:18px
  }
  .footer-grid li {
    margin-bottom:8px
  }
  .footer-bottom {
    display:flex;
    flex-direction:column;
    gap:15px;
    font-size:14px;
    margin-top:28px;
    padding-top:22px
  }
  .dental-cards {
    display:flex;
    flex-direction:column
  }
  .audience-card,.audience-card:nth-child(even) {
    padding:24px 0;
    border-left:0
  }
  .audience-card h3 {
    font-size:22px;
    margin-bottom:14px
  }
  .audience-card p {
    font-size:16px
  }
  .dental-office {
    height:320px
  }
  .dental-audience {
    gap:0
  }
  .dental-audience~.mini-cta {
    padding-bottom:60px
  }
  .document-card {
    padding:20px
  }
  .document-card h3 {
    font-size:24px;
    padding-bottom:20px;
    gap:12px
  }
  .document-card h3 .icon {
    width:32px;
    height:32px
  }
  .document-card li {
    padding-block:16px;
    min-height:68px
  }
  .document-card strong {
    font-size:18px
  }
  .document-card li p {
    font-size:14px
  }
  .document-callout {
    flex-direction:column;
    text-align:center;
    padding-top:30px;
    gap:20px
  }
  .document-callout .button {
    width:100%
  }
  .price-card {
    padding:24px
  }
  .price-card h3 {
    font-size:26px
  }
  .price-description {
    min-height:0;
    font-size:16px
  }
  .price strong {
    font-size:36px
  }
  .price-card li {
    font-size:16px
  }
  .price-card ul {
    padding-block:22px;
    margin-bottom:0
  }
  .faq-list summary {
    font-size:20px;
    padding:22px 20px
  }
  .faq-answer {
    padding:0 20px 22px;
    font-size:16px
  }
  .seo-section {
    padding-top:0
  }
  .about-photo {
    height:250px
  }
  .about-intro .section-heading br {
    display:none
  }
  .stats .grid {
    gap:10px
  }
  .stat {
    padding:24px;
    min-height:150px
  }
  .stat strong {
    font-size:36px
  }
  .stat p {
    font-size:16px;
    margin-top:18px
  }
  .timeline {
    padding:0 20px
  }
  .timeline li {
    grid-template-columns:1fr;
    gap:20px;
    padding-block:20px
  }
  .timeline-year {
    padding:22px;
    font-size:30px
  }
  .timeline h3 {
    font-size:22px;
    margin-bottom:14px
  }
  .timeline p {
    font-size:16px
  }
  .mission-statement {
    padding:24px
  }
  .mission-statement h3 {
    font-size:26px;
    margin-bottom:20px
  }
  .mission-statement p {
    font-size:16px;
    margin-bottom:28px
  }
  .mission-statement>strong {
    font-size:20px
  }
  .values .card {
    padding:20px
  }
  .values h3 {
    font-size:20px;
    margin-bottom:12px
  }
  .office-map img {
    height:300px;
    min-height:0
  }
  .office {
    padding:24px
  }
  .office h2 {
    font-size:28px;
    padding-bottom:24px
  }
  .office dl>div {
    margin-bottom:24px
  }
  .office dt {
    font-size:14px
  }
  .office dd {
    font-size:20px
  }
  .contact-cards {
    gap:10px
  }
  .contact-cards .card {
    padding:20px
  }
  .contact-label {
    margin-bottom:18px
  }
  .contact-cards p {
    margin-bottom:24px
  }
  .company-details {
    grid-template-columns:1fr
  }
  .company-details>div {
    padding:20px
  }
  .company-details dd {
    font-size:18px
  }
  .company-bank {
    flex-direction:column;
    align-items:stretch;
    gap:20px
  }
  .company-bank p {
    font-size:13px
  }
  .expert-layout {
    display:flex;
    flex-direction:column
  }
  .expert-layout h1 {
    font-size:28px
  }
  .expert-role {
    font-size:22px;
    margin-top:12px
  }
  .expert-bio {
    font-size:16px;
    margin-top:28px
  }
  .expert-portrait {
    height:380px;
    max-width:360px;
    width:100%;
    margin:auto
  }
  .expert-portrait img {
    object-fit:contain;
    object-position:bottom
  }
  .article-section {
    padding:35px 0 60px
  }
  .article h1 {
    font-size:28px
  }
  .article-meta {
    font-size:14px;
    gap:16px;
    margin-block:18px
  }
  .article-cover img {
    height:220px
  }
  .article-toc {
    padding:22px;
    margin-block:28px
  }
  .article-toc h2 {
    font-size:24px
  }
  .article-toc ol {
    padding-left:20px
  }
  .prose h2 {
    font-size:26px;
    margin:28px 0 18px
  }
  .prose h3 {
    font-size:22px
  }
  .prose th,.prose td {
    padding:10px;
    font-size:14px
  }
  .prose blockquote {
    padding:20px
  }
  .article .mini-cta {
    padding:28px 20px
  }
  .article .mini-cta h2 {
    font-size:26px
  }
  .dialog {
    padding:60px 20px 20px;
    width:calc(100% - 40px);
    max-height:calc(100dvh - 40px)
  }
  .dialog h2 {
    font-size:28px;
    max-width:260px;
    margin-inline:auto
  }
  .dialog-content>p {
    font-size:16px;
    max-width:240px;
    margin-bottom:30px
  }
  .dialog-close {
    width:40px;
    height:40px;
    font-size:28px
  }
  .dialog .lead-form input:not([type=checkbox]) {
    height:52px;
    font-size:16px;
    padding-inline:18px
  }
  .dialog .lead-form .button {
    min-height:54px;
    font-size:16px
  }
  .dialog--cities {
    padding:60px 20px 28px
  }
  .dialog--cities h2 {
    font-size:26px
  }
  .city-list {
    grid-template-columns:1fr;
    gap:8px
  }
  .dialog--image {
    padding:48px 14px 14px
  }
  .success-image {
    height:210px
  }
}
@media(max-width:359px) {
  .topbar-contact {
    gap:5px
  }
  .online {
    font-size:11px
  }
  .phone {
    font-size:12px
  }
  .topbar .socials {
    gap:3px
  }
  .topbar .social>.icon {
    width:20px;
    height:20px
  }
  .brand {
    font-size:20px
  }
  .review-card {
    grid-template-columns:90px 1fr;
    padding:15px;
    gap:12px
  }
  .review-image img {
    width:90px;
    height:127px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important
  }
}
@media print {
  .site-header,.site-footer,.cta-wrap,.article-sidebar,.dialog,.hero-actions,.skip-link {
    display:none!important
  }
  body {
    background:white
  }
  .container {
    width:100%
  }
  .section {
    padding-block:20px
  }
  .article-layout {
    display:block
  }
  a {
    color:inherit
  }
  .card {
    break-inside:avoid
  }
}
@media(min-width:1101px) {
  .trust .section-heading {
    margin-bottom:48px
  }
  .trust .section-heading p {
    max-width:740px
  }
  .trust-layout {
    grid-template-columns:566px minmax(0,1fr);
    min-height:666px;
    border-top:1px solid var(--color-border);
    padding-top:14px
  }
  .trust-grid {
    gap:14px;
    grid-template-rows:minmax(228px,auto) minmax(250px,auto) minmax(130px,auto)
  }
  .trust-card {
    padding:22px
  }
  .trust-card>.icon {
    margin-bottom:26px
  }
  .trust-card h3 {
    font-size:20px;
    line-height:1.1;
    margin-bottom:12px;
    max-width:230px
  }
  .trust-card p {
    font-size:14px;
    line-height:1.25;
    max-width:225px
  }
  .trust-card:last-child {
    display:block;
    padding:24px 22px
  }
  .trust-card:last-child>.icon {
    float:left;
    margin:0 16px 16px 0
  }
  .trust-card:last-child h3 {
    max-width:none;
    padding-top:5px;
    margin-bottom:22px
  }
  .trust-card:last-child p {
    max-width:none;
    clear:both
  }
  .trust-person {
    min-height:652px;
    overflow:visible
  }
  .trust-person>img {
    height:800px;
    top:-42px;
    bottom:auto;
    right:-7px;
    clip-path:inset(0 0 106px 0)
  }
  .trust-stat {
    top:82px;
    left:36px;
    padding:12px 18px;
    border-radius:12px;
    box-shadow:6px 6px 0 #b9e2df
  }
  .trust-stat strong {
    font-size:40px;
    text-align:center
  }
  .person-caption {
    left:auto;
    right:0;
    width:305px;
    padding:22px 20px 20px;
    border-radius:12px 12px 0 0;
    bottom:0
  }
  .person-caption strong {
    font-size:26px
  }
  .person-caption p {
    font-size:16px;
    color:#a5a8a7;
    white-space:nowrap
  }
  .stars {
    color:#ffd600;
    font-size:20px;
    letter-spacing:3px
  }
  .service-link {
    font-size:20px;
    font-weight:600
  }
  .step-card p {
    font-size:16px
  }
  .document-callout {
    background:var(--color-primary);
    color:white;
    border-radius:12px;
    padding:28px;
    margin-top:28px
  }
  .document-callout .button {
    background:var(--color-text);
    border-color:var(--color-text)
  }
}
/* Editorial templates share the same form, type scale and asset components. */
.stars {
  display:flex;
  gap:2px
}
.stars .icon {
  width:20px;
  height:20px
}
.expert-intro {
  padding:30px 0 28px
}
.expert-layout {
  grid-template-columns:368px 1fr;
  background:white;
  border:1px solid var(--color-border);
  border-radius:12px;
  overflow:hidden;
  gap:28px
}
.expert-layout>div:first-child {
  padding:38px 36px 28px 0
}
.expert-portrait {
  order:-1;
  border-radius:12px;
  background:var(--color-primary);
  height:453px
}
.expert-portrait img {
  object-fit:cover;
  object-position:center
}
.expert-bio {
  border-top:1px solid var(--color-border);
  padding-top:28px;
  margin-top:28px
}
.expert-bio p+p {
  margin-top:8px
}
.expert-role {
  font-size:22px
}
.blog-section--author {
  padding-top:0;
  background:var(--color-background)
}
.article-hero {
  background:var(--color-primary);
  color:white;
  overflow:hidden
}
.article-hero>.container {
  position:relative;
  min-height:606px;
  padding-block:70px 60px
}
.article-hero-copy {
  width:640px;
  position:relative;
  z-index:2
}
.article-hero h1 {
  font-size:46px;
  line-height:1.1;
  margin-bottom:40px
}
.article-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  width:566px
}
.article-facts>div {
  background:white;
  border-radius:8px;
  padding:18px 22px;
  color:var(--color-text);
  min-height:90px
}
.article-facts>div:last-child {
  grid-column:1/-1
}
.article-facts dt {
  color:var(--color-primary);
  font-size:22px;
  font-weight:600;
  margin-bottom:10px
}
.article-facts dd {
  font-size:18px
}
.article-hero-portrait {
  position:absolute;
  right:20px;
  bottom:-120px;
  width:533px;
  height:800px;
  object-fit:cover
}
.article-section {
  padding-top:100px
}
.article-layout {
  grid-template-columns:minmax(0,860px) minmax(0,270px);
  gap:30px
}
.article-content h4 {
  font-size:24px;
  margin:30px 0 20px
}
.article-toc {
  background:white;
  border:0;
  border-radius:0;
  max-width:360px
}
.article-toc h2 {
  font-size:36px
}
.article-toc a {
  color:var(--color-primary);
  text-decoration:underline
}
.article-sidebar {
  padding-top:195px
}
.sidebar-expert {
  padding:10px;
  background:white
}
.sidebar-expert>img {
  height:220px;
  width:100%;
  object-fit:cover;
  object-position:center 25%;
  background:var(--color-primary);
  border-radius:8px
}
.sidebar-expert h2 {
  font-size:20px;
  margin:18px 10px 12px
}
.sidebar-expert p {
  font-size:14px;
  margin:0 10px 18px
}
.sidebar-expert .socials {
  margin:0 10px 18px;
  flex-wrap:wrap
}
.sidebar-expert .socials>a {
  font-size:14px
}
.sidebar-expert .button {
  font-size:14px;
  min-height:42px;
  padding-inline:10px
}
.article .mini-cta--teal {
  background:var(--color-primary);
  color:white;
  margin-top:38px
}
.mini-cta--teal .form-fields {
  max-width:650px;
  margin:auto
}
.mini-cta--teal .consent {
  font-size:12px
}
.article-callout {
  position:relative;
  margin-top:38px;
  overflow:hidden;
  padding:38px;
  min-height:300px
}
.article-callout>div {
  position:relative;
  z-index:1;
  max-width:430px
}
.article-callout h2 {
  font-size:30px;
  line-height:1.1;
  margin-bottom:20px
}
.article-callout p {
  font-size:16px;
  margin-bottom:20px
}
.article-callout>img {
  position:absolute;
  width:390px;
  height:300px;
  object-fit:contain;
  right:-30px;
  bottom:0
}
.article-callout .form-fields {
  display:grid;
  grid-template-columns:1fr 1fr
}
.article-callout .form-fields>.button {
  grid-column:1/-1
}
.article-callout .lead-form input:not([type=checkbox]) {
  width:100%
}
.article-callout .consent {
  font-size:12px;
  max-width:360px
}
.article-callout p.cta-note {
  font-size:12px;
  margin-top:20px;
  margin-bottom:0
}
.prose .article-sample-photo {
  height:368px;
  width:100%;
  object-fit:cover
}
@media(max-width:1100px) {
  .expert-layout {
    grid-template-columns:300px 1fr
  }
  .expert-portrait {
    height:100%
  }
  .expert-layout h1 {
    font-size:38px
  }
  .expert-layout>div:first-child {
    padding:28px 28px 28px 0
  }
  .expert-bio {
    font-size:16px
  }
  .article-hero-copy {
    width:60%
  }
  .article-hero h1 {
    font-size:40px
  }
  .article-facts {
    width:100%
  }
  .article-hero-portrait {
    right:-100px
  }
  .article-layout {
    display:block
  }
  .article-sidebar {
    display:none
  }
}
@media(max-width:767px) {
  .expert-intro {
    padding:20px 0 30px
  }
  .expert-layout {
    display:flex;
    flex-direction:column;
    gap:0
  }
  .expert-layout>div:first-child {
    padding:24px 20px
  }
  .expert-layout h1 {
    font-size:28px
  }
  .expert-role {
    font-size:20px
  }
  .expert-portrait {
    height:360px;
    max-width:none;
    border-radius:0
  }
  .expert-bio {
    margin-top:20px;
    padding-top:20px
  }
  .expert-bio p+p {
    margin-top:16px
  }
  .blog-section--author {
    padding-top:0
  }
  .article-hero>.container {
    padding-block:60px 0;
    min-height:0
  }
  .article-hero-copy {
    width:100%
  }
  .article-hero h1 {
    font-size:28px;
    line-height:1.1;
    margin-bottom:30px
  }
  .article-facts {
    width:100%;
    gap:8px
  }
  .article-facts>div {
    padding:15px;
    min-height:76px
  }
  .article-facts dt {
    font-size:16px;
    margin-bottom:8px
  }
  .article-facts dd {
    font-size:14px
  }
  .article-hero-portrait {
    position:relative;
    width:320px;
    height:420px;
    right:auto;
    bottom:auto;
    object-fit:cover;
    object-position:top;
    margin:20px auto 0
  }
  .article-section {
    padding-top:60px
  }
  .article-toc {
    padding:22px
  }
  .article-toc h2 {
    font-size:28px
  }
  .article-content h4 {
    font-size:22px
  }
  .article-callout {
    padding:28px 20px 0;
    min-height:0
  }
  .article-callout h2 {
    font-size:26px
  }
  .article-callout .form-fields {
    display:flex
  }
  .article-callout>img {
    position:relative;
    width:100%;
    height:240px;
    right:auto;
    bottom:auto
  }
  .article-callout .consent {
    text-align:left
  }
  .article-callout>div {
    max-width:none
  }
  .mini-cta--teal .form-fields {
    width:100%
  }
  .prose .article-sample-photo {
    height:200px
  }
}
.type-h1 {
  font-size:56px;
  font-weight:600;
  line-height:1.1;
  margin-block:30px
}
@media(max-width:767px) {
  .type-h1 {
    font-size:28px
  }
}
