/* Design language: precise industrial confidence. Angular blue accents, measured contrast, and responsive motion that makes decisions feel intentional. */
:root{
  --jet:#0B0B0D;
  --charcoal:#1A1D21;
  --gunmetal:#3B3F46;
  --silver:#BFC2C7;
  --white:#FFFFFF;
  --blue:#008DD2;
  --blue-glow: rgba(0,141,210,0.35);
  --maxw: 1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--jet);
  color:var(--white);
  font-family:'Raleway', sans-serif;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Exo 2', sans-serif;
  font-weight:800;
  letter-spacing:0.02em;
  margin:0 0 0.5em 0;
  text-transform:uppercase;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px;}
.eyebrow{
  color:var(--blue);
  font-family:'Exo 2',sans-serif;
  font-weight:700;
  letter-spacing:0.18em;
  text-transform:uppercase;
  font-size:0.78rem;
  margin-bottom:10px;
  display:inline-block;
}
.hex-bg{
  background-image:
    radial-gradient(circle at 85% 8%, rgba(0,141,210,0.10), transparent 45%),
    url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='56' viewBox='0 0 64 56'%3E%3Cpolygon points='16,0 48,0 64,28 48,56 16,56 0,28' fill='none' stroke='rgba(0,141,210,0.10)' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat: no-repeat, repeat;
  background-size: cover, 64px 56px;
}
.section{padding:88px 0;}
.section-tight{padding:56px 0;}
.divider{
  height:38px;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1180' height='38' viewBox='0 0 1180 38'%3E%3Cpolyline points='0,10 260,10 300,30 620,30 660,10 920,10 960,26 1180,26' fill='none' stroke='%233B3F46' stroke-width='1.5'/%3E%3Cpolyline points='0,26 200,26 235,10 520,10 555,26 860,26 895,10 1180,10' fill='none' stroke='%23008DD2' stroke-width='1.5' opacity='0.65'/%3E%3Ccircle cx='300' cy='30' r='3' fill='%23008DD2'/%3E%3Ccircle cx='660' cy='10' r='3' fill='%23008DD2'/%3E%3Ccircle cx='895' cy='10' r='3' fill='%23008DD2'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
  opacity:0.9;
  margin: 0 auto;
  max-width:var(--maxw);
}

/* Header */
header{
  position:sticky; top:0; z-index:100;
  background:rgba(11,11,13,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--gunmetal);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 24px; max-width:var(--maxw); margin:0 auto;
}
.brand img{height:38px; width:auto;}
nav.links{display:flex; gap:26px; align-items:center;}
nav.links a{
  font-family:'Exo 2',sans-serif; font-weight:600; font-size:0.8rem;
  letter-spacing:0.06em; text-transform:uppercase; color:var(--silver);
  position:relative; padding:6px 0;
  transition:color 0.2s ease;
}
nav.links a:hover, nav.links a.active{color:var(--white);}
nav.links a::after{
  content:''; position:absolute; left:0; bottom:0; height:2px; width:0;
  background:var(--blue); transition:width 0.25s ease;
}
nav.links a:hover::after, nav.links a.active::after{width:100%;}
.btn{
  display:inline-block; font-family:'Exo 2',sans-serif; font-weight:700;
  letter-spacing:0.05em; text-transform:uppercase; font-size:0.82rem;
  padding:13px 26px; border-radius:2px; transition:all 0.2s ease;
  border:1px solid transparent; cursor:pointer;
}
.btn-primary{background:var(--blue); color:var(--white);}
.btn-primary:hover{background:#00a3f0; box-shadow:0 0 22px var(--blue-glow);}
.btn-outline{border-color:var(--silver); color:var(--white);}
.btn-outline:hover{border-color:var(--blue); color:var(--blue);}

/* Page header banner (non-home pages) */
.page-banner{
  padding:120px 24px 56px 24px;
  border-bottom:1px solid var(--gunmetal);
  text-align:center;
  position:relative;
  overflow:hidden;
}
.back-home{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:0 0 18px;
  color:var(--silver);
  font-family:'Exo 2',sans-serif;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  border-bottom:1px solid rgba(0,141,210,0.52);
  padding-bottom:5px;
  transition:color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}
.back-home:hover,.back-home:focus-visible{color:var(--white); border-color:var(--blue); transform:translateX(-3px); outline:none;}
.page-banner h1{font-size:clamp(2rem, 5vw, 3rem); margin-bottom:10px;}
.page-banner p{color:var(--silver); max-width:560px; margin:0 auto; font-size:1.02rem;}

/* Hero (home only) */
.hero{
  position:relative; overflow:hidden; border-bottom:1px solid var(--gunmetal);
  min-height:78vh; display:flex; align-items:flex-end;
  background-size:cover; background-position:center 65%;
}
.hero::before{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(11,11,13,0.35) 0%, rgba(11,11,13,0.55) 45%, rgba(11,11,13,0.97) 100%),
    linear-gradient(100deg, rgba(11,11,13,0.92) 0%, rgba(11,11,13,0.35) 45%, rgba(11,11,13,0.75) 100%);
  z-index:1;
}
.hero::after{
  content:''; position:absolute; inset:0; z-index:1;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='56' viewBox='0 0 64 56'%3E%3Cpolygon points='16,0 48,0 64,28 48,56 16,56 0,28' fill='none' stroke='rgba(0,141,210,0.10)' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat:repeat; background-size:64px 56px;
  mix-blend-mode:overlay; opacity:0.7;
}
.hero-content{position:relative; z-index:2; width:100%; padding:140px 24px 72px 24px;}
.hero-content .wrap{max-width:var(--maxw); margin:0 auto;}
.hero-content h1{
  font-size:clamp(2.6rem, 6.4vw, 4.6rem); line-height:1.02; margin-bottom:16px;
  text-shadow:0 4px 30px rgba(0,0,0,0.5);
}
.hero-content h1 .accent{color:var(--blue);}
.hero-tagline{
  font-family:'Exo 2',sans-serif; font-weight:600; font-size:1.25rem; color:var(--silver);
  letter-spacing:0.03em; margin-bottom:30px; max-width:560px;
}
.hero-cta{display:flex; gap:16px; flex-wrap:wrap;}

/* Credibility strip */
.cred-strip{background:var(--jet); border-bottom:1px solid var(--gunmetal); padding:22px 0;}
.cred-strip .wrap{
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px 0;
  font-family:'Exo 2',sans-serif; font-weight:600; font-size:0.85rem;
  letter-spacing:0.03em; color:var(--silver); text-align:center;
}
.cred-strip .sep{color:var(--blue); margin:0 18px;}

/* Pillars */
.pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:48px;}
.pillar{
  background:var(--charcoal); border:1px solid var(--gunmetal); padding:32px 26px;
  border-top:3px solid var(--blue); transition:transform 0.25s ease, border-color 0.25s ease;
}
.pillar:hover{transform:translateY(-4px); border-color:var(--blue);}
.pillar h3{font-size:1.05rem; color:var(--white);}
.pillar p{color:var(--silver); font-size:0.95rem; margin:0;}

.section-head{max-width:640px; margin-bottom:20px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{font-size:2rem; color:var(--white);}
.section-head p{color:var(--silver); font-size:1.02rem;}

/* About */
.about-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:start;}
.about-copy p{color:var(--silver); font-size:1rem;}
.value-list{list-style:none; padding:0; margin:22px 0 0 0;}
.value-list li{
  padding:12px 0 12px 30px; position:relative; color:var(--white);
  font-family:'Exo 2',sans-serif; font-weight:600; font-size:0.95rem;
  border-bottom:1px solid var(--gunmetal);
}
.value-list li::before{content:''; position:absolute; left:0; top:19px; width:14px; height:2px; background:var(--blue);}
.stat-card{background:var(--charcoal); border:1px solid var(--gunmetal); padding:30px;}
.stat-card .stat{display:flex; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--gunmetal);}
.stat-card .stat:last-child{border-bottom:none;}
.stat-card .stat b{font-family:'Exo 2',sans-serif; color:var(--blue); font-size:1.3rem;}
.stat-card .stat span{color:var(--silver); font-size:0.85rem; text-align:right; max-width:60%;}
.partner-note{margin-top:14px; color:var(--gunmetal); font-size:0.85rem; font-style:italic;}

/* Services */
.svc-block{margin-bottom:52px;}
.svc-block:last-child{margin-bottom:0;}
.svc-head{display:flex; align-items:baseline; gap:14px; margin-bottom:22px;}
.svc-head h3{color:var(--white); font-size:1.3rem; margin:0;}
.svc-head .line{flex:1; height:1px; background:var(--gunmetal);}
.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.svc-card{background:var(--charcoal); border:1px solid var(--gunmetal); padding:26px; transition:border-color 0.2s ease;}
.svc-card:hover{border-color:var(--blue);}
.svc-card h4{font-family:'Exo 2',sans-serif; font-weight:700; color:var(--blue); font-size:0.95rem; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:10px;}
.svc-card p{color:var(--silver); font-size:0.92rem; margin:0;}
.svc-photos{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:22px;}
.svc-photos figure{margin:0; overflow:hidden; border:1px solid var(--gunmetal); position:relative;}
.svc-photos img{width:100%; height:260px; object-fit:cover; transition:transform 0.4s ease;}
.svc-photos figure:hover img{transform:scale(1.04);}
.svc-photos figcaption{
  position:absolute; bottom:0; left:0; right:0; padding:10px 14px;
  background:linear-gradient(0deg, rgba(11,11,13,0.9), transparent);
  font-family:'Exo 2',sans-serif; font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--silver);
}

/* Team */
.team-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.team-card{background:var(--charcoal); border:1px dashed var(--gunmetal); padding:0; text-align:center; overflow:hidden;}
.team-photo{
  aspect-ratio:1/1; background:var(--jet); display:flex; align-items:center; justify-content:center;
  color:var(--gunmetal); font-family:'Exo 2',sans-serif; font-size:0.75rem; letter-spacing:0.05em; text-transform:uppercase;
  border-bottom:1px solid var(--gunmetal);
}
.team-info{padding:20px;}
.team-info h4{font-family:'Exo 2',sans-serif; font-size:1rem; color:var(--white); margin-bottom:4px;}
.team-info .role{color:var(--blue); font-size:0.8rem; font-weight:600; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:8px; display:block;}
.team-info p{color:var(--silver); font-size:0.85rem; margin:0;}
.team-cta{
  margin-top:56px; text-align:center; padding:40px; background:var(--charcoal); border:1px solid var(--gunmetal);
}
.team-cta h3{font-size:1.3rem; margin-bottom:10px;}
.team-cta p{color:var(--silver); margin-bottom:20px;}

/* Gallery */
.gallery-intro{display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-bottom:36px;}
.gallery-intro .g-card{background:var(--charcoal); border:1px solid var(--gunmetal); padding:26px;}
.gallery-intro .g-card h4{font-family:'Exo 2',sans-serif; color:var(--white); font-size:1rem; margin-bottom:8px;}
.gallery-intro .g-card p{color:var(--silver); font-size:0.9rem; margin:0;}
.gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.gallery-grid figure{margin:0; position:relative; overflow:hidden; border:1px solid var(--gunmetal);}
.gallery-grid img{width:100%; height:270px; object-fit:cover; transition:transform 0.4s ease;}
.gallery-grid figure.tall img{height:400px;}
.gallery-grid figure:hover img{transform:scale(1.05);}
.gallery-grid figcaption{
  position:absolute; bottom:0; left:0; right:0; padding:14px 16px;
  background:linear-gradient(0deg, rgba(11,11,13,0.92), transparent);
}
.gallery-grid figcaption .tag{font-family:'Exo 2',sans-serif; font-size:0.7rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--blue); display:block;}
.gallery-grid figcaption .cap{color:var(--silver); font-size:0.82rem;}
.gallery-note{margin-top:18px; padding:16px 20px; border-left:3px solid var(--blue); background:var(--charcoal); color:var(--silver); font-size:0.88rem;}

/* CTA band */
.cta-band{position:relative; border-top:1px solid var(--gunmetal); border-bottom:1px solid var(--gunmetal);}
.cta-band img{width:100%; height:auto; display:block;}

/* Careers / Contractors */
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
.role-card, .app-card{background:var(--charcoal); border:1px solid var(--gunmetal); padding:30px;}
.role-card h4{font-family:'Exo 2',sans-serif; color:var(--blue); font-size:1.05rem; margin-bottom:10px;}
.role-card p{color:var(--silver); font-size:0.92rem; margin:0;}
.app-card h3{font-size:1.4rem; margin-bottom:12px;}
.app-card p{color:var(--silver); font-size:0.95rem;}
.app-form{display:flex; flex-direction:column; gap:14px; margin-top:20px;}
.app-form input{
  background:var(--jet); border:1px solid var(--gunmetal); color:var(--white);
  padding:13px 14px; font-family:'Raleway',sans-serif; font-size:0.92rem;
}
.app-form input:focus{outline:none; border-color:var(--blue);}
.app-form input::placeholder{color:var(--gunmetal);}

/* FAQ */
details{background:var(--charcoal); border:1px solid var(--gunmetal); margin-bottom:12px; padding:0;}
details summary{
  padding:20px 24px; cursor:pointer; list-style:none; font-family:'Exo 2',sans-serif;
  font-weight:600; font-size:0.98rem; color:var(--white); display:flex; justify-content:space-between; align-items:center;
}
details summary::-webkit-details-marker{display:none;}
details summary::after{content:'+'; color:var(--blue); font-size:1.3rem; font-weight:400;}
details[open] summary::after{content:'–';}
details .faq-body{padding:0 24px 20px 24px; color:var(--silver); font-size:0.92rem;}

/* Contact / Footer */
.contact-cta{
  text-align:center; padding:90px 24px; background:var(--charcoal);
  border-top:1px solid var(--gunmetal); border-bottom:1px solid var(--gunmetal);
}
.contact-cta h2{font-size:2.1rem; max-width:680px; margin:0 auto 14px auto;}
.contact-cta p{color:var(--silver); max-width:520px; margin:0 auto 30px auto;}

footer{padding:56px 0 30px 0;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; margin-bottom:40px;}
.foot-brand img{height:34px; margin-bottom:14px;}
.foot-brand p{color:var(--silver); font-size:0.85rem; max-width:280px;}
.foot-col h5{font-family:'Exo 2',sans-serif; color:var(--white); font-size:0.82rem; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:16px;}
.foot-col a{display:block; color:var(--silver); font-size:0.88rem; margin-bottom:10px; transition:color 0.2s ease;}
.foot-col a:hover{color:var(--blue);}
.foot-bottom{
  border-top:1px solid var(--gunmetal); padding-top:24px; display:flex; justify-content:space-between;
  align-items:center; flex-wrap:wrap; gap:14px; color:var(--gunmetal); font-size:0.8rem;
}
.foot-social{display:flex; gap:14px;}
.foot-social a{
  width:36px; height:36px; border:1px solid var(--gunmetal); display:flex; align-items:center; justify-content:center;
  color:var(--silver); font-size:0.85rem; font-family:'Exo 2',sans-serif; transition:all 0.2s ease;
}
.foot-social a:hover{border-color:var(--blue); color:var(--blue);}

.menu-toggle{display:none; background:none; border:none; color:var(--white); font-size:1.6rem; cursor:pointer;}
.mobile-menu{display:none;}

@media (max-width: 900px){
  .nav-inner{position:relative; gap:10px; padding:12px 18px;}
  .brand{flex:0 1 auto; min-width:0;}
  .brand img{height:33px; max-width:128px; object-fit:contain; object-position:left center;}
  nav.links{display:none;}
  .mobile-menu{display:block !important; position:static; order:2; margin:0 0 0 auto; padding:0; border:0; background:transparent; flex:0 0 auto;}
  .mobile-menu summary{
    display:flex; align-items:center; justify-content:center; gap:7px;
    min-width:72px; height:46px; padding:0 10px; border:1px solid #4b5159;
    background:var(--charcoal); color:var(--white); list-style:none; cursor:pointer;
    transition:border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
  }
  .mobile-menu summary::-webkit-details-marker{display:none;}
  .mobile-menu summary::after{content:none !important; display:none !important;}
  .mobile-menu summary:focus-visible{outline:2px solid var(--blue); outline-offset:3px;}
  .mobile-menu-icon{display:block; width:auto; height:auto; background:none; color:var(--white); font-size:1.18rem; line-height:1; transition:transform 0.2s ease;}
  .mobile-menu-label{display:inline; color:var(--white); font-family:'Exo 2',sans-serif; font-size:0.64rem; font-weight:800; letter-spacing:0.08em; text-transform:uppercase;}
  .mobile-menu[open] summary{border-color:var(--blue); background:#20242a; box-shadow:0 0 0 3px rgba(0,141,210,0.12);}
  .mobile-menu[open] .mobile-menu-icon{transform:rotate(90deg);}
  .mobile-menu-panel{
    position:absolute; z-index:120; top:100%; left:0; right:0;
    display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:0;
    padding:12px 18px 18px; background:rgba(11,11,13,0.98);
    border-bottom:2px solid var(--blue); box-shadow:0 18px 28px rgba(0,0,0,0.42);
  }
  .mobile-menu-panel a{
    min-height:50px; display:flex; align-items:center; padding:0 12px;
    border-bottom:1px solid var(--gunmetal); color:var(--silver);
    font-family:'Exo 2',sans-serif; font-size:0.79rem; font-weight:700;
    letter-spacing:0.06em; text-transform:uppercase;
  }
  .mobile-menu-panel a:nth-last-child(-n+1){grid-column:1 / -1;}
  .mobile-menu-panel a:hover, .mobile-menu-panel a:focus-visible{color:var(--white); background:#20242a; box-shadow:inset 3px 0 0 var(--blue); outline:0;}
  .nav-inner > .btn{order:3; flex:0 0 auto; padding:12px 14px; font-size:0.7rem; white-space:nowrap;}
  .pillars, .svc-grid, .team-grid, .gallery-grid, .about-grid, .two-col, .gallery-intro, .svc-photos{
    grid-template-columns:1fr;
  }
  .foot-grid{grid-template-columns:1fr 1fr;}
  .section{padding:56px 0;}
  .hero{min-height:0;}
  .hero-content{padding:64px 20px 36px 20px;}
  .hero-content h1{margin-bottom:10px;}
  .hero-tagline{margin-bottom:20px; font-size:1.05rem;}
  .hero-cta{gap:12px;}
  .hero-cta .btn{padding:12px 20px; font-size:0.76rem;}
  .cred-strip{padding:14px 0;}
  .cred-strip .wrap{font-size:0.72rem; gap:4px 0;}
  .cred-strip .sep{margin:0 10px;}
}

@media (max-width: 410px){
  .nav-inner{gap:7px; padding-left:14px; padding-right:14px;}
  .brand img{height:30px; max-width:112px;}
  .mobile-menu summary{min-width:64px; height:42px; padding:0 8px;}
  .mobile-menu-label{font-size:0.59rem;}
  .nav-inner > .btn{padding:11px 11px; font-size:0.64rem;}
}

/* Leadership spotlight */
.leader-card{
  display:grid; grid-template-columns:280px 1fr; gap:40px;
  background:var(--charcoal); border:1px solid var(--gunmetal); border-top:3px solid var(--blue);
  padding:36px; margin-bottom:40px; align-items:start;
}
.leader-photo img{width:100%; aspect-ratio:1/1; object-fit:cover; border:1px solid var(--gunmetal);}
.leader-info h3{font-size:1.5rem; margin-bottom:2px;}
.leader-info .role{color:var(--blue); font-family:'Exo 2',sans-serif; font-weight:700; font-size:0.85rem; text-transform:uppercase; letter-spacing:0.05em; display:block; margin-bottom:16px;}
.leader-info p{color:var(--silver); font-size:0.96rem; margin-bottom:14px;}
.leader-tags{display:flex; gap:10px; flex-wrap:wrap; margin:18px 0;}
.leader-tags span{
  border:1px solid var(--gunmetal); padding:6px 14px; font-family:'Exo 2',sans-serif;
  font-size:0.72rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--silver);
}
.leader-family{display:flex; gap:18px; align-items:center; margin-top:20px; padding-top:20px; border-top:1px solid var(--gunmetal);}
.leader-family img{width:150px; height:auto; border:1px solid var(--gunmetal); flex-shrink:0;}
.leader-family p{color:var(--silver); font-size:0.88rem; margin:0; font-style:italic;}
.advice-quote{
  margin-top:20px; padding-left:16px; border-left:2px solid var(--blue);
  font-style:italic; color:var(--silver); font-size:0.9rem;
}
.advice-quote span{
  display:block; margin-top:6px; font-style:normal; font-family:'Exo 2',sans-serif;
  font-size:0.7rem; letter-spacing:0.05em; text-transform:uppercase; color:var(--gunmetal);
}
@media (max-width: 900px){
  .leader-card{grid-template-columns:1fr;}
  .leader-photo{max-width:220px;}
  .leader-family{flex-direction:column; align-items:flex-start;}
}

/* Service area callout */
.service-area{
  margin-top:40px; padding:32px; background:var(--charcoal); border:1px solid var(--gunmetal);
  border-left:3px solid var(--blue);
}
.service-area h3{font-size:1.15rem; margin-bottom:12px; text-transform:none;}
.service-area p{color:var(--silver); font-size:0.96rem; margin:0;}

/* Partner showcase: a warm-white material panel makes varied brand marks read as a single, deliberate proof point. */
.partner-showcase{
  position:relative;
  margin-top:56px;
  padding:38px 38px 40px;
  background:#171a1f;
  border:1px solid var(--gunmetal);
  border-top:3px solid var(--blue);
  overflow:hidden;
}
.partner-showcase::after{
  content:'';
  position:absolute;
  right:-90px;
  bottom:-110px;
  width:280px;
  height:280px;
  border:1px solid rgba(0,141,210,0.15);
  transform:rotate(30deg);
  pointer-events:none;
}
.partner-head{
  position:relative;
  z-index:1;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:32px;
  margin-bottom:30px;
}
.partner-head .eyebrow{margin-bottom:7px;}
.partner-head h2{font-size:clamp(1.35rem,2.2vw,1.85rem); margin:0;}
.partner-head p{max-width:450px; margin:0; color:var(--silver); font-size:0.91rem; line-height:1.65;}
.partner-grid{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:12px;
}
.partner-logo{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:112px;
  padding:17px;
  overflow:hidden;
  background:#f3f5f7;
  border:1px solid rgba(255,255,255,0.2);
  transition:transform 0.24s cubic-bezier(.2,.8,.2,1), box-shadow 0.24s ease, background 0.24s ease;
}
.partner-logo::before{
  content:'';
  position:absolute;
  inset:0;
  border-top:2px solid var(--blue);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 0.28s cubic-bezier(.2,.8,.2,1);
}
.partner-logo img{
  width:100%;
  max-height:70px;
  object-fit:contain;
  mix-blend-mode:multiply;
  transition:transform 0.24s cubic-bezier(.2,.8,.2,1), filter 0.24s ease;
}
@media (hover:hover) and (pointer:fine){
  .partner-logo:hover{transform:translateY(-4px); background:var(--white); box-shadow:0 14px 22px rgba(0,0,0,0.28);}
  .partner-logo:hover::before{transform:scaleX(1);}
  .partner-logo:hover img{transform:scale(1.045);}
}
@media (max-width:900px){
  .partner-head{display:block;}
  .partner-head p{margin-top:13px;}
  .partner-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:620px){
  .partner-showcase{margin-top:40px; padding:30px 22px;}
  .partner-grid{grid-template-columns:repeat(2,1fr); gap:10px;}
  .partner-logo{min-height:96px; padding:14px;}
  .partner-logo img{max-height:58px;}
}

/* Large pull-quote (leadership spotlight) */
.pull-quote{
  grid-column: 1 / -1;
  margin-top:8px;
  padding:28px 32px;
  background:var(--jet);
  border-left:4px solid var(--blue);
  font-family:'Exo 2',sans-serif;
  font-weight:700;
  font-size:1.4rem;
  line-height:1.35;
  color:var(--white);
  text-transform:none;
  letter-spacing:0.01em;
}
.pull-quote span{
  display:block; margin-top:14px; font-family:'Raleway',sans-serif; font-weight:600;
  font-size:0.82rem; letter-spacing:0.04em; text-transform:uppercase; color:var(--blue);
}
@media (max-width: 900px){
  .pull-quote{font-size:1.15rem; padding:22px 20px;}
}

/* Interaction polish and leadership page refinement */
a:focus-visible, .btn:focus-visible, summary:focus-visible{
  outline:2px solid var(--blue);
  outline-offset:4px;
}
.brand img{transition:transform 0.24s cubic-bezier(.2,.8,.2,1), filter 0.24s ease;}
.btn{
  position:relative;
  transform:translateY(0);
  transition:transform 0.2s cubic-bezier(.2,.8,.2,1), box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.btn:active{transform:translateY(1px) scale(0.98);}
.pillar, .svc-card, .gallery-intro .g-card, .role-card, .app-card, .team-cta{
  position:relative;
  overflow:hidden;
  transition:transform 0.24s cubic-bezier(.2,.8,.2,1), border-color 0.24s ease, box-shadow 0.24s ease;
}
.pillar::before, .svc-card::before, .gallery-intro .g-card::before, .role-card::before, .app-card::before{
  content:'';
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:2px;
  background:var(--blue);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 0.28s cubic-bezier(.2,.8,.2,1);
}
.gallery-grid figure, .svc-photos figure{
  transition:border-color 0.24s ease, box-shadow 0.24s ease;
}
.gallery-grid figcaption, .svc-photos figcaption{
  transition:background 0.24s ease, padding 0.24s cubic-bezier(.2,.8,.2,1);
}
details{transition:border-color 0.2s ease, background 0.2s ease;}
details summary{transition:color 0.2s ease, padding-left 0.2s cubic-bezier(.2,.8,.2,1);}
.foot-col a{transition:color 0.2s ease, transform 0.2s cubic-bezier(.2,.8,.2,1);}
.foot-social a{transition:transform 0.2s cubic-bezier(.2,.8,.2,1), border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;}
@media (hover:hover) and (pointer:fine){
  .brand:hover img{transform:translateX(3px) scale(1.025); filter:drop-shadow(0 0 8px rgba(0,141,210,0.28));}
  .btn-primary:hover{transform:translateY(-2px); background:#00a3f0; box-shadow:0 10px 22px rgba(0,141,210,0.25);}
  .btn-outline:hover{transform:translateY(-2px); border-color:var(--blue); color:var(--white); box-shadow:inset 4px 0 0 var(--blue);}
  .pillar:hover, .svc-card:hover, .gallery-intro .g-card:hover, .role-card:hover, .app-card:hover{
    transform:translateY(-5px);
    border-color:rgba(0,141,210,0.76);
    box-shadow:0 16px 28px rgba(0,0,0,0.22);
  }
  .pillar:hover::before, .svc-card:hover::before, .gallery-intro .g-card:hover::before, .role-card:hover::before, .app-card:hover::before{transform:scaleX(1);}
  .gallery-grid figure:hover, .svc-photos figure:hover{border-color:var(--blue); box-shadow:0 12px 24px rgba(0,0,0,0.26);}
  .gallery-grid figure:hover figcaption, .svc-photos figure:hover figcaption{padding-bottom:19px; background:linear-gradient(0deg, rgba(11,11,13,0.97), rgba(11,11,13,0.15));}
  details:hover{border-color:rgba(0,141,210,0.75); background:#20242a;}
  details:hover summary{color:var(--blue); padding-left:29px;}
  .foot-col a:hover{transform:translateX(4px); color:var(--blue);}
  .foot-social a:hover{transform:translateY(-3px); border-color:var(--blue); color:var(--blue); box-shadow:0 8px 18px rgba(0,141,210,0.16);}
}

/* Leadership spotlight: editorial composition, alternating visual rhythm, and more deliberate content modules. */
.team-section{padding-top:72px;}
.leader-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(265px,0.78fr) minmax(0,1.7fr);
  gap:0;
  padding:0;
  margin:0 0 44px;
  background:var(--charcoal);
  border:1px solid var(--gunmetal);
  border-top:3px solid var(--blue);
  overflow:hidden;
}
.leader-card--alt{grid-template-columns:minmax(0,1.7fr) minmax(265px,0.78fr);}
.leader-card--alt .leader-photo{order:2;}
.leader-card--alt .leader-info{order:1;}
.leader-photo{
  position:relative;
  min-height:100%;
  overflow:hidden;
  background:var(--jet);
}
.leader-photo img{
  width:100%;
  height:100%;
  min-height:470px;
  aspect-ratio:auto;
  object-fit:cover;
  border:0;
  transition:transform 0.55s cubic-bezier(.2,.8,.2,1), filter 0.55s ease;
}
.leader-photo::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 42%, rgba(11,11,13,0.78) 100%);
  pointer-events:none;
}
.leader-photo--david img{object-position:center top;}
.leader-photo--carl img{object-position:center center;}
.photo-caption{
  position:absolute;
  z-index:1;
  left:24px;
  bottom:22px;
  color:var(--white);
  font-family:'Exo 2',sans-serif;
  font-size:0.72rem;
  font-weight:700;
  line-height:1.45;
  letter-spacing:0.1em;
  text-transform:uppercase;
}
.photo-caption::before{
  content:'';
  display:block;
  width:28px;
  height:2px;
  margin-bottom:9px;
  background:var(--blue);
}
.leader-info{padding:44px 46px 38px;}
.leader-label{
  display:block;
  margin-bottom:8px;
  color:var(--blue);
  font-family:'Exo 2',sans-serif;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.15em;
  text-transform:uppercase;
}
.leader-info h2{font-size:clamp(1.55rem,2.4vw,2rem); margin-bottom:2px;}
.leader-info .role{margin-bottom:22px;}
.leader-story{max-width:720px;}
.leader-info p{font-size:0.97rem; line-height:1.72;}
.leader-tags{margin:22px 0 24px;}
.leader-tags span{
  color:var(--silver);
  border-color:#4b5159;
  transition:transform 0.2s cubic-bezier(.2,.8,.2,1), color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.pull-quote{
  margin:0 0 26px;
  padding:24px 28px 22px;
  background:var(--jet);
  border-left:4px solid var(--blue);
  font-family:'Exo 2',sans-serif;
  font-weight:700;
  color:var(--white);
}
.pull-quote p{margin:0; color:var(--white); font-family:'Exo 2',sans-serif; font-size:clamp(1.05rem,1.8vw,1.34rem); font-weight:700; line-height:1.42;}
.pull-quote cite{display:block; margin-top:14px; color:var(--blue); font-family:'Raleway',sans-serif; font-size:0.72rem; font-style:normal; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;}
.leader-family{
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:22px;
  align-items:center;
  margin-top:0;
  padding:22px 0;
  border-top:1px solid var(--gunmetal);
  border-bottom:1px solid var(--gunmetal);
}
.leader-family img{width:100%; height:116px; object-fit:cover; border:1px solid #4b5159;}
.leader-family p{margin:0; color:var(--silver); font-size:0.88rem; line-height:1.62;}
.leader-family--plain{display:block; padding:20px 0;}
.advice-quote{margin-top:22px; padding-left:18px; font-size:0.95rem; line-height:1.55;}
.advice-quote span{color:var(--silver);}
.team-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:32px;
  margin-top:56px;
  padding:38px 42px;
  text-align:left;
  border-left:3px solid var(--blue);
}
.team-cta .eyebrow{margin-bottom:5px;}
.team-cta h2{font-size:clamp(1.35rem,2vw,1.7rem); margin-bottom:7px;}
.team-cta p{margin:0; max-width:580px;}
@media (hover:hover) and (pointer:fine){
  .leader-card:hover .leader-photo img{transform:scale(1.045); filter:contrast(1.04);}
  .leader-card:hover .leader-tags span{border-color:var(--blue); color:var(--white);}
  .leader-card:hover .leader-tags span:nth-child(2){transition-delay:35ms;}
  .leader-card:hover .leader-tags span:nth-child(3){transition-delay:70ms;}
  .team-cta:hover{transform:translateY(-4px); border-color:var(--blue); box-shadow:0 16px 28px rgba(0,0,0,0.24);}
}
@media (max-width:900px){
  .team-section{padding-top:56px;}
  .leader-card, .leader-card--alt{grid-template-columns:1fr;}
  .leader-card--alt .leader-photo, .leader-card--alt .leader-info{order:initial;}
  .leader-photo{max-width:none; min-height:0;}
  .leader-photo img{height:clamp(320px,72vw,500px); min-height:0;}
  .leader-info{padding:34px 30px 32px;}
  .team-cta{padding:32px 30px;}
}
@media (max-width:620px){
  .leader-info{padding:30px 22px 26px;}
  .leader-family{grid-template-columns:1fr; gap:14px;}
  .leader-family img{height:auto; aspect-ratio:16/9;}
  .pull-quote{padding:20px 18px;}
  .team-cta{display:block; padding:28px 22px;}
  .team-cta .btn{margin-top:22px;}
}
@media (prefers-reduced-motion:reduce){
  *, *::before, *::after{scroll-behavior:auto !important; transition-duration:0.01ms !important; animation-duration:0.01ms !important;}
}
