/* Smile Council Orthodontics — generated by scripts/static-build (do not edit static/css/styles.css by hand; edit src/App.css / templates/styles-extra.css and rebuild). */

/* 1. Tailwind preflight (the CDN build has preflight disabled so this keeps the same cascade order as the React build). */

*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

/*
! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
*/

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box;
  /* 1 */
  border-width: 0;
  /* 2 */
  border-style: solid;
  /* 2 */
  border-color: #e5e7eb;
  /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5;
  /* 1 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
  /* 3 */
  tab-size: 4;
  /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  /* 4 */
  font-feature-settings: normal;
  /* 5 */
  font-variation-settings: normal;
  /* 6 */
  -webkit-tap-highlight-color: transparent;
  /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0;
  /* 1 */
  line-height: inherit;
  /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0;
  /* 1 */
  color: inherit;
  /* 2 */
  border-top-width: 1px;
  /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  /* 1 */
  font-feature-settings: normal;
  /* 2 */
  font-variation-settings: normal;
  /* 3 */
  font-size: 1em;
  /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0;
  /* 1 */
  border-color: inherit;
  /* 2 */
  border-collapse: collapse;
  /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  /* 1 */
  font-feature-settings: inherit;
  /* 1 */
  font-variation-settings: inherit;
  /* 1 */
  font-size: 100%;
  /* 1 */
  font-weight: inherit;
  /* 1 */
  line-height: inherit;
  /* 1 */
  letter-spacing: inherit;
  /* 1 */
  color: inherit;
  /* 1 */
  margin: 0;
  /* 2 */
  padding: 0;
  /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button;
  /* 1 */
  background-color: transparent;
  /* 2 */
  background-image: none;
  /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::placeholder,
textarea::placeholder {
  opacity: 1;
  /* 1 */
  color: #9ca3af;
  /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block;
  /* 1 */
  vertical-align: middle;
  /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

/* 2. Design tokens + base (from src/index.css) */

:root {
        --background: 45 27% 98%;
        --foreground: 0 0% 3.9%;
        --card: 0 0% 100%;
        --card-foreground: 0 0% 3.9%;
        --popover: 0 0% 100%;
        --popover-foreground: 0 0% 3.9%;
        --primary: 256 64% 24%;
        --primary-foreground: 0 0% 98%;
        --secondary: 0 0% 96.1%;
        --secondary-foreground: 0 0% 9%;
        --muted: 0 0% 96.1%;
        --muted-foreground: 0 0% 45.1%;
        --accent: 0 0% 96.1%;
        --accent-foreground: 0 0% 9%;
        --destructive: 0 84.2% 60.2%;
        --destructive-foreground: 0 0% 98%;
        --border: 0 0% 89.8%;
        --input: 0 0% 89.8%;
        --ring: 0 0% 3.9%;
        --chart-1: 12 76% 61%;
        --chart-2: 173 58% 39%;
        --chart-3: 197 37% 24%;
        --chart-4: 43 74% 66%;
        --chart-5: 27 87% 67%;
        --radius: 0.75rem;
    }
    .dark {
        --background: 0 0% 3.9%;
        --foreground: 0 0% 98%;
        --card: 0 0% 3.9%;
        --card-foreground: 0 0% 98%;
        --popover: 0 0% 3.9%;
        --popover-foreground: 0 0% 98%;
        --primary: 0 0% 98%;
        --primary-foreground: 0 0% 9%;
        --secondary: 0 0% 14.9%;
        --secondary-foreground: 0 0% 98%;
        --muted: 0 0% 14.9%;
        --muted-foreground: 0 0% 63.9%;
        --accent: 0 0% 14.9%;
        --accent-foreground: 0 0% 98%;
        --destructive: 0 62.8% 30.6%;
        --destructive-foreground: 0 0% 98%;
        --border: 0 0% 14.9%;
        --input: 0 0% 14.9%;
        --ring: 0 0% 83.1%;
        --chart-1: 220 70% 50%;
        --chart-2: 160 60% 45%;
        --chart-3: 30 80% 55%;
        --chart-4: 280 65% 60%;
        --chart-5: 340 75% 55%;
    }

* { border-color: hsl(var(--border)); }

html { scroll-behavior: smooth; }
body { margin: 0; font-family: "DM Sans", sans-serif; -webkit-font-smoothing: antialiased; background: #fbfaf7; color: #302e2d; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: #f3bc31; color: #261452; }

/* 3. Site styles (from src/App.css) */

:root { --purple:#2a1664; --purple-deep:#1d1045; --orange:#f0a014; --gold:#f0c83c; --ink:#302e2d; --cream:#fbfaf7; --line:#dedbd4; --section-title-size:clamp(2.7rem,3.8vw,4.4rem); }
* { box-sizing:border-box; }
html,body { font-size:16px; }
small { font-size:1rem; }
.site { overflow-x:clip; }
.page-shell { width:min(1240px, calc(100% - 64px)); margin:0 auto; }
.section { padding:130px 0; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { color:var(--purple); font-weight:500; letter-spacing:-.055em; line-height:.96; }
h2 { font-size:clamp(3.3rem,6vw,6.4rem); }
h1 em,h2 em { font-family:"Newsreader",serif; font-weight:400; }
p,li { font-size:17px; line-height:1.65; }
.eyebrow { display:flex; align-items:center; gap:11px; text-transform:uppercase; letter-spacing:.14em; font-size:1rem; font-weight:600; color:var(--purple); margin-bottom:25px; line-height:1.5; }
.eyebrow>span,.eyebrow>i { width:31px; height:1px; background:var(--orange); display:inline-block; }
.eyebrow--light { color:#fff; }
.button { border:0; min-height:52px; padding:0 25px; border-radius:3px; display:inline-flex; align-items:center; justify-content:center; gap:12px; cursor:pointer; font-size:1rem; font-weight:600; letter-spacing:.035em; text-decoration:none; transition:transform .25s ease,background-color .25s ease,color .25s ease; }
.button:hover { transform:translateY(-2px); }
.button--primary { background:var(--purple); color:#fff; }
.button--accent { background:var(--gold); color:var(--purple-deep); }
.button--accent:hover { background:#ffd451; }
.button--ghost-light { color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.42); }

/* Header */
.site-header { position:fixed; inset:0 0 auto; z-index:50; min-height:94px; display:flex; align-items:center; padding:0 max(32px,calc((100vw - 1380px)/2)); gap:30px; transition:background-color .3s ease,min-height .3s ease,box-shadow .3s ease; }
.site-header::before { content:""; position:absolute; inset:0; z-index:-1; background:rgba(251,250,247,.92); backdrop-filter:blur(18px); opacity:0; pointer-events:none; transition:opacity .3s ease; }
.site-header--scrolled { min-height:78px; box-shadow:0 1px 0 rgba(42,22,100,.1); }
.site-header--scrolled::before { opacity:1; }
.brand { position:relative; z-index:2; width:144px; flex-shrink:0; filter:brightness(0) invert(1); transition:filter .3s ease; }
.site-header--scrolled .brand { filter:none; }
.brand img { width:100%; display:block; }
.desktop-nav { display:flex; align-items:center; gap:30px; margin-left:auto; }
.nav-item { position:relative; }
.desktop-nav button,.desktop-nav a { border:0; background:none; color:white; font-size:17px; font-weight:600; cursor:pointer; position:relative; padding:10px 0; text-decoration:none; }
.site-header--scrolled .desktop-nav button,.site-header--scrolled .desktop-nav a { color:var(--purple); }
.desktop-nav button:after,.desktop-nav a:after { content:""; position:absolute; bottom:4px; left:0; width:0; height:1px; background:var(--orange); transition:width .25s; }
.desktop-nav button:hover:after,.desktop-nav a:hover:after { width:100%; }
.nav-dropdown { position:absolute; top:calc(100% + 12px); left:50%; width:320px; padding:12px; background:var(--cream); border:1px solid rgba(42,22,100,.1); box-shadow:0 18px 50px rgba(29,16,69,.16); opacity:0; visibility:hidden; pointer-events:none; transform:translate(-50%,-8px); transition:opacity .22s ease,transform .22s ease,visibility .22s; }
.nav-dropdown:before { content:""; position:absolute; left:0; right:0; top:-14px; height:14px; }
.nav-item:hover .nav-dropdown,.nav-item:focus-within .nav-dropdown { opacity:1; visibility:visible; pointer-events:auto; transform:translate(-50%,0); }
.desktop-nav--suppress-dropdowns .nav-dropdown,.desktop-nav--suppress-dropdowns .nav-dropdown-nested { opacity:0!important; visibility:hidden!important; pointer-events:none!important; }
.desktop-nav .nav-dropdown button,.desktop-nav .nav-dropdown a { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; color:var(--purple); text-align:left; padding:12px 14px; }
.nav-item-chevron { display:inline-block; vertical-align:-2px; margin-left:5px; opacity:.8; flex-shrink:0; }
.nav-item-chevron--nested { margin-left:0; color:var(--orange); }
.desktop-nav .nav-dropdown button:hover,.desktop-nav .nav-dropdown a:hover { background:#f2f0ea; }
.desktop-nav .nav-dropdown button:after,.desktop-nav .nav-dropdown a:after { display:none; }
.nav-dropdown-group { position:relative; }
.nav-dropdown-nested { position:absolute; left:calc(100% + 10px); top:0; width:220px; padding:12px; background:var(--cream); border:1px solid rgba(42,22,100,.1); box-shadow:0 18px 50px rgba(29,16,69,.16); opacity:0; visibility:hidden; pointer-events:none; transform:translateX(-8px); transition:opacity .22s ease,transform .22s ease,visibility .22s; }
.nav-dropdown-nested:before { content:""; position:absolute; left:-12px; top:0; bottom:0; width:12px; }
.nav-dropdown-group:hover>.nav-dropdown-nested,.nav-dropdown-group:focus-within>.nav-dropdown-nested { opacity:1; visibility:visible; pointer-events:auto; transform:translateX(0); }
.desktop-nav .nav-dropdown .nav-dropdown-subitem { color:#6b6763; padding:12px 14px; font-weight:500; }
.header-actions { display:flex; align-items:center; gap:14px; }
.phone-link { background:var(--purple); color:#fff; display:flex; align-items:center; gap:9px; text-decoration:none; font-size:1rem; font-weight:600; padding:13px 20px; border-radius:3px; }
.menu-toggle { position:relative; z-index:2; display:none; border:0; background:none; color:#fff; padding:8px; }
.site-header--scrolled .menu-toggle { color:var(--purple); }
.mobile-menu { display:none; }

/* Hero */
.hero { min-height:100svh; position:relative; display:flex; align-items:flex-end; color:white; background:#1b1233; }
.hero-video,.hero-scrim { position:absolute; inset:0; width:100%; height:100%; }
.hero-video { --px:.5; --py:.43; }
.hero-scrim { background:linear-gradient(90deg,rgba(18,10,43,.78) 0%,rgba(24,13,55,.35) 52%,rgba(15,10,29,.08) 78%),linear-gradient(0deg,rgba(12,8,24,.7) 0%,transparent 50%); }
.hero-content { position:relative; z-index:2; padding-bottom:110px; display:flex; align-items:flex-end; justify-content:space-between; gap:40px; }
.hero-content>div:first-child { max-width:840px; }
.hero-heading { display:block; color:#fff; font-size:clamp(3.8rem,6.6vw,7.2rem); margin-bottom:30px; font-weight:500; letter-spacing:-.055em; line-height:.96; }
.hero-title-line,.hero-heading em { display:block; white-space:nowrap; }
.hero-heading em { margin-top:.08em; font-family:"Newsreader",serif; font-weight:400; color:#fff; }
.hero-copy { font-size:1.15rem; max-width:610px; color:rgba(255,255,255,.87); margin-bottom:34px; }
.hero-ctas { display:flex; gap:12px; flex-wrap:wrap; }
.hero-location { min-width:190px; display:flex; gap:12px; border-left:1px solid rgba(255,255,255,.42); padding-left:24px; margin-bottom:5px; }
.hero-location div { display:flex; flex-direction:column; gap:6px; font-size:1rem; text-transform:uppercase; letter-spacing:.09em; }
.scroll-cue { position:absolute; right:30px; bottom:30px; color:white; background:none; border:0; display:flex; gap:10px; align-items:center; transform:rotate(90deg); transform-origin:right bottom; font-size:1rem; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; }

/* About */
.about { background:var(--cream); }
.about-grid { display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:7%; }
.about-media { position:relative; min-height:750px; }
.image-frame { overflow:hidden; }
.image-frame img { width:100%; height:100%; object-fit:cover; display:block; }
.image-frame--main { width:88%; height:690px; position:relative; }
.image-frame--main img { object-position:50% 50%; }
.about-established-pill { position:absolute; left:24px; bottom:24px; z-index:2; display:flex; flex-direction:column; align-items:flex-start; gap:2px; background:rgba(21,12,47,.55); backdrop-filter:blur(6px); padding:12px 22px; border-radius:20px; color:#fff; }
.about-established-pill strong { font-family:"Newsreader",serif; font-size:1.6rem; line-height:1; }
.about-established-pill span { font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.about-video-play { width:44px; height:44px; border-radius:50%; background:var(--gold); color:var(--purple); display:grid; place-items:center; flex-shrink:0; }
.about-video-play svg { width:18px; height:18px; margin-left:2px; }
.about-video-modal-frame { width:min(900px,92vw); aspect-ratio:16/9; background:#000; }
.about-video-modal-frame iframe { width:100%; height:100%; border:0; display:block; }
.image-frame--small { width:44%; height:310px; position:absolute; right:0; bottom:0; border:10px solid var(--cream); }
.about-year { position:absolute; right:2%; top:10%; width:180px; height:180px; padding:26px; border-radius:50%; background:var(--purple); color:#fff; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; box-shadow:0 15px 45px rgba(42,22,100,.2); }
.about-year strong { color:#fff; font-family:"Newsreader",serif; font-size:2.8rem; line-height:1; }
.about-year span { font-size:1rem; text-transform:uppercase; letter-spacing:.1em; margin-top:7px; }
.about-year--video { border:0; cursor:pointer; font:inherit; transition:transform .25s,box-shadow .25s; }
.about-year--video:hover { transform:translateY(-2px) scale(1.03); box-shadow:0 18px 50px rgba(42,22,100,.3); }
.about-year--video span { margin-top:10px; }
.about-copy h2 { font-size:var(--section-title-size); margin-bottom:34px; }
.about-title-line { display:block; white-space:nowrap; }
.about-copy .lead { color:var(--purple); font-size:1.2rem; line-height:1.5; max-width:580px; }
.about-copy>p:not(.eyebrow):not(.lead) { color:#686461; max-width:570px; }
.principles { margin-top:35px; display:grid; gap:0; border-top:1px solid var(--line); }
.principles div { display:grid; grid-template-columns:48px 1fr; gap:18px; align-items:center; padding:18px 0; border-bottom:1px solid var(--line); font-size:17px; color:var(--purple); }
.principles svg { width:32px; height:32px; color:var(--orange); }

/* Why */
.why { background:#f2f0ea; }
.section-heading-row { display:grid; grid-template-columns:1.6fr .65fr; align-items:end; gap:8%; margin-bottom:70px; }
.section-heading-row h2 { margin-bottom:0; }
.why h2 { font-size:var(--section-title-size); }
.section-heading-row>p { color:#6f6b68; margin-bottom:8px; }
.pillar-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #cdc9bf; border-left:1px solid #cdc9bf; }
.pillar { min-height:400px; padding:35px; border-right:1px solid #cdc9bf; border-bottom:1px solid #cdc9bf; position:relative; display:flex; flex-direction:column; justify-content:flex-end; background:rgba(255,255,255,.25); }
.pillar>svg { color:var(--orange); width:29px; height:29px; margin-bottom:25px; }
.pillar h3 { color:var(--purple); font-size:1.4rem; margin-bottom:14px; }
.pillar p { font-size:17px; color:#67635f; margin:0; }
.pillar--image { padding:0; overflow:hidden; }
.pillar--image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.pillar--image:hover img { transform:scale(1.03); }

/* Stats */
.stats-breaker { min-height:660px; position:relative; display:flex; align-items:center; overflow:hidden; background:var(--purple-deep); color:white; }
.stats-video-wrap,.stats-overlay { position:absolute; inset:0; }
.stats-video-wrap .bg-video { position:absolute; inset:0; width:100%; height:100%; --px:.5; --py:.46; }
.stats-overlay { background:linear-gradient(90deg,rgba(25,12,66,.9),rgba(31,18,68,.62)),linear-gradient(0deg,rgba(20,10,50,.7),transparent); }
.stats-inner { position:relative; z-index:2; }
.stats-inner,.stats-inner * { color:#fff; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(255,255,255,.35); border-bottom:1px solid rgba(255,255,255,.35); }
.stat { padding:55px 26px; border-right:1px solid rgba(255,255,255,.28); }
.stat:last-child { border:0; }
.stat strong { font-family:"Newsreader",serif; font-weight:400; font-style:italic; color:#fff; font-size:clamp(3.7rem,6vw,6.4rem); line-height:1; display:block; }
.stat span { display:block; max-width:180px; font-size:1rem; text-transform:uppercase; letter-spacing:.09em; line-height:1.5; margin-top:14px; }
.stats-note { text-align:right; margin:25px 0 0 auto; max-width:460px; color:#fff; font-size:17px; }

/* Services */
.services { position:relative; z-index:0; isolation:isolate; overflow:clip; background:#f6f4ef; min-height:1700px; }
.services-sticky { position:sticky; top:0; z-index:0; height:100vh; overflow:hidden; margin-bottom:-100vh; }
.services-sticky video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.services-wash { position:absolute; inset:0; background:linear-gradient(90deg,rgba(246,244,239,.98) 0%,rgba(246,244,239,.82) 45%,rgba(246,244,239,.2) 100%); }
.services-content { position:relative; z-index:2; display:grid; grid-template-columns:.85fr 1.15fr; gap:11%; padding-top:140px; padding-bottom:140px; }
.services-title { position:sticky; top:160px; align-self:start; }
.services-title h2 { font-size:var(--section-title-size); }
.services-title>p:last-child { color:#67635f; max-width:390px; }
.treatment-list { display:block; padding-top:250px; }
.treatment-list::after { content:""; display:block; height:clamp(420px,58vh,520px); }
.treatment-card { --stack-top:118px; position:sticky; top:calc(var(--stack-top) + (var(--card-index) * 10px)); z-index:calc(10 + var(--card-index)); display:grid; grid-template-columns:42px 1fr 48px; gap:20px; align-items:start; min-height:230px; margin-bottom:48px; background:rgba(255,255,255,.92); backdrop-filter:blur(16px); padding:30px; box-shadow:0 18px 55px rgba(41,30,21,.12); border:1px solid rgba(255,255,255,.95); transform-origin:top center; cursor:pointer; }
.treatment-card:last-child { margin-bottom:0; }
.treatment-card>span { color:var(--orange); font-family:"Newsreader",serif; font-size:1.1rem; }
.treatment-card h3 { color:var(--purple); font-size:1.35rem; margin-bottom:10px; }
.treatment-card p { color:#65615e; font-size:17px; margin:0; }
.treatment-card button ,
.treatment-card a[data-cta] { width:45px; height:45px; padding:0; border-radius:50%; border:1px solid #d2cec5; background:transparent; color:var(--purple); display:grid; place-items:center; line-height:0; cursor:pointer; transition:background-color .25s,transform .25s; }
.treatment-card button svg ,
.treatment-card a[data-cta] svg { width:20px; height:20px; display:block; }
.treatment-card button:hover ,
.treatment-card a[data-cta]:hover { background:var(--gold); transform:rotate(8deg); }

/* FAQ */
.faq { position:relative; z-index:1; background:var(--cream); }
.faq-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:12%; }
.faq-intro h2 { font-size:var(--section-title-size); }
.faq-intro>p:not(.eyebrow) { max-width:390px; color:#6b6763; }
.faq-intro>a { color:var(--purple); font-size:1rem; font-weight:600; display:inline-flex; gap:10px; align-items:center; text-decoration:none; margin-top:18px; padding-bottom:5px; border-bottom:1px solid var(--orange); }
.faq-intro>.faq-list { margin-top:40px; }
.faq-list { border-top:1px solid #c9c5bd; }
.first-visit-watch-intro { margin-bottom:32px; }
.first-visit-watch-intro h2 { font-size:var(--section-title-size); margin-bottom:16px; }
.first-visit-watch-intro>p:not(.eyebrow) { color:#6b6763; max-width:480px; }
.first-visit-video-wrap { margin-bottom:40px; }
.faq-list [data-radix-collection-item] { font-size:17px; color:var(--purple); padding:25px 0; text-align:left; text-decoration:none; }
.faq-list svg:not(.faq-plus) { display:none; }
.faq-plus { display:block!important; transition:transform .25s; }
.faq-list [data-state="open"] .faq-plus { transform:rotate(45deg); }
.faq-list [data-state="open"] { border-color:var(--orange); }
.faq-list [data-state="open"]>div { color:#67635f; padding-right:60px; line-height:1.7; font-size:17px; }
.faq-list [data-state="open"]>div .button { margin-top:12px; }

/* Contact and footer */
.contact-cta { display:grid; grid-template-columns:1.2fr .8fr; min-height:650px; background:var(--purple); color:white; }
.contact-image { min-width:0; }
.contact-image img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.contact-content { padding:90px clamp(40px,7vw,110px); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.contact-content h2 { color:white; font-size:var(--section-title-size); }
.contact-content h2 em { color:var(--gold); }
.contact-content>p:not(.eyebrow) { color:rgba(255,255,255,.72); max-width:430px; margin-bottom:30px; }
.footer { background:#f9f7f2; padding:90px 0 25px; }
.footer-top { display:grid; grid-template-columns:1.05fr 1.35fr 1.2fr 1fr; gap:4%; padding-bottom:70px; align-items:start; }
.footer-brand img { width:160px; margin-bottom:25px; }
.footer-brand>p,.footer-column p,.footer-column small { color:#77726d; font-size:17px; }
.socials { display:flex; gap:8px; margin-top:25px; }
.socials a { width:36px; height:36px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; color:var(--purple); }
.socials svg { width:15px; }
.footer-column h3 { color:var(--purple); font-size:1rem; text-transform:uppercase; letter-spacing:.11em; margin-bottom:24px; }
.footer-column p,.footer-column a { display:flex; align-items:flex-start; gap:9px; color:#67635f; text-decoration:none; font-size:17px; margin-bottom:15px; line-height:1.6; }
.footer-column p a { display:inline; color:var(--purple); font-weight:600; text-decoration:underline; text-decoration-color:var(--orange); text-underline-offset:2px; }
.footer-column svg { width:14px; flex:none; color:var(--orange); }
.footer-column small { display:block; line-height:1.8; }
.footer-column strong { color:var(--purple); font-weight:600; }
.footer-service-areas p { display:block; }
.partner-logos { display:grid; gap:12px; }
.partner-logos img { width:100%; max-width:165px; height:72px; object-fit:contain; object-position:center; background:#fff; border:1px solid var(--line); padding:10px; display:block; }
.footer-bottom { border-top:1px solid var(--line); padding-top:22px; display:flex; justify-content:space-between; align-items:center; color:#85817d; font-size:17px; }
.footer-bottom p { margin:0; }
.footer-bottom div { display:flex; gap:25px; align-items:center; }
.footer-bottom a { color:inherit; }
.footer-bottom button { border:0; background:var(--purple); color:white; width:36px; height:36px; display:grid; place-items:center; cursor:pointer; }
.footer-bottom svg { width:15px; }

/* Modal */
.modal-backdrop { position:fixed; inset:0; z-index:100; background:rgba(21,12,47,.75); backdrop-filter:blur(9px); display:flex; align-items:center; justify-content:center; padding:20px; overflow:auto; animation:fadeIn .2s ease; }
.booking-modal-panel { width:min(680px,100%); max-height:calc(100vh - 40px); overflow:auto; background:var(--cream); padding:52px; position:relative; box-shadow:0 30px 100px rgba(0,0,0,.28); }
.modal-close { position:absolute; top:20px; right:20px; width:40px; height:40px; border:1px solid var(--line); background:transparent; border-radius:50%; display:grid; place-items:center; color:var(--purple); cursor:pointer; }
.booking-modal-panel h2 { font-size:clamp(3rem,6vw,5.2rem); margin-bottom:18px; }
.booking-modal-panel>p:not(.eyebrow) { color:#6b6763; }
.booking-modal-panel form { margin-top:30px; }
.booking-modal-panel label { display:block; color:var(--purple); font-size:1rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; margin-bottom:18px; }
.booking-modal-panel label small { color:#8b8782; text-transform:none; }
.booking-modal-panel input,.booking-modal-panel select,.booking-modal-panel textarea { display:block; width:100%; margin-top:8px; background:white; border:1px solid var(--line); border-radius:0; padding:13px 14px; color:var(--ink); outline:none; text-transform:none; letter-spacing:normal; font-size:17px; transition:border-color .2s; }
.booking-modal-panel input:focus,.booking-modal-panel select:focus,.booking-modal-panel textarea:focus { border-color:var(--orange); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-submit { width:100%; }
.form-note { text-align:center; font-size:17px; color:#8a8681; margin:10px 0 0; }
.form-error { color:#a63131; background:#fbeaea; padding:10px; font-size:17px; }
.booking-success { text-align:center; padding:40px 10px; }
.booking-success>span { width:62px; height:62px; display:grid; place-items:center; background:var(--gold); color:var(--purple); border-radius:50%; margin:0 auto 25px; }
.booking-success .eyebrow { justify-content:center; }
.booking-success h2 { margin:20px 0; }
.booking-success>p:not(.eyebrow) { color:#6b6763; margin-bottom:30px; }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }

/* About page */
.about-page-hero { min-height:clamp(460px,58vh,600px); position:relative; display:flex; align-items:flex-end; overflow:hidden; background:var(--purple-deep); color:#fff; }
.about-page-hero>img,.about-page-hero-overlay { position:absolute; inset:0; width:100%; height:100%; }
.about-page-hero>img { object-fit:cover; object-position:center 42%; }
.about-page-hero-overlay { background:linear-gradient(90deg,rgba(20,11,48,.82),rgba(28,16,61,.32) 65%,rgba(20,10,45,.16)),linear-gradient(0deg,rgba(18,9,40,.72),transparent 55%); }
.about-page-hero-content { position:relative; z-index:2; padding-bottom:70px; }
.about-page-hero h1 { max-width:980px; margin:0; color:#fff; font-size:clamp(3.8rem,6.6vw,7.2rem); }
.about-page-hero h1 em { color:#fff; font-family:"Newsreader",serif; font-weight:400; }
.about-call-button { margin-top:30px; }
.about-features { position:relative; z-index:1; background:#f2f0ea; }
.about-features-heading { max-width:760px; margin-bottom:60px; }
.about-features-heading h2 { font-size:var(--section-title-size); margin-bottom:0; }
.about-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.about-feature-card { min-width:0; background:#fff; border:1px solid rgba(42,22,100,.08); box-shadow:0 18px 55px rgba(41,30,21,.07); }
.about-feature-image { aspect-ratio:4/3; overflow:hidden; background:#ddd; }
button.about-feature-image ,
a.about-feature-image { display:block; width:100%; border:none; padding:0; margin:0; cursor:pointer; font:inherit; }
.about-feature-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .65s cubic-bezier(.2,.8,.2,1); }
.about-feature-card:hover .about-feature-image img { transform:scale(1.035); }
.about-feature-body { min-height:260px; padding:32px 30px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; }
.about-feature-body h3 { color:var(--purple); font-size:1.55rem; line-height:1.2; margin:0; }
.about-feature-body p { color:#6b6763; margin:0; max-width:330px; }
.about-feature-body button ,
.about-feature-body a[data-cta] { margin-top:auto; border:0; border-bottom:1px solid var(--orange); padding:0 0 6px; background:transparent; color:var(--purple); display:inline-flex; align-items:center; justify-content:center; gap:10px; font-weight:600; cursor:pointer; }
.about-feature-body button svg ,
.about-feature-body a[data-cta] svg { width:18px; height:18px; }

/* Children & teens treatment detail */
[data-testid="children-teens-page-heading"] { max-width:1120px; font-size:clamp(3.2rem,4.8vw,5.4rem)!important; }
.treatment-detail-combined { position:relative; z-index:1; background:#f2f0ea; }
.treatment-detail-combined-grid { display:grid; grid-template-columns:1fr 1fr; gap:9%; align-items:center; }
.treatment-detail-combined-grid--single { grid-template-columns:1fr; max-width:900px; margin:0 auto; text-align:center; }
.treatment-detail-combined-grid--single .eyebrow { justify-content:center; }
.treatment-detail-image { aspect-ratio:4/5; overflow:hidden; position:relative; }
.treatment-detail-image img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.image-slider { position:relative; width:100%; height:100%; overflow:hidden; }
.image-slider-track { display:flex; width:100%; height:100%; transition:transform .5s ease; }
.image-slider-track img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; flex:0 0 100%; }
.image-slider-arrow { position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%; border:none; background:rgba(255,255,255,.85); color:var(--purple); display:grid; place-items:center; line-height:0; cursor:pointer; transition:background-color .25s; z-index:2; }
.image-slider-arrow:hover { background:var(--gold); }
.image-slider-arrow svg { width:20px; height:20px; }
.image-slider-arrow--prev { left:14px; }
.image-slider-arrow--next { right:14px; }
.image-slider-dots { position:absolute; bottom:16px; left:50%; transform:translateX(-50%); display:flex; gap:9px; z-index:2; }
.image-slider-dot { width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.6); border:none; padding:0; cursor:pointer; transition:background-color .25s,transform .25s; }
.image-slider-dot:hover { background:rgba(255,255,255,.9); }
.image-slider-dot--active { background:var(--gold); transform:scale(1.15); }
.meet-our-staff-image { aspect-ratio:16/9; overflow:hidden; }
.meet-our-staff-image img { width:100%; height:100%; object-fit:cover; object-position:center; display:block; }
.meet-our-staff-alt { background:var(--cream); }
.treatment-detail-content h2,.dental-development h2 { font-size:var(--section-title-size); }
.treatment-detail-content .lead { color:var(--purple); font-size:1.25rem; line-height:1.55; }
.treatment-detail-content>p:not(.eyebrow):not(.lead) { color:#696560; }
.treatment-detail-content h3 { color:var(--purple); font-family:"Newsreader",serif; font-size:2rem; font-style:italic; font-weight:400; margin:34px 0 18px; }
.children-content-contact,.treatment-content-contact { margin-top:20px; }
.dental-development { position:relative; z-index:1; background:var(--cream); }
.dental-development-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:10%; align-items:center; }
.dental-development-grid>div>p:not(.eyebrow) { color:#696560; max-width:520px; }
.dental-development-grid>div>.button { margin-top:24px; }
.development-media-card { min-height:480px; position:relative; overflow:hidden; color:#fff; text-decoration:none; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; width:100%; padding:0; border:none; background:none; cursor:pointer; font:inherit; }
.development-media-card:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(29,16,69,.75),rgba(29,16,69,.08)); }
.development-media-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.development-media-card:hover img { transform:scale(1.035); }
.development-media-card>span,.development-media-card>strong { position:relative; z-index:1; }
.development-media-card>span { width:68px; height:68px; margin-bottom:18px; border-radius:50%; background:var(--gold); color:var(--purple); display:grid; place-items:center; }
.development-media-card>strong { font-family:"Newsreader",serif; font-size:1.7rem; font-style:italic; font-weight:400; }
.development-media-card--video { padding:0; cursor:default; }
.development-media-card--video:after { content:none; }
.development-media-card--video iframe { position:absolute; inset:0; width:100%; height:100%; border:none; pointer-events:auto; }
.dental-development-grid--stack { align-items:start; }
.dental-development-media-stack { display:flex; flex-direction:column; gap:24px; }
.development-media-card--compact { min-height:220px; }
@media (max-width:900px) { .development-media-card--compact { min-height:260px; } }
.dental-development-centered-text { max-width:640px; margin:0 auto 48px; text-align:center; }
.dental-development-centered-text .eyebrow { justify-content:center; }
.dental-development-centered-text>p:not(.eyebrow) { margin-left:auto; margin-right:auto; }
.dental-development-video-row { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.dental-development-video-row:has(.development-media-card:only-child) { grid-template-columns:1fr; max-width:calc(50% - 16px); margin-left:auto; margin-right:auto; }
.dental-development-video-row .development-media-card { min-height:380px; }
@media (max-width:900px) { .dental-development-video-row { grid-template-columns:1fr; } .dental-development-video-row:has(.development-media-card:only-child) { max-width:none; } }

/* Contact page */
.contact-page-main { position:relative; z-index:1; background:var(--cream); }
.contact-page-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:10%; align-items:start; }
.contact-page-details { position:sticky; top:130px; }
.contact-page-details h2,.contact-locations-heading h2 { font-size:var(--section-title-size); }
.contact-page-details>p:not(.eyebrow) { color:#6b6763; max-width:500px; }
.contact-page-details p[data-testid$="-about-copy-1"],
.contact-page-details p[data-testid$="-about-copy-2"],
.contact-page-details p[data-testid$="-about-copy-3"] { max-width:none; margin-bottom:22px; }
.contact-page-details p[data-testid$="-about-copy-1"] { margin-top:20px; }
.contact-detail-list { margin-top:38px; border-top:1px solid var(--line); }
.contact-detail-list>a,.contact-detail-list>div { min-height:92px; padding:19px 0; border-bottom:1px solid var(--line); color:var(--purple); text-decoration:none; display:grid; grid-template-columns:40px 1fr; gap:14px; align-items:center; }
.contact-detail-list svg { width:22px; color:var(--orange); }
.contact-detail-list span { display:flex; flex-direction:column; gap:3px; }
.contact-detail-list small { color:#7a7570; }
.contact-detail-list strong { font-weight:600; overflow-wrap:anywhere; }
.phone-inline-link { color:var(--purple); font-weight:600; text-decoration:underline; text-decoration-color:var(--orange); text-underline-offset:3px; }

/* Legal / policy pages */
.legal-content { max-width:820px; }
.legal-content p { color:#57534f; margin-bottom:22px; }
.legal-content h3 { color:var(--purple); font-size:1.5rem; margin:44px 0 16px; }
.thank-you-content { max-width:560px; margin:0 auto; text-align:center; }
.thank-you-content h2 { font-size:clamp(2.2rem,5vw,3rem); margin:0 0 16px; }
.thank-you-content p { font-size:1.2rem; }
.thank-you-check { width:62px; height:62px; display:grid; place-items:center; background:var(--gold); color:var(--purple); border-radius:50%; margin:0 auto 25px; }

/* Review page */
.review-columns-section { padding-top:0; }
.review-columns { display:grid; grid-template-columns:1fr 1fr; gap:80px; max-width:820px; }
.review-columns h3 { color:var(--purple); font-size:1.5rem; margin-bottom:8px; }
.review-columns .contact-detail-list svg { width:20px; color:var(--orange); }
@media (max-width:760px) { .review-columns { grid-template-columns:1fr; gap:44px; } }

/* Smile Gallery page */
.gallery-category + .gallery-category { padding-top:0; }
.gallery-category-heading { max-width:760px; margin-bottom:50px; }
.gallery-category-heading h2 { font-size:var(--section-title-size); margin:14px 0 18px; }
.gallery-category-intro { color:#6b6763; }
.gallery-case-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.gallery-case-card { background:#fff; border:1px solid rgba(42,22,100,.08); padding:20px; box-shadow:0 12px 40px rgba(41,30,21,.06); }
.gallery-case-images { display:grid; grid-template-columns:1fr 1fr; gap:2px; margin-bottom:18px; }
.gallery-case-image { position:relative; aspect-ratio:770/460; overflow:hidden; background:#f2f0ea; }
.gallery-case-image img { width:100%; height:100%; object-fit:cover; display:block; }
.gallery-case-image span { position:absolute; top:10px; left:10px; background:rgba(42,22,100,.85); color:#fff; font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; padding:4px 10px; border-radius:2px; z-index:1; }
.gallery-case-card h3 { color:var(--purple); font-size:1.3rem; margin-bottom:8px; }
.gallery-case-card p { color:#6b6763; }
.gallery-disclaimer-section { padding-top:0; }
.gallery-disclaimer-section p { color:#8a857e; font-size:.95rem; line-height:1.6; }
@media (max-width:760px) { .gallery-case-grid { grid-template-columns:1fr; } }

/* Mill Park landing page */
.mill-park-map { min-height:460px; overflow:hidden; box-shadow:0 20px 70px rgba(41,30,21,.08); }
.mill-park-map iframe { width:100%; height:100%; min-height:460px; border:0; display:block; }
.mill-park-cta-row { display:flex; flex-wrap:wrap; gap:16px; margin-top:34px; }
.mill-park-accordion { margin-top:36px; }
.mill-park-accordion [data-state="open"]>div { padding-right:0; }
.mill-park-accordion .contact-detail-list { margin-top:0; border-top:none; }
.mill-park-accordion .contact-detail-list>div:last-child { border-bottom:none; }
.mill-park-accordion .contact-detail-list svg { display:block!important; }
@media (max-width:760px) { .mill-park-map,.mill-park-map iframe { min-height:320px; } }
.contact-form-panel { background:#fff; padding:44px; border:1px solid rgba(42,22,100,.09); box-shadow:0 20px 70px rgba(41,30,21,.08); }
.contact-form-panel h3 { color:var(--purple); font-size:2rem; margin-bottom:28px; }
.contact-form-panel label { display:block; color:var(--purple); font-weight:600; margin-bottom:20px; }
.contact-form-panel input,.contact-form-panel textarea { width:100%; margin-top:8px; padding:14px 15px; border:1px solid var(--line); background:var(--cream); color:var(--ink); outline:none; transition:border-color .2s ease,background-color .2s ease; }
.contact-form-panel input:focus,.contact-form-panel textarea:focus { border-color:var(--orange); background:#fff; }
.contact-form-submit { width:100%; }
.contact-form-success { min-height:520px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.contact-form-success>span { width:60px; height:60px; margin-bottom:25px; border-radius:50%; background:var(--gold); color:var(--purple); display:grid; place-items:center; }
.contact-form-success .eyebrow { margin-bottom:16px; }
.contact-form-success h3 { font-family:"Newsreader",serif; font-size:3.4rem; font-style:italic; font-weight:400; margin-bottom:12px; }
.contact-form-success>p:not(.eyebrow) { color:#6b6763; margin-bottom:28px; }
.contact-jotform-panel { min-width:0; }
.doctor-referrals-single { max-width:820px; margin:0 auto; }
.doctor-referrals-intro { margin-bottom:48px; }
.doctor-referrals-intro h2 { font-size:var(--section-title-size); margin-bottom:16px; }
.doctor-referrals-intro>p:not(.eyebrow) { color:#6b6763; max-width:560px; }
.jotform-embed-shell { position:relative; width:100%; min-height:620px; background:#fff; border:1px solid rgba(42,22,100,.09); box-shadow:0 20px 70px rgba(41,30,21,.08); overflow:hidden; }
.jotform-host { width:100%; min-height:620px; }
.jotform-host iframe { width:100%!important; min-width:0!important; max-width:100%!important; display:block!important; }
.jotform-loading { position:absolute; inset:0; z-index:2; padding:48px; background:#fff; display:flex; flex-direction:column; gap:18px; }
.jotform-loading span { height:50px; border-radius:3px; background:linear-gradient(90deg,#f0eee8 20%,#f8f7f3 50%,#f0eee8 80%); background-size:220% 100%; animation:jotformShimmer 1.25s linear infinite; }
.jotform-loading span:first-child { width:42%; height:32px; }
.jotform-loading p { color:#716d68; margin:5px 0 0; }
.jotform-error { position:absolute; inset:0; z-index:3; min-height:620px; padding:45px; background:#fff; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.jotform-error>svg { width:36px; height:36px; color:var(--orange); margin-bottom:20px; }
.jotform-error h3 { color:var(--purple); font-size:2rem; margin-bottom:12px; }
.jotform-error p { color:#6b6763; max-width:500px; }
@keyframes jotformShimmer { to { background-position:-220% 0; } }
.contact-locations { position:relative; z-index:1; background:#f2f0ea; }
.contact-locations-heading { max-width:760px; margin-bottom:58px; }
.contact-location-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.contact-location-card { background:#fff; border:1px solid rgba(42,22,100,.08); }
.contact-location-image { aspect-ratio:16/9; overflow:hidden; }
.contact-location-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .55s ease; }
.contact-location-card:hover img { transform:scale(1.03); }
.contact-location-body { padding:30px; }
.contact-location-body h3 { color:var(--purple); font-size:1.7rem; margin-bottom:16px; }
.contact-location-body p { color:#6b6763; display:flex; align-items:flex-start; gap:10px; }
.contact-location-body p svg { width:18px; flex:none; color:var(--orange); margin-top:3px; }
.contact-location-body a { color:var(--purple); font-weight:600; text-decoration:none; display:inline-flex; align-items:center; gap:9px; padding-bottom:5px; border-bottom:1px solid var(--orange); }
.contact-location-body a svg { width:17px; }

/* Specialist orthodontists index */
[data-testid="specialists-page-heading"] { max-width:1120px; font-size:clamp(3.2rem,4.8vw,5.4rem)!important; }
.specialists-section { position:relative; z-index:1; background:#f2f0ea; }
.specialists-heading { max-width:760px; margin-bottom:58px; }
.specialists-heading h2 { font-size:var(--section-title-size); }
.specialist-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.specialist-card { min-width:0; background:#fff; border:1px solid rgba(42,22,100,.08); box-shadow:0 16px 45px rgba(41,30,21,.06); transition:transform .3s ease,box-shadow .3s ease; }
.specialist-card--linked { color:inherit; text-decoration:none; }
.specialist-card:hover { transform:translateY(-5px); box-shadow:0 24px 58px rgba(41,30,21,.11); }
.specialist-card-image { position:relative; aspect-ratio:4/5; overflow:hidden; background:#ddd; }
.specialist-card-image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .55s ease; }
.specialist-card:hover img { transform:scale(1.025); }
.specialist-card-body { min-height:155px; padding:25px 20px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.specialist-card-body h3 { color:var(--purple); font-size:1.35rem; line-height:1.25; margin-bottom:10px; }
.specialist-card-body p { color:#5f5a55; margin-bottom:0; }
.specialist-card-body p span { color:#817c76; }
.specialist-card-link-icon { position:absolute; right:16px; bottom:16px; z-index:2; width:44px; height:44px; border-radius:50%; background:var(--gold); color:var(--purple); display:grid; place-items:center; box-shadow:0 8px 24px rgba(29,16,69,.18); }
.specialist-card-link-icon svg { width:19px; }

/* Process step badge (reuses about-feature-card layout) */
.process-step-badge { position:absolute; left:16px; top:16px; z-index:2; width:40px; height:40px; border-radius:50%; background:var(--gold); color:var(--purple); display:grid; place-items:center; font-weight:700; box-shadow:0 8px 24px rgba(29,16,69,.18); }
.about-feature-image { position:relative; }

/* Inline accordion video row (Bite Jumper) */
.faq-inline-videos { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px; }
.faq-inline-videos:has(.faq-inline-video:only-child) { grid-template-columns:1fr; max-width:calc(50% - 9px); }
.faq-inline-video { aspect-ratio:16/9; overflow:hidden; background:#000; }
.faq-inline-video iframe { width:100%; height:100%; border:none; display:block; }
.faq-list ul { margin:14px 0 0; padding-left:20px; list-style:disc; }
.faq-list ul li { margin-bottom:6px; }
.faq-list h4 { color:var(--purple); font-size:1rem; margin:16px 0 8px; }
@media (max-width:760px) { .faq-inline-videos { grid-template-columns:1fr; } .faq-inline-videos:has(.faq-inline-video:only-child) { max-width:none; } }

/* Specialist profile */
.specialist-profile-section { position:relative; z-index:1; background:#f2f0ea; }
.specialist-profile-grid { display:grid; grid-template-columns:1fr 1fr; gap:9%; align-items:center; }
.specialist-profile-image { aspect-ratio:4/5; overflow:hidden; background:#ddd; }
.specialist-profile-image img { width:100%; height:100%; object-fit:cover; object-position:center 18%; display:block; }
.specialist-profile-copy h2 { font-size:var(--section-title-size); margin-bottom:16px; }
.specialist-profile-credential { color:#696560; font-weight:600; margin-bottom:32px; }
.specialist-profile-copy blockquote { margin:0; padding:24px 0 24px 30px; border-left:2px solid #c9c5bd; color:#696560; font-family:"Newsreader",serif; font-size:1.6rem; font-style:italic; line-height:1.55; }

/* Facilities gallery */
.facilities-gallery-heading { display:grid; grid-template-columns:.8fr 1.2fr; gap:10%; align-items:center; margin-bottom:60px; }
.facilities-gallery-heading h2 { font-size:var(--section-title-size); }
.facilities-gallery-intro p:not(:last-child) { margin-bottom:16px; }
.facilities-gallery-intro p:not(.eyebrow) { color:#696560; }
.facilities-gallery { column-count:3; column-gap:10px; }
.facilities-gallery-item { display:block; width:100%; margin:0 0 10px; border:none; padding:0; background:none; cursor:pointer; break-inside:avoid; overflow:hidden; }
.facilities-gallery-item img { width:100%; height:auto; display:block; transition:transform .55s ease; }
.facilities-gallery-item:hover img { transform:scale(1.035); }
.facilities-lightbox-image { display:block; max-width:min(1200px,88vw); max-height:86vh; width:auto; height:auto; object-fit:contain; box-shadow:0 30px 100px rgba(0,0,0,.35); }
.facilities-lightbox-nav { position:fixed; top:50%; transform:translateY(-50%); width:52px; height:52px; border:0; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; display:grid; place-items:center; cursor:pointer; transition:background-color .2s; }
.facilities-lightbox-nav:hover { background:rgba(255,255,255,.24); }
.facilities-lightbox-nav svg { width:26px; height:26px; }
.facilities-lightbox-nav--prev { left:24px; }
.facilities-lightbox-nav--next { right:24px; }

@media (max-width:1050px) {
  .header-actions { margin-left:auto; }
  .site-header { min-height:74px; padding:0 18px; }
  .site-header--scrolled { min-height:68px; }
  .brand { width:124px; }
  .desktop-nav { display:none; }
  .menu-toggle { display:block; }
  .mobile-menu { display:block; position:fixed; inset:0; overflow-y:auto; -webkit-overflow-scrolling:touch; background:var(--purple-deep); transform:translateY(-102%); visibility:hidden; pointer-events:none; transition:transform .4s cubic-bezier(.2,.8,.2,1),visibility 0s linear .4s; z-index:-1; }
  .mobile-menu--open { transform:translateY(0); visibility:visible; pointer-events:auto; z-index:1; transition:transform .4s cubic-bezier(.2,.8,.2,1),visibility 0s; }
  .mobile-menu { overscroll-behavior:contain; }
  .mobile-menu::before { content:""; display:block; position:sticky; top:0; z-index:3; height:74px; margin-bottom:-74px; background:var(--purple-deep); }
  .site-header--menu-open .brand { filter:brightness(0) invert(1); }
  .site-header--menu-open .menu-toggle { color:#fff; }
  .mobile-menu-inner { min-height:100%; padding:125px 28px 40px; display:flex; flex-direction:column; align-items:stretch; }
  .mobile-nav-group { display:flex; flex-direction:column; align-items:stretch; }
  .mobile-nav-group>button:not(.mobile-subnav),.mobile-nav-group>.mobile-nav-link { background:none; border:0; color:white; font-family:"Newsreader",serif; font-style:italic; font-size:2.6rem; text-align:left; padding:12px 0; text-decoration:none; }
  .mobile-subnav { display:block; border:0; border-left:1px solid rgba(255,255,255,.35); background:none; color:var(--gold); padding:5px 0 5px 18px; text-align:left; font-size:17px; text-decoration:none; }
  .mobile-subgroup { display:flex; flex-direction:column; }
  .mobile-subgroup-row { display:grid; grid-template-columns:1fr 44px; align-items:center; }
  .mobile-subnav-toggle { width:44px; height:44px; border:0; background:rgba(255,255,255,.08); color:var(--gold); display:grid; place-items:center; }
  .mobile-subnav-toggle svg { width:19px; transition:transform .25s ease; }
  .mobile-subnav-toggle--open svg { transform:rotate(180deg); }
  .mobile-grandchildren { max-height:0; opacity:0; overflow:hidden; transition:max-height .3s ease,opacity .25s ease; }
  .mobile-grandchildren--open { max-height:600px; opacity:1; }
  .mobile-subnav--nested { margin-left:18px; color:#fff; border-left-color:rgba(240,200,60,.7); }
  .mobile-menu-inner>a { color:var(--gold); text-decoration:none; margin:25px 0; }
  .about-grid { gap:6%; }
  .pillar-grid { grid-template-columns:1fr 1fr; }
  .services-content { gap:6%; }
  .footer-top { grid-template-columns:1fr 1fr; gap:48px 7%; }
  .about-feature-body { padding:28px 24px; }
  .contact-page-grid { grid-template-columns:1fr; gap:55px; }
  .contact-page-details { position:relative; top:auto; }
  .specialist-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .facilities-gallery { column-count:2; }
  .facilities-gallery-heading { grid-template-columns:1fr; gap:24px; align-items:start; }
}

@media (max-width:760px) {
  .page-shell { width:min(100% - 36px,1240px); }
  .section { padding:88px 0; }
  .phone-link { display:none; }
  .hero-content { padding-bottom:75px; display:block; }
  .hero-heading { font-size:clamp(2.65rem,11.5vw,4rem); }
  .hero-copy { font-size:17px; }
  .hero-location { display:none; }
  .scroll-cue { display:none; }
  .hero-video { --px:.58; --py:.5; }
  .about-grid,.section-heading-row,.faq-grid,.contact-cta,.services-content { grid-template-columns:1fr; }
  .about-grid { gap:62px; }
  .about-media { min-height:570px; }
  .image-frame--main { height:530px; width:92%; }
  .image-frame--small { width:48%; height:220px; }
  .about-year { width:150px; height:150px; padding:20px; right:0; }
  .about-year strong { font-size:2.1rem; }
  h2 { font-size:clamp(3.1rem,14vw,4.6rem); }
  .section-heading-row { align-items:start; gap:25px; margin-bottom:45px; }
  .pillar-grid { grid-template-columns:1fr; }
  .pillar { min-height:310px; }
  .pillar--image { min-height:390px; grid-row:2; }
  .stats-breaker { min-height:760px; }
  .stats-video-wrap .bg-video { --px:.62; --py:.5; }
  .stats-grid { grid-template-columns:1fr 1fr; }
  .stat { padding:35px 18px; border-bottom:1px solid rgba(255,255,255,.28); }
  .stat:nth-child(2) { border-right:0; }
  .stat strong { font-size:3.6rem; }
  .services { min-height:auto; }
  .services-sticky { position:sticky; }
  .services-sticky video { position:absolute; height:100%; }
  .services-wash { background:rgba(246,244,239,.87); }
  .services-content { padding-top:90px; padding-bottom:90px; }
  .services-title { position:relative; top:auto; }
  .treatment-list { padding-top:55px; }
  .treatment-list::after { height:clamp(420px,58vh,500px); }
  .treatment-card { --stack-top:88px; top:calc(var(--stack-top) + (var(--card-index) * 6px)); grid-template-columns:30px 1fr; min-height:290px; margin-bottom:40px; padding:24px 20px; }
  .treatment-card button ,
  .treatment-card a[data-cta] { grid-column:2; }
  .faq-grid { gap:55px; }
  .contact-cta { min-height:0; }
  .contact-image { aspect-ratio:1.15/1; }
  .contact-content { padding:75px 25px; }
  .footer-top { grid-template-columns:1fr; gap:42px; }
  .partner-logos { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .partner-logos img { max-width:none; height:82px; }
  .footer-bottom { align-items:flex-start; gap:20px; }
  .footer-bottom div { gap:12px; flex-wrap:wrap; justify-content:flex-end; }
  .booking-modal-panel { padding:48px 22px 28px; }
  .form-row { grid-template-columns:1fr; gap:0; }
  .about-page-hero { min-height:clamp(400px,55vh,480px); }
  .about-page-hero>img { object-position:57% center; }
  .about-page-hero-content { padding-bottom:48px; }
  .about-page-hero h1 { font-size:clamp(2.8rem,12vw,4.3rem); }
  .about-feature-grid { grid-template-columns:1fr; }
  .about-feature-image { aspect-ratio:1.15/1; }
  .about-feature-body { min-height:190px; }
  [data-testid="children-teens-page-heading"] { font-size:clamp(2.25rem,10vw,3.2rem)!important; }
  [data-testid="specialists-page-heading"] { font-size:clamp(2.25rem,10vw,3.2rem)!important; }
  .treatment-detail-combined-grid,.dental-development-grid { grid-template-columns:1fr; }
  .treatment-detail-combined-grid,.dental-development-grid { gap:50px; }
  .treatment-detail-image { aspect-ratio:1/1.08; }
  .development-media-card { min-height:360px; }
  .contact-page-grid,.contact-location-grid { grid-template-columns:1fr; }
  .contact-page-grid { gap:55px; }
  .contact-page-details { position:relative; top:auto; }
  .contact-form-panel { padding:32px 22px; }
  .jotform-embed-shell,.jotform-host { min-height:680px; }
  .jotform-loading { padding:28px 20px; }
  .jotform-error { min-height:680px; padding:30px 22px; }
  .contact-location-grid { gap:18px; }
  .contact-location-body { padding:24px; }
  .specialist-grid { grid-template-columns:1fr; gap:18px; }
  .specialist-card-image { aspect-ratio:1/1.08; }
  .specialist-profile-grid { grid-template-columns:1fr; gap:50px; }
  .specialist-profile-image { aspect-ratio:1/1.12; }
  .specialist-profile-copy blockquote { padding-left:22px; font-size:1.35rem; }
  .facilities-gallery { column-count:1; }
}

@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }

/* Mobile sticky contact bar (Call / Contact / Locations) — phones only */
.mobile-sticky-bar { display:none; }
@media (max-width:760px) {
  .mobile-sticky-bar { display:grid; grid-template-columns:1fr 92px 1fr; align-items:center; position:fixed; left:0; right:0; bottom:0; z-index:40; height:calc(66px + env(safe-area-inset-bottom,0px)); padding:0 12px env(safe-area-inset-bottom,0px); background:var(--purple); border-top:2px solid var(--orange); box-shadow:0 -10px 30px rgba(29,16,69,.28); }
  .msb-side { display:flex; align-items:center; justify-content:center; gap:9px; min-height:64px; color:#fff; font-size:.92rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; cursor:pointer; list-style:none; -webkit-tap-highlight-color:transparent; }
  .msb-side::-webkit-details-marker { display:none; }
  .msb-side svg { width:20px; height:20px; color:var(--gold); flex-shrink:0; }
  .msb-center { justify-self:center; width:72px; height:72px; margin-top:-40px; border-radius:50%; background:var(--gold); color:var(--purple-deep); display:grid; place-items:center; border:6px solid var(--purple); box-shadow:0 -6px 16px rgba(29,16,69,.22); text-decoration:none; }
  .msb-center svg { width:26px; height:26px; }
  .msb-locations[open] .msb-side svg { color:var(--orange); }
  .msb-panel { position:fixed; left:12px; right:12px; bottom:calc(66px + env(safe-area-inset-bottom,0px) + 14px); display:grid; gap:10px; padding:14px; background:var(--cream); border:1px solid var(--line); border-top:3px solid var(--orange); box-shadow:0 18px 50px rgba(29,16,69,.28); }
  .msb-clinic { display:flex; gap:12px; align-items:flex-start; padding:12px; background:#fff; border:1px solid var(--line); color:var(--ink); text-decoration:none; font-size:.95rem; line-height:1.45; }
  .msb-clinic svg { width:20px; height:20px; margin-top:2px; color:var(--orange); flex-shrink:0; }
  .msb-clinic strong { display:block; color:var(--purple); font-size:1.05rem; }
  .msb-clinic em { display:block; margin-top:4px; color:var(--purple); font-style:normal; font-weight:600; font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; }
  /* keep page content clear of the bar */
  .footer { padding-bottom:calc(25px + 70px + env(safe-area-inset-bottom,0px)); }
  .hero-content { padding-bottom:120px; }
  .scroll-cue { bottom:104px; }
}

/* Background YouTube video (home hero + "Our story in numbers"): no still image — the section's own background shows until the
   player fades in. The iframe is sized/positioned to behave like object-fit:cover with the object-position given by --px / --py,
   zoomed by --s so YouTube's edge overlays (title bar, "More videos", logo) sit outside the visible section. */
.bg-video { --s:1.16; overflow:hidden; pointer-events:none; container-type:size; }
.bg-video iframe { position:absolute; left:0; top:0; width:100%; height:100%; border:0; pointer-events:none; opacity:0; transition:opacity .9s ease; }
.bg-video.is-playing iframe { opacity:1; }
@supports (width:1cqw) {
  .bg-video iframe { --w:calc(max(100cqw,177.7778cqh)*var(--s,1)); width:var(--w); height:calc(var(--w)*.5625); left:calc((100cqw - var(--w))*var(--px,.5)); top:calc((100cqh - var(--w)*.5625)*var(--py,.5)); }
}

/* 4. Static-site additions: scroll reveal (replaces Framer Motion), link-style buttons, accordion animation, misc. */

/* ---- Scroll reveal (replaces Framer Motion initial/whileInView/animate) --------------------------------------- */
.reveal {
  opacity: 0;
  transform: translateY(var(--reveal-y, 0px));
  transition:
    opacity var(--reveal-duration, 0.55s) cubic-bezier(0.2, 0.8, 0.2, 1) var(--reveal-delay, 0s),
    transform var(--reveal-duration, 0.55s) cubic-bezier(0.2, 0.8, 0.2, 1) var(--reveal-delay, 0s);
}
.reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ---- Utility used by js/main.js -------------------------------------------------------------------------------- */
.is-hidden { display: none !important; }

/* ---- Header: hamburger/close icon swap (React swapped the icon component) ------------------------------------- */
.menu-toggle-icon--close { display: none; }
.menu-toggle[aria-expanded="true"] .menu-toggle-icon--open { display: none; }
.menu-toggle[aria-expanded="true"] .menu-toggle-icon--close { display: inline; }

/* ---- Accordion (replaces Radix): open/close height animation ------------------------------------------------- */
[data-accordion-content] { overflow: hidden; }
@keyframes accordion-down { from { height: 0; } to { height: var(--radix-accordion-content-height); } }
@keyframes accordion-up { from { height: var(--radix-accordion-content-height); } to { height: 0; } }
[data-accordion-content][data-state="open"]:not([data-initial]) { animation: accordion-down 0.2s ease-out; }
[data-accordion-content][data-state="closed"] { animation: accordion-up 0.2s ease-out; }
@media (prefers-reduced-motion: reduce) {
  [data-accordion-content] { animation: none !important; }
}

/* ---- Lucide icons: keep inline layout stable until lucide.createIcons() swaps <i> for <svg> -------------------- */
i[data-lucide] { display: inline-block; }

/* ---- Navigation "buttons" rendered as links (<a data-cta>): match the UA <button> text alignment -------------- */
a[data-cta] { text-align: center; }

