/* Hallmark · pre-emit critique: Philosophy 5 · Hierarchy 5 · Execution 4 · Specificity 5 · Restraint 5 · Variety 5
 * Hallmark · genre: modern editorial · macrostructure: editorial split hero → service directory → journey rail · theme: Avlume Forest & Lime
 */
@import url("tokens.css");
:root {
  color-scheme: light;
  --color-paper: #f0f0e8;
  --color-paper-bright: #faf9f2;
  --color-paper-shade: #e1e5d9;
  --color-forest: #102018;
  --color-forest-raised: #1a2c22;
  --color-forest-soft: #2a4032;
  --color-ink: #142119;
  --color-ink-muted: #56645a;
  --color-ink-faint: #718075;
  --color-ink-on-dark: #f1f3eb;
  --color-ink-muted-on-dark: #c0c9be;
  --color-ink-faint-on-dark: #a0aea2;
  --color-rule: #c9d1c5;
  --color-rule-dark: #3a4b3f;
  --color-accent: #c9ff38;
  --color-accent-hover: #b9ec31;
  --color-accent-ink: #11180d;
  --color-accent-soft: color-mix(in oklch, var(--color-accent) 12%, transparent);
  --color-accent-rule: color-mix(in oklch, var(--color-accent) 44%, transparent);
  --color-cream-rule: color-mix(in oklch, var(--color-paper-bright) 28%, transparent);
  --color-overlay: color-mix(in oklch, var(--color-forest) 72%, transparent);
  --color-header: color-mix(in oklch, var(--color-forest) 96%, transparent);
  --font-display: "Manrope", "DM Sans", sans-serif;
  --font-body: "DM Sans", sans-serif;
  --content-wide: 1320px;
  --content: 1220px;
  --ease-out: cubic-bezier(.16, 1, .3, 1);
}

* { box-sizing: border-box; }
html, body { margin: 0; min-width: 320px; overflow-x: clip; scroll-behavior: smooth; }
html { scroll-padding-top: 86px; }
body { color: var(--color-ink); background: var(--color-paper); font: 400 16px/1.6 var(--font-body); }
button, a { font: inherit; -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
button:focus-visible, a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
::selection { color: var(--color-accent-ink); background: var(--color-accent); }
.skip-link { position: fixed; z-index: 100; top: 12px; left: 12px; padding: 11px 15px; transform: translateY(-160%); color: var(--color-accent-ink); background: var(--color-accent); }
.skip-link:focus { transform: translateY(0); }

.site-header { position: sticky; z-index: 20; top: 0; border-bottom: 1px solid var(--color-rule-dark); color: var(--color-ink-on-dark); background: var(--color-header); backdrop-filter: blur(16px); }
.header-inner { width: min(100% - 72px, var(--content-wide)); min-height: 82px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { width: auto; display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.brand-mark { width: 43px; height: 43px; flex: 0 0 43px; object-fit: contain; }
.brand-copy { display: flex; flex-direction: column; gap: 4px; }
.brand-copy strong { color: var(--color-ink-on-dark); font: 800 22px/1 var(--font-display); letter-spacing: -.055em; }
.brand-copy small { color: var(--color-ink-muted-on-dark); font-size: 9px; font-weight: 700; letter-spacing: .07em; white-space: nowrap; }

.primary-nav { display: flex; align-items: center; gap: clamp(22px, 3vw, 44px); }
.primary-nav > a:not(.nav-cta) { color: var(--color-ink-on-dark); font-size: 13px; font-weight: 650; transition: color 180ms ease; }
.primary-nav > a:not(.nav-cta):hover { color: var(--color-accent); }
.nav-cta { min-height: 46px; padding: 0 16px; border: 1px solid var(--color-cream-rule); display: inline-flex; align-items: center; gap: 15px; color: var(--color-ink-on-dark); font-size: 12px; font-weight: 700; white-space: nowrap; transition: color 180ms ease, background 180ms ease, border-color 180ms ease; }
.nav-cta span { color: var(--color-accent); transition: transform 180ms var(--ease-out); }
.nav-cta:hover { border-color: var(--color-accent); color: var(--color-accent-ink); background: var(--color-accent); }
.nav-cta:hover span { color: var(--color-accent-ink); transform: translate(2px, 2px); }
.menu-toggle { display: none; }

.hero { position: relative; width: min(100% - 72px, var(--content-wide)); min-height: min(760px, calc(100svh - 82px)); margin: auto; padding: clamp(74px, 8vw, 116px) 0 clamp(70px, 7vw, 96px); display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); align-items: center; gap: clamp(42px, 7vw, 96px); }
.hero-copy { position: relative; z-index: 2; max-width: 620px; }
.eyebrow, .section-label { margin: 0 0 20px; color: var(--color-ink-muted); font-size: 10px; font-weight: 750; letter-spacing: .16em; }
.eyebrow { display: flex; align-items: center; gap: 11px; }
.eyebrow > span { width: 7px; height: 7px; flex: 0 0 7px; background: var(--color-forest); }
h1, h2, h3, p { margin-top: 0; }
.hero h1 { max-width: 650px; margin: 0 0 23px; font: 750 clamp(3.2rem, 6vw, 6.1rem)/.99 var(--font-display); letter-spacing: -.075em; overflow-wrap: anywhere; }
.hero h1 em { color: var(--color-forest-soft); font-style: normal; }
.hero-lede { max-width: 510px; margin-bottom: 27px; color: var(--color-ink-muted); font-size: clamp(16px, 1.25vw, 18px); line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.button { min-height: 52px; padding: 0 19px; display: inline-flex; align-items: center; justify-content: center; gap: 14px; font-size: 12px; font-weight: 750; white-space: nowrap; transition: transform 180ms var(--ease-out), background 180ms ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: var(--color-accent-ink); background: var(--color-accent); }
.button-primary:hover { background: var(--color-accent-hover); }
.button-primary span { font-size: 16px; }
.text-link { min-height: 44px; display: inline-flex; align-items: center; gap: 9px; color: var(--color-ink-muted); font-size: 12px; font-weight: 700; transition: color 180ms ease; }
.text-link span { color: var(--color-forest-soft); transition: transform 180ms var(--ease-out); }
.text-link:hover { color: var(--color-ink); }
.text-link:hover span { transform: translate(3px, -2px); }
.hero-path-links { max-width: 520px; margin-top: 38px; border-top: 1px solid var(--color-rule); display: grid; grid-template-columns: 1fr 1fr; }
.hero-path-links a { min-width: 0; padding: 13px 12px 0 0; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 8px; color: var(--color-ink-muted); font-size: 10px; transition: color 180ms ease; }
.hero-path-links a + a { padding-left: 13px; border-left: 1px solid var(--color-rule); }
.hero-path-links a:hover { color: var(--color-ink); }
.hero-path-links a > span { color: var(--color-ink-faint); font: 600 9px var(--font-display); }
.hero-path-links b { color: var(--color-forest-soft); font-size: 9px; white-space: nowrap; }
.hero-visual { position: relative; min-width: 0; margin: 0; aspect-ratio: 1.04; overflow: hidden; isolation: isolate; color: var(--color-ink-on-dark); background: var(--color-forest); }
.hero-visual::after { position: absolute; z-index: 0; inset: 0; pointer-events: none; background: linear-gradient(0deg, var(--color-overlay), transparent 52%); content: ""; }
.hero-visual > img { width: 100%; height: 100%; object-fit: cover; object-position: 57% center; filter: brightness(.93) saturate(.88); }
.hero-route { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.route-line { fill: none; stroke: var(--color-accent); stroke-width: 1.5; stroke-dasharray: 900; stroke-dashoffset: 900; }
.route-stop { fill: var(--color-accent); opacity: 0; }
.hero-image-caption { position: absolute; z-index: 2; bottom: clamp(20px, 3vw, 34px); left: clamp(20px, 3vw, 34px); display: flex; flex-direction: column; gap: 8px; }
.hero-image-caption > span { color: var(--color-accent); font-size: 8px; font-weight: 750; letter-spacing: .16em; }
.hero-image-caption > strong { font: 650 clamp(19px, 2.2vw, 28px)/1.16 var(--font-display); letter-spacing: -.045em; }
.image-index { position: absolute; z-index: 2; top: 20px; right: 20px; padding-top: 8px; border-top: 1px solid var(--color-accent); color: var(--color-ink-on-dark); font: 600 9px var(--font-display); letter-spacing: .1em; }

.businesses-section { padding: clamp(82px, 9vw, 122px) max(36px, calc((100% - var(--content)) / 2)); color: var(--color-ink-on-dark); background: var(--color-forest); }
.section-head { max-width: var(--content); margin: 0 auto clamp(42px, 6vw, 72px); }
.businesses-section .section-label, .growth-approach .section-label { color: var(--color-accent); }
.section-head-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(260px, .72fr); align-items: end; gap: clamp(40px, 9vw, 130px); }
.section-head h2 { max-width: 700px; margin: 0; font: 700 clamp(2.7rem, 5.2vw, 5.1rem)/.99 var(--font-display); letter-spacing: -.075em; overflow-wrap: anywhere; }
.section-head-grid > p { max-width: 450px; margin: 0 0 5px; color: var(--color-ink-muted-on-dark); font-size: 15px; line-height: 1.8; }
.service-grid { width: min(100%, var(--content)); margin: auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; gap: 20px; }
.service-card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
.service-hr { color: var(--color-ink); background: var(--color-paper-bright); }
.service-growth { color: var(--color-ink-on-dark); background: var(--color-forest-raised); }
.service-photo { position: relative; height: clamp(210px, 24vw, 310px); flex: 0 0 clamp(210px, 24vw, 310px); overflow: hidden; background: var(--color-paper-shade); }
.service-photo::after { position: absolute; inset: 0; background: linear-gradient(0deg, var(--color-overlay), transparent 57%); content: ""; }
.service-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 34%; filter: brightness(1.04) contrast(1.04) saturate(.96); transition: transform 700ms var(--ease-out); }
.service-card:hover .service-photo img { transform: scale(1.025); }
.photo-label { position: absolute; z-index: 1; bottom: 17px; left: 19px; color: var(--color-ink-on-dark); font-size: 8px; font-weight: 750; letter-spacing: .14em; }
.service-index { position: absolute; z-index: 1; top: 17px; right: 18px; color: var(--color-ink-on-dark); font: 600 10px var(--font-display); }
.service-content { flex: 1; padding: 27px clamp(22px, 3vw, 38px) 34px; display: flex; flex-direction: column; }
.service-kicker-row { min-height: 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.service-kicker { margin: 0; color: var(--color-ink-muted); font-size: 8px; font-weight: 750; letter-spacing: .14em; }
.service-status { color: var(--color-ink-muted); font-size: 8px; font-weight: 750; letter-spacing: .12em; white-space: nowrap; }
.service-status i { display: inline-block; width: 6px; height: 6px; margin: 0 7px 1px 0; border-radius: 50%; background: var(--color-forest-soft); }
.status-launching i { background: var(--color-accent); }
.service-content h3 { margin: 13px 0 13px; font: 700 clamp(2rem, 3.2vw, 3rem)/1.02 var(--font-display); letter-spacing: -.065em; overflow-wrap: anywhere; }
.service-content h3 span { color: var(--color-forest-soft); }
.service-growth .service-content h3 span { color: var(--color-accent); }
.service-content > p:not(.service-kicker) { max-width: 520px; margin: 0 0 21px; color: var(--color-ink-muted); font-size: 13px; line-height: 1.75; }
.service-growth .service-kicker, .service-growth .service-status { color: var(--color-ink-muted-on-dark); }
.service-growth .service-content > p:not(.service-kicker) { color: var(--color-ink-muted-on-dark); }
.service-list { margin: auto 0 20px; padding: 0; border-top: 1px solid var(--color-rule); list-style: none; }
.service-list li { position: relative; padding: 9px 0 9px 15px; border-bottom: 1px solid var(--color-rule); color: var(--color-ink-muted); font-size: 11px; line-height: 1.5; }
.service-list li::before { position: absolute; top: 17px; left: 0; width: 6px; height: 1px; background: var(--color-forest-soft); content: ""; }
.service-growth .service-list { border-color: var(--color-rule-dark); }
.service-growth .service-list li { border-color: var(--color-rule-dark); color: var(--color-ink-muted-on-dark); }
.service-growth .service-list li::before { background: var(--color-accent); }
.service-link { min-height: 42px; display: inline-flex; align-items: center; align-self: flex-start; gap: 13px; color: var(--color-ink); font-size: 11px; font-weight: 750; }
.service-link span { color: var(--color-forest-soft); font-size: 16px; transition: transform 180ms var(--ease-out); }
.service-link:hover span { transform: translate(3px, -2px); }
.service-growth .service-link { color: var(--color-ink-on-dark); }
.service-growth .service-link span { color: var(--color-accent); }
.growth-art { position: relative; height: clamp(210px, 24vw, 310px); min-height: 0; flex: 0 0 clamp(210px, 24vw, 310px); overflow: hidden; color: var(--color-ink-on-dark); background: var(--color-forest-raised); }
.growth-art::before { position: absolute; inset: 0; background: radial-gradient(ellipse at 80% 15%, var(--color-accent-soft), transparent 45%), linear-gradient(145deg, var(--color-forest), transparent 70%); content: ""; }
.growth-art-meta { position: absolute; z-index: 1; top: 18px; right: 20px; left: 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--color-ink-muted-on-dark); font-size: 7px; font-weight: 750; letter-spacing: .13em; }

.growth-art-title { position: absolute; top: 20%; left: 9%; display: grid; grid-template-columns: max-content max-content; align-items: baseline; column-gap: .22em; color: var(--color-ink-on-dark); font: 800 clamp(2.1rem, 4.3vw, 4.1rem)/.93 var(--font-display); letter-spacing: -.075em; }
.growth-art-title strong { color: var(--color-accent); }
.growth-art-route { position: absolute; right: 8%; bottom: 24%; left: 8%; width: 84%; height: 30px; overflow: visible; }
.growth-art-route path { fill: none; stroke: var(--color-accent-rule); stroke-width: 1; }
.growth-art-route circle { fill: var(--color-accent); }
.growth-art-steps { position: absolute; right: 8%; bottom: 10%; left: 8%; display: flex; justify-content: space-between; color: var(--color-ink-muted-on-dark); font-size: 7px; font-weight: 750; letter-spacing: .11em; }
.growth-art-caption { position: absolute; right: 20px; bottom: 17px; color: var(--color-ink-faint-on-dark); font-size: 6px; font-weight: 700; letter-spacing: .12em; }
.book-strip { width: min(100%, var(--content)); min-height: 104px; margin: 48px auto 0; padding: 19px 0; border-top: 1px solid var(--color-rule-dark); border-bottom: 1px solid var(--color-rule-dark); display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: 20px; }
.book-index { width: 44px; height: 44px; border: 1px solid var(--color-rule-dark); display: grid; place-items: center; color: var(--color-ink-faint-on-dark); font: 500 10px var(--font-display); }
.book-strip .service-kicker { margin: 0 0 4px; color: var(--color-ink-faint-on-dark); }
.book-strip h3 { margin: 0; color: var(--color-ink-on-dark); font: 650 21px/1.2 var(--font-display); letter-spacing: -.04em; }
.coming-soon { padding: 11px 13px; border: 1px solid var(--color-rule-dark); color: var(--color-ink-muted-on-dark); font-size: 8px; font-weight: 750; letter-spacing: .13em; white-space: nowrap; }

.growth-approach { padding: clamp(84px, 10vw, 136px) max(36px, calc((100% - var(--content)) / 2)); color: var(--color-ink-on-dark); background: var(--color-forest-soft); }
.growth-approach-head { width: min(100%, var(--content)); margin: 0 auto 64px; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(220px, .55fr); align-items: end; gap: 35px 80px; }
.growth-approach-head .section-label { grid-column: 1 / -1; margin: 0 0 -14px; }
.growth-approach-head h2 { margin: 0; font: 700 clamp(2.7rem, 5.5vw, 5.3rem)/1 var(--font-display); letter-spacing: -.075em; overflow-wrap: anywhere; }
.growth-approach-head h2 span { color: var(--color-accent); }
.growth-approach-head > p:last-child { max-width: 380px; margin: 0 0 5px; color: var(--color-ink-muted-on-dark); font-size: 14px; line-height: 1.8; }
.journey-rail { position: relative; width: min(100%, var(--content)); margin: auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.journey-track { position: absolute; top: 9px; right: 5px; left: 5px; height: 1px; background: var(--color-accent-rule); display: flex; justify-content: space-between; }
.journey-track span { width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: var(--color-accent); }
.journey-step { position: relative; padding-top: 38px; }
.step-number { color: var(--color-ink-faint-on-dark); font: 600 9px var(--font-display); letter-spacing: .1em; }
.journey-step h3 { margin: 13px 0 8px; color: var(--color-ink-on-dark); font: 650 clamp(17px, 1.7vw, 21px)/1.2 var(--font-display); letter-spacing: -.04em; }
.journey-step p { max-width: 220px; margin: 0; color: var(--color-ink-muted-on-dark); font-size: 11px; line-height: 1.7; }

.about-section { width: min(100% - 72px, var(--content-wide)); margin: auto; padding: clamp(88px, 10vw, 136px) 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); align-items: center; gap: clamp(48px, 8vw, 118px); }
.about-image { position: relative; min-width: 0; margin: 0; aspect-ratio: 1.15; overflow: hidden; color: var(--color-ink-on-dark); background: var(--color-forest); }
.about-image::after { position: absolute; inset: 0; background: linear-gradient(0deg, var(--color-overlay), transparent 58%); content: ""; }
.about-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 700ms var(--ease-out); }
.about-image:hover img { transform: scale(1.02); }
.about-image figcaption { position: absolute; z-index: 1; bottom: 28px; left: 28px; display: flex; flex-direction: column; gap: 8px; }
.about-image figcaption span { color: var(--color-accent); font-size: 8px; font-weight: 750; letter-spacing: .15em; }
.about-image figcaption strong { font: 650 clamp(21px, 2.5vw, 30px)/1.16 var(--font-display); letter-spacing: -.045em; }
.about-copy { max-width: 540px; }
.about-copy .section-label { margin-bottom: 19px; }
.about-copy h2 { margin: 0 0 22px; font: 700 clamp(2.8rem, 5.3vw, 5rem)/1 var(--font-display); letter-spacing: -.075em; overflow-wrap: anywhere; }
.about-copy h2 span { color: var(--color-forest-soft); }
.about-copy > p:not(.section-label) { max-width: 500px; margin: 0 0 22px; color: var(--color-ink-muted); font-size: 15px; line-height: 1.8; }
.about-copy .text-link { color: var(--color-ink); }

.closing { position: relative; padding: clamp(72px, 9vw, 110px) 24px; overflow: hidden; color: var(--color-ink-on-dark); background: var(--color-forest); text-align: center; }
.closing::before { position: absolute; top: -130px; right: 5%; width: 400px; height: 400px; border: 1px solid var(--color-rule-dark); border-radius: 50%; box-shadow: 0 0 0 40px color-mix(in oklch, var(--color-rule-dark) 28%, transparent), 0 0 0 80px color-mix(in oklch, var(--color-rule-dark) 16%, transparent); content: ""; pointer-events: none; }
.closing .section-label { position: relative; margin-bottom: 16px; color: var(--color-accent); }
.closing h2 { position: relative; margin: 0 0 16px; font: 700 clamp(2.8rem, 5.8vw, 5.4rem)/1.02 var(--font-display); letter-spacing: -.075em; overflow-wrap: anywhere; }
.closing h2 span { color: var(--color-accent); }
.closing > p:not(.section-label) { position: relative; max-width: 410px; margin: 0 auto 25px; color: var(--color-ink-muted-on-dark); font-size: 14px; }
.closing .button { position: relative; }
.site-footer { position: relative; isolation: isolate; width: min(100% - 72px, var(--content-wide)); min-height: 100px; margin: auto; display: grid; grid-template-columns: 170px minmax(0, 1fr) auto auto; align-items: center; gap: 24px; color: var(--color-ink-on-dark); background: transparent; }
.site-footer::before { position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%); background: var(--color-forest); content: ""; }
.footer-brand { width: auto; }
.site-footer > p { margin: 0; color: var(--color-ink-muted-on-dark); font-size: 11px; }
.site-footer nav { display: flex; align-items: center; gap: 18px; }
.site-footer nav a { display: inline-flex; align-items: baseline; gap: 5px; color: var(--color-ink-muted-on-dark); font-size: 10px; font-weight: 650; white-space: nowrap; }
.site-footer nav a:hover { color: var(--color-accent); }
.site-footer nav span { color: var(--color-ink-faint-on-dark); font-size: 8px; }
.site-footer > small { color: var(--color-ink-faint-on-dark); font-size: 9px; white-space: nowrap; }

.js [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity 650ms var(--ease-out), transform 650ms var(--ease-out); }
.js [data-reveal].is-visible { opacity: 1; transform: translateY(0); }
.js .hero-visual[data-reveal] { transform: translateY(12px) scale(.985); }
.js .hero-visual[data-reveal].is-visible { transform: translateY(0) scale(1); }
.js .is-visible .route-line { animation: route-draw 1.35s 350ms var(--ease-out) forwards; }
.js .is-visible .route-stop { animation: stop-appear 300ms ease-out forwards; }
.js .is-visible .stop-one { animation-delay: 500ms; }
.js .is-visible .stop-two { animation-delay: 900ms; }
.js .is-visible .stop-three { animation-delay: 1.4s; }
@keyframes route-draw { to { stroke-dashoffset: 0; } }
@keyframes stop-appear { to { opacity: 1; } }

@media (max-width: 1000px) {
  .header-inner, .hero, .about-section, .site-footer { width: min(100% - 48px, var(--content-wide)); }
  .hero { min-height: 620px; gap: 38px; }
  .hero h1 { font-size: clamp(3rem, 6.5vw, 5.2rem); }
  .service-grid { gap: 14px; }
  .service-content { padding-inline: 22px; }
  .growth-art-title { font-size: clamp(2rem, 4.3vw, 3.2rem); }
  .site-footer { grid-template-columns: 170px minmax(0, 1fr) auto auto; gap: 14px; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 72px; }
  .header-inner { width: min(100% - 36px, var(--content-wide)); min-height: 70px; }
  .brand { width: auto; }
  .brand-mark { width: 40px; height: 40px; flex-basis: 40px; }
  .brand-copy strong { font-size: 19px; }
  .brand-copy small { font-size: 8px; }
  .menu-toggle { width: 44px; height: 44px; border: 1px solid var(--color-rule-dark); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: var(--color-ink-on-dark); background: transparent; cursor: pointer; }
  .menu-toggle span { width: 17px; height: 1px; background: currentColor; transition: transform 180ms ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .primary-nav { position: absolute; top: calc(100% + 1px); right: 0; left: 0; padding: 12px 18px 20px; border-bottom: 1px solid var(--color-rule-dark); display: none; align-items: stretch; flex-direction: column; gap: 0; background: var(--color-forest); }
  .primary-nav.is-open { display: flex; }
  .primary-nav > a:not(.nav-cta) { min-height: 48px; border-bottom: 1px solid var(--color-rule-dark); display: flex; align-items: center; font-size: 13px; white-space: nowrap; }
  .nav-cta { min-height: 46px; margin-top: 14px; justify-content: space-between; white-space: nowrap; }
  .hero { width: min(100% - 36px, var(--content-wide)); min-height: auto; padding: 58px 0 68px; grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .hero h1 { max-width: 610px; font-size: clamp(3rem, 10.4vw, 5rem); }
  .hero-lede { max-width: 580px; font-size: 15px; }
  .hero-path-links { margin-top: 27px; }
  .hero-visual { width: 100%; aspect-ratio: 1.22; }
  .hero-visual > img { object-position: 61% center; }
  .businesses-section { padding: 72px 18px 60px; }
  .section-head { margin-bottom: 34px; }
  .section-head-grid { grid-template-columns: minmax(0, 1fr); gap: 17px; }
  .section-head h2 { font-size: clamp(2.6rem, 9vw, 4.1rem); }
  .section-head-grid > p { max-width: 560px; font-size: 14px; }
  .service-grid { grid-template-columns: minmax(0, 1fr); gap: 15px; }
  .service-hr, .service-growth { margin: 0; }
  .service-photo, .growth-art { flex-basis: clamp(210px, 60vw, 320px); }
  .service-photo, .growth-art { min-height: 0; height: clamp(210px, 60vw, 320px); }
  .growth-art-title { top: 19%; font-size: clamp(2.3rem, 10vw, 4.2rem); }
  .service-content { padding: 23px 20px 26px; }
  .service-content h3 { font-size: clamp(2.3rem, 9vw, 3.3rem); }
  .service-content > p:not(.service-kicker) { font-size: 14px; }
  .service-list li { font-size: 12px; }
  .service-link { min-height: 46px; font-size: 12px; }
  .book-strip { margin-top: 35px; grid-template-columns: 48px minmax(0, 1fr) auto; gap: 12px; }
  .book-index { width: 40px; height: 40px; }
  .coming-soon { padding: 10px 9px; font-size: 7px; }
  .growth-approach { padding: 74px 18px; }
  .growth-approach-head { margin-bottom: 42px; grid-template-columns: minmax(0, 1fr); gap: 17px; }
  .growth-approach-head .section-label { grid-column: auto; margin: 0; }
  .growth-approach-head h2 { font-size: clamp(2.7rem, 9.5vw, 4.6rem); }
  .growth-approach-head > p:last-child { max-width: 540px; font-size: 13px; }
  .journey-rail { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px 22px; }
  .journey-track { display: none; }
  .journey-step { padding: 13px 0 0 16px; border-top: 1px solid var(--color-accent-rule); }
  .journey-step::before { position: absolute; top: -4px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--color-accent); content: ""; }
  .journey-step h3 { font-size: 18px; }
  .about-section { width: min(100% - 36px, var(--content-wide)); padding: 76px 0; grid-template-columns: minmax(0, 1fr); gap: 31px; }
  .about-image { aspect-ratio: 1.22; }
  .about-copy { max-width: 620px; }
  .about-copy h2 { font-size: clamp(2.8rem, 10vw, 4.5rem); }
  .about-copy > p:not(.section-label) { font-size: 14px; }
  .closing { padding: 72px 18px; }
  .closing h2 { font-size: clamp(2.7rem, 9.6vw, 4.6rem); }
  .site-footer { width: min(100% - 36px, var(--content-wide)); padding: 24px 0; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 16px; }
  .footer-brand { width: auto; }
  .site-footer > p { grid-column: 1 / -1; grid-row: 2; }
  .site-footer nav { grid-column: 1 / -1; grid-row: 3; flex-wrap: wrap; gap: 12px 18px; }
  .site-footer > small { grid-column: 2; grid-row: 1; }
}
@media (max-width: 390px) {
  .hero { padding-top: 48px; }
  .hero h1 { font-size: clamp(2.65rem, 11vw, 3rem); }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 5px; }
  .hero-path-links a { grid-template-columns: 19px minmax(0, 1fr); row-gap: 2px; font-size: 9px; }
  .hero-path-links b { grid-column: 2; }
  .growth-art-title { font-size: clamp(2rem, 10vw, 2.6rem); }
  .growth-art-caption { right: 12px; bottom: 13px; font-size: 5px; }
  .book-strip { grid-template-columns: 42px minmax(0, 1fr); }
  .book-strip .coming-soon { grid-column: 2; justify-self: start; }
  .book-index { width: 36px; height: 36px; }
  .journey-rail { column-gap: 14px; }
  .journey-step p { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}






/* Parent brand clarity refresh · Hallmark: P5 H5 E4 S5 R5 V4
   Existing forest/lime system · balanced service directory, shared method, direct enquiry */
.parent-refresh h1,.parent-refresh h2,.parent-refresh h3{font-style:normal;min-width:0;overflow-wrap:anywhere}
.parent-refresh .hero{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:64px;padding-block:76px;min-height:0}
.parent-refresh .hero h1{font-size:clamp(3.3rem,5.4vw,5.3rem);line-height:1.04;letter-spacing:-.065em}
.parent-category{font-size:18px;font-weight:700;color:var(--color-forest);margin-bottom:16px;letter-spacing:-.025em}
.parent-refresh .hero-lede{font-size:16px;max-width:550px}
.parent-refresh .hero .eyebrow{font-size:10px}
.parent-wrap{width:min(100% - 72px,var(--content));margin-inline:auto}
.parent-hero-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;border-top:1px solid var(--color-rule);margin-top:32px;padding-top:20px}
.parent-hero-links a{display:grid;gap:7px;min-width:0;align-content:start}
.parent-hero-links span{font-size:9px;letter-spacing:.08em;color:var(--color-ink-muted)}
.parent-hero-links strong{font-size:12px;font-weight:700;white-space:nowrap}
.parent-hero-links a:hover strong{text-decoration:underline;text-underline-offset:5px}
.parent-visual{display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;min-width:0;height:600px}
.parent-visual figure{position:relative;margin:0;overflow:clip;background:var(--color-forest)}
.parent-visual figure::after{position:absolute;inset:30% 0 0;background:linear-gradient(transparent,var(--color-overlay));content:""}
.parent-visual figure>img{width:100%;height:100%;object-fit:cover}
.parent-visual-people>img{object-position:50% 42%}
.parent-visual-growth>img{object-position:50% 45%}
.parent-visual figcaption{position:absolute;z-index:1;left:24px;bottom:20px;color:var(--color-ink-on-dark);display:grid;gap:7px}
.parent-visual figcaption>span{font-size:9px;font-weight:700;letter-spacing:.12em;color:var(--color-accent)}
.parent-visual figcaption>strong{font:650 26px/1.15 var(--font-display);letter-spacing:-.04em}
.parent-visual figure>b{position:absolute;z-index:1;right:20px;top:18px;color:var(--color-ink-on-dark);font-size:10px}
.parent-visual-signature{display:flex;align-items:center;gap:12px;padding:15px 20px;background:var(--color-forest);color:var(--color-ink-on-dark);font-size:12px;font-weight:600}
.parent-refresh .section-head h2{font-size:clamp(2.8rem,4.7vw,4.5rem);line-height:1.05}
.parent-refresh .businesses-section{padding-block:88px}
.parent-refresh .service-content{padding:32px;gap:0}
.parent-refresh .service-content h3{font-size:38px;margin:18px 0 18px}
.parent-refresh .service-content>.parent-card-promise{font:650 23px/1.3 var(--font-display);letter-spacing:-.04em;color:var(--color-ink);margin:0 0 15px}
.parent-refresh .service-growth .service-content>.parent-card-promise{color:var(--color-ink-on-dark)}
.parent-refresh .service-content>p{font-size:14px}
.parent-refresh .service-list{margin-top:auto}
.parent-refresh .service-list li{font-size:12px;min-height:42px;display:flex;align-items:center}
.parent-refresh .service-list li::before{top:20px}
.parent-refresh .service-content>.parent-engagement{font-size:12px;margin:0 0 16px}
.parent-refresh .service-kicker{font-size:9px}
.parent-refresh .service-link{font-size:13px}
.parent-unsure{width:min(100%,var(--content));margin:36px auto 0;padding:28px 0 0;border-top:1px solid var(--color-rule-dark);display:flex;align-items:center;justify-content:space-between;gap:24px}
.parent-unsure p{display:grid;gap:6px;margin:0}
.parent-unsure strong{font-size:16px;font-weight:600}
.parent-unsure p>span{font-size:13px;color:var(--color-ink-muted-on-dark)}
.parent-unsure .text-link,.parent-unsure .text-link>span{color:var(--color-accent);white-space:nowrap}
.parent-connection{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:80px;padding-block:88px}
.parent-connection h2,.parent-explore h2,.parent-faq h2{font:700 clamp(2.6rem,4.2vw,4rem)/1.08 var(--font-display);letter-spacing:-.06em;margin-bottom:0}
.parent-connection>div:last-child{padding-top:28px}
.parent-connection p:not(.section-label){font-size:16px;line-height:1.8;color:var(--color-ink-muted)}
.parent-refresh .growth-approach{padding-block:88px}
.parent-refresh .growth-approach-head h2{font-size:clamp(2.7rem,4.8vw,4.5rem)}
.parent-method{list-style:none;padding:0}
.parent-method .journey-step{border-top:1px solid var(--color-accent-rule);padding:24px 0 0}
.parent-method .journey-step h3{font-size:21px;line-height:1.3;margin-top:18px}
.parent-method .journey-step p{font-size:13px;max-width:none}
.parent-method .journey-step small{display:block;font-size:11px;color:var(--color-accent);margin-top:22px}
.parent-explore{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:80px;padding-block:88px}
.parent-explore>div>p:not(.section-label){margin-top:24px;color:var(--color-ink-muted);font-size:15px}
.parent-explore-links{display:grid}
.parent-explore-links>a{display:block;padding:28px 0;border-top:1px solid var(--color-rule)}
.parent-explore-links>a:last-child{border-bottom:1px solid var(--color-rule)}
.parent-explore-links>a>span{font-size:10px;font-weight:700;letter-spacing:.1em;color:var(--color-ink-muted)}
.parent-explore-links strong{display:block;font:650 26px/1.25 var(--font-display);letter-spacing:-.045em;margin:12px 0}
.parent-explore-links p{font-size:14px;color:var(--color-ink-muted);max-width:500px;margin-bottom:16px}
.parent-explore-links b{font-size:12px;font-weight:700;white-space:nowrap}
.parent-explore-links a:hover b{text-decoration:underline;text-underline-offset:5px}
.parent-faq{padding-block:80px;background:var(--color-paper-shade)}
.parent-faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:80px}
.parent-faq details{border-bottom:1px solid var(--color-rule)}
.parent-faq details:first-child{border-top:1px solid var(--color-rule)}
.parent-faq summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;list-style:none;cursor:pointer;font-weight:600;font-size:15px;line-height:1.5}
.parent-faq summary::-webkit-details-marker{display:none}
.parent-faq summary>span{font-size:23px;line-height:1;flex-shrink:0;font-weight:400}
.parent-faq details[open] summary>span{transform:rotate(45deg)}
.parent-faq details p{font-size:14px;line-height:1.8;max-width:560px;padding:0 28px 24px 0;margin:0;color:var(--color-ink-muted)}
.parent-faq summary:focus-visible{outline:2px solid var(--color-forest);outline-offset:4px}
.parent-contact{padding-block:88px;background:var(--color-forest);color:var(--color-ink-on-dark)}
.parent-contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:96px}
.parent-contact .section-label{color:var(--color-accent)}
.parent-contact h2{font:700 clamp(2.8rem,5.2vw,5rem)/1.06 var(--font-display);letter-spacing:-.065em;margin-bottom:24px}
.parent-contact h2>span{color:var(--color-accent)}
.parent-contact-grid>div>p:not(.section-label){color:var(--color-ink-muted-on-dark);font-size:16px;max-width:460px;line-height:1.8}
.parent-contact-details{margin-top:32px;display:flex;flex-direction:column;align-items:start;gap:14px;font-size:15px}
.parent-contact-details a{white-space:nowrap}
.parent-contact-details a:hover{text-decoration:underline;text-underline-offset:4px}
.parent-enquiry{display:grid;gap:19px}
.parent-enquiry label{display:grid;gap:9px;font-size:12px;font-weight:600}
.parent-enquiry label>span{display:contents;color:var(--color-ink-muted-on-dark)}
.parent-enquiry input,.parent-enquiry textarea,.parent-enquiry select{min-width:0;width:100%;padding:13px 14px;min-height:48px;border:1px solid var(--color-rule-dark);border-radius:0;background:var(--color-forest-raised);color:var(--color-ink-on-dark);font:400 14px/1.5 var(--font-body);color-scheme:dark}
.parent-enquiry textarea{resize:vertical;min-height:100px;max-height:300px}
.parent-enquiry input::placeholder,.parent-enquiry textarea::placeholder{color:var(--color-ink-faint-on-dark)}
.parent-enquiry input:focus-visible,.parent-enquiry textarea:focus-visible,.parent-enquiry select:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}
.parent-enquiry button{border:0;cursor:pointer;justify-self:start}
.parent-form-note{font-size:11px;color:var(--color-ink-muted-on-dark);margin:0;max-width:420px;line-height:1.7}
.parent-enquiry-status{font-size:13px;padding:16px;border:1px solid var(--color-accent-rule);margin:0}
.parent-enquiry-status a{text-decoration:underline;text-underline-offset:3px;color:var(--color-accent)}
.parent-footer{padding-block:36px 20px;background:var(--color-forest);color:var(--color-ink-on-dark);border-top:1px solid var(--color-rule-dark)}
.parent-footer-top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:56px;align-items:start}
.parent-footer-top>p{margin:0;font-size:13px;color:var(--color-ink-muted-on-dark)}
.parent-footer nav{display:grid;gap:12px;font-size:12px}
.parent-footer nav>a{white-space:nowrap}
.parent-footer nav>span{color:var(--color-ink-muted-on-dark)}
.parent-footer nav small{font-size:9px;margin-left:8px;color:var(--color-ink-faint-on-dark)}
.parent-footer-bottom{display:flex;align-items:center;gap:28px;border-top:1px solid var(--color-rule-dark);margin-top:32px;padding-top:20px;font-size:11px;color:var(--color-ink-muted-on-dark)}
.parent-footer-bottom small{font-size:11px;margin-right:auto}
.parent-footer a:hover{color:var(--color-accent)}
.parent-refresh button:disabled{opacity:.5;cursor:not-allowed}
.parent-refresh .button:active,.parent-refresh .nav-cta:active{transform:translateY(1px)}
@media(max-width:1050px){
.parent-refresh .hero{gap:36px;padding-block:60px}
.parent-refresh .hero h1{font-size:clamp(3rem,5.5vw,4.4rem)}
.parent-visual{height:560px}
.parent-category{font-size:16px}
.parent-hero-links{grid-template-columns:minmax(0,1fr);gap:14px}
.parent-hero-links a{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.parent-hero-links strong{font-size:11px}
.parent-refresh .service-content{padding:26px}
.parent-connection,.parent-explore,.parent-faq-grid,.parent-contact-grid{gap:44px}
.parent-footer-top{gap:28px}
}
@media(max-width:760px){
.parent-wrap{width:calc(100% - 36px)}
.parent-refresh .hero{grid-template-columns:minmax(0,1fr);padding-block:44px 56px;gap:32px}
.parent-refresh .hero h1{font-size:clamp(3rem,9vw,4.7rem)}
.parent-refresh .hero h1 em br{display:none}
.parent-refresh .hero-lede{font-size:15px}
.parent-category{font-size:17px;margin-bottom:15px}
.parent-hero-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.parent-hero-links a{grid-template-columns:minmax(0,1fr);gap:6px}
.parent-hero-links strong{font-size:11px}
.parent-hero-links span{font-size:8px}
.parent-visual{height:560px}
.parent-refresh .businesses-section{padding-block:64px}
.parent-refresh .service-content{padding:26px 22px}
.parent-refresh .service-content h3{font-size:34px}
.parent-refresh .service-content>.parent-card-promise{font-size:23px}
.parent-refresh .service-list{margin-top:0}
.parent-unsure{align-items:start;flex-direction:column;gap:12px}
.parent-unsure strong{font-size:15px}
.parent-unsure p>span{font-size:13px}
.parent-connection,.parent-explore,.parent-faq-grid,.parent-contact-grid{grid-template-columns:minmax(0,1fr);gap:30px}
.parent-connection,.parent-explore{padding-block:64px}
.parent-connection>div:last-child{padding:0}
.parent-connection h2,.parent-explore h2,.parent-faq h2{font-size:clamp(2.6rem,8vw,3.7rem)}
.parent-connection p:not(.section-label){font-size:15px}
.parent-refresh .growth-approach{padding-block:64px}
.parent-method .journey-step{padding:18px 0 0}
.parent-method .journey-step::before{display:none}
.parent-method .journey-step h3{font-size:20px}
.parent-method .journey-step p{font-size:13px}
.parent-method .journey-step small{margin-top:14px}
.parent-explore-links strong{font-size:24px}
.parent-faq{padding-block:64px}
.parent-contact{padding-block:64px}
.parent-contact h2{font-size:clamp(2.8rem,9vw,4.5rem)}
.parent-contact-grid>div>p:not(.section-label){font-size:15px}
.parent-footer-top{grid-template-columns:minmax(0,1fr);gap:24px}
.parent-footer nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}
.parent-footer nav>span{grid-column:1/-1}
.parent-footer-bottom{gap:16px;flex-wrap:wrap;font-size:10px}
.parent-footer-bottom small{flex-basis:100%}
}
@media(max-width:390px){
.parent-refresh .hero h1{font-size:2.9rem}
.parent-category{font-size:16px}
.parent-visual{height:500px}
.parent-visual figcaption{left:20px}
.parent-visual figcaption>strong{font-size:23px}
.parent-refresh .hero .eyebrow{font-size:8px;letter-spacing:.1em}
.parent-method{grid-template-columns:minmax(0,1fr)}
.parent-method .journey-step p{max-width:100%;font-size:14px}
.parent-refresh .service-content h3{font-size:32px}
.parent-refresh .service-content>.parent-card-promise{font-size:22px}
}
/* Keep navigation and service paths usable on compact screens. */
@media(max-width:1050px){
.parent-refresh .menu-toggle{width:44px;height:44px;border:1px solid var(--color-rule-dark);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--color-ink-on-dark);background:transparent;cursor:pointer;flex-shrink:0}
.parent-refresh .menu-toggle span{width:17px;height:1px;background:currentColor;transition:transform 180ms var(--ease-out)}
.parent-refresh .menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
.parent-refresh .menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.parent-refresh .primary-nav{position:absolute;top:calc(100% + 1px);right:0;left:0;padding:12px 24px 20px;border-bottom:1px solid var(--color-rule-dark);display:none;align-items:stretch;flex-direction:column;gap:0;background:var(--color-forest)}
.parent-refresh .primary-nav.is-open{display:flex}
.parent-refresh .primary-nav>a:not(.nav-cta){min-height:48px;border-bottom:1px solid var(--color-rule-dark);display:flex;align-items:center;font-size:13px;white-space:nowrap}
.parent-refresh .nav-cta{min-height:46px;margin-top:14px;justify-content:space-between;white-space:nowrap}
}
@media(min-width:761px) and (max-width:900px){
.parent-refresh .section-head-grid,.parent-refresh .growth-approach-head{grid-template-columns:minmax(0,1fr);gap:20px}
.parent-refresh .parent-method{grid-template-columns:repeat(2,minmax(0,1fr))}
.parent-refresh .hero{grid-template-columns:minmax(0,1fr);gap:36px}
.parent-refresh .hero h1{font-size:4rem}
.parent-refresh .hero h1 em br{display:none}
.parent-visual{height:540px}
.parent-hero-links{grid-template-columns:repeat(2,minmax(0,1fr))}
.parent-hero-links a{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:390px){
.parent-hero-links{grid-template-columns:minmax(0,1fr);gap:18px}
.parent-hero-links a{grid-template-columns:minmax(0,1fr)}
.parent-enquiry .button{font-size:12px;gap:12px;padding-inline:18px;white-space:nowrap}
}
