:root{--navy:#06264b;--navy2:#031a35;--green:#07834f;--green2:#12a86a;--pale:#eaf8f0;--ink:#102947;--muted:#536a83;--line:#dce7ee;--white:#fff;--shadow:0 12px 34px rgba(5,35,67,.10);--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}.container{width:min(var(--max),calc(100% - 40px));margin:auto}.topbar{background:var(--navy2);color:#d8e8f5;font-size:.82rem;padding:7px 0}.topbar .container{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav-wrap{height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:10px;min-width:190px}.brand-mark{width:48px;height:48px;flex:none}.brand-name{font-weight:900;letter-spacing:-.04em;font-size:1.36rem;line-height:1.05;color:var(--navy)}.brand-name span{color:var(--green)}.brand-sub{font-size:.52rem;font-weight:800;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.nav-links{display:flex;align-items:center;gap:26px;font-size:.92rem;font-weight:700}.nav-links a{padding:8px 0;position:relative}.nav-links a:hover,.nav-links a.active{color:var(--green)}.nav-links a.active:after{content:"";height:3px;background:var(--green);position:absolute;bottom:0;left:0;right:0;border-radius:5px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--green);color:#fff;border:1px solid var(--green);padding:12px 18px;border-radius:7px;font-weight:800;font-size:.92rem;transition:.2s;cursor:pointer}.btn:hover{background:#056a40;transform:translateY(-1px)}.btn-outline{background:#fff;color:var(--navy);border-color:#9eb5c7}.btn-outline:hover{background:#f3f8fb;color:var(--navy)}.menu-toggle{display:none;background:#fff;border:1px solid var(--line);border-radius:7px;padding:8px 11px;color:var(--navy)}.eyebrow{display:inline-block;font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;font-weight:900;color:var(--green);margin-bottom:10px}.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--navy);color:#fff;min-height:450px;display:flex;align-items:center}.hero-content{padding:72px 0;max-width:680px}.hero h1{font-size:clamp(2.45rem,5vw,4.15rem);line-height:1.07;letter-spacing:-.045em;margin:0 0 18px;max-width:700px}.hero h1 .accent{color:#6fe0a5}.hero p{font-size:1.08rem;max-width:630px;color:#e2edf5;margin:0 0 28px}.button-row{display:flex;gap:12px;flex-wrap:wrap}.hero-note{margin-top:25px;color:#d1e3ee;font-size:.88rem}.section{padding:74px 0}.section-soft{background:#f5faf8}.section-dark{background:var(--navy2);color:#fff}.section-head{max-width:700px;margin-bottom:30px}.section-head h2{font-size:clamp(1.8rem,3vw,2.6rem);letter-spacing:-.035em;line-height:1.15;margin:0 0 12px}.section-head p{margin:0;color:var(--muted)}.section-dark .section-head p{color:#cfdfeb}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.audience-card,.service-card,.value-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 5px 18px rgba(5,35,67,.035)}.audience-card img{height:205px;width:100%;object-fit:cover}.card-body{padding:22px}.card-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:12px;background:var(--pale);color:var(--green);font-size:1.35rem;font-weight:900;margin-bottom:13px}.card-body h3{font-size:1.18rem;margin:0 0 8px;line-height:1.3}.card-body p{margin:0 0 18px;color:var(--muted);font-size:.95rem}.text-link{color:var(--green);font-weight:800;font-size:.92rem}.text-link:hover{text-decoration:underline}.service-card{padding:24px;transition:.2s}.service-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.service-card .card-icon{font-size:1.5rem}.service-card h3{margin:0 0 8px;font-size:1.08rem}.service-card p{margin:0 0 14px;color:var(--muted);font-size:.94rem}.why-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.why-item{border-left:1px solid rgba(255,255,255,.18);padding:8px 18px}.why-item:first-child{border-left:0;padding-left:0}.why-item .round-icon{width:46px;height:46px;border:1px solid #5de49b;border-radius:50%;display:grid;place-items:center;color:#79edaa;font-size:1.2rem;margin-bottom:12px}.why-item h3{margin:0 0 5px;font-size:1.02rem}.why-item p{margin:0;color:#d0dfeb;font-size:.88rem}.cta-band{position:relative;isolation:isolate;overflow:hidden;color:#fff;padding:42px 0}.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.cta-inner h2{margin:0 0 6px;font-size:clamp(1.5rem,3vw,2.15rem)}.cta-inner p{margin:0;color:#d7e5ef}.page-hero{position:relative;isolation:isolate;overflow:hidden;color:#fff;padding:74px 0}.page-hero h1{font-size:clamp(2.3rem,4vw,3.6rem);line-height:1.08;letter-spacing:-.04em;margin:0 0 14px}.page-hero p{max-width:690px;color:#e2edf5;margin:0;font-size:1.05rem}.service-row{display:grid;grid-template-columns:190px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--line);align-items:center}.service-row:last-child{border-bottom:0}.service-row .thumb{width:190px;height:145px;border-radius:10px;overflow:hidden}.service-row img{width:100%;height:100%;object-fit:cover}.service-row h2{margin:0 0 7px;font-size:1.35rem}.service-row p{margin:0 0 12px;color:var(--muted)}.service-row .number{color:var(--green);font-weight:900;font-size:.85rem;letter-spacing:.08em}.about-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:36px;align-items:start}.about-intro h2{margin:0 0 14px;font-size:2rem;line-height:1.15}.about-intro p{color:var(--muted)}.mission-panel{padding:26px;background:var(--pale);border-radius:14px}.mission-panel h3{margin:0 0 7px}.mission-panel p{margin:0 0 20px}.mission-panel p:last-child{margin-bottom:0}.values-list{display:grid;gap:18px}.value-item{display:grid;grid-template-columns:48px 1fr;gap:13px;align-items:start}.value-item .card-icon{margin:0;width:44px;height:44px;border-radius:50%}.value-item h3{margin:0 0 4px;font-size:1rem}.value-item p{margin:0;color:var(--muted);font-size:.92rem}.process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.process-step{position:relative;padding-top:19px}.step-number{width:34px;height:34px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:900;margin-bottom:12px}.process-step h3{font-size:1rem;margin:0 0 7px}.process-step p{font-size:.9rem;color:var(--muted);margin:0}.site-footer{background:var(--navy2);color:#fff;padding:36px 0 18px}.footer-main{display:flex;justify-content:space-between;gap:28px;align-items:start;padding-bottom:26px}.footer-brand .brand-name{color:#fff}.footer-brand .brand-sub{color:#c3d5e3}.footer-brand p{max-width:310px;color:#c3d5e3;font-size:.9rem}.footer-links{display:flex;gap:22px;flex-wrap:wrap;font-size:.9rem;color:#e0ebf3}.footer-links a:hover{color:#7be3a8}.footer-contact{display:flex;gap:16px;flex-wrap:wrap;color:#d6e4ee;font-size:.88rem;margin-top:15px}.footer-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:16px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#9fb7c9;font-size:.78rem}.disclaimer{font-size:.82rem;color:var(--muted);margin-top:20px}.form-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1/-1}.form-field label{font-size:.88rem;font-weight:800}.form-field input,.form-field textarea,.form-field select{border:1px solid #cbd9e3;border-radius:7px;padding:12px;color:var(--ink);background:#fff}.form-field textarea{min-height:120px;resize:vertical}.notice{display:none;background:var(--pale);color:#075b38;border-radius:8px;padding:12px;margin-top:14px}.small-label{font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em;color:var(--green)}@media(max-width:900px){.nav-links{gap:15px}.grid-4,.why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{min-height:410px}.about-intro{grid-template-columns:1fr}.process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.container{width:min(var(--max),calc(100% - 30px))}.topbar .container{justify-content:center;text-align:center}.nav-wrap{height:70px}.menu-toggle{display:block}.nav-links{display:none;position:absolute;top:70px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:16px 22px 22px;flex-direction:column;align-items:stretch;gap:6px}.nav-links.open{display:flex}.nav-links a{padding:10px 0}.nav-wrap>.btn{display:none}.brand{min-width:0}.brand-mark{width:40px;height:40px}.brand-name{font-size:1.15rem}.brand-sub{font-size:.44rem}.hero-content{padding:58px 0}.hero h1{font-size:2.55rem}.hero p{font-size:1rem}.section{padding:54px 0}.grid-2,.grid-3,.grid-4,.why-grid,.process-grid{grid-template-columns:1fr}.why-item,.why-item:first-child{border-left:0;border-top:1px solid rgba(255,255,255,.18);padding:18px 0 0}.why-item:first-child{border-top:0}.cta-inner{align-items:flex-start;flex-direction:column}.page-hero{padding:58px 0}.service-row{grid-template-columns:105px 1fr;gap:15px;padding:18px 0}.service-row .thumb{width:105px;height:105px}.service-row h2{font-size:1.08rem}.service-row p{font-size:.88rem}.footer-main{flex-direction:column}.footer-links{gap:14px}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* ===== MOTION ===== */
html{scroll-padding-top:90px}

/* Slow-motion background drift: hero, page banners and the closing call to action */
@keyframes drift{from{transform:scale(1.06) translate3d(0,0,0)}to{transform:scale(1.3) translate3d(-5%,-3%,0)}}
@keyframes driftReverse{from{transform:scale(1.15) translate3d(-2%,0,0)}to{transform:scale(1.03) translate3d(1.5%,-1%,0)}}
.hero:before,.page-hero:before,.cta-band:before{content:"";position:absolute;inset:0;z-index:-2;background-position:center;background-size:cover;will-change:transform;animation:drift 50s ease-in-out infinite alternate}
.hero:before{background-image:url('https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=2000&q=85');animation-duration:28s;inset:-10% 0;translate:0 var(--py,0px)}
.page-hero:before{background-image:url('https://images.unsplash.com/photo-1500382017468-9049fed747ef?auto=format&fit=crop&w=1900&q=85');animation-duration:60s}
.cta-band:before{background-image:url('https://images.unsplash.com/photo-1518005020951-eccb494ad742?auto=format&fit=crop&w=1800&q=80');animation-name:driftReverse;animation-duration:55s}
.hero:after,.page-hero:after,.cta-band:after{content:"";position:absolute;inset:0;z-index:-1}
.hero:after{background:linear-gradient(90deg,rgba(3,26,53,.94) 0%,rgba(3,26,53,.79) 45%,rgba(3,26,53,.18) 100%)}
.page-hero:after{background:linear-gradient(90deg,rgba(3,26,53,.92),rgba(3,26,53,.62))}
.cta-band:after{background:linear-gradient(100deg,rgba(4,33,64,.94),rgba(4,33,64,.66))}

/* One orchestrated page-load sequence in the hero */
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes underlineGrow{to{background-size:100% 4px}}
.hero-content>*,.page-hero .container>*{opacity:0;animation:rise 1s cubic-bezier(.2,.7,.2,1) forwards}
.hero-content>:nth-child(1),.page-hero .container>:nth-child(1){animation-delay:.15s}
.hero-content>:nth-child(2),.page-hero .container>:nth-child(2){animation-delay:.3s}
.hero-content>:nth-child(3),.page-hero .container>:nth-child(3){animation-delay:.5s}
.hero-content>:nth-child(4){animation-delay:.7s}
.hero-content>:nth-child(5){animation-delay:.9s}
.hero h1 .accent{background:linear-gradient(#6fe0a5,#6fe0a5) 0 100%/0 4px no-repeat;padding-bottom:3px;animation:underlineGrow 1.1s cubic-bezier(.6,0,.2,1) 1.1s forwards;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* Header: shadow and tighter height once the page is scrolled, plus a reading progress line */
.site-header{transition:box-shadow .3s ease,background .3s ease}
.site-header.scrolled{box-shadow:0 8px 28px rgba(5,35,67,.12)}
.nav-wrap{transition:height .3s ease}
@media(min-width:701px){.site-header.scrolled .nav-wrap{height:66px}}
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--green),#6fe0a5);transform:scaleX(0);transform-origin:left;z-index:50;pointer-events:none}
.brand-mark{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.brand:hover .brand-mark{transform:rotate(-8deg) scale(1.06)}

/* Nav underline slides in from the left */
.nav-links a:after{content:"";height:3px;background:var(--green);position:absolute;bottom:0;left:0;right:0;border-radius:5px;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.nav-links a:hover:after,.nav-links a.active:after{transform:scaleX(1)}
@keyframes menuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.nav-links.open{animation:menuIn .25s ease}

/* Buttons */
.btn{transition:background .2s,transform .2s,box-shadow .2s,color .2s}
.btn:hover{box-shadow:0 10px 22px rgba(7,131,79,.28)}
.btn-outline:hover{box-shadow:0 10px 22px rgba(6,38,75,.14)}
.btn:active{transform:translateY(0);box-shadow:none}

/* Cards */
.audience-card{transition:transform .35s ease,box-shadow .35s ease}
.audience-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.audience-card img,.service-row img{transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.audience-card:hover img,.service-row:hover img{transform:scale(1.07)}
.card-icon{transition:background .3s,color .3s,transform .4s cubic-bezier(.2,.7,.2,1)}
.service-card:hover .card-icon,.audience-card:hover .card-icon,.value-item:hover .card-icon{background:var(--green);color:#fff;transform:rotate(-6deg) scale(1.06)}
.service-card{transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.service-card:hover{border-color:#b9dcc9}
.service-row{transition:background .3s ease}
.service-row h2{transition:color .25s}
.service-row:hover h2{color:var(--green)}
.why-item .round-icon{transition:background .3s,color .3s,box-shadow .3s}
.why-item:hover .round-icon{background:rgba(93,228,155,.14);box-shadow:0 0 0 7px rgba(93,228,155,.12)}

/* About page: process line draws in, number pops */
@keyframes pop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}
.process-step:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--green);transform-origin:left;transition:transform 1.1s cubic-bezier(.6,0,.2,1) .15s}
.js .process-step:not(.in):before{transform:scaleX(0)}
.js .process-step.in .step-number{animation:pop .6s cubic-bezier(.2,.7,.2,1) .35s both}

/* Form */
.form-field input,.form-field textarea,.form-field select{transition:border-color .2s,box-shadow .2s}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 4px rgba(7,131,79,.16)}
.notice{animation:rise .45s ease both}

/* Scroll reveal (only when JavaScript is running) */
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease var(--d,0s),transform .8s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
.js .reveal.in{opacity:1;transform:none}

/* Respect people who ask for less motion */
@media(prefers-reduced-motion:reduce){
*,*:before,*:after{animation:none!important;transition:none!important}
.hero-content>*,.page-hero .container>*{opacity:1}
.hero h1 .accent{background-size:100% 4px}
.js .reveal{opacity:1;transform:none}
.js .process-step:not(.in):before{transform:none}
.scroll-progress{display:none}
}

/* ===== HOME HERO SLIDESHOW ===== */
.hero.has-slides:before{display:none}
.hero-slides{position:absolute;inset:-6% 0;z-index:-2;translate:0 var(--py,0px)}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center 5%;opacity:0;scale:1;transition:opacity 2.2s ease,scale 3s ease-out;will-change:transform,opacity}
.hero-slide.leaving{scale:1.12}
.hero-slide.on{opacity:1}
.hero-slide.run:nth-child(odd){animation:slideDriftA 15s ease-out forwards}
.hero-slide.run:nth-child(even){animation:slideDriftB 15s ease-out forwards}
@keyframes slideDriftA{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.2) translate3d(-3%,-2%,0)}}
@keyframes slideDriftB{from{transform:scale(1.02) translate3d(-2%,0,0)}to{transform:scale(1.2) translate3d(2%,-1.5%,0)}}
.hero-dots{position:absolute;right:max(20px,calc((100% - var(--max))/2));bottom:20px;display:flex;gap:10px;z-index:2}
.hero-dots button{width:34px;height:4px;border:0;padding:0;border-radius:3px;background:rgba(255,255,255,.35);cursor:pointer;overflow:hidden;position:relative}
.hero-dots button:focus-visible{outline:2px solid #6fe0a5;outline-offset:3px}
.hero-dots button:after{content:"";position:absolute;inset:0;background:#6fe0a5;transform:scaleX(0);transform-origin:left}
.hero-dots button.on:after{animation:dotFill var(--slide-ms,8s) linear forwards}
.hero-dots.static button.on:after{animation:none;transform:scaleX(1)}
@keyframes dotFill{to{transform:scaleX(1)}}

/* ===== PER-PAGE BANNERS (drop images/banner-*.jpg in to override) ===== */
.banner-services:before{background-image:url('images/banner-services.jpg'),url('https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?auto=format&fit=crop&w=1900&q=85')}
.banner-about:before{background-image:url('images/banner-about.jpg'),url('https://images.unsplash.com/photo-1500382017468-9049fed747ef?auto=format&fit=crop&w=1900&q=85')}
.banner-contact:before{background-image:url('images/banner-contact.jpg'),url('https://images.unsplash.com/photo-1504307651254-35680f356dfd?auto=format&fit=crop&w=1900&q=85')}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}.hero-dots button.on:after{animation:none;transform:scaleX(1)}}

/* contact links */
.topbar-call{font-weight:700}.topbar-call:hover{color:#7be3a8}
.footer-contact a:hover{color:#7be3a8;text-decoration:underline}
.mission-panel a{color:var(--green);font-weight:700}.mission-panel a:hover{text-decoration:underline}
.notice a{font-weight:800;text-decoration:underline}

.send-label{font-size:.88rem;font-weight:800}
.form-field .button-row{margin-top:2px}
.form-field .btn-outline{background:#fff}
