:root {
    --aj-ink: #071b2e;
    --aj-ink-2: #0c2944;
    --aj-blue: #0759a6;
    --aj-sky: #4db7e5;
    --aj-accent: #f0b429;
    --aj-accent-soft: #f8d67d;
    --aj-paper: #f7f5ef;
    --aj-white: #fff;
    --aj-line: rgba(7, 27, 46, .14);
    --aj-muted: #5e6e7c;
    --aj-shell: min(1280px, calc(100% - 48px));
    --aj-display: "Arial Narrow", "Avenir Next Condensed", "Roboto Condensed", Impact, sans-serif;
    --aj-body: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --aj-ease: cubic-bezier(.16, 1, .3, 1);
    --aj-shadow: 0 30px 80px rgba(7, 27, 46, .12);
}
body { --aj-admin-bar-offset: 0px; }
body.admin-bar { --aj-admin-bar-offset: 32px; }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
html.aj-has-stacked-nav { scroll-padding-top: calc(var(--aj-sticky-header-height, 112px) + 64px); }
html.aj-has-stacked-nav:has(body.admin-bar) { scroll-padding-top: calc(var(--aj-sticky-header-height, 112px) + 96px); }
body { margin: 0; background: var(--aj-white); color: var(--aj-ink); font-family: var(--aj-body); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.aj-menu-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--aj-display); font-weight: 800; letter-spacing: -.035em; line-height: .98; text-wrap: balance; }
h1 { font-size: clamp(3.2rem, 8vw, 7.8rem); }
h2 { font-size: clamp(2.5rem, 5vw, 5.25rem); }
h3 { font-size: clamp(1.35rem, 2.2vw, 2.2rem); }
::selection { background: var(--aj-accent); color: var(--aj-ink); }
:focus-visible { outline: 3px solid var(--aj-accent); outline-offset: 4px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.aj-shell { width: var(--aj-shell); margin-inline: auto; }
.aj-skip-link { position: fixed; z-index: 99999; top: 12px; left: 12px; padding: 12px 18px; background: var(--aj-accent); color: var(--aj-ink); transform: translateY(-150%); transition: transform .2s; }
.aj-skip-link:focus { transform: translateY(0); }
.aj-icon { width: 1.15em; height: 1.15em; flex: 0 0 auto; }

.aj-progress { position: fixed; z-index: 10000; top: 0; left: 0; width: 100%; height: 3px; pointer-events: none; }
.aj-progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--aj-accent), var(--aj-sky)); }
.aj-site-header { position: sticky; z-index: 1000; top: var(--aj-admin-bar-offset); background: rgba(255,255,255,.96); box-shadow: 0 1px 0 var(--aj-line); transition: transform .45s var(--aj-ease), background .3s; }
body.admin-bar .aj-site-header { margin-top: calc(-1 * var(--aj-admin-bar-offset)); }
.aj-site-header.is-hidden { transform: translateY(-100%); }
.aj-has-stacked-nav .aj-site-header.is-hidden { transform: none; }
.aj-utility { background: var(--aj-ink); color: rgba(255,255,255,.72); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.aj-utility .aj-shell { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.aj-utility p { margin: 0; }
.aj-utility nav { display: flex; gap: 24px; }
.aj-utility a { transition: color .2s; }
.aj-utility a:hover { color: var(--aj-accent); }
.aj-nav-wrap { min-height: 82px; display: flex; align-items: center; }
.aj-nav { display: flex; align-items: center; gap: 32px; }
.aj-logo { width: 202px; flex: 0 0 auto; transition: transform .35s var(--aj-ease); }
.aj-logo:hover { transform: scale(1.02); }
.aj-desktop-nav { display: flex; align-items: stretch; justify-content: center; gap: 2px; margin-left: auto; height: 82px; }
.aj-desktop-nav > a, .aj-nav-group > a { display: flex; align-items: center; gap: 6px; padding: 0 14px; font-size: .78rem; font-weight: 750; letter-spacing: .075em; text-transform: uppercase; transition: color .25s; }
.aj-desktop-nav > a::after, .aj-nav-group > a::after { content: ""; position: absolute; bottom: 0; left: 14px; right: 14px; height: 3px; background: var(--aj-accent); transform: scaleX(0); transform-origin: right; transition: transform .35s var(--aj-ease); }
.aj-desktop-nav > a, .aj-nav-group { position: relative; }
.aj-desktop-nav > a:hover::after, .aj-nav-group:hover > a::after { transform: scaleX(1); transform-origin: left; }
.aj-nav-group > a span { color: var(--aj-blue); }
.aj-mega { position: absolute; top: calc(100% - 1px); left: 50%; width: 620px; padding: 28px; background: var(--aj-white); border: 1px solid var(--aj-line); box-shadow: var(--aj-shadow); display: grid; grid-template-columns: 1fr 1fr; gap: 28px; opacity: 0; visibility: hidden; transform: translate(-50%, 12px); transition: opacity .25s, transform .35s var(--aj-ease), visibility .25s; }
.aj-nav-group:hover .aj-mega, .aj-nav-group:focus-within .aj-mega { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.aj-mega div { display: grid; align-content: start; }
.aj-mega p { margin: 0 0 10px; color: var(--aj-blue); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.aj-mega div a { padding: 9px 0; border-bottom: 1px solid var(--aj-line); font-size: .88rem; font-weight: 650; transition: color .2s, padding .2s; }
.aj-mega div a:hover { padding-left: 7px; color: var(--aj-blue); }
.aj-mega__all { grid-column: 1/-1; display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; background: var(--aj-ink); color: var(--aj-white); font-weight: 750; }
.aj-mega--areas { left: auto; right: -110px; width: 360px; grid-template-columns: 1fr 1fr; transform: translate(0, 12px); }
.aj-nav-group:hover .aj-mega--areas, .aj-nav-group:focus-within .aj-mega--areas { transform: translate(0, 0); }
.aj-mega--areas > a { padding: 10px; background: var(--aj-paper); font-weight: 700; transition: background .2s; }
.aj-mega--areas > a:hover { background: var(--aj-accent); }
.aj-header-cta { display: inline-flex; align-items: center; gap: 12px; padding: 14px 18px; background: var(--aj-accent); font-size: .75rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; transition: background .25s, transform .25s; white-space: nowrap; }
.aj-header-cta:hover { background: var(--aj-accent-soft); transform: translateY(-2px); }
.aj-menu-toggle { display: none; border: 0; background: transparent; align-items: center; gap: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.aj-mobile-menu { position: fixed; z-index: 9999; inset: 0; height: 100dvh; background: var(--aj-ink); color: var(--aj-white); overflow-y: auto; overscroll-behavior: contain; padding: env(safe-area-inset-top) 24px env(safe-area-inset-bottom); }
.aj-mobile-menu[hidden] { display: none; }
.aj-mobile-menu:not(.is-open) { opacity: 0; transform: translateY(-12px); }
.aj-mobile-menu.is-open { opacity: 1; transform: translateY(0); transition: opacity .2s ease, transform .45s var(--aj-ease); }
.aj-mobile-menu nav > * { opacity: 0; transform: translateY(18px); }
.aj-mobile-menu.is-open nav > * { opacity: 1; transform: translateY(0); transition: opacity .45s var(--aj-ease), transform .45s var(--aj-ease); }
.aj-mobile-menu.is-open nav > *:nth-child(1) { transition-delay: .03s; }
.aj-mobile-menu.is-open nav > *:nth-child(2) { transition-delay: .07s; }
.aj-mobile-menu.is-open nav > *:nth-child(3) { transition-delay: .11s; }
.aj-mobile-menu.is-open nav > *:nth-child(4) { transition-delay: .15s; }
.aj-mobile-menu.is-open nav > *:nth-child(5) { transition-delay: .19s; }
.aj-mobile-menu.is-open nav > *:nth-child(6) { transition-delay: .23s; }
.aj-mobile-menu.is-open nav > *:nth-child(7) { transition-delay: .27s; }
.aj-mobile-menu__top { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; padding: 22px 0 16px; background: var(--aj-ink); border-bottom: 1px solid rgba(255,255,255,.12); color: var(--aj-accent); font-size: .72rem; letter-spacing: .15em; text-transform: uppercase; }
.aj-mobile-menu__top button { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; background: transparent; color: var(--aj-white); }
.aj-mobile-menu nav { display: grid; padding: 10px 0 28px; }
.aj-mobile-menu nav > a, .aj-mobile-menu summary { display: flex; align-items: center; gap: 18px; min-height: 58px; border-bottom: 1px solid rgba(255,255,255,.1); font-family: var(--aj-display); font-size: clamp(1.55rem, 7vw, 2.4rem); font-weight: 800; line-height: 1; list-style: none; }
.aj-mobile-menu summary::-webkit-details-marker { display: none; }
.aj-mobile-menu nav span { width: 24px; color: var(--aj-accent); font-family: var(--aj-body); font-size: .65rem; letter-spacing: .1em; }
.aj-mobile-menu summary b { margin-left: auto; color: var(--aj-accent); }
.aj-mobile-menu details[open] summary b { transform: rotate(45deg); }
.aj-mobile-menu details div { display: grid; padding: 10px 0 14px 42px; }
.aj-mobile-menu details div a { padding: 9px 0; color: rgba(255,255,255,.68); font-size: .92rem; }
.aj-mobile-menu__footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 18px 0 28px; border-top: 1px solid rgba(255,255,255,.12); }
.aj-mobile-menu__footer a { display: flex; align-items: center; gap: 8px; color: var(--aj-accent); font-weight: 800; }
.aj-mobile-menu__footer p { margin: 0; color: rgba(255,255,255,.5); font-size: .75rem; }

.aj-button { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 56px; padding: 0 24px; overflow: hidden; font-size: .76rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; transition: transform .3s var(--aj-ease), box-shadow .3s; }
.aj-button::before { content: ""; position: absolute; inset: 0; transform: translateX(-102%); transition: transform .45s var(--aj-ease); background: var(--aj-white); }
.aj-button span, .aj-button svg { position: relative; z-index: 1; }
.aj-button:hover::before { transform: translateX(0); }
.aj-button:hover { transform: translateY(-3px); box-shadow: 0 15px 35px rgba(0,0,0,.18); }
.aj-button--primary { background: var(--aj-accent); color: var(--aj-ink); }
.aj-button--primary::before { background: var(--aj-white); }
.aj-button--secondary { background: var(--aj-ink); color: var(--aj-white); }
.aj-button--secondary::before { background: var(--aj-blue); }
.aj-text-link { display: inline-flex; align-items: center; gap: 10px; width: fit-content; padding-bottom: 4px; border-bottom: 1px solid currentColor; color: var(--aj-blue); font-size: .78rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; transition: gap .3s, color .3s; }
.aj-text-link:hover { gap: 16px; color: var(--aj-ink); }
.aj-text-link--light { color: var(--aj-white); }
.aj-text-link--light:hover { color: var(--aj-accent); }
.aj-eyebrow { margin: 0 0 18px; color: var(--aj-blue); font-size: .72rem; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }
.aj-hero-kicker { display: flex; align-items: center; gap: 12px; margin: 0 0 24px; color: var(--aj-accent); font-size: .72rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.aj-hero-kicker span { width: 34px; height: 2px; background: currentColor; }
.aj-section { position: relative; padding: clamp(88px, 10vw, 150px) 0; }
.aj-section--warm { background: var(--aj-paper); }
.aj-section--ink { background: var(--aj-ink); color: var(--aj-white); }
.aj-section-heading { max-width: 800px; margin-bottom: 58px; }
.aj-section-heading h2 { margin-bottom: 24px; max-width: 760px; }
.aj-section-heading > p:last-child { max-width: 680px; color: var(--aj-muted); font-size: 1.05rem; }
.aj-section-heading--light .aj-eyebrow { color: var(--aj-accent); }
.aj-section-heading--light > p:last-child { color: rgba(255,255,255,.65); }
.aj-heading-split { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; }
.aj-heading-split .aj-text-link { margin-bottom: 64px; flex: 0 0 auto; }

.aj-home-hero { position: relative; min-height: calc(100svh - 116px); display: flex; align-items: flex-end; overflow: hidden; background: var(--aj-ink); color: var(--aj-white); }
.aj-home-hero__media, .aj-home-hero__shade { position: absolute; inset: 0; }
.aj-home-hero__media picture, .aj-page-hero__media picture, .aj-service-card picture, .aj-project-story__media picture { display: block; width: 100%; height: 100%; }
.aj-home-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 56%; }
.aj-home-hero__shade { background: linear-gradient(90deg, rgba(4,18,31,.98) 0%, rgba(4,18,31,.86) 40%, rgba(4,18,31,.3) 72%, rgba(4,18,31,.12) 100%), linear-gradient(0deg, rgba(4,18,31,.72), transparent 54%); }
.aj-home-hero__line { position: absolute; top: 0; left: max(24px, calc((100vw - 1280px)/2)); bottom: 0; width: 1px; background: rgba(255,255,255,.14); }
.aj-home-hero__line::after { content: ""; position: absolute; top: 21%; left: -3px; width: 7px; height: 86px; background: var(--aj-accent); }
.aj-home-hero__inner { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) 300px; align-items: end; gap: 70px; padding: clamp(90px, 11vw, 160px) 0 104px; }
.aj-home-hero__copy { max-width: 960px; padding-left: 32px; }
.aj-home-hero h1 { max-width: 980px; margin: 0 0 30px; text-transform: uppercase; font-size: clamp(3.5rem, 7.6vw, 7.8rem); }
.aj-home-hero h1 em { display: block; color: var(--aj-accent); font-style: normal; }
.aj-home-hero__lead { max-width: 720px; margin: 0 0 38px; color: rgba(255,255,255,.78); font-size: clamp(1.08rem, 1.5vw, 1.3rem); }
.aj-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 26px; }
.aj-home-hero__card { padding: 26px; border-top: 3px solid var(--aj-accent); background: rgba(7,27,46,.76); box-shadow: 0 20px 60px rgba(0,0,0,.2); backdrop-filter: blur(12px); }
.aj-home-hero__card p { margin: 0 0 12px; color: var(--aj-accent); font-size: .65rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.aj-home-hero__card strong { display: block; margin-bottom: 28px; font-family: var(--aj-display); font-size: 1.6rem; line-height: 1.05; }
.aj-home-hero__card a { display: flex; align-items: center; justify-content: space-between; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.16); font-size: .74rem; font-weight: 800; text-transform: uppercase; }
.aj-scroll-cue { position: absolute; z-index: 3; right: 28px; bottom: 24px; display: flex; align-items: center; gap: 14px; color: rgba(255,255,255,.7); font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; transform: rotate(-90deg) translateX(100%); transform-origin: right bottom; }
.aj-scroll-cue i { position: relative; width: 55px; height: 1px; overflow: hidden; background: rgba(255,255,255,.25); }
.aj-scroll-cue i::after { content: ""; position: absolute; inset: 0; background: var(--aj-accent); animation: aj-line 2.2s infinite; }
@keyframes aj-line { 0% { transform: translateX(-100%); } 50%,100% { transform: translateX(100%); } }

.aj-trust-strip { position: relative; z-index: 4; background: var(--aj-white); box-shadow: 0 20px 60px rgba(7,27,46,.07); }
.aj-trust-strip__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.aj-trust-strip__grid > * { position: relative; min-height: 104px; display: flex; flex-direction: column; justify-content: center; padding: 18px 30px; border-right: 1px solid var(--aj-line); transition: background .25s; }
.aj-trust-strip__grid > *:last-child { border-right: 0; }
.aj-trust-strip__grid > a:hover { background: var(--aj-accent); }
.aj-trust-strip strong { font-family: var(--aj-display); font-size: 1.8rem; line-height: 1; }
.aj-trust-strip span { margin-top: 7px; color: var(--aj-muted); font-size: .68rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }

.aj-service-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 20px; }
.aj-service-card { position: relative; grid-column: span 4; min-height: 570px; overflow: hidden; background: var(--aj-ink); color: var(--aj-white); isolation: isolate; }
.aj-service-card:nth-child(1), .aj-service-card:nth-child(5) { grid-column: span 8; }
.aj-service-card figure { position: absolute; inset: 0; margin: 0; z-index: -2; }
.aj-service-card figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4,18,31,.98), rgba(4,18,31,.12) 70%); transition: background .4s; }
.aj-service-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--aj-ease), filter .4s; }
.aj-service-card:hover img { transform: scale(1.055); filter: saturate(1.15); }
.aj-service-card__number { position: absolute; top: 22px; right: 22px; font-family: var(--aj-display); font-size: 1.05rem; color: var(--aj-accent); }
.aj-service-card__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 34px; }
.aj-service-card__body h3 { margin-bottom: 15px; font-size: clamp(2.2rem, 4vw, 4.2rem); text-transform: uppercase; }
.aj-service-card__body p { max-width: 560px; margin-bottom: 24px; color: rgba(255,255,255,.7); }
.aj-service-card__body span { display: flex; align-items: center; gap: 12px; color: var(--aj-accent); font-size: .72rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }

.aj-answer-block__grid, .aj-service-answer__grid, .aj-tool-explain, .aj-about-intro { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(50px, 8vw, 130px); align-items: start; }
.aj-answer-block h2, .aj-service-answer h2, .aj-about-intro h2 { font-size: clamp(2.8rem, 5vw, 5.2rem); }
.aj-rich-copy, .aj-tool-explain > div:last-child, .aj-about-intro > div:last-child { max-width: 720px; }
.aj-rich-copy p, .aj-tool-explain p, .aj-about-intro p { color: var(--aj-muted); font-size: 1.03rem; }
.aj-rich-copy .aj-lede, .aj-tool-explain .aj-lede, .aj-about-intro .aj-lede { color: var(--aj-ink); font-family: var(--aj-display); font-size: clamp(1.7rem, 3vw, 2.7rem); font-weight: 750; line-height: 1.18; }

.aj-project-story { display: grid; grid-template-columns: 1.1fr .9fr .55fr; min-height: 760px; background: var(--aj-paper); }
.aj-project-story__media { overflow: hidden; }
.aj-project-story__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--aj-ease); }
.aj-project-story__media:hover img { transform: scale(1.04); }
.aj-project-story__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(45px, 6vw, 90px); background: var(--aj-white); }
.aj-project-story__copy h2 { font-size: clamp(2.7rem, 4.8vw, 5rem); }
.aj-project-story__copy > p:not(.aj-eyebrow) { color: var(--aj-muted); }
.aj-tick-list { list-style: none; margin: 24px 0 34px; padding: 0; display: grid; gap: 12px; }
.aj-tick-list li { position: relative; padding-left: 24px; font-weight: 650; }
.aj-tick-list li::before { content: ""; position: absolute; left: 0; top: .72em; width: 9px; height: 9px; background: var(--aj-accent); transform: rotate(45deg); }

.aj-process-grid { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.15); border-left: 1px solid rgba(255,255,255,.15); }
.aj-process-grid li { min-height: 300px; padding: 28px; border-right: 1px solid rgba(255,255,255,.15); border-bottom: 1px solid rgba(255,255,255,.15); transition: background .3s, transform .3s; }
.aj-process-grid li:hover { background: var(--aj-blue); transform: translateY(-8px); }
.aj-process-grid span { display: block; margin-bottom: 74px; color: var(--aj-accent); font-family: var(--aj-display); font-size: 1.4rem; }
.aj-process-grid h3 { margin-bottom: 14px; font-size: 2rem; text-transform: uppercase; }
.aj-process-grid p { color: rgba(255,255,255,.62); font-size: .9rem; }

.aj-location-home__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 100px; align-items: center; }
.aj-location-home h2 { max-width: 680px; }
.aj-location-home p:not(.aj-eyebrow) { max-width: 650px; color: var(--aj-muted); }
.aj-location-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 34px 0; }
.aj-location-chips a { padding: 10px 15px; border: 1px solid var(--aj-line); font-size: .75rem; font-weight: 800; text-transform: uppercase; transition: background .25s, border-color .25s; }
.aj-location-chips a:hover { background: var(--aj-accent); border-color: var(--aj-accent); }
.aj-location-home__visual { position: relative; min-height: 540px; display: grid; place-items: center; background: var(--aj-ink); color: var(--aj-white); overflow: hidden; }
.aj-location-home__visual::before { content: "SURREY"; position: absolute; bottom: -30px; right: -15px; color: rgba(255,255,255,.035); font-family: var(--aj-display); font-size: 9rem; font-weight: 900; line-height: 1; }
.aj-map-orbit { position: relative; width: 270px; height: 270px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; }
.aj-map-orbit::before, .aj-map-orbit::after { content: ""; position: absolute; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; }
.aj-map-orbit::before { inset: 35px; }
.aj-map-orbit::after { inset: -45px; }
.aj-map-orbit i { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 50%; background: var(--aj-accent); color: var(--aj-ink); }
.aj-map-orbit i svg { width: 35px; height: 35px; }
.aj-map-orbit span { position: absolute; width: 12px; height: 12px; border-radius: 50%; background: var(--aj-sky); box-shadow: 0 0 0 7px rgba(77,183,229,.12); }
.aj-map-orbit span:first-child { top: 30px; right: 35px; }
.aj-map-orbit span:nth-child(2) { bottom: 48px; left: 18px; }
.aj-location-home__visual dl { position: absolute; left: 28px; right: 28px; bottom: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0; }
.aj-location-home__visual dl div { padding: 12px; border-left: 2px solid var(--aj-accent); background: rgba(255,255,255,.06); }
.aj-location-home__visual dt { color: rgba(255,255,255,.45); font-size: .58rem; text-transform: uppercase; }
.aj-location-home__visual dd { margin: 2px 0 0; font-weight: 750; font-size: .76rem; }

.aj-tool-teasers, .aj-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.aj-tool-teasers a, .aj-related-grid a { position: relative; min-height: 320px; display: flex; flex-direction: column; padding: 32px; border: 1px solid var(--aj-line); background: var(--aj-white); transition: transform .35s var(--aj-ease), box-shadow .35s, background .3s; }
.aj-tool-teasers a:hover, .aj-related-grid a:hover { transform: translateY(-8px); box-shadow: var(--aj-shadow); background: var(--aj-ink); color: var(--aj-white); }
.aj-tool-teasers span, .aj-related-grid span { color: var(--aj-blue); font-size: .67rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.aj-tool-teasers h3, .aj-related-grid h3 { margin: auto 0 18px; font-size: 2.2rem; }
.aj-tool-teasers p, .aj-related-grid p { color: var(--aj-muted); }
.aj-tool-teasers a:hover p, .aj-related-grid a:hover p { color: rgba(255,255,255,.65); }
.aj-tool-teasers > a > svg, .aj-related-grid > a > svg { position: absolute; top: 28px; right: 28px; color: var(--aj-accent); }
.aj-download-strip { padding: 34px 0; background: var(--aj-ink); color: var(--aj-white); }
.aj-download-strip__inner { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 70px; align-items: center; padding-top: 46px; padding-bottom: 46px; border-top: 1px solid rgba(255,255,255,.16); border-bottom: 1px solid rgba(255,255,255,.16); }
.aj-download-strip__number { position: absolute; top: 13px; right: 0; color: var(--aj-accent); font-size: .67rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.aj-download-strip .aj-eyebrow { color: var(--aj-accent); }
.aj-download-strip h2 { max-width: 820px; margin-bottom: 10px; font-size: clamp(2.2rem, 4vw, 4.6rem); }
.aj-download-strip p:not(.aj-eyebrow) { max-width: 760px; color: rgba(255,255,255,.67); }
.aj-download-strip__inner > a { min-width: 250px; display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; align-items: center; padding: 22px 24px; border: 1px solid var(--aj-accent); color: var(--aj-white); font-size: .75rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; transition: color .25s, background .25s, transform .25s; }
.aj-download-strip__inner > a small { color: rgba(255,255,255,.55); font-size: .62rem; font-weight: 650; letter-spacing: .04em; text-transform: none; }
.aj-download-strip__inner > a svg { grid-column: 2; grid-row: 1 / span 2; color: var(--aj-accent); }
.aj-download-strip__inner > a:hover { background: var(--aj-accent); color: var(--aj-ink); transform: translateY(-4px); }
.aj-download-strip__inner > a:hover small, .aj-download-strip__inner > a:hover svg { color: var(--aj-ink); }

.aj-home-proof__grid { display: grid; grid-template-columns: 1fr .7fr; gap: 100px; align-items: center; }
.aj-home-proof h2 { max-width: 650px; }
.aj-home-proof p:not(.aj-eyebrow) { max-width: 680px; color: var(--aj-muted); }
.aj-proof-actions { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 30px; }
.aj-proof-figure { min-height: 430px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px; background: var(--aj-accent); text-align: center; }
.aj-proof-figure strong { font-family: var(--aj-display); font-size: clamp(7rem, 12vw, 11rem); line-height: .8; letter-spacing: -.08em; }
.aj-proof-figure span { max-width: 280px; margin-top: 28px; font-family: var(--aj-display); font-size: 2rem; font-weight: 800; line-height: 1; text-transform: uppercase; }
.aj-proof-figure small { margin-top: 18px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }

.aj-page-hero { position: relative; min-height: 690px; display: flex; align-items: flex-end; overflow: hidden; background: var(--aj-ink); color: var(--aj-white); }
.aj-page-hero--compact { min-height: 560px; }
.aj-page-hero__media, .aj-page-hero__shade { position: absolute; inset: 0; }
.aj-page-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.aj-page-hero__shade { background: linear-gradient(90deg, rgba(4,18,31,.97) 0%, rgba(4,18,31,.85) 46%, rgba(4,18,31,.28) 100%), linear-gradient(0deg, rgba(4,18,31,.6), transparent); }
.aj-page-hero__inner { position: relative; z-index: 2; padding: 70px 0 76px; }
.aj-page-hero h1 { max-width: 980px; margin: 0 0 24px; font-size: clamp(3.3rem, 7.3vw, 7.3rem); text-transform: uppercase; }
.aj-page-hero__inner > p:not(.aj-hero-kicker) { max-width: 760px; margin-bottom: 34px; color: rgba(255,255,255,.75); font-size: 1.15rem; }
.aj-breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 40px; color: rgba(255,255,255,.55); font-size: .68rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.aj-breadcrumbs a:hover { color: var(--aj-accent); }
.aj-jump-nav { position: sticky; z-index: 50; top: calc(var(--aj-admin-bar-offset) + var(--aj-sticky-header-height, 112px)); background: var(--aj-white); border-bottom: 1px solid var(--aj-line); box-shadow: 0 10px 30px rgba(7,27,46,.04); }
.aj-jump-nav .aj-shell { min-height: 62px; display: flex; align-items: center; gap: 30px; overflow-x: auto; scrollbar-width: none; }
.aj-jump-nav span { color: var(--aj-blue); font-weight: 850; white-space: nowrap; }
.aj-jump-nav a { position: relative; white-space: nowrap; font-size: .72rem; font-weight: 750; letter-spacing: .06em; text-transform: uppercase; }
.aj-jump-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--aj-accent); transition: right .25s; }
.aj-jump-nav a:hover::after { right: 0; }

.aj-scope-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: center; }
.aj-scope-media { position: relative; }
.aj-scope-media::before { content: ""; position: absolute; inset: 18px -18px -18px 18px; border: 2px solid var(--aj-ink); }
.aj-scope-media img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4/3; object-fit: cover; box-shadow: var(--aj-shadow); }
.aj-scope-media span { position: absolute; z-index: 2; left: 0; bottom: 0; padding: 12px 15px; background: var(--aj-accent); font-size: .62rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.aj-includes-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 32px 0 20px; padding: 0; list-style: none; border-top: 1px solid var(--aj-line); }
.aj-includes-list li { display: flex; gap: 12px; padding: 16px 12px 16px 0; border-bottom: 1px solid var(--aj-line); font-weight: 650; }
.aj-includes-list svg { margin-top: .25em; color: var(--aj-blue); }
.aj-note { padding: 16px 18px; border-left: 3px solid var(--aj-accent); background: rgba(240,180,41,.14); color: var(--aj-muted); font-size: .87rem; }
.aj-detail-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid var(--aj-line); }
.aj-detail-grid article { min-height: 315px; padding: 30px; border-right: 1px solid var(--aj-line); transition: background .3s, color .3s, transform .3s; }
.aj-detail-grid article:last-child { border-right: 0; }
.aj-detail-grid article:hover { background: var(--aj-ink); color: var(--aj-white); transform: translateY(-8px); }
.aj-detail-grid span { color: var(--aj-blue); font-family: var(--aj-display); font-size: 1.25rem; }
.aj-detail-grid h3 { margin: 80px 0 14px; }
.aj-detail-grid p { color: var(--aj-muted); font-size: .92rem; }
.aj-detail-grid article:hover p { color: rgba(255,255,255,.65); }
.aj-stage-list { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.18); }
.aj-stage-list li { min-height: 220px; padding: 25px 20px; border-right: 1px solid rgba(255,255,255,.18); }
.aj-stage-list li:last-child { border-right: 0; }
.aj-stage-list span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--aj-accent); color: var(--aj-ink); font-weight: 850; }
.aj-stage-list p { margin: 70px 0 0; font-family: var(--aj-display); font-size: 1.5rem; font-weight: 750; line-height: 1.05; }
.aj-resource-callout { padding: 80px 0; background: linear-gradient(135deg, var(--aj-accent), var(--aj-accent-soft)); }
.aj-resource-callout__grid { display: grid; grid-template-columns: 1fr .8fr; gap: 100px; align-items: center; }
.aj-resource-callout h2 { font-size: clamp(2.7rem, 4.6vw, 4.8rem); }
.aj-resource-callout__grid > div:last-child { display: grid; }
.aj-resource-callout__grid > div:last-child a { display: flex; justify-content: space-between; align-items: center; padding: 18px 0; border-bottom: 1px solid rgba(7,27,46,.35); font-weight: 800; transition: padding .25s; }
.aj-resource-callout__grid > div:last-child a:hover { padding-left: 10px; }

.aj-service-directory { display: grid; gap: 12px; }
.aj-service-directory > a { display: grid; grid-template-columns: 210px 1fr 50px; align-items: center; gap: 36px; min-height: 210px; padding: 20px; background: var(--aj-white); border: 1px solid transparent; transition: transform .35s var(--aj-ease), border .3s, box-shadow .3s; }
.aj-service-directory > a:hover { transform: translateX(10px); border-color: var(--aj-line); box-shadow: var(--aj-shadow); }
.aj-service-directory img { width: 210px; height: 160px; object-fit: cover; }
.aj-service-directory span { color: var(--aj-blue); font-size: .65rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.aj-service-directory h2 { margin: 9px 0; font-size: clamp(2rem, 3.5vw, 3.7rem); }
.aj-service-directory p { margin: 0; color: var(--aj-muted); }
.aj-service-directory > a > svg { width: 30px; height: 30px; transition: transform .3s; }
.aj-service-directory > a:hover > svg { transform: translateX(8px); }

.aj-location-directory { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.aj-location-directory > a { min-height: 390px; display: flex; flex-direction: column; padding: 34px; border: 1px solid var(--aj-line); transition: background .35s, color .35s, transform .35s var(--aj-ease); }
.aj-location-directory > a:hover { background: var(--aj-ink); color: var(--aj-white); transform: translateY(-8px); }
.aj-location-directory > a > span { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: var(--aj-accent); color: var(--aj-ink); }
.aj-location-directory h2 { margin: auto 0 18px; font-size: 3.2rem; }
.aj-location-directory p { color: var(--aj-muted); }
.aj-location-directory a:hover p { color: rgba(255,255,255,.65); }
.aj-location-directory b { display: flex; align-items: center; gap: 10px; color: var(--aj-blue); font-size: .72rem; text-transform: uppercase; }
.aj-location-directory a:hover b { color: var(--aj-accent); }
.aj-local-intro { display: grid; grid-template-columns: 1fr .65fr; gap: 90px; }
.aj-local-intro .aj-lede { font-family: var(--aj-display); font-size: 2rem; font-weight: 700; line-height: 1.25; }
.aj-local-intro aside { padding: 36px; background: var(--aj-paper); }
.aj-local-intro aside > span { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 50%; background: var(--aj-accent); }
.aj-local-intro aside div { display: flex; flex-wrap: wrap; gap: 8px; }
.aj-local-intro aside div span { padding: 8px 10px; background: var(--aj-white); font-size: .72rem; font-weight: 750; }
.aj-location-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.aj-location-services a { min-height: 290px; display: flex; flex-direction: column; padding: 28px; background: var(--aj-white); transition: transform .3s, box-shadow .3s; }
.aj-location-services a:hover { transform: translateY(-7px); box-shadow: var(--aj-shadow); }
.aj-location-services span { color: var(--aj-blue); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.aj-location-services h3 { margin: auto 0 14px; }
.aj-location-services p { color: var(--aj-muted); font-size: .9rem; }
.aj-location-services svg { color: var(--aj-blue); }
.aj-local-planning { background: var(--aj-ink); color: var(--aj-white); }
.aj-local-planning__grid { display: grid; grid-template-columns: 1fr .8fr; gap: 100px; align-items: center; }
.aj-local-planning p:not(.aj-eyebrow) { color: rgba(255,255,255,.65); }
.aj-local-planning .aj-text-link { color: var(--aj-accent); }
.aj-local-planning ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.15); }
.aj-local-planning li { display: flex; gap: 22px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.15); }
.aj-local-planning li span { color: var(--aj-accent); font-family: var(--aj-display); font-weight: 800; }

.aj-tool-directory { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.aj-tool-directory a { min-height: 350px; display: flex; flex-direction: column; padding: 34px; background: var(--aj-white); border-top: 4px solid var(--aj-blue); transition: transform .3s, box-shadow .3s, border-color .3s; }
.aj-tool-directory a:hover { transform: translateY(-8px); box-shadow: var(--aj-shadow); border-color: var(--aj-accent); }
.aj-tool-directory span { color: var(--aj-blue); font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.aj-tool-directory h2 { margin: auto 0 18px; font-size: 2.6rem; }
.aj-tool-directory p { color: var(--aj-muted); }
.aj-tool-directory b { display: flex; align-items: center; gap: 10px; font-size: .72rem; text-transform: uppercase; }
.aj-tool-layout { display: grid; grid-template-columns: 1.1fr .7fr; gap: 28px; align-items: start; }
.aj-calculator { padding: clamp(28px, 5vw, 58px); border: 1px solid var(--aj-line); background: var(--aj-white); box-shadow: var(--aj-shadow); }
.aj-calculator header { margin-bottom: 36px; }
.aj-calculator header h2 { font-size: clamp(2.5rem, 4vw, 4rem); }
.aj-calculator header p:last-child { color: var(--aj-muted); }
.aj-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.aj-field-grid label { display: grid; gap: 8px; font-size: .72rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.aj-field-grid label > span { color: var(--aj-muted); font-size: .65rem; font-weight: 600; }
.aj-field-grid input, .aj-field-grid select, .aj-field-grid textarea { width: 100%; min-height: 52px; padding: 12px 14px; border: 1px solid var(--aj-line); border-radius: 0; background: var(--aj-paper); color: var(--aj-ink); outline: none; text-transform: none; transition: border .2s, background .2s, box-shadow .2s; }
.aj-field-grid textarea { min-height: 145px; resize: vertical; }
.aj-field-grid input:focus, .aj-field-grid select:focus, .aj-field-grid textarea:focus { border-color: var(--aj-blue); background: var(--aj-white); box-shadow: 0 0 0 3px rgba(7,89,166,.12); }
.aj-field--wide { grid-column: 1/-1; }
.aj-calculator-result { position: sticky; top: 190px; padding: 42px; background: var(--aj-ink); color: var(--aj-white); box-shadow: var(--aj-shadow); }
.aj-calculator-result > span { color: var(--aj-accent); font-size: .68rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.aj-calculator-result > strong { display: block; margin: 28px 0 20px; font-family: var(--aj-display); font-size: clamp(2.8rem, 5vw, 5rem); line-height: .9; }
.aj-calculator-result > p { color: rgba(255,255,255,.62); }
.aj-calculator-result [data-tool-detail] { display: grid; gap: 8px; margin: 28px 0; }
.aj-calculator-result [data-tool-detail] span { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.12); font-size: .78rem; }
.aj-calculator-result > a { display: flex; justify-content: space-between; align-items: center; padding: 17px; background: var(--aj-accent); color: var(--aj-ink); font-size: .74rem; font-weight: 850; text-transform: uppercase; }

.aj-article-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.aj-article-card { background: var(--aj-white); transition: transform .35s var(--aj-ease), box-shadow .35s; }
.aj-article-card:hover { transform: translateY(-8px); box-shadow: var(--aj-shadow); }
.aj-article-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.aj-article-card div { min-height: 320px; display: flex; flex-direction: column; padding: 28px; }
.aj-article-card span { color: var(--aj-blue); font-size: .64rem; font-weight: 850; text-transform: uppercase; }
.aj-article-card h2 { margin: 24px 0 16px; font-size: 2.1rem; }
.aj-article-card p { color: var(--aj-muted); font-size: .9rem; }
.aj-article-card b { display: flex; align-items: center; gap: 9px; margin-top: auto; font-size: .7rem; text-transform: uppercase; }
.aj-article { padding: 90px 0 130px; }
.aj-article__layout { display: grid; grid-template-columns: 220px minmax(0, 800px); gap: 90px; justify-content: center; align-items: start; }
.aj-article__meta { position: sticky; top: 150px; padding: 22px; border-top: 3px solid var(--aj-accent); background: var(--aj-paper); }
.aj-article__meta > span { color: var(--aj-blue); font-size: .65rem; font-weight: 850; text-transform: uppercase; }
.aj-article__meta > strong { display: block; margin-top: 10px; }
.aj-article__meta > p { color: var(--aj-muted); font-size: .8rem; }
.aj-article__meta dl { display: grid; gap: 10px; margin: 24px 0; padding: 18px 0; border-block: 1px solid var(--aj-line); }
.aj-article__meta dt { color: var(--aj-muted); font-size: .65rem; text-transform: uppercase; }
.aj-article__meta dd { margin: 0; font-weight: 750; font-size: .82rem; }
.aj-article__meta a { color: var(--aj-blue); font-size: .72rem; font-weight: 800; }
.aj-prose { color: #263847; font-size: 1.06rem; }
.aj-prose > * { max-width: 760px; }
.aj-prose h2 { margin: 70px 0 24px; color: var(--aj-ink); font-size: clamp(2.2rem, 4vw, 3.8rem); }
.aj-prose h3 { margin: 46px 0 18px; color: var(--aj-ink); font-size: 2rem; }
.aj-prose p, .aj-prose li { margin-bottom: 1.35em; }
.aj-prose a { color: var(--aj-blue); text-decoration: underline; text-underline-offset: 3px; }
.aj-prose img { margin: 44px 0; box-shadow: var(--aj-shadow); }
.aj-prose table { width: 100%; margin: 36px 0; border-collapse: collapse; font-size: .9rem; }
.aj-prose th, .aj-prose td { padding: 14px; border: 1px solid var(--aj-line); text-align: left; }
.aj-prose th { background: var(--aj-ink); color: var(--aj-white); }
.aj-article-answer { margin-bottom: 55px; padding: 32px; border-left: 5px solid var(--aj-accent); background: var(--aj-paper); }
.aj-article-answer p:last-child { margin: 0; color: var(--aj-ink); font-family: var(--aj-display); font-size: 1.65rem; font-weight: 700; line-height: 1.25; }
.aj-article-sources { margin-top: 75px; padding: 34px; background: var(--aj-ink); color: var(--aj-white); }
.aj-article-sources h2 { margin-top: 0; color: var(--aj-white); }
.aj-article-sources p { color: rgba(255,255,255,.68); }
.aj-article-sources div { display: flex; flex-wrap: wrap; gap: 12px; }
.aj-article-sources a { display: flex; align-items: center; gap: 9px; padding: 11px 14px; background: var(--aj-accent); color: var(--aj-ink); text-decoration: none; font-size: .72rem; font-weight: 800; }

.aj-guide { padding: 100px 0; }
.aj-guide__layout { display: grid; grid-template-columns: minmax(0, 760px) 300px; gap: 80px; justify-content: center; align-items: start; }
.aj-guide-answer { margin-bottom: 70px; padding: 40px; background: var(--aj-paper); border-top: 5px solid var(--aj-accent); }
.aj-guide-answer h2 { font-size: 3.4rem; }
.aj-guide__main > section:not(.aj-guide-answer):not(.aj-guide-sources) { position: relative; padding: 55px 0 55px 82px; border-top: 1px solid var(--aj-line); }
.aj-guide__main > section > span { position: absolute; left: 0; top: 58px; color: var(--aj-blue); font-family: var(--aj-display); font-size: 1.4rem; }
.aj-guide__main > section h2 { font-size: 3rem; }
.aj-guide__main > section p { color: var(--aj-muted); font-size: 1.06rem; }
.aj-guide__aside { position: sticky; top: 150px; padding: 30px; background: var(--aj-ink); color: var(--aj-white); }
.aj-guide__aside > strong { display: block; font-family: var(--aj-display); font-size: 2rem; line-height: 1; }
.aj-guide__aside ul { margin: 28px 0; padding: 0; list-style: none; }
.aj-guide__aside li { padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.14); color: rgba(255,255,255,.7); }
.aj-guide-sources { margin-top: 50px; padding: 35px; background: var(--aj-accent); }
.aj-guide-sources h2 { font-size: 3rem; }
.aj-guide-sources a { display: flex; justify-content: space-between; align-items: center; padding: 15px 0; border-top: 1px solid rgba(7,27,46,.35); font-weight: 750; }

.aj-value-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-left: 1px solid rgba(255,255,255,.16); border-top: 1px solid rgba(255,255,255,.16); }
.aj-value-grid article { min-height: 350px; padding: 30px; border-right: 1px solid rgba(255,255,255,.16); border-bottom: 1px solid rgba(255,255,255,.16); }
.aj-value-grid span { color: var(--aj-accent); }
.aj-value-grid h2 { margin: 100px 0 18px; font-size: 2.5rem; }
.aj-value-grid p { color: rgba(255,255,255,.63); }

.aj-contact__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; align-items: start; }
.aj-contact__details { position: sticky; top: 150px; }
.aj-contact__details > p:not(.aj-eyebrow) { color: var(--aj-muted); }
.aj-contact-methods { display: grid; margin: 34px 0; border-top: 1px solid var(--aj-line); }
.aj-contact-methods a { display: flex; align-items: center; gap: 16px; padding: 17px 0; border-bottom: 1px solid var(--aj-line); transition: padding .25s, color .25s; }
.aj-contact-methods a:hover { padding-left: 10px; color: var(--aj-blue); }
.aj-contact-methods a > svg { width: 25px; height: 25px; color: var(--aj-blue); }
.aj-contact-methods span { display: grid; }
.aj-contact-methods small { color: var(--aj-muted); font-size: .65rem; text-transform: uppercase; }
.aj-contact__details address { padding: 22px; background: var(--aj-paper); font-style: normal; color: var(--aj-muted); }
.aj-contact__details address strong { display: block; color: var(--aj-ink); }
.aj-contact-form { padding: clamp(30px, 5vw, 56px); background: var(--aj-paper); border-top: 5px solid var(--aj-accent); }
.aj-contact-form__head { margin-bottom: 34px; }
.aj-contact-form__head > span { color: var(--aj-blue); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.aj-contact-form__head h2 { margin: 12px 0 18px; font-size: 3.5rem; }
.aj-contact-form__head p { color: var(--aj-muted); }
.aj-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.aj-form-grid label { display: grid; gap: 8px; font-size: .72rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.aj-form-wide { grid-column: 1/-1; }
.aj-form-grid input, .aj-form-grid textarea { width: 100%; padding: 13px 14px; border: 1px solid var(--aj-line); background: var(--aj-white); border-radius: 0; outline: none; }
.aj-form-grid input { min-height: 52px; }
.aj-form-grid input:focus, .aj-form-grid textarea:focus { border-color: var(--aj-blue); box-shadow: 0 0 0 3px rgba(7,89,166,.12); }
.aj-form-grid button { border: 0; }
.aj-form-privacy { align-self: center; margin: 0; color: var(--aj-muted); font-size: .72rem; }
.aj-form-privacy a { text-decoration: underline; }
.afe-hp-field { position: absolute !important; left: -9999px !important; }
.afe-message { margin-top: 20px; padding: 15px; background: var(--aj-white); }

.aj-faq__grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: 100px; align-items: start; }
.aj-faq header { position: sticky; top: 150px; }
.aj-faq header p:last-child { color: var(--aj-muted); }
.aj-faq__items { border-top: 1px solid var(--aj-line); }
.aj-faq details { border-bottom: 1px solid var(--aj-line); }
.aj-faq summary { display: flex; justify-content: space-between; gap: 25px; padding: 25px 0; list-style: none; font-family: var(--aj-display); font-size: 1.7rem; font-weight: 750; line-height: 1.12; cursor: pointer; }
.aj-faq summary::-webkit-details-marker { display: none; }
.aj-faq summary span { flex: 0 0 auto; width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--aj-line); border-radius: 50%; transition: transform .3s, background .3s; }
.aj-faq details[open] summary span { transform: rotate(45deg); background: var(--aj-accent); }
.aj-faq details > p { margin: 0; padding: 0 60px 28px 0; color: var(--aj-muted); }
.aj-cta { position: relative; min-height: 520px; display: flex; align-items: center; overflow: hidden; background: var(--aj-ink); color: var(--aj-white); }
.aj-cta__media, .aj-cta__shade { position: absolute; inset: 0; }
.aj-cta__media img { width: 100%; height: 100%; object-fit: cover; }
.aj-cta__shade { background: linear-gradient(90deg, rgba(4,18,31,.97), rgba(4,18,31,.78) 65%, rgba(4,18,31,.45)); }
.aj-cta__inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr auto; gap: 80px; align-items: end; padding: 90px 0; }
.aj-cta h2 { max-width: 900px; margin-bottom: 20px; font-size: clamp(3rem, 6vw, 6rem); }
.aj-cta p:not(.aj-eyebrow) { max-width: 700px; color: rgba(255,255,255,.68); }
.aj-cta__actions { display: grid; gap: 18px; min-width: 230px; text-align: center; }
.aj-cta__actions > a:last-child { color: var(--aj-accent); font-weight: 800; }

.aj-legal, .aj-generic-page { padding: 90px 0 130px; }
.aj-legal .aj-prose, .aj-generic-page .aj-prose { width: min(820px, 100%); margin-inline: auto; }
.aj-error, .aj-search { min-height: 72vh; padding: 120px 0; background: var(--aj-paper); }
.aj-error .aj-shell { position: relative; max-width: 980px; }
.aj-error .aj-shell > span { position: absolute; z-index: 0; top: -100px; right: 0; color: rgba(7,27,46,.05); font-family: var(--aj-display); font-size: 20rem; font-weight: 900; line-height: 1; }
.aj-error h1, .aj-search h1 { position: relative; max-width: 850px; font-size: clamp(3.5rem, 8vw, 8rem); }
.aj-error p:not(.aj-eyebrow) { max-width: 650px; color: var(--aj-muted); }
.aj-error .aj-shell > div { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.aj-search form { display: flex; max-width: 700px; margin: 36px 0 60px; }
.aj-search input { flex: 1; min-width: 0; padding: 15px; border: 1px solid var(--aj-line); }
.aj-search button { padding: 0 25px; border: 0; background: var(--aj-accent); font-weight: 800; }
.aj-search-results { display: grid; gap: 12px; }
.aj-search-results a { display: block; padding: 25px; background: var(--aj-white); }
.aj-search-results span { color: var(--aj-blue); font-size: .65rem; font-weight: 800; text-transform: uppercase; }
.aj-search-results h2 { margin: 10px 0; font-size: 2rem; }
.aj-search-results p { margin: 0; color: var(--aj-muted); }

.aj-site-footer { padding: 90px 0 24px; background: #04121f; color: var(--aj-white); }
.aj-footer-top { display: grid; grid-template-columns: .8fr 1.2fr; gap: 100px; padding-bottom: 65px; }
.aj-footer-brand img { width: 250px; filter: brightness(0) invert(1); }
.aj-footer-brand p { max-width: 430px; margin: 30px 0; color: rgba(255,255,255,.58); }
.aj-footer-brand > a { color: var(--aj-accent); font-family: var(--aj-display); font-size: 2.1rem; font-weight: 800; }
.aj-footer-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.aj-footer-columns nav { display: grid; align-content: start; gap: 10px; }
.aj-footer-columns strong { margin-bottom: 12px; color: var(--aj-accent); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.aj-footer-columns a { color: rgba(255,255,255,.68); transition: color .2s, transform .2s; }
.aj-footer-columns a:hover { color: var(--aj-white); transform: translateX(5px); }
.aj-footer-entity { display: flex; justify-content: space-between; gap: 30px; padding: 26px 0; border-block: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.55); font-size: .78rem; }
.aj-footer-entity address { font-style: normal; }
.aj-footer-entity address strong { display: block; color: var(--aj-white); }
.aj-footer-entity nav { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.aj-footer-entity nav a:hover { color: var(--aj-accent); }
.aj-footer-bottom { display: flex; justify-content: space-between; gap: 25px; padding-top: 24px; color: rgba(255,255,255,.45); font-size: .72rem; }
.aj-footer-bottom p { margin: 0; }
.aj-footer-bottom nav { display: flex; gap: 18px; }
.aj-mobile-actions { display: none; }

[data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .75s var(--aj-ease), transform .75s var(--aj-ease); }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    [data-reveal] { opacity: 1; transform: none; }
}

@media (max-width: 1120px) {
    .aj-desktop-nav { display: none; }
    .aj-menu-toggle { display: inline-flex; margin-left: auto; }
    .aj-header-cta { margin-left: 0; }
    .aj-home-hero__inner { grid-template-columns: 1fr; }
    .aj-home-hero__card { display: none; }
    .aj-service-card, .aj-service-card:nth-child(1), .aj-service-card:nth-child(5) { grid-column: span 6; }
    .aj-project-story { grid-template-columns: 1fr 1fr; }
    .aj-project-story__media--small { display: none; }
    .aj-process-grid { grid-template-columns: repeat(3, 1fr); }
    .aj-process-grid li:nth-child(n+4) { grid-column: span 1; }
    .aj-detail-grid { grid-template-columns: 1fr 1fr; }
    .aj-detail-grid article:nth-child(2) { border-right: 0; }
    .aj-detail-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--aj-line); }
    .aj-stage-list { grid-template-columns: repeat(3, 1fr); }
    .aj-stage-list li:nth-child(3) { border-right: 0; }
    .aj-stage-list li:nth-child(-n+3) { border-bottom: 1px solid rgba(255,255,255,.18); }
    .aj-location-directory, .aj-location-services, .aj-tool-directory, .aj-article-grid { grid-template-columns: 1fr 1fr; }
    .aj-value-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 820px) {
    :root { --aj-shell: min(100% - 32px, 1280px); }
    html { scroll-padding-top: 80px; }
    body { font-size: 15px; padding-bottom: 66px; }
    .aj-utility { display: none; }
    .aj-nav-wrap { min-height: 74px; }
    .aj-nav { gap: 14px; }
    .aj-logo { width: 170px; }
    .aj-header-cta { display: none; }
    .aj-site-header.is-hidden { transform: none; }
    .aj-home-hero { min-height: calc(100svh - 74px); align-items: center; }
    .aj-home-hero__media img { object-position: 66% 50%; }
    .aj-home-hero__shade { background: linear-gradient(0deg, rgba(4,18,31,.97), rgba(4,18,31,.65) 70%, rgba(4,18,31,.3)), linear-gradient(90deg, rgba(4,18,31,.7), transparent); }
    .aj-home-hero__inner { padding: 76px 0 68px; }
    .aj-home-hero__copy { padding-left: 18px; }
    .aj-home-hero h1 { font-size: clamp(3.2rem, 15vw, 5.7rem); }
    .aj-home-hero__lead { font-size: 1rem; }
    .aj-scroll-cue { display: none; }
    .aj-home-hero__line { left: 16px; }
    .aj-trust-strip__grid { grid-template-columns: 1fr 1fr; }
    .aj-trust-strip__grid > * { min-height: 88px; padding: 15px; border-bottom: 1px solid var(--aj-line); }
    .aj-trust-strip__grid > *:nth-child(2) { border-right: 0; }
    .aj-trust-strip strong { font-size: 1.4rem; }
    .aj-section { padding: 76px 0; }
    .aj-heading-split { display: block; }
    .aj-heading-split .aj-text-link { margin: -25px 0 45px; }
    .aj-section-heading { margin-bottom: 42px; }
    .aj-service-grid { display: flex; overflow-x: auto; gap: 14px; margin-right: -16px; padding-right: 16px; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .aj-service-card, .aj-service-card:nth-child(1), .aj-service-card:nth-child(5) { flex: 0 0 min(84vw, 380px); min-height: 500px; scroll-snap-align: start; }
    .aj-service-card__body { padding: 26px; }
    .aj-answer-block__grid, .aj-service-answer__grid, .aj-tool-explain, .aj-about-intro { grid-template-columns: 1fr; gap: 28px; }
    .aj-project-story { grid-template-columns: 1fr; }
    .aj-project-story__media--large { height: 500px; }
    .aj-project-story__copy { padding: 55px 24px; }
    .aj-process-grid { grid-template-columns: 1fr; }
    .aj-process-grid li { min-height: auto; }
    .aj-process-grid span { margin-bottom: 38px; }
    .aj-location-home__grid, .aj-home-proof__grid, .aj-scope-grid, .aj-resource-callout__grid, .aj-local-intro, .aj-local-planning__grid, .aj-tool-layout, .aj-contact__grid, .aj-faq__grid, .aj-footer-top, .aj-download-strip__inner { grid-template-columns: 1fr; gap: 50px; }
    .aj-location-home__visual { min-height: 480px; }
    .aj-tool-teasers, .aj-related-grid { grid-template-columns: 1fr; }
    .aj-proof-figure { min-height: 360px; }
    .aj-page-hero, .aj-page-hero--compact { min-height: 560px; }
    .aj-page-hero__shade { background: linear-gradient(0deg, rgba(4,18,31,.97), rgba(4,18,31,.5)); }
    .aj-page-hero__inner { padding: 56px 0 58px; }
    .aj-page-hero h1 { font-size: clamp(3rem, 13vw, 5.5rem); }
    .aj-breadcrumbs { margin-bottom: 28px; }
    .aj-jump-nav { top: calc(var(--aj-admin-bar-offset) + var(--aj-sticky-header-height, 74px)); }
    .aj-jump-nav .aj-shell { gap: 22px; }
    .aj-scope-media { margin: 0 18px 18px 0; }
    .aj-includes-list { grid-template-columns: 1fr; }
    .aj-detail-grid { grid-template-columns: 1fr; }
    .aj-detail-grid article, .aj-detail-grid article:nth-child(2) { min-height: auto; border-right: 0; border-bottom: 1px solid var(--aj-line); }
    .aj-detail-grid h3 { margin-top: 48px; }
    .aj-stage-list { grid-template-columns: 1fr 1fr; }
    .aj-stage-list li, .aj-stage-list li:nth-child(3) { border-right: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
    .aj-stage-list li:nth-child(even) { border-right: 0; }
    .aj-service-directory > a { grid-template-columns: 110px 1fr 28px; gap: 18px; min-height: 150px; }
    .aj-service-directory img { width: 110px; height: 110px; }
    .aj-service-directory p { display: none; }
    .aj-service-directory h2 { font-size: 2rem; }
    .aj-location-directory, .aj-location-services, .aj-tool-directory, .aj-article-grid { grid-template-columns: 1fr; }
    .aj-local-intro aside { padding: 28px; }
    .aj-calculator-result, .aj-contact__details, .aj-faq header { position: static; }
    .aj-field-grid, .aj-form-grid { grid-template-columns: 1fr; }
    .aj-form-wide, .aj-field--wide { grid-column: auto; }
    .aj-article__layout, .aj-guide__layout { grid-template-columns: 1fr; gap: 35px; }
    .aj-article__meta, .aj-guide__aside { position: static; }
    .aj-guide__aside { order: -1; }
    .aj-guide__main > section:not(.aj-guide-answer):not(.aj-guide-sources) { padding-left: 48px; }
    .aj-guide__main > section h2 { font-size: 2.4rem; }
    .aj-value-grid { grid-template-columns: 1fr; }
    .aj-value-grid article { min-height: auto; }
    .aj-value-grid h2 { margin-top: 55px; }
    .aj-faq__items { margin-top: 0; }
    .aj-cta { min-height: 600px; }
    .aj-cta__inner { grid-template-columns: 1fr; gap: 35px; padding: 75px 0; }
    .aj-cta__actions { justify-items: stretch; }
    .aj-footer-top { gap: 60px; }
    .aj-footer-columns { gap: 20px; }
    .aj-footer-entity, .aj-footer-bottom { flex-direction: column; }
    .aj-mobile-actions { position: fixed; z-index: 900; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: .75fr 1.25fr; min-height: 66px; padding-bottom: env(safe-area-inset-bottom); box-shadow: 0 -10px 30px rgba(7,27,46,.16); }
    .aj-mobile-actions a { display: flex; align-items: center; justify-content: center; gap: 8px; background: var(--aj-white); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
    .aj-mobile-actions a:last-child { background: var(--aj-accent); }
}

@media (max-width: 782px) {
    body.admin-bar { --aj-admin-bar-offset: 46px; }
    html.aj-has-stacked-nav:has(body.admin-bar) { scroll-padding-top: calc(var(--aj-sticky-header-height, 74px) + 110px); }
}

@media (max-width: 520px) {
    :root { --aj-shell: calc(100% - 28px); }
    .aj-logo { width: 148px; }
    .aj-menu-toggle span { display: none; }
    .aj-home-hero h1 { font-size: clamp(3rem, 15vw, 4.5rem); }
    .aj-home-hero__copy { padding-left: 12px; }
    .aj-home-hero__line { left: 13px; }
    .aj-home-hero__line::after { height: 58px; }
    .aj-hero-actions { align-items: stretch; flex-direction: column; }
    .aj-hero-actions .aj-button { width: 100%; }
    .aj-trust-strip__grid > * { padding: 13px 10px; }
    .aj-trust-strip span { font-size: .57rem; }
    .aj-service-card { flex-basis: 88vw; }
    .aj-project-story__media--large { height: 400px; }
    .aj-location-home__visual dl { grid-template-columns: 1fr; }
    .aj-location-home__visual dl div:nth-child(n+2) { display: none; }
    .aj-page-hero__inner > p:not(.aj-hero-kicker) { font-size: 1rem; }
    .aj-stage-list { grid-template-columns: 1fr; }
    .aj-stage-list li, .aj-stage-list li:nth-child(even), .aj-stage-list li:nth-child(3) { border-right: 0; }
    .aj-service-directory > a { grid-template-columns: 84px 1fr; padding: 12px; }
    .aj-service-directory img { width: 84px; height: 96px; }
    .aj-service-directory > a > svg { display: none; }
    .aj-service-directory h2 { font-size: 1.65rem; }
    .aj-location-directory > a, .aj-tool-directory a { min-height: 320px; padding: 26px; }
    .aj-download-strip { padding: 22px 0; }
    .aj-download-strip__inner { gap: 28px; padding-top: 48px; padding-bottom: 34px; }
    .aj-download-strip__number { left: 0; right: auto; }
    .aj-download-strip__inner > a { min-width: 0; width: 100%; }
    .aj-field-grid { gap: 18px; }
    .aj-calculator, .aj-calculator-result { padding: 26px; }
    .aj-article { padding: 60px 0 90px; }
    .aj-prose { font-size: 1rem; }
    .aj-article-answer, .aj-guide-answer { padding: 25px; }
    .aj-guide { padding: 70px 0; }
    .aj-guide__main > section:not(.aj-guide-answer):not(.aj-guide-sources) { padding-left: 0; }
    .aj-guide__main > section > span { position: static; display: block; margin-bottom: 16px; }
    .aj-contact-form { padding: 25px 20px; }
    .aj-faq summary { font-size: 1.4rem; }
    .aj-faq details > p { padding-right: 0; }
    .aj-footer-columns { grid-template-columns: 1fr 1fr; }
    .aj-footer-columns nav:last-child { grid-column: 1/-1; }
}

/* Premium interaction and viewport-rhythm pass. */
body {
    background:
        radial-gradient(circle at 8% 20%, rgba(77,183,229,.055), transparent 27rem),
        radial-gradient(circle at 92% 72%, rgba(240,180,41,.055), transparent 28rem),
        var(--aj-white);
}
h1, h2, h3, h4 {
    max-inline-size: 26ch;
    overflow-wrap: normal;
    word-break: normal;
    text-wrap: balance;
}
h4 { font-family: var(--aj-display); font-weight: 800; letter-spacing: -.025em; line-height: 1.05; }
.aj-section { padding: clamp(52px, 6vw, 84px) 0; }
.aj-section.is-viewport-capped {
    max-height: none;
    overflow: visible;
}
.aj-section.is-viewport-capped:focus-visible { outline-offset: -5px; }
.aj-section--warm {
    overflow: hidden;
    background:
        linear-gradient(115deg, rgba(255,255,255,.8), transparent 46%),
        radial-gradient(circle at 88% 14%, rgba(240,180,41,.13), transparent 25rem),
        var(--aj-paper);
}
.aj-section--warm::before {
    content: "";
    position: absolute;
    top: 0;
    right: clamp(18px, 4vw, 72px);
    width: 1px;
    height: 100%;
    background: linear-gradient(transparent, rgba(7,27,46,.12) 16%, rgba(7,27,46,.12) 84%, transparent);
    pointer-events: none;
}
.aj-section-heading { max-width: 850px; margin-bottom: clamp(28px, 4vw, 46px); }
.aj-section-heading h2 { max-width: 720px; margin-bottom: 18px; font-size: clamp(2.35rem, 4.4vw, 4.7rem); }
.aj-heading-split .aj-text-link { margin-bottom: 42px; }

/* Navigation: floating precision rail and editorial mega panels. */
.aj-site-header {
    background: rgba(255,255,255,.86);
    box-shadow: 0 1px 0 rgba(7,27,46,.08), 0 18px 45px rgba(7,27,46,.04);
    backdrop-filter: blur(22px) saturate(1.25);
}
.aj-utility {
    background: linear-gradient(90deg, #04121f, var(--aj-ink-2) 68%, #0b3961);
    border-bottom: 1px solid rgba(255,255,255,.1);
}
.aj-utility p::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 10px; border-radius: 50%; background: var(--aj-accent); box-shadow: 0 0 0 4px rgba(240,180,41,.14); }
.aj-nav-wrap { min-height: 78px; }
.aj-nav { gap: clamp(18px, 2vw, 30px); }
.aj-logo { position: relative; width: 190px; padding-right: 20px; }
.aj-logo::after { content: ""; position: absolute; top: 12%; right: 0; width: 1px; height: 76%; background: linear-gradient(transparent, var(--aj-line) 18%, var(--aj-line) 82%, transparent); }
.aj-desktop-nav {
    height: 52px;
    align-self: center;
    gap: 1px;
    padding: 5px;
    border: 1px solid rgba(7,27,46,.09);
    border-radius: 4px;
    background: rgba(247,245,239,.65);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.aj-desktop-nav > a, .aj-nav-group > a { min-height: 40px; padding: 0 13px; border-radius: 2px; }
.aj-desktop-nav > a::after, .aj-nav-group > a::after { left: 13px; right: 13px; bottom: 4px; height: 2px; }
.aj-desktop-nav > a:hover, .aj-desktop-nav > a[aria-current="page"], .aj-nav-group:hover > a { background: var(--aj-white); color: var(--aj-blue); }
.aj-desktop-nav > a[aria-current="page"]::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--aj-accent); }
.aj-mega {
    top: calc(100% + 13px);
    width: min(850px, 78vw);
    grid-template-columns: 1.05fr 1fr 1fr;
    gap: 0;
    padding: 10px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 5px;
    background: rgba(4,18,31,.98);
    color: var(--aj-white);
    box-shadow: 0 32px 100px rgba(4,18,31,.28);
    backdrop-filter: blur(22px);
}
.aj-mega::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 8% 15%, rgba(77,183,229,.24), transparent 28%), linear-gradient(115deg, transparent 60%, rgba(240,180,41,.08)); pointer-events: none; }
.aj-mega > * { position: relative; }
.aj-mega aside { display: flex; flex-direction: column; min-height: 280px; padding: 24px; border-right: 1px solid rgba(255,255,255,.13); background: linear-gradient(145deg, rgba(7,89,166,.28), rgba(255,255,255,.03)); }
.aj-mega aside > span { color: var(--aj-accent); font-size: .62rem; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.aj-mega aside strong { margin: auto 0 15px; font-family: var(--aj-display); font-size: 2.25rem; line-height: .92; text-transform: uppercase; }
.aj-mega aside p { color: rgba(255,255,255,.58); font-size: .8rem; letter-spacing: 0; text-transform: none; }
.aj-mega aside a { display: flex; align-items: center; justify-content: space-between; color: var(--aj-accent); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.aj-mega > div { padding: 22px 20px; }
.aj-mega p { color: var(--aj-accent); }
.aj-mega div a { border-color: rgba(255,255,255,.11); color: rgba(255,255,255,.72); }
.aj-mega div a:hover { color: var(--aj-white); }
.aj-mega__all { grid-column: 2/-1; margin-top: -58px; min-height: 48px; background: var(--aj-accent); color: var(--aj-ink); }
.aj-mega--areas {
    right: -80px;
    left: auto;
    width: 480px;
    grid-template-columns: 1fr 1fr;
    padding: 14px;
    transform: translate(0, 12px);
}
.aj-mega--areas > p { grid-column: 1/-1; padding: 6px 8px 14px; }
.aj-mega--areas > a { display: flex; align-items: center; gap: 12px; margin: 3px; padding: 14px; background: rgba(255,255,255,.07); color: var(--aj-white); }
.aj-mega--areas > a span { color: var(--aj-accent); font-size: .6rem; }
.aj-mega--areas > a:hover { background: var(--aj-accent); color: var(--aj-ink); }
.aj-header-cta { position: relative; min-height: 50px; padding: 0 17px 0 20px; overflow: hidden; clip-path: polygon(0 0, 91% 0, 100% 28%, 100% 100%, 0 100%); }
.aj-header-cta::before { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.55), transparent 68%); transform: translateX(-120%); transition: transform .7s var(--aj-ease); }
.aj-header-cta:hover::before { transform: translateX(120%); }
.aj-header-cta > * { position: relative; }
.aj-menu-toggle { min-width: 92px; min-height: 46px; justify-content: center; border: 1px solid var(--aj-line); background: var(--aj-paper); }
.aj-menu-toggle i { display: grid; gap: 5px; width: 22px; }
.aj-menu-toggle i b { display: block; height: 2px; background: currentColor; transition: transform .25s; }
.aj-menu-toggle i b:last-child { width: 14px; margin-left: auto; }
.aj-menu-toggle:hover i b:first-child { transform: translateX(4px); }
.aj-menu-toggle:hover i b:last-child { transform: translateX(-5px); }

/* Full-height mobile menu with its own visual hierarchy. */
.aj-mobile-menu {
    padding: env(safe-area-inset-top) clamp(18px, 5vw, 38px) env(safe-area-inset-bottom);
    background:
        linear-gradient(115deg, transparent 52%, rgba(240,180,41,.07)),
        repeating-linear-gradient(90deg, transparent 0, transparent calc(25% - 1px), rgba(255,255,255,.035) 25%),
        #041525;
}
.aj-mobile-menu__glow { position: fixed; inset: -20% -25% auto 45%; height: 65vh; border-radius: 50%; background: rgba(7,89,166,.32); filter: blur(80px); pointer-events: none; }
.aj-mobile-menu__top { gap: 16px; padding: 16px 0; background: rgba(4,21,37,.88); backdrop-filter: blur(18px); }
.aj-mobile-menu__top > a { width: 146px; filter: brightness(0) invert(1); }
.aj-mobile-menu__top > span { margin-left: auto; color: rgba(255,255,255,.4); font-size: .56rem; }
.aj-mobile-menu__top button { width: 46px; height: 46px; background: var(--aj-accent); border-color: var(--aj-accent); color: var(--aj-ink); transition: transform .3s; }
.aj-mobile-menu__top button:hover { transform: rotate(90deg); }
.aj-mobile-menu__intro { position: relative; max-width: 570px; padding: clamp(24px, 6vw, 48px) 0 20px; }
.aj-mobile-menu__intro::after { content: "AJ"; position: absolute; z-index: -1; top: 0; right: 2%; color: rgba(255,255,255,.035); font-family: var(--aj-display); font-size: clamp(7rem, 35vw, 13rem); font-weight: 900; line-height: .8; }
.aj-mobile-menu__intro span { color: var(--aj-accent); font-size: .62rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.aj-mobile-menu__intro p { max-width: 550px; margin: 12px 0 0; font-family: var(--aj-display); font-size: clamp(1.55rem, 6vw, 2.8rem); font-weight: 750; line-height: 1.04; }
.aj-mobile-menu nav { position: relative; padding: 4px 0 22px; border-top: 1px solid rgba(255,255,255,.16); }
.aj-mobile-menu nav > a, .aj-mobile-menu summary {
    display: grid;
    grid-template-columns: 30px minmax(0,1fr) auto;
    min-height: clamp(62px, 9vh, 86px);
    padding: 8px 2px;
    border-bottom-color: rgba(255,255,255,.13);
    transition: color .2s, padding .3s, background .3s;
}
.aj-mobile-menu nav > a:hover, .aj-mobile-menu summary:hover { padding-inline: 10px; background: rgba(255,255,255,.045); color: var(--aj-accent); }
.aj-mobile-menu nav span { align-self: center; }
.aj-mobile-menu nav b { align-self: center; font-family: var(--aj-display); font-size: clamp(1.6rem, 6vw, 2.5rem); line-height: 1; }
.aj-mobile-menu summary { grid-template-columns: 30px minmax(0,1fr) auto 24px; }
.aj-mobile-menu summary b, .aj-mobile-menu details[open] summary b { margin-left: 0; color: inherit; transform: none; }
.aj-mobile-menu nav i { align-self: center; color: rgba(255,255,255,.4); font-family: var(--aj-body); font-size: .58rem; font-style: normal; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.aj-mobile-menu summary em { grid-column: 4; grid-row: 1; align-self: center; color: var(--aj-accent); font-family: var(--aj-body); font-size: 1.4rem; font-style: normal; transition: transform .3s; }
.aj-mobile-menu details[open] summary em { transform: rotate(45deg); }
.aj-mobile-menu details div { grid-template-columns: 1fr 1fr; gap: 1px; padding: 8px 0 18px 30px; }
.aj-mobile-menu details div a { padding: 11px 12px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.05); }
.aj-mobile-menu details div a:hover { background: var(--aj-accent); color: var(--aj-ink); }
.aj-mobile-menu__project { position: relative; padding: 24px; overflow: hidden; background: linear-gradient(135deg, var(--aj-accent), var(--aj-accent-soft)); color: var(--aj-ink); }
.aj-mobile-menu__project::after { content: "↗"; position: absolute; right: -8px; bottom: -34px; color: rgba(7,27,46,.08); font-size: 9rem; line-height: 1; }
.aj-mobile-menu__project span { display: block; font-size: .6rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.aj-mobile-menu__project strong { display: block; max-width: 390px; margin: 8px 0 20px; font-family: var(--aj-display); font-size: 2rem; line-height: 1; }
.aj-mobile-menu__project a { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; max-width: 360px; padding-top: 13px; border-top: 1px solid rgba(7,27,46,.3); font-size: .7rem; font-weight: 850; text-transform: uppercase; }
.aj-mobile-menu__footer { align-items: center; padding-bottom: max(24px, env(safe-area-inset-bottom)); }
.aj-mobile-menu__footer a { font-size: .76rem; }
.aj-mobile-menu__footer a:nth-child(2) { color: rgba(255,255,255,.72); }
.aj-mobile-menu__footer p { flex-basis: 100%; }

/* Homepage film hero, bounded to one viewport. */
.aj-home-hero {
    height: min(88svh, 860px);
    min-height: 0;
    max-height: 100svh;
    isolation: isolate;
}
.aj-home-hero__media { inset: -7%; will-change: transform; transform: translate3d(0, var(--aj-parallax-y, 0px), 0) scale(1.075); }
.aj-home-hero__media video, .aj-home-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 58% 50%; }
.aj-home-hero__shade {
    background:
        linear-gradient(90deg, rgba(4,18,31,.97) 0%, rgba(4,18,31,.84) 42%, rgba(4,18,31,.3) 73%, rgba(4,18,31,.25)),
        linear-gradient(0deg, rgba(4,18,31,.72), transparent 55%);
}
.aj-home-hero__grain { position: absolute; z-index: 1; inset: 0; opacity: .23; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; pointer-events: none; }
.aj-home-hero::before, .aj-home-hero::after { content: ""; position: absolute; z-index: 2; pointer-events: none; }
.aj-home-hero::before { top: 22px; right: 22px; width: 88px; height: 88px; border-top: 1px solid rgba(255,255,255,.35); border-right: 1px solid rgba(255,255,255,.35); }
.aj-home-hero::after { right: 22px; bottom: 22px; width: 88px; height: 88px; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.aj-home-hero__inner { grid-template-columns: minmax(0,1fr) 270px; gap: 60px; padding: clamp(70px, 9vh, 110px) 0 clamp(64px, 8vh, 86px); }
.aj-home-hero__copy { max-width: 850px; }
.aj-home-hero h1 { max-width: 850px; margin-bottom: 22px; font-size: clamp(3.3rem, 6vw, 6.35rem); line-height: .91; }
.aj-home-hero h1 em { display: inline; color: var(--aj-accent); text-shadow: 0 6px 34px rgba(240,180,41,.14); }
.aj-home-hero__lead { max-width: 650px; margin-bottom: 30px; font-size: clamp(.98rem, 1.35vw, 1.16rem); }
.aj-home-hero__card { position: relative; padding: 23px; overflow: hidden; border: 1px solid rgba(255,255,255,.17); border-top: 3px solid var(--aj-accent); background: linear-gradient(145deg, rgba(7,27,46,.78), rgba(7,89,166,.18)); }
.aj-home-hero__card::after { content: ""; position: absolute; top: -38px; right: -38px; width: 90px; height: 90px; border: 1px solid rgba(255,255,255,.12); transform: rotate(45deg); }
.aj-home-hero__card p { display: flex; align-items: center; gap: 9px; }
.aj-home-hero__card p span { width: 7px; height: 7px; border-radius: 50%; background: var(--aj-accent); box-shadow: 0 0 0 5px rgba(240,180,41,.13); }
.aj-home-hero__card strong { font-size: 1.45rem; }
.aj-home-hero__index { position: absolute; z-index: 3; top: 26px; right: max(44px, calc((100vw - 1280px)/2)); display: flex; align-items: center; gap: 12px; color: rgba(255,255,255,.62); font-size: .57rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.aj-home-hero__index i { width: 54px; height: 1px; background: rgba(255,255,255,.3); }
.aj-video-control { position: absolute; z-index: 5; left: max(32px, calc((100vw - 1280px)/2 + 32px)); bottom: 22px; display: flex; align-items: center; gap: 9px; padding: 7px 10px; border: 1px solid rgba(255,255,255,.18); background: rgba(4,18,31,.42); color: rgba(255,255,255,.76); backdrop-filter: blur(10px); font-size: .58rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.aj-video-control i { width: 8px; height: 10px; border-inline: 2px solid var(--aj-accent); }
.aj-video-control.is-paused i { width: 0; height: 0; border: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 8px solid var(--aj-accent); }

/* Parallax media remains oversized, so no edge is exposed during movement. */
.aj-page-hero { min-height: 0; height: min(82svh, 720px); max-height: 90svh; }
.aj-page-hero--compact { height: min(70svh, 580px); }
.aj-page-hero__media { inset: -5%; will-change: transform; transform: translate3d(0, var(--aj-parallax-y, 0px), 0) scale(1.055); }
.aj-page-hero h1 { max-width: 930px; font-size: clamp(3.1rem, 6.4vw, 6.4rem); line-height: .93; }
.aj-page-hero__inner { padding: clamp(44px, 7vh, 70px) 0; }

/* One-screen content rails replace multi-viewport card walls. */
[data-content-rail] {
    display: flex !important;
    grid-template-columns: none !important;
    gap: clamp(14px, 2vw, 22px);
    width: 100%;
    padding: 4px 8vw 16px 2px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 2px;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    scrollbar-color: var(--aj-accent) rgba(7,27,46,.1);
    cursor: grab;
}
[data-content-rail].is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
[data-content-rail] > * { scroll-snap-align: start; }
[data-content-rail]::after { content: ""; flex: 0 0 1px; }
.aj-service-grid .aj-service-card, .aj-service-grid .aj-service-card:nth-child(1), .aj-service-grid .aj-service-card:nth-child(5) {
    flex: 0 0 min(68vw, 620px);
    grid-column: auto;
    width: min(68vw, 620px);
    height: min(46svh, 460px);
    min-height: 340px;
}
.aj-service-card::after, .aj-location-directory > a::after, .aj-tool-directory a::after, .aj-article-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at var(--aj-pointer-x, 50%) var(--aj-pointer-y, 50%), rgba(255,255,255,.18), transparent 28%);
    opacity: 0;
    transition: opacity .35s;
}
.aj-service-card:hover::after, .aj-location-directory > a:hover::after, .aj-tool-directory a:hover::after, .aj-article-card:hover::after { opacity: 1; }
.aj-service-card__body h3 { font-size: clamp(2rem, 3.4vw, 3.5rem); }
.aj-service-directory > a {
    position: relative;
    flex: 0 0 min(76vw, 790px);
    height: min(43svh, 390px);
    min-height: 300px;
    grid-template-columns: min(34%,250px) minmax(0,1fr) 42px;
    background: linear-gradient(135deg, var(--aj-white), rgba(255,255,255,.74));
}
.aj-service-directory img { width: 100%; height: 100%; min-height: 250px; }
.aj-location-directory > a { position: relative; flex: 0 0 min(76vw, 410px); width: min(76vw, 410px); height: min(46svh, 390px); min-height: 320px; background: rgba(255,255,255,.72); backdrop-filter: blur(8px); }
.aj-tool-directory a { position: relative; flex: 0 0 min(76vw, 390px); width: min(76vw, 390px); height: min(44svh, 370px); min-height: 320px; }
.aj-article-card { position: relative; flex: 0 0 min(78vw, 390px); width: min(78vw, 390px); height: min(61svh, 530px); min-height: 470px; overflow: hidden; }
.aj-article-card img { height: 42%; aspect-ratio: auto; }
.aj-article-card div { min-height: 0; height: 58%; padding: 24px; }
.aj-article-card h2 { margin: 15px 0 10px; font-size: 1.8rem; }
.aj-project-story { height: min(84svh, 760px); min-height: 0; max-height: 90svh; }
.aj-faq__items { max-height: none; overflow: visible; overscroll-behavior: auto; }
.aj-cta { min-height: 0; height: min(68svh, 580px); max-height: 90svh; }

/* Tactile depth and more deliberate reveal motion. */
.aj-service-card, .aj-detail-grid article, .aj-tool-teasers a, .aj-related-grid a, .aj-location-services a, .aj-tool-directory a, .aj-article-card, .aj-proof-figure { box-shadow: 0 1px 0 rgba(255,255,255,.55), 0 24px 70px rgba(7,27,46,.08); }
.aj-tool-teasers a, .aj-related-grid a, .aj-location-services a, .aj-detail-grid article { position: relative; overflow: hidden; }
.aj-tool-teasers a::before, .aj-related-grid a::before, .aj-location-services a::before, .aj-detail-grid article::before { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 30%, rgba(240,180,41,.16), transparent 70%); transform: translateX(-120%); transition: transform .8s var(--aj-ease); pointer-events: none; }
.aj-tool-teasers a:hover::before, .aj-related-grid a:hover::before, .aj-location-services a:hover::before, .aj-detail-grid article:hover::before { transform: translateX(120%); }
[data-reveal] { opacity: 0; transform: translateY(34px) scale(.985); filter: blur(5px); transition: opacity .8s var(--aj-ease), transform .9s var(--aj-ease), filter .7s; }
[data-reveal].is-visible { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
.aj-scope-media img, .aj-project-story__media img, .aj-cta__media img { transform: scale(1.035); transition: transform 1.2s var(--aj-ease), filter .5s; }
.aj-scope-media:hover img, .aj-project-story__media:hover img, .aj-cta:hover .aj-cta__media img { transform: scale(1.075); filter: saturate(1.08); }

@media (max-width: 1120px) {
    .aj-nav-wrap { min-height: 76px; }
    .aj-logo { width: 180px; }
    .aj-home-hero { height: min(90svh, 820px); }
    .aj-home-hero__inner { grid-template-columns: minmax(0,1fr); }
    .aj-home-hero__card { display: none; }
}

@media (max-width: 820px) {
    .aj-section { padding: 48px 0; }
    .aj-section-heading { margin-bottom: 30px; }
    .aj-heading-split .aj-text-link { margin: -12px 0 30px; }
    .aj-logo { width: 158px; padding-right: 14px; }
    .aj-logo::after { display: none; }
    .aj-menu-toggle { min-width: 88px; }
    .aj-home-hero { height: calc(100svh - 74px); min-height: 0; max-height: calc(100svh - 74px); align-items: flex-end; }
    .aj-home-hero__media { inset: -5%; }
    .aj-home-hero__media video, .aj-home-hero__media img { object-position: 59% center; }
    .aj-home-hero__shade { background: linear-gradient(0deg, rgba(4,18,31,.98) 0%, rgba(4,18,31,.79) 48%, rgba(4,18,31,.2) 86%), linear-gradient(90deg, rgba(4,18,31,.58), transparent); }
    .aj-home-hero__inner { padding: 70px 0 68px; }
    .aj-home-hero__copy { max-width: 690px; padding-left: 18px; }
    .aj-home-hero h1 { max-width: 100%; margin-bottom: 18px; font-size: clamp(2.65rem, 9.5vw, 4.5rem); }
    .aj-home-hero__lead { max-width: 590px; margin-bottom: 24px; font-size: .96rem; line-height: 1.5; }
    .aj-home-hero__index { top: 18px; right: 22px; }
    .aj-home-hero__line { left: 15px; }
    .aj-home-hero__line::after { height: 52px; }
    .aj-video-control { left: 18px; bottom: 14px; }
    .aj-video-control span { display: none; }
    .aj-scroll-cue { display: none; }
    .aj-page-hero, .aj-page-hero--compact { height: min(78svh, 620px); min-height: 0; max-height: 90svh; }
    .aj-page-hero__inner { padding: 42px 0 50px; }
    .aj-page-hero h1 { font-size: clamp(2.9rem, 11vw, 5rem); }
    .aj-project-story { position: relative; display: flex; align-items: flex-end; min-height: 86svh; height: auto; overflow: hidden; background: var(--aj-ink); color: var(--aj-white); }
    .aj-project-story__media--large { position: absolute; inset: 0; height: auto; }
    .aj-project-story__media--large::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4,18,31,.98), rgba(4,18,31,.72) 62%, rgba(4,18,31,.15)); }
    .aj-project-story__copy { position: relative; z-index: 2; width: 100%; min-height: 86svh; max-height: none; display: flex; flex-direction: column; justify-content: flex-end; padding: 42px 24px 54px; overflow: visible; background: transparent; }
    .aj-project-story__copy > p:not(.aj-eyebrow) { color: rgba(255,255,255,.72); }
    .aj-project-story__media--small { display: none; }
    .aj-service-grid .aj-service-card, .aj-service-grid .aj-service-card:nth-child(1), .aj-service-grid .aj-service-card:nth-child(5) { flex-basis: min(84vw, 430px); width: min(84vw, 430px); height: min(43svh, 410px); min-height: 310px; }
    .aj-service-card__body { padding: 24px; }
    .aj-service-card__body p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
    .aj-service-directory > a { flex-basis: min(86vw, 560px); height: min(44svh, 370px); grid-template-columns: 36% minmax(0,1fr); gap: 18px; }
    .aj-service-directory > a > svg { display: none; }
    .aj-service-directory p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
    .aj-location-directory, .aj-tool-directory, .aj-article-grid { grid-template-columns: none; }
    .aj-location-directory > a, .aj-tool-directory a { min-height: 300px; }
    .aj-article-card { min-height: 440px; height: min(59svh, 500px); }
    .aj-faq__grid { gap: 28px; }
    .aj-faq__items { max-height: none; overflow: visible; }
    .aj-faq summary { padding: 18px 0; }
    .aj-cta { height: min(76svh, 590px); min-height: 0; }
    .aj-cta__inner { padding: 50px 0; }
}

@media (max-width: 520px) {
    .aj-menu-toggle { min-width: 48px; width: 48px; padding: 0; }
    .aj-menu-toggle i { width: 21px; }
    .aj-home-hero__inner { padding: 60px 0 60px; }
    .aj-home-hero__copy { padding-left: 11px; }
    .aj-home-hero h1 { max-width: 100%; font-size: clamp(2.45rem, 9.8vw, 3.35rem); line-height: .93; }
    .aj-home-hero__lead { display: block; overflow: visible; }
    .aj-home-hero .aj-button { min-height: 50px; }
    .aj-home-hero .aj-text-link { font-size: .7rem; }
    .aj-home-hero__index { display: none; }
    .aj-mobile-menu__top > span { display: none; }
    .aj-mobile-menu nav > a, .aj-mobile-menu summary { min-height: 64px; }
    .aj-mobile-menu nav i { display: none; }
    .aj-mobile-menu details div { grid-template-columns: 1fr; }
    .aj-mobile-menu__intro { padding-top: 26px; }
    .aj-mobile-menu__intro p { font-size: 1.65rem; }
    .aj-service-directory > a { flex-basis: 88vw; grid-template-columns: 100px minmax(0,1fr); min-height: 270px; height: 38svh; padding: 12px; }
    .aj-service-directory img { width: 100px; min-height: 210px; }
    .aj-service-directory h2 { font-size: 1.55rem; }
    .aj-location-directory > a, .aj-tool-directory a { flex-basis: 84vw; width: 84vw; height: 40svh; padding: 26px; }
    .aj-article-card { flex-basis: 86vw; width: 86vw; }
    .aj-project-story__copy { padding: 34px 20px 44px; }
    .aj-project-story__copy h2 { font-size: 2.25rem; }
    .aj-project-story__copy .aj-tick-list { margin: 17px 0 23px; gap: 7px; font-size: .84rem; }
}

@media (prefers-reduced-motion: reduce) {
    .aj-home-hero__media, .aj-page-hero__media { transform: scale(1.055); }
    [data-content-rail] { scroll-behavior: auto; }
    [data-reveal] { filter: none; }
}

/* Homepage services: compact editorial rail with uninterrupted page scroll. */
#home-services {
    padding: clamp(46px, 4.8vw, 66px) 0;
    overflow: clip;
    background:
        radial-gradient(circle at 88% 4%, rgba(240,180,41,.2), transparent 24rem),
        linear-gradient(115deg, rgba(255,255,255,.94), rgba(247,245,239,.88) 58%, rgba(233,239,243,.8)),
        var(--aj-paper);
}
#home-services::after {
    content: "SERVICES";
    position: absolute;
    z-index: 0;
    top: -1.5rem;
    right: -1.5rem;
    color: rgba(7,27,46,.032);
    font-family: var(--aj-display);
    font-size: clamp(8rem, 18vw, 18rem);
    font-weight: 900;
    letter-spacing: -.08em;
    line-height: .8;
    pointer-events: none;
}
#home-services > .aj-shell { position: relative; z-index: 1; }
.aj-services-intro {
    display: grid;
    grid-template-columns: minmax(150px,.42fr) minmax(420px,1.25fr) minmax(220px,.52fr);
    gap: clamp(26px, 4vw, 64px);
    align-items: end;
    margin-bottom: clamp(24px, 3vw, 34px);
    padding-top: 22px;
    border-top: 1px solid rgba(7,27,46,.22);
}
.aj-services-intro__marker { align-self: stretch; display: flex; align-items: flex-start; gap: 14px; }
.aj-services-intro__marker span {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex: 0 0 auto;
    background: var(--aj-accent);
    clip-path: polygon(0 0, 78% 0, 100% 22%, 100% 100%, 0 100%);
    font-family: var(--aj-display);
    font-size: 1.05rem;
    font-weight: 900;
}
.aj-services-intro__marker p {
    max-width: 100px;
    margin: 5px 0 0;
    color: var(--aj-blue);
    font-size: .63rem;
    font-weight: 900;
    letter-spacing: .14em;
    line-height: 1.35;
    text-transform: uppercase;
}
.aj-services-intro__copy { padding-left: clamp(20px, 2vw, 34px); border-left: 1px solid rgba(7,27,46,.16); }
.aj-services-intro__copy h2 {
    max-width: none;
    margin: 0 0 13px;
    font-size: clamp(2.75rem, 4vw, 4.35rem);
    line-height: .94;
}
.aj-services-intro__copy > p {
    max-width: 650px;
    margin: 0;
    color: var(--aj-muted);
    font-size: .96rem;
    line-height: 1.55;
}
.aj-services-intro__actions { display: grid; justify-items: end; gap: 22px; }
.aj-services-intro__actions .aj-text-link { margin: 0; }
.aj-rail-controls { display: grid; grid-template-columns: auto 42px 42px; align-items: center; gap: 7px; }
.aj-rail-controls > span { margin-right: 7px; color: var(--aj-muted); font-size: .57rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.aj-rail-controls button {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid rgba(7,27,46,.2);
    background: rgba(255,255,255,.68);
    color: var(--aj-ink);
    transition: color .25s, background .25s, border-color .25s, transform .25s var(--aj-ease);
}
.aj-rail-controls button:first-of-type svg { transform: rotate(180deg); }
.aj-rail-controls button:hover { border-color: var(--aj-accent); background: var(--aj-accent); transform: translateY(-2px); }
#home-service-rail {
    padding: 2px 5vw 4px 0;
    scrollbar-width: none;
    touch-action: pan-x pan-y;
}
#home-service-rail::-webkit-scrollbar { display: none; }
#home-service-rail .aj-service-card,
#home-service-rail .aj-service-card:nth-child(1),
#home-service-rail .aj-service-card:nth-child(5) {
    flex: 0 0 min(72vw, 540px);
    width: min(72vw, 540px);
    height: clamp(300px, 38svh, 380px);
    min-height: 0;
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 20px 55px rgba(7,27,46,.13);
    clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 20px, 100% 100%, 0 100%);
}
#home-service-rail .aj-service-card figure::after {
    background:
        linear-gradient(0deg, rgba(4,18,31,.98), rgba(4,18,31,.76) 40%, rgba(4,18,31,.08) 78%),
        linear-gradient(90deg, rgba(4,18,31,.35), transparent 62%);
}
#home-service-rail .aj-service-card__body { padding: clamp(23px, 2.5vw, 30px); transition: transform .45s var(--aj-ease); }
#home-service-rail .aj-service-card:hover .aj-service-card__body { transform: translateY(-5px); }
#home-service-rail .aj-service-card__body h3 { margin-bottom: 10px; font-size: clamp(2rem, 3vw, 3rem); }
#home-service-rail .aj-service-card__body p {
    display: -webkit-box;
    max-width: 470px;
    margin-bottom: 16px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: .88rem;
}
#home-service-rail .aj-service-card__number {
    top: 18px;
    right: 18px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(255,255,255,.28);
    background: rgba(4,18,31,.48);
    backdrop-filter: blur(8px);
}

@media (max-width: 980px) {
    .aj-services-intro { grid-template-columns: 120px minmax(0,1fr); gap: 24px 34px; }
    .aj-services-intro__actions { grid-column: 2; display: flex; align-items: center; justify-content: space-between; justify-items: initial; }
}

@media (max-width: 640px) {
    #home-services { padding: 40px 0; }
    #home-services::after { top: 1rem; font-size: 8rem; }
    .aj-services-intro { display: grid; grid-template-columns: 1fr; gap: 16px; margin-bottom: 22px; padding-top: 14px; }
    .aj-services-intro__marker { align-items: center; }
    .aj-services-intro__marker span { width: 36px; height: 36px; font-size: .85rem; }
    .aj-services-intro__marker p { max-width: none; margin: 0; }
    .aj-services-intro__copy { padding: 0; border: 0; }
    .aj-services-intro__copy h2 { margin-bottom: 10px; font-size: clamp(2.55rem, 12vw, 3.35rem); }
    .aj-services-intro__copy > p { font-size: .9rem; line-height: 1.5; }
    .aj-services-intro__actions { grid-column: auto; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
    .aj-rail-controls { grid-template-columns: 38px 38px; }
    .aj-rail-controls > span { display: none; }
    .aj-rail-controls button { width: 38px; height: 38px; }
    #home-service-rail { margin-right: -14px; padding-right: 14px; }
    #home-service-rail .aj-service-card,
    #home-service-rail .aj-service-card:nth-child(1),
    #home-service-rail .aj-service-card:nth-child(5) {
        flex-basis: min(86vw, 390px);
        width: min(86vw, 390px);
        height: clamp(250px, 38svh, 330px);
    }
    #home-service-rail .aj-service-card__body { padding: 21px; }
    #home-service-rail .aj-service-card__body h3 { font-size: clamp(1.85rem, 9vw, 2.5rem); }
    #home-service-rail .aj-service-card__body p { margin-bottom: 12px; font-size: .82rem; }
}
