:root{
  --ink:#0D1B1E;
  --ink-2:#142A2E;
  --navy:#0E7C74;
  --navy-deep:#0A5F59;
  --copper:#D19A3A;
  --copper-soft:#EBC983;
  --stone:#F3F2EE;
  --mist:#E6EFEE;
  --white:#FFFFFF;
  --text:#1B2527;
  --muted:#56676A;
  --line:rgba(13,27,30,.12);
  --line-light:rgba(255,255,255,.16);
  --radius:6px;
  --container:1600px;
  --gutter:40px;
  --display:"Archivo", "Helvetica Neue", Arial, sans-serif;
  --serif:"Instrument Serif", Georgia, serif;
  --body:"Manrope", "Helvetica Neue", Arial, sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body);font-size:17px;line-height:1.7;color:var(--text);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{font-family:var(--display);font-stretch:112%;margin:0;line-height:1.05;letter-spacing:-.015em;color:var(--ink)}
p{margin:0}
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
section{position:relative}
.section{padding-block:140px}

/* ---------- Shared type ---------- */
.eyebrow{display:inline-flex;align-items:center;gap:14px;font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--copper)}
.eyebrow::before{content:none;display:none}
.h-xl{font-size:clamp(44px,5.6vw,92px);font-weight:700}
.h-lg{font-size:clamp(38px,4vw,68px);font-weight:700}
.h-md{font-size:clamp(28px,2.4vw,40px);font-weight:700}
.serif{white-space:nowrap;font-family:var(--serif);font-style:italic;font-weight:400;font-stretch:100%;letter-spacing:0;color:var(--copper)}
.lead{font-size:20px;line-height:1.7;color:var(--muted)}
.on-dark h1,.on-dark h2,.on-dark h3,.on-dark h4{color:var(--white)}
.on-dark .lead,.on-dark p{color:rgba(255,255,255,.74)}
.section-head{display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:end;margin-bottom:72px}
.section-head .eyebrow{margin-bottom:24px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:14px;padding:18px 30px;font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border-radius:2px;transition:all .35s var(--ease);cursor:pointer;border:1px solid transparent}
.btn svg{width:18px;height:18px;transition:transform .35s var(--ease)}
.btn:hover svg{transform:translateX(5px)}
.btn-primary{background:var(--copper);color:var(--white)}
.btn-primary:hover{background:#B07F25}
.btn-ghost{border-color:rgba(255,255,255,.4);color:var(--white)}
.btn-ghost:hover{background:var(--white);color:var(--ink)}
.btn-dark{background:var(--ink);color:var(--white)}
.btn-dark:hover{background:var(--navy)}
.link-arrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:600;font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);border-bottom:2px solid var(--copper);padding-bottom:4px}

/* ---------- Top bar + Header ---------- */
.topbar{background:var(--ink);color:rgba(255,255,255,.72);font-size:16px}
.topbar .container{display:flex;justify-content:space-between;align-items:center;height:48px;gap:24px}
.topbar a:hover{color:var(--white)}
.topbar .tb-left,.topbar .tb-right{display:flex;gap:32px;align-items:center}
.topbar strong{color:var(--copper-soft);font-weight:600;margin-right:8px}
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.header.scrolled{box-shadow:0 10px 40px -20px rgba(13,27,30,.35)}
.header .container{display:flex;align-items:center;justify-content:space-between;height:96px;gap:32px}
.logo img{height:52px;width:auto}
.nav{display:flex;gap:40px}
.nav a{font-size:16px;font-weight:600;color:var(--ink);position:relative;padding-block:8px}
.nav a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--copper);transition:width .35s var(--ease)}
.nav a:hover::after{width:100%}
.header .btn{padding:16px 26px}
.burger{display:none;background:none;border:0;width:44px;height:44px;cursor:pointer;padding:10px}
.burger span{display:block;height:2px;background:var(--ink);margin:6px 0;transition:.3s}

/* ---------- Hero ---------- */
.hero{background:var(--ink);color:var(--white);overflow:hidden;padding:110px 0 0}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(900px 600px at 85% 20%,rgba(14,124,116,.55),transparent 60%),
  linear-gradient(transparent 0 0);pointer-events:none}
.hero .grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(180deg,#000,transparent 85%);pointer-events:none}
.hero-inner{position:relative;display:grid;grid-template-columns:1fr 1.05fr;gap:80px;align-items:center}
.hero h1{color:var(--white);margin:28px 0 32px}
.hero h1 .serif{font-size:1.06em}
.hero .lead{color:rgba(255,255,255,.75);max-width:600px}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;margin-top:44px}
.hero-badges{display:flex;gap:28px;margin-top:56px;flex-wrap:wrap}
.hero-badges span{display:flex;align-items:center;gap:10px;font-size:16px;color:rgba(255,255,255,.7)}
.hero-badges span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--copper)}
.hero-collage{position:relative;height:720px}
.hero-collage figure{margin:0;position:absolute;overflow:hidden;border-radius:var(--radius);box-shadow:0 40px 80px -30px rgba(0,0,0,.6)}
.hero-collage img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.hero-collage figure:hover img{transform:scale(1.05)}
.hc-1{inset:0 0 120px 110px}
.hc-2{width:300px;height:380px;left:0;bottom:0;border:8px solid var(--ink)}
.hc-3{width:250px;height:250px;right:-30px;bottom:30px;border:8px solid var(--ink)}
.hc-tag{position:absolute;left:24px;top:24px;background:rgba(13,27,30,.82);backdrop-filter:blur(8px);padding:12px 18px;font-size:16px;color:var(--white);border-left:3px solid var(--copper)}
.hc-tag b{display:block;font-family:var(--display);font-stretch:110%;font-size:18px}
.hero-stats{position:relative;margin-top:110px;border-top:1px solid var(--line-light);display:grid;grid-template-columns:repeat(4,1fr)}
.hero-stats>div{padding:44px 40px 52px 0;border-right:1px solid var(--line-light)}
.hero-stats>div+div{padding-left:40px}
.hero-stats>div:last-child{border-right:0}
.stat-num{font-family:var(--display);font-stretch:118%;font-weight:700;font-size:clamp(44px,4vw,68px);line-height:1;color:var(--white)}
.stat-num sup{font-size:.5em;color:var(--copper);margin-left:4px;vertical-align:top;position:relative;top:.2em}
.stat-label{margin-top:12px;font-size:16px;color:rgba(255,255,255,.66);max-width:240px}

/* ---------- About ---------- */
.about{background:var(--white)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:center}
.about-media{position:relative;height:760px}
.about-media figure{margin:0;position:absolute;overflow:hidden;border-radius:var(--radius)}
.about-media img{width:100%;height:100%;object-fit:cover}
.am-1{left:0;top:0;width:68%;height:82%}
.am-2{right:0;bottom:0;width:52%;height:52%;border:10px solid var(--white);box-shadow:0 30px 60px -30px rgba(13,27,30,.4)}
.am-badge{position:absolute;left:36px;bottom:36px;background:var(--copper);color:var(--white);padding:28px 32px;border-radius:var(--radius);z-index:2}
.am-badge b{display:block;font-family:var(--display);font-stretch:118%;font-size:56px;line-height:1}
.am-badge span{font-size:16px;font-weight:600}
.about-copy .eyebrow{margin-bottom:24px}
.about-copy h2{margin-bottom:32px}
.about-copy p+p{margin-top:20px}
.about-copy p{color:var(--muted)}
.about-points{display:grid;grid-template-columns:1fr 1fr;gap:20px 32px;margin:40px 0 48px;padding-top:40px;border-top:1px solid var(--line)}
.about-points li{display:flex;gap:14px;font-weight:600;color:var(--ink);font-size:17px;line-height:1.45}
.about-points svg{flex:none;width:22px;height:22px;color:var(--copper);margin-top:1px}

/* ---------- Services ---------- */
.services{background:var(--stone)}
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.svc{background:var(--white);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.svc:hover{transform:translateY(-8px);box-shadow:0 40px 70px -40px rgba(13,27,30,.45)}
.svc-img{position:relative;height:400px;overflow:hidden}
.svc-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.svc:hover .svc-img img{transform:scale(1.06)}
.svc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(13,27,30,.85))}
.svc-num{position:absolute;left:32px;top:28px;z-index:2;font-family:var(--display);font-weight:700;font-size:18px;color:var(--white);background:rgba(13,27,30,.5);backdrop-filter:blur(6px);padding:6px 14px;border-radius:2px}
.svc-img h3{position:absolute;left:32px;right:32px;bottom:28px;z-index:2;color:var(--white);font-size:32px}
.svc-body{padding:36px 32px 40px;flex:1;display:flex;flex-direction:column}
.svc-body>p{color:var(--muted);margin-bottom:24px}
.svc-list li{position:relative;padding:12px 0 12px 26px;border-top:1px solid var(--line);font-size:16px;font-weight:500;color:var(--text);line-height:1.5}
.svc-list li::before{content:"";position:absolute;left:0;top:21px;width:10px;height:2px;background:var(--copper)}
.svc-more{margin-top:auto;padding-top:28px}

/* ---------- Markets ---------- */
.markets{background:var(--white)}
.mk-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:340px;gap:20px}
.mk{position:relative;overflow:hidden;border-radius:var(--radius);color:var(--white);display:flex;align-items:flex-end}
.mk img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.mk::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,27,30,.05) 30%,rgba(13,27,30,.88));transition:background .5s}
.mk:hover img{transform:scale(1.07)}
.mk:hover::after{background:linear-gradient(180deg,rgba(14,124,116,.25) 0%,rgba(13,27,30,.92))}
.mk-body{position:relative;z-index:2;padding:32px;width:100%}
.mk-body h3{color:var(--white);font-size:28px}
.mk-body p{color:rgba(255,255,255,.78);margin-top:10px;font-size:16px;max-height:0;opacity:0;overflow:hidden;transition:all .5s var(--ease)}
.mk:hover .mk-body p{max-height:120px;opacity:1}
.mk-count{position:absolute;right:28px;top:24px;z-index:2;font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--copper-soft)}
.mk-1{grid-column:span 7;grid-row:span 2}
.mk-2{grid-column:span 5}
.mk-3{grid-column:span 5}
.mk-4{grid-column:span 4}
.mk-5{grid-column:span 4}
.mk-6{grid-column:span 4}

/* ---------- Projects ---------- */
.projects{background:var(--ink)}
.featured{display:grid;grid-template-columns:1.25fr 1fr;background:var(--ink-2);border-radius:var(--radius);overflow:hidden;}
.featured-img{position:relative;min-height:600px;overflow:hidden}
.featured-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.featured-img .chip{position:absolute;left:28px;top:28px}
.chip{display:inline-block;background:var(--copper);color:var(--white);font-size:16px;font-weight:600;padding:8px 16px;border-radius:2px}
.featured-body{padding:72px 64px;display:flex;flex-direction:column;justify-content:center}
.featured-body .eyebrow{margin-bottom:20px}
.featured-body h3{font-size:clamp(34px,3vw,52px);margin-bottom:24px}
.featured-specs{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-light);margin:36px 0 40px;border:1px solid var(--line-light)}
.featured-specs div{background:var(--ink-2);padding:22px 24px}
.featured-specs b{display:block;font-family:var(--display);font-stretch:115%;font-size:30px;color:var(--white);line-height:1.1}
.featured-specs span{font-size:16px;color:rgba(255,255,255,.62)}
.filters{display:flex;gap:12px;flex-wrap:wrap}
.filters button{font-family:var(--body);font-size:16px;font-weight:600;padding:12px 24px;border-radius:40px;border:1px solid var(--line);background:var(--white);color:var(--ink);cursor:pointer;transition:all .3s}
.filters button:hover{border-color:var(--navy);color:var(--navy)}
.filters button.active{background:var(--navy);color:var(--white);border-color:var(--navy)}
.proj-bar{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;margin-bottom:44px}
.portfolio{background:var(--stone)}
.proj-count{font-size:16px;font-weight:600;color:var(--muted)}
.proj-count b{font-family:var(--display);font-stretch:115%;font-size:22px;color:var(--ink);margin-right:6px}
.proj-more{display:flex;justify-content:center;margin-top:64px}
.proj-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.proj{cursor:pointer;background:var(--white);border-radius:var(--radius);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.proj:hover{transform:translateY(-6px);box-shadow:0 34px 60px -36px rgba(13,27,30,.45)}
.proj.hide{display:none}
.proj-img{position:relative;aspect-ratio:4/3.2;overflow:hidden;background:var(--mist)}
.proj-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.proj:hover .proj-img img{transform:scale(1.08)}
.proj-img .overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(13,27,30,.9));display:flex;align-items:flex-end;padding:24px;opacity:0;transition:opacity .45s}
.proj:hover .overlay{opacity:1}
.overlay p{color:rgba(255,255,255,.88);font-size:16px;line-height:1.55;transform:translateY(16px);transition:transform .5s var(--ease)}
.proj:hover .overlay p{transform:none}
.proj-meta{padding:22px 24px 26px;border-top:3px solid transparent;transition:border-color .4s}
.proj:hover .proj-meta{border-top-color:var(--copper)}
.proj-meta .tag{font-size:16px;color:var(--copper);font-weight:600}
.proj-meta h4{color:var(--ink);font-size:23px;margin:6px 0 4px}
.proj-meta .loc{font-size:16px;color:var(--muted)}

/* ---------- Electrification band ---------- */
.electric{background:var(--ink);color:var(--white);overflow:hidden;padding-block:160px}
.electric .bg{position:absolute;inset:0}
.electric .bg img{width:100%;height:100%;object-fit:cover}
.electric .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,27,30,.96) 0%,rgba(13,27,30,.88) 45%,rgba(10,95,89,.35) 100%)}
.electric-inner{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.electric h2{margin:24px 0 28px}
.el-list{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.el-item{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(10px);padding:28px;border-radius:var(--radius);transition:background .3s}
.el-item:hover{background:rgba(209,154,58,.18)}
.el-item svg{width:34px;height:34px;color:var(--copper-soft);margin-bottom:18px}
.el-item h4{color:var(--white);font-size:20px;margin-bottom:8px}
.el-item p{color:rgba(255,255,255,.7);font-size:16px;line-height:1.55}

/* ---------- Approach ---------- */
.approach{background:var(--stone)}
.ap-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:100px;align-items:start}
.ap-media{position:sticky;top:140px}
.ap-media figure{margin:0;border-radius:var(--radius);overflow:hidden;height:680px;position:relative}
.ap-media img{width:100%;height:100%;object-fit:cover}
.ap-media figcaption{position:absolute;left:0;right:0;bottom:0;padding:32px;background:linear-gradient(transparent,rgba(13,27,30,.88));color:var(--white);font-size:16px}
.ap-media figcaption b{display:block;font-family:var(--display);font-size:22px;font-stretch:110%}
.ap-head .eyebrow{margin-bottom:24px}
.ap-head h2{margin-bottom:24px}
.steps{margin-top:56px;counter-reset:s}
.step{display:grid;grid-template-columns:110px 1fr;gap:24px;padding:40px 0;border-top:1px solid var(--line)}
.step:last-child{border-bottom:1px solid var(--line)}
.step-n{font-family:var(--display);font-stretch:120%;font-weight:700;font-size:52px;line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--navy)}
.step h3{font-size:28px;margin-bottom:12px}
.step p{color:var(--muted)}

/* ---------- Team ---------- */
.team{background:var(--white)}
.partners{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.partner{display:grid;grid-template-columns:240px 1fr;background:var(--mist);border-radius:var(--radius);overflow:hidden}
.partner figure{margin:0;overflow:hidden;background:#dde5e4;position:relative;min-height:300px}
.partner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%;transition:transform 1s var(--ease)}
.partner:hover img{transform:scale(1.04)}
.partner-body{padding:36px 40px;display:flex;flex-direction:column;justify-content:center}
.partner-body .role{font-size:16px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--copper)}
.partner-body h3{font-size:clamp(24px,1.8vw,30px);margin:10px 0 14px;white-space:nowrap}
.partner-body p{color:var(--muted);font-size:17px}
.partner-body .creds{padding-top:22px;display:flex;flex-wrap:wrap;gap:10px}
.creds span{font-size:16px;font-weight:600;background:var(--white);color:var(--navy);padding:6px 14px;border-radius:30px}
.staff{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px}
.staff-card{display:grid;grid-template-columns:64px 1fr;column-gap:20px;align-items:start;border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:border-color .3s, transform .4s var(--ease)}
.staff-card:hover{border-color:var(--copper);transform:translateY(-4px)}
.staff-card .initials{width:64px;height:64px;border-radius:50%;background:var(--navy);color:var(--white);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:22px;grid-row:span 3}
.staff-card h4{font-size:22px;margin-bottom:4px}
.staff-card .role{font-size:16px;font-weight:600;color:var(--copper);margin-bottom:8px}
.staff-card p{font-size:16px;color:var(--muted);line-height:1.65}

/* ---------- Testimonials ---------- */
.testimonials{background:var(--navy);overflow:hidden}
.testimonials::before{content:"\201C";position:absolute;right:4%;top:-60px;font-family:var(--serif);font-size:560px;line-height:1;color:rgba(255,255,255,.06);pointer-events:none}
.t-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.t-card{background:rgba(13,27,30,.35);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);padding:56px 52px;display:flex;flex-direction:column}
.t-card blockquote{margin:0 0 40px;font-family:var(--serif);font-size:clamp(26px,2vw,33px);line-height:1.35;color:var(--white)}
.t-card blockquote em{color:var(--copper-soft)}
.t-who{margin-top:auto;display:flex;align-items:center;gap:18px;padding-top:28px;border-top:1px solid rgba(255,255,255,.16)}
.t-who .av{width:56px;height:56px;border-radius:50%;background:var(--copper);display:grid;place-items:center;font-family:var(--display);font-weight:700;color:var(--white);font-size:20px}
.t-who b{display:block;color:var(--white);font-size:18px}
.t-who span{font-size:16px;color:rgba(255,255,255,.66)}
.clients{margin-top:88px;padding-top:56px;border-top:1px solid rgba(255,255,255,.16)}
.clients p.cl-title{text-align:center;font-size:16px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:36px}
.marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee-track{display:flex;gap:72px;width:max-content;animation:scroll 40s linear infinite}
.marquee-track span{font-family:var(--display);font-stretch:118%;font-weight:700;font-size:30px;color:rgba(255,255,255,.55);white-space:nowrap;letter-spacing:-.01em}
.marquee-track span:hover{color:var(--white)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ---------- Contact / Form ---------- */
.contact{background:var(--stone)}
.ct-wrap{display:grid;grid-template-columns:.9fr 1.1fr;border-radius:var(--radius);overflow:hidden;background:var(--white);box-shadow:0 50px 90px -60px rgba(13,27,30,.5)}
.ct-media{position:relative;min-height:660px;display:flex;flex-direction:column;justify-content:flex-end}
.ct-media>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ct-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,27,30,.2) 0%,rgba(13,27,30,.7) 40%,rgba(13,27,30,.96) 100%)}
.ct-media-copy{position:relative;z-index:2;padding:56px}
.ct-media-copy h2{color:var(--white);margin:22px 0 20px}
.ct-media-copy>p{color:rgba(255,255,255,.8);max-width:520px}
.ct-offices{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px}
.ct-off{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px);border-radius:var(--radius);padding:22px 22px 24px}
.ct-off .tag{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.14em;color:var(--copper-soft)}
.ct-off p{color:rgba(255,255,255,.78);font-size:16px;line-height:1.55;margin:8px 0 10px}
.ct-off a{font-weight:700;color:var(--white);font-size:17px}
.ct-off a:hover{color:var(--copper-soft)}
.ct-body{padding:64px 60px}
.ct-body h3{font-size:34px;margin:16px 0 10px}
.ct-body .sub{color:var(--muted);margin-bottom:36px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/-1}
.field label,.field .lbl{font-size:16px;font-weight:700;color:var(--ink)}
.field label i{color:var(--copper);font-style:normal}
.field input,.field select,.field textarea{font-family:var(--body);font-size:16px;color:var(--text);background:var(--stone);border:1.5px solid transparent;border-radius:4px;padding:15px 16px;width:100%;transition:border-color .25s,background .25s,box-shadow .25s;appearance:none;-webkit-appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A1630' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px;padding-right:44px;cursor:pointer}
.field textarea{min-height:150px;resize:vertical;line-height:1.6}
.field input::placeholder,.field textarea::placeholder{color:#869496}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;background:var(--white);border-color:var(--navy);box-shadow:0 0 0 4px rgba(14,124,116,.12)}
.field.err input,.field.err select,.field.err textarea{border-color:#C8371D;background-color:#fff}
.field .msg{display:none;font-size:16px;color:#C8371D}
.field.err .msg{display:block}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips label{position:relative;cursor:pointer}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:40px;border:1.5px solid var(--line);font-size:16px;font-weight:600;color:var(--ink);background:var(--white);transition:all .25s}
.chips span::before{content:"+";font-weight:700;color:var(--copper)}
.chips label:hover span{border-color:var(--navy)}
.chips input:checked+span{background:var(--navy);border-color:var(--navy);color:var(--white)}
.chips input:checked+span::before{content:"✓";color:var(--copper-soft)}
.chips input:focus-visible+span{box-shadow:0 0 0 4px rgba(14,124,116,.2)}
.form-foot{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}
.form-foot p{font-size:16px;color:var(--muted);max-width:340px;line-height:1.55}
.form-foot .btn{border:0}
.form-foot .btn[disabled]{opacity:.7;cursor:wait}
.form-success{display:none;text-align:center;padding:60px 20px}
.form-success .tick{width:84px;height:84px;border-radius:50%;background:var(--copper);display:grid;place-items:center;margin:0 auto 28px}
.form-success .tick svg{width:40px;height:40px;color:#fff}
.form-success h3{margin-bottom:14px}
.form-success p{color:var(--muted);max-width:440px;margin:0 auto 28px}
.ct-body.sent form,.ct-body.sent .ct-head{display:none}
.ct-body.sent .form-success{display:block}
@media (max-width:1180px){.ct-media{min-height:620px}}
@media (max-width:820px){
  .ct-media{min-height:0}
  .ct-media-copy{padding:140px 20px 28px}
  .ct-offices,.form-grid{grid-template-columns:1fr}
  .ct-body{padding:40px 20px}
  .form-foot .btn{width:100%;justify-content:center}
}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:rgba(255,255,255,.7);position:relative;overflow:hidden}
/* image ribbon */
.ft-ribbon{position:relative;display:grid;grid-template-columns:repeat(6,1fr);height:260px}
.ft-ribbon a{position:relative;overflow:hidden;display:block}
.ft-ribbon img{width:100%;height:100%;object-fit:cover;filter:grayscale(.85) brightness(.7);transition:filter .6s var(--ease),transform 1.2s var(--ease)}
.ft-ribbon a:hover img{filter:none;transform:scale(1.08)}
.ft-ribbon a span{position:absolute;left:20px;bottom:18px;z-index:2;font-family:var(--display);font-stretch:110%;font-weight:700;font-size:18px;color:var(--white);opacity:0;transform:translateY(10px);transition:all .45s var(--ease)}
.ft-ribbon a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(13,27,30,.85));opacity:0;transition:opacity .45s}
.ft-ribbon a:hover span,.ft-ribbon a:hover::after{opacity:1;transform:none}
.ft-ribbon::before{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;background:linear-gradient(transparent,var(--ink));z-index:1;pointer-events:none}
/* CTA */
.ft-cta{position:relative;z-index:2;display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:end;padding:56px 0 88px;border-bottom:1px solid var(--line-light)}
.ft-cta h2{color:var(--white);font-size:clamp(44px,5.4vw,96px);font-weight:700;line-height:.98}
.ft-cta-side p{font-size:18px;color:rgba(255,255,255,.72);margin-bottom:32px;max-width:520px}
.ft-cta-actions{display:flex;flex-wrap:wrap;gap:14px}
.ft-call{display:flex;align-items:center;gap:16px;padding:16px 24px 16px 16px;border:1px solid var(--line-light);border-radius:60px;transition:all .35s var(--ease)}
.ft-call:hover{background:var(--white);border-color:var(--white)}
.ft-call:hover b,.ft-call:hover small{color:var(--ink)}
.ft-call i{width:48px;height:48px;border-radius:50%;background:var(--copper);display:grid;place-items:center;flex:none}
.ft-call i svg{width:20px;height:20px;color:var(--white)}
.ft-call small{display:block;font-size:16px;color:rgba(255,255,255,.6);line-height:1.2;transition:color .3s}
.ft-call b{display:block;font-family:var(--display);font-stretch:110%;font-size:20px;color:var(--white);line-height:1.3;transition:color .3s}
/* main grid */
.ft-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.35fr .8fr 1.15fr 1.1fr;gap:64px;padding:88px 0 80px}
.ft-brand img{height:60px;width:auto;margin-bottom:28px}
.ft-brand p{font-size:16px;max-width:400px;line-height:1.75}
.ft-creds{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.ft-creds span{display:inline-flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:var(--white);padding:8px 16px;border:1px solid var(--line-light);border-radius:40px;background:rgba(255,255,255,.04)}
.ft-creds span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--copper)}
.ft-grid h5{display:flex;align-items:center;gap:12px;font-family:var(--display);font-size:16px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--white);margin:0 0 28px}
.ft-grid h5::after{content:"";flex:1;height:1px;background:var(--line-light)}
.ft-links li{margin-bottom:14px}
.ft-links a{position:relative;display:inline-flex;align-items:center;font-size:16px;transition:color .3s,transform .3s var(--ease)}
.ft-links a::before{content:"";width:0;height:2px;background:var(--copper);margin-right:0;transition:all .3s var(--ease)}
.ft-links a:hover{color:var(--white)}
.ft-links a:hover::before{width:14px;margin-right:10px}
.ft-proj li+li{margin-top:18px}
.ft-proj a{display:grid;grid-template-columns:88px 1fr;gap:16px;align-items:center}
.ft-proj figure{margin:0;width:88px;height:68px;border-radius:4px;overflow:hidden}
.ft-proj img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.ft-proj a:hover img{transform:scale(1.12)}
.ft-proj b{display:block;font-family:var(--display);font-stretch:108%;color:var(--white);font-size:18px;line-height:1.25}
.ft-proj small{font-size:16px;color:rgba(255,255,255,.55)}
.ft-proj a:hover b{color:var(--copper-soft)}
.ft-office+.ft-office{margin-top:26px;padding-top:26px;border-top:1px solid var(--line-light)}
.ft-office .tag{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.14em;color:var(--copper-soft)}
.ft-office p{font-size:16px;margin:6px 0 8px;line-height:1.6}
.ft-office a{font-weight:700;color:var(--white);font-size:17px}
.ft-office a:hover{color:var(--copper-soft)}
/* giant wordmark */
.ft-mark{position:relative;z-index:1;height:clamp(90px,12vw,200px);overflow:hidden;pointer-events:none}
.ft-mark img{width:100%;height:auto;opacity:.06}
/* bottom bar */
.ft-bottom{position:relative;z-index:2;border-top:1px solid var(--line-light);padding:28px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;font-size:16px}
.ft-bottom nav{display:flex;gap:28px;flex-wrap:wrap}
.ft-bottom nav a:hover{color:var(--white)}
.to-top{width:52px;height:52px;border-radius:50%;background:var(--copper);display:grid;place-items:center;color:var(--white);transition:transform .35s var(--ease),background .3s}
.to-top:hover{transform:translateY(-4px);background:#B07F25}
.to-top svg{width:20px;height:20px}
.footer .glow{position:absolute;width:900px;height:900px;right:-300px;top:200px;background:radial-gradient(circle,rgba(14,124,116,.45),transparent 65%);pointer-events:none}
@media (max-width:1180px){
  .ft-ribbon{grid-template-columns:repeat(3,1fr);height:360px}
  .ft-cta{grid-template-columns:1fr;gap:32px}
  .ft-grid{grid-template-columns:1fr 1fr;gap:56px}
}
@media (max-width:820px){
  .ft-ribbon{grid-template-columns:repeat(3,1fr);height:240px}
  .ft-ribbon a span{display:none}
  .ft-cta{padding:40px 0 64px}
  .ft-call{width:100%}
  .ft-grid{grid-template-columns:1fr;gap:48px;padding:64px 0}
  .ft-bottom{flex-direction:column;align-items:flex-start}
}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}

/* ---------- Responsive ---------- */
@media (max-width:1360px){
  .nav{gap:28px}
  .proj-grid{grid-template-columns:repeat(3,1fr)}
  .partner{grid-template-columns:200px 1fr}
}
@media (max-width:1180px){
  :root{--gutter:32px}
  .section{padding-block:110px}
  .nav,.header .btn{display:none}
  .burger{display:block}
  .nav.open{display:flex;position:absolute;top:96px;left:0;right:0;flex-direction:column;gap:0;background:var(--white);padding:16px var(--gutter) 28px;border-bottom:1px solid var(--line);box-shadow:0 30px 40px -30px rgba(0,0,0,.3)}
  .nav.open a{padding:14px 0;border-bottom:1px solid var(--line);font-size:18px}
  .hero-inner,.about-grid,.electric-inner,.ap-grid,.ct-wrap,.featured{grid-template-columns:1fr}
  .section-head{grid-template-columns:1fr;gap:24px}
  .hero-collage{height:620px}
  .svc-grid{grid-template-columns:1fr 1fr}
  .partners{grid-template-columns:1fr}
  .t-grid{grid-template-columns:1fr}
  .ap-media{position:relative;top:0}
  .ap-media figure{height:480px}
  .ft-grid{grid-template-columns:1fr 1fr}
  .featured-img{min-height:460px}
  .hero-stats{grid-template-columns:repeat(2,1fr)}
  .hero-stats>div:nth-child(2){border-right:0}
  .hero-stats>div:nth-child(3){padding-left:0}
  .hero-stats>div:nth-child(n+3){border-top:1px solid var(--line-light)}
}
@media (max-width:820px){
  :root{--gutter:16px}
  body{font-size:16px}
  .section{padding-block:80px}
  .topbar .tb-left{display:none}
  .topbar .container{justify-content:center}
  .topbar .tb-right{gap:18px}
  .header .container{height:80px}
  .nav.open{top:80px}
  .logo img{height:42px}
  .hero{padding-top:64px}
  .hero-collage{height:440px}
  .hc-1{inset:0 0 90px 60px}
  .hc-2{width:180px;height:230px;border-width:6px}
  .hc-3{display:none}
  .hero-stats{margin-top:64px}
  .hero-stats>div,.hero-stats>div+div{padding:28px 12px 32px 0}
  .hero-stats>div:nth-child(2n){padding-left:16px}
  .about-media{height:520px}
  .am-badge{left:16px;bottom:16px;padding:20px 22px}
  .am-badge b{font-size:40px}
  .about-points{grid-template-columns:1fr}
  .svc-grid,.proj-grid,.staff,.el-list{grid-template-columns:1fr}
  .svc-img{height:320px}
  .mk-grid{grid-template-columns:1fr;grid-auto-rows:300px}
  .mk-1,.mk-2,.mk-3,.mk-4,.mk-5,.mk-6{grid-column:auto;grid-row:auto}
  .mk-body p{max-height:none;opacity:1}
  .featured-body{padding:40px 24px}
  .featured-img{min-height:320px}
  .partner{grid-template-columns:1fr}
  .partner figure{height:340px}
  .partner-body h3{white-space:normal}
  .partner-body{padding:32px 24px}
  .t-card{padding:36px 24px}
  .step{grid-template-columns:1fr;gap:12px}
  .ct-body{padding:44px 24px}
  .ct-media{min-height:520px}
  .ct-media-copy{inset:auto 24px 32px 24px}
  .office{grid-template-columns:1fr;gap:10px}
  .ft-grid{grid-template-columns:1fr;gap:40px}
  .electric{padding-block:96px}
  .proj-img .overlay{opacity:1}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

/* =========================================================
   INNER PAGES (About / Contact)
   ========================================================= */
.nav a.active{color:var(--navy)}
.nav a.active::after{width:100%}
.crumbs{display:flex;align-items:center;gap:12px;font-size:16px;color:rgba(255,255,255,.65);margin-bottom:28px}
.crumbs a:hover{color:var(--white)}
.crumbs span[aria-hidden]{color:var(--copper)}
.crumbs b{color:var(--white);font-weight:600}

/* ---------- About hero ---------- */
.page-hero{background:var(--ink);color:var(--white);overflow:hidden;padding:120px 0 0}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 600px at 85% 10%,rgba(14,124,116,.55),transparent 60%);pointer-events:none}
.ph-inner{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:80px;align-items:end}
.ph-inner h1{color:var(--white)}
.ph-inner .lead{color:rgba(255,255,255,.75)}
.ph-side .hero-ctas{margin-top:32px}
.ph-mosaic{position:relative;display:grid;grid-template-columns:1.3fr 1fr 1fr 1.3fr;gap:16px;margin-top:88px;height:420px}
.ph-mosaic figure{margin:0;position:relative;overflow:hidden;border-radius:var(--radius) var(--radius) 0 0}
.ph-mosaic img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.ph-mosaic figure:hover img{transform:scale(1.06)}
.ph-mosaic figure:nth-child(2),.ph-mosaic figure:nth-child(3){margin-top:70px}
.ph-mosaic figcaption{position:absolute;left:16px;bottom:16px;background:rgba(13,27,30,.8);backdrop-filter:blur(6px);padding:8px 14px;font-size:16px;font-weight:600;border-left:3px solid var(--copper)}

/* ---------- Story ---------- */
.story{background:var(--white)}
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.story-copy .eyebrow{margin-bottom:24px}
.story-copy h2{margin-bottom:32px}
.story-copy p{color:var(--muted)}
.story-copy p+p{margin-top:20px}
.story-quote{margin:40px 0 0;padding:32px 36px;background:var(--mist);border-left:4px solid var(--copper);border-radius:0 var(--radius) var(--radius) 0}
.story-quote p{font-family:var(--serif);font-size:26px;line-height:1.4;color:var(--ink)!important}
.story-quote cite{display:block;margin-top:16px;font-style:normal;font-size:16px;font-weight:700;color:var(--navy)}
.story-media{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:300px 300px;gap:18px;position:relative}
.story-media figure{margin:0;overflow:hidden;border-radius:var(--radius)}
.story-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.story-media figure:hover img{transform:scale(1.06)}
.story-media .tall{grid-row:span 2}
.story-badge{position:absolute;left:-36px;bottom:48px;background:var(--copper);color:var(--white);padding:26px 30px;border-radius:var(--radius);box-shadow:0 30px 50px -25px rgba(0,0,0,.5)}
.story-badge b{display:block;font-family:var(--display);font-stretch:118%;font-size:52px;line-height:1}
.story-badge span{font-size:16px;font-weight:600}

/* ---------- Stats band ---------- */
.stats-band{background:var(--navy);padding-block:100px;overflow:hidden}
.stats-band::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:80px 80px;pointer-events:none}
.sb-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr)}
.sb-grid>div{padding:8px 40px;border-left:1px solid rgba(255,255,255,.2)}
.sb-grid>div:first-child{border-left:0;padding-left:0}
.sb-grid .stat-label{color:rgba(255,255,255,.75)}

/* ---------- Values ---------- */
.values{background:var(--stone)}
.val-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.val{background:var(--white);border-radius:var(--radius);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.val:hover{transform:translateY(-8px);box-shadow:0 40px 70px -40px rgba(13,27,30,.45)}
.val figure{margin:0;height:240px;overflow:hidden;position:relative}
.val img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.val:hover img{transform:scale(1.07)}
.val figure span{position:absolute;left:20px;top:20px;width:52px;height:52px;border-radius:50%;background:var(--copper);display:grid;place-items:center;color:var(--white)}
.val figure span svg{width:24px;height:24px}
.val-body{padding:30px 28px 34px}
.val-body h3{font-size:24px;margin-bottom:12px}
.val-body p{color:var(--muted);font-size:16px}

/* ---------- Timeline ---------- */
.journey{background:var(--white)}
.tl{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:28px;margin-top:20px}
.tl::before{content:"";position:absolute;left:0;right:0;top:27px;height:2px;background:linear-gradient(90deg,var(--copper),var(--navy))}
.tl-item{position:relative;padding-top:76px}
.tl-dot{position:absolute;top:12px;left:0;width:32px;height:32px;border-radius:50%;background:var(--white);border:3px solid var(--copper);display:grid;place-items:center}
.tl-dot::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--copper)}
.tl-year{font-family:var(--display);font-stretch:118%;font-weight:700;font-size:40px;color:var(--navy);line-height:1;margin-bottom:14px}
.tl-item h3{font-size:22px;margin-bottom:10px}
.tl-item p{color:var(--muted);font-size:16px}

/* ---------- Leadership (dark) ---------- */
.leaders{background:var(--ink)}
.leader{display:grid;grid-template-columns:420px 1fr;gap:72px;align-items:center;padding:56px 0;border-top:1px solid var(--line-light)}
.leader:first-of-type{border-top:0;padding-top:0}
.leader.flip{grid-template-columns:1fr 420px}
.leader.flip figure{order:2}
.leader figure{margin:0;height:500px;border-radius:var(--radius);overflow:hidden;position:relative;background:#dde5e4}
.leader figure img{width:100%;height:100%;object-fit:cover;object-position:center 15%}
.leader figure figcaption{position:absolute;right:0;bottom:0;background:var(--copper);color:var(--white);font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.12em;padding:12px 20px}
.leader .role{font-size:16px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--copper-soft)}
.leader h3{color:var(--white);font-size:clamp(34px,3vw,48px);margin:14px 0 24px}
.leader p{color:rgba(255,255,255,.74)}
.leader p+p{margin-top:16px}
.leader .creds{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.leader .creds span{font-size:16px;font-weight:600;color:var(--white);padding:8px 16px;border-radius:40px;border:1px solid var(--line-light);background:rgba(255,255,255,.05)}
.staff-dark{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;padding-top:72px;border-top:1px solid var(--line-light)}
.staff-dark article{background:var(--ink-2);border:1px solid var(--line-light);border-radius:var(--radius);padding:36px 32px;transition:border-color .3s,transform .4s var(--ease)}
.staff-dark article:hover{border-color:var(--copper);transform:translateY(-4px)}
.staff-dark .initials{width:60px;height:60px;border-radius:50%;background:var(--copper);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:20px;color:var(--white);margin-bottom:22px}
.staff-dark h4{color:var(--white);font-size:24px;margin-bottom:6px}
.staff-dark .r{font-size:16px;font-weight:600;color:var(--copper-soft);margin-bottom:14px}
.staff-dark p{font-size:16px;color:rgba(255,255,255,.7);line-height:1.65}
.leaders-head{margin-bottom:72px}

/* ---------- Long testimonials (light) ---------- */
.voices{background:var(--stone)}
.voice{display:grid;grid-template-columns:200px 1fr;gap:56px;padding:56px;background:var(--white);border-radius:var(--radius)}
.voice+.voice{margin-top:28px}
.voice .who .av{width:84px;height:84px;border-radius:50%;background:var(--navy);display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:28px;color:var(--white);margin-bottom:20px}
.voice .who b{display:block;font-size:18px;color:var(--ink)}
.voice .who span{font-size:16px;color:var(--muted)}
.voice blockquote{margin:0;font-family:var(--serif);font-size:clamp(24px,1.9vw,31px);line-height:1.4;color:var(--ink)}
.voice blockquote em{color:var(--copper)}
.voice .more{margin-top:20px;color:var(--muted)}

/* ---------- Contact hero ---------- */
.c-hero{position:relative;background:var(--ink);overflow:hidden;padding:150px 0 0}
.c-hero .bg{position:absolute;inset:0}
.c-hero .bg img{width:100%;height:100%;object-fit:cover}
.c-hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,27,30,.97) 0%,rgba(13,27,30,.85) 50%,rgba(10,95,89,.45) 100%)}
.c-hero-inner{position:relative;max-width:900px}
.c-hero h1{color:var(--white);margin-bottom:28px}
.c-hero .lead{color:rgba(255,255,255,.78);max-width:680px}
.quick{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:96px;background:var(--white);border-radius:var(--radius) var(--radius) 0 0;overflow:hidden}
.quick a{display:flex;gap:20px;align-items:center;padding:36px 40px;border-left:1px solid var(--line);transition:background .3s}
.quick a:first-child{border-left:0}
.quick a:hover{background:var(--mist)}
.quick i{width:60px;height:60px;border-radius:50%;background:var(--navy);display:grid;place-items:center;flex:none;transition:background .3s}
.quick a:hover i{background:var(--copper)}
.quick i svg{width:24px;height:24px;color:var(--white)}
.quick small{display:block;font-size:16px;color:var(--muted)}
.quick b{display:block;font-family:var(--display);font-stretch:110%;font-size:22px;color:var(--ink);line-height:1.3}

/* ---------- Contact form section ---------- */
.c-form{background:var(--white)}
.c-form .ct-wrap{box-shadow:0 50px 100px -60px rgba(13,27,30,.55);border:1px solid var(--line)}
.next-steps{margin-top:36px;display:grid;gap:14px}
.next-steps li{display:grid;grid-template-columns:48px 1fr;gap:16px;align-items:start;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px);border-radius:var(--radius);padding:18px 20px}
.next-steps .n{width:48px;height:48px;border-radius:50%;background:var(--copper);display:grid;place-items:center;font-family:var(--display);font-weight:700;color:var(--white);font-size:18px}
.next-steps b{display:block;color:var(--white);font-size:18px}
.next-steps span{font-size:16px;color:rgba(255,255,255,.72);line-height:1.5}

/* ---------- Offices with maps ---------- */
.offices{background:var(--stone)}
.off-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.off-card{background:var(--white);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.off-map{position:relative;height:340px;background:var(--mist)}
.off-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) contrast(1.05)}
.off-map .pin{position:absolute;left:24px;top:24px;background:var(--ink);color:var(--white);font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.12em;padding:10px 16px;border-left:3px solid var(--copper)}
.off-body{padding:40px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end}
.off-body h3{font-size:30px;margin-bottom:12px}
.off-body p{color:var(--muted)}
.off-body .ph{display:inline-block;margin-top:14px;font-family:var(--display);font-stretch:110%;font-weight:700;font-size:24px;color:var(--navy)}
.off-body .ph:hover{color:var(--copper)}
.off-body .who{display:block;margin-top:6px;font-size:16px;color:var(--muted)}

/* ---------- FAQ ---------- */
.faq{background:var(--white)}
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:start}
.faq-side{position:sticky;top:140px}
.faq-side .eyebrow{margin-bottom:24px}
.faq-side h2{margin-bottom:24px}
.faq-side figure{margin:40px 0 0;height:320px;border-radius:var(--radius);overflow:hidden}
.faq-side img{width:100%;height:100%;object-fit:cover}
.faq-item{border-top:1px solid var(--line)}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:24px;background:none;border:0;padding:30px 0;text-align:left;cursor:pointer;font-family:var(--display);font-stretch:108%;font-weight:700;font-size:22px;color:var(--ink);line-height:1.3}
.faq-q:hover{color:var(--navy)}
.faq-q i{flex:none;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;transition:all .35s var(--ease)}
.faq-q i svg{width:18px;height:18px;transition:transform .35s var(--ease)}
.faq-item.open .faq-q i{background:var(--copper);border-color:var(--copper);color:var(--white)}
.faq-item.open .faq-q i svg{transform:rotate(45deg)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.faq-a>div{overflow:hidden}
.faq-a p{color:var(--muted);padding:0 64px 30px 0}
.faq-item.open .faq-a{grid-template-rows:1fr}

/* ---------- Inner responsive ---------- */
@media (max-width:1180px){
  .ph-inner,.story-grid,.faq-grid,.off-grid{grid-template-columns:1fr;gap:48px}
  .ph-mosaic{grid-template-columns:repeat(4,1fr);height:320px}
  .story-badge{left:16px}
  .val-grid{grid-template-columns:1fr 1fr}
  .sb-grid{grid-template-columns:1fr 1fr;row-gap:48px}
  .sb-grid>div:nth-child(3){border-left:0;padding-left:0}
  .tl{grid-template-columns:1fr;gap:0}
  .tl::before{left:15px;right:auto;top:0;bottom:0;width:2px;height:auto;background:linear-gradient(180deg,var(--copper),var(--navy))}
  .tl-item{padding:0 0 44px 64px}
  .tl-dot{top:4px}
  .leader,.leader.flip{grid-template-columns:340px 1fr;gap:48px}
  .leader.flip figure{order:0}
  .staff-dark{grid-template-columns:1fr}
  .quick{grid-template-columns:1fr}
  .quick a{border-left:0;border-top:1px solid var(--line)}
  .quick a:first-child{border-top:0}
  .faq-side{position:relative;top:0}
}
@media (max-width:820px){
  .page-hero{padding-top:64px}
  .ph-mosaic{grid-template-columns:1fr 1fr;height:auto;margin-top:56px}
  .ph-mosaic figure{height:200px}
  .ph-mosaic figure:nth-child(2),.ph-mosaic figure:nth-child(3){margin-top:0}
  .story-media{grid-template-rows:200px 200px}
  .story-badge{padding:18px 20px;bottom:16px}
  .story-badge b{font-size:38px}
  .story-quote{padding:24px}
  .story-quote p{font-size:22px}
  .val-grid,.sb-grid{grid-template-columns:1fr}
  .sb-grid>div{border-left:0;padding-left:0;border-top:1px solid rgba(255,255,255,.2);padding-top:28px}
  .sb-grid>div:first-child{border-top:0;padding-top:0}
  .leader,.leader.flip{grid-template-columns:1fr;gap:32px}
  .leader figure{height:420px}
  .voice{grid-template-columns:1fr;gap:24px;padding:32px 24px}
  .c-hero{padding-top:80px}
  .quick a{padding:24px 20px}
  .off-body{grid-template-columns:1fr;padding:28px 22px}
  .off-map{height:260px}
  .faq-q{font-size:19px;padding:24px 0}
  .faq-a p{padding-right:0}
}

/* =========================================================
   SERVICES PAGE
   ========================================================= */
.s-hero{background:var(--ink);overflow:hidden;padding:120px 0 120px}
.s-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 600px at 85% 15%,rgba(14,124,116,.55),transparent 60%);pointer-events:none}
.s-hero-inner{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.s-hero h1{color:var(--white);margin:24px 0 28px}
.s-hero .lead{color:rgba(255,255,255,.75)}
.s-jump{display:grid;gap:16px}
.s-jump a{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:24px;background:rgba(255,255,255,.05);border:1px solid var(--line-light);border-radius:var(--radius);overflow:hidden;transition:all .4s var(--ease)}
.s-jump a:hover{background:rgba(255,255,255,.1);border-color:var(--copper);transform:translateX(-6px)}
.s-jump figure{margin:0;height:120px;overflow:hidden}
.s-jump img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.s-jump a:hover img{transform:scale(1.1)}
.s-jump small{display:block;font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.14em;color:var(--copper-soft)}
.s-jump b{display:block;font-family:var(--display);font-stretch:110%;font-size:24px;color:var(--white);line-height:1.25;margin-top:4px}
.s-jump i{width:48px;height:48px;margin-right:24px;border-radius:50%;border:1px solid var(--line-light);display:grid;place-items:center;color:var(--white);transition:all .3s}
.s-jump a:hover i{background:var(--copper);border-color:var(--copper)}
.s-jump i svg{width:18px;height:18px}

.svc-detail{background:var(--white)}
.svc-detail.alt{background:var(--stone)}
.sd-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}
.sd-grid.flip .sd-media{order:2}
.sd-media{position:relative;height:680px}
.sd-media .main{position:absolute;inset:0 90px 70px 0;margin:0;border-radius:var(--radius);overflow:hidden}
.sd-grid.flip .sd-media .main{inset:0 0 70px 90px}
.sd-media .main img,.sd-media .sub img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.sd-media:hover .main img{transform:scale(1.05)}
.sd-media .sub{position:absolute;right:0;bottom:0;width:300px;height:260px;margin:0;border-radius:var(--radius);overflow:hidden;border:10px solid var(--white);box-shadow:0 30px 60px -30px rgba(13,27,30,.45)}
.svc-detail.alt .sd-media .sub{border-color:var(--stone)}
.sd-grid.flip .sd-media .sub{right:auto;left:0}
.sd-chip{position:absolute;left:28px;top:28px;z-index:2;background:rgba(13,27,30,.82);backdrop-filter:blur(8px);color:var(--white);padding:16px 22px;border-left:3px solid var(--copper);border-radius:2px}
.sd-grid.flip .sd-chip{left:118px}
.sd-chip b{display:block;font-family:var(--display);font-stretch:115%;font-size:30px;line-height:1.1}
.sd-chip span{font-size:16px;color:rgba(255,255,255,.75)}
.sd-num{font-family:var(--display);font-stretch:120%;font-weight:700;font-size:88px;line-height:.9;color:transparent;-webkit-text-stroke:1.5px var(--copper);display:block;margin-bottom:16px}
.sd-copy h2{margin:20px 0 24px}
.sd-copy>p{color:var(--muted)}
.sd-list{display:grid;grid-template-columns:1fr 1fr;gap:4px 28px;margin:32px 0}
.sd-list li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:16px;font-weight:600;color:var(--ink);line-height:1.45}
.sd-list svg{flex:none;width:20px;height:20px;color:var(--copper);margin-top:1px}
.sd-proj{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.sd-proj>span{font-size:16px;font-weight:700;color:var(--muted);margin-right:6px}
.sd-proj a{font-size:16px;font-weight:600;color:var(--navy);background:var(--mist);padding:7px 16px;border-radius:30px;transition:all .3s}
.svc-detail.alt .sd-proj a{background:var(--white)}
.sd-proj a:hover{background:var(--navy)!important;color:var(--white)}

.caps{background:var(--ink)}
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-light);border:1px solid var(--line-light);border-radius:var(--radius);overflow:hidden}
.cap{background:var(--ink);padding:44px 40px;transition:background .4s}
.cap:hover{background:var(--ink-2)}
.cap svg{width:40px;height:40px;color:var(--copper-soft);margin-bottom:24px}
.cap h3{color:var(--white);font-size:24px;margin-bottom:12px}
.cap p{color:rgba(255,255,255,.7);font-size:16px}

.cta-band{position:relative;overflow:hidden;background:var(--navy);padding-block:120px}
.cta-band .bg{position:absolute;inset:0}
.cta-band .bg img{width:100%;height:100%;object-fit:cover}
.cta-band .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,95,89,.97),rgba(14,124,116,.82) 55%,rgba(14,124,116,.45))}
.cta-inner{position:relative;display:flex;justify-content:space-between;align-items:center;gap:48px;flex-wrap:wrap}
.cta-inner h2{color:var(--white);max-width:860px}
.cta-inner .hero-ctas{margin-top:0}

/* =========================================================
   THANK YOU + 404
   ========================================================= */
.ty{position:relative;background:var(--ink);overflow:hidden;padding:130px 0 0}
.ty .bg{position:absolute;inset:0}
.ty .bg img{width:100%;height:100%;object-fit:cover;opacity:.22}
.ty .bg::after{content:"";position:absolute;inset:0;background:radial-gradient(800px 500px at 50% 30%,rgba(14,124,116,.5),transparent 70%),linear-gradient(180deg,rgba(13,27,30,.6),var(--ink))}
.ty-inner{position:relative;text-align:center;max-width:920px;margin:0 auto}
.ty-tick{width:120px;height:120px;border-radius:50%;background:var(--copper);display:grid;place-items:center;margin:0 auto 40px;box-shadow:0 0 0 14px rgba(209,154,58,.18),0 0 0 30px rgba(209,154,58,.08);animation:pop .8s var(--ease) both}
.ty-tick svg{width:56px;height:56px;color:var(--white);stroke-dasharray:30;stroke-dashoffset:30;animation:draw .6s .5s var(--ease) forwards}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
@keyframes draw{to{stroke-dashoffset:0}}
.ty h1{color:var(--white);margin:24px 0 28px}
.ty .lead{color:rgba(255,255,255,.78);margin:0 auto;max-width:720px}
.ty .hero-ctas{justify-content:center}
.ty-steps{position:relative;display:grid;grid-template-columns:repeat(3,1fr);margin-top:100px;background:var(--white);border-radius:var(--radius) var(--radius) 0 0;overflow:hidden}
.ty-steps div{padding:44px 40px;border-left:1px solid var(--line)}
.ty-steps div:first-child{border-left:0}
.ty-steps .n{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--mist);color:var(--navy);font-family:var(--display);font-weight:700;font-size:20px;margin-bottom:20px}
.ty-steps div:first-child .n{background:var(--copper);color:var(--white)}
.ty-steps h3{font-size:22px;margin-bottom:10px}
.ty-steps p{color:var(--muted);font-size:16px}
.ty-explore{background:var(--white)}
.ty-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.ty-card{position:relative;height:440px;border-radius:var(--radius);overflow:hidden;display:flex;align-items:flex-end;color:var(--white)}
.ty-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.ty-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(13,27,30,.92))}
.ty-card:hover img{transform:scale(1.07)}
.ty-card div{position:relative;z-index:2;padding:34px}
.ty-card small{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.14em;color:var(--copper-soft)}
.ty-card h3{color:var(--white);font-size:30px;margin:8px 0 14px}
.ty-card span{display:inline-flex;gap:10px;font-weight:700;font-size:16px;border-bottom:2px solid var(--copper);padding-bottom:3px}

.nf{position:relative;background:var(--ink);overflow:hidden;min-height:calc(100vh - 144px);display:flex;align-items:center;padding:120px 0}
.nf .bg{position:absolute;inset:0}
.nf .bg img{width:100%;height:100%;object-fit:cover}
.nf .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,27,30,.97) 0%,rgba(13,27,30,.9) 50%,rgba(13,27,30,.55) 100%)}
.nf-inner{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:80px;align-items:center;width:100%}
.nf-code{font-family:var(--display);font-stretch:125%;font-weight:800;font-size:clamp(140px,17vw,300px);line-height:.85;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.85);display:flex;align-items:center}
.nf-code em{font-style:normal;color:var(--copper);-webkit-text-stroke:0;display:inline-block;animation:spin 14s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.nf h1{color:var(--white);margin:36px 0 22px}
.nf .lead{color:rgba(255,255,255,.75);max-width:600px}
.nf-links{background:rgba(255,255,255,.06);border:1px solid var(--line-light);backdrop-filter:blur(12px);border-radius:var(--radius);padding:40px}
.nf-links h2{color:var(--white);font-size:24px;margin-bottom:24px}
.nf-links a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;border-top:1px solid var(--line-light);color:var(--white);font-weight:600;font-size:18px;transition:color .3s,padding .3s}
.nf-links a:hover{color:var(--copper-soft);padding-left:8px}
.nf-links a small{display:block;font-weight:500;font-size:16px;color:rgba(255,255,255,.6)}
.nf-links a svg{flex:none;width:20px;height:20px}

@media (max-width:1180px){
  .s-hero-inner,.sd-grid,.nf-inner{grid-template-columns:1fr;gap:56px}
  .sd-grid.flip .sd-media{order:0}
  .cap-grid{grid-template-columns:1fr 1fr}
  .ty-steps,.ty-cards{grid-template-columns:1fr}
  .ty-steps div{border-left:0;border-top:1px solid var(--line)}
  .ty-steps div:first-child{border-top:0}
}
@media (max-width:820px){
  .s-hero{padding:64px 0 80px}
  .s-jump a{grid-template-columns:96px 1fr auto;gap:16px}
  .s-jump figure{height:96px}
  .s-jump b{font-size:20px}
  .s-jump i{margin-right:16px}
  .sd-media{height:440px}
  .sd-media .main,.sd-grid.flip .sd-media .main{inset:0 40px 60px 0}
  .sd-media .sub{width:170px;height:150px;border-width:6px}
  .sd-grid.flip .sd-media .sub{left:auto;right:0}
  .sd-chip,.sd-grid.flip .sd-chip{left:16px;top:16px;padding:12px 16px}
  .sd-chip b{font-size:24px}
  .sd-num{font-size:64px}
  .sd-list,.cap-grid{grid-template-columns:1fr}
  .cap{padding:32px 24px}
  .cta-band{padding-block:80px}
  .ty{padding-top:72px}
  .ty-tick{width:92px;height:92px}
  .ty-steps{margin-top:64px}
  .ty-steps div{padding:30px 22px}
  .ty-card{height:340px}
  .nf{padding:72px 0}
  .nf-links{padding:28px 22px}
}

/* =========================================================
   MIRAGE ENGINEERING — rebrand additions (Nov 2026)
   ========================================================= */
:root{--copper-ink:#9A6E1C}
/* readable gold on light backgrounds */
.eyebrow,.partner-body .role,.proj-meta .tag,.work .tag{color:var(--copper-ink)}
.on-dark .eyebrow,.hero .eyebrow,.s-hero .eyebrow,.page-hero .eyebrow,.c-hero .eyebrow,.footer .eyebrow,.ct-media .eyebrow,.cta-band .eyebrow,.nf .eyebrow,.ty .eyebrow,.featured-body .eyebrow{color:var(--copper)}
.link-arrow{color:var(--navy-deep)}

/* logo */
.logo img{height:64px}
.ft-brand img{height:76px}
@media (max-width:760px){.logo img{height:48px}}

/* hero without the stats row */
.hero--nostats{padding-bottom:130px}
.hero--nostats .hc-1 img{object-position:center 30%}
.hero--nostats .hc-2 img{object-position:center 35%}

/* projects — secondary cards */
.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:32px}
.work{display:grid;grid-template-columns:1fr;background:var(--ink-2);border:1px solid var(--line-light);border-radius:var(--radius);overflow:hidden;transition:transform .5s var(--ease),border-color .4s}
.work:hover{transform:translateY(-6px);border-color:var(--copper)}
.work figure{margin:0;aspect-ratio:16/9;overflow:hidden;background:#000}
.work figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.work:hover figure img{transform:scale(1.05)}
.work-body{padding:36px 40px 40px}
.work .tag{font-size:16px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--copper-soft)}
.work h3{font-size:clamp(28px,2.2vw,38px);margin:10px 0 4px}
.work .loc{font-size:16px;color:rgba(255,255,255,.55)}
.work p{margin-top:18px}
.work-scope{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px}
.work-scope li{font-size:15px;font-weight:600;color:var(--white);padding:7px 16px;border:1px solid var(--line-light);border-radius:30px;background:rgba(255,255,255,.04)}
@media (max-width:900px){.work-grid{grid-template-columns:1fr}.work-body{padding:28px 24px 32px}}

/* team — single partner */
.partners--solo{grid-template-columns:minmax(0,820px)}
.partners--solo .partner{grid-template-columns:300px 1fr}
.partners--solo .partner figure{min-height:340px}
.partners--solo .partner-body h3{font-size:clamp(28px,2.4vw,40px)}
@media (max-width:760px){.partners--solo .partner{grid-template-columns:1fr}}

/* footer — 3 columns + text wordmark */
.ft-grid{grid-template-columns:1.4fr .8fr 1fr}
.ft-mark{display:flex;align-items:flex-start;justify-content:center}
.ft-mark span{font-family:var(--display);font-stretch:125%;font-weight:800;font-size:clamp(120px,20vw,360px);line-height:.82;letter-spacing:.04em;color:rgba(255,255,255,.05);white-space:nowrap}
@media (max-width:1180px){.ft-grid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.ft-grid{grid-template-columns:1fr}}

/* contact — single office */
.ct-offices:has(.ct-off:only-child){grid-template-columns:1fr;max-width:340px}
.off-grid--solo{grid-template-columns:minmax(0,900px)!important}

/* =========================================================
   FIRE ALARM PAGE
   ========================================================= */
.fa-hero-media{position:relative;height:620px}
.fa-hero-media .main{position:absolute;inset:0 150px 60px 0;margin:0;border-radius:var(--radius);overflow:hidden}
.fa-hero-media .sub{position:absolute;right:0;bottom:0;width:360px;height:250px;margin:0;border-radius:var(--radius);overflow:hidden;border:8px solid var(--ink);background:#fff;box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.fa-hero-media img{width:100%;height:100%;object-fit:cover}
.fa-hero-media .sub img{object-fit:cover;object-position:left top}
.fa-deliver{background:var(--white)}
.fa-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.fa-card{position:relative;background:var(--stone);border-radius:var(--radius);padding:48px 40px 44px;border-top:3px solid var(--copper);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.fa-card:hover{transform:translateY(-8px);box-shadow:0 40px 70px -40px rgba(13,27,30,.45)}
.fa-card svg{width:44px;height:44px;color:var(--navy);margin-bottom:28px}
.fa-card h3{font-size:clamp(22px,1.7vw,28px);margin-bottom:14px}
.fa-card p{color:var(--muted);font-size:17px}
.fa-n{position:absolute;right:32px;top:28px;font-family:var(--display);font-stretch:120%;font-weight:700;font-size:44px;line-height:1;color:transparent;-webkit-text-stroke:1.2px var(--copper)}
.fa-samples{background:var(--stone)}
.fa-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.fa-gallery a{display:block;background:var(--white);border-radius:var(--radius);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.fa-gallery a:hover{transform:translateY(-6px);box-shadow:0 34px 60px -36px rgba(13,27,30,.45)}
.fa-gallery figure{margin:0;aspect-ratio:3/2;overflow:hidden;background:#fff;border-bottom:1px solid var(--line)}
.fa-gallery img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.fa-gallery a:hover img{transform:scale(1.06)}
.fa-gallery a>span{display:block;padding:20px 24px;font-family:var(--display);font-weight:600;font-size:18px;color:var(--ink)}
.fa-gallery .fa-pdf{display:grid;place-items:center;background:var(--ink);color:var(--white);text-align:center;min-height:260px}
.fa-gallery .fa-pdf svg{width:56px;height:56px;color:var(--copper);margin:0 auto 18px}
.fa-gallery .fa-pdf b{display:block;font-family:var(--display);font-size:22px}
.fa-gallery .fa-pdf small{display:block;margin-top:6px;color:rgba(255,255,255,.6);font-size:16px}
@media (max-width:1180px){.fa-cards,.fa-gallery{grid-template-columns:1fr 1fr}.fa-hero-media{height:520px}}
@media (max-width:760px){.fa-cards,.fa-gallery{grid-template-columns:1fr}.fa-hero-media{height:420px}.fa-hero-media .main{inset:0 0 90px 0}.fa-hero-media .sub{width:220px;height:160px}}
@media (max-width:760px){.hero--nostats{padding-bottom:80px}}

/* =========================================================
   LEADERSHIP — single leader feature
   ========================================================= */
.ldr{background:var(--stone);position:relative;overflow:hidden}
.ldr::before{content:"P.E.";position:absolute;right:-20px;bottom:-60px;font-family:var(--display);font-stretch:125%;font-weight:800;font-size:clamp(200px,24vw,420px);line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(14,124,116,.12);pointer-events:none}
.ldr-wrap{position:relative;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(48px,6vw,110px);align-items:center}
.ldr-photo{position:relative;margin:0;border-radius:var(--radius);aspect-ratio:4/5;background:linear-gradient(160deg,var(--mist),#fff 70%);overflow:visible}
.ldr-photo::before{content:"";position:absolute;inset:28px -28px -28px 28px;border:2px solid var(--copper);border-radius:var(--radius);z-index:0}
.ldr-photo img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;object-position:center 15%;border-radius:var(--radius);background:#fff}
.ldr-photo figcaption{position:absolute;z-index:2;left:24px;bottom:24px;display:flex;align-items:center;gap:10px;padding:12px 18px;background:var(--ink);color:#fff;font-size:15px;font-weight:600;border-radius:30px}
.ldr-photo .dot{width:9px;height:9px;border-radius:50%;background:var(--copper);box-shadow:0 0 0 4px rgba(209,154,58,.25)}
.ldr-li{position:absolute;z-index:2;right:24px;top:24px;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:#0A66C2;color:#fff;box-shadow:0 14px 30px -12px rgba(10,102,194,.7);transition:transform .3s var(--ease)}
.ldr-li:hover{transform:translateY(-3px) scale(1.05)}
.ldr-li svg{width:22px;height:22px}
.ldr-body h2{margin-top:6px}
.ldr-role{margin-top:10px;font-size:17px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--navy)}
.ldr-body .lead{margin-top:22px;max-width:560px}
.ldr-lic{display:flex;align-items:center;gap:18px;margin-top:30px;padding:18px 22px;background:#fff;border-radius:var(--radius);width:max-content;max-width:100%;box-shadow:0 20px 40px -30px rgba(13,27,30,.35)}
.ldr-lic .lbl{font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ldr-lic .states{display:flex;gap:10px}
.ldr-lic .states b{display:grid;place-items:center;width:54px;height:54px;border-radius:12px;background:var(--ink);color:#fff;font-family:var(--display);font-size:19px;letter-spacing:.04em;border-bottom:3px solid var(--copper)}
.ldr-points{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:34px 0 36px;padding-top:30px;border-top:1px solid var(--line)}
.ldr-points li{display:flex;flex-direction:column;gap:12px}
.ldr-points svg{width:30px;height:30px;color:var(--copper-ink)}
.ldr-points h4{font-family:var(--display);font-size:18px;color:var(--ink)}
.ldr-points p{font-size:15px;color:var(--muted);margin-top:4px}
.ldr .hero-ctas{align-items:center}
.btn-li{background:#0A66C2;color:#fff}
.btn-li:hover{background:#084f97}
.btn-li svg{width:18px;height:18px}
.btn-tel{font-weight:700;color:var(--ink);border-bottom:2px solid var(--copper);padding-bottom:2px}
@media (max-width:1000px){.ldr-wrap{grid-template-columns:1fr}.ldr-photo{max-width:460px}}
@media (max-width:640px){.ldr-points{grid-template-columns:1fr}.ldr-photo::before{inset:16px -12px -16px 16px}.ldr-lic{flex-wrap:wrap}}
.ldr .eyebrow{color:var(--copper-ink)}
.ldr-photo figcaption{right:auto;letter-spacing:0;font-family:var(--body,inherit)}
.ldr .btn-tel{white-space:nowrap}
.ldr{background:var(--white)}
.ldr::before{top:40px;bottom:auto;right:-10px;-webkit-text-stroke:1.5px rgba(14,124,116,.08)}
.ldr-photo{background:var(--stone)}
.ldr-photo img{background:var(--stone)}
.ldr-lic{background:var(--stone);box-shadow:none}
@media (max-width:1000px){.ldr::before{display:none}}

/* =========================================================
   TWO-PAGE NAVIGATION (Home + Services)
   ========================================================= */
html{scroll-padding-top:110px}
.ft-grid{grid-template-columns:1.35fr .7fr 1fr 1fr}
@media (max-width:1180px){.ft-grid{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.ft-grid{grid-template-columns:1fr}}
.s-jump{gap:12px}
.s-jump figure{height:100px}
.s-jump a.fa-jump{border-color:rgba(209,154,58,.45)}
.s-jump a.fa-jump small{color:var(--copper)}

/* fire alarm section inside services */
.fa-sec{background:var(--stone);position:relative}
.fa-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(40px,6vw,96px);align-items:end;margin-bottom:56px}
.fa-intro .sd-num{display:block}
.fa-intro .hero-ctas{margin-top:30px}
.fa-badge{display:inline-flex;align-items:center;gap:10px;margin-bottom:22px;padding:8px 16px;border-radius:30px;background:var(--ink);color:#fff;font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.fa-badge i{width:8px;height:8px;border-radius:50%;background:var(--copper);box-shadow:0 0 0 4px rgba(209,154,58,.25)}
.fa-photo{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/3;position:relative}
.fa-photo img{width:100%;height:100%;object-fit:cover}
.fa-photo figcaption{position:absolute;left:18px;bottom:18px;background:rgba(13,27,30,.88);color:#fff;padding:12px 18px;border-left:3px solid var(--copper);font-size:15px}
.fa-photo figcaption b{display:block;font-family:var(--display);font-size:20px}
.fa-sec .fa-card{background:var(--white)}
.fa-sub{display:flex;justify-content:space-between;align-items:end;gap:24px;margin:72px 0 28px}
.fa-sub h3{font-size:clamp(26px,2.2vw,36px)}
.fa-sub p{color:var(--muted);max-width:420px}
.btn-line{border-color:var(--ink);color:var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
@media (max-width:1000px){.fa-intro{grid-template-columns:1fr}.fa-sub{flex-direction:column;align-items:flex-start}}
.fa-intro .lead{margin-top:20px}
