/* ==========================================================================
   CONWIZ theme: warm editorial (concept D = C's warm human palette + A's editorial typography).
   Loaded after site.css / wagtail-port.css / autolayout.css; owns every visual decision that
   differs from the structural CSS. Tokens (palette, fonts) live in tokens.css.
   ========================================================================== */

/* ---------- Type + editorial labels ---------- */
h1, h2 { font-weight: 400; letter-spacing: -.022em; }
h1 em, h2 em, :is(h3,.hl3) em, .accent, .al-h em { font-style: italic; color: var(--spark-600); font-weight: 400; }
.on-dark h1 em, .on-dark h2 em, .on-dark :is(h3,.hl3) em, .on-dark .accent, .on-dark .al-h em, .cta h2 em { color: var(--spark-400); }
.lede { color: var(--c-text-muted); }
::selection { background: var(--spark-100); color: var(--ink-900); }

/* Section numbering: "No. 1 | LABEL" on every section-head eyebrow, counted per page. */
main { counter-reset: secno; }
.section-head .eyebrow, .al-stack__head .eyebrow { counter-increment: secno; }
.eyebrow { gap: .75rem; font-size: .75rem; font-weight: 600; letter-spacing: var(--track-eyebrow); color: var(--ink-800); margin-bottom: var(--s-4); }
.eyebrow::before { width: 2.1rem; height: 1px; background: var(--ink-800); }
.section-head .eyebrow::before {
  content: "No. " counter(secno); width: auto; height: auto; background: none;
  font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: 1.2rem; letter-spacing: 0; text-transform: none;
  color: var(--spark-600); padding-right: .75rem; border-right: 1px solid var(--hair);
}
.on-dark .eyebrow { color: #9FC3CF; } .on-dark .eyebrow::before { background: #9FC3CF; }
.on-dark .section-head .eyebrow::before { background: none; color: var(--spark-400); border-color: rgba(255,255,255,.25); }
.section-head { border-top: 1px solid var(--c-text); padding-top: var(--s-5); max-width: none; margin-bottom: var(--s-7); }
.section-head > * { max-width: 46rem; }
.section-head--row > div { max-width: 46rem; }
.section-head h2 { margin-top: .2em; }
.on-dark .section-head, .section--dark .section-head { border-top-color: rgba(255,255,255,.55); }
.fig { font-size: .78rem; color: var(--c-text-muted); line-height: 1.5; letter-spacing: .01em; }
.fig b { font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: .68rem; color: var(--c-text); margin-right: .5rem; }

/* ---------- Buttons ---------- */
.btn { --bg: var(--ink-900); --fg: #fff; font-weight: 650; }
.btn:hover { background: var(--ink-800); box-shadow: 0 10px 24px -10px rgba(18, 63, 82, .6); }
.btn--ghost, .btn--outline { --bg: transparent; --fg: var(--ink-900); --bd: var(--hair); background: transparent; }
.btn--ghost:hover, .btn--outline:hover { background: #fff; color: var(--ink-900); border-color: var(--ink-900); box-shadow: none; }
.btn--wa { --bg: #fff; --fg: var(--c-text); --bd: var(--line); background: #fff; }
.btn--wa .ic { color: var(--wa); width: 1.35em; height: 1.35em; }
.btn--wa:hover { background: #fff; border-color: var(--wa); box-shadow: 0 10px 24px -12px rgba(30, 158, 90, .55); }
.btn--icon { padding: .75rem .85rem; }
/* coral buttons where the surface is petrol */
.on-dark .btn:not(.btn--ghost):not(.btn--wa), .section--dark .btn:not(.btn--ghost):not(.btn--wa), .drawer .btn:not(.btn--wa), .quote-bar .btn:not(.btn--wa), .corp-band .btn { --bg: var(--spark-600); --fg: #fff; background: var(--spark-600); color: #fff; }
.on-dark .btn:not(.btn--ghost):not(.btn--wa):hover, .section--dark .btn:not(.btn--ghost):not(.btn--wa):hover, .drawer .btn:not(.btn--wa):hover, .quote-bar .btn:not(.btn--wa):hover { background: var(--spark-700); box-shadow: 0 10px 24px -10px rgba(226, 109, 81, .7); }
.on-dark .btn--ghost, .section--dark .btn--outline, .on-dark .btn--outline { --fg: #fff; --bd: rgba(255,255,255,.4); color: #fff; background: transparent; }
.on-dark .btn--ghost:hover, .section--dark .btn--outline:hover { background: rgba(255,255,255,.1); border-color: #fff; color: #fff; }
.link-arrow { color: var(--ink-800); }
.on-dark .link-arrow { color: var(--spark-400); }
.wa-float { position: fixed; right: 1.4rem; bottom: 1.4rem; z-index: 60; width: 3.75rem; height: 3.75rem; border-radius: 50%; background: var(--wa); color: #fff; display: grid; place-items: center; box-shadow: 0 12px 28px -8px rgba(30, 158, 90, .6); transition: transform var(--dur-2) var(--ease), background var(--dur-1); }
.wa-float:hover { transform: translateY(-3px) scale(1.04); background: var(--wa-dark); }
.wa-float .ic { width: 2rem; height: 2rem; }

/* ---------- Top bar + header ---------- */
.topbar { background: var(--ink-900); color: #CFE0E5; font-size: .8125rem; }
.topbar .container { padding-block: .4rem; }
.topbar a { color: #fff; font-weight: 600; }
.topbar__links { margin-left: auto; gap: 1.25rem; }
.topbar__note { color: #CFE0E5; font-weight: 500; gap: .5rem; }
.topbar .ic { color: var(--spark-400); }
.site-header { background: rgba(251, 247, 241, .94); border-bottom: 1px solid var(--hair); }
.site-header.is-stuck { box-shadow: 0 10px 30px -22px rgba(18, 63, 82, .5); }
.site-header .container { min-height: 80px; }
.brand { color: var(--ink-900); }
.brand__word { font-size: 2.1rem; font-weight: 500; letter-spacing: -.03em; }
.brand__word b { font-weight: 500; color: var(--spark-500); }
.brand__tag { font-size: .6rem; letter-spacing: .16em; margin-top: .35rem; color: var(--c-text-muted); }
.nav > a, .nav__btn { font-weight: 600; font-size: 1rem; }
.nav > a:hover, .nav__btn:hover, .nav__item:focus-within > .nav__btn, .nav__item.is-open > .nav__btn { background: transparent; color: var(--spark-600); }
.nav a[aria-current="page"] { background: transparent; box-shadow: inset 0 -2px 0 var(--spark-500); border-radius: 0; }
.menu-toggle { background: #fff; color: var(--ink-900); box-shadow: inset 0 0 0 1.5px var(--line); }
.mega { background: var(--paper); border-color: var(--hair); border-radius: var(--r-xl); }
.mega__col .h5 { font-size: .72rem; }
.mega__ico { background: var(--green-100); color: var(--ink-900); border-radius: 50%; }
.mega__link:nth-child(even) .mega__ico { background: var(--spark-100); color: var(--spark-700); }
.mega__link:hover { background: var(--paper-2); }
.mega__link:hover .mega__ico { background: var(--ink-900); color: #fff; }
.mega__feature { border-radius: 150px 150px var(--r-lg) var(--r-lg); }
.mega__feature::after { background: linear-gradient(to top, rgba(12,47,63,.94) 18%, rgba(12,47,63,.5) 58%, rgba(12,47,63,.1)); }
.mega__feature p { font-weight: 400; }
.drawer { background: var(--ink-900); }
.drawer a.d-link { font-weight: 400; }

/* ---------- Home hero ---------- */
.hero { background: var(--paper); color: var(--c-text); padding-block: clamp(2.5rem, 1.5rem + 3vw, 4.5rem) clamp(3rem, 2rem + 3vw, 5rem); overflow: hidden; }
.hero::before { content: ""; position: absolute; right: -11rem; top: -9rem; width: 52rem; height: 52rem; max-width: 120vw; border-radius: 50%; background: var(--paper-2); z-index: -1; inset: auto; right: -11rem; top: -9rem; }
.hero::after { display: none; }
.hero__grid { grid-template-columns: 1.08fr 1fr; align-items: center; gap: clamp(2rem, 4vw, 4rem); }
.hero h1 { color: var(--c-text); font-size: clamp(2.9rem, 1.6rem + 5.3vw, 5.75rem); letter-spacing: -.028em; line-height: 1; margin-bottom: .4em; }
.hero__sub { color: var(--c-text-muted); font-size: 1.2rem; max-width: 31em; }
.hero__actions { margin-bottom: var(--s-6); }
.hero__proof { color: var(--c-text-muted); font-weight: 500; font-size: .95rem; }
.hero__proof .ic { color: var(--spark-500); }
.hero .eyebrow { color: var(--ink-800); }
.hero__media { position: relative; margin: 0; padding-bottom: 2.2rem; }
.hero__frame { border-radius: 220px 220px var(--r-xl) var(--r-xl); aspect-ratio: 5 / 5.5; box-shadow: var(--sh-3); background: var(--paper-3); width: 92%; margin-left: auto; }
.hero__frame img { animation: none; object-position: 30% 40%; }
.hero__frame::after { display: none; }
.hero__inset { position: absolute; left: 0; bottom: 7.5rem; width: 38%; max-width: 13.5rem; aspect-ratio: 1; border-radius: 50%; overflow: hidden; border: .5rem solid var(--paper); box-shadow: var(--sh-2); }
.hero__inset img { width: 100%; height: 100%; object-fit: cover; }
.hero__chip { top: 10%; right: -3%; }
.tracked { left: auto; right: -2%; bottom: 3.2rem; width: min(70%, 21.5rem); background: #fff; border-radius: var(--r-md); box-shadow: var(--sh-3); padding: 1.1rem 1.25rem 1rem; font-size: 1.05rem; line-height: 1.5; }
.tracked__head { margin-bottom: .6rem; }
.tracked__head span { font-size: .7rem; letter-spacing: .12em; color: var(--c-text-muted); }
.tracked del { color: var(--c-del); }
.tracked ins { color: var(--ink-900); background: var(--green-100); text-decoration: none; padding: 0 .2em; border-radius: 4px; }
.tracked__foot { display: flex; gap: .55rem; align-items: center; margin-top: .85rem; padding-top: .75rem; border-top: 1px solid var(--line); font-family: var(--font-body); font-size: .8rem; font-weight: 500; color: var(--c-text-muted); }
.tracked__foot .ic { color: var(--ink-800); flex: none; }
.hero__media .fig { position: absolute; left: 0; right: 0; bottom: 0; text-align: right; }

/* ---------- Doors ---------- */
.doors { margin-top: 0; padding-top: var(--s-4); }
.door { border-radius: var(--r-xl); box-shadow: none; min-height: 440px; }
.door::before { background: linear-gradient(to top, rgba(12,47,63,.95) 20%, rgba(12,47,63,.62) 55%, rgba(12,47,63,.12)); }
.door :is(h3,.hl3) { font-weight: 400; font-size: clamp(1.9rem, 1.5rem + 1.4vw, 2.5rem); line-height: 1.1; }
.door__tag { color: #fff; background: rgba(255,255,255,.16); backdrop-filter: blur(8px); padding: .4rem .85rem; border-radius: var(--r-pill); }
.door__list li { background: #fff; color: var(--c-text); border: 0; font-weight: 600; backdrop-filter: none; }
.door .link-arrow { color: #fff; }

/* ---------- Stats strip ---------- */
.stats { border-top: 1px solid var(--c-text); border-bottom: 0; }
.stat { border-left: 1px solid var(--hair); padding: var(--s-5) var(--s-5) var(--s-6); }
.stat__n { font-size: clamp(2.2rem, 1.6rem + 1.6vw, 3.1rem); font-weight: 400; letter-spacing: -.02em; }
.stat__pre { font-size: .55em; letter-spacing: 0; margin-right: .15em; color: var(--c-text-muted); }
.stat__n sup { font-size: .5em; font-weight: 400; color: var(--spark-600); vertical-align: baseline; margin-left: .1em; }
.stat__l { font-size: .9rem; max-width: 16em; }
.stylebar__label { color: var(--c-text-muted); }
.marquee__track span { color: var(--ink-800); font-weight: 400; }
.section--dark .stats { border-top-color: rgba(255,255,255,.5); }

/* ---------- Contents list (services showcase) ---------- */
.section--contents { background: var(--paper-2); border-radius: 56px; margin-inline: 1.25rem; }
.toc-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(2rem, 5vw, 5rem); border-top: 1px solid var(--c-text); counter-reset: none; }
.toc-list li { border-bottom: 1px solid var(--hair); }
.toc-list li:nth-child(2) { border-top: 0; }
.toc-list a { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto 1.25rem; align-items: center; gap: .75rem; padding: 1.2rem 0; text-decoration: none; transition: padding var(--dur-2) var(--ease); }
.toc-list a:hover { padding-left: .5rem; }
.toc-list__n { font-family: var(--font-display); font-style: italic; font-size: 1.4rem; color: var(--spark-600); }
.toc-list__t b { display: block; font-family: var(--font-display); font-weight: 500; font-size: 1.45rem; line-height: 1.2; letter-spacing: -.01em; }
.toc-list__t small { display: block; margin-top: .2rem; font-size: .92rem; color: var(--c-text-muted); line-height: 1.4; }
.toc-list__p { font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-text-muted); white-space: nowrap; }
.toc-list li:first-child .toc-list__p { background: #fff; color: var(--ink-900); padding: .3rem .75rem; border-radius: var(--r-pill); box-shadow: inset 0 0 0 1px var(--hair); }
.toc-list .ic { color: var(--c-text-muted); transition: transform var(--dur-2) var(--ease), color var(--dur-1); }
.toc-list a:hover .ic { color: var(--spark-600); transform: translateX(3px); }

/* ---------- Cards ---------- */
.card { border-radius: var(--r-lg); border-color: var(--line); background: #fffdf9; }
.card:hover { box-shadow: var(--sh-2); border-color: var(--hair); transform: translateY(-4px); }
.card__ico { border-radius: 16px; background: var(--green-100); color: var(--ink-900); }
.card:nth-child(3n+2) .card__ico { background: var(--spark-100); color: var(--spark-700); }
.card:hover .card__ico { background: var(--ink-900); color: #fff; transform: none; }
.card :is(h3,.hl3) { font-weight: 500; }
.card--feature { border-radius: var(--r-xl); }
.card--feature::before { background: linear-gradient(to top, rgba(12,47,63,.95) 15%, rgba(12,47,63,.3) 70%); }
.card__badge { background: var(--spark-600); color: #fff; }
.ph { background: var(--paper-2); color: #8A7A62; border: 1px solid var(--hair); }
.on-dark .ph { background: rgba(255,255,255,.1); color: #E7D9C0; border-color: rgba(255,255,255,.25); }

/* ---------- Steps: roman numerals on hairlines ---------- */
.steps::before { display: none; }
.step { border-top: 1px solid var(--c-text); padding-top: var(--s-4); }
.section--dark .step, .on-dark .step { border-top-color: rgba(255,255,255,.55); }
.step__n { width: auto; height: auto; border: 0; border-radius: 0; background: none; display: block; font-family: var(--font-display); font-style: italic; font-weight: 400; font-size: 2.6rem; line-height: 1; color: var(--spark-600); margin-bottom: var(--s-3); }
.step:hover .step__n { background: none; color: var(--spark-600); border: 0; }
.steps--light .step__n { background: none; border: 0; }
.on-dark .step__n { color: var(--spark-400); }
.step :is(h3,.hl3) { font-weight: 500; font-size: 1.35rem; }
.step__time { color: var(--spark-400); }
.section--steps.section--dark { border-radius: 56px; margin-inline: 1.25rem; background: var(--ink-900); }

/* ---------- Tiers ---------- */
.tier { background: #fffdf9; border-color: var(--hair); border-radius: var(--r-lg); }
.tier:hover { box-shadow: var(--sh-2); }
.tier--pop { background: var(--ink-900); border-color: var(--ink-900); transform: translateY(-10px); }
.tier__flag { background: var(--spark-600); color: #fff; }
.tier :is(h3,.hl3) { font-weight: 400; }
.tier li .ic { color: var(--spark-600); } .tier--pop li .ic { color: var(--spark-400); }
.tier .btn:not(.btn--outline) { }
.tier:not(.tier--pop) .btn { --bg: var(--blue-wash); --fg: var(--ink-900); background: var(--blue-wash); color: var(--ink-900); }
.tier:not(.tier--pop) .btn:hover { background: var(--green-100); }
.tier--pop .btn { --bg: var(--spark-600); --fg: #fff; background: var(--spark-600); color: #fff; }
.tier--pop .btn:hover { background: var(--spark-700); }

/* ---------- Split / photos ---------- */
.photo { border-radius: var(--r-xl); box-shadow: var(--sh-2); }
.photo--arch { border-radius: 220px 220px var(--r-xl) var(--r-xl); aspect-ratio: 5 / 5.4; box-shadow: var(--sh-3); }
.photo--tall { border-radius: 200px 200px var(--r-xl) var(--r-xl); }
.photo__cap { background: #fff; }
.checklist .ic { background: var(--spark-600); }
.on-dark .checklist .ic { background: var(--spark-400); }
.tags li { background: var(--paper-3); color: var(--ink-900); }
.corp-item { border-radius: var(--r-md); }
.corp-item .ic { color: var(--spark-400); }

/* ---------- Testimonials / placeholders ---------- */
.qcard { border: 1.5px dashed var(--hair); background: rgba(255,255,255,.45); border-radius: var(--r-lg); }
.qcard > .ic { color: var(--paper-3); }
.qcard blockquote { font-style: italic; font-weight: 400; color: #8C7F6B; }
.case { background: var(--ink-900); border-radius: var(--r-lg); }

/* ---------- Posts ---------- */
.post__img { border-radius: var(--r-lg) var(--r-lg) var(--r-lg) 90px; background: var(--paper-3); }
.post__meta b { color: var(--spark-600); }
.post :is(h3,.hl3) { font-weight: 500; }
.post:hover :is(h3,.hl3) { color: var(--spark-600); }

/* ---------- CTA band: soft coral, editorial ---------- */
.cta { background: var(--spark-100); color: var(--c-text); border-radius: 48px; }
.cta::before { content: ""; position: absolute; right: -8rem; top: -10rem; width: 30rem; height: 30rem; border-radius: 50%; background: rgba(255,255,255,.5); z-index: -1; inset: auto; right: -8rem; top: -10rem; }
.cta h2 { color: var(--c-text); font-size: clamp(2.2rem, 1.5rem + 3vw, 4rem); }
.cta h2 em { color: var(--spark-600); }
.cta p { color: var(--c-text-muted); }
.cta .eyebrow { color: var(--spark-700); } .cta .eyebrow::before { background: var(--spark-700); }
.cta__act small { color: var(--c-text-muted); }
.cta .btn:not(.btn--wa) { --bg: var(--ink-900); --fg: #fff; background: var(--ink-900); color: #fff; }

/* ---------- Footer ---------- */
.footer { background: var(--ink-900); color: #BFD3DA; border-radius: 48px 48px 0 0; padding-top: var(--s-8); }
.footer .h5 { color: #9FC3CF; font-size: .72rem; }
.footer .brand { color: #fff; } .footer .brand__word b { color: var(--spark-400); } .footer .brand__tag { color: #9FC3CF; }
.footer__contact .ic { color: var(--spark-400); }
.footer__base { border-top-color: rgba(255,255,255,.14); color: #8FB0BB; }

/* ---------- Inner page heroes (light, editorial) ---------- */
.page-hero { background: var(--paper); border-bottom: 1px solid var(--hair); padding-block: clamp(2.5rem, 1.5rem + 3.5vw, 5rem) clamp(2.5rem, 2rem + 3vw, 4.5rem); }
.page-hero h1, .al-hero h1 { font-size: clamp(2.7rem, 1.6rem + 4.6vw, 5rem); line-height: 1.02; letter-spacing: -.026em; max-width: 14em; }
.page-hero .lede { font-size: 1.2rem; }
.crumbs { font-size: .8125rem; letter-spacing: .01em; }
.crumbs li + li::before { content: "›"; opacity: .6; }
.jump a { border-color: var(--hair); color: var(--ink-900); background: #fff; }
.jump a:hover { background: var(--ink-900); border-color: var(--ink-900); color: #fff; }
.al-hero { background: var(--paper); border-bottom: 1px solid var(--hair); overflow: hidden; }
.al-hero::before { content: ""; position: absolute; z-index: -1; right: -12rem; top: -12rem; width: 40rem; height: 40rem; border-radius: 50%; background: var(--paper-2); inset: auto; right: -12rem; top: -12rem; }
.al-hero::after { display: none; }
.al-hero--light { background: var(--paper-2); }
.al-hero--light::before { display: none; }
.al-hero--light h1 { font-size: clamp(2.3rem, 1.5rem + 3vw, 3.6rem); }
.al-hero .crumbs { color: var(--c-text-muted); }
.al-hero__media { border-radius: 200px 200px var(--r-xl) var(--r-xl); aspect-ratio: 5 / 5.2; box-shadow: var(--sh-3); }
.al-hero--img .al-hero__grid { grid-template-columns: 1.1fr .9fr; }
.al-svc-hero { position: relative; overflow: hidden; }
.al-svc-hero::before { content: ""; position: absolute; z-index: -1; right: -12rem; top: -10rem; width: 38rem; height: 38rem; border-radius: 50%; background: var(--paper-2); }
.al-svc-hero .photo--arch { aspect-ratio: 5 / 5; }

/* ---------- Autolayout restyle (logic untouched) ---------- */
.al-sec { border-top: 0; }
.al-h { font-weight: 400; letter-spacing: -.02em; }
.al-aside__head .al-h::before { content: ""; width: 3rem; height: 1px; background: var(--c-text); border-radius: 0; margin-bottom: var(--s-4); }
.al-aside__head .al-h { font-size: clamp(1.9rem, 1.4rem + 2vw, 3.1rem); }
.al-media__img { border-radius: 200px 200px var(--r-xl) var(--r-xl); box-shadow: var(--sh-2); aspect-ratio: 4 / 4.4; }
.al-figure { border-radius: var(--r-lg); box-shadow: none; border: 1px solid var(--line); }
.al-card { background: #fffdf9; border-color: var(--line); }
.al-card:hover { border-color: var(--hair); }
.al-card__ico { background: var(--green-100); color: var(--ink-900); border-radius: 16px; }
.al-card:nth-child(3n+2) .al-card__ico { background: var(--spark-100); color: var(--spark-700); }
.al-card:hover .al-card__ico { background: var(--ink-900); color: #fff; }
.al-card :is(h3,.hl3) { font-weight: 500; }
.al-card__price { color: var(--c-text); font-weight: 400; }
.al-card__meta .ic { color: var(--spark-600); }
.al-checks li { background: #fffdf9; border-color: var(--line); border-radius: var(--r-md); }
.al-checks .ic, .al-list .ic { background: var(--spark-100); color: var(--spark-700); }
.on-dark .al-checks .ic, .on-dark .al-list .ic { background: rgba(242,162,142,.18); color: var(--spark-400); }
.al-tier { background: #fffdf9; border-top: 1px solid var(--hair); border-radius: var(--r-lg); border-color: var(--hair); }
.al-tier:nth-child(2), .al-tier:nth-child(3) { border-top-color: var(--hair); }
.al-tier:nth-child(2) { background: var(--ink-900); color: #fff; border-color: var(--ink-900); box-shadow: var(--sh-2); }
.al-tier:nth-child(2) :is(h3,.hl3), .al-tier:nth-child(2) p { color: #fff; } .al-tier:nth-child(2) p { color: #BFD3DA; }
.al-tier:nth-child(2) .al-tier__n { color: var(--spark-400); }
.al-tier__n { font-style: italic; font-size: 1.5rem; }
.al-tier :is(h3,.hl3) { font-weight: 500; }
.al-steps:not(.al-steps--rows)::before { display: none; }
.al-step__n { width: auto; height: auto; border: 0; border-radius: 0; background: none; display: block; font-style: italic; font-weight: 400; font-size: 2.3rem; line-height: 1; color: var(--spark-600); margin-bottom: var(--s-3); }
.al-step:hover .al-step__n, .on-dark .al-step__n { background: none; border: 0; color: var(--spark-400); }
.al-step:hover .al-step__n { color: var(--spark-600); } .on-dark .al-step:hover .al-step__n { color: var(--spark-400); }
.al-steps:not(.al-steps--rows) .al-step { border-top: 1px solid var(--c-text); padding-top: var(--s-4); }
.on-dark .al-steps:not(.al-steps--rows) .al-step { border-top-color: rgba(255,255,255,.55); }
.al-steps--rows .al-step__n { font-size: 1.9rem; width: auto; height: auto; margin: 0; }
.al-steps--rows .al-step::before { border-color: var(--hair); left: 1rem; }
.al-row__n { font-style: italic; font-size: 1.5rem; }
.al-rows { border-top-color: var(--c-text); }
.al-row { border-bottom-color: var(--hair); }
.al-subnav { background: rgba(251,247,241,.94); border-color: var(--hair); }
.al-subnav__label { color: var(--spark-600); }
.al-subnav__links a:hover { background: var(--paper-3); }
.al-subnav__links a.is-active { background: var(--ink-900); }
.al-faqhub__nav a.is-active { background: var(--ink-900); }
.al-faqhub__nav a.is-active span { background: var(--spark-600); color: #fff; }
.al-faqhub__group :is(h3,.hl3) { font-weight: 400; }
.al-related { background: var(--paper); border-top-color: var(--hair); }
.al-doc__sec + .al-doc__sec { border-top-color: var(--hair); }
.al-gallery figure { border-radius: 6px 14px 14px 6px; }
.al-table th { background: var(--paper-2); }
.al-svc__sec:has(.al-steps) { background: var(--ink-900); border-radius: var(--r-xl); }
.al-svc__sec:has(.al-steps) .al-step__n { background: none; border: 0; color: var(--spark-400); }
.al-svc__sec:has(.al-steps) .al-steps:not(.al-steps--rows) .al-step { border-top-color: rgba(255,255,255,.5); }

/* ---------- Service page: quote card, price tables, FAQ ---------- */
.sticky-card { background: #fff; border-color: var(--line); border-radius: var(--r-xl); box-shadow: var(--sh-2); }
.sticky-card :is(h3,.hl3) { font-weight: 400; font-size: 1.7rem; }
.sticky-card .price { font-weight: 400; }
.sticky-card li .ic { color: var(--spark-600); }
.price-wrap { border-color: var(--hair); border-radius: var(--r-lg); }
.price-table thead th { background: var(--ink-900); font-weight: 650; }
.price-table thead .is-pop { background: var(--spark-600); color: #fff; } .price-table thead .is-pop small { color: rgba(255,255,255,.85); }
.price-table td.is-pop { background: #FDF3EE; }
.price-table tbody th { background: var(--paper-2); }
.price-table .amt { font-weight: 400; }
.price-table .yes { color: var(--spark-600); }
.price-card { border-color: var(--hair); background: #fffdf9; }
.price-card.is-pop { border: 2px solid var(--ink-900); }
.price-card__head small { background: var(--spark-100); color: var(--spark-700); }
.price-card__price .amt { font-weight: 400; }
.price-card li .ic { color: var(--spark-600); }
.faq details { background: transparent; border: 0; border-bottom: 1px solid var(--hair); border-radius: 0; }
.faq details:first-child { border-top: 1px solid var(--c-text); }
.faq details[open] { border-color: var(--hair); box-shadow: none; }
.faq summary { font-family: var(--font-display); font-weight: 500; font-size: 1.35rem; letter-spacing: -.01em; padding: 1.25rem 0; }
.faq summary .ic { flex: none; width: 2.3rem; height: 2.3rem; padding: .6rem; border-radius: 50%; background: #fff; color: var(--c-text); box-shadow: inset 0 0 0 1.5px var(--line); transition: transform var(--dur-2) var(--ease), background var(--dur-1); }
.faq details[open] summary .ic { background: var(--spark-600); color: #fff; box-shadow: none; transform: rotate(45deg); }
.faq .faq__a { padding: 0 3.5rem 1.4rem 0; }
.compare .before { background: #FDF0EA; border-color: #F1D3C7; } .compare .after { background: var(--blue-wash); border-color: var(--green-200); }
.compare .after .tag { color: var(--ink-900); }
.quote-bar { background: var(--ink-900); }
.quote-bar .btn--icon { padding: .7rem .8rem; }
.facts .fact { background: #fffdf9; border-color: var(--line); }
.fact .ic { color: var(--spark-600); }

/* ---------- Forms ---------- */
.form-card, .aside-card { border-color: var(--line); background: #fff; }
.form-card { border-radius: var(--r-xl); }
.aside-card.dark { background: var(--ink-900); border-color: var(--ink-900); }
.seg { background: var(--paper-2); }
.seg input:checked + label { background: var(--ink-900); }
.field input, .field select, .field textarea { background: var(--paper); border-color: var(--line); border-radius: 14px; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--ink-800); background: #fff; box-shadow: 0 0 0 4px var(--green-100); }
.upload { border-color: #C9B89E; background: var(--paper); } .upload:hover { border-color: var(--ink-800); background: var(--green-100); }
.upload .ic { color: var(--spark-600); }
.next-steps li::before { background: var(--spark-100); color: var(--spark-700); }
.consent input { accent-color: var(--ink-900); }
.form-status.is-ok { background: var(--blue-wash); color: var(--ink-900); border-color: var(--green-200); }

/* ---------- About / values / article ---------- */
.value { border-top: 1px solid var(--c-text); } .value::before { font-style: italic; font-size: 1.5rem; }
.member__ph { border-color: var(--hair); background: var(--paper-2); border-radius: 160px 160px var(--r-lg) var(--r-lg); }
.prose a, .richtext a, .al-prose a { color: var(--ink-800); }
.prose > p:first-of-type::first-letter { color: var(--spark-600); }
.pullquote { border-left-color: var(--spark-500); background: var(--paper-2); font-style: italic; }
.callout { background: var(--blue-wash); border-color: var(--green-200); } .callout .ic { color: var(--ink-800); }
.byline .avatar, .author-box .avatar { background: var(--ink-900); color: #fff; }
.progress { background: var(--spark-500); }
.article-cover { border-radius: var(--r-xl); }
.toc a.is-active { border-color: var(--spark-500); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .header-cta .btn--wa { display: none; }
}
@media (max-width: 900px) {
  .hero__grid { grid-template-columns: 1fr; }
  .hero__media { max-width: 32rem; margin-inline: auto; }
  .toc-list { grid-template-columns: 1fr; }
  .toc-list li:nth-child(2) { border-top: 0; }
  .section--contents, .section--steps.section--dark { margin-inline: .6rem; border-radius: 32px; }
  .tier--pop { transform: none; }
  .tracked { right: 0; }
  .al-svc-hero .photo--arch { max-width: 30rem; margin-inline: auto; }
  .stat:nth-child(3) { border-left: 0; padding-left: 0; }
  .cta { border-radius: 32px; }
  .footer { border-radius: 32px 32px 0 0; }
}
@media (max-width: 640px) {
  .hero h1 { font-size: clamp(2.6rem, 12.5vw, 3.6rem); }
  .page-hero h1, .al-hero h1 { font-size: clamp(2.4rem, 11.5vw, 3.3rem); }
  .hero__proof { gap: .5rem 1.25rem; }
  .hero__actions .btn { width: 100%; }
  .hero__frame { width: 100%; border-radius: 160px 160px 28px 28px; }
  .hero__inset { width: 7.5rem; bottom: 8.5rem; border-width: .35rem; }
  .tracked { width: 86%; right: 0; bottom: 3rem; font-size: .96rem; padding: .9rem 1rem .8rem; }
  .tracked__foot { display: none; }
  .toc-list a { grid-template-columns: 2.2rem minmax(0, 1fr) auto; }
  .toc-list a > .ic { display: none; }
  .toc-list__t b { font-size: 1.25rem; }
  .brand__word { font-size: 1.85rem; }
  .wa-float { width: 3.4rem; height: 3.4rem; right: 1rem; bottom: 1rem; }
  .page-service .wa-float { bottom: 5.4rem; }
  .doors__grid { gap: var(--s-4); }
  .faq summary { font-size: 1.2rem; }
  .faq .faq__a { padding-right: 0; }
  .doors { margin-top: 0; }
}

/* spacing fixes */
.section--stats { padding-top: 0; padding-bottom: var(--s-7); }
.hero { padding-bottom: clamp(2.5rem, 2rem + 2vw, 4rem); }
/* low-resolution source images (old WordPress art): contain on white, never upscale-crop */
.photo--small, .al-hero__media--small { background: #fff; display: grid; place-items: center; }
.photo--small img, .al-hero__media--small img { object-fit: contain; padding: 8%; }
.page-hero .split .photo { border-radius: 200px 200px var(--r-xl) var(--r-xl); aspect-ratio: 5 / 5; box-shadow: var(--sh-3); }
.page-hero .split .photo img { object-fit: cover; }
.page-hero .split .photo__cap { left: 50%; translate: -50% 0; bottom: var(--s-5); white-space: nowrap; }

/* logo (from the WordPress site) */
.brand__logo { display: block; height: 52px; width: auto; }
.drawer__top .brand__logo { height: 38px; }
.footer .brand__logo { height: 46px; }

/* ---- SEO / AEO additions: answer-first box, entity facts, search, 404 ---- */
.answer-lede { margin: var(--s-6, 1.5rem) 0 0; padding: 1rem 1.25rem; border-left: 4px solid var(--spark-500); background: var(--paper-2); border-radius: 0 var(--r-sm, .5rem) var(--r-sm, .5rem) 0; max-width: 46rem; }
.answer-lede__label { display: block; font: 700 .72rem/1 var(--font-ui, inherit); letter-spacing: .1em; text-transform: uppercase; color: var(--spark-600); margin-bottom: .4rem; }
.answer-lede p { margin: 0; font-size: 1.05rem; line-height: 1.55; color: var(--c-text); }
.answer-lede--band { max-width: none; margin: 0; border-radius: 0; }
.answer-lede--band .container { max-width: 52rem; margin-inline: auto; }
.entity-facts { padding-block: var(--s-8, 3rem); background: var(--paper-2); }
.entity-facts h2 { margin: 0 0 1rem; }
.entity-facts dl { display: grid; grid-template-columns: minmax(9rem, 13rem) 1fr; gap: .65rem 1.5rem; margin: 0; }
.entity-facts dt { font-weight: 650; color: var(--c-text-muted); }
.entity-facts dd { margin: 0; }
.entity-facts a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) { .entity-facts dl { grid-template-columns: 1fr; gap: .1rem; } .entity-facts dd { margin-bottom: .7rem; } }
.seo-search { margin-top: var(--s-5, 1.25rem); max-width: 34rem; }
.seo-search__row { display: flex; gap: .6rem; }
.seo-search__row input { flex: 1; min-width: 0; }
.seo-results { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: 1.25rem; }
.seo-results a { font-size: 1.15rem; }
.seo-results p { margin: .2rem 0 0; color: var(--c-text-muted); }
