:root{--navy:#0f2a3a;--navy-2:#15384d;--gold:#e8ae4a;--ink:#15242d;--muted:#5e6d74;--mist:#eef1f1;--white:#fff;--line:#d9dfdf;--shell:min(1180px,calc(100% - 48px))}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.65;background:#fff}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:Manrope,sans-serif;line-height:1.08;letter-spacing:-.035em}
h1{font-size:clamp(2.8rem,6.4vw,6rem);max-width:900px;margin-bottom:28px}
h2{font-size:clamp(2.25rem,4vw,4.25rem);margin-bottom:24px}
h3{font-size:1.35rem;margin-bottom:12px}
a{color:inherit}
.shell{width:var(--shell);margin-inline:auto}
.section{padding:120px 0}
.skip-link{position:fixed;left:16px;top:-80px;background:var(--gold);padding:12px 18px;z-index:99}
.skip-link:focus{top:16px}
.site-header{position:absolute;z-index:10;top:0;left:0;width:100%;color:white;border-bottom:1px solid rgba(255,255,255,.22)}
.site-header.scrolled{position:fixed;background:rgba(15,42,58,.97);backdrop-filter:blur(10px);animation:drop .25s ease}
.header-inner{height:92px;display:flex;align-items:center;justify-content:space-between}
.brand{text-decoration:none;display:flex;align-items:center;gap:12px}
.brand-mark{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--gold);font:800 1.25rem/1 Manrope;color:var(--gold)}
.brand-name{font:600 1.03rem/1.15 Manrope;max-width:110px;letter-spacing:-.02em}
.brand-name em{font-style:normal;color:var(--gold)}
nav{display:flex;align-items:center;gap:34px}
nav a{text-decoration:none;font-weight:600;font-size:.93rem}
.nav-cta{padding:12px 18px;border:1px solid var(--gold);color:var(--gold)}
.menu-toggle{display:none;background:transparent;border:0}
.hero{min-height:900px;height:100svh;max-height:980px;position:relative;background:var(--navy);color:#fff;display:flex;flex-direction:column;justify-content:flex-end}
.hero-media{position:absolute;inset:0;background:url('hero.webp') center/cover no-repeat;opacity:.66}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,25,35,.95) 0%,rgba(7,25,35,.74) 45%,rgba(7,25,35,.14) 80%),linear-gradient(0deg,rgba(7,25,35,.9),transparent 45%)}
.hero-content{position:relative;margin-bottom:190px}
.eyebrow{font:700 .78rem/1 Manrope;text-transform:uppercase;letter-spacing:.18em;color:#8a661e;margin-bottom:26px}
.eyebrow.light{color:var(--gold)}
.hero-copy{font-size:1.25rem;max-width:640px;color:rgba(255,255,255,.8);margin-bottom:36px}
.hero-actions{display:flex;align-items:center;gap:28px}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:0 24px;text-decoration:none;border:0;font:700 .94rem Manrope;cursor:pointer}
.button.gold{background:var(--gold);color:var(--navy)}
.button.navy{background:var(--navy);color:#fff}
.text-link{font-weight:700;text-decoration:none}
.text-link span{margin-left:8px;color:var(--gold)}
.light-link{color:white}
.hero-facts{position:absolute;bottom:0;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.24)}
.hero-facts>div{padding:28px 32px 32px 0}
.hero-facts>div+div{border-left:1px solid rgba(255,255,255,.24);padding-left:32px}
.hero-facts strong,.hero-facts span{display:block}
.hero-facts strong{font:700 1rem Manrope;margin-bottom:4px}
.hero-facts span{font-size:.9rem;color:rgba(255,255,255,.65)}
.intro{display:grid;grid-template-columns:.85fr 1.15fr;gap:100px;align-items:start}
.section-heading h2{max-width:620px}
.intro-copy{font-size:1.24rem;color:#3f5058;max-width:650px}
.intro-copy p:last-child{margin:0}
.services{background:var(--mist)}
.section-heading.wide{display:grid;grid-template-columns:1fr 1fr;column-gap:80px;align-items:end;margin-bottom:56px}
.section-heading.wide .eyebrow{grid-column:1/-1}
.section-heading.wide h2{margin-bottom:0}
.section-heading.wide>p:last-child{margin:0;color:var(--muted);max-width:520px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #cbd2d3;border-left:1px solid #cbd2d3}
.service-card{min-height:310px;padding:32px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid #cbd2d3;border-bottom:1px solid #cbd2d3;background:#fff;transition:transform .25s,background .25s}
.service-card:hover{transform:translateY(-5px)}
.service-card.featured{background:var(--navy);color:#fff}
.service-no{font:700 .75rem Manrope;letter-spacing:.12em;color:#9b7427}
.service-card p{color:var(--muted);margin-bottom:0}
.service-card.featured p{color:rgba(255,255,255,.68)}
.service-card a{color:var(--gold);font-weight:700;font-size:.9rem}
.approach-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:120px}
.sticky-heading{align-self:start;position:sticky;top:140px}
.sticky-heading p{color:var(--muted);max-width:480px}
.steps{list-style:none;padding:0;margin:0}
.steps li{display:grid;grid-template-columns:70px 1fr;gap:24px;padding:0 0 42px;margin-bottom:42px;border-bottom:1px solid var(--line)}
.steps li:last-child{margin-bottom:0}
.steps span,.why-grid span{color:#997122;font:700 .78rem Manrope;letter-spacing:.1em}
.steps p{color:var(--muted);margin:0;max-width:570px}
.why{background:var(--navy);color:#fff}
.why-title{display:flex;justify-content:space-between;align-items:start;margin-bottom:78px}
.why-title h2{text-align:right;margin:0}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.2)}
.why-grid>div{padding:32px 28px 10px 0}
.why-grid>div+div{padding-left:28px;border-left:1px solid rgba(255,255,255,.2)}
.why-grid h3{margin-top:42px}
.why-grid p{font-size:.94rem;color:rgba(255,255,255,.65);margin:0}
.project-fit{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.project-fit>div:last-child{font-size:1.1rem;color:var(--muted)}
.project-fit ul{padding:0;list-style:none;margin-top:28px}
.project-fit li{padding:10px 0 10px 24px;border-bottom:1px solid var(--line);position:relative}
.project-fit li:before{content:"";width:7px;height:7px;background:var(--gold);position:absolute;left:0;top:19px}
.contact{background:var(--navy-2);color:#fff}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px}
.contact-copy>p{color:rgba(255,255,255,.68);max-width:480px}
.direct{display:flex;flex-direction:column;gap:8px;margin-top:44px}
.direct a{font:600 1.1rem Manrope;color:var(--gold);text-decoration:none}
.direct span{color:rgba(255,255,255,.62);margin-top:10px}
form{background:white;color:var(--ink);padding:40px}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:block;font:600 .82rem Manrope;margin-bottom:20px}
input,select,textarea{display:block;width:100%;margin-top:8px;border:1px solid #cdd4d6;background:#f8f9f9;border-radius:0;padding:13px 14px;font:400 1rem "DM Sans";color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);outline-offset:1px}
.form-note{font-size:.78rem;color:var(--muted);margin:12px 0 0}
footer{background:#091d28;color:white}
.footer-top{padding:60px 0;display:grid;grid-template-columns:1fr 1fr auto;gap:50px;align-items:center}
.footer-top p{margin:0;color:rgba(255,255,255,.58);max-width:440px}
.back-top{color:var(--gold);font-weight:700;text-decoration:none}
.footer-bottom{padding:20px 0;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;color:rgba(255,255,255,.45);font-size:.8rem}
.footer-bottom a{text-decoration:none}
.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}
@keyframes drop{from{transform:translateY(-100%)}
to{transform:none}
}
@media(max-width:900px){:root{--shell:min(100% - 32px,1180px)}
.section{padding:84px 0}
nav{display:none;position:absolute;top:78px;left:-16px;right:-16px;background:var(--navy);padding:24px;flex-direction:column;align-items:stretch;gap:12px}
nav.open{display:flex}
.menu-toggle{display:flex;flex-direction:column;gap:5px;padding:8px}
.menu-toggle span:not(.sr-only){width:25px;height:2px;background:#fff}
.header-inner{height:78px}
.hero{min-height:820px;height:auto}
.hero-content{margin-top:190px;margin-bottom:250px}
.hero-facts{grid-template-columns:1fr}
.hero-facts>div{padding:15px 0}
.hero-facts>div+div{border-left:0;border-top:1px solid rgba(255,255,255,.2);padding-left:0}
.intro,.section-heading.wide,.approach-grid,.project-fit,.contact-grid{grid-template-columns:1fr;gap:40px}
.section-heading.wide .eyebrow{grid-column:auto}
.service-grid{grid-template-columns:1fr 1fr}
.sticky-heading{position:static}
.why-title{display:block}
.why-title h2{text-align:left}
.why-grid{grid-template-columns:1fr 1fr}
.why-grid>div:nth-child(3){border-left:0}
.footer-top{grid-template-columns:1fr}
.back-top{justify-self:start}
}
@media(max-width:560px){h1{font-size:2.7rem}
.hero-copy{font-size:1.08rem}
.hero-actions{align-items:flex-start;flex-direction:column}
.service-grid,.why-grid,.field-row{grid-template-columns:1fr}
.service-card{min-height:260px}
.why-grid>div+div{border-left:0;border-top:1px solid rgba(255,255,255,.2);padding-left:0}
.why-grid>div{padding:26px 0}
.why-grid h3{margin-top:18px}
.steps li{grid-template-columns:42px 1fr;gap:12px}
form{padding:24px}
.footer-bottom{flex-direction:column;gap:8px}
}

/* Refined brand palette, transitions and architectural motion */
:root{--navy-2:#17394b;--navy-3:#24495a;--gold-soft:#f3d18e;--mist:#edf1ef;--paper:#f7f7f3;--line:#d5ddda}
html{scroll-padding-top:90px}
body{background:var(--paper);overflow-x:hidden}
.section{position:relative}
.scroll-progress{position:fixed;z-index:100;top:0;left:0;width:100%;height:3px;pointer-events:none}
.scroll-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-soft));transform:scaleX(0);transform-origin:left;will-change:transform}
.site-header.scrolled{background:rgba(15,42,58,.9);backdrop-filter:blur(16px) saturate(120%);box-shadow:0 10px 35px rgba(6,22,31,.16);animation-duration:.4s}
.nav-cta{border-color:rgba(232,174,74,.75);transition:background .3s,color .3s,transform .3s}
.nav-cta:hover{background:var(--gold);color:var(--navy);transform:translateY(-2px)}
.hero-media{inset:-3%;transform:scale(1.04);will-change:transform}
.button{transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,background .3s}
.button:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(8,28,39,.18)}
.intro,.project-fit{background:var(--paper)}
.services{background:linear-gradient(180deg,var(--paper) 0%,var(--mist) 14%,var(--mist) 86%,#f4f5f1 100%)}
.services:before{content:"";position:absolute;inset:8% 0 auto;height:45%;opacity:.22;pointer-events:none;background-image:linear-gradient(rgba(15,42,58,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(15,42,58,.08) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(90deg,transparent,#000 28%,#000 72%,transparent)}
.service-card{background:rgba(255,255,255,.78);backdrop-filter:blur(8px);transition:transform .4s cubic-bezier(.2,.8,.2,1),background .4s,box-shadow .4s;position:relative;overflow:hidden}
.service-card:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .4s ease}
.service-card:hover{transform:translateY(-7px);background:#fff;box-shadow:0 20px 45px rgba(15,42,58,.1);z-index:2}
.service-card:hover:after{transform:scaleX(1)}
.approach{background:linear-gradient(180deg,#f4f5f1,#f8f7f2 18%,#f8f7f2 82%,#e8ece9)}
.steps li{position:relative}
.steps li:after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--gold);transition:width .7s ease}
.steps li:hover:after{width:100%}
.why{background:radial-gradient(circle at 82% 12%,rgba(232,174,74,.13),transparent 30%),linear-gradient(180deg,#e8ece9 0,#17394b 90px,var(--navy) 180px);padding-top:190px}
.contact{background:radial-gradient(circle at 12% 72%,rgba(232,174,74,.1),transparent 32%),linear-gradient(180deg,var(--paper) 0,var(--navy-3) 90px,var(--navy-2) 180px);padding-top:190px}
form{background:rgba(255,255,255,.96);box-shadow:0 28px 70px rgba(4,19,27,.22);border-top:3px solid var(--gold)}
[data-reveal],[data-stagger]>*{opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1)}
[data-reveal].in-view,[data-stagger].in-view>*{opacity:1;transform:none}
[data-stagger].in-view>*:nth-child(2){transition-delay:.08s}[data-stagger].in-view>*:nth-child(3){transition-delay:.16s}[data-stagger].in-view>*:nth-child(4){transition-delay:.24s}[data-stagger].in-view>*:nth-child(5){transition-delay:.32s}[data-stagger].in-view>*:nth-child(6){transition-delay:.4s}
@media(max-width:900px){.why,.contact{padding-top:150px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-media,.button,.service-card,.detail-visual img,[data-reveal],[data-stagger]>*{transition:none!important;transform:none!important}.scroll-progress{display:none}}

/* Unified cool-neutral palette and individual service-card interactions */
:root{--paper:#f3f6f5;--mist:#e8eeec;--line:#ced9d6}
.services{background:linear-gradient(180deg,var(--paper) 0%,var(--mist) 16%,var(--mist) 88%,var(--paper) 100%)}
.approach{background:linear-gradient(180deg,var(--paper),#edf2f0 18%,#edf2f0 82%,#e4ebe9)}
.why{background:radial-gradient(circle at 82% 12%,rgba(232,174,74,.12),transparent 30%),linear-gradient(180deg,#e4ebe9 0,#17394b 90px,var(--navy) 180px)}
.contact{background:radial-gradient(circle at 12% 72%,rgba(232,174,74,.1),transparent 32%),linear-gradient(180deg,var(--paper) 0,var(--navy-3) 90px,var(--navy-2) 180px)}
.service-card,.service-card p,.service-card h3,.service-card .service-no,.service-card a{transition:color .38s ease,background-color .38s ease,transform .38s ease,box-shadow .38s ease}
.service-card:nth-child(1):hover{background:var(--gold);color:var(--navy)}
.service-card:nth-child(2):hover{background:var(--navy);color:#fff}
.service-card:nth-child(3):hover{background:var(--navy-3);color:#fff}
.service-card:nth-child(4):hover{background:var(--gold-soft);color:var(--navy)}
.service-card:nth-child(5):hover{background:var(--navy-2);color:#fff}
.service-card:nth-child(6):hover{background:#d9e4e1;color:var(--navy)}
.service-card:nth-child(1):hover p,.service-card:nth-child(4):hover p,.service-card:nth-child(6):hover p{color:#294250}
.service-card:nth-child(2):hover p,.service-card:nth-child(3):hover p,.service-card:nth-child(5):hover p{color:rgba(255,255,255,.72)}
.service-card:hover .service-no{color:currentColor;opacity:.72}
.service-card:nth-child(1):hover a{color:var(--navy)}
.service-card:hover:after{background:currentColor;opacity:.45}
@media(hover:none){.service-card:hover{transform:none;box-shadow:none}}

/* Fully consistent service-card appearance and hover state */
.service-grid .service-card{background:rgba(255,255,255,.86);color:var(--ink)}
.service-grid .service-card p,.service-grid .service-card.featured p{color:var(--muted);margin-bottom:18px}
.service-grid .service-card a{display:inline-block;color:#8a641b;text-underline-offset:4px;text-decoration-thickness:1px}
.service-grid .service-card:hover{background:var(--navy);color:#fff}
.service-grid .service-card:hover p{color:rgba(255,255,255,.72)}
.service-grid .service-card:hover .service-no{color:var(--gold);opacity:1}
.service-grid .service-card:hover a{color:var(--gold)}
.service-grid .service-card:hover:after{background:var(--gold);opacity:1}
.service-grid .service-card:focus-within{outline:3px solid var(--gold);outline-offset:-3px}

/* Softer cream trial in place of bright white surfaces */
:root{--paper:#f3f0e8;--mist:#ebe9e2;--cream:#faf7ef;--line:#d8d3c7}
body,.intro,.project-fit{background:var(--paper)}
.services{background:linear-gradient(180deg,var(--paper) 0%,var(--mist) 16%,var(--mist) 88%,var(--paper) 100%)}
.approach{background:linear-gradient(180deg,var(--paper),#f0ede5 18%,#f0ede5 82%,#e6e5df)}
.why{background:radial-gradient(circle at 82% 12%,rgba(232,174,74,.12),transparent 30%),linear-gradient(180deg,#e6e5df 0,#17394b 90px,var(--navy) 180px)}
.service-grid .service-card{background:rgba(250,247,239,.94)}
form{background:var(--cream)}
input,select,textarea{background:#f4f1e9;border-color:#d5d0c4}

/* Service detail pages */
.service-detail{background:var(--paper)}
.detail-header{position:absolute;color:#fff}
.detail-nav{display:flex;align-items:center;gap:24px}
.detail-nav a{color:#fff;text-decoration:none;font-weight:600}
.detail-nav .nav-cta{color:var(--gold)}
.detail-hero{padding:190px 0 110px;background:radial-gradient(circle at 82% 20%,rgba(232,174,74,.16),transparent 30%),var(--navy);color:#fff;position:relative;overflow:hidden}
.detail-hero:after{content:"";position:absolute;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(90deg,transparent,#000)}
.detail-hero .shell{position:relative;z-index:1}
.detail-hero h1{font-size:clamp(2.8rem,6vw,5.5rem);max-width:850px;margin-bottom:24px}
.detail-hero .hero-copy{margin-bottom:0}
.detail-main{padding:100px 0}
.detail-intro{display:grid;grid-template-columns:.75fr 1.25fr;gap:90px;margin-bottom:90px}
.detail-intro h2,.detail-section h2{font-size:clamp(2rem,3.5vw,3.3rem)}
.detail-lead{font-size:1.2rem;color:#43545b}
.detail-visual{position:relative;margin:0 0 80px;overflow:hidden;background:var(--navy);box-shadow:0 20px 48px rgba(15,42,58,.13)}
.detail-visual:after{content:"";position:absolute;inset:0;border:1px solid rgba(232,174,74,.42);pointer-events:none}
.detail-visual img{display:block;width:100%;aspect-ratio:16/7;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.detail-visual:hover img{transform:scale(1.018)}
.detail-visual figcaption{position:absolute;right:16px;bottom:14px;padding:8px 11px;background:rgba(15,42,58,.88);color:rgba(255,255,255,.82);font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;backdrop-filter:blur(8px)}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:80px}
.detail-panel{background:var(--cream);border:1px solid var(--line);padding:38px}
.detail-panel h2{font-size:1.7rem;margin-bottom:24px}
.detail-list{list-style:none;padding:0;margin:0}
.detail-list li{position:relative;padding:12px 0 12px 24px;border-bottom:1px solid var(--line)}
.detail-list li:last-child{border-bottom:0}
.detail-list li:before{content:"";position:absolute;left:0;top:22px;width:7px;height:7px;background:var(--gold)}
.detail-note{padding:34px 38px;border-left:3px solid var(--gold);background:#e8e6df;margin-bottom:80px;color:#3e4f56}
.detail-note strong{color:var(--navy)}
.detail-cta{display:grid;grid-template-columns:1fr auto;gap:50px;align-items:center;padding:54px;background:var(--navy);color:#fff}
.detail-cta h2{font-size:clamp(2rem,4vw,3.6rem);margin-bottom:14px}
.detail-cta p{margin:0;color:rgba(255,255,255,.7);max-width:700px}
.detail-footer{margin-top:0}
@media(max-width:760px){.detail-nav a:not(.nav-cta){display:none}.detail-hero{padding:150px 0 80px}.detail-main{padding:72px 0}.detail-intro,.detail-grid,.detail-cta{grid-template-columns:1fr;gap:30px}.detail-intro{margin-bottom:60px}.detail-visual{margin-bottom:60px}.detail-visual img{aspect-ratio:4/3}.detail-visual figcaption{right:10px;bottom:10px}.detail-grid,.detail-note{margin-bottom:60px}.detail-panel{padding:28px}.detail-cta{padding:34px}}

/* Final editorial polish */
:root{--ink:#142630;--muted:#53656d;--paper:#f4f1e9;--mist:#ebe9e1;--cream:#fbf8f0;--line:#d6d1c5;--shadow:0 18px 48px rgba(15,42,58,.09)}
body{font-size:1.0625rem;line-height:1.7;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-weight:700;text-wrap:balance}
h1{font-size:clamp(3rem,6vw,5.75rem);line-height:1.02;letter-spacing:-.045em}
h2{font-size:clamp(2.25rem,3.8vw,4rem);line-height:1.08}
h3{font-size:1.4rem;line-height:1.25;letter-spacing:-.025em}
p{max-width:72ch}
.section{padding:112px 0}
.eyebrow{margin-bottom:22px;color:#7d5b17;letter-spacing:.16em}
.site-header{border-color:rgba(255,255,255,.16)}
.header-inner{height:88px}
nav{gap:30px}
nav a{font-size:.9rem;letter-spacing:.01em;transition:color .25s ease}
nav a:not(.nav-cta):hover{color:var(--gold)}
.brand-mark{background:rgba(15,42,58,.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.hero{min-height:780px;max-height:900px}
.hero-content{margin-bottom:176px}
.hero-copy{font-size:1.2rem;line-height:1.65;max-width:610px;color:rgba(255,255,255,.84)}
.hero-facts>div{padding-top:25px;padding-bottom:28px}
.hero-facts strong{font-size:.96rem}
.hero-facts span{font-size:.86rem;line-height:1.5}
.button{min-height:54px;padding-inline:26px;letter-spacing:.01em}
.button:focus-visible,.text-link:focus-visible,.service-card a:focus-visible,.back-top:focus-visible,nav a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.intro{gap:88px}
.intro-copy{font-size:1.18rem;line-height:1.72}
.section-heading.wide{column-gap:70px;margin-bottom:50px}
.section-heading.wide>p:last-child{line-height:1.65}
.service-grid{border-color:#cec9bd}
.service-grid .service-card{min-height:320px;padding:36px;border-color:#cec9bd;box-shadow:none}
.service-card h3{margin-bottom:14px}
.service-grid .service-card p{line-height:1.62;font-size:1rem;margin-bottom:24px}
.service-grid .service-card a{font-size:.88rem;text-decoration-color:rgba(138,100,27,.55)}
.service-grid .service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.approach-grid{gap:110px}
.sticky-heading p{line-height:1.7}
.steps li{padding-bottom:36px;margin-bottom:36px}
.steps h3{margin-bottom:8px}
.why-title{margin-bottom:68px}
.why-grid>div{padding-top:34px;padding-bottom:14px}
.why-grid h3{margin-top:36px}
.why-grid p{font-size:.96rem;line-height:1.65;color:rgba(255,255,255,.72)}
.project-fit{gap:88px}
.project-fit>div:last-child{font-size:1.08rem;color:#4e6068}
.project-fit li{padding-block:12px}
.project-fit li:before{top:21px}
.contact-grid{gap:88px}
.contact-copy>p{color:rgba(255,255,255,.76)}
form{padding:42px;border:1px solid rgba(232,174,74,.22);box-shadow:0 24px 64px rgba(4,19,27,.19)}
label{font-size:.84rem;margin-bottom:22px;color:#263942}
input,select,textarea{min-height:50px;margin-top:9px;padding:13px 15px;background:#f6f2e9;border-color:#cbc5b8;transition:border-color .2s,box-shadow .2s,background .2s}
textarea{min-height:126px;resize:vertical}
input:hover,select:hover,textarea:hover{border-color:#a9a08e;background:#faf7ef}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,174,74,.22);background:#fffdf8}
.footer-top{padding-block:54px}
.footer-bottom{padding-block:18px}
.detail-hero{padding:176px 0 96px}
.detail-hero h1{font-size:clamp(3rem,5.5vw,5.15rem)}
.detail-main{padding:92px 0 104px}
.detail-intro{gap:80px;margin-bottom:72px}
.detail-lead{font-size:1.14rem;line-height:1.72;color:#41545d}
.detail-visual{margin-bottom:72px;box-shadow:var(--shadow)}
.detail-panel{padding:40px;background:var(--cream);border-color:var(--line);transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.detail-panel:hover{transform:translateY(-4px);border-color:#c5bda9;box-shadow:var(--shadow)}
.detail-panel h2{font-size:1.65rem;line-height:1.2}
.detail-list li{padding-block:13px;line-height:1.55}
.detail-note{background:#e9e6dd;color:#40525a}
.detail-cta{padding:50px 54px;background:linear-gradient(135deg,var(--navy),var(--navy-2));box-shadow:var(--shadow)}
@media(max-width:900px){body{font-size:1rem}.section{padding:82px 0}.header-inner{height:78px}.hero{min-height:800px}.hero-content{margin-bottom:238px}.intro,.section-heading.wide,.approach-grid,.project-fit,.contact-grid{gap:38px}.why-title{margin-bottom:52px}.service-grid .service-card{padding:30px}.detail-main{padding-block:76px}}
@media(max-width:560px){:root{--shell:min(100% - 28px,1180px)}h1{font-size:clamp(2.65rem,13vw,3.35rem)}h2{font-size:clamp(2rem,10vw,2.65rem)}h3{font-size:1.28rem}.section{padding:72px 0}.hero{min-height:790px}.hero-content{margin-top:160px;margin-bottom:250px}.hero-copy{font-size:1.05rem}.hero-actions{gap:20px}.button{width:100%}.service-grid .service-card{min-height:250px;padding:28px}.why{padding-top:132px}.contact{padding-top:132px}form{padding:26px 22px}.detail-hero{padding:138px 0 72px}.detail-main{padding-block:64px}.detail-panel{padding:26px}.detail-cta{padding:30px}.detail-visual figcaption{font-size:.65rem;letter-spacing:.07em}}
@media(hover:none){.detail-panel:hover{transform:none;box-shadow:none}}

/* Project stories */
.featured-project{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(360px,.84fr);margin-bottom:92px;background:var(--navy);color:#fff;box-shadow:var(--shadow);overflow:hidden}
.featured-project-media{min-height:560px;overflow:hidden;background:#d8dad7}
.featured-project-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.75,.2,1)}
.featured-project:hover .featured-project-media img{transform:scale(1.018)}
.featured-project-copy{padding:clamp(38px,5vw,70px);display:flex;flex-direction:column;justify-content:center}
.featured-project-copy h2{color:#fff;margin-bottom:24px}
.featured-project-copy>p:not(.eyebrow):not(.project-note){color:rgba(255,255,255,.78)}
.project-facts{margin:30px 0 34px;border-top:1px solid rgba(255,255,255,.18)}
.project-facts div{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.project-facts dt{color:var(--gold);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.project-facts dd{margin:0;color:#fff;font-size:.92rem}
.featured-project-copy .button{align-self:flex-start}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-bottom:92px;align-items:stretch}
.project-card{display:flex;flex-direction:column;min-width:0;background:var(--navy);color:#fff;box-shadow:var(--shadow);overflow:hidden}
.project-card-media{display:block;aspect-ratio:4/3;overflow:hidden;background:#d8dad7}
.project-card-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.75,.2,1)}
.project-card:hover .project-card-media img{transform:scale(1.018)}
.project-card-copy{display:flex;flex:1;flex-direction:column;padding:clamp(32px,4vw,52px)}
.project-card-copy h2{color:#fff;margin-bottom:20px}
.project-card-copy>p:not(.eyebrow):not(.project-note){color:rgba(255,255,255,.78)}
.project-card-copy .project-facts{margin-top:10px}
.project-card-copy .button{align-self:flex-start;margin-top:auto}
.project-card-copy .project-note{min-height:2.8em}
.project-note{margin:16px 0 0;color:rgba(255,255,255,.57);font-size:.78rem;line-height:1.5}
@media(max-width:900px){.featured-project{grid-template-columns:1fr}.featured-project-media{min-height:0;aspect-ratio:16/9}.featured-project-copy{padding:40px}.featured-project-copy .button{width:auto}}
@media(max-width:900px){.project-grid{grid-template-columns:1fr;gap:28px}.project-card-media{aspect-ratio:16/9}.project-card-copy{padding:40px}.project-card-copy .button{width:auto}}
@media(max-width:560px){.featured-project{margin-bottom:62px}.featured-project-media{aspect-ratio:4/3}.featured-project-copy{padding:30px 24px}.featured-project-copy .button{width:100%}.project-facts div{grid-template-columns:1fr;gap:2px}}
@media(max-width:560px){.project-grid{margin-bottom:62px}.project-card-media{aspect-ratio:4/3}.project-card-copy{padding:30px 24px}.project-card-copy .button{width:100%}.project-card-copy .project-note{min-height:0}}

/* Consistent primary navigation and service directory */
.header-inner #site-nav{gap:22px}
.header-inner #site-nav a{white-space:nowrap}
.service-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:92px}
.service-directory article{display:grid;grid-template-columns:42% 1fr;min-height:320px;background:var(--cream);border:1px solid var(--line);overflow:hidden;transition:transform .35s ease,box-shadow .35s ease}
.service-directory article:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.service-directory img{width:100%;height:100%;object-fit:cover}
.service-directory article>div{padding:32px;display:flex;flex-direction:column;align-items:flex-start}
.service-directory span{color:#8a641b;font-size:.76rem;font-weight:700;letter-spacing:.13em}
.service-directory h2{font-size:1.65rem;margin:12px 0 14px}
.service-directory p{font-size:.95rem;line-height:1.6;margin:0 0 20px;color:var(--muted)}
.service-directory a{margin-top:auto;color:#75530f;font-weight:700;text-underline-offset:4px}
@media(max-width:1100px){.header-inner #site-nav{gap:14px}.header-inner #site-nav a,.header-inner #site-nav button{font-size:.82rem}}
@media(max-width:900px){.service-directory{grid-template-columns:1fr}.service-directory article{min-height:280px}}
@media(max-width:560px){.service-directory{margin-bottom:62px}.service-directory article{grid-template-columns:1fr;min-height:0}.service-directory img{aspect-ratio:16/9}.service-directory article>div{padding:26px 22px}}

/* Smartphone layout safeguards */
@media(max-width:640px){
  :root{--shell:calc(100% - 32px)}
  html{scroll-padding-top:76px}
  body{overflow-wrap:break-word}
  .header-inner{height:72px}
  .brand{min-width:0;gap:10px}
  .brand-mark{width:42px;height:42px;flex:0 0 42px}
  .brand-name{font-size:.92rem;max-width:98px}
  .menu-toggle{position:relative;z-index:2;flex:0 0 auto}
  nav{top:72px;left:-16px;right:-16px;max-height:calc(100svh - 72px);overflow-y:auto;padding:20px 16px 24px;box-shadow:0 18px 32px rgba(4,19,27,.24)}
  nav a{padding:11px 8px;font-size:1rem}
  nav .nav-cta{padding:12px 14px;text-align:center}
  .hero{min-height:0;height:auto;max-height:none;padding-top:72px}
  .hero-media{inset:0;transform:none;background-position:62% center}
  .hero-shade{background:linear-gradient(90deg,rgba(7,25,35,.96),rgba(7,25,35,.72)),linear-gradient(0deg,rgba(7,25,35,.94),transparent 52%)}
  .hero-content{margin:0;padding:82px 0 42px}
  .hero-content h1{font-size:clamp(2.45rem,12.5vw,3.25rem);line-height:1.03;letter-spacing:-.04em;overflow-wrap:normal;word-break:normal}
  .eyebrow{font-size:.72rem;line-height:1.45;letter-spacing:.13em}
  .hero-copy{font-size:1.02rem;line-height:1.58}
  .hero-actions{width:100%;gap:18px}
  .hero-actions .text-link{padding-block:8px}
  .hero-facts{position:relative;left:auto;bottom:auto;transform:none;width:var(--shell);margin-inline:auto}
  .hero-facts>div{padding:16px 0}
  .hero-facts>div:last-child{padding-bottom:24px}
  .section{padding:64px 0}
  .intro,.section-heading.wide,.approach-grid,.project-fit,.contact-grid{gap:30px}
  .section-heading.wide{margin-bottom:36px}
  .intro-copy{font-size:1.06rem}
  .service-grid{border-top:0}
  .service-grid .service-card{min-height:0;padding:26px 24px;gap:28px}
  .steps li{grid-template-columns:34px minmax(0,1fr);gap:12px;padding-bottom:28px;margin-bottom:28px}
  .why{padding-top:112px}
  .why-title{margin-bottom:36px}
  .why-title h2 br{display:none}
  .why-grid h3{margin-top:14px}
  .contact{padding-top:112px}
  .direct a{font-size:1rem;overflow-wrap:anywhere}
  .direct span{line-height:1.55}
  form{width:100%;min-width:0;padding:24px 18px}
  input,select,textarea{min-width:0;font-size:16px}
  .footer-top{gap:28px;padding-block:42px}
  .footer-bottom{overflow-wrap:anywhere}
  .detail-header .header-inner{gap:10px}
  .detail-nav{display:flex;position:static;flex:0 1 auto;min-width:0;padding:0;background:none;box-shadow:none;overflow:visible}
  .detail-nav a:not(.nav-cta){display:none}
  .detail-nav .nav-cta{padding:9px 11px;font-size:.78rem;line-height:1.25;text-align:center;white-space:normal}
  .detail-hero{padding:128px 0 64px}
  .detail-hero h1{font-size:clamp(2.35rem,12vw,3.15rem);overflow-wrap:normal}
  .detail-main{padding-block:58px}
  .detail-intro{gap:22px;margin-bottom:48px}
  .detail-lead{font-size:1.04rem}
  .detail-visual{margin-bottom:48px}
  .detail-grid,.detail-note{margin-bottom:48px}
  .detail-panel{padding:24px 20px}
  .detail-panel h2{font-size:1.45rem}
  .detail-list li{padding-left:20px}
  .detail-note{padding:26px 22px}
  .detail-cta{gap:24px;padding:28px 22px}
}
@media(max-width:380px){
  :root{--shell:calc(100% - 24px)}
  .brand-name{font-size:.84rem;max-width:84px}
  .detail-nav .nav-cta{max-width:112px;font-size:.72rem;padding-inline:8px}
  .hero-content h1{font-size:2.32rem}
  h2{font-size:1.95rem}
  .service-grid .service-card{padding-inline:20px}
  form{padding-inline:14px}
}

/* Cohesive architectural finish */
:root{
  --navy:#102b3a;
  --navy-2:#173b4d;
  --navy-3:#214b5e;
  --gold:#e8ae4a;
  --gold-deep:#8b651d;
  --ink:#17303c;
  --muted:#596b72;
  --paper:#f7f6f2;
  --mist:#edf1ef;
  --cream:#fffdfa;
  --line:#d7ddda;
  --shadow:0 20px 55px rgba(15,42,58,.09)
}
body{background:var(--paper);color:var(--ink);font-size:1.025rem;line-height:1.68}
h1,h2,h3{color:inherit;text-wrap:balance}
h1{font-size:clamp(3rem,5.4vw,5.25rem);line-height:1.04;letter-spacing:-.043em}
h2{font-size:clamp(2.15rem,3.5vw,3.65rem);line-height:1.1;letter-spacing:-.035em}
h3{font-size:1.32rem;line-height:1.3}
p{color:inherit}
.section{padding:104px 0}
.eyebrow{color:var(--gold-deep);font-size:.76rem;line-height:1.4;letter-spacing:.15em;margin-bottom:20px}
.eyebrow.light{color:var(--gold)}
.site-header{border-bottom-color:rgba(255,255,255,.18)}
.site-header.scrolled{background:rgba(16,43,58,.96);box-shadow:0 12px 36px rgba(7,26,36,.18)}
.header-inner{height:86px}
.brand-mark{border-color:var(--gold);background:rgba(8,29,40,.28);box-shadow:none}
.brand-name{font-size:1rem;line-height:1.18}
nav{gap:28px}
nav a{font-size:.9rem;color:rgba(255,255,255,.9)}
.nav-cta{padding:11px 17px}
.hero{min-height:760px;max-height:880px}
.hero-media{inset:0;transform:none;opacity:.62}
.hero-shade{background:linear-gradient(90deg,rgba(7,25,35,.96) 0%,rgba(7,25,35,.78) 48%,rgba(7,25,35,.25) 82%),linear-gradient(0deg,rgba(7,25,35,.82),transparent 50%)}
.hero-content{margin-bottom:168px}
.hero-content h1{max-width:850px;margin-bottom:24px}
.hero-copy{font-size:1.16rem;line-height:1.62;max-width:600px;color:rgba(255,255,255,.82);margin-bottom:32px}
.hero-actions{gap:26px}
.button{min-height:52px;padding-inline:24px}
.hero-facts{border-top-color:rgba(255,255,255,.2)}
.hero-facts>div{padding:24px 28px 27px 0}
.hero-facts>div+div{border-left-color:rgba(255,255,255,.2);padding-left:28px}
.hero-facts span{color:rgba(255,255,255,.68)}
.intro,.project-fit{background:transparent}
.intro{gap:84px;align-items:center}
.intro-copy{font-size:1.13rem;line-height:1.72;color:#41555e}
.intro-copy p+p{margin-top:22px}
.services{background:var(--mist);border-block:1px solid var(--line)}
.services:before{opacity:.12;background-size:56px 56px}
.section-heading.wide{column-gap:64px;margin-bottom:48px}
.section-heading.wide>p:last-child{color:var(--muted);line-height:1.68}
.service-grid{border-color:#cad3cf;box-shadow:0 18px 50px rgba(15,42,58,.055)}
.service-grid .service-card{min-height:300px;padding:34px;background:rgba(255,255,255,.78);border-color:#cad3cf;backdrop-filter:none}
.service-grid .service-card p{font-size:.98rem;line-height:1.62;color:var(--muted)}
.service-grid .service-card a{color:var(--gold-deep);font-size:.87rem}
.service-grid .service-card:hover{background:var(--navy);box-shadow:0 22px 48px rgba(15,42,58,.15)}
.approach{background:var(--paper)}
.approach-grid{gap:100px}
.sticky-heading p,.steps p{color:var(--muted)}
.steps li{padding-bottom:32px;margin-bottom:32px;border-bottom-color:var(--line)}
.steps span,.why-grid span{color:var(--gold-deep)}
.why{padding-top:104px;background:radial-gradient(circle at 86% 8%,rgba(232,174,74,.12),transparent 28%),var(--navy)}
.why-title{margin-bottom:60px;align-items:end}
.why-title h2{line-height:1.08}
.why-grid{border-top-color:rgba(255,255,255,.18)}
.why-grid>div{padding:30px 25px 12px 0}
.why-grid>div+div{padding-left:25px;border-left-color:rgba(255,255,255,.18)}
.why-grid h3{margin-top:30px;margin-bottom:12px}
.why-grid p{font-size:.94rem;line-height:1.65;color:rgba(255,255,255,.7)}
.project-fit{gap:84px;align-items:center}
.project-fit>div:last-child{font-size:1.04rem;color:var(--muted)}
.project-fit ul{margin-top:24px}
.project-fit li{padding-block:11px;border-bottom-color:var(--line)}
.contact{padding-top:104px;background:radial-gradient(circle at 8% 78%,rgba(232,174,74,.08),transparent 30%),var(--navy-2);border-top:1px solid rgba(255,255,255,.08)}
.contact-grid{gap:82px;align-items:start}
.contact-copy>p{color:rgba(255,255,255,.72)}
.direct{margin-top:38px}
.direct a{color:var(--gold)}
form{padding:38px;background:var(--cream);border:1px solid rgba(232,174,74,.18);border-top:3px solid var(--gold);box-shadow:0 24px 58px rgba(4,19,27,.2)}
label{color:#29404a}
input,select,textarea{background:#f8f8f5;border-color:#cfd6d2;color:var(--ink)}
input:hover,select:hover,textarea:hover{background:#fff;border-color:#aab7b1}
.footer-top{padding-block:50px}
footer{background:#0a202b}
.footer-top p{color:rgba(255,255,255,.64)}
.footer-bottom{color:rgba(255,255,255,.5)}
.detail-hero{padding:166px 0 90px;background:radial-gradient(circle at 84% 18%,rgba(232,174,74,.13),transparent 28%),var(--navy)}
.detail-hero h1{font-size:clamp(2.9rem,5.2vw,4.85rem)}
.detail-main{padding:86px 0 96px}
.detail-intro{gap:72px;margin-bottom:66px}
.detail-lead{font-size:1.1rem;line-height:1.72;color:#425760}
.detail-visual{margin-bottom:66px;box-shadow:var(--shadow)}
.detail-grid{gap:22px;margin-bottom:66px}
.detail-panel{padding:36px;background:var(--cream);border-color:var(--line);box-shadow:0 14px 34px rgba(15,42,58,.045)}
.detail-panel:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.detail-panel h2{font-size:1.55rem;margin-bottom:20px}
.detail-list li{padding-block:12px;border-bottom-color:var(--line)}
.detail-note{margin-bottom:66px;padding:30px 34px;background:#e9eeeb;color:#42555d}
.detail-cta{padding:46px 50px;background:linear-gradient(135deg,var(--navy),var(--navy-2));box-shadow:var(--shadow)}
@media(max-width:900px){
  .section{padding:78px 0}
  .header-inner{height:76px}
  .hero{min-height:760px}
  .hero-content{margin-bottom:226px}
  .intro,.section-heading.wide,.approach-grid,.project-fit,.contact-grid{gap:36px}
  .why,.contact{padding-top:90px}
  .why-grid>div{padding-right:20px}.why-grid>div+div{padding-left:20px}
}
@media(max-width:640px){
  body{font-size:1rem;line-height:1.64}
  h1{font-size:clamp(2.4rem,12vw,3.1rem)}
  h2{font-size:clamp(1.95rem,9.4vw,2.5rem)}
  h3{font-size:1.23rem}
  .section{padding:60px 0}
  .header-inner{height:72px}
  .hero{min-height:0}
  .hero-content{padding:76px 0 38px}
  .hero-content h1{font-size:clamp(2.35rem,12vw,3.05rem)}
  .hero-copy{font-size:1rem}
  .hero-facts>div{padding:14px 0}
  .hero-facts>div+div{padding-left:0}
  .intro,.section-heading.wide,.approach-grid,.project-fit,.contact-grid{gap:28px}
  .service-grid .service-card{padding:24px;min-height:0}
  .why,.contact{padding-top:76px}
  .why-title{margin-bottom:34px}
  .why-grid>div,.why-grid>div+div{padding:24px 0 18px}
  form{padding:24px 18px}
  .detail-hero{padding:124px 0 60px}
  .detail-main{padding:54px 0 60px}
  .detail-intro{gap:20px;margin-bottom:44px}
  .detail-visual,.detail-grid,.detail-note{margin-bottom:44px}
  .detail-panel{padding:24px 20px}
  .detail-note{padding:24px 20px}
  .detail-cta{padding:28px 22px}
}

/* Site-wide search and navigation utilities */
.nav-search{display:inline-flex;align-items:center;gap:7px;padding:0;background:transparent;border:0;color:rgba(255,255,255,.9);font:600 .9rem/1 Manrope,sans-serif;letter-spacing:.01em;cursor:pointer}
.nav-search span{color:var(--gold);font-size:1.15rem;line-height:1}
.nav-search:hover{color:var(--gold)}
.nav-search:focus-visible,.search-close:focus-visible,.search-result:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.back-top{display:inline-flex;align-items:center;min-height:44px;cursor:pointer}
.search-open{overflow:hidden}
.search-dialog[hidden]{display:none}
.search-dialog{position:fixed;z-index:200;inset:0;display:grid;place-items:start center;padding:7vh 20px}
.search-backdrop{position:absolute;inset:0;background:rgba(5,21,30,.78);backdrop-filter:blur(10px)}
.search-panel{position:relative;width:min(760px,100%);max-height:86vh;overflow:auto;padding:36px;background:var(--cream);border-top:4px solid var(--gold);box-shadow:0 30px 90px rgba(0,0,0,.34)}
.search-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}
.search-heading .eyebrow{margin-bottom:9px}
.search-heading h2{font-size:clamp(1.8rem,4vw,2.75rem);margin:0;color:var(--navy)}
.search-close{flex:0 0 44px;width:44px;height:44px;border:1px solid var(--line);background:transparent;color:var(--navy);font:400 2rem/1 "DM Sans",sans-serif;cursor:pointer}
.search-close:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.search-label{font-size:.82rem;margin-bottom:8px;color:var(--navy)}
.search-field{display:grid;grid-template-columns:32px 1fr;align-items:center;border:1px solid #aebbb5;background:#fff}
.search-field>span{padding-left:14px;color:var(--gold-deep);font-size:1.3rem}
.search-field input{min-height:58px;margin:0;border:0;background:transparent;font-size:1.05rem}
.search-field input:focus{box-shadow:none;background:transparent}
.search-count{margin:18px 0 10px;color:var(--muted);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.search-results{display:grid;border-top:1px solid var(--line)}
.search-result{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:16px 10px;text-decoration:none;border-bottom:1px solid var(--line);transition:background .2s,padding .2s}
.search-result:hover{padding-inline:16px;background:var(--mist)}
.search-result span{display:grid;gap:3px}
.search-result strong{font:700 1rem/1.35 Manrope,sans-serif;color:var(--navy)}
.search-result small{font-size:.88rem;line-height:1.45;color:var(--muted)}
.search-result b{color:var(--gold-deep);font-size:1.15rem}
.search-empty{display:grid;gap:8px;padding:28px 12px;color:var(--muted)}
.search-empty strong{color:var(--navy);font:700 1.05rem Manrope,sans-serif}
.search-empty a{margin-top:8px;color:var(--gold-deep);font-weight:700}
@media(max-width:900px){
  nav .nav-search{width:100%;justify-content:space-between;padding:11px 8px;font-size:1rem;text-align:left}
  .detail-nav{display:flex;position:static;flex-direction:row;align-items:center;width:auto;max-height:none;overflow:visible;padding:0;background:transparent;box-shadow:none}
  .detail-nav .nav-search{width:auto;padding:10px;color:#fff;font-size:.82rem}
}
@media(max-width:640px){
  .search-dialog{padding:0}
  .search-panel{width:100%;height:100%;max-height:none;padding:24px 18px;border-top-width:3px}
  .search-heading{gap:16px;margin-bottom:24px}
  .search-heading h2{font-size:1.85rem}
  .search-field input{min-height:54px;font-size:16px;padding-inline:10px}
  .search-result{gap:16px;padding:15px 6px}
  .search-result small{font-size:.82rem}
  .detail-nav{gap:5px}
  .detail-nav .nav-search{padding-inline:6px;font-size:.76rem}
}
@media(max-width:400px){
  .detail-nav .nav-search{font-size:0;width:36px;justify-content:center}
  .detail-nav .nav-search span{font-size:1.2rem}
}

/* About and commercial credibility */
.about{background:linear-gradient(180deg,var(--paper),#eef2f0);border-top:1px solid var(--line)}
.about .section-heading.wide{align-items:start}
.about-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #cad3cf;background:rgba(255,255,255,.72);box-shadow:0 18px 50px rgba(15,42,58,.055)}
.about-grid article{min-height:250px;padding:34px;display:flex;flex-direction:column;border-right:1px solid #cad3cf}
.about-grid article:last-child{border-right:0}
.about-grid span{color:var(--gold-deep);font:700 .76rem/1 Manrope,sans-serif;letter-spacing:.12em}
.about-grid h3{margin-top:42px}
.about-grid p{margin:0;color:var(--muted);font-size:.98rem;line-height:1.65}
.about-facts{display:grid;grid-template-columns:.8fr 1fr 1.7fr;margin-top:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.about-facts>div{padding:20px 24px 20px 0}
.about-facts>div+div{padding-left:24px;border-left:1px solid var(--line)}
.about-facts strong,.about-facts span{display:block}
.about-facts strong{margin-bottom:5px;color:var(--navy);font:700 .76rem/1.4 Manrope,sans-serif;text-transform:uppercase;letter-spacing:.08em}
.about-facts span{color:var(--muted);font-size:.93rem;line-height:1.5}
.project-fit>div:first-child>p:last-child{color:var(--muted);font-size:1.04rem}
.project-fit strong{color:var(--navy)}
@media(max-width:1080px) and (min-width:901px){
  nav{gap:20px}
  nav a,.nav-search{font-size:.84rem}
  .nav-cta{padding-inline:13px}
}
@media(max-width:760px){
  .about-grid{grid-template-columns:1fr}
  .about-grid article{min-height:0;padding:26px 24px;border-right:0;border-bottom:1px solid #cad3cf}
  .about-grid article:last-child{border-bottom:0}
  .about-grid h3{margin-top:18px}
  .about-facts{grid-template-columns:1fr}
  .about-facts>div,.about-facts>div+div{padding:16px 0;border-left:0;border-bottom:1px solid var(--line)}
  .about-facts>div:last-child{border-bottom:0}
}

/* Mobile layout hardening */
@media(max-width:640px){
  .hero{display:block;height:auto;max-height:none;min-height:0;padding-top:1px}
  .hero-content{margin:0;padding:132px 0 48px}
  .hero-content .eyebrow{max-width:30ch;margin-bottom:18px;line-height:1.55}
  .hero-content h1{margin-bottom:20px;line-height:1.08;letter-spacing:-.035em}
  .hero-copy{margin-bottom:28px;line-height:1.6}
  .hero-actions{gap:18px}
  .hero-facts{position:relative;bottom:auto;left:auto;transform:none;width:var(--shell);margin-inline:auto;padding-bottom:18px}
  .hero-facts>div,.hero-facts>div+div{padding:16px 0}
  .hero-facts span{max-width:32ch}
  .direct a,.footer-bottom a{overflow-wrap:anywhere}
  input,select,textarea{min-width:0}
  .button{max-width:100%;text-align:center}
  .section-heading h2,.why-title h2{overflow-wrap:anywhere}
}

/* Section colour rhythm: carry each surface into the next without washing out content. */
.intro,.project-fit{padding-top:170px}
.intro::before,.project-fit::before{
  content:"";position:absolute;left:50%;top:0;width:100vw;height:132px;
  transform:translateX(-50%);pointer-events:none;
  background:linear-gradient(180deg,var(--navy) 0%,#607581 34%,#d9e1df 73%,var(--paper) 100%)
}
.intro>*,.project-fit>*{position:relative;z-index:1}
.about{background:linear-gradient(180deg,var(--paper) 0%,#f0f3f1 52%,var(--mist) 100%);border-top:0}
.services{background:linear-gradient(180deg,var(--mist) 0%,#eaf0ed 42%,var(--mist) 78%,var(--paper) 100%);border:0}
.approach{background:linear-gradient(180deg,var(--paper) 0%,#f9faf7 38%,var(--paper) 100%)}
.why{padding-top:190px;background:radial-gradient(circle at 86% 24%,rgba(232,174,74,.1),transparent 28%),linear-gradient(180deg,var(--paper) 0%,#8da0a7 45px,var(--navy-2) 105px,var(--navy) 170px)}
.contact{padding-top:190px;border-top:0;background:radial-gradient(circle at 8% 78%,rgba(232,174,74,.08),transparent 30%),linear-gradient(180deg,var(--paper) 0%,#8da0a7 45px,var(--navy-3) 105px,var(--navy-2) 170px)}
footer{background:linear-gradient(180deg,var(--navy-2),#0a202b 100px)}
@media(max-width:900px){
  .intro,.project-fit{padding-top:130px}
  .intro::before,.project-fit::before{height:98px}
  .why,.contact{padding-top:145px;background-size:auto,auto}
}
@media(max-width:640px){
  .intro,.project-fit{padding-top:110px}
  .intro::before,.project-fit::before{height:82px}
  .why,.contact{padding-top:115px}
  .why{background:radial-gradient(circle at 86% 24%,rgba(232,174,74,.1),transparent 28%),linear-gradient(180deg,var(--paper) 0%,#8da0a7 30px,var(--navy-2) 68px,var(--navy) 100px)}
  .contact{background:radial-gradient(circle at 8% 78%,rgba(232,174,74,.08),transparent 30%),linear-gradient(180deg,var(--paper) 0%,#8da0a7 30px,var(--navy-3) 68px,var(--navy-2) 100px)}
}

.form-honey{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
#enquiry-form[hidden],.enquiry-success[hidden]{display:none}
.contact #enquiry-form,.contact .enquiry-success{background:var(--cream);border:1px solid rgba(214,209,197,.7);border-radius:8px;box-shadow:0 14px 38px rgba(4,19,27,.11)}
.contact #enquiry-form{padding:clamp(24px,3vw,36px)}
.contact #enquiry-form .field-row{gap:16px}
.contact #enquiry-form label{margin-bottom:16px;color:var(--navy);font-size:.87rem;line-height:1.4}
.contact #enquiry-form input:not(.form-honey),.contact #enquiry-form select,.contact #enquiry-form textarea{min-height:48px;border-color:#d3d9d8;border-radius:4px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.contact #enquiry-form textarea{min-height:112px;resize:vertical}
.contact #enquiry-form input:not(.form-honey):hover,.contact #enquiry-form select:hover,.contact #enquiry-form textarea:hover{border-color:#9eadae}
.contact #enquiry-form input:focus-visible,.contact #enquiry-form select:focus-visible,.contact #enquiry-form textarea:focus-visible{outline:none;border-color:var(--gold-deep);box-shadow:0 0 0 3px rgba(232,174,74,.22)}
.contact #enquiry-form .button.gold{min-width:176px}
.contact #enquiry-form .form-note{font-size:.82rem;line-height:1.5}
.enquiry-success{min-height:clamp(310px,32vw,410px);padding:clamp(28px,3.5vw,44px);color:var(--navy);display:flex;flex-direction:column;justify-content:center;animation:enquiry-enter .35s ease-out both}
.enquiry-success-rule{width:40px;height:2px;background:var(--gold);margin-bottom:24px;transition:width .35s ease}
.enquiry-success-label{margin:0 0 12px;color:var(--gold-deep);font:700 .76rem/1.4 Manrope,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.enquiry-success h3{max-width:20ch;margin:0 0 16px;font-size:clamp(1.8rem,2.7vw,2.3rem);line-height:1.2;letter-spacing:-.03em}
.enquiry-success h3:focus{outline:none}
.enquiry-success-message{max-width:43ch;margin:0;color:var(--muted);font-size:1rem;line-height:1.65}
.enquiry-success.is-pending .enquiry-success-rule{width:76px;background:linear-gradient(90deg,var(--gold),#f6d998,var(--gold));background-size:200% 100%;animation:enquiry-progress 1.4s ease-in-out infinite}
.contact #enquiry-form .form-note.needs-attention{padding:13px 16px;border-left:3px solid var(--gold);background:rgba(232,174,74,.1);color:var(--navy);font-size:.9rem;line-height:1.5}
@keyframes enquiry-progress{to{background-position:-200% 0}}
@keyframes enquiry-enter{from{opacity:.55;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.enquiry-success,.enquiry-success.is-pending .enquiry-success-rule{animation:none}.contact #enquiry-form input,.contact #enquiry-form select,.contact #enquiry-form textarea{transition:none}}
@media(max-width:640px){.enquiry-success{min-height:300px;padding:30px 26px}.enquiry-success-rule{margin-bottom:22px}.contact #enquiry-form .button.gold{width:100%}}
@media(max-width:400px){
  :root{--shell:min(100% - 24px,1180px)}
  .hero-content{padding-top:118px}
  .brand{gap:9px}
  .brand-mark{width:42px;height:42px}
  .brand-name{font-size:.92rem;max-width:96px}
  .detail-header .brand-name{display:none}
  .detail-nav .nav-cta{padding-inline:10px;font-size:.76rem}
}

/* Approved master logo, used unchanged at every brand placement. */
.header-inner{height:104px}
.brand{display:inline-flex;flex:0 0 auto;line-height:0}
.brand-logo{display:block;width:104px;height:104px;object-fit:contain}
.footer-brand .brand-logo{width:128px;height:128px}
@media(max-width:900px){.header-inner{height:82px}.brand-logo{width:82px;height:82px}}
@media(max-width:640px){
  .header-inner{height:72px}
  .brand-logo{width:72px;height:72px}
  .footer-brand .brand-logo{width:112px;height:112px}
}

/* Match the solid surface behind the approved logo artwork. */
.site-header,.site-header.scrolled{background:#132635}
footer{background:#132635}

/* Search and company information pages */
.seo-footer-links{display:flex;flex-wrap:wrap;gap:12px 24px;padding-top:24px;padding-bottom:28px}.seo-footer-links a{font-size:14px;color:inherit;text-underline-offset:4px}.seo-breadcrumb{font-size:14px;margin-bottom:24px;color:#fff}.seo-breadcrumb a{color:inherit}.seo-copy-section{max-width:780px;margin:0 auto 56px}.seo-copy-section h2,.seo-related h2{font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.2}.seo-copy-section p{font-size:1.05rem}.seo-copy-section a:not(.button),.seo-related a{color:var(--navy);text-underline-offset:4px}.seo-related{padding:32px 0 52px}.detail-hero h1{max-width:1050px;font-size:clamp(2.3rem,4.5vw,4.4rem)}.hero-content h1{font-size:clamp(2.6rem,4.4vw,4.5rem);max-width:1000px;line-height:1.12}@media(max-width:640px){.seo-footer-links{gap:14px 22px}.seo-copy-section{margin-bottom:36px}.hero-content h1{font-size:clamp(2rem,7vw,2.8rem)}}
.review-proof{background:#f3f1eb}.review-proof-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:end;margin-bottom:34px}.review-proof-head h2{max-width:780px}.review-score{display:flex;align-items:center;gap:18px;padding-left:34px;border-left:2px solid var(--gold)}.review-score strong{font-family:Manrope,sans-serif;font-size:clamp(3rem,6vw,5.4rem);line-height:.9;color:var(--navy)}.review-score strong span{font-size:.35em;color:#64737b}.review-score p{margin:0;font-size:.9rem;color:#596970}.review-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.review-card{display:flex;flex-direction:column;min-width:0;padding:30px;background:#fff;border-top:4px solid var(--gold);box-shadow:0 16px 42px rgba(15,42,58,.09)}.review-card .review-stars{margin:0 0 22px;color:#a56f0c;font-weight:800;letter-spacing:.04em}.review-card blockquote{margin:0 0 26px;font-family:Manrope,sans-serif;font-size:clamp(1.25rem,2vw,1.65rem);font-weight:700;line-height:1.35;color:var(--navy)}.review-card>p:last-child,.review-card footer{margin-top:auto;color:#627179;font-size:.9rem}.review-card h2{font-size:1.35rem}.review-proof-actions{display:flex;align-items:center;gap:24px;margin-top:32px}.review-proof-actions .text-link{color:var(--navy)}.review-summary{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;margin-bottom:64px;padding:46px;background:var(--navy);color:#fff;border-bottom:5px solid var(--gold)}.review-summary h2{color:#fff;font-size:clamp(3rem,6vw,5rem);margin-bottom:12px}.review-summary dl{margin:0}.review-summary dl div{display:flex;justify-content:space-between;gap:24px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.18)}.review-summary dt{color:rgba(255,255,255,.72)}.review-summary dd{margin:0;font-weight:800;color:var(--gold)}.review-cards-page{margin-bottom:50px}.review-source,.service-proof{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:46px;align-items:center;margin-bottom:72px;padding:38px 42px;background:var(--navy);color:#fff;border-left:5px solid var(--gold)}.review-source h2,.service-proof h2{color:#fff}.review-source p,.service-proof p{color:rgba(255,255,255,.78)}.service-proof{grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr)}.service-proof a{color:#fff;text-underline-offset:4px}.service-proof-score{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;padding-left:34px;border-left:1px solid rgba(255,255,255,.25)}.service-proof-score strong{color:var(--gold);font-size:1.35rem}.service-proof-score span{align-self:center}.service-proof-score small{grid-column:1/-1;margin-top:12px;color:rgba(255,255,255,.64)}
@media(max-width:900px){.review-proof-head,.review-summary,.review-source,.service-proof{grid-template-columns:1fr}.review-score{padding:22px 0 0;border-left:0;border-top:2px solid var(--gold)}.review-cards{grid-template-columns:1fr}.review-summary,.review-source,.service-proof{gap:28px}.service-proof-score{padding:24px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.25)}}
@media(max-width:560px){.review-proof-actions{align-items:stretch;flex-direction:column}.review-proof-actions .button{width:100%}.review-summary,.review-source,.service-proof{padding:30px 24px}.review-card{padding:26px 24px}}
.guide-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0 0 56px;background:#d9dddc;border:1px solid #d9dddc}.guide-sections article{position:relative;padding:38px;background:#fff}.guide-sections article>span{display:block;margin-bottom:28px;color:#a56f0c;font-family:Manrope,sans-serif;font-weight:800}.guide-sections h2{font-size:1.55rem}.guide-sections a{color:var(--navy);font-weight:700;text-underline-offset:4px}.guide-checklist{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;margin:70px 0;padding:52px;background:#f3f1eb;border-top:4px solid var(--gold)}.guide-checklist ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 30px;margin:0;padding-left:20px}.guide-checklist li{padding-left:6px}@media(max-width:800px){.guide-sections,.guide-checklist{grid-template-columns:1fr}.guide-checklist{gap:28px}.guide-checklist ul{grid-template-columns:1fr}}@media(max-width:560px){.guide-sections article,.guide-checklist{padding:30px 24px}}

.seo-footer-links,.seo-breadcrumb{position:static;top:auto;left:auto;right:auto;max-height:none;overflow:visible;background:transparent;box-shadow:none;flex-direction:row;align-items:center}.seo-breadcrumb{display:block;padding:0}.seo-footer-links{display:flex;width:var(--shell);margin-inline:auto}.seo-footer-links a,.seo-breadcrumb a{padding:0}.seo-footer-links a{font-size:14px}.seo-breadcrumb a{font-size:inherit}

/* Match the image preload to the viewport and avoid downloading desktop artwork on phones. */
@media(max-width:640px){.hero-media{background-image:url('hero-mobile.webp')}}

.service-questions{max-width:860px}.service-question{padding:22px 0;border-bottom:1px solid rgba(15,42,58,.12)}.service-question h3{font-family:Manrope,sans-serif;font-size:1.2rem;line-height:1.4;color:var(--navy);margin:0 0 12px}.service-question p{margin-bottom:0;line-height:1.7}.service-questions>p:last-child{margin-top:24px}@media(max-width:640px){.service-question{padding:18px 0}.service-question h3{font-size:1.1rem}}
