:root {
  --ink:#11263c; --ink-2:#223f57; --muted:#5e7080; --navy:#091929; --navy-2:#102e42;
  --teal:#17bba9; --teal-dark:#087f79; --line:#dde6ed; --surface:#f5f8fa;
  --white:#fff; --shadow:0 20px 55px rgba(15,43,63,.09);
  --radius:16px; --max:1210px;
  --hero-heading-size:clamp(2.5rem,4.45vw,4.35rem);
  --hero-track-height:clamp(400px,48svh,475px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,'Segoe UI',Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}a:hover{color:var(--teal-dark)}
button,input,textarea,select{font:inherit}button{cursor:pointer}
img,svg{max-width:100%}img{display:block}p{margin:0 0 1.2rem}
h1,h2,h3,h4{line-height:1.14;letter-spacing:-.035em;margin:0 0 1rem}h1{font-size:clamp(2.8rem,5.3vw,5rem);font-weight:720}h2{font-size:clamp(2rem,3.4vw,3.3rem);font-weight:690}h3{font-size:1.3rem}h4{font-size:1.05rem}
.container{max-width:var(--max);margin:0 auto;padding:0 30px}
.skip-link{position:absolute;left:12px;top:-80px;background:#fff;padding:10px 16px;z-index:1000}.skip-link:focus{top:12px}
:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.eyebrow{font-size:.72rem;letter-spacing:.21em;font-weight:760;text-transform:uppercase;color:var(--teal-dark)}
.eyebrow--light{color:#69ded0}
.lead{font-size:1.17rem;line-height:1.75;color:#536a7e;max-width:690px}
.section{padding:108px 0}.audience-bar+.section{padding-top:64px}.section--muted{background:var(--surface)}
.section-top{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:42px}.section-top h2{max-width:740px;margin:12px 0 0}
.section-subcopy{max-width:610px;color:var(--muted)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;border-radius:5px;min-height:50px;padding:0 24px;font-size:.91rem;font-weight:680;border:1px solid transparent;transition:background .2s,transform .2s,border-color .2s,color .2s;white-space:nowrap}
.button:hover{transform:translateY(-2px)}.button--primary{background:var(--teal);color:#062a2a}.button--primary:hover{background:#48d5c5;color:#062a2a}.button--outline{border-color:#b8c6d0;color:var(--ink);background:#fff}.button--outline:hover{border-color:var(--teal-dark);color:var(--teal-dark)}.button--ghost{color:#fff;border:1px solid #7794a8;background:transparent}.button--ghost:hover{color:#fff;border-color:#fff}
.link-arrow{display:inline-flex;align-items:center;gap:12px;color:var(--teal-dark);font-size:.94rem;font-weight:700;transition:gap .2s}.link-arrow:hover{gap:17px}
.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);border-bottom:1px solid rgba(17,47,67,.09);backdrop-filter:blur(12px)}
.header-inner{height:84px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.brand{display:flex;align-items:center;gap:13px;min-width:275px}.brand:hover{color:var(--ink)}
.brand-mark{width:49px;height:49px;display:grid;place-items:center;background:var(--navy);color:#fff;clip-path:polygon(0 0,100% 0,100% 79%,79% 100%,0 100%);font-weight:780;font-size:1.15rem;letter-spacing:-.065em;position:relative}
.brand-mark:after{content:'';position:absolute;bottom:5px;right:5px;width:11px;height:2px;background:var(--teal);transform:rotate(-45deg)}
.brand-text{display:flex;flex-direction:column;line-height:1.14}.brand-text strong{font-size:1.02rem;letter-spacing:-.02em}.brand-text small{color:#587185;font-weight:570;letter-spacing:.11em;font-size:.56rem;margin-top:7px}
.nav{display:flex;align-items:center;gap:27px}.nav a{font-size:.84rem;font-weight:640;color:#354c5e;position:relative;white-space:nowrap}.nav a:hover,.nav a[aria-current="page"]{color:var(--teal-dark)}.nav a[aria-current="page"]:after{content:'';position:absolute;height:2px;background:var(--teal);bottom:-10px;left:0;right:0}
.nav .nav-contact{background:var(--navy);color:#fff;padding:12px 17px;border-radius:5px}.nav .nav-contact:hover{background:var(--navy-2);color:#fff}.nav .nav-contact[aria-current="page"]:after{display:none}
.menu-toggle{display:none;border:1px solid var(--line);background:#fff;border-radius:6px;width:45px;height:43px;align-items:center;justify-content:center;font-size:1.3rem;color:var(--ink)}
/* Home carousel */
.hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hero:after{content:'';position:absolute;pointer-events:none;inset:0;background:linear-gradient(90deg,rgba(5,19,32,0) 64%,rgba(12,58,73,.18)),repeating-linear-gradient(90deg,transparent 0 100px,rgba(255,255,255,.019) 100px 101px)}
.hero-track{position:relative;height:var(--hero-track-height)}
.hero-slide{position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .7s ease,visibility .7s ease}
.hero-slide.is-active{opacity:1;visibility:visible;pointer-events:auto}
.hero-slide--two{background:radial-gradient(circle at 80% 52%,#164b5c 0,#091929 57%)}
.hero-slide--three{background:radial-gradient(circle at 90% 42%,#183e50 0,#091929 59%)}
.hero-slide-inner{height:100%;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,.96fr);align-items:center;position:relative;z-index:2}
.hero-copy{padding:7px 0;max-width:645px}.hero-copy h1{margin:8px 0 11px;line-height:1.07;font-size:var(--hero-heading-size)}.hero-copy p{max-width:560px;color:#bed0dc;font-size:1rem;line-height:1.5;margin:0 0 14px}.hero-buttons{display:flex;flex-wrap:wrap;gap:12px}
.hero-visual{height:100%;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-visual::before{content:'';position:absolute;border-radius:50%;width:510px;height:510px;border:1px solid rgba(75,167,183,.22);box-shadow:0 0 0 75px rgba(27,95,118,.08),0 0 0 155px rgba(35,94,111,.05);top:50%;left:52%;transform:translate(-50%,-50%)}
.hero-visual img{width:min(550px,115%);opacity:.87;filter:drop-shadow(0 0 20px rgba(11,166,172,.1));position:relative}
.hero-chip{position:absolute;padding:13px 17px;background:rgba(8,32,49,.89);border:1px solid rgba(103,187,198,.33);backdrop-filter:blur(10px);border-radius:7px;font-size:.7rem;letter-spacing:.13em;color:#cfe9ec;text-transform:uppercase;line-height:1.9;box-shadow:var(--shadow)}
.hero-chip strong{display:block;color:#fff;letter-spacing:.04em;font-size:.92rem}.hero-chip--top{top:23%;right:1%}.hero-chip--bottom{bottom:21%;left:2%}
.hero-controls{position:relative;z-index:5;min-height:44px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}
.hero-dots{display:flex;gap:9px;align-items:center;pointer-events:auto}.hero-dot{width:29px;height:4px;padding:0;border:0;background:rgba(255,255,255,.26);border-radius:2px;transition:background .2s,width .2s}.hero-dot[aria-current="true"]{width:49px;background:var(--teal)}
.hero-arrows{display:flex;gap:8px;pointer-events:auto}.hero-arrow{width:40px;height:40px;border:1px solid rgba(255,255,255,.29);background:rgba(255,255,255,.08);border-radius:4px;color:#fff;font-size:1.2rem}.hero-arrow:hover{background:rgba(255,255,255,.18)}
/* Home content */
.audience-bar{background:#f0f6f8;border-bottom:1px solid var(--line)}.audience-inner{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-top:24px;padding-bottom:24px}.audience-inner strong{font-size:.86rem;letter-spacing:.09em;text-transform:uppercase}.audience-inner span{display:flex;gap:11px;align-items:center;font-size:.9rem;color:#456176}.audience-inner span:before{content:'';height:6px;width:6px;flex:0 0 6px;border-radius:50%;background:var(--teal-dark)}
.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:19px}
.service-card{border:1px solid var(--line);border-radius:12px;padding:30px 27px 28px;min-height:324px;display:flex;flex-direction:column;background:#fff;box-shadow:0 6px 30px rgba(30,58,77,.025);transition:transform .2s,box-shadow .2s,border-color .2s}
.service-card:hover{transform:translateY(-5px);border-color:#b7d8d7;box-shadow:var(--shadow)}
.service-icon{height:49px;width:49px;border:1px solid #bfe5e1;border-radius:8px;background:#effbfa;display:flex;align-items:center;justify-content:center;margin-bottom:28px;color:var(--teal-dark)}.service-icon svg{width:25px;height:25px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.service-card h3{font-size:1.22rem}.service-card p{color:var(--muted);font-size:.91rem;line-height:1.68;flex:1}.service-card a{margin-top:16px}
.split{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.split-copy p{color:var(--muted)}
.info-visual{position:relative;min-height:438px;background:linear-gradient(135deg,#14364c,#081c2e);border-radius:12px;overflow:hidden;padding:44px;color:white;display:flex;align-items:end}
.info-visual:before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(104,164,182,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(104,164,182,.14) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(135deg,#000,transparent)}
.info-visual:after{content:'';position:absolute;right:-115px;top:-106px;border:1px solid rgba(23,187,169,.5);border-radius:50%;width:400px;height:400px;box-shadow:0 0 0 44px rgba(24,187,169,.05),0 0 0 90px rgba(24,187,169,.06),0 0 0 155px rgba(24,187,169,.025)}
.info-visual-content{position:relative;z-index:2}.info-visual-content small{letter-spacing:.2em;text-transform:uppercase;color:#6edde0;font-size:.68rem}.info-visual-content strong{display:block;font-size:2rem;line-height:1.15;letter-spacing:-.04em;margin-top:14px;max-width:295px}
.info-visual .visual-coordinate{position:absolute;top:32px;left:40px;color:#7ba8bb;font-size:.67rem;letter-spacing:.1em}
.metric-line{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);margin-top:30px;padding-top:20px;gap:15px}.metric-line div{font-size:.85rem;font-weight:650;line-height:1.5}.metric-line span{display:block;color:var(--muted);font-weight:450}
.relationship-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.relationship-card{padding:34px;border-radius:12px;background:#fff;border:1px solid var(--line)}.relationship-number{display:block;color:var(--teal-dark);font-weight:800;font-size:.73rem;margin-bottom:24px}.relationship-card p{color:var(--muted);font-size:.93rem;margin:0}
.cta-band{background:#0a2336;color:#fff;padding:65px 0;position:relative;overflow:hidden}.cta-band:after{content:'';position:absolute;width:400px;height:400px;border:1px solid rgba(69,215,202,.14);border-radius:50%;top:-270px;right:0;box-shadow:0 0 0 65px rgba(69,215,202,.07),0 0 0 130px rgba(69,215,202,.04)}.cta-band .container{display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;z-index:1}.cta-band h2{font-size:clamp(1.8rem,3vw,2.8rem);max-width:650px;margin:8px 0 0}.cta-band p{color:#b1c8d8;margin:0}
/* Interior pages */
.page-hero{background:linear-gradient(125deg,#0a2133,#12384e);color:#fff;min-height:calc(var(--hero-track-height) + 44px);padding:36px 0;display:flex;align-items:center;position:relative;overflow:hidden}
.page-hero:after{content:'';position:absolute;right:-100px;top:-185px;width:570px;height:570px;border:1px solid rgba(77,211,202,.18);border-radius:50%;box-shadow:0 0 0 85px rgba(59,180,176,.045),0 0 0 185px rgba(59,180,176,.025)}
.page-hero .container{position:relative;z-index:1;width:100%}.page-hero h1{font-size:var(--hero-heading-size);line-height:1.07;max-width:950px;margin:10px 0 14px}.page-hero p{color:#c0d5e1;max-width:740px;font-size:1.05rem;line-height:1.6;margin:0}
.breadcrumb{font-size:.79rem;color:#b9ccda;margin-bottom:22px}.breadcrumb a{color:#93dee0}.breadcrumb a:hover{color:#fff}.breadcrumb span{padding:0 12px;color:#7095ab}
.profile-grid{display:grid;grid-template-columns:.77fr 1.23fr;gap:9%;align-items:center}
.portrait-wrap{background:linear-gradient(130deg,#e8f2f5,#f8fbfc);border:1px solid var(--line);border-radius:16px;min-height:460px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.portrait-wrap:before{content:'';position:absolute;width:340px;height:340px;border:1px solid #b6dcd9;border-radius:50%;box-shadow:0 0 0 42px rgba(29,171,160,.07),0 0 0 92px rgba(29,171,160,.05)}
.portrait{width:255px;height:255px;border-radius:50%;border:8px solid #fff;box-shadow:0 16px 46px rgba(14,54,78,.14);display:grid;place-items:center;position:relative;z-index:1;background:#dce9ed;color:#527284;text-align:center;font-size:.91rem;overflow:hidden}.portrait img{width:100%;height:100%;object-fit:cover}.portrait-placeholder{display:grid;place-items:center;gap:10px;padding:20px}.portrait-placeholder svg{width:55px;color:#8baeb9}
.profile-note{position:absolute;bottom:25px;font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;color:#7093a1;z-index:2}
.prose p{color:var(--muted)}.prose .lead{color:#3c566a}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.value-card{padding:30px;border:1px solid var(--line);background:#fff;border-radius:10px}.value-card .count{font-weight:780;color:var(--teal-dark);display:block;margin-bottom:28px}.value-card p{color:var(--muted);font-size:.91rem;margin-bottom:0}
.service-detail{display:grid;grid-template-columns:290px minmax(0,1fr);gap:8%;border-top:1px solid var(--line);padding:52px 0;scroll-margin-top:110px}.service-detail:last-child{border-bottom:1px solid var(--line)}.service-detail .detail-index{font-size:.74rem;font-weight:740;letter-spacing:.16em;color:var(--teal-dark)}.service-detail h2{font-size:clamp(1.6rem,2.3vw,2.1rem);margin-top:13px}.detail-body p{color:var(--muted)}.pill-list{display:flex;flex-wrap:wrap;gap:9px;padding:0;margin:26px 0 0;list-style:none}.pill-list li{font-size:.84rem;color:#415d70;border:1px solid #d4e3e9;background:#f7fafb;border-radius:100px;padding:8px 15px}
.notice{border-left:3px solid var(--teal);padding:15px 20px;background:#f0f8f8;color:#536e7f;font-size:.88rem;border-radius:0 5px 5px 0}
.affiliation-section{margin-bottom:70px}.affiliation-section h2{font-size:2rem;margin-bottom:12px}.affiliation-section>p{color:var(--muted);max-width:720px}
.placeholder-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;margin-top:26px}.placeholder-tile{min-height:165px;border:1px dashed #b7cbd5;border-radius:10px;background:#f8fbfc;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:9px;color:#6a8290;padding:24px}.placeholder-tile svg{width:30px;height:30px;color:#8aa7b4}.placeholder-tile strong{color:#3d576a;font-size:.91rem}.placeholder-tile small{font-size:.78rem}
.contact-grid{display:grid;grid-template-columns:.77fr 1.23fr;gap:8%;align-items:start}.contact-panel{border-radius:12px;background:#0b283c;color:#fff;padding:36px;position:sticky;top:115px}.contact-panel h2{font-size:2rem}.contact-panel p{color:#bdcfd9}.contact-item{padding:22px 0;border-top:1px solid rgba(205,231,235,.16)}.contact-item .eyebrow{display:block;color:#83d9d1;margin-bottom:6px}.contact-item strong{display:block;font-size:1rem;font-weight:600;overflow-wrap:anywhere}.contact-item span{font-size:.86rem;color:#b4c6d1}
.form-card{border:1px solid var(--line);border-radius:12px;padding:39px;background:#fff;box-shadow:0 10px 35px rgba(27,62,84,.045)}.form-card h2{font-size:2rem}.form-card>p{color:var(--muted)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:19px}.field label{font-size:.84rem;font-weight:700;color:#264559}.field input,.field textarea,.field select{width:100%;border:1px solid #ccd9e1;border-radius:5px;padding:12px 14px;background:#fff;color:#132d41;outline:none;transition:border-color .2s,box-shadow .2s;min-height:46px}.field textarea{min-height:152px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--teal-dark);box-shadow:0 0 0 3px rgba(23,187,169,.12)}.field label em{font-style:normal;color:#ba5050}
.response-note{margin:5px 0 0;font-size:.84rem;line-height:1.55;color:#526d7d}.response-note strong{font-weight:700;color:#264559}
.field-checkbox{display:flex;gap:11px;align-items:start;color:#526d7d;font-size:.83rem;margin-bottom:21px}.field-checkbox input{margin-top:4px;accent-color:var(--teal-dark)}.form-footnote{font-size:.79rem;color:#697d8d;margin:12px 0 0}.form-status{padding:14px 16px;border-radius:6px;margin:0 0 20px;font-size:.9rem;background:#fff5e8;color:#85561a;border:1px solid #f4d9af}.form-status.success{background:#eaf9f1;color:#155d42;border-color:#b9e5c8}.form-status.error{background:#fff0ee;color:#a13b35;border-color:#f6c7c1}
.honeypot{position:absolute!important;left:-9999px!important;opacity:0!important;width:1px!important;height:1px!important;overflow:hidden!important}
.footer{background:#071723;color:#ccdae4;padding:64px 0 0}.footer-grid{display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:55px;padding-bottom:55px}.footer .brand-text strong{color:#fff}.footer .brand-text small{color:#8ba8b6}.footer .brand-mark{background:#12374c}.footer-about{max-width:400px;color:#8da9b8;font-size:.89rem;margin-top:21px}.footer h4{color:#fff;letter-spacing:.01em;margin:3px 0 18px}.footer a{color:#a9c1cf;display:block;margin-bottom:10px;font-size:.89rem}.footer a:hover{color:#56d9cf}.footer-bottom{border-top:1px solid #203a4a;padding:23px 0;display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:.78rem;color:#7c9cab}.footer-bottom a{display:inline;color:#b7ccd6;margin:0}
.sitemap-list{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;max-width:770px}.sitemap-list a{display:block;padding:20px 22px;border:1px solid var(--line);border-radius:7px;font-weight:640}.sitemap-list a:hover{border-color:var(--teal)}
@media(max-width:1120px){.nav{gap:16px}.nav a{font-size:.78rem}.brand{min-width:240px}.service-grid{grid-template-columns:repeat(2,1fr)}.hero-chip--top{right:0}.audience-inner{flex-wrap:wrap;justify-content:flex-start}.audience-inner strong{flex:1 1 100%}}
@media(max-width:880px){:root{--hero-heading-size:clamp(2.35rem,5.5vw,3.65rem);--hero-track-height:clamp(400px,49svh,460px)}.container{padding:0 24px}.header-inner{height:75px}.menu-toggle{display:flex}.nav{display:none;position:absolute;top:75px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:18px 24px 26px;box-shadow:0 20px 25px rgba(11,28,43,.09);flex-direction:column;align-items:stretch;gap:0}.nav.open{display:flex}.nav a{font-size:.93rem;padding:11px 2px}.nav a[aria-current="page"]:after{display:none}.nav .nav-contact{text-align:center;margin-top:14px}.hero-slide-inner{grid-template-columns:1fr}.hero-copy{position:relative;z-index:2;padding:18px 0 12px;max-width:590px}.hero-visual{position:absolute;inset:0 0 0 26%;opacity:.35}.hero-visual img{min-width:550px}.hero-chip{display:none}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#091929 2%,rgba(9,25,41,.87) 48%,rgba(9,25,41,.3));z-index:2;pointer-events:none}.hero-controls{z-index:6}.section{padding:80px 0}.split,.profile-grid,.contact-grid{gap:40px}.service-detail{grid-template-columns:215px 1fr;gap:30px}.footer-grid{gap:25px}}
@media(max-width:650px){:root{--hero-heading-size:clamp(2rem,8.8vw,2.8rem);--hero-track-height:clamp(445px,56svh,500px)}.container{padding:0 20px}.brand{min-width:0}.brand-mark{width:44px;height:44px;font-size:1.07rem}.brand-text strong{font-size:.87rem}.brand-text small{font-size:.5rem;letter-spacing:.075em}.hero-copy{padding:16px 0 10px}.hero-copy h1{margin:7px 0 10px;line-height:1.05}.hero-copy p{line-height:1.42;margin-bottom:13px}.hero-copy p{font-size:.94rem}.hero-visual{left:0;opacity:.18}.hero-buttons{gap:7px}.hero-buttons .button{min-height:44px}.button{padding:0 17px;font-size:.83rem;min-height:48px}.hero-controls{min-height:44px}.section{padding:66px 0}.section-top{display:block;margin-bottom:28px}.section-top .link-arrow{margin-top:24px}.service-grid,.split,.relationship-grid,.value-grid,.profile-grid,.contact-grid,.placeholder-grid,.sitemap-list{grid-template-columns:1fr}.service-card{min-height:270px}.info-visual{min-height:350px}.page-hero{padding:30px 0}.breadcrumb{margin-bottom:16px}.profile-grid{gap:35px}.portrait-wrap{min-height:355px}.portrait{width:215px;height:215px}.service-detail{display:block;padding:40px 0}.service-detail h2{margin-bottom:20px}.service-detail .detail-index{margin-bottom:0}.cta-band .container{display:block}.cta-band .button{margin-top:25px}.metric-line{grid-template-columns:1fr;gap:14px}.contact-panel{position:static}.form-card{padding:25px 20px}.field-row{grid-template-columns:1fr;gap:0}.footer{padding-top:54px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px}.footer-grid>:first-child{grid-column:1/-1}.footer-bottom{align-items:start;flex-direction:column}.audience-inner{gap:14px}.audience-inner span{font-size:.84rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Compact homepage introduction: show the beginning of services above the fold. */
.home .audience-inner{padding-top:16px;padding-bottom:16px}
.home .audience-bar+.section{padding-top:40px}

/* Approved TGC logo: authentic artwork, two optimized sizes, one home link. */
.header .brand {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.header .brand-logo {
  display: block;
  flex: 0 0 auto;
  width: clamp(88px, 7.8vw, 118px);
  height: auto;
  aspect-ratio: 1079 / 505;
  object-fit: contain;
  border-radius: 3px;
}
.header .brand-text { min-width: 0; }
.footer .brand {
  display: inline-block;
  min-width: 0;
  max-width: 100%;
  margin: 0;
}
.footer .brand-logo {
  display: block;
  width: min(100%, 350px);
  height: auto;
  aspect-ratio: 1161 / 640;
  border-radius: 5px;
}
@media (max-width: 1120px) {
  .header .brand { gap: 8px; }
  .header .brand-logo { width: clamp(88px, 8.3vw, 108px); }
}
@media (max-width: 650px) {
  .header-inner { gap: 10px; }
  .header .brand-logo { width: clamp(83px, 24vw, 104px); }
  .header .brand-text strong { font-size: .8rem; }
  .header .brand-text small { font-size: .43rem; letter-spacing: .035em; }
  .footer .brand-logo { width: min(100%, 320px); }
}
@media (max-width: 375px) {
  .header .brand-text { display: none; }
  .header .brand-logo { width: 120px; }
}


/* V1.1 — edge-to-edge editorial split carousel. Approved art and 5s timing retained. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.home .hero:before,.home .hero:after{display:none}
.hero--split{background:#071b2b}
.hero-slide--feature{background:#091929}
.hero-feature-grid{height:100%;width:100%;display:grid;grid-template-columns:minmax(0,min(50%,calc(var(--hero-track-height) * 1.777))) minmax(0,1fr)}
.hero-feature-media{position:relative;min-width:0;overflow:hidden;background:#092136}
.hero-feature-media:before{content:"";position:absolute;inset:-30px;background-image:linear-gradient(90deg,rgba(2,17,30,.12),rgba(4,23,35,.5)),var(--slide-image);background-position:center;background-size:cover;filter:blur(19px) brightness(.55);opacity:.7}
.hero-art-link{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:flex-start;overflow:hidden}
.hero-art-link picture{height:100%;width:100%;display:flex;align-items:center;justify-content:flex-start}
.hero-art{display:block;height:100%;width:100%;max-width:none;object-fit:contain;object-position:left center}
.hero-feature-media:after{content:"";position:absolute;z-index:2;right:-1px;top:0;bottom:0;width:min(8%,74px);background:linear-gradient(90deg,transparent,rgba(7,26,43,.72));pointer-events:none}
.hero-feature-panel{position:relative;min-width:0;height:100%;padding:clamp(22px,2.4vw,38px) clamp(22px,2.8vw,52px) 20px;background:radial-gradient(ellipse at 68% 55%,#123a4c 0%,#0b2b3d 44%,#071b2b 95%);display:flex;flex-direction:column;justify-content:space-between;isolation:isolate;overflow:hidden}
.hero-feature-panel:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(101,168,188,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(101,168,188,.08) 1px,transparent 1px);background-size:53px 53px;mask-image:linear-gradient(135deg,transparent 5%,#000 50%,transparent 100%)}
.hero-feature-panel:after{content:"";position:absolute;z-index:-1;top:50%;left:58%;width:440px;height:440px;transform:translate(-50%,-50%);border-radius:50%;border:1px solid rgba(75,167,183,.22);box-shadow:0 0 0 60px rgba(33,101,122,.065),0 0 0 123px rgba(33,101,122,.04);pointer-events:none}
.hero-panel-diagram{position:absolute;top:15%;right:-8%;bottom:10%;left:8%;z-index:-1;display:flex;align-items:center;justify-content:center;opacity:.43;pointer-events:none}
.hero-panel-diagram img{width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 0 14px rgba(27,161,180,.16))}
.hero-panel-heading{position:relative;z-index:2;max-width:430px;text-shadow:0 1px 12px #071a2b}
.hero-panel-heading .eyebrow{font-size:.64rem;letter-spacing:.18em}
.hero-panel-heading h2{font-size:clamp(1.4rem,2.2vw,2.2rem);line-height:1.12;margin:10px 0 9px;letter-spacing:-.035em;color:#fff}
.hero-slide:not(.hero-slide--environments) .hero-panel-heading h2{margin-top:0}
.hero-panel-heading p{max-width:355px;line-height:1.48;color:#cee0ea;font-size:.88rem;margin:0}
.hero-heading-mobile{display:none}
.hero-chip--feature-top{top:49%;right:5%;padding:10px 15px;font-size:.6rem}
.hero-chip--feature-top strong{font-size:.77rem}
.hero-chip--feature-bottom{bottom:24%;left:6%;padding:10px 15px;font-size:.6rem}
.hero-chip--feature-bottom strong{font-size:.77rem}
.hero-panel-buttons{position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:9px}
.hero-panel-buttons .button{min-height:44px;font-size:.79rem;padding:0 16px}
.hero-panel-buttons .button--ghost{border-color:#809aab;background:rgba(4,22,38,.35)}
.hero-controls--wide{width:100%;max-width:none;min-height:44px;padding:0 clamp(18px,3vw,56px);background:#071b2b}
.hero-controls--wide .hero-dots,.hero-controls--wide .hero-arrows{flex:initial}
.hero-controls--wide .hero-arrows{justify-content:flex-end}
@media (min-width:1500px){
 .hero-panel-diagram{right:3%}
 .hero-chip--feature-top{right:9%}
}
@media (max-width:1199px) and (min-width:901px){
 .hero-feature-grid{grid-template-columns:minmax(0,50%) minmax(0,50%)}
 .hero-feature-panel{padding:24px 22px 18px}
 .hero-panel-heading h2{font-size:1.65rem}
 .hero-panel-heading p{font-size:.83rem}
 .hero-chip--feature-top{right:3%}
 .hero-chip--feature-bottom{left:3%}
 .hero-panel-buttons .button{padding:0 12px;font-size:.75rem}
}
@media (max-width:900px) and (min-width:651px){
 .hero-feature-grid{grid-template-columns:minmax(0,54%) minmax(0,46%)}
 .hero-feature-panel{padding:25px 19px 17px}
 .hero-panel-heading h2{font-size:1.55rem}
 .hero-panel-heading p{font-size:.8rem}
 .hero-chip--feature-top{right:3%;top:54%;padding:8px}
 .hero-chip--feature-bottom{left:3%;bottom:24%;padding:8px}
 .hero-chip strong{font-size:.7rem}
 .hero-panel-buttons .button{padding:0 11px;font-size:.73rem}
}
@media(max-width:650px){
 .hero-feature-grid{display:flex;flex-direction:column}
 .hero-feature-media{height:51%;flex:0 0 51%}
 .hero-feature-media:before{display:none}
 .hero-feature-media:after{width:100%;height:35px;top:auto;bottom:0;background:linear-gradient(0deg,#0a2639,transparent)}
 .hero-art-link,.hero-art-link picture{justify-content:center}
 .hero-art{object-fit:cover;object-position:center 51%}
 .hero-feature-panel{flex:1;min-height:0;padding:16px 20px 14px;background:linear-gradient(145deg,#0c3042,#071b2b)}
 .hero-feature-panel:after{width:220px;height:220px;left:82%;top:54%}
 .hero-panel-diagram{top:0;left:38%;right:-10%;bottom:0;opacity:.18}
 .hero-panel-heading{max-width:100%}
 .hero-panel-heading h2{font-size:clamp(1.35rem,6vw,1.8rem);margin:5px 0 4px}
 .hero-heading-desktop{display:none}
 .hero-heading-mobile{display:inline}
 .hero-panel-heading p{font-size:.81rem;max-width:350px;line-height:1.38}
 .hero-panel-heading .eyebrow{font-size:.58rem}
 .hero-chip--feature-top,.hero-chip--feature-bottom{display:none}
 .hero-panel-buttons{gap:7px;flex-wrap:nowrap}
 .hero-panel-buttons .button{min-height:40px;font-size:.72rem;padding:0 10px;gap:6px;white-space:nowrap}
 .hero-controls--wide{padding:0 18px}
}
@media(max-width:355px){
 .hero-feature-media{height:49%;flex-basis:49%}
 .hero-feature-panel{padding:12px 14px}
 .hero-panel-heading p{font-size:.76rem}
 .hero-panel-buttons .button{font-size:.68rem;padding:0 8px}
}

/* Version 1.2: reverse only Engineering slide on horizontal layouts. */
@media (min-width:651px) {
  .hero-slide--reverse .hero-feature-grid {grid-template-columns:minmax(0,1fr) minmax(0,min(50%,calc(var(--hero-track-height) * 1.777)))}
  .hero-slide--reverse .hero-feature-panel {grid-column:1;grid-row:1}
  .hero-slide--reverse .hero-feature-media {grid-column:2;grid-row:1}
  .hero-slide--reverse .hero-feature-media:after {left:-1px;right:auto;background:linear-gradient(90deg,rgba(7,26,43,.72),transparent)}
  .hero-slide--reverse .hero-art-link,
  .hero-slide--reverse .hero-art-link picture {justify-content:flex-end}
  .hero-slide--reverse .hero-art {object-position:right center}
}
@media (min-width:651px) and (max-width:900px) {
  .hero-slide--reverse .hero-feature-grid {grid-template-columns:minmax(0,46%) minmax(0,54%)}
}
@media (min-width:901px) and (max-width:1199px) {
  .hero-slide--reverse .hero-feature-grid {grid-template-columns:minmax(0,50%) minmax(0,50%)}
}

/* V1.3 — fourth carousel tile montage, maintaining the approved split size. */
.hero-slide--environments .hero-art {object-fit:cover;}
@media(max-width:650px){
  .hero-slide--environments .hero-art {object-position:center;}
  .hero-slide--environments .hero-panel-heading p {font-size:.77rem;}
}
#client-environments {scroll-margin-top:86px;}

.sector-grid {grid-template-columns:repeat(4,minmax(0,1fr));}
@media(max-width:1050px){.sector-grid {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:650px){.sector-grid {grid-template-columns:1fr;}}

/* Version 1.6: restore the original Slide 4 montage without cropping or skewing.
   Fit the artwork to the carousel height, reserving enough horizontal room
   for all four panels and their original angled captions. */
@media (min-width:651px) {
  .hero-slide--environments .hero-feature-grid {
    grid-template-columns: minmax(0,1fr) minmax(0,min(58%,calc(var(--hero-track-height) * 1.785)));
  }
}
.hero-slide--environments .hero-feature-media {
  background:#091b30;
}
.hero-slide--environments .hero-feature-media::after {
  display:none;
}
.hero-slide--environments .hero-art {
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  transform:none;
}
@media (max-width:650px) {
  .hero-slide--environments .hero-feature-media {
    background:#091b30;
  }
  .hero-slide--environments .hero-art {
    object-fit:contain;
    object-position:center center;
  }
}

/* Version 1.7 — approved Slide 4: restored photo-collage composition, live buttons and copy.
   A single four-panel crop keeps the original artwork, labels, and equal right-angle tiles intact. */
.hero-slide--environments .hero-feature-grid {
  display:grid;
  grid-template-columns:minmax(0,51%) minmax(0,49%);
}
.hero-slide--environments .hero-feature-panel {
  grid-column:1;
  grid-row:1;
  padding:clamp(20px,2.25vw,38px) clamp(22px,2.7vw,54px) clamp(18px,2vw,32px);
  background:#052135;
  justify-content:space-between;
  gap:12px;
}
.hero-slide--environments .hero-feature-panel:before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  opacity:.48;
  background:url('../img/carousel-04-nodes.webp') left center/cover no-repeat;
  -webkit-mask-image:none;
  mask-image:none;
}
.hero-slide--environments .hero-feature-panel:after,
.hero-slide--environments .hero-panel-diagram,
.hero-slide--environments .hero-chip {display:none}
.hero-slide--environments .hero-panel-heading {max-width:none}
.hero-slide--environments .hero-panel-heading h2 {
  font-size:clamp(1.75rem,2.25vw,2.6rem);
  letter-spacing:-.035em;
  line-height:1.13;
  margin:0 0 18px;
}
.hero-slide--environments .hero-panel-heading p {
  max-width:690px;
  font-size:clamp(.9rem,1.13vw,1.12rem);
  line-height:1.58;
  color:#e0edf3;
}
.hero-slide--environments .hero-feature-media {
  grid-column:2;
  grid-row:1;
  background:#051c30;
}
.hero-slide--environments .hero-feature-media:before,
.hero-slide--environments .hero-feature-media:after {display:none}
.hero-slide--environments .hero-art-link,
.hero-slide--environments .hero-art-link picture {justify-content:center;align-items:center}
.hero-slide--environments .hero-art {
  width:100%;height:100%;object-fit:contain;object-position:center;
  display:block;transform:none;
}
.environment-sectors {
  position:relative;z-index:2;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:stretch;
  width:100%;
  max-width:750px;
}
.environment-sector {
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:2px 3px;
  color:#e7f7ff;
  font-size:clamp(.59rem,.83vw,.9rem);
  letter-spacing:.045em;
  font-weight:750;
  text-transform:uppercase;
  text-align:center;
  text-shadow:0 0 12px rgba(42,218,241,.35);
}
.environment-sector + .environment-sector {border-left:1px solid rgba(67,200,217,.42)}
.environment-sector svg {width:clamp(30px,3vw,49px);height:clamp(30px,3vw,49px);stroke:#73deef;stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px rgba(60,220,235,.3))}
@media (max-width:900px) and (min-width:651px) {
  .hero-slide--environments .hero-feature-grid {grid-template-columns:minmax(0,52%) minmax(0,48%)}
  .hero-slide--environments .hero-feature-panel {padding:18px 20px}
  .hero-slide--environments .hero-panel-heading h2 {font-size:clamp(1.35rem,2.9vw,1.9rem);margin-bottom:9px}
  .hero-slide--environments .hero-panel-heading p {font-size:.79rem;line-height:1.5}
  .environment-sector {font-size:.59rem}
  .environment-sector svg {width:28px;height:28px}
}
@media(max-width:650px){
  .hero-slide--environments .hero-feature-grid {display:flex;flex-direction:column}
  .hero-slide--environments .hero-feature-media {height:48%;flex:0 0 48%}
  .hero-slide--environments .hero-feature-panel {flex:1;min-height:0;padding:12px 17px;gap:8px}
  .hero-slide--environments .hero-panel-heading h2 {font-size:clamp(1.27rem,5.8vw,1.72rem);margin:0 0 4px}
  .hero-slide--environments .hero-panel-heading p {font-size:.78rem;line-height:1.36}
  .environment-sector {font-size:.6rem;gap:2px}
  .environment-sector svg {width:25px;height:25px}
}
@media(max-width:360px){
  .hero-slide--environments .hero-feature-panel {padding:9px 12px;gap:5px}
  .hero-slide--environments .hero-panel-heading p {font-size:.72rem}
  .environment-sector {font-size:.53rem}
  .environment-sector svg {width:23px;height:23px}
}

/* V2.0: restore complete footer navigation in a shorter, tighter layout. */
.footer.footer--balanced {
  padding: 21px 0 0;
  background: #071723;
  border-top: 1px solid rgba(157, 199, 215, .14);
}
.footer--balanced .footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 2.15fr) minmax(0, .88fr) minmax(0, .85fr);
  align-items: start;
  gap: clamp(22px, 3vw, 46px);
  padding-bottom: 17px;
}
.footer--balanced .footer-grid > div:first-child {
  display: flex;
  align-items: center;
  gap: 19px;
  min-width: 0;
}
.footer--balanced .brand {
  display: block;
  flex: 0 0 auto;
  min-width: 0;
  margin: 0;
}
.footer--balanced .brand-logo {
  display: block;
  width: clamp(130px, 11.2vw, 170px);
  height: auto;
  border-radius: 4px;
}
.footer--balanced .footer-about {
  min-width: 0;
  max-width: 330px;
  margin: 0;
  color: #a8bfcc;
  font-size: .78rem;
  line-height: 1.52;
}
.footer--balanced h4 {
  margin: 1px 0 9px;
  color: #f0f5f8;
  font-size: .87rem;
  line-height: 1.2;
}
.footer--balanced .footer-grid > div:nth-child(n+2) a {
  display: block;
  width: fit-content;
  margin: 0 0 5px;
  color: #b5cbd7;
  font-size: .79rem;
  line-height: 1.32;
}
.footer--balanced .footer-grid a:hover { color: #56d9cf; }
.footer--balanced .footer-bottom {
  padding: 11px 0 13px;
  gap: 10px 25px;
  font-size: .73rem;
  line-height: 1.4;
}
@media (max-width: 850px) {
  .footer--balanced .footer-grid {
    grid-template-columns: minmax(0, 1.6fr) minmax(0, .85fr) minmax(0, .7fr);
    gap: 18px;
  }
  .footer--balanced .footer-grid > div:first-child { gap: 12px; }
  .footer--balanced .brand-logo { width: 115px; }
  .footer--balanced .footer-about { font-size: .72rem; line-height: 1.4; }
}
@media (max-width: 700px) {
  .footer.footer--balanced { padding-top: 18px; }
  .footer--balanced .footer-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 16px 22px;
    padding-bottom: 13px;
  }
  .footer--balanced .footer-grid > div:first-child {
    grid-column: 1 / -1;
    align-items: center;
    gap: 15px;
  }
  .footer--balanced .brand-logo { width: 128px; }
  .footer--balanced .footer-about { font-size: .75rem; line-height: 1.45; }
  .footer--balanced h4 { margin-bottom: 7px; }
  .footer--balanced .footer-grid > div:nth-child(n+2) a { margin-bottom: 6px; }
  .footer--balanced .footer-bottom {
    padding: 9px 0 11px;
    gap: 3px;
    align-items: flex-start;
    flex-direction: column;
    font-size: .69rem;
  }
}
@media (max-width: 375px) {
  .footer--balanced .brand-logo { width: 104px; }
  .footer--balanced .footer-grid > div:first-child { gap: 11px; }
  .footer--balanced .footer-about { font-size: .7rem; }
  .footer--balanced .footer-grid { column-gap: 12px; }
  .footer--balanced .footer-grid > div:nth-child(n+2) a { font-size: .76rem; }
}


/* Version 2.1 — compact, neutral homepage relationship highlights. */
.home .section--relationships{padding-top:74px;padding-bottom:74px}
.relationships-heading-row{align-items:end;margin-bottom:26px}
.relationships-heading-row h2{font-size:clamp(1.7rem,2.7vw,2.65rem);max-width:710px}
.relationships-heading-row .section-subcopy{margin:12px 0 0;line-height:1.55;font-size:.96rem}
.relationships-link{white-space:nowrap;flex-shrink:0}
.relationship-logo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.relationship-logo-tile{display:flex;align-items:center;justify-content:center;height:184px;background:#fff;border:1px solid #dde6ed;border-radius:10px;box-shadow:0 6px 24px rgba(25,57,75,.03);padding:17px}
.relationship-logo-tile img{width:auto;height:auto;max-width:100%;max-height:142px;object-fit:contain}
.relationship-footnote{color:#657887;font-size:.77rem;line-height:1.5;margin:14px 0 0}
/* Allow the full official page name in desktop navigation without clipping. */
.header .nav{gap:clamp(11px,1.5vw,22px)}
.header .nav a{font-size:.79rem}
@media(max-width:1160px){
  .header .menu-toggle{display:flex}
  .header .nav{display:none;position:absolute;top:84px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);padding:18px 30px 26px;box-shadow:0 20px 25px rgba(11,28,43,.09);flex-direction:column;align-items:stretch;gap:0}
  .header .nav.open{display:flex}
  .header .nav a{font-size:.93rem;padding:11px 2px;white-space:normal}
  .header .nav a[aria-current="page"]:after{display:none}
  .header .nav .nav-contact{text-align:center;margin-top:14px}
}
@media(max-width:880px){.header .nav{top:75px;padding:18px 24px 26px}}
@media(max-width:700px){
  .home .section--relationships{padding-top:56px;padding-bottom:56px}
  .relationships-heading-row{margin-bottom:22px}
  .relationships-link{white-space:normal}
  .relationship-logo-grid{gap:10px}
  .relationship-logo-tile{height:142px;padding:9px}
  .relationship-logo-tile img{max-height:116px}
}
@media(max-width:440px){
  .relationship-logo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .relationship-logo-tile{height:108px;padding:7px;border-radius:7px}
  .relationship-logo-tile img{max-height:88px}
  .relationship-footnote{font-size:.72rem}
}


/* V2.4 | Affiliations & Partnerships: staggered, uncategorized logo gallery. */
.page-hero--affiliations .hero-statement-accent{color:#7ce5d9;font-weight:780}
.page-hero--affiliations h1{max-width:1080px}
.affiliations-content{padding-top:74px;padding-bottom:88px;background:linear-gradient(180deg,#fff 0%,#f7fafc 86%,#fff 100%)}
.affiliations-intro{text-align:center;max-width:790px;margin:0 auto 8px}
.affiliations-intro h2{font-size:clamp(1.8rem,3.15vw,2.8rem);margin:11px 0 17px}
.affiliations-intro p{color:#567080;font-size:1.02rem;line-height:1.73;margin:0}
.affiliation-logo-wall{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;column-gap:25px;row-gap:75px;padding:54px 6px 90px;min-height:280px}
.affiliation-logo-item{display:flex;align-items:center;justify-content:center;flex:0 1 204px;width:204px;height:172px;min-width:0;padding:19px;background:#fff;border:1px solid #e3ebf1;border-radius:13px;box-shadow:0 12px 40px rgba(16,53,77,.065);transition:box-shadow .25s ease,transform .25s ease}
.affiliation-logo-item img{max-width:100%;max-height:132px;width:auto;height:auto;object-fit:contain}
.affiliation-logo-item:nth-child(5n + 1){transform:translateY(13px)}
.affiliation-logo-item:nth-child(5n + 2){transform:translateY(52px)}
.affiliation-logo-item:nth-child(5n + 3){transform:translateY(0)}
.affiliation-logo-item:nth-child(5n + 4){transform:translateY(34px)}
.affiliation-logo-item:nth-child(5n){transform:translateY(10px)}
.affiliations-disclaimer{max-width:1070px;margin:8px auto 0;padding:20px 24px;background:#f0f4f7;border-left:3px solid #95b5c2;color:#526878;font-size:.87rem;line-height:1.7}
.affiliations-disclaimer strong{display:block;font-size:.88rem;color:#234156;margin-bottom:4px}
@media(max-width:800px){
 .affiliations-content{padding-top:60px;padding-bottom:68px}
 .affiliation-logo-wall{column-gap:15px;row-gap:40px;padding:35px 0 60px}
 .affiliation-logo-item{flex-basis:calc(33.333% - 10px);height:145px;padding:13px}
 .affiliation-logo-item img{max-height:115px}
 .affiliation-logo-item:nth-child(n){transform:none}
 .affiliation-logo-item:nth-child(3n + 2){transform:translateY(24px)}
}
@media(max-width:550px){
 .page-hero--affiliations h1{font-size:clamp(1.96rem,8vw,2.85rem)}
 .affiliations-content{padding-top:50px;padding-bottom:56px}
 .affiliations-intro{text-align:left}
 .affiliations-intro h2{font-size:1.8rem}
 .affiliations-intro p{font-size:.96rem}
 .affiliation-logo-wall{column-gap:14px;row-gap:33px;padding:33px 0 51px}
 .affiliation-logo-item{flex:0 1 calc(50% - 8px);height:145px;padding:12px}
 .affiliation-logo-item:nth-child(n){transform:none}
 .affiliation-logo-item:nth-child(even){transform:translateY(18px)}
 .affiliations-disclaimer{padding:17px 18px;font-size:.81rem}
}
@media(prefers-reduced-motion:reduce){.affiliation-logo-item{transition:none}}


/* V2.5 | White hero statement and staggered, ungrouped affiliate logos */
.page-hero--affiliations .hero-statement-accent{color:#fff}
.affiliation-logo-wall{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:center;
  justify-content:center;
  column-gap:24px;
  row-gap:47px;
  padding:55px 0 73px;
  max-width:1130px;
  margin:0 auto;
}
.affiliation-logo-item{
  width:100%;min-width:0;height:163px;
  padding:20px 19px;
  background:#fff;
  border:1px solid #e4ebf0;
  border-radius:12px;
  box-shadow:0 10px 30px rgba(12,46,72,.058);
  transition:box-shadow .23s ease,transform .23s ease;
}
.affiliation-logo-item img{
  display:block;width:auto;height:auto;
  max-width:100%;max-height:116px;object-fit:contain;
}
.affiliation-logo-item:nth-child(n){transform:none}
.affiliation-logo-item:nth-child(6n + 1){transform:translateY(6px)}
.affiliation-logo-item:nth-child(6n + 2){transform:translateY(25px)}
.affiliation-logo-item:nth-child(6n + 3){transform:translateY(-6px)}
.affiliation-logo-item:nth-child(6n + 4){transform:translateY(17px)}
.affiliation-logo-item:nth-child(6n + 5){transform:translateY(-9px)}
.affiliation-logo-item:nth-child(6n){transform:translateY(12px)}
@media(max-width:900px){
  .affiliation-logo-wall{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:18px;row-gap:42px;padding:45px 0 70px}
  .affiliation-logo-item{height:158px;padding:15px}
  .affiliation-logo-item img{max-height:112px}
}
@media(max-width:600px){
  .affiliation-logo-wall{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px;row-gap:31px;padding:35px 0 63px}
  .affiliation-logo-item{height:135px;padding:12px;border-radius:9px}
  .affiliation-logo-item img{max-height:98px}
  .affiliation-logo-item:nth-child(n){transform:none}
  .affiliation-logo-item:nth-child(even){transform:translateY(14px)}
}
@media(max-width:360px){
  .affiliation-logo-wall{gap:26px 10px}
  .affiliation-logo-item{height:116px;padding:9px}
  .affiliation-logo-item img{max-height:90px}
}
@media(prefers-reduced-motion:reduce){.affiliation-logo-item{transition:none}}

/* Version 2.8 — alternating aligned rows of 3 and 2 logos, with generous spacing.
   Each two-logo row is centered in the spaces between the three above. */
.affiliation-logo-wall{
  --affiliation-tile-width:clamp(165px,18vw,220px);
  --affiliation-column-gap:clamp(50px,8.5vw,116px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:initial;
  gap:104px;
  max-width:1135px;
  margin:0 auto;
  padding:74px 5px 105px;
  min-height:0;
}
.affiliation-logo-row{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:var(--affiliation-column-gap);
  width:100%;
  padding:0;
}
.affiliation-logo-wall .affiliation-logo-row .affiliation-logo-item,
.affiliation-logo-wall .affiliation-logo-row .affiliation-logo-item:nth-child(n){
  flex:0 0 var(--affiliation-tile-width);
  width:var(--affiliation-tile-width);
  height:172px;
  min-width:0;
  padding:19px;
  transform:none;
}
@media (max-width:920px) and (min-width:701px){
  .affiliation-logo-wall{gap:82px;padding:62px 0 85px}
  .affiliation-logo-wall .affiliation-logo-row .affiliation-logo-item,
  .affiliation-logo-wall .affiliation-logo-row .affiliation-logo-item:nth-child(n){height:156px;padding:15px}
  .affiliation-logo-wall .affiliation-logo-row .affiliation-logo-item img{max-height:116px}
}
/* Narrow screens become two columns without horizontal scrolling. */
@media (max-width:700px){
  .affiliation-logo-wall{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:center;
    justify-content:center;
    gap:28px 18px;
    padding:45px 0 62px;
  }
  .affiliation-logo-row{display:contents}
  .affiliation-logo-wall .affiliation-logo-row .affiliation-logo-item,
  .affiliation-logo-wall .affiliation-logo-row .affiliation-logo-item:nth-child(n){
    width:100%;height:142px;padding:13px;flex:none;transform:none;
  }
  .affiliation-logo-wall .affiliation-logo-row .affiliation-logo-item img{max-height:102px}
}
@media (max-width:360px){
  .affiliation-logo-wall{gap:22px 12px}
  .affiliation-logo-wall .affiliation-logo-row .affiliation-logo-item,
  .affiliation-logo-wall .affiliation-logo-row .affiliation-logo-item:nth-child(n){height:120px;padding:10px}
  .affiliation-logo-wall .affiliation-logo-row .affiliation-logo-item img{max-height:88px}
}

/* V3.4 | Founder portrait: protect head framing in circular crop. */
.portrait img{object-position:50% 4%;}


/* V3.5 | Free-standing, borderless circular founder portrait, with more of the original photo visible. */
.profile-grid .portrait-wrap{
  background:transparent;
  border:0;
  border-radius:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:17px;
  overflow:visible;
}
.profile-grid .portrait-wrap::before{display:none;content:none;}
.profile-grid .portrait{
  width:min(100%,400px);
  height:auto;
  aspect-ratio:1 / 1;
  border:0;
  border-radius:50%;
  box-shadow:none;
  padding:0;
  overflow:hidden;
  background:transparent;
}
.profile-grid .portrait img{
  width:100%;height:100%;display:block;
  object-fit:cover;object-position:center;
}
.profile-grid .profile-note{position:static;bottom:auto;}
@media(max-width:650px){
  .profile-grid .portrait{width:min(100%,335px);}
  .profile-grid .portrait-wrap{gap:12px;}
}

/* V3.6 | Display only the original, unblurred founder photograph in the circular frame.
   No generated / blurred background fill or photo filters. */
.profile-grid .portrait img{object-fit:cover;object-position:center top;filter:none;}


/* V3.7 | Founder name and centered role directly beneath the portrait. */
.profile-grid .founder-caption{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:5px;
  width:100%;
}
.profile-grid .founder-name{
  font-size:clamp(1.2rem,2vw,1.55rem);
  font-weight:700;
  line-height:1.2;
  color:var(--navy, #102c42);
}
.profile-grid .founder-role{
  font-size:.95rem;
  font-weight:500;
  line-height:1.4;
  color:#637f8d;
}


/* V3.8 | Full founder biography. Preserves the approved borderless portrait. */
.founder-bio-intro{align-self:start}
.founder-bio-intro h2{font-size:clamp(1.85rem,3.05vw,2.7rem);margin:12px 0 22px}
.founder-bio-intro p{line-height:1.74;margin-bottom:19px}
.founder-bio-intro .lead{font-size:1.075rem;line-height:1.67;color:#3e596b;font-weight:520}
.founder-bio-continued{
  max-width:990px;
  margin:55px auto 0;
  padding-top:34px;
  border-top:1px solid var(--line);
  color:var(--muted);
}
.founder-bio-continued p{margin:0 0 24px;line-height:1.78;font-size:1.015rem}
.founder-bio-continued strong{color:var(--ink);font-weight:700}
.founder-bio-continued .founder-bio-motto{
  display:block;
  margin:34px 0 0;
  padding:14px 0 0 20px;
  border-left:3px solid var(--teal);
  color:var(--ink);
  letter-spacing:.105em;
  font-size:.92rem;
  line-height:1.45;
  font-weight:760;
}
@media(max-width:650px){
  .founder-bio-intro h2{font-size:clamp(1.85rem,7vw,2.4rem)}
  .founder-bio-intro p,.founder-bio-continued p{font-size:.965rem;line-height:1.72}
  .founder-bio-intro .lead{font-size:1.015rem}
  .founder-bio-continued{margin-top:34px;padding-top:27px}
  .founder-bio-continued .founder-bio-motto{font-size:.8rem;letter-spacing:.07em}
}


/* V3.9 | About page values: architectural network-grid theme, no numbered labels. */
.about-values .value-grid{gap:24px;align-items:stretch}
.about-values .value-card{
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  padding:38px 34px 35px;
  min-height:305px;
  overflow:hidden;
  border:1px solid rgba(90,164,181,.28);
  border-radius:13px;
  background:linear-gradient(140deg,#14364d 0%,#091e30 100%);
  box-shadow:0 13px 33px rgba(12,46,68,.12);
}
.about-values .value-card:nth-child(2){background:linear-gradient(145deg,#10515c 0%,#0a2d40 100%)}
.about-values .value-card:nth-child(3){background:linear-gradient(145deg,#234e68 0%,#0b253b 100%)}
.about-values .value-card::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(148,206,217,.11) 1px,transparent 1px),
    linear-gradient(90deg,rgba(148,206,217,.11) 1px,transparent 1px);
  background-size:32px 32px;
  -webkit-mask-image:linear-gradient(115deg,transparent 8%,#000 100%);
  mask-image:linear-gradient(115deg,transparent 8%,#000 100%);
}
.about-values .value-card::after{
  content:"";
  position:absolute;
  z-index:0;
  top:-132px;
  right:-130px;
  width:325px;
  height:325px;
  border:1px solid rgba(102,219,213,.26);
  border-radius:50%;
  box-shadow:0 0 0 46px rgba(31,195,182,.035),0 0 0 100px rgba(31,195,182,.025);
  pointer-events:none;
}
.about-values .value-card h3,
.about-values .value-card p{position:relative;z-index:1}
.about-values .value-card h3{
  margin:0 0 21px;
  font-size:1.38rem;
  font-weight:730;
  letter-spacing:-.025em;
  color:#fff;
}
.about-values .value-card h3::before{
  content:"";
  display:block;
  width:40px;
  height:3px;
  border-radius:5px;
  background:#46d8c8;
  margin-bottom:24px;
}
.about-values .value-card p{
  margin:0;
  max-width:40ch;
  color:#d4e4ed;
  font-size:.94rem;
  line-height:1.75;
}
@media(max-width:880px){
  .about-values .value-grid{gap:17px}
  .about-values .value-card{padding:30px 24px;min-height:285px}
}
@media(max-width:650px){
  .about-values .value-grid{gap:16px}
  .about-values .value-card{min-height:0;padding:30px 27px 33px}
  .about-values .value-card h3{margin-bottom:15px}
  .about-values .value-card h3::before{margin-bottom:20px}
}


/* v4.0 — Services page editorial redesign. Styles are isolated from the rest of the site. */
.services-page .services-hero{
 background:radial-gradient(ellipse at 72% 38%,#164b60 0%,#0b2b3f 49%,#071c2c 95%);
 min-height:calc(var(--hero-track-height) + 44px);
}
.services-page .services-hero::before{
 content:"";position:absolute;inset:0;pointer-events:none;
 background-image:linear-gradient(rgba(121,191,203,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(121,191,203,.08) 1px,transparent 1px);
 background-size:58px 58px;mask-image:linear-gradient(110deg,transparent 11%,#000 100%);
}
.services-page .services-hero::after{right:-160px;top:-105px;width:560px;height:560px;opacity:.65}
.services-hero-layout{display:grid;grid-template-columns:minmax(0,1.34fr) minmax(290px,.66fr);align-items:center;gap:9%;min-height:320px}
.services-hero-content{position:relative;z-index:2;padding:15px 0}
.services-hero-content h1{max-width:none;white-space:nowrap;letter-spacing:-.04em;line-height:1.065;font-size:clamp(2.45rem,4.35vw,4.15rem);margin:15px 0 20px}
.services-hero-content h1 span{color:#86e6da}
.services-hero-content p{font-size:1.03rem;max-width:680px;line-height:1.73}
.services-explore{display:inline-flex;gap:15px;align-items:center;margin-top:25px;color:#d9f2f3;font-size:.82rem;text-transform:uppercase;font-weight:730;letter-spacing:.11em;transition:color .2s}
.services-explore:hover{color:#83e4dc}
.services-explore span{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border:1px solid rgba(150,223,219,.7);border-radius:50%;font-size:1.03rem}
.services-hero-graphic{position:relative;padding:30px 24px 22px;border:1px solid rgba(121,209,216,.29);border-radius:13px;background:linear-gradient(160deg,rgba(9,46,66,.74),rgba(5,24,38,.72));box-shadow:0 25px 85px rgba(0,9,20,.2);overflow:hidden}
.services-hero-graphic:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 80% 13%,rgba(23,187,169,.16),transparent 55%);pointer-events:none}
.hero-tech-heading{color:#77d4d1;letter-spacing:.19em;font-size:.68rem;font-weight:780;margin:0 0 21px}
.hero-tech-track{display:flex;align-items:center;gap:18px;position:relative;min-height:50px;padding-left:2px;font-size:.79rem;font-weight:720;letter-spacing:.11em;color:#f2f8fa}
.hero-tech-track:not(:nth-last-child(2)):before{position:absolute;content:"";left:7px;top:29px;height:31px;width:1px;background:rgba(79,207,203,.35)}
.hero-tech-dot{width:14px;height:14px;border:3px solid #7de0d6;box-shadow:0 0 0 5px rgba(28,200,187,.09);border-radius:50%;flex:0 0 auto}
.hero-tech-bottom{font-size:.61rem;font-weight:700;letter-spacing:.15em;color:#a2bdc9;border-top:1px solid rgba(110,179,190,.22);padding-top:19px;margin-top:16px}
.services-intro{padding:47px 0 46px;border-bottom:1px solid #e0eaee;background:#fff}
.services-intro-inner{display:grid;grid-template-columns:245px minmax(0,1fr);gap:55px;align-items:center}
.services-intro-inner .eyebrow{color:#087f79;font-size:.72rem;line-height:1.9}
.services-intro-inner p{font-size:clamp(1.14rem,1.65vw,1.43rem);line-height:1.57;letter-spacing:-.012em;margin:0;color:#385166}
.services-intro-inner strong{font-weight:740;color:#0d3045}
.service-showcase{padding:80px 0;scroll-margin-top:90px;background:#fff}
.service-showcase--soft{background:#eef5f8}
.service-showcase--dark{background:radial-gradient(circle at 82% 22%,#154052 0%,#0b293c 48%,#081c2c 100%);color:#fff}
.service-showcase-inner{display:grid;grid-template-columns:minmax(0,.93fr) minmax(0,1.07fr);gap:clamp(42px,6vw,88px);align-items:center}
.service-showcase--reverse .service-showcase-inner{grid-template-columns:minmax(0,1.07fr) minmax(0,.93fr)}
.service-showcase--reverse .service-visual{grid-column:2;grid-row:1}
.service-showcase--reverse .service-info{grid-column:1;grid-row:1}
.service-visual{position:relative;min-width:0;height:clamp(440px,37vw,550px);border-radius:14px;overflow:hidden;background:#10344b;box-shadow:0 25px 55px rgba(4,28,42,.14)}
.service-showcase--dark .service-visual{border:1px solid rgba(114,198,203,.25);box-shadow:0 20px 60px rgba(0,0,0,.24)}
.service-visual:after{content:"";position:absolute;inset:48% 0 0;background:linear-gradient(0deg,rgba(3,17,29,.75),transparent);pointer-events:none}
.service-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.service-showcase--reverse .service-visual img{object-position:47% center}
.visual-label{position:absolute;z-index:1;left:30px;bottom:27px;right:25px;display:flex;align-items:center;gap:12px;color:#fff;font-size:.66rem;font-weight:760;letter-spacing:.16em;text-shadow:0 1px 6px rgba(0,0,0,.2)}
.visual-label:before{content:"";width:28px;height:2px;background:#71e3d5;flex:0 0 28px}
.service-info{min-width:0;padding:5px 0}
.service-info .eyebrow{display:block;margin-bottom:13px;font-size:.7rem;letter-spacing:.17em}
.service-info h2{font-size:clamp(2rem,3vw,3rem);line-height:1.09;letter-spacing:-.035em;margin:0 0 11px}
.service-tagline{font-size:1.25rem;font-weight:680;letter-spacing:-.025em;color:#087f79;margin:0 0 18px}
.service-showcase--dark .service-tagline{color:#72dfd2}
.service-description{font-size:.94rem;color:#506878;line-height:1.69}
.service-description p{margin:0 0 12px}
.service-showcase--dark .service-description{color:#cedfe8}
.capability-heading{font-size:.74rem;text-transform:uppercase;letter-spacing:.16em;font-weight:800;color:#18384c;margin:23px 0 13px}
.service-showcase--dark .capability-heading{color:#c1efed}
.capability-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:11px;padding:0;margin:0;list-style:none}
.capability-list li{position:relative;padding-left:18px;font-size:.82rem;font-weight:600;line-height:1.5;color:#26475c}
.capability-list li:before{position:absolute;left:0;top:.61em;content:"";width:7px;height:7px;transform:rotate(45deg);border:1.5px solid #11a999;background:#e3f9f7}
.service-showcase--dark .capability-list li{color:#e4f1f4}
.service-showcase--dark .capability-list li:before{background:#19ad9f;border-color:#8bede1}
.service-closing{font-size:.79rem;color:#087f79;text-transform:uppercase;letter-spacing:.07em;font-weight:780;line-height:1.65;border-top:1px solid #d7e3e9;padding-top:17px;margin:24px 0 0}
.service-showcase--dark .service-closing{color:#8fe9df;border-color:rgba(152,208,217,.25)}
.services-environments{padding:74px 0 57px;background:#f6f9fb}
.services-environments-heading{display:grid;grid-template-columns:1.15fr .85fr;gap:72px;align-items:end}
.services-environments-heading h2{font-size:clamp(1.75rem,2.6vw,2.7rem);margin:11px 0 0}
.services-environments-heading p{font-size:.93rem;color:#546d7f;margin:0;line-height:1.7}
.environment-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:31px}
.environment-items>div{display:flex;gap:13px;align-items:center;padding:21px 17px;background:#fff;border:1px solid #dce9ed;border-radius:9px;min-width:0;box-shadow:0 6px 18px rgba(0,29,45,.025)}
.environment-icon{display:flex;align-items:center;justify-content:center;flex:0 0 40px;width:40px;height:40px;background:#e6f7f6;border:1px solid #b9e2e0;border-radius:8px;color:#0b8b83;font-size:1.4rem;line-height:1}
.environment-items strong{font-size:.85rem;color:#193a4d;line-height:1.4;font-weight:750}
.services-license-note{color:#718592;font-size:.75rem;line-height:1.6;max-width:1050px;margin:30px 0 0}
.services-cta .container>div{max-width:760px}
.services-cta h2{margin:7px 0 8px}
.services-cta p{max-width:640px;line-height:1.6}
@media(max-width:1150px){
 .services-hero-layout{gap:6%;grid-template-columns:minmax(0,1.32fr) minmax(260px,.68fr)}
 .services-hero-content h1{font-size:clamp(2.24rem,4.05vw,3.7rem)}
 .service-showcase-inner,.service-showcase--reverse .service-showcase-inner{gap:42px}
 .service-info h2{font-size:clamp(1.9rem,2.75vw,2.55rem)}
 .service-description{font-size:.9rem}
 .capability-list li{font-size:.8rem}
}
@media(max-width:880px){
 .services-hero-layout{grid-template-columns:minmax(0,1fr) 260px;gap:24px}
 .services-hero-content h1{white-space:normal;font-size:clamp(2.15rem,4.9vw,3.4rem)}
 .services-hero-content p{font-size:.94rem}
 .services-hero-graphic{padding:22px 17px}
 .hero-tech-track{font-size:.7rem;gap:12px}
 .services-intro-inner{grid-template-columns:170px 1fr;gap:26px}
 .service-showcase{padding:66px 0}
 .service-showcase-inner,.service-showcase--reverse .service-showcase-inner{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:30px}
 .service-visual{height:520px}
 .service-info h2{font-size:2rem}
 .service-tagline{font-size:1.12rem}
 .capability-list{grid-template-columns:1fr;gap:7px}
 .capability-list li{font-size:.8rem}
 .service-description{font-size:.9rem}
 .services-environments-heading{gap:30px}
 .environment-items{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
 .services-page .services-hero{min-height:0;padding:28px 0 38px}
 .services-hero-layout{display:block;min-height:0}
 .services-hero-content{padding:10px 0 0}
 .services-hero-content h1{font-size:clamp(2rem,9vw,3.3rem);margin:12px 0 14px}
 .services-hero-content p{font-size:.93rem;line-height:1.6}
 .services-explore{margin-top:15px}
 .services-hero-graphic{display:none}
 .services-intro{padding:29px 0}
 .services-intro-inner{display:block}
 .services-intro-inner .eyebrow{display:block;margin-bottom:10px}
 .services-intro-inner p{font-size:1.07rem}
 .service-showcase{padding:47px 0 50px;scroll-margin-top:68px}
 .service-showcase-inner,.service-showcase--reverse .service-showcase-inner{display:flex;flex-direction:column;gap:28px;align-items:stretch}
 .service-showcase--reverse .service-visual,.service-showcase--reverse .service-info{grid-column:auto;grid-row:auto}
 .service-visual{height:310px;order:0}
 .service-info{order:1}
 .service-info h2{font-size:clamp(1.83rem,7.2vw,2.38rem)}
 .service-tagline{font-size:1.12rem;margin-bottom:14px}
 .service-description{font-size:.94rem}
 .capability-heading{margin-top:20px}
 .capability-list{grid-template-columns:1fr 1fr;gap:9px 12px}
 .capability-list li{font-size:.77rem}
 .visual-label{left:20px;bottom:20px;font-size:.57rem}
 .services-environments{padding:54px 0 44px}
 .services-environments-heading{display:block}
 .services-environments-heading p{margin-top:12px}
 .environment-items{gap:11px;margin-top:22px}
 .environment-items>div{padding:14px 10px;gap:10px}
 .environment-icon{width:33px;height:33px;flex-basis:33px;font-size:1.18rem}
 .environment-items strong{font-size:.75rem}
 .services-license-note{font-size:.72rem;margin-top:26px}
}
@media(max-width:385px){
 .services-hero-content h1{font-size:1.95rem}
 .service-visual{height:258px}
 .capability-list{grid-template-columns:1fr}
 .environment-items>div{gap:7px;padding:12px 8px}
 .environment-icon{width:30px;height:30px;flex-basis:30px}
 .environment-items strong{font-size:.7rem}
}
