:root {
   --brand-purple: #3C2C5D;
   --brand-lavender: #AE92E6;
   --brand-lilac: #E6DCFA;
   --brand-white: #FCFBFD;
   --purple-50: #F6F1FC;
   --purple-100: #E6DCFA;
   --purple-200: #D8C8F3;
   --purple-300: #C6AFEC;
   --purple-400: #AE92E6;
   --purple-500: #9A79D9;
   --purple-600: #7E5DBE;
   --purple-700: #63489A;
   --purple-800: #4C3878;
   --purple-900: #3C2C5D;
   --purple-950: #281C40;
   --neutral-0: #FFFFFF;
   --neutral-50: #FCFBFD;
   --neutral-100: #F4F1F8;
   --neutral-200: #E9E3F1;
   --neutral-300: #D7CEE6;
   --neutral-400: #B4A8C9;
   --neutral-500: #8B7DA6;
   --neutral-600: #6A5C86;
   --neutral-700: #4F4368;
   --neutral-800: #382D4E;
   --neutral-900: #271E39;
   --text-strong: #3C2C5D;
   --text-body: #554A6B;
   --text-muted: #8579A0;
   --text-faint: #B4A8C9;
   --text-on-dark: #FCFBFD;
   --text-on-accent: #2A1E42;
   --bg-page: #FCFBFD;
   --bg-subtle: #F6F1FC;
   --surface-card: #FFFFFF;
   --surface-tint: #F1EAFB;
   --surface-lilac: #E6DCFA;
   --surface-inverse: #3C2C5D;
   --border-subtle: #ECE5F6;
   --border: #E0D6F0;
   --border-strong: #CDBFE6;
   --divider: #E7DFF3;
   --accent: #3C2C5D;
   --accent-hover: #2E2148;
   --accent-press: #241A3A;
   --accent-soft: #AE92E6;
   --accent-soft-hover: #9A79D9;
   --accent-soft-bg: #E6DCFA;
   --link: #63489A;
   --link-hover: #3C2C5D;
   --focus-ring: #AE92E6;
   --success: #4E8C6A;
   --success-bg: #E7F1EA;
   --warning: #B98544;
   --warning-bg: #F6ECDD;
   --error: #B65468;
   --error-bg: #F6E4E8;
   --info: #63489A;
   --info-bg: #EEE7F8;
   --font-display: 'Instrument Serif', Georgia, 'Times New Roman', serif;
   --font-sans: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
   --font-mono: 'DM Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;
   --fw-light: 300;
   --fw-regular: 400;
   --fw-medium: 500;
   --fw-semibold: 600;
   --fw-bold: 700;
   --fw-heavy: 800;
   --text-display-xl: 5.5rem;
   --text-display-lg: 4rem;
   --text-display-md: clamp(2.125rem, 5vw, 3rem);
   --text-display-sm: clamp(1.75rem, 3.8vw, 2.25rem);
   --text-heading: 1.75rem;
   --text-title: 1.375rem;
   --text-body-lg: 1.25rem;
   --text-body: 1.0625rem;
   --text-body-sm: 0.9375rem;
   --text-caption: 0.8125rem;
   --text-label: 0.8125rem;
   --text-label-sm: 0.6875rem;
   --lh-tight: 1.06;
   --lh-snug: 1.2;
   --lh-heading: 1.14;
   --lh-body: 1.6;
   --lh-relaxed: 1.72;
   --ls-display: -0.02em;
   --ls-heading: -0.01em;
   --ls-body: -0.01em;
   --ls-label: 0.16em;
   --ls-label-sm: 0.12em;
   --space-0: 0;
   --space-1: 0.25rem;
   --space-2: 0.5rem;
   --space-3: 0.75rem;
   --space-4: 1rem;
   --space-5: 1.25rem;
   --space-6: 1.5rem;
   --space-8: 2rem;
   --space-10: 2.5rem;
   --space-12: 3rem;
   --space-16: 4rem;
   --space-20: 5rem;
   --space-24: 6rem;
   --space-32: 8rem;
   --container-max: 1200px;
   --container-wide: 1360px;
   --container-text: 680px;
   --gutter: 1.5rem;
   --section-y: 6rem;
   --radius-xs: 6px;
   --radius-sm: 10px;
   --radius-md: 16px;
   --radius-lg: 22px;
   --radius-xl: 30px;
   --radius-2xl: 40px;
   --radius-pill: 99999px;
   --radius-arch: 99999px 99999px 20000px 20000px;
   --shadow-xs: 0 1px 2px rgba(60, 44, 93, 0.05);
   --shadow-sm: 0 2px 8px rgba(60, 44, 93, 0.06);
   --shadow-md: 0 8px 24px rgba(60, 44, 93, 0.08);
   --shadow-lg: 0 18px 44px rgba(60, 44, 93, 0.12);
   --shadow-xl: 0 30px 70px rgba(60, 44, 93, 0.16);
   --shadow-focus: 0 0 0 3px rgba(174, 146, 230, 0.45);
   --shadow-inset-hair: inset 0 1px 0 rgba(255, 255, 255, 0.6);
   --ease-out: cubic-bezier(.16, 1, .3, 1);
   --ease-inout: cubic-bezier(.4, 0, .2, 1);
   --dur-feedback: 220ms;
   --dur-state: 300ms;
   --dur-exit: 320ms;
   --dur-move: 420ms;
   --dur-entrance: 720ms;
   --dur-unveil: 1000ms;
}

*,
*::before,
*::after {
   box-sizing: border-box
}

html {
   -webkit-text-size-adjust: 100%;
   scroll-behavior: smooth
}

body {
   margin: 0;
   background: var(--bg-page);
   color: var(--text-body);
   font-family: var(--font-sans);
   font-size: var(--text-body);
   line-height: var(--lh-body);
   font-weight: var(--fw-regular);
   letter-spacing: var(--ls-body);
   font-synthesis-weight: none;
   -webkit-font-smoothing: antialiased;
   text-rendering: optimizeLegibility
}

h1,
h2,
h3,
h4,
h5,
h6 {
   margin: 0;
   font-family: var(--font-display);
   color: var(--text-strong);
   font-weight: var(--fw-regular);
   letter-spacing: var(--ls-heading);
   line-height: var(--lh-heading)
}

p,
blockquote,
address {
   margin: 0;
   text-wrap: pretty
}

address {
   font-style: normal
}

a {
   color: var(--link);
   text-decoration: none;
   transition: color .2s ease
}

a:not(:where(.dsbtn)):hover {
   color: var(--accent-soft-hover)
}

b,
strong {
   font-weight: var(--fw-semibold)
}

small {
   font-size: var(--text-caption)
}

img,
svg,
video {
   display: block;
   max-width: 100%
}

button {
   font-family: inherit
}

:focus-visible {
   outline: none;
   box-shadow: var(--shadow-focus);
   border-radius: 6px
}

::selection {
   background: var(--brand-lavender);
   color: var(--text-on-accent)
}

@keyframes settle-up {
   from {
      opacity: 0;
      transform: translateY(var(--rise, 14px))
   }
}

.ds-eyebrow {
   font-family: var(--font-mono);
   font-size: var(--text-label);
   text-transform: uppercase;
   letter-spacing: var(--ls-label);
   color: var(--accent-soft-hover);
   font-weight: var(--fw-regular)
}

.ds-italic-accent {
   font-style: italic;
   color: var(--accent-soft-hover)
}

.ds-icon {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   flex: none;
   line-height: 0;
   width: var(--_sz, 20px);
   height: var(--_sz, 20px)
}

.ds-icon>svg {
   width: 100%;
   height: 100%;
   display: block;
   stroke-width: var(--_sw, 2);
   fill: none
}

.ds-eyebrow--on-dark {
   color: var(--text-on-dark)
}

.ds-eyebrow--lavender {
   color: var(--brand-lavender)
}

.ds-eyebrow__dash {
   opacity: .55
}

.ds-divider {
   border: 0;
   height: 1px;
   background: var(--divider);
   margin: 0
}

.ds-divider--vertical {
   width: 1px;
   align-self: stretch;
   min-height: 1em;
   background: var(--divider)
}

.dsbtn {
   --_py: 11px;
   --_px: 22px;
   --_fs: 15px;
   --_gap: 10px;
   --_circ: 26px;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: var(--_gap);
   font-family: var(--font-sans);
   font-weight: 500;
   font-size: var(--_fs);
   line-height: 1;
   border-radius: var(--radius-pill);
   border: 1px solid transparent;
   cursor: pointer;
   text-decoration: none;
   padding: var(--_py) var(--_px);
   white-space: nowrap;
   transition: background .2s ease, color .2s ease, box-shadow .2s ease, border-color .2s ease, transform .1s ease;
   -webkit-tap-highlight-color: transparent
}

.dsbtn:active {
   transform: scale(.98)
}

.dsbtn[aria-disabled=true] {
   opacity: .5;
   pointer-events: none
}

.dsbtn--sm {
   --_py: 8px;
   --_px: 16px;
   --_fs: 13px;
   --_gap: 8px;
   --_circ: 20px
}

.dsbtn--lg {
   --_py: 14px;
   --_px: 28px;
   --_fs: 17px;
   --_gap: 12px;
   --_circ: 32px
}

.dsbtn--arrow {
   padding-right: calc(var(--_py) - 2px)
}

.dsbtn__circle {
   display: grid;
   place-items: center;
   border-radius: 50%;
   flex: none;
   width: var(--_circ);
   height: var(--_circ);
   transition: transform .2s ease
}

.dsbtn:hover .dsbtn__circle {
   transform: translateX(2px)
}

.dsbtn--primary {
   background: var(--accent);
   color: var(--text-on-dark);
   box-shadow: var(--shadow-md)
}

.dsbtn--primary:hover {
   background: var(--accent-soft-hover)
}

.dsbtn--primary .dsbtn__circle {
   background: #fff;
   color: var(--accent)
}

.dsbtn--secondary {
   background: var(--surface-card);
   color: var(--text-strong);
   border-color: var(--border);
   box-shadow: var(--shadow-sm)
}

.dsbtn--secondary:hover {
   background: var(--surface-tint)
}

.dsbtn--secondary .dsbtn__circle {
   background: var(--accent);
   color: #fff
}

.dsbtn--soft {
   background: var(--surface-lilac);
   color: var(--text-on-accent)
}

.dsbtn--soft:hover {
   background: var(--purple-300)
}

.dsbtn--soft .dsbtn__circle {
   background: var(--accent);
   color: #fff
}

.dsbtn--outline {
   background: transparent;
   color: var(--text-strong);
   border-color: var(--border-strong)
}

.dsbtn--outline:hover {
   background: var(--surface-tint)
}

.dsbtn--outline .dsbtn__circle {
   background: var(--accent);
   color: #fff
}

.dsbtn--ghost {
   background: transparent;
   color: var(--accent);
   padding-left: calc(var(--_px) - 6px);
   padding-right: calc(var(--_px) - 6px)
}

.dsbtn--ghost:hover {
   background: var(--surface-tint)
}

.dsbtn--ghost .dsbtn__circle {
   background: var(--accent);
   color: #fff
}

.dsbtn>.ds-icon {
   --_sz: 17px
}

.dsbtn--sm>.ds-icon {
   --_sz: 15px
}

.dsbtn--lg>.ds-icon {
   --_sz: 19px
}

.dscard {
   padding: clamp(16px, 3.4vw, 24px);
   border-radius: var(--radius-lg);
   border: 1px solid transparent;
   transition: transform .2s ease, box-shadow .2s ease
}

.dscard--default {
   background: var(--surface-card);
   color: var(--text-body);
   box-shadow: var(--shadow-md)
}

.dscard--tint {
   background: var(--surface-tint);
   color: var(--text-body);
   box-shadow: none
}

.dscard--lilac {
   background: var(--surface-lilac);
   color: var(--text-on-accent);
   box-shadow: none
}

.dscard--outline {
   background: var(--surface-card);
   color: var(--text-body);
   box-shadow: none;
   border-color: var(--border)
}

.dscard--inverse {
   background: var(--surface-inverse);
   color: var(--text-on-dark);
   box-shadow: var(--shadow-lg)
}

.dscard--interactive {
   cursor: pointer
}

.dscard--interactive:hover {
   transform: translateY(-3px);
   box-shadow: var(--shadow-lg)
}

.ds-feature {
   display: flex;
   flex-direction: column;
   gap: var(--space-3);
   text-align: left;
   align-items: flex-start
}

.ds-feature>.ds-icon {
   --_sz: 26px;
   --_sw: 1.75;
   color: var(--accent-soft-hover)
}

.ds-feature__title {
   font-family: var(--font-display);
   line-height: var(--lh-heading);
   letter-spacing: var(--ls-heading);
   font-size: var(--text-title);
   color: var(--text-strong);
   font-weight: 400;
   margin: 0
}

.ds-feature__text {
   margin: 0;
   color: var(--accent-soft-hover);
   font-size: var(--text-body-sm);
   line-height: var(--lh-body)
}

.ds-arch {
   width: 100%;
   border-radius: var(--radius-arch);
   overflow: hidden;
   box-shadow: var(--shadow-md);
   object-fit: cover;
   display: block;
   aspect-ratio: var(--arch-ar, 3 / 4)
}

.ds-arch--pill {
   border-radius: var(--radius-pill)
}

.ds-arch--rounded {
   border-radius: var(--radius-lg)
}

.ds-arch--soft {
   border-radius: var(--radius-2xl)
}

.ds-price {
   display: flex;
   align-items: baseline;
   gap: 12px;
   padding: 15px 0;
   border-bottom: 1px solid var(--divider)
}

.ds-price:last-child {
   border-bottom: none
}

.ds-price__main {
   display: flex;
   flex-direction: column;
   gap: 3px
}

.ds-price__name {
   font-family: var(--font-mono);
   font-size: var(--text-caption);
   letter-spacing: .1em;
   text-transform: uppercase;
   color: var(--text-strong);
   font-weight: 500
}

.ds-price__note {
   font-family: var(--font-sans);
   font-size: var(--text-caption);
   color: var(--text-muted)
}

.ds-price__amount {
   margin-left: auto;
   font-family: var(--font-sans);
   font-size: var(--text-body);
   color: var(--text-strong);
   font-weight: 600
}

.ds-price__from {
   color: var(--text-muted);
   font-weight: 400
}

.ds-heading {
   text-align: left
}

.ds-heading--center {
   text-align: center
}

.ds-heading .ds-eyebrow {
   margin-bottom: var(--space-4)
}

.ds-heading__title {
   font-family: var(--font-display);
   font-size: var(--text-display-md);
   line-height: var(--lh-heading);
   letter-spacing: var(--ls-display);
   color: var(--text-strong);
   font-weight: 400;
   margin: 0
}

.ds-heading--sm .ds-heading__title {
   font-size: var(--text-display-sm)
}

.ds-heading--lg .ds-heading__title {
   font-size: var(--text-display-lg)
}

.ds-heading--xl .ds-heading__title {
   font-size: var(--text-display-xl)
}

.ds-heading--on-dark .ds-heading__title {
   color: var(--text-on-dark)
}

.ds-heading__accent {
   font-style: italic;
   color: var(--accent-soft-hover)
}

.ds-stat {
   display: flex;
   flex-direction: column;
   gap: 4px;
   align-items: center;
   text-align: center
}

.ds-stat__top {
   display: flex;
   align-items: center;
   gap: 9px
}

.ds-stat .ds-icon {
   --_sz: 26px;
   --_sw: 1.75;
   color: var(--accent-soft-hover)
}

.ds-stat__value {
   font-family: var(--font-display);
   font-size: var(--text-display-sm);
   font-weight: 400;
   color: var(--text-strong);
   line-height: 1
}

.ds-stat__label {
   font-family: var(--font-sans);
   font-size: var(--text-body-sm);
   color: var(--purple-800)
}

.ds-quote {
   margin: 0;
   position: relative;
   isolation: isolate;
   overflow: hidden;
   display: flex;
   flex-direction: column;
   background: var(--surface-card);
   border-radius: var(--radius-xl);
   box-shadow: var(--shadow-lg);
   padding: clamp(22px, 3.6vw, 32px);
   max-width: 480px
}

.ds-quote::before {
   content: "“";
   position: absolute;
   z-index: -1;
   top: -.03em;
   right: -.05em;
   font-family: var(--font-display);
   font-size: 460px;
   line-height: 1;
   color: var(--surface-tint);
   pointer-events: none
}

@supports (content: "a" / "b") {
   .ds-quote::before {
      content: "“" / ""
   }
}

.ds-quote__text {
   margin: 0 0 var(--space-5);
   font-size: var(--text-body);
   line-height: var(--lh-body);
   color: var(--purple-800)
}

.ds-quote__foot {
   display: flex;
   align-items: baseline;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: 2px 12px;
   margin-top: auto;
   padding-top: var(--space-4);
   border-top: 1px solid var(--divider)
}

.ds-quote__name {
   font-family: var(--font-display);
   font-size: var(--text-title);
   line-height: var(--lh-snug);
   color: var(--text-strong)
}

.ds-quote__role {
   font-family: var(--font-mono);
   font-size: var(--text-label-sm);
   letter-spacing: .14em;
   text-transform: uppercase;
   color: var(--neutral-600)
}

.ds-acc__item {
   border-bottom: 1px solid var(--divider)
}

.ds-acc__btn {
   width: 100%;
   display: flex;
   align-items: center;
   gap: 18px;
   padding: 22px 0;
   background: none;
   border: 0;
   cursor: pointer;
   text-align: left
}

.ds-acc__num {
   font-family: var(--font-mono);
   font-size: var(--text-caption);
   color: var(--text-faint);
   letter-spacing: .08em;
   flex: none
}

.ds-acc__q {
   flex: 1;
   font-family: var(--font-display);
   font-size: var(--text-title);
   color: var(--text-strong);
   font-style: normal;
   font-weight: 400;
   transition: color .2s ease
}

.ds-acc__plus {
   flex: none;
   width: 38px;
   height: 38px;
   border-radius: 50%;
   border: 1px solid var(--border);
   display: grid;
   place-items: center;
   color: var(--text-muted);
   transition: transform var(--dur-move) var(--ease-out), color var(--dur-state) ease
}

.ds-acc__plus .ds-icon {
   --_sz: 16px
}

.ds-acc__panel {
   --acc-dur: var(--dur-exit);
   --acc-ease: var(--ease-inout);
   display: grid;
   grid-template-rows: 0fr;
   transition: grid-template-rows var(--acc-dur) var(--acc-ease)
}

.ds-acc__panel>div {
   overflow: hidden
}

.ds-acc__answer {
   --ans-dur: var(--dur-exit);
   --ans-delay: 0ms;
   margin: 0;
   padding-bottom: 24px;
   padding-left: 43px;
   max-width: 660px;
   color: var(--text-body);
   font-size: var(--text-body-sm);
   line-height: var(--lh-body);
   opacity: 0;
   transform: translateY(-5px);
   transition: opacity var(--ans-dur) ease var(--ans-delay),
      transform var(--ans-dur) var(--ease-out) var(--ans-delay)
}

.ds-acc__item.is-open .ds-acc__q {
   color: var(--accent-soft-hover);
   font-style: italic;
}

.ds-acc__item.is-open .ds-acc__plus {
   color: var(--accent);
   transform: rotate(45deg)
}

.ds-acc__item.is-open .ds-acc__panel {
   --acc-dur: var(--dur-move);
   --acc-ease: var(--ease-out);
   grid-template-rows: 1fr
}

.ds-acc__item.is-open .ds-acc__answer {
   --ans-dur: var(--dur-move);
   --ans-delay: var(--dur-feedback);
   opacity: 1;
   transform: none
}

.sprite {
   position: absolute;
   width: 0;
   height: 0;
   overflow: hidden
}

.wrap {
   max-width: var(--container-max);
   margin: 0 auto;
   padding-left: max(4%, env(safe-area-inset-left));
   padding-right: max(4%, env(safe-area-inset-right))
}

.sec {
   scroll-margin-top: 82px
}

.grid {
   display: grid
}

.hero-grid {
   grid-template-columns: 1.5fr 1fr;
   gap: 44px;
   align-items: start;
}

.hero-imgs {
   grid-template-columns: repeat(3, 1fr);
   gap: clamp(8px, 1.6vw, 18px);
   align-items: start;
   margin: 0 1.5%;
}

.stat-row {
   display: grid;
   grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
   align-items: center;
   column-gap: 32px;
   position: relative;
   z-index: 2;
}

.promises__grid {
   z-index: 2;
   position: relative;
}

.svc-grid {
   grid-template-columns: repeat(4, 1fr);
   gap: 18px
}

.menu-grid {
   grid-template-columns: 0.8fr 1.2fr;
   gap: 56px;
   align-items: start
}

.about-grid {
   grid-template-columns: 0.9fr 1.1fr;
   gap: 56px;
   align-items: center
}

.rev-grid {
   grid-template-columns: repeat(3, 1fr);
   gap: 20px;
   align-items: stretch
}

.faq-grid {
   grid-template-columns: 0.82fr 1.18fr;
   gap: 56px;
   align-items: start
}

.book-grid {
   grid-template-columns: 1.2fr 0.8fr;
   gap: 36px;
   align-items: start
}

.foot-grid {
   grid-template-columns: 1.7fr 1fr 1fr;
   gap: 44px
}

.sticky-col {
   position: sticky;
   top: 96px
}

.tabbtn {
   font-family: var(--font-mono);
   font-size: 12px;
   letter-spacing: .14em;
   text-transform: uppercase;
   padding: 11px 18px;
   border-radius: var(--radius-pill);
   border: 1px solid var(--border);
   background: transparent;
   color: var(--text-muted);
   cursor: pointer;
   transition: background var(--dur-state) ease, color var(--dur-state) ease, border-color var(--dur-state) ease;
   min-height: 44px
}

.tabbtn:hover {
   background: var(--surface-tint);
   color: var(--text-strong)
}

.tabbtn[aria-selected=true] {
   background: var(--accent);
   border-color: var(--accent);
   color: var(--text-on-dark)
}

.stars {
   display: inline-flex;
   gap: 2px;
   color: var(--accent-soft-hover)
}

.stars .ds-icon {
   --_sz: 15px;
   --_sw: 1.5
}

.stars .ds-icon>svg {
   fill: currentColor
}

.site-header {
   position: sticky;
   top: 0;
   z-index: 40;
   background: transparent;
   border-bottom: 1px solid transparent;
   transition: background .25s ease, border-color .25s ease
}

.site-header.is-scrolled,
.site-header.is-open {
   background: rgba(252, 251, 253, .88);
   backdrop-filter: saturate(1.2) blur(12px);
   -webkit-backdrop-filter: saturate(1.2) blur(12px);
   border-bottom-color: var(--border-subtle)
}

.site-header .site-header__bar {
   padding-top: 14px;
   padding-bottom: 14px;
   padding-left: max(4%, env(safe-area-inset-left));
   padding-right: max(4%, env(safe-area-inset-right));
   display: flex;
   align-items: center;
   gap: 18px
}

.brand {
   font-family: var(--font-display);
   font-size: 25px;
   font-weight: 400;
   color: var(--text-strong);
   letter-spacing: -.01em;
   line-height: 1;
   white-space: nowrap
}

.brand em {
   font-style: italic;
   color: var(--accent-soft-hover)
}

.nav-links {
   display: flex;
   gap: 28px;
   margin-left: 32px
}

.navlink {
   font-size: 15px;
   font-weight: 500;
   color: var(--text-body);
   cursor: pointer
}

.navlink:hover {
   color: var(--accent-soft-hover)
}

.site-header__right {
   margin-left: auto;
   display: flex;
   align-items: center;
   gap: 10px
}

.menu-toggle {
   display: none;
   padding: 10px 12px;
   min-height: 44px;
   min-width: 44px;
   align-items: center;
   justify-content: center
}

.menu-toggle .ds-icon {
   --_sz: 18px
}

.mobile-nav {
   display: none;
   border-top: 1px solid transparent
}

.site-header .mobile-nav__inner {
   padding: 0 4%;
   display: flex;
   flex-direction: column
}

.mobile-nav .navlink {
   padding: 13px 0;
   border-bottom: 1px solid var(--divider);
   margin: 0;
}

.hero {
   padding-top: 40px;
   padding-bottom: 24px
}

.hero__top {
   margin-bottom: 44px
}

.hero__chips {
   display: flex;
   gap: 10px;
   flex-wrap: wrap;
   margin-bottom: 22px
}

.chip {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   background: var(--surface-lilac);
   color: var(--text-on-accent);
   border-radius: var(--radius-pill);
   padding: 8px 16px;
   font-family: var(--font-mono);
   font-size: 11.5px;
   letter-spacing: .14em;
   text-transform: uppercase
}

.chip .ds-icon {
   --_sz: 14px;
   --_sw: 1.9
}

.hero__title {
   font-family: var(--font-display);
   font-size: clamp(38px, 11.2vw, 52px);
   line-height: 1.03;
   letter-spacing: -.02em;
   color: var(--text-strong);
   font-weight: 400;
   margin: 0
}

@media(min-width:620px) {
   .hero__title {
      font-size: clamp(52px, 6vw, 78px)
   }
}

.hero__title em {
   font-style: italic;
   color: var(--accent-soft-hover);
}

.hero__aside {
   padding-bottom: 8px
}

.hero__lead {
   color: var(--text-body);
   font-size: 17px;
   line-height: 1.65;
   max-width: 340px;
   margin: 0 0 14px
}

.hero__rating {
   display: flex;
   align-items: center;
   gap: 10px;
   margin-bottom: 22px
}

.hero__rating-text {
   font-size: 14.5px;
   color: var(--text-muted)
}

.hero__cta {
   display: flex;
   gap: 12px;
   flex-wrap: wrap
}

.hero-imgs__drop {
   margin-top: 10.3%
}

.hero__line {
   display: block;
   clip-path: inset(-.08em -.1em -.16em -.06em)
}

.hero__line>span {
   display: block;
   animation: settle-line var(--dur-entrance) var(--ease-out) backwards
}

.hero__line:first-child>span {
   animation-delay: 60ms
}

.hero__line:last-child>span {
   animation-delay: 260ms
}

@keyframes settle-line {
   from {
      transform: translateY(130%)
   }
}

.hero__chips,
.hero__lead,
.hero__rating,
.hero__cta {
   animation: settle-up var(--dur-entrance) var(--ease-out) backwards
}

.hero__chips {
   --rise: 10px
}

.hero__lead {
   animation-delay: 340ms
}

.hero__rating {
   animation-delay: 500ms
}

.hero__cta {
   animation-delay: 660ms
}

.hero-imgs>div {
   animation: arch-open var(--dur-unveil) var(--ease-out) backwards
}

.hero-imgs>div>.ds-arch {
   transform-origin: 50% 100%;
   animation: arch-settle var(--dur-unveil) var(--ease-out) backwards
}

.hero-imgs>div:nth-child(1),
.hero-imgs>div:nth-child(1)>.ds-arch {
   animation-delay: 340ms
}

.hero-imgs>div:nth-child(2),
.hero-imgs>div:nth-child(2)>.ds-arch {
   animation-delay: 500ms
}

.hero-imgs>div:nth-child(3),
.hero-imgs>div:nth-child(3)>.ds-arch {
   animation-delay: 660ms
}

@keyframes arch-open {
   from {
      clip-path: inset(100% 0 0 0)
   }

   70% {
      clip-path: inset(0 0 0 0)
   }

   to {
      clip-path: inset(0 -64px -64px -64px)
   }
}

@keyframes arch-settle {
   from {
      transform: scale(.965)
   }
}

.stats {
   padding-top: clamp(40px, 6vw, 64px);
   padding-bottom: 8px
}

.stats__row {
   background: var(--bg-subtle);
   border-radius: var(--radius-2xl);
   padding: clamp(26px, 4vw, 40px) clamp(20px, 4vw, 48px)
}

.stats__divider {
   height: 46px;
   align-self: center
}

.marquee {
   padding-top: clamp(98px, 19.25vw, 228px);
   padding-bottom: clamp(98px, 19.25vw, 228px);
   position: relative;
   isolation: isolate;
   overflow-x: clip
}

.marquee::before {
   content: "";
   position: absolute;
   z-index: -1;
   top: 50%;
   left: 50%;
   width: min(76vw, 640px);
   aspect-ratio: 1;
   transform: translate(-50%, -50%);
   border-radius: 50%;
   background: var(--surface-tint);
   opacity: .55;
   filter: blur(clamp(32px, 10vw, 84px));
   pointer-events: none;
   animation: marquee-breathe 6s ease-in-out infinite alternate
}

@keyframes marquee-breathe {
   from {
      transform: translate(-50%, -50%) scale(1);
      opacity: .55
   }

   to {
      transform: translate(-50%, -50%) scale(1.08);
      opacity: 1
   }
}

.marquee__text {
   font-family: var(--font-display);
   font-style: italic;
   font-weight: 400;
   color: var(--text-strong);
   text-align: center;
   margin: 0 auto;
   max-width: 980px;
   container-type: inline-size
}

.marquee__line {
   display: block;
   white-space: nowrap;
   font-size: clamp(20px, 6.57vw, 61.5px);
   font-size: clamp(18px, 8.06cqw, 61.5px);
   line-height: 1.18;
   letter-spacing: -.025em
}

.marquee__cut {
   display: inline-block;
   vertical-align: middle;
   width: 1.586em;
   height: 1.172em;
   margin: 0 .18em;
   background: #fff;
   padding: max(2px, .086em);
   border-radius: max(6px, .17em);
   box-shadow: var(--shadow-md)
}

.marquee__line>.marquee__cut:first-child {
   margin-left: 0
}

.marquee__line>.marquee__cut:last-child {
   margin-right: 0
}

.marquee__cut--a {
   transform: rotate(-3deg)
}

.marquee__cut--b {
   transform: rotate(2.5deg)
}

.marquee__cut img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   border-radius: max(4px, .1em);
   display: block
}

.marquee__accent {
   color: var(--accent-soft-hover)
}

.services {
   padding-top: clamp(56px, 8vw, 92px);
   padding-bottom: 20px
}

.services__head {
   display: flex;
   align-items: flex-end;
   justify-content: space-between;
   gap: 30px;
   flex-wrap: wrap
}

.services__intro {
   color: var(--text-body);
   font-size: 16.5px;
   line-height: 1.65;
   max-width: 380px;
   margin: 0
}

.services__grid {
   margin-top: 42px
}

.svc {
   overflow: hidden;
   display: flex;
   flex-direction: column;
   padding: 0;
   border-radius: var(--radius-xl)
}

.svc__img {
   border-radius: 0;
   box-shadow: none
}

.svc__body {
   padding: 22px 22px 24px;
   display: flex;
   flex-direction: column;
   gap: 8px;
   flex: 1
}

.svc__head {
   display: flex;
   align-items: center;
   gap: 9px
}

.svc__icon {
   color: var(--accent-soft-hover);
   display: flex
}

.svc__icon .ds-icon {
   --_sz: 19px;
   --_sw: 1.75
}

.svc__title {
   font-family: var(--font-display);
   font-size: 22px;
   color: var(--text-strong);
   font-weight: 400;
   margin: 0
}

.svc__copy {
   margin: 0;
   color: var(--text-body);
   font-size: 14.5px;
   line-height: 1.6;
   flex: 1
}

.pricing {
   background: var(--bg-subtle);
   margin-top: clamp(56px, 7.5vw, 88px)
}

.pricing__inner {
   padding-top: clamp(56px, 7.5vw, 88px);
   padding-bottom: clamp(60px, 8vw, 96px)
}

.pricing__eyebrow {
   margin-bottom: 12px
}

.pricing__copy {
   color: var(--text-body);
   font-size: 16px;
   line-height: 1.65;
   margin: 18px 0 24px;
   max-width: 320px
}

.pricing__img {
   max-width: 320px
}

.pricing__tabs {
   display: flex;
   gap: 10px;
   flex-wrap: wrap;
   margin-bottom: 10px
}

.pricing__panels {
   margin-top: 22px;
   overflow: hidden
}

.pricing__panel[hidden] {
   display: none
}

.pricing__panel.is-entering .pricing__panel-head,
.pricing__panel.is-entering .pricing__panel-cap,
.pricing__panel.is-entering .ds-price {
   --rise: 8px;
   animation: settle-up var(--dur-state) var(--ease-out) backwards
}

.pricing__panel.is-entering .pricing__panel-cap {
   animation-delay: 50ms
}

.pricing__panel.is-entering .ds-price:nth-child(1) {
   animation-delay: 100ms
}

.pricing__panel.is-entering .ds-price:nth-child(2) {
   animation-delay: 150ms
}

.pricing__panel.is-entering .ds-price:nth-child(3) {
   animation-delay: 200ms
}

.pricing__panel.is-entering .ds-price:nth-child(4) {
   animation-delay: 250ms
}

.pricing__panel.is-entering .ds-price:nth-child(5) {
   animation-delay: 300ms
}

.pricing__panel.is-entering .ds-price:nth-child(6) {
   animation-delay: 350ms
}

.pricing__panel-head {
   display: flex;
   align-items: center;
   gap: 9px;
   margin-bottom: 2px
}

.pricing__panel-icon {
   color: var(--accent-soft-hover);
   display: flex
}

.pricing__panel-icon .ds-icon {
   --_sz: 20px;
   --_sw: 1.75
}

.pricing__panel-title {
   font-family: var(--font-display);
   font-size: 30px;
   color: var(--text-strong);
   font-weight: 400;
   letter-spacing: -.01em;
   margin: 0
}

.pricing__panel-cap {
   color: var(--text-muted);
   font-size: 14.5px;
   margin: 0 0 10px
}

.pricing__foot {
   margin-top: 34px;
   display: flex;
   align-items: center;
   gap: 16px;
   flex-wrap: wrap
}

.pricing__note {
   width: 100%;
   color: var(--text-muted);
   font-size: 14px
}

.about {
   padding-top: clamp(56px, 8vw, 96px);
   padding-bottom: 24px
}

.about__media {
   position: relative
}

.about__badge {
   position: absolute;
   right: -14px;
   bottom: 28px;
   background: var(--surface-card);
   border-radius: var(--radius-lg);
   box-shadow: var(--shadow-lg);
   padding: 16px 20px
}

.about__badge-value {
   font-family: var(--font-display);
   font-size: 34px;
   color: var(--text-strong);
   font-weight: 400;
   line-height: 1
}

.about__badge-label {
   font-family: var(--font-mono);
   font-size: 10.5px;
   letter-spacing: .14em;
   text-transform: uppercase;
   color: var(--text-muted);
   margin-top: 6px
}

.about__copy {
   color: var(--text-body);
   font-size: 17px;
   line-height: 1.7
}

.about__copy--first {
   margin-top: 22px
}

.about__list {
   display: grid;
   margin: 26px 0 28px
}

.about__promise {
   display: grid;
   grid-template-columns: 18px minmax(0, 1fr);
   column-gap: 12px;
   row-gap: 3px;
   align-items: start;
   padding: 17px 0;
   border-bottom: 1px solid var(--divider)
}

.about__promise:first-child {
   padding-top: 2px
}

.about__promise:last-child {
   border-bottom: 0;
   padding-bottom: 2px
}

.about__promise .ds-icon {
   --_sz: 18px;
   --_sw: 1.75;
   grid-row: 1 / span 2;
   color: var(--accent-soft-hover);
   margin-top: 1px
}

.about__promise-label {
   grid-column: 2;
   font-family: var(--font-mono);
   font-weight: 500;
   font-size: var(--text-caption);
   letter-spacing: .1em;
   text-transform: uppercase;
   color: var(--text-strong)
}

.about__promise-detail {
   grid-column: 2;
   font-size: var(--text-body-sm);
   line-height: 1.5;
   color: var(--text-body)
}

.reviews {
   padding-top: clamp(56px, 8vw, 96px);
   padding-bottom: 8px
}

.reviews__head {
   text-align: center;
   margin-bottom: 38px
}

.reviews__badge {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   margin-top: 16px;
   background: var(--surface-card);
   box-shadow: var(--shadow-sm);
   border-radius: var(--radius-pill);
   padding: 9px 18px
}

.reviews__badge .stars .ds-icon {
   --_sz: 16px
}

.reviews__badge-text {
   font-size: 14.5px;
   color: var(--text-body)
}

.rev-grid .ds-quote {
   max-width: none;
   height: 100%;
   box-sizing: border-box
}

.faq {
   padding-top: clamp(60px, 8.5vw, 100px);
   padding-bottom: 40px
}

.faq__copy {
   color: var(--text-body);
   font-size: 16px;
   line-height: 1.65;
   margin: 20px 0 22px;
   max-width: 300px
}

.faq__link {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   font-family: var(--font-mono);
   font-size: 13px;
   letter-spacing: .14em;
   text-transform: uppercase;
   color: var(--text-strong);
   border-bottom: 1px solid var(--text-strong);
   padding-bottom: 4px
}

.faq__link .ds-icon {
   --_sz: 15px
}

.offer {
   padding-top: 40px;
   padding-bottom: 8px
}

.offer__panel {
   position: relative;
   border-radius: var(--radius-2xl);
   overflow: hidden;
   background: linear-gradient(125deg, var(--purple-900), var(--purple-800));
   color: var(--text-on-dark);
   padding: clamp(38px, 6vw, 72px) clamp(22px, 4.7vw, 56px);
   box-shadow: var(--shadow-xl)
}

.offer__blob {
   position: absolute;
   right: -56px;
   top: -116px;
   width: clamp(130px, 15vw, 196px);
   height: clamp(180px, 23vw, 288px);
   border-radius: var(--radius-arch);
   background: rgba(174, 146, 230, .16)
}

.offer__inner {
   position: relative;
   max-width: 520px
}

@media(min-width:1000px) {
   .offer__inner {
      max-width: none;
      display: grid;
      grid-template-columns: auto minmax(320px, 1fr);
      column-gap: clamp(40px, 6vw, 88px);
      align-items: center;
      padding-right: clamp(48px, 6vw, 88px)
   }

   .offer__lead .offer__title {
      margin-bottom: 0
   }
}

.offer__title {
   display: flex;
   align-items: baseline;
   flex-wrap: wrap;
   gap: 0 clamp(14px, 2.2vw, 22px);
   margin: 14px 0 18px;
   font-weight: 400
}

.offer__num {
   font-family: var(--font-display);
   font-size: clamp(60px, 8vw, 76px);
   line-height: .88;
   letter-spacing: -.03em;
   color: var(--text-on-dark)
}

.offer__off {
   font-family: var(--font-display);
   font-size: clamp(26px, 3.4vw, 40px);
   line-height: 1.08;
   letter-spacing: -.01em;
   color: var(--text-on-dark)
}

.offer__off em {
   font-style: italic;
   color: var(--brand-lavender)
}

.offer__copy {
   color: #D8CDEA;
   font-size: 17px;
   line-height: 1.6;
   margin-bottom: 26px;
   max-width: 440px
}

.book {
   padding-top: clamp(56px, 8vw, 96px);
   padding-bottom: clamp(56px, 8vw, 96px)
}

.book__head {
   padding-top: 25px;
   margin-bottom: 41px
}

.book__head .ds-eyebrow {
   margin-bottom: 20px
}

.book__intro {
   color: var(--text-body);
   font-size: var(--text-body);
   line-height: 1.68;
   max-width: 520px;
   margin: 22px auto 0
}

.book__note {
   margin: 30px auto 0;
   padding-top: 18px;
   max-width: 420px;
   text-align: center;
   border-top: 1px solid var(--divider);
   font-family: var(--font-display);
   font-size: var(--text-title);
   line-height: 1.3;
   letter-spacing: var(--ls-heading);
   color: var(--text-strong)
}

.book__card {
   padding: clamp(22px, 4.4vw, 40px);
   border-radius: var(--radius-xl)
}

.book__label {
   font-family: var(--font-mono);
   font-size: 11px;
   letter-spacing: .16em;
   text-transform: uppercase;
   color: var(--text-muted)
}

.book__phone {
   display: inline-block;
   font-family: var(--font-display);
   font-size: clamp(38px, 5vw, 56px);
   color: var(--text-strong);
   font-weight: 400;
   letter-spacing: -.02em;
   line-height: 1.05;
   font-variant-numeric: lining-nums tabular-nums;
   margin: 10px 0 6px
}

.book__hours {
   color: var(--text-muted);
   font-size: 14.5px;
   margin: 0 0 6px
}

.book__terms {
   color: var(--text-body);
   font-size: 14.5px;
   text-wrap: pretty;
   margin: 0 0 20px
}

.book__actions {
   display: flex;
   gap: 12px;
   flex-wrap: wrap
}

.book__steps {
   display: grid;
   gap: 18px;
   margin-top: 34px;
   padding-top: 28px;
   border-top: 1px solid var(--divider)
}

.book__step {
   display: flex;
   gap: 16px;
   align-items: flex-start
}

.book__step-icon {
   flex: none;
   width: 40px;
   height: 40px;
   border-radius: 50%;
   background: var(--surface-lilac);
   color: var(--accent);
   display: grid;
   place-items: center
}

.book__step-icon .ds-icon {
   --_sz: 18px;
   --_sw: 1.75
}

.book__step-head {
   display: flex;
   align-items: baseline;
   gap: 10px
}

.book__step-num {
   font-family: var(--font-mono);
   font-size: 12px;
   color: var(--text-faint);
   letter-spacing: .08em
}

.book__step-title {
   font-family: var(--font-display);
   font-size: 21px;
   color: var(--text-strong);
   font-weight: 400;
   margin: 0
}

.book__step-copy {
   color: var(--text-body);
   font-size: 15px;
   line-height: 1.6;
   text-wrap: pretty;
   margin: 5px 0 0;
   max-width: 460px
}

.book__aside {
   display: flex;
   flex-direction: column;
   gap: 16px
}

.book__aside-label {
   font-family: var(--font-mono);
   font-size: 11px;
   letter-spacing: var(--ls-label);
   text-transform: uppercase;
   color: var(--accent-soft-hover);
   padding-left: 2px
}

.book__contact-card {
   --contact-icon: 17px;
   display: grid;
   grid-template-columns: var(--contact-icon) minmax(0, 1fr);
   column-gap: 12px;
   row-gap: 2px;
   align-items: start;
   padding: 22px;
   border-radius: var(--radius-lg);
   box-shadow: var(--shadow-inset-hair)
}

.book__contact-card .ds-icon {
   --_sz: var(--contact-icon);
   --_sw: 1.75;
   grid-row: 1 / span 2;
   color: var(--accent-soft-hover);
   margin-top: 2px
}

.contact-line__label {
   grid-column: 2;
   font-family: var(--font-mono);
   font-size: 11px;
   letter-spacing: var(--ls-label-sm);
   text-transform: uppercase;
   color: var(--text-body)
}

.contact-line__value {
   grid-column: 2;
   margin: 0;
   font-size: 16px;
   line-height: 1.45;
   color: var(--text-strong)
}

.map {
   position: relative;
   border-radius: var(--radius-lg);
   overflow: hidden;
   box-shadow: var(--shadow-md);
   height: 340px
}

.map iframe {
   width: 100%;
   height: 100%;
   border: 0;
   display: block
}

.map__link {
   position: absolute;
   right: 14px;
   bottom: 14px;
   display: inline-flex;
   align-items: center;
   gap: 6px;
   background: var(--surface-card);
   box-shadow: var(--shadow-sm);
   border-radius: var(--radius-pill);
   padding: 9px 15px;
   font-size: 13.5px;
   font-weight: 500;
   color: var(--text-strong);
   min-height: 40px;
   box-sizing: border-box;
   transition: background .2s ease, box-shadow .2s ease, transform .1s ease
}

.map__link:hover {
   background: var(--surface-tint);
   box-shadow: var(--shadow-md)
}

.map__link:active {
   transform: scale(.98)
}

.map__link .ds-icon {
   --_sz: 14px;
   transition: transform .2s ease
}

.map__link:hover .ds-icon {
   transform: translate(2px, -2px)
}

.site-footer {
   background: var(--surface-inverse);
   color: var(--text-on-dark);
   margin-top: 8px
}

.site-footer .site-footer__grid {
   padding-top: clamp(44px, 5.5vw, 66px);
   padding-bottom: 40px;
   padding-left: max(4%, env(safe-area-inset-left));
   padding-right: max(4%, env(safe-area-inset-right))
}

.site-footer .site-footer__grid {
   align-items: start
}

.foot__brand {
   font-family: var(--font-display);
   font-size: 36px;
   font-weight: 400;
   line-height: 1.1
}

.foot__brand em {
   font-style: italic;
   color: var(--brand-lavender)
}

.foot__blurb {
   margin-top: 16px;
   color: var(--purple-200);
   max-width: 320px;
   font-size: 15px;
   line-height: 1.65
}

.foot__cta {
   margin-top: 24px
}

.foot__col--list {
   border-left: 1px solid rgba(230, 220, 250, .14);
   padding-left: 16px
}

.foot__line>span:last-child {
   white-space: nowrap
}

.foot__eyebrow {
   font-family: var(--font-mono);
   font-size: 11px;
   font-weight: 400;
   letter-spacing: var(--ls-label);
   text-transform: uppercase;
   color: var(--brand-lavender);
   margin: 0 0 18px
}

.foot__line {
   display: flex;
   align-items: flex-start;
   gap: 11px;
   margin-bottom: 12px;
   color: var(--purple-200);
   font-size: 14.5px;
   line-height: 1.5
}

.foot__line-icon {
   color: var(--brand-lavender);
   margin-top: 1px;
   flex: none
}

.foot__line-icon .ds-icon {
   --_sz: 17px;
   --_sw: 1.75
}

.foot__line a,
.foot__link {
   color: var(--purple-200);
   transition: color .2s ease
}

.foot__link {
   display: block;
   font-size: 14.5px;
   margin-bottom: 11px
}

.foot__link:last-child {
   margin-bottom: 0
}

.foot__bar {
   border-top: 1px solid rgba(255, 255, 255, .12)
}

.site-footer .foot__bar-inner {
   padding-top: 18px;
   padding-bottom: 18px;
   padding-left: max(4%, env(safe-area-inset-left));
   padding-right: max(4%, env(safe-area-inset-right));
   display: flex;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: 8px 28px;
   color: var(--purple-300);
   font-size: 13px;
   font-family: var(--font-sans);
   letter-spacing: var(--ls-body)
}

.foot__copy {
   font-family: var(--font-mono);
   font-size: 11px;
   letter-spacing: var(--ls-label-sm);
   text-transform: uppercase
}

.foot__bar-inner a {
   color: var(--purple-300);
   transition: color .2s ease
}

.callbar {
   display: none
}

.js-reveal .reveal--list>* {
   opacity: 0;
   transform: translateY(var(--rise, 18px))
}

.js-reveal .reveal--list.is-in>* {
   opacity: 1;
   transform: none;
   transition: opacity var(--dur-entrance) ease, transform var(--dur-entrance) var(--ease-out)
}

.js-reveal .marquee__text.reveal .marquee__line {
   opacity: 0.3;
   filter: blur(10px);
   transform: translateY(40%)
}

.js-reveal .marquee__text.reveal.is-in .marquee__line {
   opacity: 1;
   filter: blur(0);
   transform: none;
   transition: opacity var(--dur-unveil) ease, filter var(--dur-unveil) var(--ease-out), transform var(--dur-unveil) var(--ease-out)
}

.js-reveal .marquee__text.reveal.is-in .marquee__line+.marquee__line {
   transition-delay: 200ms
}

.js-reveal .reveal--unveil>.ds-arch {
   clip-path: inset(100% 0 0 0);
   transform: scale(.965);
   transform-origin: 50% 100%
}

.js-reveal .reveal--unveil.is-in>.ds-arch {
   clip-path: inset(0 -64px -64px -64px);
   transform: none;
   transition: clip-path var(--dur-unveil) var(--ease-out), transform var(--dur-unveil) var(--ease-out)
}

.js-reveal .reveal--unveil>.about__badge {
   opacity: 0;
   transform: translateY(8px)
}

.js-reveal .reveal--unveil.is-in>.about__badge {
   opacity: 1;
   transform: none;
   transition: opacity var(--dur-move) ease 650ms, transform var(--dur-move) var(--ease-out) 650ms
}

.js-reveal .reveal--panel>.offer__blob {
   opacity: 0;
   transform: translate(26px, -26px) scale(.9)
}

.js-reveal .reveal--panel.is-in>.offer__blob {
   opacity: 1;
   transform: none;
   transition: opacity var(--dur-unveil) ease, transform var(--dur-unveil) var(--ease-out)
}

.js-reveal .reveal--panel .offer__inner>* {
   opacity: 0;
   transform: translateY(12px)
}

.js-reveal .reveal--panel.is-in .offer__inner>* {
   opacity: 1;
   transform: none;
   transition: opacity var(--dur-entrance) ease 300ms, transform var(--dur-entrance) var(--ease-out) 300ms
}

.js-reveal .stat-row {
   --rise: 26px;
   opacity: 0
}

.js-reveal .stat-row.is-in {
   opacity: 1;
   transition: opacity var(--dur-entrance) ease
}

.js-reveal .stat-row.is-in>.ds-stat {
   transition: opacity var(--dur-unveil) ease, transform var(--dur-unveil) var(--ease-out)
}

.js-reveal .stat-row.is-in>.ds-stat~.ds-stat,
.js-reveal .reveal--list.is-in>:nth-child(2) {
   transition-delay: 100ms
}

.js-reveal .stat-row.is-in>.ds-stat~.ds-stat~.ds-stat,
.js-reveal .reveal--list.is-in>:nth-child(3) {
   transition-delay: 200ms
}

.js-reveal .stat-row.is-in>.ds-stat~.ds-stat~.ds-stat~.ds-stat,
.js-reveal .reveal--list.is-in>:nth-child(4) {
   transition-delay: 300ms
}

.js-reveal .stat-row>.stats__divider {
   transform: scaleY(0);
   transform-origin: center
}

.js-reveal .stat-row.is-in>.stats__divider {
   transform: none;
   transition: opacity var(--dur-unveil) ease 380ms, transform var(--dur-unveil) var(--ease-out) 380ms
}

@media(max-width:1000px) {
   .wrap,
   .site-header .site-header__bar,
   .site-footer .site-footer__grid,
   .site-footer .foot__bar-inner {
      padding-left: max(5%, env(safe-area-inset-left));
      padding-right: max(5%, env(safe-area-inset-right))
   }

   .site-header .mobile-nav__inner {
      padding: 0 5%;
   }

   .hero-grid {
      grid-template-columns: 1.1fr 1fr;
   }

   .menu-grid,
   .about-grid,
   .faq-grid,
   .book-grid {
      grid-template-columns: 1fr;
      gap: 32px
   }

   .svc-grid,
   .foot-grid {
      grid-template-columns: repeat(2, 1fr)
   }

   .foot__col--list {
      border-left: 0;
      padding-left: 0
   }

   .marquee {
      padding-top: clamp(190px, 20.5vw, 240px);
      padding-bottom: clamp(190px, 20.5vw, 240px);
   }

   .rev-grid {
      grid-template-columns: 1fr;
      justify-items: center
   }

   .rev-grid .ds-quote {
      max-width: 560px
   }

   .hero__lead,
   .pricing__copy,
   .faq__copy {
      max-width: 46ch
   }

   .about__media {
      max-width: 420px
   }

   .sticky-col {
      position: static
   }

   .nav-links {
      display: none
   }

   .menu-toggle {
      display: inline-flex
   }

   .mobile-nav {
      --nav-dur: var(--dur-exit);
      --nav-ease: var(--ease-inout);
      display: grid;
      grid-template-rows: 0fr;
      visibility: hidden;
      transition: grid-template-rows var(--nav-dur) var(--nav-ease),
         border-color var(--nav-dur) ease,
         visibility var(--nav-dur)
   }

   .mobile-nav__clip {
      overflow: hidden;
      min-height: 0
   }

   .mobile-nav.is-open {
      --nav-dur: var(--dur-move);
      --nav-ease: var(--ease-out);
      grid-template-rows: 1fr;
      visibility: visible;
      border-top-color: var(--border-subtle)
   }

   .mobile-nav.is-open .navlink {
      --rise: 8px;
      animation: settle-up var(--dur-state) var(--ease-out) backwards
   }

   .mobile-nav.is-open .navlink:nth-child(2) {
      animation-delay: 34ms
   }

   .mobile-nav.is-open .navlink:nth-child(3) {
      animation-delay: 68ms
   }

   .mobile-nav.is-open .navlink:nth-child(4) {
      animation-delay: 102ms
   }

   .mobile-nav.is-open .navlink:nth-child(5) {
      animation-delay: 136ms
   }
}

@media(max-width:860px) {
   .hero-grid {
      grid-template-columns: 1fr;
      gap: 32px
   }

   .stats__row {
      grid-template-columns: 1fr 1fr 1fr 1fr;
   }

   .stats__divider {
      display: none
   }

   .marquee {
      padding-top: clamp(180px, 22vw, 240px);
      padding-bottom: clamp(180px, 22vw, 240px);
   }
}

@media(max-width:680px) {
   .stats__row {
      grid-template-columns: 1fr 1fr;
      gap: clamp(22px, 4vw, 34px) 16px
   }

   .marquee {
      padding-top: clamp(150px, 22vw, 180px);
      padding-bottom: clamp(150px, 22vw, 180px);
   }

   .promises__grid {
      grid-template-columns: 1fr 1fr;
   }

   .chip {
      padding: 7px 12px;
      font-size: 10.5px;
      letter-spacing: .1em
   }

   .about__badge {
      right: 14px;
      bottom: 16px;
      padding: 14px 16px
   }

   .about__badge-value {
      font-size: 26px
   }

   .ds-acc__btn {
      gap: 12px;
      padding: 18px 0
   }

   .ds-acc__q {
      font-size: 1.125rem
   }

   .ds-acc__plus {
      width: 32px;
      height: 32px
   }

   .ds-acc__answer {
      padding-left: 0
   }

   .site-footer .foot__bar-inner {
      flex-direction: column;
      align-items: flex-start;
      gap: 6px;
      padding-bottom: calc(86px + env(safe-area-inset-bottom))
   }

   .callbar {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 50;
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px max(5%, env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(5%, env(safe-area-inset-left));
      background: rgba(252, 251, 253, .86);
      backdrop-filter: saturate(1.3) blur(14px);
      -webkit-backdrop-filter: saturate(1.3) blur(14px);
      border-top: 1px solid var(--border-subtle)
   }

   .callbar__sms {
      flex: 1;
      box-shadow: var(--shadow-lg)
   }

   .callbar--auto {
      transform: translateY(150%);
      visibility: hidden;
      transition: transform .34s cubic-bezier(.22, 1, .36, 1), visibility .34s
   }

   .callbar--auto.is-up {
      transform: translateY(0);
      visibility: visible
   }

   .foot-grid {
      grid-template-columns: 1fr
   }
}

@media(max-width:520px) {
   .wrap,
   .site-header .site-header__bar,
   .site-header .mobile-nav__inner,
   .callbar {
      padding-left: max(22px, env(safe-area-inset-left));
      padding-right: max(22px, env(safe-area-inset-right))
   }

   .marquee {
      padding-top: clamp(130px, 22vw, 155px);
      padding-bottom: clamp(130px, 22vw, 155px);
   }

   .svc-grid {
      grid-template-columns: 1fr
   }

   .pricing__img,
   .about__media {
      max-width: none;
   }

}

@media(max-width:480px) {
   .wrap,
   .site-header .site-header__bar,
   .site-header .mobile-nav__inner,
   .callbar {
      padding-left: max(18px, env(safe-area-inset-left));
      padding-right: max(18px, env(safe-area-inset-right))
   }

   .foot__line>span:last-child {
      white-space: normal
   }

   .site-header__right .dsbtn {
      position: relative;
      width: 44px;
      height: 44px;
      padding: 0;
      border-radius: 50%
   }

   .site-header__right .dsbtn>.ds-icon {
      --_sz: 18px
   }

   .site-header__right .dsbtn>span:not(.ds-icon) {
      position: absolute;
      width: 1px;
      height: 1px;
      margin: -1px;
      padding: 0;
      border: 0;
      overflow: hidden;
      white-space: nowrap;
      clip-path: inset(50%)
   }

   .marquee {
      padding-top: clamp(120px, 22vw, 140px);
      padding-bottom: clamp(120px, 22vw, 140px);
   }
}

@media(max-height:500px) and (orientation:landscape) {
   .hero {
      padding-top: 24px
   }

   .marquee {
      padding-top: 84px;
      padding-bottom: 84px
   }

   .services,
   .about,
   .reviews,
   .faq,
   .book,
   .pricing__inner {
      padding-top: 52px
   }

   .map {
      height: 200px
   }

   .callbar {
      padding-top: 6px;
      padding-bottom: calc(6px + env(safe-area-inset-bottom))
   }
}

@media(hover:none) {
   .navlink:hover {
      color: var(--text-body)
   }

   .tabbtn:hover {
      background: transparent;
      color: var(--text-muted)
   }

   .tabbtn[aria-selected=true]:hover {
      background: var(--accent);
      color: var(--text-on-dark)
   }

   .dsbtn--primary:hover {
      background: var(--accent)
   }

   .dsbtn--outline:hover,
   .dsbtn--ghost:hover {
      background: transparent
   }

   .dsbtn--soft:hover {
      background: var(--surface-lilac)
   }

   .dsbtn--secondary:hover {
      background: var(--surface-card)
   }

   .dscard--interactive:hover {
      transform: none;
      box-shadow: var(--shadow-md)
   }

   a:not(:where(.dsbtn)):hover {
      color: var(--link)
   }

   .foot__link:hover,
   .foot__line a:hover {
      color: var(--text-on-dark)
   }

   .foot__bar-inner a:hover {
      color: var(--brand-lilac)
   }
}

@media(pointer:coarse) {
   .dsbtn {
      min-height: 44px
   }

   .foot__link {
      padding: 11px 0;
      margin-bottom: 0
   }

   .foot__line a {
      display: inline-block;
   }

   .foot__bar-inner a {
      display: inline-block;
      padding: 6px 0
   }

   .map__link {
      min-height: 44px
   }

   .faq__link {
      padding-top: 12px;
      padding-bottom: 12px
   }

   .navlink {
      padding: 10px 0;
      margin: -10px 0
   }
}

@media(prefers-reduced-motion:reduce) {
   .dsbtn,
   .dscard,
   .ds-acc__q,
   .ds-acc__plus,
   .ds-acc__panel,
   .dsbtn__circle {
      transition: none
   }

   html {
      scroll-behavior: auto
   }

   .site-header,
   a,
   .tabbtn,
   .callbar--auto {
      transition: none
   }

   .ds-acc__answer,
   .mobile-nav {
      transition: none
   }

   .hero__line>span,
   .hero__chips,
   .hero__lead,
   .hero__rating,
   .hero__cta,
   .hero-imgs>div,
   .hero-imgs>div>.ds-arch,
   .mobile-nav.is-open .navlink,
   .pricing__panel.is-entering .pricing__panel-head,
   .pricing__panel.is-entering .pricing__panel-cap,
   .pricing__panel.is-entering .ds-price {
      animation: none
   }

   .marquee::before {
      animation: none
   }
}
