/*
 * ADSC "Clarity" design system — Apple-inspired, Aloha-branded (2026-09-26).
 * Spec: .growth-os/mission/DESIGN-SYSTEM.md. Owner-approved direction.
 * Fonts: system San Francisco on Apple devices (never hosted), self-hosted Inter (SIL OFL) elsewhere.
 * Many legacy template <style> blocks use !important and print after this file, so selectors here
 * are prefixed with `html body` (and !important where a legacy !important rule would otherwise win).
 * Remove this file (and its enqueue in functions.php) to revert the whole look.
 */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("../fonts/inter-latin-wght-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{
 --ax-font-text:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter",system-ui,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
 --ax-font-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter",system-ui,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
 --ax-ink:#1d1d1f;--ax-ink-2:#5a5a60;--ax-line:#d2d2d7;--ax-bg:#fff;--ax-bg-2:#f5f5f7; /* 2026-10-19 AAA: ink-2 #6e6e73 -> #5a5a60 (6.9:1), gold #7a6837 -> #5f5127 (7.8:1) */
 --ax-navy:#172852;--ax-navy-2:#0f1c3d;--ax-gold:#5f5127;--ax-gold-on-dark:#d4af6f;
 --ax-r-card:22px;--ax-r-sm:12px;
 --font-body:var(--ax-font-text);--font-heading:var(--ax-font-display);
}
html body{font-family:var(--ax-font-text)!important;color:var(--ax-ink);-webkit-font-smoothing:antialiased;letter-spacing:-.011em;background:#fff}
html body h1,html body h2,html body h3,html body h4,html body .adsc-hero-v2-h1{font-family:var(--ax-font-display)!important;font-weight:600!important;letter-spacing:-.022em!important;text-shadow:none!important}
html body .adsc-home h2{font-size:clamp(2rem,1.2rem + 2.6vw,3rem)!important;line-height:1.08!important;color:var(--ax-ink)!important;margin-bottom:.6em!important}
html body .adsc-home h3{font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem)!important;line-height:1.2!important;color:var(--ax-ink)!important}
html body .adsc-home p,html body .adsc-home li{font-size:1.0625rem!important;line-height:1.47!important;color:var(--ax-ink-2);font-weight:400!important}
html body .adsc-hero .adsc-hero-v2-h1{font-size:clamp(2.5rem,1.4rem + 3.2vw,4rem)!important;line-height:1.05!important;letter-spacing:-.03em!important}
html body .adsc-hero p.adsc-hero-v2-lead{font-size:1.3rem!important;color:#fff!important;letter-spacing:-.01em}
html body .adsc-hero p.adsc-hero-v2-services{color:rgba(255,255,255,.86)!important;font-size:.95rem!important}
/* sections: generous whitespace, alternating white / #f5f5f7, no glass */
html body .adsc-home .adsc-section{padding:112px 0!important}
html body .adsc-home .adsc-section:not([style*="navy"]):not(.adsc-why):not(.adsc-appointment):not(.adsc-hero):nth-of-type(even){background:var(--ax-bg-2)!important}
html body .adsc-glass-card,html body .adsc-home .adsc-service-card,html body .adsc-home .adsc-deep-stats-card,html body .adsc-home .adsc-testimonial,html body .adsc-home .adsc-google-review-card,html body .adsc-home .adsc-hpsvc-card,html body .adsc-home .adsc-hpdoc-card{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border:0!important;border-radius:var(--ax-r-card)!important;box-shadow:0 2px 8px rgba(0,0,0,.04),0 12px 32px rgba(0,0,0,.06)!important;background:#fff!important}
html body .adsc-home .adsc-section[style*="navy"] .adsc-deep-stats-card,html body .adsc-home .adsc-why .adsc-glass-card{background:rgba(255,255,255,.06)!important;box-shadow:none!important}
/* eyebrow / labels */
html body .adsc-home .adsc-section-label,html body .adsc-home .adsc-card-badge,html body .adsc-home .adsc-deep-text>h3:first-child{font-size:1.0625rem!important;font-weight:600!important;letter-spacing:-.01em!important;text-transform:none!important;color:var(--ax-gold)!important}
/* dark moments stay navy, text white */
html body .adsc-home .adsc-section[style*="navy"] h2,html body .adsc-home .adsc-why h2,html body .adsc-home .adsc-appointment h2:not(.adsc-form h2){color:#fff!important}
html body .adsc-home .adsc-section[style*="navy"] p:not(.adsc-form p),html body .adsc-home .adsc-section[style*="navy"] li,html body .adsc-home .adsc-why p,html body .adsc-home .adsc-appointment p:not(.adsc-form p){color:rgba(255,255,255,.78)!important}
html body .adsc-home .adsc-appointment .adsc-form p,html body .adsc-form p.adsc-form-privacy{color:#4a5468!important}
html body .adsc-home .adsc-appointment .adsc-form a:not(.adsc-btn),html body .adsc-form p.adsc-form-privacy a{color:#172852!important;font-weight:600}
html body .adsc-home .adsc-section[style*="navy"] .adsc-deep-text>h3:first-child,html body .adsc-home .adsc-why .adsc-section-label{color:var(--ax-gold-on-dark)!important}
/* gold CTA band → calm light band */
html body .adsc-home .adsc-cta{background:var(--ax-bg-2)!important;padding:112px 0!important}
html body .adsc-home .adsc-cta h2{color:var(--ax-ink)!important}html body .adsc-home .adsc-cta p{color:var(--ax-ink-2)!important}
/* buttons: Apple pill */
html body .adsc-home.adsc-home.adsc-home a.adsc-btn{border-radius:980px!important;font-size:1.0625rem!important;font-weight:400!important;letter-spacing:-.01em!important;padding:12px 24px!important;min-height:48px}
html body .adsc-home.adsc-home.adsc-home .adsc-cta a.adsc-btn.adsc-btn-white{background:transparent!important;color:var(--ax-navy)!important;border-color:var(--ax-navy)!important}
/* text links: "Learn more ›" feel */
html body .adsc-home .adsc-hpsvc-more,html body .adsc-home .adsc-hpfaq-more a{font-weight:400!important;color:var(--ax-navy)!important;text-decoration:none!important}
/* accordions: hairline dividers */
html body .adsc-home .adsc-hpfaq-item{border:0!important;border-bottom:1px solid var(--ax-line)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
html body .adsc-home .adsc-hpfaq-q{font-size:1.1875rem!important;font-weight:600!important;color:var(--ax-ink)!important}
/* trust bar: quiet */
html body .adsc-trust{background:#fff!important;border-bottom:1px solid #e8e8ed}
html body .adsc-trust-item span:last-child{color:var(--ax-ink)!important;font-size:.9375rem!important}
/* footer: Apple-like light */
html body .adsc-footer{background:var(--ax-bg-2)!important}
html body .adsc-footer *{color:var(--ax-ink-2)!important;font-size:.8125rem!important;line-height:1.6!important}
html body .adsc-footer h2,html body .adsc-footer h3,html body .adsc-footer h4,html body .adsc-footer strong{color:var(--ax-ink)!important;font-size:.8125rem!important;font-weight:600!important;letter-spacing:0!important}
html body .adsc-footer a:hover{color:var(--ax-ink)!important;text-decoration:underline!important}
html body .adsc-footer .adsc-footer-brand > *:first-child{font-size:1.0625rem!important;color:var(--ax-ink)!important}
html body .adsc-footer ul.adsc-footer-socials a.adsc-social-link{color:var(--ax-ink-2)!important}
@media (max-width:600px){html body .adsc-home .adsc-section{padding:72px 0!important}html body .adsc-hero .adsc-hero-v2-h1{font-size:2.5rem!important}}
/* dark sections: eyebrow + lists readable */
html body .adsc-home .adsc-why .adsc-why-content>h3:first-child,html body .adsc-home .adsc-section[style*="navy"] .adsc-deep-text>h3:first-child{color:var(--ax-gold-on-dark)!important;font-size:1.0625rem!important}
html body .adsc-home .adsc-why li,html body .adsc-home .adsc-why li span,html body .adsc-home .adsc-section[style*="navy"] li{color:rgba(255,255,255,.8)!important}
html body .adsc-home .adsc-why li strong,html body .adsc-home .adsc-section[style*="navy"] strong{color:#fff!important}
/* footer links readable on light */
html body .adsc-footer .adsc-container a:not(.adsc-btn):not(.button),html body .adsc-footer .adsc-container a:not(.adsc-btn):not(.button):visited{color:#424245!important}
html body .adsc-footer .adsc-container a:not(.adsc-btn):not(.button):hover{color:var(--ax-ink)!important}
html body .adsc-footer .adsc-container a[href^="tel"]{color:var(--ax-ink)!important;font-weight:600!important}
/* inner pages: Apple reading rhythm */
html body main p,html body main li{font-size:1.0625rem;line-height:1.5}
/* (body colour rule removed: it darkened paragraphs inside dark bands) */
html body main :not(.adsc-emergency-strip):not(.adsc-welcome-box):not(.adsc-membership-box):not(.adsc-why):not(.adsc-appointment):not(.adsc-midpage-cta):not(.adsc-map-header):not(.ll-sec--navy):not(.ll-hero):not(.st-cand-panel):not(.ll-final):not(.adsc-finance-box):not([style*="navy"]):not([style*="background:#"]):not(.adsc-section-dark) > h2:not([style*="color"]),html body main :not(.adsc-emergency-strip):not(.adsc-welcome-box):not(.adsc-membership-box):not(.adsc-why):not(.adsc-appointment):not(.adsc-midpage-cta):not(.adsc-map-header):not(.ll-sec--navy):not(.ll-hero):not(.st-cand-panel):not(.ll-final):not(.adsc-finance-box):not([style*="navy"]):not([style*="background:#"]):not(.adsc-section-dark) > h3:not([style*="color"]){color:var(--ax-ink)}
html body main h2{font-size:clamp(1.75rem,1.2rem + 1.8vw,2.5rem);line-height:1.1}
html body main a:not(.adsc-btn):not(.button):not([class*="social"]){text-underline-offset:3px;text-decoration-thickness:1px}

/* LL landing pages & dark panels: protect navy sections, heroes, and panels from light-mode overrides */
html body main :is(.ll-sec--navy, .ll-hero, .st-cand-panel, .ll-final, .adsc-finance-box, [data-bg="dark"]) :not(.ll-form):not(.ll-card):is(h1, h2, h3, h4, sup):not(.ll-form *):not(.ll-card *) {
    color: #ffffff !important;
}
html body main :is(.ll-sec--navy, .ll-hero, .st-cand-panel, .ll-final, .adsc-finance-box, [data-bg="dark"]) p:not(.ll-form p):not(.ll-card p) {
    color: var(--ll-on-navy, rgba(220, 227, 240, 0.95)) !important;
}
html body main :is(.ll-sec--navy, .ll-hero, .st-cand-panel, .ll-final, .adsc-finance-box, [data-bg="dark"]) a.ll-btn--ghost {
    color: #ffffff !important;
    border-color: rgba(255, 255, 255, 0.6) !important;
}
html body main :is(.ll-sec--navy, .ll-hero, .st-cand-panel, .ll-final, .adsc-finance-box, [data-bg="dark"]) a.ll-link {
    color: #ffffff !important;
}
html body main .st-cover-next :is(.ll-btn--navy, a.ll-btn) {
    background: #d4af6f !important;
    border-color: #d4af6f !important;
    color: #0f1c3d !important;
    font-weight: 700 !important;
}

/* White form cards and info cards inside navy sections / heroes */
html body main :is(.ll-form, .ll-card, .adsc-card, .adsc-form, .adsc-contact-form) {
    background: #ffffff !important;
}
html body main :is(.ll-form, .ll-card, .adsc-card, .adsc-form, .adsc-contact-form) :is(h1, h2, h3, h4, .ll-form-title, .st-h7-form-title) {
    color: var(--ll-ink, #0f1c3d) !important;
}
html body main :is(.ll-form, .ll-card, .adsc-card, .adsc-form, .adsc-contact-form) :is(p, span, label, li, strong, small) {
    color: var(--ll-muted, #454f66) !important;
}
html body main :is(.ll-form, .ll-card, .adsc-card) p.st-form-k {
    color: var(--ll-gold-text, #7a6837) !important;
    font-weight: 700 !important;
}
html body main :is(.ll-form, .ll-card, .adsc-card) .wpcf7-list-item-label {
    color: var(--ll-muted, #454f66) !important;
}
html body main :is(.ll-form, .ll-card, .adsc-card) .ll-terms {
    color: #64748b !important;
}
html body main :is(.ll-form, .ll-card, .adsc-card) .st-privacy {
    color: #64748b !important;
}
html body main :is(.ll-form, .ll-card, .adsc-card) p.ll-form-foot {
    color: var(--ll-muted, #454f66) !important;
}
html body main :is(.ll-form, .ll-card, .adsc-card) p.ll-form-foot a {
    color: var(--ll-navy, #172852) !important;
    font-weight: 700 !important;
}

/* ---- Icon + button contrast fixes found during the icon rollout (2026-09-26) ---- */
/* icons sitting in navy tiles/circles */
html body .adsc-contact-bar-icon,html body .adsc-info-icon,html body .adsc-finance-icon,
html body .adsc-contact-bar-icon .adsc-ic,html body .adsc-info-icon .adsc-ic,html body .adsc-finance-icon .adsc-ic,html body .adsc-service-category .adsc-category-icon .adsc-ic,html body main .adsc-category-icon:not(.x) .adsc-ic{color:#fff!important;--adsc-icon-accent:#d4af6f}
/* FAQ category icons sit on white: navy */
html body main .adsc-category-header .adsc-category-icon:not(.x) .adsc-ic{color:#172852!important;--adsc-icon-accent:#7a6837}
html body .adsc-contact-bar-icon .adsc-ic{width:22px;height:22px}
/* button text contrast: white on navy/dark buttons, dark navy (#0f1c3d) on gold buttons */
html body:is(.home,.adsc-homepage) a.adsc-btn.adsc-btn-primary,
html body:is(.home,.adsc-homepage) a.adsc-btn.adsc-btn-primary:visited,
html body .adsc-membership-price a.adsc-btn,
html body .adsc-membership-price a.adsc-btn:visited,
html body main a.adsc-btn.adsc-btn-navy,
html body main a.adsc-btn.adsc-btn-navy:visited,
html body main a.adsc-btn[style*="background: var(--navy)"],
html body main a.adsc-btn[style*="background:var(--navy)"],
html body main a.adsc-btn[style*="background: #172852"],
html body main a.adsc-btn[style*="background:#172852"],
html body main a.adsc-btn[style*="background: #0f1c3d"],
html body main a.adsc-btn[style*="background:#0f1c3d"]{color:#fff!important}
html body main :is(a,button).adsc-btn-gold,
html body.adsc-ll:not(.home):not(.adsc-homepage) main a.adsc-btn.adsc-btn-primary:not(.adsc-membership-price a):not([class*="navy"]):not([style*="navy"]):not([style*="#172852"]):not([style*="#0f1c3d"]),
html body main a.adsc-btn[style*="background: var(--gold)"],
html body main a.adsc-btn[style*="background:var(--gold)"],
html body main a.adsc-btn[style*="background: #d4af6f"],
html body main a.adsc-btn[style*="background:#d4af6f"],
html body main a.adsc-btn[style*="background: #b79f6f"],
html body main a.adsc-btn[style*="background:#b79f6f"],
html body main a.adsc-btn[style*="background: var(--gold-soft)"],
html body main a.adsc-btn[style*="background:var(--gold-soft)"]{color:#0f1c3d!important}
html body a.adsc-btn-urgent,html body a.adsc-btn-urgent:visited,html body a.adsc-btn-urgent:hover{color:#fff!important}
html body .adsc-emergency-banner-bar,html body .adsc-emergency-banner-bar a{color:#fff!important}
html body .adsc-emergency-banner-bar a{text-decoration:underline!important;text-underline-offset:3px}
html body main a[href^="tel"][style*="background: var(--gold)"]{color:#fff!important}
/* mobile CTA bar: readable text (legacy link colours were turning the labels navy-on-navy / white-on-light-gold) */
html body #adsc-mobile-cta a.adsc-mcta-call,html body #adsc-mobile-cta a.adsc-mcta-call span{color:#fff!important;background:#172852!important}
html body #adsc-mobile-cta a.adsc-mcta-book,html body #adsc-mobile-cta a.adsc-mcta-book span{color:#0f1c3d!important;background:#d4af6f!important}
/* homepage map/location band is dark: its paragraph must not take the light-page body colour */
html body .adsc-home section.adsc-location p{color:rgba(255,255,255,.82)!important}
html body .adsc-home section.adsc-location a[href^="tel"]{color:#d4af6f!important}
/* gold-on-light (#7a6837) used inside dark cards/bands: switch to gold-on-dark */
html body [style*="rgba(255,255,255,0.06)"] [style*="var(--gold)"],
html body :is(.adsc-location,.adsc-why,.adsc-appointment,.adsc-key-facts,[style*="background: var(--navy)"],[style*="background:var(--navy)"]) :is(a,h2,h3,h4,span,strong,p)[style*="var(--gold)"]{color:#d4af6f!important}
/* white buttons with gold text on light sections */
html body a.adsc-btn[style*="background: var(--white"],html body a.adsc-btn[style*="background:var(--white"]{color:#172852!important}
/* --gold resolves to the light gold on some templates; inside white cards use gold-on-light */
html body [style*="background: var(--white)"] [style*="color: var(--gold)"],html body [style*="background:var(--white)"] [style*="color:var(--gold)"],html body [style*="background: #fff"] [style*="color: var(--gold)"]{color:#7a6837!important}
/* emergency triage labels on white */
html body .adsc-triage-level{filter:none}
html body .adsc-triage-card .adsc-triage-level[style*="#8bb7ad"],html body .adsc-triage-card .adsc-triage-level[style*="#d97706"]{color:#1d1d1f!important}

/* 2026-09-27 — "Multi-Specialty Dental Care…" band (.adsc-google-reviews, navy gradient):
   the generic ink heading rule made the H2 #1d1d1f on navy (1.06:1). Restore white text only in this band. */
html body .adsc-home .adsc-google-reviews h2 { color: #ffffff !important; }

/* 2026-09-27 — Meet Our Doctors: space between the doctor cards and "Meet the Full Team"
   (a global paragraph reset had removed the 36px margin). */
html body #meet-our-doctors .adsc-hpdoc-foot { margin-top: 48px !important; }
@media (max-width: 689px) {
	html body #meet-our-doctors .adsc-hpdoc-foot { margin-top: 36px !important; }
}

/* 2026-09-27 — "Serving Aloha, Beaverton & Washington County" band (.adsc-location, navy):
   same issue as the reviews band — H2 was #1d1d1f on #0f1c3d (1.0:1). White text only in this band. */
html body .adsc-home .adsc-location h2 { color: #ffffff !important; }

/* 2026-09-27 — Homepage #appointment only.
   (1) "Get In Touch" eyebrow was #1d1d1f on navy (about 1.1:1) because of the generic ink h3 rule. White text only.
   (2) Request an Appointment card: the gold ::before layer painted over the white card (the card's
       z-index made a stacking context, so z-index:-1 sat above its background). Card is white again.
   (3) Form rhythm, field sizing and WCAG 2.2 AA fixes: navy labels, 3.5:1 field borders, 48px fields,
       visible focus ring, placeholder 5:1, invalid state with text + border, hidden spam-trap field. */
html body .adsc-home #appointment .adsc-appointment-info > h3 { color: #ffffff !important; }

html body .adsc-home #appointment .adsc-form { background: #ffffff; }
html body .adsc-home #appointment .adsc-form::before { display: none; }
html body .adsc-home #appointment .adsc-form > h3 { margin-bottom: 8px !important; }
html body .adsc-home #appointment .adsc-form .adsc-form-note {
	margin: 0 0 24px !important; text-align: center; font-size: 0.9375rem !important; line-height: 1.4 !important;
	color: #424245 !important;
}

html body .adsc-home #appointment .adsc-form .cf7-form.row {
	display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin: 0;
}
@media (min-width: 1200px), (min-width: 600px) and (max-width: 768px) {
	html body .adsc-home #appointment .adsc-form .cf7-form.row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; }
	html body .adsc-home #appointment .adsc-form .cf7-form.row > .col-md-12 { grid-column: 1 / -1; }
}
html body .adsc-home #appointment .adsc-form .cf7-form.row > div {
	width: auto; max-width: none; float: none; margin: 0; padding: 0; min-width: 0;
}
html body .adsc-home #appointment .adsc-form .cf7-form.row p { margin: 0 !important; color: #1d1d1f !important; }
html body .adsc-home #appointment .adsc-form .adsc-hp { display: none !important; }

html body .adsc-home #appointment .adsc-form label {
	display: block; margin: 0 0 8px; font-size: 0.9375rem; font-weight: 600; line-height: 1.3; color: #172852;
}
html body .adsc-home #appointment .adsc-form label .adsc-optional { font-weight: 400; color: #424245; }
html body .adsc-home #appointment .adsc-form .wpcf7-form-control-wrap { display: block; }

html body .adsc-home #appointment .adsc-form .wpcf7-form-control:not([type="submit"]) {
	display: block; width: 100%; height: 48px; margin: 0; padding: 0 14px;
	font-size: 1rem; line-height: 1.3; color: #1d1d1f;
	background-color: #ffffff; border: 1px solid #888888; border-radius: 10px; box-shadow: none;
}
html body .adsc-home #appointment .adsc-form select.wpcf7-form-control:not([type="submit"]) {
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg width='21' height='13' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.5.379L20.621 2.5 10.5 12.621.379 2.5 2.5.379l8 8z' fill='%23172852'/%3E%3C/svg%3E");
	background-repeat: no-repeat; background-size: 11px auto; background-position: right 16px center;
}
html body .adsc-home #appointment .adsc-form textarea.wpcf7-form-control:not([type="submit"]) {
	height: 132px; min-height: 132px; padding: 12px 14px; line-height: 1.5; resize: vertical;
}
html body .adsc-home #appointment .adsc-form .wpcf7-form-control::placeholder { color: #6e6e73; opacity: 1; }
html body .adsc-home #appointment .adsc-form .wpcf7-form-control:not([type="submit"]):hover { border-color: #172852; }
html body .adsc-home #appointment .adsc-form .wpcf7-form-control:not([type="submit"]):focus {
	border-color: #172852; outline: 2px solid #172852; outline-offset: 2px; background-color: #ffffff; box-shadow: none;
}

/* Validation: red border + the CF7 text message (never colour alone); CF7 also sets aria-invalid. */
html body .adsc-home #appointment .adsc-form .wpcf7-form-control.wpcf7-not-valid:not([type="submit"]) { border: 2px solid #9b2c2c; }
html body .adsc-home #appointment .adsc-form .wpcf7-not-valid-tip {
	display: block; margin-top: 6px; font-size: 0.875rem; font-weight: 600; line-height: 1.35; color: #9b2c2c;
}

html body .adsc-home #appointment .adsc-form .cf7-form.row > .text-center { margin-top: 8px; }
html body .adsc-home #appointment .adsc-form .wpcf7-form-control[type="submit"] {
	float: none; display: flex; width: 100%; min-height: 52px; padding: 14px 24px;
	font-size: 1rem; font-weight: 600; color: #ffffff; background: #172852; border-radius: 50px;
}
html body .adsc-home #appointment .adsc-form .wpcf7-form-control[type="submit"]:hover { background: #7a6837; color: #ffffff; }
html body .adsc-home #appointment .adsc-form .wpcf7-form-control[type="submit"]:focus-visible {
	outline: 3px solid #172852; outline-offset: 3px;
}
@media (max-width: 640px) {
	html body .adsc-home #appointment .adsc-form { padding: 28px 20px; }
}

/* 2026-09-28 — Homepage #appointment CTA pair. The Call button used to end the left (contact) column and
   sat ~100px out of line with the form's "Request Appointment" button in the other column. It now sits
   directly under the primary button inside the white form card: one aligned stack, primary first.
   Secondary = white with a 2px navy outline and navy text (14.37:1), same 52px height, pill radius and
   16px/600 type as the primary. Hover: navy fill, white text (14.37:1). Keyboard focus: 3px navy ring. */
html body .adsc-home.adsc-home.adsc-home #appointment .adsc-form a.adsc-btn.adsc-form-call {
	display: flex !important; align-items: center; justify-content: center; box-sizing: border-box;
	width: 100%; min-height: 52px; height: 52px; margin: 12px 0 0; padding: 0 24px !important;
	background: #ffffff !important; color: #172852 !important; border: 2px solid #172852 !important;
	border-radius: 50px !important; box-shadow: none !important; transform: none;
	font-size: 1rem !important; font-weight: 600 !important; letter-spacing: -0.011em !important; line-height: 1.2;
	text-decoration: none !important; transition: background-color .2s ease, color .2s ease;
}
html body .adsc-home.adsc-home.adsc-home #appointment .adsc-form a.adsc-btn.adsc-form-call:hover {
	background: #172852 !important; color: #ffffff !important;
}
html body .adsc-home.adsc-home.adsc-home #appointment .adsc-form a.adsc-btn.adsc-form-call:focus-visible {
	outline: 3px solid #172852 !important; outline-offset: 3px !important;
}
html body .adsc-home.adsc-home.adsc-home #appointment .adsc-form a.adsc-btn.adsc-form-call::before,
html body .adsc-home.adsc-home.adsc-home #appointment .adsc-form a.adsc-btn.adsc-form-call::after { display: none !important; }

/* 2026-09-28 — Site-wide type scale = homepage type scale.
   Font family was already the same everywhere (system SF / self-hosted Inter via html body above).
   What differed on inner pages: light 300 body text, smaller/looser headings, 15px bold buttons.
   These rules copy the homepage values. They use element selectors (no !important) so templates
   that deliberately size a specific component keep it, and the homepage's own !important rules win. */
html body p, html body li { font-weight: 400; }
html body main p, html body main li { line-height: 1.47; }
html body main h1 {
	font-size: clamp(2.5rem, 1.4rem + 2.6vw, 3.4rem); line-height: 1.07; letter-spacing: -0.03em;
}
html body main h2 {
	font-size: clamp(2rem, 1.2rem + 2.6vw, 3rem); line-height: 1.08; letter-spacing: -0.022em;
}
html body main h3 {
	font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); line-height: 1.2;
}
/* Long-form reading (blog posts): same family/weights, headings one step calmer so articles stay readable. */
html body.single-post main .entry-content h2 { font-size: clamp(1.75rem, 1.3rem + 1.2vw, 2.25rem); line-height: 1.12; }
html body.single-post main .entry-content h3 { font-size: clamp(1.25rem, 1.1rem + .4vw, 1.4rem); }
/* Shared inner-page template (.adsc-page-header / .adsc-page-article, ~280 pages) sets its own sizes
   and a 300 body weight with class selectors, so it needs the same values at class specificity. */
html body .adsc-page-header h1, html body .adsc-page-title {
	font-size: clamp(2.5rem, 1.4rem + 2.6vw, 3.4rem); line-height: 1.07; letter-spacing: -0.03em;
}
html body .adsc-page-article h2 { font-size: clamp(2rem, 1.2rem + 2.6vw, 3rem); line-height: 1.08; }
html body .adsc-page-article h3 { font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); line-height: 1.2; }
html body .adsc-page-article p, html body .adsc-page-article li { font-weight: 400; line-height: 1.47; }
/* Buttons: homepage pill typography (colours unchanged). */
html body main a.adsc-btn {
	border-radius: 980px; font-size: 1.0625rem; font-weight: 400; letter-spacing: -0.01em;
	padding: 12px 24px; min-height: 48px;
}

/* 2026-09-28 (cont.) — Custom page templates (doctor, specialty, FAQ, financing, contact…) size their
   hero H1 / section H2 and set 300-weight body copy inside their own wrappers. Same homepage values,
   at wrapper specificity. Card-level H3s (1.25–1.45rem) already sit on the homepage scale and are left as is.
   Not included on purpose: the All-on-4 consultation landing page (.a4lp) and blog-post headings (.adsc-prose). */
html body :is(.adsc-about, .adsc-contact, .adsc-emergency-page, .adsc-faq-page, .adsc-financing, .adsc-new-patients,
	.adsc-reviews, .adsc-gallery, .adsc-doctor-hero, .adsc-service-hero, .adsc-hub-hero, .adsc-allon4-hero, .adsc-allon6-hero,
	.adsc-cbct-hero, .adsc-iv-hero, .adsc-lanap-hero, .adsc-ped-hero, .adsc-hero-wrap, .adsc-perio-hero, .adsc-endo-hero,
	.adsc-services-hero, .adsc-offers-hero) h1 {
	font-size: clamp(2.5rem, 1.4rem + 2.6vw, 3.4rem); line-height: 1.07; letter-spacing: -0.03em;
}
html body :is(.adsc-about, .adsc-contact, .adsc-emergency-page, .adsc-faq-page, .adsc-financing, .adsc-new-patients,
	.adsc-reviews, .adsc-gallery, .adsc-main, .adsc-main-content, .adsc-article, .adsc-section-title-wrap, .adsc-doc-trust,
	.adsc-bottom-banner, .adsc-cta-section, .adsc-emergency-content, .adsc-category, .areas-section, .neighborhoods-section,
	.map-section, .why-choose-section, .areas-cta, .adsc-clean-page-cta, .adsc-global-cta) h2 {
	font-size: clamp(2rem, 1.2rem + 2.6vw, 3rem); line-height: 1.08; letter-spacing: -0.022em;
}
html body :is(.adsc-about, .adsc-emergency-page, .adsc-faq-page, .adsc-financing, .adsc-new-patients, .adsc-reviews,
	.adsc-gallery, .adsc-prose, .adsc-em-hero, .adsc-faq-hero) p,
html body :is(.adsc-about, .adsc-emergency-page, .adsc-faq-page, .adsc-financing, .adsc-new-patients, .adsc-reviews,
	.adsc-gallery, .adsc-prose) li { font-weight: 400; }
html body :is(.adsc-em-hero, .adsc-faq-hero) p.lead { font-weight: 400; }
/* Tablet/phone: style.css shrinks inner-page headings with !important (hero H1 down to 1.3rem, section H2
   to 1.25rem). Use the homepage's phone sizes instead (same clamp values as the homepage rules above). */
@media (max-width: 1024px) {
	html body .adsc-service-hero h1 { font-size: clamp(2.5rem, 1.4rem + 2.6vw, 3.4rem) !important; line-height: 1.07 !important; }
}
@media (max-width: 768px) {
	html body .adsc-section h2, html body .adsc-cta-section h2 { font-size: clamp(2rem, 1.2rem + 2.6vw, 3rem) !important; line-height: 1.08 !important; }
	html body .adsc-section h3 { font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem) !important; }
}

/* 2026-09-28 — Homepage contact bar (above the footer): the Office Hours icon box shrank to 24–41px wide
   because its long hours line squeezed the flex row. Keep it at the same 45×45 as its neighbours. */
html body.home .adsc-contact-bar-item:nth-child(3) > .adsc-contact-bar-icon { flex-shrink: 0; }

/* 2026-09-28 — Homepage "Your Path to Treatment" numbered circles (1–5): numbers were the dark brand gold
   #7a6837 on navy #172852 (2.8:1). Light on-dark gold #d4af6f = 6.95:1 on #172852. Circles unchanged. */
html body .adsc-home ol[style*="counter-reset"] > li > span:not(.adsc-step-mark) { color: #d4af6f !important; } /* 2026-10-14: step marks use the shared .adsc-step-mark (adsc-components.css) */

/* 2026-09-28 r14 — Get In Touch: "Call (503) 822-0096" back in the contact column as a light phone link
   (not a button). White text on navy 14.37:1, gold underline/icon #d4af6f 6.95:1, 44px tap height. */
html body .adsc-home #appointment .adsc-appointment-info a.adsc-appt-phone {
	display: inline-flex !important; align-items: center; gap: 10px; min-height: 44px; margin-top: 20px;
	color: #ffffff !important; font-size: 1.0625rem; font-weight: 600 !important;
	text-decoration: underline; text-decoration-color: #d4af6f; text-decoration-thickness: 2px; text-underline-offset: 5px;
}
html body .adsc-home #appointment .adsc-appointment-info a.adsc-appt-phone svg { flex: none; color: #d4af6f; }
html body .adsc-home #appointment .adsc-appointment-info a.adsc-appt-phone:hover { color: #d4af6f !important; }
html body .adsc-home #appointment .adsc-appointment-info a.adsc-appt-phone:focus-visible { outline: 3px solid #ffffff; outline-offset: 3px; border-radius: 4px; }

/* 2026-09-30 (round 15) — Homepage #appointment contrast, scoped to the section ID only.
   These repeat the 09-27 fixes WITHOUT depending on the .adsc-home wrapper, so they apply however
   the section is rendered, and fix the small dark-gold (#7a6837) text left in the contact box.
   Background measured behind the contact box: #313d5f (lightest) to #15274e.
   Get In Touch column: eyebrow/heading white (>= 10.7:1); contact labels #e3c68d light gold (6.48:1
   on the lightest box pixel); phone link white with a gold underline (10.7:1).
   Request an Appointment card: white card, ink heading 16.83:1, navy labels 14.37:1, helper text and
   "(optional)" #424245 10.01:1, input text 16.83:1, placeholder #6e6e73 5.07:1, field borders #888 3.54:1.
   No gold is used for any small text in the card. Navy background, wording and layout unchanged. */
#appointment.adsc-appointment .adsc-appointment-info > h3 { color: #ffffff !important; }
#appointment.adsc-appointment .adsc-appointment-info > h2 { color: #ffffff !important; }
#appointment.adsc-appointment .adsc-appointment-info > p { color: rgba(255, 255, 255, .9) !important; }
#appointment.adsc-appointment .adsc-contact-item h5 { color: #e3c68d !important; }
#appointment.adsc-appointment .adsc-contact-item p { color: rgba(255, 255, 255, .92) !important; }
#appointment.adsc-appointment .adsc-contact-item em { color: rgba(255, 255, 255, .85) !important; }
#appointment.adsc-appointment .adsc-contact-item a {
	color: #ffffff !important; text-decoration: underline !important;
	text-decoration-color: #d4af6f !important; text-underline-offset: 3px; text-decoration-thickness: 1.5px;
}
#appointment.adsc-appointment .adsc-contact-item a:hover { color: #e3c68d !important; }
#appointment.adsc-appointment .adsc-contact-item a:focus-visible { outline: 3px solid #ffffff; outline-offset: 3px; border-radius: 4px; }

#appointment.adsc-appointment .adsc-form { background: #ffffff !important; }
#appointment.adsc-appointment .adsc-form::before { display: none !important; }
#appointment.adsc-appointment .adsc-form > h3 { color: #1d1d1f !important; }
#appointment.adsc-appointment .adsc-form .adsc-form-note,
#appointment.adsc-appointment .adsc-form label .adsc-optional { color: #424245 !important; }
#appointment.adsc-appointment .adsc-form label { color: #172852 !important; }
#appointment.adsc-appointment .adsc-form .wpcf7-form-control:not([type="submit"]) {
	color: #1d1d1f !important; background-color: #ffffff !important; border-color: #888888 !important;
}
#appointment.adsc-appointment .adsc-form .wpcf7-form-control::placeholder { color: #6e6e73 !important; opacity: 1 !important; }
#appointment.adsc-appointment .adsc-form .wpcf7-form-control:not([type="submit"]):hover,
#appointment.adsc-appointment .adsc-form .wpcf7-form-control:not([type="submit"]):focus { border-color: #172852 !important; }
#appointment.adsc-appointment .adsc-form .wpcf7-form-control.wpcf7-not-valid:not([type="submit"]) { border-color: #9b2c2c !important; }
