:root {
    --ink: #02051f;
    --ink-soft: #0a103c;
    --paper: #fcfbf9;
    --sand: #f1f1f6;
    --white: #ffffff;
    --lime: #e83818;
    --lime-deep: #c92d13;
    --brand-soft: #f9ded8;
    --muted: #62647a;
    --line: rgba(2, 5, 31, 0.14);
    --line-light: rgba(255, 255, 255, 0.16);
    --shadow: 0 24px 70px rgba(2, 5, 31, 0.15);
    --radius: 18px;
    --container: 1240px;
}

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

html { scroll-behavior: smooth; }

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: "DM Sans", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

body.nav-open { overflow: hidden; }

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 {
    font-family: "Manrope", Arial, sans-serif;
    letter-spacing: -0.045em;
    line-height: 1.05;
}
h1 { font-size: clamp(3.7rem, 7.2vw, 7rem); font-weight: 700; }
h2 { font-size: clamp(2.65rem, 5vw, 5rem); font-weight: 650; }
h3 { font-size: clamp(1.25rem, 2vw, 1.8rem); font-weight: 650; }
h1 em, h2 em {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
    letter-spacing: -0.055em;
}

::selection { background: var(--brand-soft); color: var(--ink); }

.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.section { padding: clamp(88px, 11vw, 150px) 0; }
.section--ink { background: var(--ink); color: var(--white); }
.section--sand { background: var(--sand); }
.section--lime { background: var(--lime); color: var(--white); }

.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link {
    position: fixed; top: 12px; left: 12px; z-index: 1000; padding: 10px 16px;
    background: var(--lime); color: var(--white); transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }

.eyebrow {
    display: flex; align-items: center; gap: 11px; margin-bottom: 24px;
    color: #4f5b61; font-size: .76rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase;
}
.eyebrow > span { width: 26px; height: 2px; background: var(--lime-deep); }
.eyebrow--light { color: rgba(255,255,255,.64); }
.eyebrow--light > span { background: var(--lime); }

.button {
    display: inline-flex; align-items: center; justify-content: center; gap: 24px;
    min-height: 56px; padding: 0 24px; border: 1px solid transparent; border-radius: 999px;
    font-family: "Manrope", sans-serif; font-size: .88rem; font-weight: 700;
    transition: transform .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease;
}
.button:hover { transform: translateY(-2px); }
.button:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 3px solid rgba(232,56,24,.4); outline-offset: 3px;
}
.button--lime { background: var(--lime); color: var(--white); box-shadow: 0 12px 30px rgba(232,56,24,.22); }
.button--lime:hover { background: var(--lime-deep); }
.button--ink { background: var(--ink); color: var(--white); }
.button--ink:hover { background: var(--ink-soft); }
.button--small { min-height: 44px; padding: 0 19px; gap: 12px; font-size: .8rem; }
.button:disabled { cursor: wait; opacity: .65; }

.text-link {
    display: inline-flex; align-items: center; gap: 18px; padding-bottom: 5px;
    border-bottom: 1px solid currentColor; font-size: .88rem; font-weight: 600;
    transition: gap .25s ease, color .25s ease;
}
.text-link:hover { gap: 25px; color: var(--lime-deep); }
.text-link--light { color: rgba(255,255,255,.84); }
.text-link--light:hover { color: var(--lime); }
.button-row { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }

/* Navigation */
.site-header {
    position: sticky; top: 0; z-index: 100; height: 84px; margin-bottom: -84px;
    border-bottom: 1px solid transparent; transition: background-color .3s ease, border-color .3s ease, height .3s ease;
}
.site-header.is-scrolled {
    height: 72px; background: rgba(251,250,246,.92); color: var(--ink);
    border-color: var(--line); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
}
.page-home .site-header:not(.is-scrolled), .page-services .site-header:not(.is-scrolled), .page-contact .site-header:not(.is-scrolled) { color: var(--white); }
.nav-shell { height: 100%; display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.brand-logo { width: 176px; height: auto; }
.brand-logo--light { display: none; }
.page-home .site-header:not(.is-scrolled) .brand-logo--dark,
.page-services .site-header:not(.is-scrolled) .brand-logo--dark,
.page-contact .site-header:not(.is-scrolled) .brand-logo--dark { display: none; }
.page-home .site-header:not(.is-scrolled) .brand-logo--light,
.page-services .site-header:not(.is-scrolled) .brand-logo--light,
.page-contact .site-header:not(.is-scrolled) .brand-logo--light { display: block; }
.site-nav { display: flex; align-items: center; gap: 32px; }
.site-nav > a:not(.button) { position: relative; font-size: .82rem; font-weight: 500; }
.site-nav > a:not(.button)::after {
    content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--lime);
    transition: right .25s ease;
}
.site-nav > a:not(.button):hover::after, .site-nav > a.is-active::after { right: 0; }
.nav-cta { margin-left: 10px; background: var(--lime); color: var(--white); }
.nav-toggle { display: none; width: 46px; height: 46px; padding: 0; border: 0; background: transparent; color: currentColor; }
.nav-toggle span:not(.sr-only) { display: block; width: 23px; height: 1.5px; margin: 6px auto; background: currentColor; transition: transform .25s ease; }

/* Hero */
.hero { position: relative; min-height: 830px; padding: 156px 0 80px; overflow: hidden; }
.hero::before {
    content: ""; position: absolute; inset: 0; opacity: .07; pointer-events: none;
    background-image: linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px);
    background-size: 68px 68px; mask-image: linear-gradient(to right, black, transparent 70%);
}
.hero-orbit { position: absolute; width: 700px; height: 700px; left: -420px; top: 85px; border: 1px solid rgba(232,56,24,.26); border-radius: 50%; }
.hero-orbit::before, .hero-orbit::after { content:""; position:absolute; inset:70px; border:1px solid rgba(232,56,24,.14); border-radius:50%; }
.hero-orbit::after { inset: 150px; }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: .88fr 1.12fr; gap: 70px; align-items: center; }
.hero-copy { padding-top: 34px; }
.hero h1 { max-width: 720px; margin-bottom: 30px; }
.hero h1 em { color: var(--lime); }
.hero-lead { max-width: 610px; margin-bottom: 38px; color: rgba(255,255,255,.68); font-size: clamp(1.05rem, 1.5vw, 1.25rem); }
.hero-signals { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 72px; padding-top: 24px; border-top: 1px solid var(--line-light); }
.hero-signals > div { display: flex; gap: 13px; align-items: flex-start; padding-right: 14px; }
.hero-signals strong { color: var(--lime); font-size: .62rem; letter-spacing: .08em; }
.hero-signals span { color: rgba(255,255,255,.58); font-size: .69rem; line-height: 1.4; }
.hero-visual { position: relative; min-width: 0; }
.hero-photo { height: 560px; margin: 0; overflow: hidden; border-radius: 160px 8px 8px 8px; box-shadow: 0 30px 90px rgba(0,0,0,.28); }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 62% center; }
.hero-card { position: absolute; z-index: 2; background: rgba(251,250,246,.95); color: var(--ink); box-shadow: var(--shadow); backdrop-filter: blur(12px); }
.hero-card--top { top: 58px; left: -48px; display: flex; gap: 13px; align-items: flex-start; padding: 18px 22px; border-radius: 4px 18px 18px 18px; }
.hero-card--top p { margin: 0; font-size: .72rem; line-height: 1.45; }
.hero-card--top strong { font-size: .9rem; }
.status-dot { width: 9px; height: 9px; margin-top: 5px; background: var(--lime); border-radius: 50%; box-shadow: 0 0 0 5px rgba(232,56,24,.14); }
.hero-card--bottom { right: -22px; bottom: 35px; width: 260px; padding: 21px 24px; border-left: 4px solid var(--lime-deep); }
.hero-card--bottom span { display:block; margin-bottom:5px; color:var(--muted); font-size:.65rem; text-transform:uppercase; letter-spacing:.12em; }
.hero-card--bottom strong { font-family:"Manrope",sans-serif; font-size:.8rem; }

.signal-bar { background: var(--lime); color: var(--white); padding: 18px 0; }
.signal-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; overflow: hidden; }
.signal-row span { flex: 0 0 auto; font-family: "Manrope", sans-serif; font-size: .7rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.signal-row i { width: 4px; height: 4px; background: var(--white); border-radius: 50%; opacity: .55; }

/* Section headings and cards */
.section-heading { margin-bottom: 64px; }
.split-heading { display: grid; grid-template-columns: 1.45fr .55fr; gap: 70px; align-items: end; }
.split-heading h2 { margin-bottom: 0; }
.split-heading > p { max-width: 470px; margin-bottom: 8px; color: var(--muted); font-size: 1.04rem; }
.split-heading--light > p { color: rgba(255,255,255,.62); }
.split-heading--light h2 { color: var(--white); }
.split-heading--light h2 em { color: var(--lime); }
.center-heading { max-width: 820px; margin-inline: auto; text-align: center; }
.center-heading .eyebrow { justify-content: center; }

.service-grid { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.service-card { min-height: 410px; padding: 34px 38px 32px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); display:flex; flex-direction:column; transition: background-color .3s ease, transform .3s ease; }
.service-card:hover { background: var(--white); transform: translateY(-5px); box-shadow: 0 20px 50px rgba(2,5,31,.08); }
.service-card--dark { background: var(--ink); color: var(--white); }
.service-card--dark:hover { background: var(--ink-soft); }
.service-number { align-self: flex-end; color: var(--muted); font-size: .66rem; letter-spacing: .12em; }
.service-icon { width: 54px; height: 54px; margin: 28px 0 45px; display:grid; place-items:center; border-radius:50%; background:var(--brand-soft); color:var(--lime-deep); }
.service-card--dark .service-icon { background:var(--lime); color:var(--white); }
.service-icon svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.service-card h3 { max-width: 470px; margin-bottom: 18px; font-size: clamp(1.55rem, 2.7vw, 2.3rem); }
.service-card p { max-width: 530px; color: var(--muted); }
.service-card--dark p, .service-card--dark .service-number { color: rgba(255,255,255,.6); }
.card-link { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 24px; border-top: 1px solid currentColor; font-size: .77rem; font-weight: 600; }
.card-link span { font-size: 1.1rem; transition: transform .25s ease; }
.card-link:hover span { transform: translate(3px,-3px); }

/* Outcome */
.outcome-grid { display: grid; grid-template-columns: 1.03fr .97fr; gap: clamp(55px, 8vw, 110px); align-items: center; }
.image-panel { position: relative; min-width: 0; }
.image-panel img { width: 100%; aspect-ratio: 4/5; object-fit: cover; border-radius: var(--radius); }
.image-label { position: absolute; left: 24px; bottom: 24px; padding: 12px 16px; background: var(--lime); color:var(--white); font-size:.68rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.outcome-copy h2 { margin-bottom: 28px; }
.large-copy { color: #39494f; font-size: clamp(1.08rem,1.6vw,1.28rem); line-height:1.65; }
.check-list { list-style:none; padding:0; margin:42px 0; border-top:1px solid var(--line); }
.check-list li { display:grid; grid-template-columns:34px 1fr; gap:14px; padding:20px 0; border-bottom:1px solid var(--line); }
.check-list li > span { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:var(--brand-soft); color:var(--lime-deep); font-size:.7rem; }
.check-list strong { display:block; margin-bottom:4px; font-family:"Manrope",sans-serif; font-size:.94rem; }
.check-list p { margin:0; color:var(--muted); font-size:.88rem; }

/* Process */
.process-line { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
.process-line article { position:relative; padding:42px 30px 20px 0; }
.process-line article::before { content:""; position:absolute; top:-5px; left:0; width:9px; height:9px; border-radius:50%; background:var(--lime-deep); }
.process-line article:not(:last-child)::after { content:""; position:absolute; top:0; right:30px; width:1px; height:64px; background:var(--line); }
.process-line span, .value-grid span, .engagement-options span { color:var(--lime-deep); font-size:.66rem; font-weight:700; letter-spacing:.12em; }
.process-line h3 { margin:44px 0 12px; }
.process-line p { max-width:240px; color:var(--muted); font-size:.88rem; }

/* CTA */
.cta-section { padding: clamp(72px, 9vw, 110px) 0; }
.section--lime .eyebrow { color:rgba(255,255,255,.72); }
.section--lime .eyebrow > span { background:var(--white); }
.cta-grid { display:grid; grid-template-columns:.38fr 1fr .62fr; gap:55px; align-items:center; }
.cta-grid .eyebrow { align-self:start; margin-top:10px; }
.cta-grid h2 { margin:0; font-size:clamp(2.65rem,4.5vw,4.7rem); }
.cta-grid > div p { margin-bottom:26px; font-size:1rem; }

/* Page hero */
.page-hero { min-height: 590px; padding: 190px 0 100px; display:flex; align-items:flex-end; }
.page-hero--sand { background:var(--sand); padding-top:200px; }
.page-hero-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:80px; align-items:end; }
.page-hero h1 { margin:0; font-size:clamp(3.7rem,7vw,6.8rem); }
.section--ink.page-hero h1 em { color:var(--lime); }
.page-hero-copy { padding-bottom:13px; }
.page-hero-copy p { margin-bottom:34px; color:rgba(255,255,255,.65); font-size:clamp(1.05rem,1.5vw,1.25rem); }
.page-hero--sand .page-hero-copy p { color:var(--muted); }

/* Services */
.service-detail-list { padding-bottom:80px; }
.service-detail { display:grid; grid-template-columns:1fr 1fr; gap:clamp(55px,8vw,110px); align-items:center; padding:90px 0; border-bottom:1px solid var(--line); scroll-margin-top:80px; }
.service-detail:first-child { padding-top:20px; }
.service-detail--reverse .service-detail-image { order:2; }
.service-detail-image { position:relative; }
.service-detail-image img { width:100%; aspect-ratio:4/4.5; object-fit:cover; border-radius:var(--radius); }
.service-detail:nth-child(2) .service-detail-image img { object-position:64% center; }
.service-detail-image > span { position:absolute; right:16px; top:16px; padding:9px 12px; background:rgba(2,5,31,.9); color:var(--white); border-radius:999px; font-size:.62rem; letter-spacing:.1em; }
.service-detail-copy h2 { margin-bottom:28px; font-size:clamp(2.3rem,4vw,4rem); }
.scope-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:38px; }
.scope-grid strong { display:block; padding-bottom:12px; border-bottom:1px solid var(--line); font-family:"Manrope",sans-serif; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; }
.scope-grid ul { list-style:none; padding:0; margin:12px 0 0; }
.scope-grid li { position:relative; padding:7px 0 7px 16px; color:var(--muted); font-size:.86rem; }
.scope-grid li::before { content:""; position:absolute; left:0; top:16px; width:5px; height:5px; border-radius:50%; background:var(--lime-deep); }
.service-note { margin:28px 0 0; padding:14px 16px; background:var(--sand); color:var(--muted); font-size:.77rem; }
.engagement-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(60px,10vw,140px); }
.engagement-grid h2 { font-size:clamp(2.6rem,4.4vw,4.6rem); }
.engagement-options { border-top:1px solid var(--line); }
.engagement-options article { display:grid; grid-template-columns:50px 1fr; gap:20px; padding:28px 0; border-bottom:1px solid var(--line); }
.engagement-options h3 { margin:0 0 8px; }
.engagement-options p { margin:0; color:var(--muted); }

/* About */
.about-story-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(60px,9vw,130px); align-items:center; }
.about-collage { position:relative; min-height:650px; }
.about-collage-main { width:88%; height:520px; object-fit:cover; object-position:64% center; border-radius:var(--radius); }
.about-collage-detail { position:absolute; width:45%; height:280px; right:0; bottom:0; object-fit:cover; border:12px solid var(--paper); border-radius:var(--radius); }
.about-collage .image-label { left:auto; right:24px; bottom:255px; }
.about-story-copy h2 { margin-bottom:28px; }
.about-story-copy > p:not(.eyebrow) { color:var(--muted); }
.about-story-copy blockquote { margin:40px 0 0; padding:24px 0 0 28px; border-top:1px solid var(--line); border-left:3px solid var(--lime-deep); font-family:Georgia,serif; font-size:1.25rem; line-height:1.5; }
.mission-grid { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.mission-grid article { min-height:280px; padding:38px 42px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.mission-grid span { display:block; margin-bottom:70px; color:var(--lime-deep); font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.mission-grid h3 { max-width:510px; margin:0; font-size:clamp(1.45rem,2.5vw,2.15rem); line-height:1.25; }
.value-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:80px; border-top:1px solid var(--line-light); }
.value-grid article { min-height:260px; padding:30px 30px 20px 0; }
.value-grid article:not(:last-child) { border-right:1px solid var(--line-light); margin-right:30px; }
.value-grid h3 { margin:75px 0 12px; color:var(--white); }
.value-grid p { color:rgba(255,255,255,.57); font-size:.88rem; }
.who-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(65px,10vw,145px); }
.who-grid h2 { font-size:clamp(2.5rem,4.3vw,4.5rem); }
.who-list { border-top:1px solid var(--line); }
.who-list > div { display:grid; grid-template-columns:58px 1fr; gap:24px; padding:27px 0; border-bottom:1px solid var(--line); }
.who-list span { color:var(--lime-deep); font-size:.65rem; font-weight:700; }
.who-list p { margin:0; font-size:1.05rem; }

/* Contact */
.contact-hero { min-height:760px; padding:170px 0 100px; }
.contact-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(60px,9vw,125px); align-items:start; }
.contact-intro { padding-top:30px; }
.contact-intro h1 { max-width:650px; margin-bottom:30px; font-size:clamp(3.6rem,6.7vw,6.5rem); }
.contact-intro h1 em { color:var(--lime); }
.contact-intro > p:not(.eyebrow) { max-width:540px; color:rgba(255,255,255,.62); font-size:1.08rem; }
.contact-details { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:65px; padding-top:28px; border-top:1px solid var(--line-light); }
.contact-details > div { display:flex; flex-direction:column; align-items:flex-start; }
.contact-details span { margin-bottom:7px; color:var(--lime); font-size:.64rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.contact-details a, .contact-details p { margin:0; color:rgba(255,255,255,.72); font-size:.8rem; line-height:1.55; }
.contact-details a:hover { color:var(--lime); }
.contact-form-card { background:var(--paper); color:var(--ink); padding:38px 42px 42px; border-radius:var(--radius); box-shadow:0 30px 90px rgba(0,0,0,.22); }
.form-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:35px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.form-heading span { font-family:"Manrope",sans-serif; font-size:1.2rem; font-weight:700; }
.form-heading p { margin:0; color:var(--muted); font-size:.68rem; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.field { display:block; margin-bottom:20px; }
.field > span { display:block; margin-bottom:8px; color:#435158; font-size:.7rem; font-weight:600; }
.field input, .field select, .field textarea {
    width:100%; border:1px solid #d9d9d2; border-radius:8px; background:var(--white); color:var(--ink); padding:13px 14px; font-size:.9rem;
    transition:border-color .2s ease, box-shadow .2s ease;
}
.field input, .field select { min-height:50px; }
.field textarea { min-height:125px; resize:vertical; line-height:1.5; }
.field input:hover, .field select:hover, .field textarea:hover { border-color:#aab1ad; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:var(--lime); box-shadow:0 0 0 3px rgba(232,56,24,.12); outline:none; }
.form-submit-row { display:flex; align-items:center; gap:22px; margin-top:5px; }
.form-submit-row p { max-width:220px; margin:0; color:var(--muted); font-size:.62rem; line-height:1.45; }
.form-response { display:none; margin-top:20px; padding:13px 15px; border-radius:7px; font-size:.78rem; }
.form-response.is-pending, .form-response.is-success, .form-response.is-error { display:block; }
.form-response.is-pending { background:#eef1f2; color:#3a4a51; }
.form-response.is-success { background:#edf7d9; color:#32480c; }
.form-response.is-error { background:#fff0ec; color:#8c2d17; }
.contact-aftercare { background:var(--sand); padding:55px 0; }
.contact-aftercare-grid { display:grid; grid-template-columns:.5fr repeat(3,1fr); gap:42px; }
.contact-aftercare-grid > p { font-family:"Manrope",sans-serif; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.contact-aftercare-grid > div { display:grid; grid-template-columns:35px 1fr; column-gap:12px; }
.contact-aftercare-grid span { grid-row:1/3; color:var(--lime-deep); font-size:.65rem; font-weight:700; }
.contact-aftercare-grid strong { font-family:"Manrope",sans-serif; font-size:.9rem; }
.contact-aftercare-grid div p { margin:7px 0 0; color:var(--muted); font-size:.78rem; }

/* Footer */
.site-footer { position:relative; overflow:hidden; background:#010318; color:var(--white); padding:78px 0 26px; }
.site-footer::after { content:""; position:absolute; width:420px; height:420px; right:-240px; bottom:-250px; border:1px solid rgba(232,56,24,.22); border-radius:50%; box-shadow:0 0 0 70px rgba(232,56,24,.035), 0 0 0 140px rgba(232,56,24,.025); pointer-events:none; }
.site-footer .container { position:relative; z-index:1; }
.footer-grid { display:grid; grid-template-columns:1.55fr .65fr .9fr 1.15fr; gap:65px; padding-bottom:65px; }
.brand--footer .brand-logo { width:230px; }
.footer-intro p { max-width:330px; margin:25px 0 0; color:rgba(255,255,255,.48); font-size:.87rem; }
.footer-label { margin-bottom:22px; color:rgba(255,255,255,.4); font-size:.63rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.footer-links { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.footer-links a, .footer-links span { color:rgba(255,255,255,.68); font-size:.8rem; }
.footer-links a:hover { color:var(--lime); }
.footer-contact a:first-child { overflow-wrap:anywhere; }
.footer-bottom { display:flex; justify-content:space-between; padding-top:22px; border-top:1px solid var(--line-light); }
.footer-bottom p { margin:0; color:rgba(255,255,255,.36); font-size:.62rem; letter-spacing:.04em; }

/* Motion */
.js [data-reveal] { opacity:0; transform:translateY(26px); transition:opacity .75s cubic-bezier(.2,.75,.3,1), transform .75s cubic-bezier(.2,.75,.3,1); }
.js [data-reveal].is-visible { opacity:1; transform:none; }
.js [data-reveal-delay="1"] { transition-delay:.1s; }
.js [data-reveal-delay="2"] { transition-delay:.2s; }
.js [data-reveal-delay="3"] { transition-delay:.3s; }

@media (max-width: 1080px) {
    .hero-grid { grid-template-columns:1fr 1fr; gap:45px; }
    .hero-photo { height:510px; }
    .hero-card--top { left:-20px; }
    .site-nav { gap:22px; }
    .nav-cta { margin-left:0; }
    .cta-grid { grid-template-columns:.3fr 1fr .7fr; gap:35px; }
    .footer-grid { grid-template-columns:1.25fr .6fr .8fr 1fr; gap:35px; }
}

@media (max-width: 860px) {
    .container { width:min(calc(100% - 36px), var(--container)); }
    .site-header { height:72px; }
    .nav-toggle { display:block; position:relative; z-index:3; }
    .site-nav {
        position:fixed; inset:0; z-index:2; display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
        gap:24px; padding:90px 36px 50px; background:var(--ink); color:var(--white); opacity:0; visibility:hidden; transform:translateY(-12px);
        transition:opacity .25s ease, transform .25s ease, visibility .25s;
    }
    .site-nav.is-open { opacity:1; visibility:visible; transform:none; }
    .site-nav > a:not(.button) { font-family:"Manrope",sans-serif; font-size:clamp(1.9rem,8vw,3.2rem); font-weight:650; letter-spacing:-.04em; }
    .site-nav > a:not(.button)::after { bottom:-2px; }
    .site-nav .nav-cta { margin-top:14px; }
    .nav-open .nav-toggle span:not(.sr-only):first-of-type { transform:translateY(3.75px) rotate(45deg); }
    .nav-open .nav-toggle span:not(.sr-only):last-of-type { transform:translateY(-3.75px) rotate(-45deg); }
    .nav-open .site-header, .nav-open .site-header.is-scrolled { color:var(--white); background:transparent; border-color:transparent; }
    .nav-open .brand { position:relative; z-index:3; }
    .nav-open .brand-logo--dark { display:none!important; }
    .nav-open .brand-logo--light { display:block!important; }

    .hero { min-height:auto; padding-top:135px; }
    .hero-grid { grid-template-columns:1fr; gap:58px; }
    .hero-copy { padding-top:0; }
    .hero-copy h1 { max-width:780px; }
    .hero-signals { margin-top:50px; }
    .hero-visual { width:92%; margin-left:auto; }
    .hero-photo { height:500px; }
    .split-heading, .page-hero-grid, .outcome-grid, .service-detail, .engagement-grid, .about-story-grid, .who-grid, .contact-grid { grid-template-columns:1fr; }
    .split-heading { gap:28px; }
    .split-heading > p { max-width:650px; }
    .process-line { grid-template-columns:1fr 1fr; }
    .process-line article:nth-child(2)::after { display:none; }
    .cta-grid { grid-template-columns:1fr 1.4fr; }
    .cta-grid > .eyebrow { grid-column:1/-1; }
    .page-hero { min-height:520px; }
    .page-hero-grid { gap:35px; }
    .page-hero-copy { max-width:640px; }
    .service-detail { gap:45px; }
    .service-detail--reverse .service-detail-image { order:0; }
    .service-detail-image img { aspect-ratio:16/10; }
    .engagement-grid { gap:35px; }
    .about-collage { min-height:590px; max-width:700px; }
    .value-grid { grid-template-columns:1fr 1fr; }
    .value-grid article:nth-child(2) { border-right:0; margin-right:0; }
    .contact-intro { padding-top:0; }
    .contact-hero { padding-top:140px; }
    .contact-grid { gap:60px; }
    .contact-aftercare-grid { grid-template-columns:1fr 1fr 1fr; }
    .contact-aftercare-grid > p { grid-column:1/-1; }
    .footer-grid { grid-template-columns:1.3fr 1fr 1fr; }
    .footer-intro { grid-column:1/-1; }
}

@media (max-width: 620px) {
    .container { width:min(calc(100% - 28px), var(--container)); }
    .section { padding:76px 0; }
    h1 { font-size:clamp(3.1rem,15vw,4.4rem); }
    h2 { font-size:clamp(2.4rem,11vw,3.4rem); }
    .brand-logo { width:150px; }
    .hero { padding:122px 0 65px; }
    .hero-lead { font-size:1rem; }
    .button-row { align-items:flex-start; flex-direction:column; gap:22px; }
    .hero-signals { grid-template-columns:1fr; gap:16px; }
    .hero-signals > div { padding-bottom:14px; border-bottom:1px solid var(--line-light); }
    .hero-visual { width:100%; }
    .hero-photo { height:400px; border-radius:100px 8px 8px 8px; }
    .hero-card--top { top:30px; left:-8px; }
    .hero-card--bottom { right:-5px; bottom:18px; width:225px; }
    .signal-row { justify-content:flex-start; gap:16px; }
    .signal-row span:nth-of-type(n+3), .signal-row i:nth-of-type(n+2) { display:none; }
    .service-grid { grid-template-columns:1fr; }
    .service-card { min-height:380px; padding:28px 25px; }
    .service-icon { margin:25px 0 38px; }
    .image-panel img { aspect-ratio:4/4.8; }
    .process-line { grid-template-columns:1fr; border-top:0; }
    .process-line article { padding:24px 0 24px 38px; border-left:1px solid var(--line); }
    .process-line article::before { top:31px; left:-5px; }
    .process-line article:not(:last-child)::after { display:none; }
    .process-line h3 { margin:25px 0 10px; }
    .process-line p { max-width:none; }
    .cta-grid { grid-template-columns:1fr; gap:22px; }
    .cta-grid > .eyebrow { grid-column:auto; }
    .page-hero, .page-hero--sand { min-height:520px; padding:150px 0 72px; }
    .page-hero h1 { font-size:clamp(3.1rem,15vw,4.3rem); }
    .service-detail { padding:65px 0; }
    .service-detail:first-child { padding-top:0; }
    .service-detail-image img { aspect-ratio:4/3.7; }
    .scope-grid { grid-template-columns:1fr; }
    .about-collage { min-height:470px; }
    .about-collage-main { width:100%; height:390px; }
    .about-collage-detail { width:48%; height:205px; border-width:8px; }
    .about-collage .image-label { right:8px; bottom:188px; }
    .mission-grid { grid-template-columns:1fr; }
    .mission-grid article { min-height:230px; padding:30px 25px; }
    .mission-grid span { margin-bottom:45px; }
    .value-grid { grid-template-columns:1fr; margin-top:50px; }
    .value-grid article { min-height:210px; border-right:0!important; border-bottom:1px solid var(--line-light); margin-right:0!important; }
    .value-grid h3 { margin-top:50px; }
    .who-list > div { grid-template-columns:36px 1fr; gap:10px; }
    .contact-hero { padding:125px 0 70px; }
    .contact-details { grid-template-columns:1fr; }
    .contact-form-card { padding:28px 20px; border-radius:12px; }
    .form-heading { align-items:flex-start; flex-direction:column; gap:5px; }
    .field-grid { grid-template-columns:1fr; gap:0; }
    .form-submit-row { align-items:flex-start; flex-direction:column; }
    .contact-aftercare-grid { grid-template-columns:1fr; gap:28px; }
    .footer-grid { grid-template-columns:1fr 1fr; gap:42px 25px; }
    .footer-intro, .footer-grid > div:last-child { grid-column:1/-1; }
    .footer-bottom { align-items:flex-start; flex-direction:column; gap:8px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior:auto; }
    *, *::before, *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
    .js [data-reveal] { opacity:1; transform:none; }
}
