@font-face{font-family:Inter;src:url(../fonts/InterVariable.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
/* Atmospheric foundation, modern editorial palette — October 2026 */
:root{--navy:#101D31;--orange:#FF754A;--cream:#F4F1E9;--eko-blue:var(--orange);--bg:var(--navy);--bg2:#16263d;--text:var(--cream);--muted:#bdc5ce;--line:rgba(244,241,233,.18)}
html{scroll-padding-top:100px}body{background:var(--navy);color:var(--cream)}
h1,h2,h3{font-weight:500}h2{letter-spacing:-.05em!important;line-height:1.07!important}
section{padding:clamp(72px,8vw,116px) 0}.container{width:min(1200px,calc(100% - 96px))}
.site-header{position:fixed;background:rgba(16,29,49,.35)}.site-header.scrolled{background:rgba(16,29,49,.94)}
.hero-overlay{background:linear-gradient(90deg,rgba(16,29,49,.83),rgba(16,29,49,.35)),linear-gradient(0deg,#101d31,transparent 50%)}
.hero h1{font-weight:500;line-height:1.02}.hero-copy{color:var(--cream);opacity:.85}.hero-content{max-width:920px}.hero-title span:last-child{color:var(--cream)}
.btn-primary{background:var(--orange);color:var(--navy);border-color:var(--orange);box-shadow:none}.btn{font-size:14px;font-weight:600;padding:16px 25px}.btn:hover{box-shadow:none}.btn-ghost{color:var(--cream)}
.section-kicker{font-size:11px!important;letter-spacing:.16em;font-weight:650}.reel-frame{border-radius:8px}.reel-atmosphere{opacity:.06!important}
.blue-statement{background:var(--orange);color:var(--navy);padding:80px 0}.blue-statement h2{font-weight:500}.blue-statement p{font-weight:400;max-width:760px;font-size:clamp(19px,2.2vw,27px)}
.blue-statement::before,.blue-statement::after,.services::before,.services::after,.contact::before,.contact::after,.map-contact::before,.map-contact::after{display:none}
.intro{background:var(--navy)}.intro-grid{gap:80px}.intro-copy{font-size:18px;line-height:1.75}.based{color:var(--cream)}
.services{background:var(--cream);color:var(--navy)}
.services .section-heading,.process .section-heading{display:grid!important;grid-template-columns:1fr 2fr;width:100%;max-width:none;gap:24px 48px;text-align:left!important;margin:0 0 56px!important;align-items:start}
.services .section-kicker,.process .section-kicker{color:inherit!important;text-align:left!important;margin:8px 0!important}.services .section-heading h2,.process .section-heading h2{font-size:clamp(38px,5vw,66px)}
.process .section-heading>p:last-child{grid-column:2;margin:0;max-width:510px;text-align:left}
.service-grid{display:block}.service-card{display:grid;grid-template-columns:.28fr 1fr 1.3fr;gap:32px;align-items:baseline;border:0;border-top:1px solid rgba(16,29,49,.24);border-radius:0;background:none;padding:32px 0;box-shadow:none!important}
.service-card:last-child{border-bottom:1px solid rgba(16,29,49,.24)}.service-card span{color:#596574;font-size:12px;font-weight:500;margin:0}.service-card h3{font-size:clamp(22px,2.5vw,30px);letter-spacing:-.035em;margin:0}.service-card p{color:#4c5969;font-size:16px;line-height:1.7}.service-card:hover{transform:none;border-color:rgba(16,29,49,.35);background:none}.service-card::after{display:none}
.process{background:var(--navy)}.process::after,.process::before{display:none}.process-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px}.process-step{border:0;border-top:1px solid var(--line);border-radius:0;background:none;padding:24px 0 0;min-height:130px;gap:28px;box-shadow:none!important;overflow:visible}.process-step:hover{transform:translateY(-3px);border-color:var(--orange)}.process-step::after{display:none}.process-number{color:var(--orange);font-size:12px;letter-spacing:.12em}.process-step strong{font-size:clamp(23px,3vw,34px);font-weight:500;letter-spacing:-.03em}
.clients{background:#16263d}.client-marquee{background:transparent}.client-marquee-item img{filter:brightness(0) invert(96%) sepia(9%) saturate(228%) hue-rotate(350deg);opacity:.8}.client-marquee-item:hover img{filter:brightness(0) invert(96%) sepia(9%) saturate(228%) hue-rotate(350deg)}
.about-section{background:var(--navy)}.portfolio{background:var(--navy)}.portfolio-video-card{border-radius:8px;background:#16263d;box-shadow:none}.portfolio-video-card:hover{transform:translateY(-4px)!important;box-shadow:0 16px 40px #0002!important}.portfolio-body h3{font-weight:500}.filter{font-size:13px;padding:11px 19px}.filter.active,.filter:hover{background:var(--orange);color:var(--navy)}
.contact{background:var(--orange);color:var(--navy)}.contact .section-kicker{color:var(--navy)!important;text-align:left!important}.contact-copy p,.direct-contact a{color:var(--navy)}.contact h2{font-size:clamp(44px,5.4vw,72px)}.contact-copy>p:not(.section-kicker){font-size:17px;line-height:1.7}.direct-contact{margin-top:32px}.direct-contact a:hover{color:var(--navy);text-decoration:underline}
.contact-grid{gap:80px;grid-template-columns:1fr 1.1fr}.contact-form{background:transparent;border:1px solid #101d3138;border-radius:8px;padding:32px;box-shadow:none}.contact-form label{color:var(--navy);font-weight:500;font-size:13px}.contact-form input,.contact-form textarea{background:#f4f1e92b;border:1px solid #101d3155;color:var(--navy);border-radius:4px}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px #101d311a}.contact .btn-primary{background:var(--navy);color:var(--cream);border-color:var(--navy)}
.map-contact{background:var(--cream);color:var(--navy)}.map-grid{grid-template-columns:1.4fr 1fr;gap:70px;align-items:center}.map-card{border:0;border-radius:4px;min-height:350px;box-shadow:none}.map-card::after,.map-pin{display:none}.map-embed{filter:none;min-height:350px;height:350px}.address-card{padding:0;background:none;border:0;border-radius:0;box-shadow:none!important}.address-card:hover{transform:none}.address-card .section-kicker{color:var(--navy)!important;text-align:left!important}.address-card h2{font-size:32px!important;font-weight:500;letter-spacing:-.04em!important}.address-card p{color:#4c5969;font-size:16px;line-height:1.8}.address-card a{text-decoration:underline;text-underline-offset:4px}.address-card a:hover{color:var(--navy)}
.site-footer{background:var(--navy);padding:38px 0;color:var(--cream)}.social-icons a{color:var(--cream)}.mobile-call{color:var(--navy)}
a:focus-visible,button:focus-visible{outline:2px solid var(--orange);outline-offset:5px}.contact a:focus-visible,.contact button:focus-visible,.services a:focus-visible{outline-color:var(--navy)}
@media(max-width:980px){.container{width:calc(100% - 48px)}.intro-grid,.contact-grid{grid-template-columns:1fr;gap:36px}.map-grid{gap:32px}.contact-copy{max-width:650px}.hero-content{max-width:90%}.service-card{grid-template-columns:30px 1fr 1.2fr;gap:24px}.process-row{gap:18px}}
@media(max-width:680px){.container{width:calc(100% - 40px)}.services .section-heading,.process .section-heading{grid-template-columns:1fr;gap:16px;margin-bottom:36px!important}.process .section-heading>p:last-child{grid-column:1}.service-card{grid-template-columns:24px 1fr;padding:25px 0;gap:12px 20px}.service-card p{grid-column:2}.process-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.process-step{min-height:110px}.map-grid{grid-template-columns:1fr;gap:36px}.contact-form{padding:22px}.footer-inner{gap:18px}.social-icons{gap:18px}.hero h1{font-size:clamp(40px,10.8vw,62px)}.hero-content{padding-top:88px}.reel-frame{width:100%}.reel-atmosphere{display:none}.hero-established{top:100px!important}.blue-statement{padding:64px 0}}
@media(prefers-reduced-motion:reduce){.reveal,[data-animate],.reveal-section,.reveal-card,.hero-title span{opacity:1!important;transform:none!important}.client-marquee-track{animation:none!important}.reel-atmosphere{display:none}}
.services .container::before,.process .container::before{display:none}.service-card,.process-step{backdrop-filter:none;-webkit-backdrop-filter:none}.section-kicker{text-shadow:none}
/* Reveal individual content without hiding entire long sections. */
section.reveal,section.reveal-section{opacity:1;transform:none;filter:none} [data-animate],.reveal-card,.reveal-logo{filter:none!important}
.services .section-heading,.process .section-heading{grid-template-columns:1fr 2fr!important;width:100%!important;max-width:none!important}.services .section-heading>*,.process .section-heading>*{width:auto!important;max-width:none!important;margin-left:0!important;margin-right:0!important;text-align:left!important}
@media(max-width:680px){.services .section-heading,.process .section-heading{grid-template-columns:1fr!important}}
@media(max-width:980px){.nav-toggle{justify-self:end}.site-header{grid-template-columns:auto 1fr auto}.top-contact{margin-right:20px}}
@media(max-width:680px){.site-header{grid-template-columns:auto 1fr}.contact-form textarea{resize:vertical}.hero-established{position:absolute!important}}

/* White header logo. */
.site-header .brand img{filter:brightness(0) invert(1)}
/* Review refinements: compact address, small footer mark, clean motion. */
.address-card h2{font-size:24px!important;margin:0 0 16px!important;line-height:1.2!important}
.address-card .section-kicker{margin:0 0 16px!important}.address-card p{margin:0 0 16px;line-height:1.65}.address-card p:last-child{margin-bottom:0}
.footer-brand{display:flex;align-items:center;gap:18px}.footer-brand img{display:block;width:32px;height:auto;filter:brightness(0) invert(1)}.footer-brand p{margin:0;font-size:14px}
.client-marquee-item img[src$="bupa.svg"],.client-marquee-item img[src$="ca.svg"]{filter:grayscale(1)!important;opacity:.9;max-height:54px}
body::before,.site-grain{animation:none!important}.cursor-glow{display:none}.light-sweep::after{display:none}
.hero-media{animation:heroDrift 28s ease-in-out infinite alternate}.hero-content::before{display:none}.hero-title span{transition:opacity .75s ease,transform .9s cubic-bezier(.22,1,.36,1)!important;transform:translateY(18px)}
.hero-title.in-view span{transform:none}.hero-title.in-view span:nth-child(2){transition-delay:100ms!important}
.reveal-card,[data-animate],.section-heading,.intro-grid>div,.statement-inner,.clients-intro,.contact-copy{transition-property:opacity,transform!important;transition-duration:.65s!important;transition-timing-function:cubic-bezier(.22,1,.36,1)!important;filter:none!important}
.portfolio-item:hover,.portfolio-video-card:hover{transform:translateY(-3px)!important;filter:none!important}.client-marquee-track{will-change:transform}.client-marquee:hover .client-marquee-track{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.hero-media{animation:none!important}.hero-title span{transition:none!important}.section-heading,.intro-grid>div,.statement-inner,.clients-intro,.contact-copy{opacity:1!important;transform:none!important;transition:none!important}}
.motion-ready:not(.in-view){opacity:0;transform:translateY(18px)}.motion-ready.in-view{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.motion-ready{opacity:1!important;transform:none!important}}
.client-marquee-item img[src$="-cream.svg"]{filter:none!important;opacity:.8;max-height:54px}
.client-marquee-item img[src$="costcutter.svg"]{width:166px;max-width:166px;height:auto;max-height:46px}

/* One clipping edge: the card owns the radius, never the video. */
.portfolio-video-card{overflow:hidden;border-radius:8px;isolation:isolate}
.portfolio-video-card .portfolio-video-thumb,
.portfolio-video-card .portfolio-video-thumb iframe{border-radius:0!important}
.portfolio-video-card .portfolio-video-thumb{overflow:hidden;margin:0;border:0}
.portfolio-video-card .portfolio-video-thumb iframe{display:block;border:0}

/* Deliberate, scroll-led motion: content first, with a quiet sense of depth. */
.hero-media{animation:none!important;transform:translate3d(0,var(--parallax-y,0px),0) scale(1.08)!important;will-change:transform}
.motion-ready{transition-duration:900ms!important;transition-timing-function:cubic-bezier(.16,1,.3,1)!important}
.motion-ready:not(.in-view){transform:translate3d(0,32px,0)}
.process-step.motion-ready:not(.in-view){transform:translate3d(-22px,12px,0)}
.service-card.motion-ready{opacity:1;transform:none}
.service-card>span,.service-card>h3,.service-card>p{transition:opacity .7s ease,transform .9s cubic-bezier(.16,1,.3,1)}
.service-card.motion-ready:not(.in-view)>*{opacity:0;transform:translate3d(-18px,0,0)}
.service-card.in-view>*{opacity:1;transform:none}
.service-card h3{transition-delay:90ms}.service-card p{transition-delay:180ms}
.process-step{position:relative}
.process-step::before{content:"";position:absolute;top:-1px;left:0;width:100%;height:1px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.16,1,.3,1);transition-delay:inherit}
.process-step.in-view::before{transform:scaleX(1)}
.portfolio-video-card.motion-ready:not(.in-view){transform:translate3d(0,36px,0)}
.portfolio-video-card:focus-within{opacity:1!important;transform:none!important}
@media(max-width:680px){.hero-media{transform:none!important;will-change:auto}.motion-ready{transition-delay:0ms!important}.motion-ready:not(.in-view){transform:translateY(18px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.hero-media{transform:none!important;will-change:auto}.motion-ready,.service-card>*{opacity:1!important;transform:none!important;transition:none!important}.process-step::before{transform:scaleX(1);transition:none}}

/* Warm map tones blend into the cream location panel without blocking controls. */
.map-card{background:var(--cream);border:1px solid rgba(16,29,49,.16);overflow:hidden}
.map-embed{filter:grayscale(1) sepia(.25) saturate(.7) contrast(.92);mix-blend-mode:multiply}
/* Preserve Google's widget, attribution and challenge while reducing its footprint. */
.captcha-panel{background:var(--navy);border:1px solid rgba(16,29,49,.18);border-radius:6px;padding:12px;width:fit-content;max-width:100%;margin:4px 0 22px}
.captcha-panel>div{zoom:.9;min-height:78px;min-width:304px}
@media(max-width:380px){.captcha-panel>div{zoom:.78}}

.captcha-panel:has(> .captcha-widget:empty){display:none}

/* Browser audit: stable cards, accessible navigation and compact laptop hero. */
.mobile-call{position:fixed!important;right:18px;left:auto;bottom:18px}
.mobile-nav[aria-hidden="true"]{visibility:hidden;pointer-events:none}
.mobile-nav[aria-hidden="false"]{visibility:visible}
#portfolioGrid{overflow-anchor:none;grid-auto-flow:row dense;align-items:stretch}
.portfolio-video-card{scroll-margin-top:112px;display:flex;flex-direction:column;position:relative}
.portfolio-body{flex:1;padding-right:68px!important}
.portfolio-expand{top:auto!important;bottom:22px!important;right:18px!important}
.contact-form input,.contact-form textarea{font-size:16px}
.hero h1{font-size:clamp(40px,5.2vw,76px)!important;text-wrap:balance;max-width:1100px}
.hero-content{max-width:1150px}
@media(min-width:981px) and (max-height:800px){.hero{min-height:100svh!important;height:auto;padding:135px 0 90px!important}.hero-content{padding-top:0!important;padding-bottom:0!important}.hero h1{font-size:clamp(44px,4.5vw,64px)!important}.hero-established{top:104px!important}.hero-copy{margin-top:20px}.hero-actions{margin-top:24px}}
.thankyou{min-height:100svh;display:grid;place-items:center;padding:32px}
.thankyou .thanks-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;min-height:0;height:auto;max-width:650px;text-align:center}
.thanks-screen>*{margin:0}.thanks-screen img{width:64px;filter:brightness(0) invert(1)}

/* Audit round 3 */
/* Stop "View more work" jumping the page in Chrome, Edge and Android */
body{overflow-anchor:none}
/* Two-line hero headline on large screens, aligned with the content column */
@media(min-width:981px){.hero-content{width:min(1150px,calc(100% - 96px));margin-left:max(48px,calc((100% - 1200px)/2))}}
/* Scroll cue overlaps the hero buttons on short phones and in phone landscape */
@media (max-width:680px) and (max-height:700px),(max-height:480px){.scroll-cue{display:none}}
/* Only the + button expands a card, so only it shows a pointer */
.portfolio-video-card{cursor:default}.portfolio-expand{cursor:pointer}
/* Safari 17 and earlier need the prefixed blur */
.site-header.scrolled{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.mobile-nav{-webkit-backdrop-filter:blur(18px)}
/* Stop iPhone landscape inflating text */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* St Leonard's is a two-line logo, so give it the taller logo size */
.client-marquee-item img[src$="st-leonards.svg"]{max-height:54px}

/* Section 06 shares the cream service-section palette. */
.about-section{background:var(--cream);color:var(--navy)}
.about-section h2,.about-section .section-kicker{color:var(--navy)!important}
.about-section .section-intro{color:#4c5969}
.about-section::before,.about-section::after{display:none}
