/*
 * Shiva Group Canada — public site stylesheet.
 * Extracted verbatim from the god-template <style> block. Do not drift tokens.
 */
@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/bebas-neue-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  /* Logo colours: royal blue circle, gold ring, dark outer */
  --ink:        #111214;
  --ink-mid:    #1C1E22;
  --ink-soft:   #282B30;
  --slate:      #363A42;
  --mist:       #F0EDE8;
  --fog:        #E4E0D8;
  --paper:      #FAF8F5;
  --white:      #FFFFFF;
  /* Brand blue from logo circle */
  --cobalt:     #0E52A0;
  --cobalt-hi:  #1668CC;
  --cobalt-lo:  #093A72;
  --cobalt-tint:#DCE9F7;
  /* Gold from logo outer ring */
  --amber:      #E09820;
  --amber-hi:   #F2AE30;
  --amber-lo:   #B07010;
  /* Text */
  --txt:        #111214;
  --txt-mid:    #3A3C42;
  --txt-soft:   #7A7C84;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}

body {
  font-family:'DM Sans',sans-serif;
  background:var(--paper);
  color:var(--txt);
  overflow-x:hidden;
  cursor:none;
}
@media (pointer: coarse) {
  body { cursor: auto; }
}

/* Skip link — visible on keyboard focus only */
.skip-link {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 10000;
  padding: 10px 16px;
  background: var(--cobalt);
  color: var(--white);
  font-family: 'Oswald', sans-serif;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 4px;
  transform: translateY(-160%);
  transition: transform 0.2s;
}
.skip-link:focus,
.skip-link:focus-visible {
  transform: translateY(0);
  outline: 2px solid var(--amber-hi);
  outline-offset: 2px;
}

/* Keyboard focus — visible on interactive elements */
a:focus-visible,
button:focus-visible,
.f-submit:focus-visible,
.svc-nav-item:focus-visible,
.province-cell:focus-visible {
  outline: 2px solid var(--cobalt-hi);
  outline-offset: 2px;
}

/* ── CUSTOM CURSOR ── */
.cursor {
  width:10px;height:10px;border-radius:50%;
  background:var(--amber);
  position:fixed;pointer-events:none;z-index:9999;
  transform:translate(-50%,-50%);
  transition:width .2s,height .2s,background .2s;
}
.cursor-ring {
  width:36px;height:36px;border-radius:50%;
  border:1.5px solid var(--cobalt);
  position:fixed;pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%);
  transition:all .12s ease;
}

/* ── NAV (scoped to #site-nav — inner-page breadcrumbs also use <nav>) ── */
#site-nav {
  position:fixed;top:0;left:0;width:100%;z-index:500;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 5vw;height:76px;
  background:var(--ink);
  border-bottom:2px solid var(--amber);
}
.nav-brand {
  display:flex;align-items:center;gap:16px;text-decoration:none;
}
.nav-emblem {
  width:64px;height:64px;border-radius:50%;
  background:var(--cobalt);
  border:2.5px solid var(--amber);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.nav-emblem svg { width:32px;height:32px; }
.nav-emblem--logo{background:var(--white);padding:4px;}
.nav-emblem-img{width:100%;height:100%;object-fit:contain;display:block;}
.nav-wordmark {
  font-family:'Oswald',sans-serif;
  font-size:1rem;font-weight:500;
  color:var(--white);letter-spacing:2.5px;
  text-transform:uppercase;line-height:1.2;
}
.nav-tagline {
  font-size:0.5rem;font-weight:300;
  color:var(--amber);letter-spacing:3px;text-transform:uppercase;
}
.nav-menu {display:flex;align-items:center;gap:0;list-style:none;}
.nav-menu li a {
  font-size:0.68rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;
  color:rgba(255,255,255,0.5);text-decoration:none;
  padding:0 1.4rem;height:76px;display:flex;align-items:center;
  border-right:1px solid rgba(255,255,255,0.05);
  transition:color .2s,background .2s;
}
.nav-menu li a:hover{color:var(--white);background:rgba(255,255,255,0.04);}
.nav-menu li:last-child a,
.nav-menu a.nav-cta {
  background:var(--cobalt);color:var(--white);
  border-right:none;border-left:1px solid rgba(255,255,255,0.1);
}
.nav-menu li:last-child a:hover,
.nav-menu a.nav-cta:hover{background:var(--cobalt-hi);}
.nav-menu a.nav-cta.is-active{color:var(--white);}
.nav-menu a.is-active:not(.nav-cta){color:var(--amber-hi);}
.nav-toggle {
  display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:0;
  background:transparent;border:1px solid rgba(255,255,255,0.12);
  cursor:pointer;flex-shrink:0;
}
.nav-toggle__bar {
  display:block;width:18px;height:2px;margin:0 auto;
  background:var(--white);transition:transform .25s,opacity .25s;
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ── HERO ── */
.hero {
  min-height:100vh;
  background:var(--paper);
  display:grid;
  grid-template-columns:1fr 1fr;
  padding-top:76px;
  position:relative;
  overflow:hidden;
}
/* Cobalt right panel — diagonal split */
.hero::after {
  content:'';
  position:absolute;
  right:0;top:0;bottom:0;
  width:48%;
  background:var(--cobalt);
  clip-path:polygon(8% 0,100% 0,100% 100%,0 100%);
  opacity:1;
}
.hero-noise {
  position:absolute;inset:0;z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  background-size:200px 200px;
  pointer-events:none;
}
.hero-grid-lines {
  position:absolute;inset:0;z-index:1;
  background-image:
    linear-gradient(rgba(14,82,160,0.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(14,82,160,0.07) 1px,transparent 1px);
  background-size:80px 80px;
}
.hero-left {
  position:relative;z-index:2;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:0 5vw 80px;
}
.hero-label {
  font-family:'Oswald',sans-serif;
  font-size:0.65rem;font-weight:300;
  letter-spacing:5px;text-transform:uppercase;
  color:var(--cobalt);
  display:flex;align-items:center;gap:14px;
  margin-bottom:32px;
  transform:translateY(28px);
  animation:heroRise .9s ease .1s forwards;
}
.hero-label::before {content:'';width:40px;height:1px;background:var(--amber);}
.hero-h1 {
  font-size:clamp(3rem,5.5vw,5.5rem);
  line-height:0.88;
  color:var(--ink);
  letter-spacing:1px;
}
html.fonts-ready .hero-h1 {
  font-family:'Bebas Neue',sans-serif;
}
.hero-h1 em {
  display:block;
  color:transparent;
  -webkit-text-stroke:1px var(--amber);
  font-style:normal;
}
.hero-sub {
  font-size:0.95rem;font-weight:300;
  color:var(--txt-mid);
  line-height:1.85;max-width:420px;
  margin:28px 0 44px;
  transform:translateY(28px);
  animation:heroRise .9s ease .4s forwards;
}
.hero-actions {
  display:flex;gap:0;
  transform:translateY(28px);
  animation:heroRise .9s ease .55s forwards;
}
.hero-actions .btn-solid {
  background:var(--cobalt);
  color:var(--white);
}
.hero-actions .btn-solid:hover { background:var(--cobalt-hi); }
.hero-actions .btn-ghost {
  color:var(--cobalt);
  border-color:rgba(14,82,160,0.35);
}
.hero-actions .btn-ghost:hover { border-color:var(--cobalt); background:rgba(14,82,160,0.06); }
.btn-solid {
  background:var(--cobalt);color:var(--white);
  padding:16px 36px;
  font-family:'Oswald',sans-serif;
  font-size:0.78rem;font-weight:400;
  letter-spacing:2.5px;text-transform:uppercase;
  text-decoration:none;transition:background .25s;
  display:inline-flex;align-items:center;gap:10px;
}
.btn-solid:hover{background:var(--cobalt-hi);}
.btn-ghost {
  background:transparent;color:var(--amber);
  padding:16px 36px;
  font-family:'Oswald',sans-serif;
  font-size:0.78rem;font-weight:400;
  letter-spacing:2.5px;text-transform:uppercase;
  text-decoration:none;
  border:1px solid rgba(224,152,32,0.35);
  transition:all .25s;
  display:inline-flex;align-items:center;gap:10px;
}
.btn-ghost:hover{border-color:var(--amber);background:rgba(224,152,32,0.08);}
.btn-dark {
  background:var(--ink);color:var(--white);
  padding:14px 32px;
  font-family:'Oswald',sans-serif;
  font-size:0.75rem;font-weight:400;
  letter-spacing:2px;text-transform:uppercase;
  text-decoration:none;border:1px solid var(--ink);
  transition:all .25s;display:inline-flex;align-items:center;gap:8px;
}
.btn-dark:hover{border-color:var(--cobalt);color:var(--cobalt);}
.btn-sm{padding:11px 24px;font-size:0.7rem;}

.hero-right {
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:center;
  padding:80px 5vw;
}
.hero-stat-stack {
  display:flex;flex-direction:column;gap:40px;
  width:100%;max-width:300px;
  transform:translateY(28px);
  animation:heroRise .9s ease .65s forwards;
}
.hero-stat-item {
  display:flex;flex-direction:column;gap:4px;
  border-left:2px solid var(--amber);
  padding-left:22px;
}
.hero-stat-num {
  font-family:'Bebas Neue',sans-serif;
  font-size:5rem;color:var(--white);
  letter-spacing:2px;line-height:1;
  display:flex;align-items:baseline;gap:4px;
}
.hero-stat-num .suffix{
  font-size:2.4rem;color:var(--amber);
}
.hero-stat-lbl {
  font-size:0.68rem;font-weight:500;
  letter-spacing:2.5px;text-transform:uppercase;
  color:rgba(255,255,255,0.6);
}
.hero-stat-sub {
  font-size:0.58rem;font-weight:300;
  color:rgba(255,255,255,0.35);
  letter-spacing:1px;margin-top:1px;
}

/* ── MARQUEE ── */
.marquee-wrap {
  background:var(--cobalt);
  padding:14px 0;overflow:hidden;
  border-top:1px solid rgba(255,255,255,0.1);
  border-bottom:1px solid rgba(255,255,255,0.1);
}
.marquee-track {
  display:flex;gap:0;width:max-content;
  animation:marqueeScroll 28s linear infinite;
}
.marquee-item {
  font-family:'Oswald',sans-serif;
  font-size:0.72rem;font-weight:300;
  letter-spacing:3px;text-transform:uppercase;
  color:rgba(255,255,255,0.7);
  padding:0 40px;
  border-right:1px solid rgba(255,255,255,0.15);
  white-space:nowrap;
}
.marquee-dot {color:var(--amber);font-size:1rem;line-height:1;}
@keyframes marqueeScroll{to{transform:translateX(-50%);}}

/* ── SECTION CHROME ── */
.section { padding:96px 5vw; }
.section.dark { background:var(--ink); }
.section.gray { background:var(--mist); }
.section.cobalt-bg { background:var(--cobalt-lo); }
.page-wrap { max-width:1200px;margin:0 auto; }

.s-kicker {
  font-family:'Oswald',sans-serif;
  font-size:0.63rem;font-weight:300;
  letter-spacing:4px;text-transform:uppercase;
  color:var(--cobalt);
  display:flex;align-items:center;gap:12px;
  margin-bottom:14px;
}
.s-kicker::before{content:'';width:24px;height:1px;background:var(--amber);}
.s-kicker.light::before{background:rgba(255,255,255,0.3);}
.s-kicker.light{color:rgba(255,255,255,0.45);}
.s-kicker.blue{color:var(--cobalt-hi);}
.s-kicker.blue::before{background:var(--cobalt-hi);}

.s-h2 {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(2.4rem,4.5vw,4rem);
  letter-spacing:1px;line-height:0.95;
  color:var(--ink);margin-bottom:16px;
}
.s-h2.light{color:var(--white);}
.s-body {
  font-size:0.95rem;font-weight:300;
  color:var(--txt-mid);line-height:1.85;
  max-width:600px;
}
.s-body.light{color:rgba(255,255,255,0.55);}

@keyframes riseUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:none;}}
@keyframes heroRise{from{transform:translateY(28px);}to{transform:none;}}

/* ── SERVICES ── */
.svc-layout {
  display:grid;
  grid-template-columns:280px 1fr;
  gap:0;
  margin-top:60px;
  border:1px solid rgba(0,0,0,0.08);
}
.svc-nav {
  background:var(--ink);
  display:flex;flex-direction:column;
}
.svc-nav-item {
  padding:22px 28px;
  border-bottom:1px solid rgba(255,255,255,0.04);
  font-family:'Oswald',sans-serif;
  font-size:0.8rem;font-weight:400;
  letter-spacing:2px;text-transform:uppercase;
  color:rgba(255,255,255,0.4);
  cursor:pointer;transition:all .25s;
  display:flex;align-items:center;justify-content:space-between;
}
.svc-nav-item:hover,.svc-nav-item.active {
  color:var(--white);background:rgba(255,255,255,0.06);
  border-left:3px solid var(--amber);
  padding-left:25px;
}
.svc-nav-item .arrow{opacity:0;transition:opacity .25s;}
.svc-nav-item:hover .arrow,.svc-nav-item.active .arrow{opacity:1;}
.svc-content {
  background:var(--fog);
  padding:52px 48px;
  display:none;
}
.svc-content.active { display:block; }
.svc-content-icon {
  width:52px;height:52px;
  border:1.5px solid var(--cobalt);
  display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;margin-bottom:24px;
  color:var(--cobalt);
}
.svc-content-icon--photo {
  border:none;
  background:var(--white);
  overflow:hidden;
}
.svc-content-icon--photo img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.svc-content-h3 {
  font-family:'Bebas Neue',sans-serif;
  font-size:2.2rem;letter-spacing:1px;
  color:var(--ink);margin-bottom:16px;
}
.svc-content-body {
  font-size:0.92rem;font-weight:300;
  color:var(--txt-mid);line-height:1.85;
  margin-bottom:24px;max-width:520px;
}
.svc-deliverables {
  display:flex;flex-direction:column;gap:8px;margin-bottom:28px;
}
.svc-deliverables li {
  display:flex;gap:10px;align-items:flex-start;
  font-size:0.85rem;font-weight:300;color:var(--txt-mid);
}
.svc-deliverables li::before{
  content:'';width:6px;height:6px;border-radius:50%;
  background:var(--cobalt);flex-shrink:0;margin-top:6px;
}

/* ── PROJECT MOSAIC ── */
.proj-mosaic {
  display:grid;
  grid-template-columns:repeat(12,1fr);
  grid-template-rows:300px 240px;
  gap:8px;margin-top:56px;
}
.proj-a{grid-column:1/6;grid-row:1/3;}
.proj-b{grid-column:6/9;grid-row:1/2;}
.proj-c{grid-column:9/13;grid-row:1/2;}
.proj-d{grid-column:6/10;grid-row:2/3;}
.proj-e{grid-column:10/13;grid-row:2/3;}

.proj-card {
  position:relative;overflow:hidden;
  background:var(--ink-mid);
}
.proj-fill{
  position:absolute;inset:0;
  transition:transform .55s ease;
}
.proj-card:hover .proj-fill{transform:scale(1.05);}
.proj-fill-a{background:linear-gradient(155deg,var(--cobalt-lo) 0%,var(--ink) 70%);}
.proj-fill-b{background:linear-gradient(135deg,#0a2850 0%,var(--ink-mid) 100%);}
.proj-fill-c{background:linear-gradient(155deg,var(--cobalt) 0%,var(--ink) 100%);opacity:0.6;}
.proj-fill-d{background:linear-gradient(135deg,#071e3d 0%,var(--ink-soft) 100%);}
.proj-fill-e{background:linear-gradient(155deg,var(--cobalt-lo) 0%,#0d1a2e 100%);}
.proj-fill--photo{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.proj-fill--photo.proj-fill-c{opacity:1;}
.proj-hatch {
  position:absolute;inset:0;
  background-image:repeating-linear-gradient(
    -45deg,transparent,transparent 14px,
    rgba(224,152,32,0.04) 14px,rgba(224,152,32,0.04) 15px
  );
}
.proj-veil{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(10,10,12,0.94) 0%,rgba(10,10,12,0.55) 45%,rgba(10,10,12,0.15) 75%);
}
.proj-body{position:absolute;bottom:0;left:0;right:0;padding:24px;}
.proj-cat {
  font-family:'Oswald',sans-serif;
  font-size:0.58rem;font-weight:300;
  letter-spacing:3px;text-transform:uppercase;
  color:var(--amber);margin-bottom:4px;
}
.proj-title{
  font-family:'Bebas Neue',sans-serif;
  font-size:1.15rem;letter-spacing:1px;color:var(--white);
  text-shadow:0 1px 6px rgba(0,0,0,0.7);
}
.proj-a .proj-title{font-size:1.9rem;}
.proj-cat{text-shadow:0 1px 6px rgba(0,0,0,0.6);}
.proj-loc{font-size:0.7rem;color:rgba(255,255,255,0.7);margin-top:2px;text-shadow:0 1px 6px rgba(0,0,0,0.7);}
.proj-chip {
  display:inline-block;margin-top:8px;
  padding:3px 10px;
  border:1px solid rgba(224,152,32,0.35);
  font-size:0.58rem;font-weight:500;letter-spacing:1.5px;
  text-transform:uppercase;color:var(--amber);
}

/* ── WHY SHIVA ── */
.why-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  margin-top:56px;
}
.why-left {
  background:var(--cobalt);
  padding:64px 56px;
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;
}
.why-left::before {
  content:'';position:absolute;
  right:-60px;bottom:-60px;
  width:280px;height:280px;
  border:1px solid rgba(255,255,255,0.1);
  border-radius:50%;
}
.why-left::after {
  content:'';position:absolute;
  right:-20px;bottom:-20px;
  width:180px;height:180px;
  border:1px solid rgba(255,255,255,0.07);
  border-radius:50%;
}
.why-badge-num {
  font-family:'Bebas Neue',sans-serif;
  font-size:7rem;color:var(--white);
  line-height:0.85;letter-spacing:2px;
  position:relative;z-index:1;
}
.why-badge-num span{
  display:block;font-size:1rem;
  font-family:'Oswald',sans-serif;
  font-weight:300;letter-spacing:4px;text-transform:uppercase;
  color:rgba(255,255,255,0.5);margin-top:8px;
}
.why-quote {
  position:relative;z-index:1;
  font-size:0.9rem;font-weight:300;
  color:rgba(255,255,255,0.65);
  line-height:1.8;font-style:italic;
  border-left:2px solid var(--amber);
  padding-left:18px;
  margin-top:32px;
}
.why-lbl {
  position:relative;z-index:1;
  font-family:'Oswald',sans-serif;
  font-size:0.72rem;font-weight:300;
  letter-spacing:3px;text-transform:uppercase;
  color:rgba(255,255,255,0.35);
  margin-top:20px;
}
.why-right {
  background:var(--fog);
  padding:56px;
  display:flex;flex-direction:column;gap:0;
}
.why-point {
  display:flex;gap:0;
  border-bottom:1px solid rgba(0,0,0,0.07);
  padding:24px 0;
  transition:background .25s;
}
.why-point:first-child{padding-top:0;}
.why-point:last-child{border-bottom:none;padding-bottom:0;}
.why-point-n {
  font-family:'Bebas Neue',sans-serif;
  font-size:1.6rem;color:var(--cobalt);
  opacity:0.18;line-height:1;
  flex-shrink:0;width:52px;
}
.why-point-body {}
.why-point-title {
  font-family:'Oswald',sans-serif;
  font-size:0.85rem;font-weight:500;
  letter-spacing:1.5px;text-transform:uppercase;
  color:var(--ink);margin-bottom:4px;
}
.why-point-desc{font-size:0.87rem;font-weight:300;color:var(--txt-mid);line-height:1.75;}

/* ── TESTIMONIALS ── */
.testi-stack {
  display:grid;grid-template-columns:1fr 1fr 1fr;
  gap:0;margin-top:56px;
  border:1px solid rgba(255,255,255,0.06);
}
.testi-card {
  padding:36px;
  border-right:1px solid rgba(255,255,255,0.06);
  position:relative;overflow:hidden;
  transition:background .3s;
}
.testi-card:last-child{border-right:none;}
.testi-card:hover{background:rgba(255,255,255,0.03);}
.testi-card::before {
  content:'"';
  position:absolute;right:20px;top:16px;
  font-family:'Bebas Neue',sans-serif;
  font-size:6rem;color:var(--cobalt);
  opacity:0.1;line-height:1;
  pointer-events:none;
}
.testi-stars{color:var(--amber);font-size:0.75rem;letter-spacing:3px;margin-bottom:18px;}
.testi-text{font-size:0.85rem;font-weight:300;color:rgba(255,255,255,0.6);line-height:1.85;font-style:italic;margin-bottom:22px;}
.testi-sep{width:32px;height:1px;background:var(--amber);margin-bottom:16px;}
.testi-name{font-family:'Oswald',sans-serif;font-size:0.78rem;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;color:var(--amber);}
.testi-role{font-size:0.7rem;color:rgba(255,255,255,0.28);margin-top:2px;}
.testi-proj{font-size:0.6rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,0.18);margin-top:8px;}

/* ── CERTS ── */
.certs-row {
  display:flex;align-items:stretch;
  border:1px solid var(--fog);
  overflow:hidden;margin-top:48px;
}
.certs-badge-block {
  background:var(--cobalt);
  padding:28px 36px;flex-shrink:0;
  display:flex;flex-direction:column;justify-content:center;
  min-width:190px;
}
.certs-badge-label{
  font-family:'Oswald',sans-serif;
  font-size:0.55rem;font-weight:300;
  letter-spacing:3px;text-transform:uppercase;
  color:rgba(255,255,255,0.4);margin-bottom:8px;
}
.certs-badge-title{
  font-family:'Bebas Neue',sans-serif;
  font-size:1.4rem;letter-spacing:2px;color:var(--white);line-height:1.1;
}
.certs-sep{width:1px;background:var(--fog);flex-shrink:0;}
.certs-items{display:flex;align-items:stretch;flex:1;}
.cert-item{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  padding:28px 16px;
  border-right:1px solid var(--fog);
  transition:background .25s;cursor:default;
}
.cert-item--has-logo{padding-top:18px;}
.cert-item-logo{
  width:48px;height:48px;object-fit:contain;
  display:block;margin:0 auto 10px;
}
.cert-item:last-child{border-right:none;}
.cert-item:hover{background:var(--cobalt-tint);}
.cert-item-name{
  font-family:'Oswald',sans-serif;font-size:1.05rem;
  font-weight:500;letter-spacing:2px;color:var(--ink);
}
.cert-item-sub{
  font-size:0.57rem;font-weight:400;
  letter-spacing:1px;text-transform:uppercase;
  color:var(--txt-soft);margin-top:5px;text-align:center;
}

/* ── PROVINCES ── */
.province-grid {
  display:grid;grid-template-columns:repeat(5,1fr);
  gap:0;margin-top:48px;
}
.province-cell {
  padding:28px 20px;
  border:1px solid var(--fog);
  text-align:center;
  cursor:default;transition:all .25s;
}
.province-cell:hover,.province-cell.active{
  background:var(--cobalt);border-color:var(--cobalt);
}
.province-cell:hover .p-name,.province-cell.active .p-name{color:var(--white);}
.province-cell:hover .p-abbr,.province-cell.active .p-abbr{color:var(--amber);}
.p-abbr{
  font-family:'Bebas Neue',sans-serif;
  font-size:2rem;letter-spacing:2px;
  color:var(--ink);transition:color .25s;
}
.p-name{
  font-size:0.68rem;font-weight:500;
  letter-spacing:1.5px;text-transform:uppercase;
  color:var(--txt-soft);margin-top:5px;
  transition:color .25s;
}

/* ── CTA BANNER ── */
.cta-banner {
  background:var(--amber);
  padding:72px 5vw;
  display:flex;align-items:center;justify-content:space-between;
  gap:40px;position:relative;overflow:hidden;
}
.cta-banner::before{
  content:'';position:absolute;
  right:-80px;top:50%;transform:translateY(-50%);
  width:380px;height:380px;border-radius:50%;
  background:rgba(255,255,255,0.08);
}
.cta-banner::after{
  content:'';position:absolute;
  right:40px;top:50%;transform:translateY(-50%);
  width:220px;height:220px;border-radius:50%;
  background:rgba(255,255,255,0.06);
}
.cta-text{position:relative;z-index:1;}
.cta-h2 {
  font-family:'Bebas Neue',sans-serif;
  font-size:clamp(2rem,4vw,3.5rem);
  letter-spacing:1px;color:var(--ink);line-height:1;
}
.cta-sub{font-size:1rem;font-weight:300;color:rgba(17,18,20,0.6);margin-top:8px;}
.cta-btns{display:flex;gap:0;flex-shrink:0;position:relative;z-index:1;}

/* ── CONTACT ── */
.contact-layout {
  display:grid;grid-template-columns:1fr 1.2fr;
  gap:0;margin-top:56px;
}
.office-stack{display:flex;flex-direction:column;gap:0;}
.office-card {
  padding:36px;
  border:1px solid rgba(255,255,255,0.06);
  border-bottom:none;
  position:relative;
  transition:background .3s;
}
.office-card:last-child{border-bottom:1px solid rgba(255,255,255,0.06);}
.office-card:hover{background:rgba(255,255,255,0.03);}
.office-card::before {
  content:'';position:absolute;
  left:0;top:0;bottom:0;width:3px;
  background:var(--cobalt);
}
.office-flag{
  display:inline-block;
  background:var(--cobalt);color:var(--white);
  font-family:'Oswald',sans-serif;
  font-size:0.58rem;font-weight:300;
  letter-spacing:3px;text-transform:uppercase;
  padding:5px 12px;margin-bottom:18px;
}
.office-city{
  font-family:'Bebas Neue',sans-serif;
  font-size:1.8rem;letter-spacing:1px;
  color:var(--white);margin-bottom:18px;
}
.office-row{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px;}
.office-ico{color:var(--amber);flex-shrink:0;font-size:0.85rem;margin-top:2px;}
.office-val{font-size:0.87rem;font-weight:300;color:rgba(255,255,255,0.55);line-height:1.6;}
.office-link{
  color:inherit;text-decoration:none;
  display:inline-flex;align-items:center;
  min-height:44px;padding:8px 0;
}
.office-link:hover{color:rgba(255,255,255,0.85);}
.office-tel{font-size:1.1rem!important;font-weight:600!important;color:var(--amber)!important;}
.office-card .btn-solid{
  margin-top:22px;font-size:0.7rem;
  padding:12px 24px;min-height:44px;
}

/* ── FORM ── */
.contact-form {
  padding:48px 44px;background:rgba(255,255,255,0.02);
  border:1px solid rgba(255,255,255,0.05);
  display:flex;flex-direction:column;gap:14px;
}
.form-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.f-grp{display:flex;flex-direction:column;gap:6px;}
.f-lbl{
  font-family:'Oswald',sans-serif;
  font-size:0.57rem;font-weight:300;
  letter-spacing:3px;text-transform:uppercase;
  color:rgba(255,255,255,0.25);
}
.f-inp,.f-sel,.f-ta {
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  color:var(--white);
  padding:12px 16px;
  font-family:'DM Sans',sans-serif;
  font-size:0.88rem;font-weight:300;
  outline:none;transition:border-color .25s;width:100%;
}
.f-inp:focus,.f-sel:focus,.f-ta:focus{border-color:var(--cobalt-hi);}
.f-inp::placeholder{color:rgba(255,255,255,0.15);}
.f-sel option{background:var(--ink);}
.f-ta{resize:vertical;min-height:100px;}
.f-submit {
  background:var(--cobalt);color:var(--white);
  border:none;padding:15px 36px;
  font-family:'Oswald',sans-serif;
  font-size:0.78rem;font-weight:400;
  letter-spacing:2.5px;text-transform:uppercase;
  cursor:pointer;transition:background .25s;
  align-self:flex-start;
}
.f-submit:hover{background:var(--cobalt-hi);}

/* ── FOOTER ── */
.site-footer{
  background:var(--ink);
  border-top:2px solid var(--amber);
}
.footer-marquee{
  background:var(--cobalt);
  padding:12px 0;
  overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.footer-body{padding:56px 5vw 48px;}
.footer-grid{
  display:grid;
  grid-template-columns:1.35fr 0.85fr 1fr 1.1fr;
  gap:40px 32px;
  align-items:start;
}
.footer-brand{
  display:flex;align-items:center;gap:16px;
  text-decoration:none;color:inherit;
  transition:opacity .2s;
}
.footer-brand:hover{opacity:0.88;}
.footer-emblem{
  width:56px;height:56px;border-radius:50%;
  background:var(--cobalt);border:2px solid var(--amber);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.footer-emblem--logo{background:var(--white);padding:4px;}
.footer-emblem-img{width:100%;height:100%;object-fit:contain;display:block;border-radius:50%;}
.footer-name{
  font-family:'Oswald',sans-serif;
  font-size:0.95rem;font-weight:500;
  color:var(--white);letter-spacing:2px;text-transform:uppercase;
}
.footer-tag{
  font-size:0.5rem;font-weight:300;
  color:var(--amber);letter-spacing:3px;text-transform:uppercase;
  margin-top:2px;
}
.footer-desc{
  margin-top:18px;font-size:0.82rem;font-weight:300;line-height:1.65;
  color:rgba(255,255,255,0.42);max-width:34ch;
}
.footer-stats{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;margin-top:22px;
}
.footer-stat{
  border:1px solid rgba(255,255,255,0.07);
  background:rgba(255,255,255,0.02);
  padding:12px 10px;text-align:center;
}
.footer-stat__num{
  display:block;font-family:'Bebas Neue',system-ui,sans-serif;
  font-size:1.35rem;line-height:1;color:var(--white);letter-spacing:0.5px;
}
.footer-stat__lbl{
  display:block;margin-top:4px;
  font-size:0.52rem;font-weight:300;letter-spacing:2px;
  text-transform:uppercase;color:rgba(255,255,255,0.28);
}
.footer-heading{
  font-family:'Oswald',sans-serif;
  font-size:0.68rem;font-weight:400;letter-spacing:2.5px;
  text-transform:uppercase;color:var(--amber);margin:0 0 18px;
}
.footer-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.footer-links a{
  font-size:0.78rem;font-weight:300;letter-spacing:0.3px;
  color:rgba(255,255,255,0.48);text-decoration:none;
  transition:color .2s,padding-left .2s;
  display:inline-flex;align-items:center;
  min-height:44px;padding:8px 0;
}
.footer-links a:hover{color:var(--white);padding-left:4px;}
.footer-offices{display:flex;flex-direction:column;gap:18px;}
.footer-office__name{
  font-family:'Oswald',sans-serif;font-size:0.78rem;letter-spacing:1px;
  text-transform:uppercase;color:var(--white);
}
.footer-office__city{
  margin-top:3px;font-size:0.72rem;font-weight:300;
  color:rgba(255,255,255,0.35);
}
.footer-office__link{
  display:inline-flex;align-items:center;
  margin-top:6px;font-size:0.76rem;font-weight:300;
  color:rgba(255,255,255,0.55);text-decoration:none;transition:color .2s;
  min-height:44px;padding:8px 0;
}
.footer-office__link:hover{color:var(--amber-hi);}
.footer-connect__lead{
  font-size:0.8rem;font-weight:300;line-height:1.65;
  color:rgba(255,255,255,0.42);margin:0 0 20px;max-width:30ch;
}
.footer-cta{
  display:inline-flex;align-items:center;
  background:var(--cobalt);color:var(--white);
  padding:13px 28px;min-height:44px;
  font-family:'Oswald',sans-serif;font-size:0.72rem;font-weight:400;
  letter-spacing:2px;text-transform:uppercase;text-decoration:none;
  transition:background .25s;
}
.footer-cta:hover{background:var(--cobalt-hi);}
.footer-province-pills{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;
}
.footer-province-pill{
  font-family:'Oswald',sans-serif;font-size:0.62rem;letter-spacing:1.5px;
  text-transform:uppercase;color:rgba(255,255,255,0.55);
  border:1px solid rgba(255,255,255,0.1);
  padding:6px 10px;background:rgba(255,255,255,0.03);
}
.footer-social{display:flex;gap:14px;margin-top:18px;}
.footer-social__link{
  font-size:0.68rem;letter-spacing:1.5px;text-transform:uppercase;
  color:rgba(255,255,255,0.35);text-decoration:none;transition:color .2s;
  display:inline-flex;align-items:center;
  min-height:44px;padding:8px 4px;
}
.footer-social__link:hover{color:var(--white);}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.06);
  padding:18px 5vw;
}
.footer-bottom__inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:20px;flex-wrap:wrap;
}
.footer-copy{font-size:0.65rem;color:rgba(255,255,255,0.22);}
.footer-bottom__meta{display:flex;align-items:center;gap:16px;}
.footer-bottom__badge{
  font-size:0.58rem;letter-spacing:2px;text-transform:uppercase;
  color:rgba(255,255,255,0.28);border:1px solid rgba(255,255,255,0.08);
  padding:5px 10px;
}
.footer-bottom__link{
  font-size:0.65rem;letter-spacing:1.5px;text-transform:uppercase;
  color:rgba(255,255,255,0.35);text-decoration:none;transition:color .2s;
}
.footer-bottom__link:hover{color:var(--amber-hi);}
.footer-credit{
  font-size:0.62rem;font-weight:300;letter-spacing:0.5px;
  color:rgba(255,255,255,0.28);
}
.footer-credit__link{
  color:rgba(255,255,255,0.42);text-decoration:none;
  transition:color .2s;
}
.footer-credit__link:hover{color:var(--amber-hi);}

/* ── REVEAL ── */
.r{opacity:0;transform:translateY(28px);transition:opacity .7s,transform .7s;}
.r.in{opacity:1;transform:none;}
.r-left{opacity:0;transform:translateX(-28px);transition:opacity .7s,transform .7s;}
.r-left.in{opacity:1;transform:none;}
.r-right{opacity:0;transform:translateX(28px);transition:opacity .7s,transform .7s;}
.r-right.in{opacity:1;transform:none;}

/* ── RESPONSIVE ── */
@media(max-width:1000px){
  .section{padding:72px 5vw;}
  .page-hero{padding-top:104px;padding-bottom:48px;}
  .hero{
    grid-template-columns:1fr;
    min-height:auto;
  }
  .hero::after{width:100%;opacity:0.2;}
  .hero-left{padding:48px 5vw 32px;}
  .hero-right{
    display:flex;
    align-items:flex-start;
    justify-content:flex-start;
    padding:0 5vw 56px;
  }
  .hero-stat-stack{
    flex-direction:row;
    flex-wrap:wrap;
    gap:28px 20px;
    width:100%;
    max-width:none;
  }
  .hero-stat-item{
    flex:1 1 calc(50% - 10px);
    min-width:130px;
  }
  .hero-stat-num{font-size:3.6rem;}
  .hero-stat-num .suffix{font-size:1.6rem;}
  .hero-actions{flex-wrap:wrap;}
  .hero-actions .btn-solid,
  .hero-actions .btn-ghost{min-height:44px;}
  .why-layout,.contact-layout{grid-template-columns:1fr;}
  .why-left,.why-right{padding:40px 5vw;}
  .why-badge-num{font-size:5rem;}
  .testi-stack{grid-template-columns:1fr;}
  .testi-card{border-right:none;border-bottom:1px solid rgba(255,255,255,0.06);}
  .proj-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:auto;}
  .proj-a,.proj-b,.proj-c,.proj-d,.proj-e{grid-column:auto;grid-row:auto;}
  .svc-layout{grid-template-columns:1fr;}
  .svc-content{padding:36px 5vw;}
  .svc-nav-item{min-height:44px;}
  .btn-sm{min-height:44px;padding-top:12px;padding-bottom:12px;}
  .certs-row{flex-direction:column;}
  .certs-sep{width:100%;height:1px;}
  .certs-items{flex-wrap:wrap;}
  .cert-item{
    flex:1 1 calc(50% - 1px);
    min-width:120px;
    border-bottom:1px solid var(--fog);
  }
  .province-grid{grid-template-columns:repeat(3,1fr);}
  .province-cell{min-height:44px;padding:22px 12px;}
  .form-2col{grid-template-columns:1fr;}
  .contact-form{padding:32px 5vw;}
  .office-card{padding:28px 5vw;}
  .nav-toggle{display:flex;}
  #site-nav .nav-menu{
    display:none;position:absolute;top:76px;left:0;right:0;
    flex-direction:column;align-items:stretch;
    background:var(--ink);border-bottom:2px solid var(--amber);
    box-shadow:0 12px 40px rgba(0,0,0,0.45);
    max-height:calc(100vh - 76px);
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }
  #site-nav .nav-menu.is-open{display:flex;}
  #site-nav .nav-menu li a{
    height:auto;min-height:44px;padding:14px 5vw;
    border-right:none;border-bottom:1px solid rgba(255,255,255,0.05);
  }
  #site-nav .nav-menu li:last-child a{border-bottom:none;}
  .cta-banner{
    flex-direction:column;
    align-items:flex-start;
    padding:56px 5vw;
    gap:28px;
  }
  .cta-banner::before,.cta-banner::after{display:none;}
  .cta-btns{
    flex-direction:column;
    align-items:stretch;
    width:100%;
    gap:10px;
  }
  .cta-btns .btn-dark,
  .cta-btns .btn-solid{
    justify-content:center;
    min-height:44px;
    text-align:center;
  }
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px 24px;}
  .footer-col--brand{grid-column:1 / -1;}
  .footer-stats{grid-template-columns:repeat(4,minmax(0,1fr));}
  .rich-text__body{overflow-wrap:break-word;word-break:break-word;}
  .rich-text__body img{max-width:100%;height:auto;}
}

/* ── FORM FEEDBACK (added for live contact form) ── */
.f-note{
  font-size:0.8rem;font-weight:300;line-height:1.6;
  padding:12px 16px;margin-top:4px;display:none;
}
.f-note.show{display:block;}
.f-note.ok{background:rgba(14,82,160,0.12);border:1px solid var(--cobalt-hi);color:rgba(255,255,255,0.7);}
.f-note.err{background:rgba(224,152,32,0.1);border:1px solid var(--amber);color:var(--amber);}
.f-submit[disabled]{opacity:0.5;cursor:not-allowed;}
.f-inp.invalid,.f-sel.invalid,.f-ta.invalid{border-color:var(--amber);}

/* ── INNER PAGE HERO ── */
.page-hero{padding-top:120px;padding-bottom:56px;}
.page-breadcrumb{font-size:0.72rem;letter-spacing:1px;text-transform:uppercase;color:var(--txt-soft);margin-bottom:18px;display:flex;align-items:center;gap:8px;}
.page-breadcrumb a{
  color:var(--cobalt);text-decoration:none;
  display:inline-flex;align-items:center;
  min-height:44px;padding:8px 0;
}
.page-breadcrumb a:hover{color:var(--cobalt-hi);}
.page-breadcrumb__sep{opacity:0.45;}
.page-hero__h1{font-family:'Bebas Neue',system-ui,sans-serif;font-size:clamp(2.6rem,6vw,4.2rem);line-height:0.95;letter-spacing:1px;color:var(--ink);}
.page-hero__h1.light{color:var(--white);}
.page-hero__lead{max-width:56ch;margin-top:16px;font-size:1rem;font-weight:300;line-height:1.7;color:var(--txt-mid);}
.page-hero__lead.light{color:rgba(255,255,255,0.62);}
.rich-text__wrap{max-width:72ch;}
.rich-text__body{margin-top:14px;}

/* ── PROJECT LIST GRID ── */
.project-list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:36px;}
.project-list-card{position:relative;min-height:220px;border:1px solid rgba(255,255,255,0.08);overflow:hidden;}
.project-list-card--photo{min-height:260px;}
.project-list-card__fill{position:absolute;inset:0;background:linear-gradient(145deg,rgba(14,82,160,0.35),rgba(17,18,20,0.9));}
.project-list-card__fill--photo{
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.project-list-card__veil{
  position:absolute;inset:0;z-index:0;
  background:linear-gradient(to bottom,rgba(10,10,12,0.9) 0%,rgba(10,10,12,0.62) 45%,rgba(10,10,12,0.5) 100%);
}
.project-list-card__body{position:relative;z-index:1;padding:22px;display:flex;flex-direction:column;gap:8px;}
.project-list-card__body .proj-cat,
.project-list-card__body .proj-title,
.project-list-card__body .proj-loc{text-shadow:0 1px 6px rgba(0,0,0,0.7);}
.project-list-card__summary{font-size:0.84rem;font-weight:300;line-height:1.55;color:rgba(255,255,255,0.82);text-shadow:0 1px 6px rgba(0,0,0,0.7);}

/* ── CAREERS ── */
.careers-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px;margin-bottom:8px;}
.careers-benefit{display:flex;gap:14px;align-items:flex-start;background:var(--white);border:1px solid var(--fog);padding:18px 16px;}
.careers-benefit__n{
  font-family:'Oswald',system-ui,sans-serif;font-size:0.72rem;letter-spacing:1px;
  color:var(--amber);min-width:28px;padding-top:2px;
}
.careers-benefit__title{font-family:'Oswald',system-ui,sans-serif;font-size:0.88rem;letter-spacing:0.4px;color:var(--ink);text-transform:uppercase;}
.careers-benefit__desc{margin-top:6px;font-size:0.82rem;line-height:1.55;color:var(--txt-mid);}
.careers-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:28px;}
.careers-card{background:var(--white);border:1px solid var(--fog);padding:22px;display:flex;flex-direction:column;gap:12px;border-left:3px solid var(--cobalt);}
.careers-card__title{font-family:'Oswald',system-ui,sans-serif;font-size:1.05rem;letter-spacing:0.4px;color:var(--ink);}
.careers-card__meta{display:flex;flex-wrap:wrap;gap:10px;font-size:0.78rem;color:var(--txt-soft);text-transform:uppercase;letter-spacing:0.6px;}
.careers-card__type{color:var(--cobalt);font-weight:500;}
.careers-card__summary{font-size:0.9rem;line-height:1.6;color:var(--txt-mid);}
.careers-closing{
  margin-top:28px;padding:16px 18px;
  background:rgba(14,82,160,0.08);border-left:3px solid var(--cobalt);
  font-size:0.88rem;line-height:1.65;color:var(--txt-mid);
}
.careers-empty{font-size:0.9rem;color:var(--txt-soft);}

/* ── NEWS ── */
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px;}
.news-card{border:1px solid var(--fog);background:var(--white);padding:22px;display:flex;flex-direction:column;gap:10px;min-height:200px;}
.news-card__date{font-family:'Oswald',system-ui,sans-serif;font-size:0.68rem;letter-spacing:1px;text-transform:uppercase;color:var(--cobalt);}
.news-card__title{font-family:'Oswald',system-ui,sans-serif;font-size:1rem;color:var(--ink);}
.news-card__excerpt{font-size:0.88rem;line-height:1.6;color:var(--txt-mid);flex:1;}
.news-card__link{
  font-family:'Oswald',system-ui,sans-serif;font-size:0.72rem;letter-spacing:1px;
  text-transform:uppercase;color:var(--cobalt);text-decoration:none;
  display:inline-flex;align-items:center;
  min-height:44px;padding:12px 0;
}
.news-card__link:hover{color:var(--cobalt-hi);}
.news-empty{font-size:0.9rem;color:var(--txt-soft);}

/* ── ARTICLE DETAIL (reading layout) ── */
.article-hero{padding-bottom:36px;}
.article-hero__inner{max-width:820px;}
.article-hero__meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;
  margin-top:20px;padding-top:16px;border-top:2px solid var(--amber);
}
.article-detail__category{
  display:inline-block;
  font-family:'Oswald',system-ui,sans-serif;font-size:0.68rem;letter-spacing:1px;
  text-transform:uppercase;color:var(--cobalt);
  border:1px solid var(--cobalt-lo);padding:4px 10px;background:var(--white);
}
.article-detail__date,
.article-detail__read-time{
  font-family:'Oswald',system-ui,sans-serif;font-size:0.72rem;letter-spacing:1px;
  text-transform:uppercase;color:var(--txt-soft);
}
.article-detail__read-time::before{
  content:'';display:inline-block;width:4px;height:4px;border-radius:50%;
  background:var(--amber);margin-right:10px;vertical-align:middle;
}
.article-detail__title{
  font-family:'Bebas Neue',system-ui,sans-serif;
  font-size:clamp(3rem,7.5vw,5rem);line-height:0.95;letter-spacing:1px;
  color:var(--ink);margin-top:18px;max-width:24ch;
}
.article-detail__dek{
  margin-top:20px;max-width:68ch;
  font-size:clamp(1.05rem,2.2vw,1.2rem);font-weight:400;line-height:1.75;
  color:var(--txt-mid);
}

.article-feature{padding:0 0 44px;}
.article-feature__figure{
  margin:0;overflow:hidden;
}
.article-feature__figure img{
  width:100%;display:block;
  height:clamp(360px,56vh,700px);object-fit:cover;
}

.article-detail{padding-top:44px;}
.article-page--has-cover .article-detail{padding-top:0;}
.article-page--has-cover .article-hero{padding-bottom:0;}
.article-detail__inner{max-width:680px;margin:0 auto;}

.article-prose{
  font-size:1.0625rem;font-weight:300;line-height:1.85;
  color:var(--txt-mid);letter-spacing:0.01em;
}
.article-prose > p:first-child,
.article-prose > p:first-of-type{
  font-size:1.2rem;line-height:1.78;font-weight:400;color:var(--txt);
}
.article-prose p{margin:0 0 1.35em;}
.article-prose h2{
  font-family:'Bebas Neue',system-ui,sans-serif;
  font-size:clamp(1.8rem,4vw,2.4rem);line-height:1;
  letter-spacing:1px;color:var(--ink);
  margin:2.4em 0 0.8em;
}
.article-prose h3{
  font-family:'Oswald',system-ui,sans-serif;
  font-size:1.05rem;font-weight:500;letter-spacing:0.04em;
  text-transform:uppercase;color:var(--ink);
  margin:2em 0 0.65em;
}
.article-prose a{
  color:var(--cobalt);text-decoration:underline;text-underline-offset:3px;
}
.article-prose a:hover{color:var(--cobalt-hi);}
.article-prose strong{font-weight:600;color:var(--ink);}
.article-prose em{font-style:italic;}
.article-prose ul,
.article-prose ol{margin:0 0 1.35em;padding-left:1.35em;}
.article-prose li{margin-bottom:0.55em;}
.article-prose li::marker{color:var(--cobalt);}
.article-prose blockquote{
  margin:2em 0;padding:20px 24px;
  background:rgba(14,82,160,0.06);border-left:3px solid var(--cobalt);
  font-size:1.05rem;line-height:1.75;color:var(--txt);
}
.article-prose hr{
  border:0;height:1px;margin:2.5em 0;
  background:linear-gradient(90deg,var(--cobalt) 0%,var(--mist) 70%,transparent 100%);
}
.article-prose img{
  width:100%;height:auto;display:block;margin:2.25em 0;
  border:1px solid var(--fog);background:var(--white);
}
.article-prose figure{margin:2.5em 0;}
.article-prose figure img{margin:0;}
.article-prose figcaption{
  margin-top:12px;padding-left:14px;
  border-left:2px solid var(--amber);
  font-family:'Oswald',system-ui,sans-serif;font-size:0.72rem;
  letter-spacing:0.06em;text-transform:uppercase;
  line-height:1.55;color:var(--txt-soft);
}
.article-prose .article-img-wide{
  width:calc(100% + 80px);max-width:calc(100% + 80px);
  margin-left:-40px;margin-right:-40px;
}
.article-detail__footer{
  margin-top:48px;padding-top:28px;border-top:1px solid var(--mist);
}
.article-detail__back-link{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Oswald',system-ui,sans-serif;font-size:0.72rem;
  letter-spacing:1px;text-transform:uppercase;text-decoration:none;
  color:var(--cobalt);min-height:44px;padding:10px 0;
}
.article-detail__back-link:hover{color:var(--cobalt-hi);}
.article-detail__back-icon{font-size:1rem;line-height:1;}

@media (max-width:900px){
  .section{padding:64px 5vw;}
  .project-list-grid,.careers-list,.careers-benefits,.news-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .footer-stats{grid-template-columns:repeat(2,minmax(0,1fr));}
  .footer-bottom__inner{flex-direction:column;align-items:flex-start;}
  .footer-body{padding:48px 5vw 40px;}
}

@media (max-width:600px){
  .section{padding:56px 5vw;}
  .page-hero{padding-top:96px;padding-bottom:40px;}
  .page-breadcrumb{flex-wrap:wrap;}
  .hero-left{padding:40px 5vw 24px;}
  .hero-h1{font-size:clamp(2.8rem,14vw,4.5rem);}
  .hero-sub{margin:20px 0 28px;}
  .hero-actions{flex-direction:column;align-items:stretch;width:100%;}
  .hero-actions .btn-solid,
  .hero-actions .btn-ghost{
    justify-content:center;
    width:100%;
    text-align:center;
  }
  .hero-stat-item{flex:1 1 100%;}
  .hero-stat-num{font-size:3rem;}
  .proj-mosaic{grid-template-columns:1fr;gap:10px;margin-top:40px;}
  .province-grid{grid-template-columns:repeat(2,1fr);}
  .cert-item{flex:1 1 100%;border-right:none;}
  .certs-badge-block{padding:24px 5vw;min-width:0;}
  .testi-card{padding:28px 5vw;}
  .why-badge-num{font-size:4rem;}
  .svc-content-h3{font-size:1.8rem;}
  .cta-banner{padding:48px 5vw;}
  .footer-stats{grid-template-columns:1fr 1fr;}
  .nav-tagline{display:none;}
  .nav-wordmark{font-size:0.82rem;letter-spacing:1.5px;}
  .project-list-card{min-height:200px;}
  .careers-card,.news-card{padding:18px;}
  .f-lbl{font-size:0.65rem;}
  .article-detail__title{max-width:none;}
  .article-prose{font-size:1rem;}
  .article-prose > p:first-child,
  .article-prose > p:first-of-type{font-size:1.1rem;}
  .article-prose .article-img-wide{
    width:100%;max-width:100%;margin-left:0;margin-right:0;
  }
  .article-feature{padding-bottom:32px;}
}

/* ── ERROR PAGES ── */
.error-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  background: var(--ink);
  color: var(--mist);
  position: relative;
  overflow: hidden;
}
.error-page__grid {
  position: absolute;
  inset: 0;
  opacity: 0.12;
  background-image:
    linear-gradient(var(--slate) 1px, transparent 1px),
    linear-gradient(90deg, var(--slate) 1px, transparent 1px);
  background-size: 48px 48px;
  pointer-events: none;
}
.error-page__inner {
  position: relative;
  max-width: 520px;
  text-align: center;
}
.error-page__eyebrow {
  font-family: 'Oswald', sans-serif;
  font-size: 0.68rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--amber);
  margin-bottom: 12px;
}
.error-page__code {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(4rem, 18vw, 7rem);
  line-height: 0.9;
  color: var(--cobalt-hi);
  margin-bottom: 8px;
}
.error-page__title {
  font-family: 'Oswald', sans-serif;
  font-size: clamp(1.4rem, 4vw, 2rem);
  font-weight: 500;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 14px;
}
.error-page__lead {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--txt-soft);
  margin-bottom: 28px;
}
.error-page__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}
.error-page .btn-solid,
.error-page .btn-ghost { cursor: pointer; }
.error-page .btn-ghost { color: var(--amber); border-color: var(--amber); }
.error-page .btn-ghost:hover { color: var(--amber-hi); border-color: var(--amber-hi); }

/* ── REDUCED MOTION ── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  body { cursor: auto; }
  #cursor, #cursorRing { display: none !important; }
  .marquee-track { animation: none !important; transform: none !important; }
  .r, .r-left, .r-right { opacity: 1 !important; transform: none !important; }
  .hero-label, .hero-h1, .hero-sub, .hero-actions, .hero-stat-stack {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
  .hero-h1, .hero-stat-stack { transform: none !important; }
}
