
:root {
  --navy:#07111f; --ink:#0a1727; --blue:#0868d7; --cyan:#08c7e8;
  --paper:#f7f9fb; --white:#fff; --muted:#667386; --soft:#eef5fa;
  --line:rgba(7,17,31,.10); --blue-line:rgba(8,104,215,.18);
}
html{background:var(--navy)}
body{background:var(--paper);color:var(--ink)}
a{border-bottom:0;color:var(--blue)}
body.is-preload *{transition:none!important}
#page-wrapper{overflow:hidden}

/* Header */
#header.site-header,#header.site-header.alt{background:rgba(247,249,251,.95);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);color:var(--navy);height:4.75rem;line-height:4.75rem;position:fixed}
#header.site-header>.logo{align-items:center;display:flex;padding-left:2.2rem}
#header.site-header>.logo a{align-items:center;display:inline-flex;gap:.75rem;letter-spacing:.08rem}
#header.site-header>.logo img{height:2.35rem;width:2.35rem;object-fit:contain}
#header.site-header>.logo .brand-name{font-family:"Oswald",Helvetica,sans-serif;font-size:.9rem;font-weight:600;letter-spacing:.08rem;text-transform:uppercase}
#header.site-header>a[href="#menu"]{border-left:1px solid var(--line);height:4.75rem;line-height:4.75rem;padding:0 2rem}
#header.site-header>a[href="#menu"] span{color:var(--navy)}
#header.site-header>a[href="#menu"]:before{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cstyle%3Eline%7Bstroke-width:6px;stroke:%2307111f%7D%3C/style%3E%3Cline x1='10' y1='30' x2='90' y2='30'/%3E%3Cline x1='10' y1='50' x2='90' y2='50'/%3E%3Cline x1='10' y1='70' x2='90' y2='70'/%3E%3C/svg%3E")}
#header.site-header+a,#header.site-header+#banner{margin-top:0}

/* Overlay nav */
#menu{background:rgba(235,244,250,.94)}
#menu .inner{background:var(--navy);border-radius:1.2rem;box-shadow:0 24px 70px rgba(7,17,31,.25);padding-top:2.35rem;width:27rem}
#menu h2{font-size:1.2rem;letter-spacing:.12rem}
#menu .links li a{font-weight:700;letter-spacing:.12rem}
#menu .links li a:hover{background:linear-gradient(90deg,var(--blue),var(--cyan));color:#fff}
#menu .menu-email{border-top:1px solid rgba(255,255,255,.16);color:var(--cyan);display:block;font-size:.73rem;font-weight:700;letter-spacing:.08rem;margin-top:.5rem;padding:1.25rem 0 1rem;text-transform:none}

/* Typography & helpers */
.shell{margin:0 auto;max-width:88rem;width:calc(100% - 7rem)}
.kicker{align-items:center;color:#566579;display:flex;font-size:.69rem;font-weight:900;letter-spacing:.16rem;margin:0 0 1.35rem;text-transform:uppercase}
.kicker:before{background:linear-gradient(180deg,var(--cyan),var(--blue));border-radius:50%;box-shadow:0 0 18px rgba(8,199,232,.3);content:"";height:.52rem;margin-right:.72rem;width:.52rem}
.gradient-text{background:linear-gradient(95deg,var(--blue),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.lead{color:var(--muted);font-size:1.12rem;line-height:1.85;max-width:48rem}
.section-head{margin-bottom:3rem;max-width:58rem}
.section-head h2{color:var(--navy);font-size:clamp(2.2rem,4vw,4rem);letter-spacing:-.04rem;line-height:1.04;text-transform:none}
.section-head p{color:var(--muted);font-size:1.05rem;line-height:1.8}
.button.brand-primary{background:linear-gradient(95deg,var(--blue),var(--cyan));box-shadow:0 12px 30px rgba(8,104,215,.18);color:#fff!important}
.button.brand-secondary{background:transparent;box-shadow:inset 0 0 0 2px var(--navy);color:var(--navy)!important}
.button.brand-secondary:hover{box-shadow:inset 0 0 0 2px var(--blue);color:var(--blue)!important}

/* Home hero */
.hero-main{background:radial-gradient(circle at 82% 18%,rgba(8,199,232,.13),transparent 25rem),radial-gradient(circle at 10% 90%,rgba(8,104,215,.08),transparent 28rem),linear-gradient(135deg,#fff 0%,#f8fbfd 52%,#eff7fb 100%);min-height:780px;padding:10.5rem 0 5.5rem;position:relative}
.hero-main:before{background-image:linear-gradient(rgba(7,17,31,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(7,17,31,.035) 1px,transparent 1px);background-size:64px 64px;content:"";inset:0;mask-image:linear-gradient(to bottom,rgba(0,0,0,.55),transparent 92%);position:absolute}
.hero-main:after{background:linear-gradient(90deg,transparent,var(--blue),var(--cyan),transparent);bottom:0;content:"";height:3px;left:9%;position:absolute;width:82%}
.hero-grid{align-items:center;display:grid;gap:clamp(3rem,6vw,7rem);grid-template-columns:minmax(0,.95fr) minmax(31rem,1.05fr);position:relative;z-index:2}
.hero-copy h1{color:var(--navy);font-size:clamp(3.5rem,6vw,6.6rem);letter-spacing:-.11rem;line-height:.96;margin:0 0 1.6rem;text-transform:none}
.hero-copy .lead{max-width:42rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:2.1rem 0 0;padding:0;list-style:none}
.logo-stage{position:relative}
.logo-stage:before{background:radial-gradient(circle,rgba(8,199,232,.13),rgba(8,104,215,.06) 46%,transparent 72%);border-radius:50%;content:"";filter:blur(34px);height:92%;inset:4% 0 0 4%;position:absolute;width:92%}
.logo-card{background:transparent;border:0;border-radius:0;box-shadow:none;margin-left:auto;max-width:46rem;padding:0;position:relative}
.logo-card img{display:block;height:auto;width:100%}
.hero-proof{display:grid;gap:0;grid-template-columns:repeat(4,1fr);margin-top:4.5rem;position:relative;z-index:2}
.hero-proof>div{border-left:1px solid var(--line);min-height:7rem;padding:0 1.4rem}
.hero-proof>div:first-child{border-left:0;padding-left:0}
.hero-proof span{color:var(--blue);display:block;font-size:.62rem;font-weight:900;letter-spacing:.1rem;margin-bottom:.45rem}
.hero-proof strong{color:var(--navy);display:block;font-family:"Oswald",Helvetica,sans-serif;font-size:1.05rem;margin-bottom:.35rem}
.hero-proof small{color:#758094;display:block;font-size:.76rem;line-height:1.5}

/* Sections */
.section{padding:7rem 0}
.section.white{background:#fff}
.section.soft{background:linear-gradient(180deg,#f0f6fa 0%,#f8fbfd 100%)}
.section.dark{background:var(--navy);color:#fff}
.section.dark .section-head h2,.section.dark h2,.section.dark h3{color:#fff}
.section.dark .section-head p,.section.dark p{color:rgba(255,255,255,.68)}

.service-grid{display:grid;gap:1.2rem;grid-template-columns:repeat(2,1fr)}
.service-card{background:#fff;border:1px solid var(--line);border-radius:1.1rem;display:flex;flex-direction:column;min-height:22rem;padding:2.4rem;position:relative;transition:transform .2s ease,box-shadow .2s ease}
.service-card:hover{box-shadow:0 24px 60px rgba(7,17,31,.09);transform:translateY(-4px)}
.service-card .num{color:var(--blue);font-size:.68rem;font-weight:900;letter-spacing:.12rem}
.service-card h3{color:var(--navy);font-size:2rem;margin:1rem 0 .8rem;text-transform:none}
.service-card p{color:var(--muted);line-height:1.75}
.service-card ul{color:#536276;font-size:.92rem;line-height:1.8;margin-bottom:1.7rem}
.service-card .text-link{font-weight:900;margin-top:auto;text-transform:uppercase;letter-spacing:.08rem;font-size:.72rem}

.outcome-grid{display:grid;gap:4rem;grid-template-columns:.8fr 1.2fr;align-items:start}
.outcome-quote{border-left:4px solid var(--cyan);padding-left:1.5rem}
.outcome-quote h3{color:var(--navy);font-size:2.3rem;line-height:1.14;text-transform:none}
.outcome-list{display:grid;gap:0;grid-template-columns:1fr 1fr}
.outcome-list div{border-top:1px solid var(--line);padding:1.6rem 1.6rem 1.6rem 0}
.outcome-list div:nth-child(even){border-left:1px solid var(--line);padding-left:1.6rem}
.outcome-list strong{color:var(--navy);display:block;font-size:1rem;margin-bottom:.35rem}
.outcome-list span{color:var(--muted);font-size:.9rem;line-height:1.6}

.process{counter-reset:steps;display:grid;gap:0;grid-template-columns:repeat(5,1fr)}
.process article{border-left:1px solid rgba(255,255,255,.16);min-height:15rem;padding:0 1.5rem}
.process article:first-child{border-left:0;padding-left:0}
.process .step{color:var(--cyan);font-size:.68rem;font-weight:900;letter-spacing:.11rem;margin-bottom:1.25rem}
.process h3{font-size:1.35rem;text-transform:none}
.process p{font-size:.88rem;line-height:1.7}

.work-grid{display:grid;gap:1.4rem;grid-template-columns:repeat(2,1fr)}
.work-card{background:#fff;border:1px solid var(--line);border-radius:1.1rem;overflow:hidden}
.project-visual{background:linear-gradient(135deg,#0a1727,#0c3151);min-height:19rem;padding:2rem;position:relative;display:flex;align-items:flex-end}
.project-visual:before{border:1px solid rgba(8,199,232,.22);border-radius:50%;content:"";height:18rem;position:absolute;right:-5rem;top:-6rem;width:18rem}
.project-visual:after{background:linear-gradient(95deg,var(--blue),var(--cyan));content:"";height:5px;left:2rem;position:absolute;top:2rem;width:5rem}
.project-visual .browser{background:rgba(255,255,255,.94);border-radius:.7rem;box-shadow:0 20px 50px rgba(0,0,0,.24);padding:1.2rem;width:86%;position:relative;z-index:2}
.project-visual .browser-bar{display:flex;gap:.35rem;margin-bottom:1.1rem}.project-visual .browser-bar i{background:#cad3dc;border-radius:50%;display:block;height:.4rem;width:.4rem}
.project-visual .project-name{color:var(--navy);font-family:"Oswald",Helvetica,sans-serif;font-size:clamp(1.45rem,2.5vw,2.35rem);line-height:1.05;margin-bottom:.55rem}
.project-visual .project-sub{color:#667386;font-size:.75rem;letter-spacing:.07rem;text-transform:uppercase}
.work-card:nth-child(2) .project-visual{background:linear-gradient(135deg,#102635,#16605f)}
.work-card:nth-child(3) .project-visual{background:linear-gradient(135deg,#172334,#4a5968)}
.work-card:nth-child(4) .project-visual{background:linear-gradient(135deg,#15213a,#3158a2)}
.work-copy{padding:2rem 2.1rem}
.work-copy .tags{color:var(--blue);font-size:.64rem;font-weight:900;letter-spacing:.1rem;text-transform:uppercase}
.work-copy h3{color:var(--navy);font-size:1.65rem;margin:.65rem 0 .55rem;text-transform:none}
.work-copy p{color:var(--muted);font-size:.92rem;line-height:1.7;margin-bottom:0}

.cta-band{background:linear-gradient(105deg,var(--blue),var(--cyan));border-radius:1.35rem;color:#fff;display:grid;gap:2rem;grid-template-columns:1.2fr .8fr;align-items:center;padding:3.2rem 3.5rem}
.cta-band h2{color:#fff;font-size:clamp(2.2rem,4vw,4rem);line-height:1;margin:0;text-transform:none}
.cta-band p{color:rgba(255,255,255,.84);margin:.8rem 0 0}
.cta-band .actions{justify-content:flex-end;margin:0}
.cta-band .button{background:#fff;color:var(--navy)!important}

/* Internal pages */
.page-hero{background:radial-gradient(circle at 86% 20%,rgba(8,199,232,.13),transparent 22rem),linear-gradient(135deg,#fff,#eef7fb);padding:11rem 0 6rem;position:relative}
.page-hero:after{background:linear-gradient(90deg,var(--blue),var(--cyan),transparent);bottom:0;content:"";height:3px;left:0;width:48%;position:absolute}
.page-hero h1{color:var(--navy);font-size:clamp(3.3rem,6vw,6rem);letter-spacing:-.08rem;line-height:.98;margin-bottom:1.4rem;text-transform:none;max-width:65rem}
.page-hero .lead{max-width:55rem}
.page-layout{display:grid;gap:5rem;grid-template-columns:minmax(0,1.35fr) minmax(17rem,.65fr)}
.prose h2,.prose h3{color:var(--navy);text-transform:none}.prose h2{font-size:2.5rem}.prose h3{font-size:1.4rem;margin-top:2.2rem}.prose p,.prose li{color:#58677a;line-height:1.8}.prose ul{margin-bottom:2rem}
.side-card{background:#fff;border:1px solid var(--line);border-radius:1rem;padding:1.8rem;position:sticky;top:6.4rem}
.side-card h3{color:var(--navy);font-size:1.25rem;text-transform:none}.side-card ul{list-style:none;padding:0}.side-card li{border-top:1px solid var(--line);color:#59687b;font-size:.88rem;padding:.75rem 0}.side-card li:first-child{border-top:0}
.feature-grid{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin:2.2rem 0 3rem}.feature-grid article{background:#f5f9fc;border:1px solid var(--line);border-radius:.85rem;padding:1.5rem}.feature-grid h3{font-size:1.15rem;margin:.1rem 0 .5rem}.feature-grid p{font-size:.88rem;margin:0}
.faq{border-top:1px solid var(--line);margin-top:2.5rem}.faq details{border-bottom:1px solid var(--line);padding:1.1rem 0}.faq summary{color:var(--navy);cursor:pointer;font-weight:900}.faq details p{margin:.8rem 0 .2rem}

/* Contact */
.contact-grid{display:grid;gap:4rem;grid-template-columns:.78fr 1.22fr}.contact-aside h2{color:var(--navy);font-size:2.7rem;text-transform:none}.contact-aside p{color:var(--muted);line-height:1.8}.contact-email{display:inline-block;font-weight:900;margin-top:1rem}
.contact-form{background:#fff;border:1px solid var(--line);border-radius:1.1rem;padding:2.4rem}.field-row{display:grid;gap:1rem;grid-template-columns:1fr 1fr}.contact-form label{color:var(--navy);font-size:.72rem;font-weight:900;letter-spacing:.08rem;text-transform:uppercase}.contact-form input,.contact-form select,.contact-form textarea{background:#f7fafc;border:1px solid var(--line);color:var(--ink)}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.service-checks{display:grid;grid-template-columns:1fr 1fr;gap:.55rem 1rem;margin:.4rem 0 1.5rem}.service-checks label{font-size:.82rem;font-weight:700;letter-spacing:0;text-transform:none}.form-status{border-radius:.65rem;display:none;margin-bottom:1.4rem;padding:1rem}.form-status.success{background:#e7f8ee;color:#145a32;display:block}.form-status.error{background:#fff0f0;color:#8e2525;display:block}.hp{left:-9999px;position:absolute}

/* Footer */
.site-footer{background:var(--navy);color:rgba(255,255,255,.72);padding:4.7rem 0 2rem}.footer-grid{display:grid;gap:3rem;grid-template-columns:1.25fr .75fr .75fr}.footer-brand img{display:block;filter:brightness(0) invert(1);height:3rem;object-fit:contain;object-position:left;width:auto}.footer-brand p{font-size:.92rem;line-height:1.75;max-width:31rem}.site-footer h3{color:#fff;font-size:1rem;letter-spacing:.07rem;text-transform:uppercase}.site-footer ul{list-style:none;padding:0}.site-footer li{padding:.25rem 0}.site-footer a{color:rgba(255,255,255,.74)}.site-footer a:hover{color:var(--cyan)}.footer-bottom{border-top:1px solid rgba(255,255,255,.14);display:flex;justify-content:space-between;gap:2rem;margin-top:3rem;padding-top:1.4rem;font-size:.74rem}.footer-bottom p{margin:0}.footer-bottom nav{display:flex;gap:1.3rem}

/* Accessibility */
.skip-link{background:var(--navy);color:#fff!important;left:1rem;padding:.7rem 1rem;position:fixed;top:-5rem;z-index:20000}.skip-link:focus{top:1rem}
:focus-visible{outline:3px solid rgba(8,199,232,.6);outline-offset:3px}

@media(max-width:1100px){.shell{width:calc(100% - 4rem)}.hero-grid{grid-template-columns:1fr 1fr;gap:3rem}.process{grid-template-columns:repeat(3,1fr);row-gap:2.5rem}.process article:nth-child(4){border-left:0;padding-left:0}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:900px){.hero-main{padding-top:9rem}.hero-grid,.outcome-grid,.page-layout,.contact-grid{grid-template-columns:1fr}.logo-stage{max-width:44rem}.hero-proof{grid-template-columns:repeat(2,1fr);row-gap:1.7rem}.hero-proof>div:nth-child(3){border-left:0;padding-left:0}.work-grid{grid-template-columns:1fr}.side-card{position:static}.cta-band{grid-template-columns:1fr}.cta-band .actions{justify-content:flex-start}.process{grid-template-columns:repeat(2,1fr)}.process article:nth-child(3),.process article:nth-child(5){border-left:0;padding-left:0}}
@media(max-width:736px){#header.site-header,#header.site-header.alt{height:4rem;line-height:4rem;padding-left:0}#header.site-header>.logo{padding-left:1rem}#header.site-header>.logo img{height:2rem;width:2rem}#header.site-header>.logo .brand-name{font-size:.73rem}#header.site-header>a[href="#menu"]{height:4rem;line-height:4rem;padding:0 1.3rem}.shell{width:calc(100% - 2.6rem)}.hero-main{min-height:0;padding:8.5rem 0 4rem}.hero-copy h1{font-size:clamp(3.2rem,13vw,5rem);letter-spacing:-.07rem}.service-grid,.feature-grid,.field-row,.service-checks{grid-template-columns:1fr}.section{padding:5rem 0}.page-hero{padding:8.7rem 0 4rem}.page-hero h1{font-size:clamp(3.1rem,13vw,4.8rem)}.process{grid-template-columns:1fr}.process article,.process article:nth-child(n){border-left:0;border-top:1px solid rgba(255,255,255,.16);min-height:0;padding:1.5rem 0}.process article:first-child{border-top:0}.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.footer-bottom{align-items:flex-start;flex-direction:column}.cta-band{padding:2.4rem 2rem}.outcome-list{grid-template-columns:1fr}.outcome-list div:nth-child(even){border-left:0;padding-left:0}}
@media(max-width:520px){.hero-proof{grid-template-columns:1fr}.hero-proof>div,.hero-proof>div:nth-child(n){border-left:0;border-top:1px solid var(--line);min-height:0;padding:1rem 0}.hero-proof>div:first-child{border-top:0}.service-card{min-height:0;padding:1.7rem}.contact-form{padding:1.5rem}.footer-bottom nav{flex-wrap:wrap}}


/* Service area architecture */
.breadcrumbs{align-items:center;color:#738094;display:flex;flex-wrap:wrap;font-size:.7rem;font-weight:800;gap:.55rem;letter-spacing:.04rem;margin:0 0 1.7rem;text-transform:uppercase}
.breadcrumbs a{color:#566579}.breadcrumbs a:hover{color:var(--blue)}
.area-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}
.area-card{background:#f7fafc;border:1px solid var(--line);border-radius:1rem;display:flex;flex-direction:column;min-height:11rem;padding:1.55rem;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.area-card:hover{border-color:rgba(8,104,215,.35);box-shadow:0 14px 35px rgba(7,17,31,.07);transform:translateY(-3px)}
.area-card .area-label{color:var(--blue);font-size:.65rem;font-weight:900;letter-spacing:.08rem;text-transform:uppercase}.area-card strong{color:var(--navy);font-family:"Oswald",Helvetica,sans-serif;font-size:1.25rem;margin:.45rem 0}.area-card small{color:var(--muted);font-size:.76rem;line-height:1.55}
.county-grid{display:grid;gap:1.4rem;grid-template-columns:repeat(2,1fr)}
.county-card{background:#fff;border:1px solid var(--line);border-radius:1rem;padding:2rem}.county-card h2{font-size:1.85rem;margin:.25rem 0 1rem;text-transform:none}.county-card p{color:var(--muted);font-size:.92rem;line-height:1.7}.county-card .city-list-preview{color:#718095;font-size:.78rem}.county-card .text-link{font-size:.72rem;font-weight:900;letter-spacing:.07rem;text-transform:uppercase}
.city-grid{display:grid;gap:.8rem;grid-template-columns:repeat(2,1fr);margin:1.4rem 0 2.5rem}.city-card{background:#f7fafc;border:1px solid var(--line);border-radius:.8rem;padding:1.15rem 1.25rem}.city-card strong{color:var(--navy);display:block;font-size:1rem}.city-card span{color:var(--muted);display:block;font-size:.7rem;line-height:1.45;margin-top:.25rem}
.location-hero .lead{max-width:60rem}.service-strip{display:grid;gap:.7rem;grid-template-columns:repeat(2,1fr);margin:2.2rem 0 3rem}.service-strip a{background:linear-gradient(135deg,#f7fafc,#eef6fb);border:1px solid var(--line);border-radius:.8rem;padding:1.25rem}.service-strip strong{color:var(--navy);display:block}.service-strip span{color:var(--muted);display:block;font-size:.76rem;margin-top:.25rem}.service-strip a:hover{border-color:rgba(8,104,215,.35)}
.city-chips{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0 1.3rem}.city-chip{background:#eef5fa;border:1px solid var(--blue-line);border-radius:999px;color:var(--navy);font-size:.72rem;font-weight:800;padding:.55rem .85rem}.city-chip:hover{background:var(--blue);color:#fff}
.local-side .side-eyebrow{color:var(--blue);font-size:.64rem;font-weight:900;letter-spacing:.1rem;text-transform:uppercase}.local-side p{color:var(--muted);font-size:.85rem;line-height:1.65}
@media(max-width:1000px){.area-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:736px){.area-grid,.county-grid,.city-grid,.service-strip{grid-template-columns:1fr}.area-card{min-height:0}.breadcrumbs{font-size:.62rem}}
