/* Intermediate layouts: content determines height before columns become too narrow. */
@media(min-width:768px) and (max-width:1399px) {
 .section-heading h1,.section-heading h2,.mini-cta h3 {line-height:1.12}
 .button {white-space:normal}
 .step-card {height:auto;min-height:201px;display:flex;flex-direction:column}
 .step-heading {height:auto;min-height:48px;align-items:start}
 .step-heading h3 {max-width:none;line-height:1.2}
 .step-card p {max-width:none}
 .step-card.card--teal .button {margin-top:auto}
 .trust-layout {height:auto;min-height:0;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:stretch}
 .trust-grid {grid-template-rows:auto;align-self:stretch}
 .trust-card {min-height:0}
 .trust-card:last-child {height:auto}
 .trust-person {width:100%;height:100%;min-height:620px;margin-top:0;overflow:hidden}
 .trust-person>img {width:100%;height:100%;top:0;bottom:auto;right:0;object-fit:contain;object-position:right bottom;clip-path:none}
 .person-caption {height:auto;min-height:135px;max-width:100%;left:auto;right:0}
 .person-caption p {line-height:1.35}
 .trust-stat {left:12px;top:70px;width:145px}
 .trust-stat strong {font-size:34px}
 .review-card {height:auto;min-height:275px;grid-template-columns:120px minmax(0,1fr);gap:18px;padding:22px}
 .review-card>div {min-width:0}
 .review-card h3 {white-space:normal;font-size:24px;line-height:1.15}
 .review-card p {width:auto;max-width:none;line-height:1.35}
 .review-image img {width:120px;height:auto}
 .team-grid:not(.grid--3) .team-card-body,.team-grid.grid--3 .team-card-body {height:auto;min-height:170px}
 .team-grid.grid--3 .team-card {height:auto;min-height:500px}
 .team-grid.grid--3 .team-card-body {min-height:230px}
 .team-grid.grid--3 .experience {margin-top:18px;line-height:1.3}
 .team-role {line-height:1.35!important}
 .post-body {height:auto;min-height:195px;display:flex;flex-direction:column}
 .post-body h3 {line-height:1.2}
 .post-author {margin-top:auto;align-self:start}
 .cta {height:auto;min-height:453px;padding:50px 35px}
 .page-template-page-service .cta-wrap {height:auto}
 .cta-note {line-height:1.4}
 .cta .form-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .cta .form-fields>.button {grid-column:1/-1;width:100%;height:auto;min-height:54px}
 .cta .lead-form input:not([type=checkbox]) {min-width:0;width:100%}
 .document-card {min-height:0!important}
 .document-card h3 {height:auto;min-height:70px;line-height:1.2}
 .document-row {flex-wrap:wrap}
 .document-row strong {flex:1;min-width:0;max-width:none!important;line-height:1.3!important}
 .document-aside {flex-basis:100%;margin-left:42px;white-space:normal;line-height:1.3}
 .document-card li p {line-height:1.4}
 .document-callout {height:auto;min-height:158px}
 .document-callout h3 {line-height:1.15}
 .document-callout .button {flex:none;margin-right:0}
 .price-card {height:auto;min-height:539px}
 .price-card h3 {padding-right:32px}
 .price {flex-wrap:wrap}
 .price-time {height:auto;min-height:50px;flex-wrap:wrap}
 .price-card li {line-height:1.3}
 .price-card>.button {margin-top:auto}
 .mission-statement {height:auto;min-height:478px}
 .mission-statement>strong {margin-top:24px}
 .values .card {height:auto;min-height:150px;grid-template-rows:auto auto}
 .values p {width:100%;max-width:none}
 .timeline li,.timeline li:last-child {height:auto;min-height:186px;grid-template-columns:minmax(120px,23%) minmax(0,1fr)}
 .timeline h3 {line-height:1.2}
 .stat {height:auto}
 .contact-cards .card {height:auto;min-height:242px;display:flex;flex-direction:column}
 .contact-cards h3 {overflow-wrap:anywhere;line-height:1.25}
 .contact-cards .button {margin-top:auto;min-height:46px;height:auto}
 .contact-cards p {margin-bottom:22px;line-height:1.35}
 .office {height:auto}
 .office dd {line-height:1.4}
 .company-details {grid-template-rows:auto}
 .company-details dd {overflow-wrap:anywhere}
 .company-bank {height:auto;gap:24px}
 .article-facts>div {height:auto;min-height:96px}
 .article-facts dt,.article-facts dd {line-height:1.25}
 .article .mini-cta--teal .form-fields {grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%}
 .article .mini-cta--teal .form-fields>.button {grid-column:1/-1;width:100%}
 .article .mini-cta--teal {height:auto;min-height:337px;padding:32px}
 .article .mini-cta--teal h2 {line-height:1.15}
 .article-callout {display:grid;grid-template-columns:minmax(0,1fr);height:auto;min-height:0;padding:32px 32px 0}
 .article-callout>div,.article-callout--plan>div {max-width:none}
 .article-callout>img,.article-callout--plan>img {position:relative;inset:auto;justify-self:end;width:min(100%,440px);height:auto;opacity:1;margin-top:24px}
 .article-callout .lead-form {width:100%}
 .article-callout p,.article-callout--plan>div>p:not(.cta-note) {max-width:none}
 .article-callout--risk::before {bottom:0;right:30px}
}
@media(min-width:768px) and (max-width:1199px) {
 .team-grid.grid--3,.team-grid.grid--4,.blog-grid,.contact-cards {grid-template-columns:repeat(2,minmax(0,1fr))}
 .article {width:100%}
 .article-sidebar {position:static;width:min(100%,420px);margin:32px auto 0}
 .article-hero>.container {display:grid;grid-template-columns:minmax(0,1fr) 30%;gap:24px;align-items:end;padding-top:60px;min-height:0}
 .article-hero-copy {width:100%;padding-bottom:40px}
 .article-hero h1 {font-size:38px;line-height:1.12}
 .article-hero-portrait {position:relative;inset:auto;width:100%;height:auto;aspect-ratio:300 / 400}
 .article-hero-portrait::before {width:100%;height:auto;aspect-ratio:1;left:0}
}
@media(min-width:768px) and (max-width:1100px) {
 .menu-toggle {background:transparent;border:1px solid var(--color-primary)}
 .hero .hero-inner,.hero--fullscreen .hero-inner {
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:1fr auto;
  gap:32px 24px;padding:40px 0;min-height:calc(100svh - var(--site-header-height,136px));align-items:center;
 }
 .hero--service .hero-inner {grid-template-rows:1fr}
 .hero .hero-copy {grid-column:1;grid-row:1;width:100%;max-width:none}
 .hero .hero-copy h1 {font-size:clamp(34px,4.2vw,44px);line-height:1.12;max-width:none}
 .hero .hero-copy>p {width:100%;max-width:none;font-size:18px;line-height:1.4}
 .hero .hero-actions {width:100%;max-width:none;gap:10px;margin-top:26px}
 .hero .hero-actions .button {width:100%;min-height:54px;height:auto;white-space:normal;line-height:1.2;padding:16px 12px}
 .hero .hero-image,.hero--fullscreen .hero-image,.hero--service .hero-image {
  position:relative;grid-column:2;grid-row:1;inset:auto;width:100%;height:auto;max-width:100%;max-height:none;transform:none;align-self:end;margin:0;aspect-ratio:1;object-fit:contain;
 }
 .hero--service .hero-image {aspect-ratio:483 / 560;object-fit:contain;object-position:center bottom}
 .hero .city-illustration {position:relative;grid-column:2;grid-row:1;inset:auto;transform:none;width:100%;height:auto;aspect-ratio:468 / 512;align-self:center}
 .hero .city-illustration::before {top:8.6%}
 .hero .city-illustration>img {width:54.7%;height:auto;aspect-ratio:256 / 402}
 .hero .benefits {grid-column:1/-1;grid-row:2;margin:0;gap:14px}
 .benefit {height:auto;min-height:140px;flex-direction:column;align-items:flex-start;padding:18px;gap:12px}
 .benefit p {max-width:none;line-height:1.35}
}

/* Tablet service heroes: scale the cutout by its own proportions and seat it on
   the hero edge. The former 483/560 box made portrait WebPs shrink twice and
   the shared 40px bottom padding left a visible strip below the person. */
@media(min-width:768px) and (max-width:1100px) {
 .hero--service .hero-inner {padding-bottom:0}
 .hero--service .hero-copy {align-self:center;padding-bottom:40px}
 .hero--service .hero-image {
  width:min(105%,420px);height:auto;max-width:none;
  max-height:calc(100svh - var(--site-header-height,136px) - 40px);
  aspect-ratio:auto;justify-self:end;align-self:end;
  object-fit:contain;object-position:center bottom
 }
}
@media(min-width:768px) and (max-width:1023px) {
 .trust-layout {grid-template-columns:1fr;gap:28px}
 .trust-grid {grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
 .trust-person {justify-self:center;width:min(100%,450px);height:600px;min-height:0}
 .trust-person>img {top:0;bottom:auto}
 .review-grid,.office-layout {grid-template-columns:1fr}
 .document-callout {flex-direction:column;align-items:flex-start;gap:24px}
 .document-callout .button {width:min(100%,308px)}
 .expert-layout {grid-template-columns:minmax(220px,35%) minmax(0,1fr);gap:24px}
 .expert-layout h1 {font-size:36px;line-height:1.12}
 .expert-role {font-size:22px;line-height:1.3}
 .expert-layout>div:first-child {padding-right:24px}
 .expert-portrait {height:auto;aspect-ratio:2 / 3}
 .expert-portrait img {width:100%;height:auto;top:0}
 .office-map {height:400px}
 .company-details {grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(min-width:768px) and (max-width:900px) {
 .documents .grid {grid-template-columns:1fr}
}

/* Wide phones and small tablets get their own composition, not a stretched 360 px frame. */
@media(min-width:480px) and (max-width:767px) {
 :root {--grid-gap:16px;--section-space:64px}
 .container {width:calc(100% - 48px)}
 .section-heading :is(h1,h2,p),.about-intro .section-heading h1,.reviews .section-heading h2,.page-template-page-service .reviews .section-heading h2,.faq .section-heading h2,.page-template-page-service .steps .section-heading h2 {max-width:100%;width:auto}
 .section-heading :is(h1,h2,p) {max-width:100%!important}
 .section-heading :is(h1,h2) {font-size:30px;line-height:1.12!important}
 .mobile-line-break,.faq-question-break {display:none}
 .button {white-space:normal}
 .hero .hero-inner,.hero--fullscreen .hero-inner {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto;gap:24px 16px;padding:36px 0;min-height:0;align-items:center}
 .hero .hero-copy {grid-column:1/-1;grid-row:1;width:100%;max-width:none}
 .hero .hero-copy h1 {font-size:clamp(30px,4.8vw,36px);line-height:1.12;max-width:none;margin:0}
 .hero .hero-copy>p {width:100%;max-width:none;margin:18px 0 0}
 .hero .hero-actions {display:grid;grid-template-columns:1fr 1.3fr;gap:10px;margin-top:22px}
 .hero .hero-actions .button {width:100%;height:auto;min-height:52px;white-space:normal;line-height:1.2;padding:12px}
 .hero .hero-image,.hero--fullscreen .hero-image,.hero--service .hero-image {position:relative;grid-column:2;grid-row:2;inset:auto;width:100%;height:auto;max-width:none;max-height:none;aspect-ratio:1;object-fit:contain;transform:none;margin:0;align-self:end}
 .hero .benefits {grid-column:1;grid-row:2;width:100%;margin:0;gap:10px;grid-template-columns:1fr}
 .hero .benefit {height:auto;min-height:90px;padding:12px;gap:8px;align-items:flex-start}
 .hero .benefit .icon {width:24px;height:24px}
 .hero .benefit p {max-width:none;line-height:1.3}
 .hero .city-illustration {position:relative;grid-column:2;grid-row:2;inset:auto;width:100%;height:auto;aspect-ratio:468 / 512;transform:none;margin:0}
 .hero .city-illustration>img {width:54.7%;height:auto;aspect-ratio:256 / 402}
 .hero .city-illustration::before {width:100%;height:auto;aspect-ratio:1;top:8.6%;left:0}
 .hero--service .hero-image {grid-column:1/-1;justify-self:center;width:min(70%,330px);aspect-ratio:483 / 560}
 .audience-image {width:100%;height:300px;margin:20px 0 0}
 .audience-image>img {width:100%;height:100%;object-fit:contain;object-position:center bottom}
 .audience-image::before {right:calc(50% - 140px)}
 .check-list li,.check-list li:nth-child(3) {height:auto;min-height:58px}
 .check-list li:nth-child(3)>span {max-width:none}
 .mini-cta {padding:48px 0}
 .mini-cta h3,.mini-cta p {max-width:100%}
 .mini-cta h3 {font-size:28px;line-height:1.15}
 .mini-cta .button {width:auto;min-width:260px;max-width:100%;padding-inline:24px}
 .service-list,.steps .grid,.trust-grid,.team-grid.grid--3,.team-grid.grid--4,.blog-grid,.contact-cards,.dental-cards,.stats .grid,.values {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 .service-list {margin:0}
 .service-list .service-link {padding:14px 12px;height:auto;gap:8px;align-items:flex-start}
 .service-link>span {max-width:none;min-width:0}
 .step-card,.step-card.card--teal {height:auto;min-height:0;padding:16px;display:flex;flex-direction:column}
 .step-heading {height:auto;display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-bottom:14px}
 .step-heading h3 {max-width:none;align-self:start;line-height:1.2}
 .step-heading .step-number {margin:0;align-self:start}
 .step-card:nth-child(n) p {max-width:none}
 .step-card.card--teal .button {margin-top:auto}
 .trust-card:nth-child(n) {height:auto;min-height:0;padding:16px}
 .trust-card:nth-child(n) :is(h3,p) {max-width:none}
 .trust-grid {grid-template-rows:none;grid-auto-rows:auto}
 .trust-card:last-child {grid-column:1/-1}
 .trust-person {width:min(100%,440px);height:520px;min-height:0;align-self:center;overflow:hidden}
 .trust-person>img {width:100%;height:100%;inset:0;object-fit:contain;object-position:right top;clip-path:none}
 .trust-stat {top:55px}
 .person-caption {width:100%;height:auto;min-height:110px}
 .review-card {height:auto;min-height:180px;grid-template-columns:120px minmax(0,1fr);padding:20px;gap:20px}
 .review-image img {width:120px;height:auto}
 .review-card h3 {white-space:normal;font-size:22px;line-height:1.2}
 .review-card p {width:auto;max-width:none;font-size:14px;line-height:1.4}
 .team-grid:not(.grid--3) .team-card,.team-grid.grid--3 .team-card {height:auto;min-height:0;padding:clamp(200px,36vw,270px) 3px 3px;display:flex;flex-direction:column}
 .team-grid:not(.grid--3) .team-card-body,.team-grid:not(.grid--3) .team-card:last-child .team-card-body,.team-grid.grid--3 .team-card-body {height:auto;min-height:0;padding:16px;flex:1}
 .team-grid:not(.grid--3) .team-card>img,.team-grid.grid--3 .team-card>img {height:clamp(200px,36vw,270px);min-height:0;object-fit:cover;object-position:center top}
 .team-card-body h3,.team-grid.grid--3 .team-card-body h3 {font-size:18px;line-height:1.2}
 .team-card-body .team-role,.team-grid.grid--3 .team-role {white-space:normal;line-height:1.3}
 .team-card-body p {max-width:none;line-height:1.35}
 .team-grid.grid--3 .experience {margin-top:16px;line-height:1.3}
 .post-image {height:auto;aspect-ratio:1.5}
 .post-image img {height:100%;width:100%;object-fit:cover}
 .post-body {height:auto;min-height:190px;padding:16px;display:flex;flex-direction:column}
 .post-meta {flex-wrap:wrap;gap:8px;font-size:12px;margin-bottom:16px}
 .post-meta>span {gap:4px}
 .post-body h3 {font-size:18px;line-height:1.25;max-width:none}
 .post-author {margin-top:auto}
 .cta {height:auto;min-height:0;padding:32px 24px}
 .cta .section-heading h2 {width:100%;margin-inline:0;font-size:28px;line-height:1.15}
 .cta .section-heading p {width:100%;max-width:none}
 .cta .form-fields,.article .mini-cta--teal .form-fields,.article-callout .form-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .cta .form-fields>.button,.article .form-fields>.button {grid-column:1/-1;width:100%;height:auto;min-height:48px;line-height:1.25}
 .cta .consent span {max-width:none}
 .cta-note {line-height:1.4}
 .dental-cards {grid-template-rows:none;grid-auto-rows:auto}
 .dental-cards .audience-card:nth-child(n) {grid-template-columns:1fr;grid-template-rows:auto;min-height:0;padding:20px 0;gap:14px}
 .dental-cards .audience-card:nth-child(n) :is(h3,p) {max-width:none}
 .dental-cards .audience-card p {font-size:14px;line-height:1.4}
 .document-card:nth-child(n) strong {max-width:none;line-height:1.3}
 .document-aside {grid-column:2;white-space:normal;line-height:1.3}
 .document-callout {min-height:0;padding:28px;gap:22px}
 .document-callout h3,.document-callout p {max-width:none}
 .document-callout .button {width:auto;max-width:100%}
 .price-card,.price-card:nth-child(3) {height:auto;min-height:0}
 .price-card li {line-height:1.35}
 .price-card>.button {margin-top:auto}
 .price-description,.price-card:nth-child(n) .price-description {max-width:none}
 .faq .faq-list summary {height:auto;min-height:72px}
 .faq .faq-answer p {max-width:none}
 .about-photo {height:auto;aspect-ratio:2.2;object-fit:cover}
 .stat,.stat:first-child,.stat:last-child {height:auto;min-height:110px;padding:20px 0;border-bottom:1px solid var(--color-border)}
 .stat:nth-child(n) p {max-width:none}
 .timeline li,.timeline li:nth-child(4),.timeline li:last-child {display:grid;grid-template-columns:100px minmax(0,1fr);height:auto;min-height:0;padding:5px}
 .timeline-year {height:100%;min-height:130px;display:grid;place-items:center;padding:0;font-size:30px}
 .timeline li:nth-child(n)>div {padding:16px}
 .timeline li:nth-child(n) :is(h3,p) {max-width:none}
 .mission-statement {height:auto;padding:24px}
 .mission-statement :is(h3,p),.mission-statement>strong {max-width:none}
 .mission-statement>strong {margin-top:24px}
 .values .card,.values .card:first-child {height:auto;grid-template-columns:1fr;grid-template-rows:auto;gap:12px;padding:16px}
 .values .card:nth-child(n) :is(h3,p) {max-width:none;grid-column:auto}
 .office {height:auto}
 .contact-cards .card,.contact-cards .card:nth-child(3) {height:auto;min-height:220px;padding:16px;display:flex;flex-direction:column}
 .contact-cards h3 {font-size:18px;line-height:1.25;overflow-wrap:anywhere}
 .contact-label {font-size:12px;padding-right:8px;max-width:100%}
 .contact-cards p {line-height:1.3;margin-bottom:18px}
 .contact-cards .button {margin-top:auto;height:auto;min-height:46px;line-height:1.2;padding-inline:8px}
 .company-details {grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}
 .company-details>div:nth-child(n) {grid-row:auto}
 .company-details dd {overflow-wrap:anywhere}
 .company-bank p {max-width:none}
 .footer-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
 .footer-grid>div:nth-child(2) {grid-column:auto}
 .footer-description {max-width:none}
 .expert-layout {grid-template-columns:38% minmax(0,1fr);padding:24px;gap:16px 24px}
 .expert-layout h1 {grid-column:2;grid-row:1;margin:0;align-self:end;font-size:28px;line-height:1.12}
 .expert-role {grid-column:2;grid-row:2;margin:0;align-self:start}
 .expert-portrait {grid-column:1;grid-row:1/3;width:100%;height:auto;aspect-ratio:2 / 3;margin:0}
 .expert-portrait img {width:100%;height:auto;max-width:100%}
 .expert-bio {grid-column:1/-1;grid-row:3;margin:8px 0 0;font-size:16px;line-height:1.4}
 .article-hero>.container {padding-top:40px}
 .article-hero h1 {max-width:none;font-size:30px;line-height:1.15}
 .article-facts>div {height:auto;min-height:76px}
 .article-facts dt {white-space:normal;line-height:1.3}
 .article .prose,.article-content :is(ul,ol) {font-size:16px;line-height:1.4}
 .article .prose .article-secondary-paragraph,.article-content [class*='sample-heading--'],.article-content blockquote p {max-width:none}
 .article-content blockquote,.article-content p.notice {min-height:0}
 .article .mini-cta--teal {height:auto;min-height:0;padding:28px}
 .article .mini-cta--teal h2,.article-callout h2,.article-callout--plan h2 {width:100%;max-width:none;margin:0 0 16px;font-size:26px;line-height:1.15}
 .article .mini-cta--teal>p,.article-callout p,.article-callout--plan>div>p:not(.cta-note) {max-width:none;line-height:1.4}
 .article .mini-cta--teal .consent,.article-callout .consent {max-width:none}
 .article-callout,.article-callout--plan {display:grid;height:auto;min-height:0;padding:28px 28px 0}
 .article-callout>div {width:100%;max-width:none}
 .article-callout>img,.article-callout--plan>img {position:relative;inset:auto;width:min(100%,380px);height:auto;margin:24px 0 0;justify-self:center;opacity:1;mask-image:none;-webkit-mask-image:none}
 .article-callout--plan p.cta-note {max-width:none;margin-top:20px}
}
@media(min-width:600px) and (max-width:767px) {
 .hero .hero-inner {grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
 .hero .hero-copy {grid-column:1;grid-row:1}
 .hero .hero-actions {grid-template-columns:1fr}
 .hero .hero-image,.hero .city-illustration,.hero--service .hero-image {grid-column:2;grid-row:1;width:100%;align-self:center}
 .hero .benefits {grid-column:1/-1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
 .hero .benefit {flex-direction:column;padding:14px}
 .pricing .grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}
 .price-card:nth-child(2) {margin-top:0}
 .price,.price-time {flex-wrap:wrap;height:auto;gap:8px}
 .price-risk {margin-left:0}
 .price-card>.button {margin-top:auto}
 .article-hero>.container {display:grid;grid-template-columns:minmax(0,1fr) 30%;gap:20px;align-items:end}
 .article-hero-copy {width:100%;padding-bottom:30px}
 .article-hero-portrait {width:100%;height:auto;aspect-ratio:240 / 312;margin:0}
 .article-hero-portrait::before {width:100%;height:auto;aspect-ratio:1}
}

/* The tablet portrait rests directly on the benefit cards; copy keeps its row spacing. */
@media(min-width:600px) and (max-width:767px) {
 .home .hero--fullscreen .hero-image {align-self:end;transform:translateY(24px)}
}

/* Wide phones and small tablets: later grid rules must not restore the hero's
   bottom padding or vertically centre portrait service artwork. */
@media(min-width:480px) and (max-width:767px) {
 .hero--service .hero-inner {padding-bottom:0}
 .hero--service .hero-image {
  height:auto;aspect-ratio:auto;align-self:end;
  object-fit:contain;object-position:center bottom
 }
}
@media(min-width:600px) and (max-width:767px) {
 .hero--service .hero-inner {grid-template-rows:auto;row-gap:0}
}
@media(min-width:768px) and (max-width:1100px) {
 .home .hero--fullscreen .hero-image {align-self:end;transform:translateY(32px)}
}

/* Center the transparent audience artwork inside its tablet column. */
@media(min-width:600px) and (max-width:1100px) {
 .home .audience-image {height:auto;min-height:300px;margin-inline:0}
 .home .audience-image>img {left:50%;right:auto;bottom:0;width:min(601px,150%);height:100%;max-width:none;object-fit:contain;object-position:center bottom;transform:translateX(-50%)}
 .home .audience-image::before {left:50%;right:auto;bottom:-40px;width:min(400px,95%);height:auto;aspect-ratio:1;transform:translateX(-50%)}
 .home .trust {padding-bottom:0}
 .home .trust-layout {padding-bottom:0;border-bottom:0}
 .home .trust-person>img {object-position:center bottom}
}
@media(min-width:600px) and (max-width:767px) {
 .home .audience-image::before {width:min(300px,95%)}
}

/* Stack-mode benefits follow the full mobile content width. */
@media(max-width:479px) {
 .hero .benefits {width:100%;align-self:stretch}
}

/* Hero descriptions use the same mobile content edges as the actions. */
@media(max-width:767px) {
 .hero .hero-copy>p {width:100%;max-width:none;margin-inline:0;padding-inline:0}
}

/* Service text is data: rows and cards grow while preserving the common grid. */
.page-template-page-service .audience-card {grid-template-rows:auto auto}
.page-template-page-service .step-card {height:auto}
.page-template-page-service .step-heading {height:auto}
.page-template-page-service .trust-card:nth-child(n) {height:auto}
.page-template-page-service .trust-layout {height:auto}
.page-template-page-service .document-card h3 {height:auto;min-height:64px}
.page-template-page-service .document-aside {white-space:normal}
.page-template-page-service .document-callout {height:auto}
.page-template-page-service .price-card {height:auto}
.page-template-page-service .price-card h3 {padding-right:28px}
.page-template-page-service .price,.page-template-page-service .price-time {height:auto;flex-wrap:wrap}
.page-template-page-service .price-card>.button {margin-top:auto}
.page-template-page-service .review-card {height:auto}
.page-template-page-service .review-card>div {min-width:0}
.page-template-page-service .review-card h3 {white-space:normal}
.page-template-page-service .cta-wrap,.page-template-page-service .cta {height:auto}
.page-template-page-service .faq .faq-list summary {height:auto;min-height:70px}
.page-template-page-service .faq-answer>:last-child {margin-bottom:0}
.page-template-page-service :is(.hero-copy,.section-heading,.card,.audience-card,.faq-question,.faq-answer,.city-seo-copy) {overflow-wrap:anywhere}
@media(min-width:1400px) {
 .page-template-page-service .dental-cards {grid-template-rows:minmax(202px,auto) minmax(225px,auto) minmax(201px,auto)}
 .page-template-page-service .step-card {min-height:201px}
 .page-template-page-service .step-heading {min-height:48px}
 .page-template-page-service .trust-grid {grid-template-rows:minmax(228px,auto) minmax(250px,auto) minmax(130px,auto)}
 .page-template-page-service .price-card {min-height:539px}
 .page-template-page-service .review-card {min-height:275px}
 .page-template-page-service .cta {min-height:453px}
}

@media(max-width:767px) {
 /* Keep the Figma gap even when the service template grows with its content. */
 .price-card ul {margin-bottom:20px}
 .page-template-page-service .step-heading {min-height:40px}
 .page-template-page-service .faq .faq-list summary {min-height:72px}
}
@media(min-width:768px) {
 .page-template-page-service .document-card h3 {min-height:70px}
}

/* Seat mobile hero artwork on the lower edge.  The shared wide-phone grid
   still contributes 36px of bottom padding; on service pages it also wins
   back align-self:center at 600px.  Reset both after every mobile layout so
   transparent cutouts meet the next section at every width below 768px. */
@media(max-width:767px) {
 .home .hero--fullscreen .hero-inner,.hero--service .hero-inner {padding-bottom:0}
 .hero--service .hero-image {
  height:auto;aspect-ratio:auto;margin-bottom:0;
  align-self:end;object-fit:contain;object-position:center bottom
 }
}

/* Keep the home audience photo and circle centred across narrow mobile widths. */
@media(max-width:599px) {
 .home .audience-image>img,.home .audience-image::before {left:50%;right:auto;transform:translateX(-50%)}
}
@media(max-width:479px) {
 .home .audience-image {width:calc(100% + 40px);margin-inline:-20px}
}

/* Keep the city illustration within narrow mobile content. */
@media(max-width:479px) {
 .page-template-page-city .city-illustration {max-width:100%}
}

/* The desktop sidebar sticks within the article's right column. */
.article-sidebar-track {display:contents}
@media(min-width:1200px) {
 .article-layout>.article {width:calc(100% - 297px)}
 .article-sidebar-track {display:block;position:absolute;right:0;top:166px;bottom:0;width:269px;--article-header-offset:0px}
 .admin-bar .article-sidebar-track {--article-header-offset:32px}
 .article-sidebar-track .article-sidebar {position:sticky;top:calc(var(--site-header-height,136px) + var(--article-header-offset) + 20px);right:auto;width:100%;margin:0;padding:0;max-height:calc(100dvh - var(--site-header-height,136px) - var(--article-header-offset) - 40px);overflow-y:auto;scrollbar-width:thin;border-radius:12px}
}

/* Mobile tables bleed to the viewport; their native scrollbar follows the text grid. */
.article-table-scrollbar {display:none}
@media(max-width:767px) {
 .article-content {--article-table-gutter:20px}
 .article-content .table-scroll--viewport {width:calc(100% + 2 * var(--article-table-gutter));max-width:none;margin-inline:calc(-1 * var(--article-table-gutter));padding-bottom:0;scrollbar-width:none}
 .article-content .table-scroll--viewport::-webkit-scrollbar {display:none}
 .article-table-track {width:max-content;padding-inline:var(--article-table-gutter)}
 .article-table-scrollbar:not([hidden]) {display:block;width:100%;height:10px;margin-top:19px;overflow-x:scroll;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:var(--color-primary) #dedede}
 .article-table-scrollbar>div {height:1px}
 .article-table-scrollbar::-webkit-scrollbar {height:6px}
 .article-table-scrollbar::-webkit-scrollbar-track {background:#dedede;border-radius:3px}
 .article-table-scrollbar::-webkit-scrollbar-thumb {background:var(--color-primary);border-radius:3px}
}
@media(min-width:480px) and (max-width:767px) {
 .article-content {--article-table-gutter:24px}
}
