:root {
  --ink:#071a2b;
  --ink-2:#102b3d;
  --teal:#08777d;
  --cyan:#26b8b6;
  --paper:#f7f7f3;
  --paper-2:#f0f2ee;
  --white:#fff;
  --muted:#6b7c83;
  --line:#d8ddd9;
  --max:1920px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit}
.shell{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:clamp(36px,4vw,76px)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:16px;top:-100px;z-index:9999;padding:10px 14px;background:#fff}.skip-link:focus{top:16px}

.site-header{position:fixed;inset:0 0 auto;z-index:50;height:86px;background:rgba(247,247,243,.93);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:.2s ease}
.site-header.is-scrolled{height:74px;border-color:var(--line);box-shadow:0 6px 24px rgba(7,26,43,.06)}
.nav-row{height:100%;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand img{width:190px;height:auto}
.main-nav{display:flex;align-items:center;gap:34px;font-size:.93rem;font-weight:500}
.main-nav>a,.nav-dropdown-toggle{position:relative;padding:10px 0}
.main-nav>a:not(.nav-contact)::after,.nav-dropdown-toggle::after{content:"";position:absolute;left:0;right:100%;bottom:2px;height:2px;background:var(--teal);transition:right .2s ease}
.main-nav>a:hover::after,.main-nav>a.is-active::after,.nav-dropdown-toggle:hover::after{right:0}
.nav-contact{padding:13px 20px!important;border:1px solid #8d9ba2}
.nav-contact:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.nav-dropdown{position:relative}.nav-dropdown-toggle{border:0;background:none;color:inherit;cursor:pointer}.nav-dropdown-menu{position:absolute;top:44px;left:-18px;min-width:240px;padding:10px;background:#fff;border:1px solid var(--line);box-shadow:0 14px 35px rgba(7,26,43,.12);opacity:0;transform:translateY(6px);pointer-events:none;transition:.18s ease}.nav-dropdown.is-open .nav-dropdown-menu{opacity:1;transform:none;pointer-events:auto}.nav-dropdown-menu a{display:block;padding:10px 12px;font-size:.84rem}.nav-dropdown-menu a:hover{background:var(--paper-2)}
.nav-toggle{display:none;width:42px;height:42px;border:0;background:none}.nav-toggle span:not(.sr-only){display:block;width:24px;height:2px;margin:5px auto;background:var(--ink)}

.hero{padding-top:86px;background:linear-gradient(100deg,#f7f7f3 0%,#eef4f3 50%,#d7e5e5 100%)}
.hero-grid{display:grid;grid-template-columns:.88fr 1.12fr;min-height:520px;align-items:stretch}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:74px 54px 74px 0;position:relative;z-index:2}
.hero h1{margin:0;font-size:clamp(3.3rem,5vw,5.25rem);line-height:.96;letter-spacing:-.055em;font-weight:650}
.hero-copy>p{max-width:560px;margin:26px 0 0;color:#344b58;font-size:1.08rem;line-height:1.55}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-width:170px;padding:15px 18px;border:1px solid var(--ink);font-size:.84rem;font-weight:600;transition:.2s ease}
.button-primary{background:var(--teal);border-color:var(--teal);color:#fff}.button-primary:hover{background:#065f64;border-color:#065f64}.button-secondary:hover{background:var(--ink);color:#fff}
.hero-media{position:relative;min-height:440px;overflow:hidden}
.hero-media::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(247,247,243,.8) 0%,rgba(247,247,243,0) 25%);z-index:1;pointer-events:none}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-year{position:absolute;right:26px;bottom:28px;z-index:2;padding-left:14px;border-left:3px solid #fff;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.25)}.hero-year span{display:block;font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700}.hero-year strong{display:block;margin-top:2px;font-size:1.55rem;font-weight:500}

.section{padding:54px 0}.products{background:#fbfbf8}.services{background:#f4f3ee}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:36px;margin-bottom:26px}.eyebrow{margin:0 0 10px;color:var(--teal);font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.section-heading h2{margin:0;font-size:clamp(2.4rem,4vw,4.2rem);line-height:1;letter-spacing:-.045em;font-weight:600}.text-link{align-self:end;padding:8px 0 8px;border-bottom:1px solid var(--ink);font-size:.86rem;font-weight:650;white-space:nowrap}.text-link span{margin-left:18px}

.card-grid{display:grid}.product-grid{grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.card{background:var(--paper);border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:transform .2s ease,background .2s ease}.card:hover{background:#fff;transform:translateY(-2px)}.card-image{width:100%;height:185px;object-fit:cover}.card-body{position:relative;min-height:175px;padding:20px 20px 22px}.index{color:var(--teal);font-size:.72rem;font-weight:800;letter-spacing:.05em}.arrow{position:absolute;right:20px;top:18px;font-size:1rem;transition:transform .2s ease}.card:hover .arrow,.service-card:hover .arrow{transform:translate(3px,-3px)}.card h3{margin:28px 30px 8px 0;font-size:1.22rem;line-height:1.08;letter-spacing:-.025em}.card p{margin:0;color:var(--muted);font-size:.84rem;line-height:1.45}

.service-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{position:relative;min-height:150px;padding:22px 58px 22px 22px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.34);transition:background .2s ease}.service-card:hover{background:#fff}.service-card h3{max-width:470px;margin:18px 0 8px;font-size:1.3rem;line-height:1.08;letter-spacing:-.025em}.service-card p{max-width:500px;margin:0;color:#53666f;font-size:.83rem;line-height:1.45}

.credentials{position:relative;background:#062a42;color:#fff;overflow:hidden}.credentials::before,.credentials::after{content:"";position:absolute;width:420px;height:180px;border:1px solid rgba(38,184,182,.12);border-radius:50%;transform:rotate(-12deg)}.credentials::before{left:-140px;top:-90px}.credentials::after{right:-120px;bottom:-110px}.credentials-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);padding-block:34px}.credential{padding:2px 34px;border-left:1px solid rgba(255,255,255,.18)}.credential:first-child{border-left:0}.credential strong,.credential span{display:block;text-transform:uppercase}.credential strong{color:#72e0dc;font-size:1.05rem;letter-spacing:.08em;font-weight:600}.credential.strong strong{font-size:2rem;letter-spacing:-.02em}.credential span{margin-top:6px;font-size:.72rem;letter-spacing:.08em;color:rgba(255,255,255,.78)}

.project-cta{padding:34px 0;background:#fbfaf5}.project-cta-row{display:flex;align-items:center;justify-content:space-between;gap:34px}.project-cta h2{margin:10px 0 0;font-size:clamp(1.55rem,2.8vw,2.35rem);letter-spacing:-.035em}.cta-line{display:block;width:34px;height:2px;background:var(--teal)}

.site-footer{padding:42px 0 20px;background:#041d30;color:rgba(255,255,255,.82)}.footer-grid{display:grid;grid-template-columns:1.25fr .85fr 1fr .75fr 1fr;gap:42px}.footer-brand img{width:180px;filter:brightness(0) invert(1);opacity:.95}.site-footer h4{margin:0 0 15px;color:#fff;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.site-footer .footer-grid>div:not(.footer-brand){display:flex;flex-direction:column;gap:8px;font-size:.78rem}.site-footer a:hover{color:#63ddd9}.footer-bottom{display:flex;justify-content:space-between;margin-top:36px;padding-top:18px;border-top:1px solid rgba(255,255,255,.15);font-size:.7rem;color:rgba(255,255,255,.45)}

.reveal{opacity:0;transform:translateY(15px);transition:opacity .55s ease,transform .55s ease}.reveal[data-delay="1"]{transition-delay:.06s}.reveal[data-delay="2"]{transition-delay:.12s}.reveal[data-delay="3"]{transition-delay:.18s}.reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

@media(max-width:980px){.shell{padding-inline:20px}.site-header{height:72px}.brand img{width:165px}.nav-toggle{display:block}.main-nav{position:fixed;top:72px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:16px 20px 24px;background:#fff;border-top:1px solid var(--line);box-shadow:0 18px 35px rgba(0,0,0,.1)}.main-nav.is-open{display:flex}.main-nav>a,.nav-dropdown-toggle{display:block;width:100%;padding:13px 0;text-align:left;border-bottom:1px solid var(--line)}.nav-contact{margin-top:12px;text-align:center!important}.nav-dropdown-menu{position:static;display:none;opacity:1;pointer-events:auto;transform:none;box-shadow:none;border:0;padding:2px 0 8px 12px}.nav-dropdown.is-open .nav-dropdown-menu{display:block}.hero{padding-top:72px}.hero-grid{grid-template-columns:1fr;min-height:auto}.hero-copy{padding:58px 0 40px}.hero-media{min-height:360px}.product-grid{grid-template-columns:1fr 1fr}.credentials-grid{grid-template-columns:1fr 1fr}.credential:nth-child(3){border-left:0}.credential{padding:18px 26px}.footer-grid{grid-template-columns:1.2fr 1fr 1fr}.footer-brand{grid-row:span 2}}
@media(max-width:640px){.shell{padding-inline:14px}.hero h1{font-size:clamp(2.8rem,13vw,4.25rem)}.hero-copy>p{font-size:1rem}.hero-media{min-height:280px}.section{padding:44px 0}.section-heading{display:block}.section-heading .text-link{display:inline-block;margin-top:20px}.section-heading h2{font-size:clamp(2.3rem,12vw,3.4rem)}.product-grid,.service-grid{grid-template-columns:1fr}.card-image{height:210px}.credentials-grid{grid-template-columns:1fr 1fr}.credential{padding:14px 14px}.project-cta-row{display:block}.project-cta .button{margin-top:24px}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1;grid-row:auto}.footer-bottom{flex-direction:column;gap:8px}}

/* v6: compact full-width hero and crisp image presentation */
.hero-grid{min-height:0!important;height:clamp(360px,38vw,520px)!important;}
.hero-copy{padding-top:clamp(38px,4vw,64px)!important;padding-bottom:clamp(38px,4vw,64px)!important;}
.hero-media{min-height:0!important;height:100%!important;overflow:hidden;}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 52%;image-rendering:auto;}
.product-image{overflow:hidden;}
.product-image img{width:100%;height:100%;object-fit:cover;image-rendering:auto;}
@media(max-width:980px){
  .hero-grid{height:auto!important;}
  .hero-media{height:420px!important;}
}
@media(max-width:640px){
  .hero-media{height:320px!important;}
}

/* About page v7 */
.about-hero{background:var(--paper);border-bottom:1px solid var(--line)}
.about-hero-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(480px,1.08fr);min-height:520px}
.about-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:72px clamp(36px,5vw,88px) 72px 0}
.about-hero-copy h1{margin:.25rem 0 1.35rem;max-width:820px;font-size:clamp(3.6rem,5.7vw,7.1rem);line-height:.92;letter-spacing:-.065em}
.about-lead{max-width:700px;color:var(--muted);font-size:clamp(1.05rem,1.4vw,1.35rem);line-height:1.6}
.about-facts{display:flex;gap:42px;margin-top:36px;padding-top:26px;border-top:1px solid var(--line)}
.about-facts div{display:grid;gap:3px}.about-facts strong{color:var(--teal);font-size:1.65rem}.about-facts span{color:var(--muted);font-size:.9rem}
.about-hero-media{min-height:520px;overflow:hidden}.about-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 60%}
.about-intro-grid{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);gap:clamp(50px,8vw,130px);align-items:start}
.about-intro h2,.clients-section h2{max-width:720px;font-size:clamp(2.8rem,4.3vw,5.2rem);line-height:.98;letter-spacing:-.055em}
.about-copy{max-width:850px;padding-top:28px}.about-copy p,.clients-copy p{color:var(--muted);font-size:1.05rem;line-height:1.75}.about-copy p+p{margin-top:1.1rem}.about-copy .text-link{margin-top:1.6rem}
.about-capabilities{background:var(--ink);color:#fff}.capability-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.capability{padding:44px clamp(28px,3.2vw,58px) 46px 0;min-height:230px}.capability+.capability{padding-left:clamp(28px,3.2vw,58px);border-left:1px solid rgba(255,255,255,.15)}
.capability .index{color:var(--aqua)}.capability h3{margin:42px 0 10px;font-size:1.55rem}.capability p{max-width:390px;color:rgba(255,255,255,.66);line-height:1.6}
.team-section{background:#f2f3ef}.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line)}
.team-card{display:grid;grid-template-columns:minmax(180px,.44fr) minmax(0,.56fr);min-height:390px;background:var(--paper)}.team-card+.team-card{border-left:1px solid var(--line)}
.team-photo{min-height:390px;overflow:hidden;background:#daddd8}.team-photo img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.8)}
.team-content{display:flex;flex-direction:column;padding:38px}.team-content h3{margin:.35rem 0 .9rem;font-size:clamp(1.8rem,2.3vw,2.7rem)}.team-content>p:not(.eyebrow){color:var(--muted);line-height:1.65}
.team-content details{margin-top:auto;padding-top:24px}.team-content summary{display:flex;justify-content:space-between;align-items:center;padding-top:15px;border-top:1px solid var(--line);cursor:pointer;font-weight:700}
.team-content details p{padding-top:16px;color:var(--muted);font-size:.92rem;line-height:1.65}
.clients-section{padding:clamp(70px,8vw,120px) 0}.clients-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);gap:clamp(50px,8vw,130px)}.clients-copy{padding-top:28px}
.client-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.client-list span{padding:11px 15px;border:1px solid var(--line);background:var(--paper);color:var(--ink);font-size:.87rem;font-weight:650}
@media(max-width:1100px){.about-hero-grid{grid-template-columns:1fr 1fr}.team-card{grid-template-columns:1fr}.team-photo{min-height:300px;height:300px}}
@media(max-width:800px){.about-hero-grid,.about-intro-grid,.clients-grid{grid-template-columns:1fr}.about-hero-copy{padding-right:0}.about-hero-media{min-height:360px}.capability-grid,.team-grid{grid-template-columns:1fr}.capability+.capability,.team-card+.team-card{border-left:0;border-top:1px solid rgba(255,255,255,.15)}.team-card+.team-card{border-color:var(--line)}}
@media(max-width:640px){.about-hero-copy h1{font-size:3.4rem}.about-facts{gap:24px;flex-wrap:wrap}.team-content{padding:28px 24px}}

/* Full site pages v8 */
html{scroll-behavior:smooth}
.nav-dropdown-toggle.is-active{color:var(--ink)}
.inner-hero{padding:clamp(70px,8vw,120px) 0;background:var(--paper);border-bottom:1px solid var(--line)}
.inner-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.72fr);gap:clamp(50px,8vw,130px);align-items:end}
.inner-hero h1{max-width:1000px;margin:.25rem 0 0;font-size:clamp(3.8rem,6vw,7.4rem);line-height:.92;letter-spacing:-.065em}
.inner-hero-copy{max-width:670px;padding-bottom:8px}.inner-hero-copy p{font-size:1.15rem;line-height:1.7;color:var(--muted)}
.anchor-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.anchor-links a{padding:9px 13px;border:1px solid var(--line);font-size:.85rem;font-weight:700}.anchor-links a:hover{border-color:var(--teal);color:var(--teal)}
.product-detail{padding:clamp(70px,8vw,120px) 0;border-bottom:1px solid var(--line);scroll-margin-top:90px}
.product-detail-alt{background:#f1f3f0}.product-detail-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:clamp(50px,7vw,110px);align-items:center}
.product-detail-reverse .product-detail-media{order:2}.product-detail-media{height:clamp(400px,38vw,650px);overflow:hidden}.product-detail-media img{width:100%;height:100%;object-fit:cover}.realtime-media img{object-position:center 45%}
.detail-kicker{display:flex;align-items:center;gap:15px;margin-bottom:24px;color:var(--teal);font-weight:750;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em}
.product-detail-copy h2{font-size:clamp(3rem,4.4vw,5.4rem);line-height:.95;letter-spacing:-.055em}.detail-lead{margin:20px 0;font-size:1.3rem;line-height:1.5}.product-detail-copy>p:not(.detail-lead){color:var(--muted);font-size:1.03rem;line-height:1.75}
.detail-points{display:grid;grid-template-columns:repeat(3,1fr);margin-top:36px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.detail-points div{padding:20px 20px 20px 0}.detail-points div+div{padding-left:20px;border-left:1px solid var(--line)}.detail-points strong,.detail-points span{display:block}.detail-points span{margin-top:7px;color:var(--muted);font-size:.87rem;line-height:1.5}
.component-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.component-row span{padding:10px 13px;background:var(--paper);border:1px solid var(--line);font-size:.86rem;font-weight:700}
.software-detail{padding:clamp(80px,9vw,140px) 0;background:var(--ink);color:#fff;scroll-margin-top:90px}.software-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.65fr);gap:80px;align-items:end;margin-bottom:45px}.software-heading h2{max-width:900px;font-size:clamp(3rem,4.6vw,5.5rem);line-height:.97;letter-spacing:-.055em}.software-heading>p{color:rgba(255,255,255,.65);line-height:1.7}
.software-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid rgba(255,255,255,.16)}.software-card{padding:clamp(30px,4vw,60px);background:#fff;color:var(--ink)}.software-card-dark{background:#082a37;color:#fff;border-left:1px solid rgba(255,255,255,.16)}.software-card-head{display:flex;justify-content:space-between;color:var(--teal);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.software-card h3{margin:50px 0 18px;max-width:650px;font-size:clamp(1.8rem,2.5vw,3rem);line-height:1.06}.software-card p{line-height:1.7;color:var(--muted)}.software-card-dark p{color:rgba(255,255,255,.66)}.software-card ul{margin:26px 0 0;padding-left:1.1rem}.software-card li{margin:.65rem 0;line-height:1.5}
.services-index{background:#f1f3f0}.service-index-grid{display:grid;grid-template-columns:repeat(4,1fr)}.service-index-grid a{min-height:180px;padding:28px;border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}.service-index-grid a:last-child{border-right:1px solid var(--line)}.service-index-grid span{color:var(--teal);font-weight:800}.service-index-grid strong{max-width:260px;font-size:1.12rem;line-height:1.2}
.service-detail{padding:clamp(80px,9vw,140px) 0;border-bottom:1px solid var(--line);scroll-margin-top:90px}.service-detail-alt{background:#f1f3f0}.service-detail-dark{background:var(--ink);color:#fff}.service-detail-grid{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(280px,.42fr);gap:clamp(35px,6vw,95px);align-items:start}.service-number{font-size:clamp(3.4rem,5vw,6rem);line-height:1;color:var(--teal);font-weight:700;letter-spacing:-.06em}.service-main h2{max-width:900px;font-size:clamp(2.8rem,4.5vw,5.4rem);line-height:.97;letter-spacing:-.055em}.service-lead{max-width:850px;margin:22px 0;font-size:1.3rem;line-height:1.52}.service-main>p:not(.eyebrow):not(.service-lead){max-width:830px;color:var(--muted);font-size:1.03rem;line-height:1.75}.service-detail-dark .service-main>p:not(.eyebrow):not(.service-lead){color:rgba(255,255,255,.65)}
.service-note{padding:26px;border-top:2px solid var(--teal);background:rgba(8,119,125,.06)}.service-detail-dark .service-note{background:rgba(255,255,255,.06)}.service-note strong,.service-note span{display:block}.service-note strong{margin-top:20px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--teal)}.service-note strong:first-child{margin-top:0}.service-note span{margin-top:6px;color:var(--muted);line-height:1.55;font-size:.9rem}.service-detail-dark .service-note span{color:rgba(255,255,255,.65)}
.method-list{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-top:35px;background:var(--line);border:1px solid var(--line)}.method-list span{padding:17px;background:var(--paper);font-weight:700;font-size:.9rem}
.contact-hero{padding:clamp(80px,10vw,160px) 0;background:linear-gradient(110deg,#f4f6f4 0 52%,#e3eeee 52%)}.contact-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(500px,1.2fr);gap:clamp(60px,9vw,150px);align-items:start}.contact-grid h1{max-width:700px;font-size:clamp(4rem,7vw,8rem);line-height:.88;letter-spacing:-.07em}.contact-lead{max-width:600px;margin:24px 0 34px;color:var(--muted);font-size:1.2rem;line-height:1.7}
.contact-offices{display:grid;grid-template-columns:1fr 1fr;border:1px solid rgba(7,36,49,.15)}.office-card{min-height:380px;padding:38px;background:rgba(255,255,255,.68)}.office-card+.office-card{border-left:1px solid rgba(7,36,49,.15)}.office-card>span{color:var(--teal);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.office-card h2{margin:45px 0 20px;font-size:2.3rem}.office-card p{min-height:80px;color:var(--muted);line-height:1.65}.office-card a{display:block;margin-top:10px;font-weight:700}.contact-band{padding:26px 0;background:var(--ink);color:rgba(255,255,255,.68);text-align:center;font-size:.88rem;text-transform:uppercase;letter-spacing:.08em}
@media(max-width:980px){.inner-hero-grid,.product-detail-grid,.software-heading,.service-detail-grid,.contact-grid{grid-template-columns:1fr}.product-detail-reverse .product-detail-media{order:0}.detail-points,.service-index-grid{grid-template-columns:1fr 1fr}.software-grid,.contact-offices{grid-template-columns:1fr}.software-card-dark,.office-card+.office-card{border-left:0;border-top:1px solid var(--line)}.contact-hero{background:#f4f6f4}}
@media(max-width:640px){.inner-hero h1{font-size:3.6rem}.product-detail-media{height:340px}.detail-points,.service-index-grid,.method-list{grid-template-columns:1fr}.detail-points div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}.service-index-grid a{border-right:1px solid var(--line);min-height:130px}}


/* Team profiles: fixed photo size, full-width biography below */
.team-grid-fixed{
  align-items:start;
}
.team-card-fixed{
  display:block;
  min-height:0;
}
.team-summary-row{
  display:grid;
  grid-template-columns:42% 58%;
  min-height:340px;
}
.team-card-fixed .team-photo{
  height:340px;
  min-height:340px;
}
.team-card-fixed .team-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}
.team-card-fixed .team-content{
  min-height:340px;
  padding:38px;
}
.team-profile{
  border-top:1px solid var(--line);
}
.team-profile summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 38px;
  cursor:pointer;
  font-weight:700;
}
.team-profile summary span{
  transition:transform .2s ease;
}
.team-profile[open] summary span{
  transform:rotate(45deg);
}
.team-bio{
  padding:0 38px 34px;
}
.team-bio p{
  max-width:960px;
  margin:0;
  color:var(--muted);
  font-size:.98rem;
  line-height:1.75;
}
@media(max-width:1100px){
  .team-summary-row{grid-template-columns:1fr}
  .team-card-fixed .team-photo{height:300px;min-height:300px}
  .team-card-fixed .team-content{min-height:0}
}
@media(max-width:640px){
  .team-profile summary,
  .team-bio{padding-left:24px;padding-right:24px}
}


/* About — GeoSyn in the field gallery */
.field-gallery{
  padding:clamp(64px,7vw,100px) 0;
  background:#eef1ee;
  border-top:1px solid var(--line);
}

.field-gallery-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,.55fr);
  gap:clamp(36px,6vw,90px);
  align-items:end;
  margin-bottom:32px;
}

.field-gallery-heading h2{
  max-width:760px;
  font-size:clamp(2.7rem,4vw,4.8rem);
  line-height:.96;
  letter-spacing:-.05em;
}

.field-gallery-heading>p{
  max-width:540px;
  color:var(--muted);
  font-size:.96rem;
  line-height:1.65;
}

/* Compact editorial grid: no image controls the row height */
.field-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  align-items:start;
}

.field-shot,
.field-shot-large,
.field-shot-wide{
  position:relative;
  margin:0;
  height:230px;
  overflow:hidden;
  background:#d9dfdc;
  grid-column:auto;
  grid-row:auto;
}

.field-shot img,
.field-shot-large img,
.field-shot-wide img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  transition:transform .35s ease;
}

/* The technical plots/screenshots are the final three items:
   show the whole figure rather than cropping it. */
.field-gallery-grid .field-shot:nth-child(n+7) img{
  object-fit:contain;
  padding:10px;
  background:#fff;
}

/* Keep technical cards compact too */
.field-gallery-grid .field-shot:nth-child(n+7){
  height:240px;
  background:#fff;
}

.field-shot:hover img{
  transform:scale(1.012);
}

/* No zoom on plots/technical figures */
.field-gallery-grid .field-shot:nth-child(n+7):hover img{
  transform:none;
}

.field-shot figcaption{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  display:flex;
  gap:9px;
  align-items:center;
  padding:22px 16px 12px;
  color:#fff;
  font-size:.72rem;
  font-weight:700;
  background:linear-gradient(to top,rgba(4,25,33,.72),transparent);
}

.field-shot figcaption span{
  color:#6ce0dc;
  font-size:.65rem;
  letter-spacing:.08em;
}

/* Technical cards get a light caption treatment so it remains legible */
.field-gallery-grid .field-shot:nth-child(n+7) figcaption{
  color:var(--ink);
  background:linear-gradient(to top,rgba(255,255,255,.98),rgba(255,255,255,.72),transparent);
}

.field-gallery-grid .field-shot:nth-child(n+7) figcaption span{
  color:var(--teal);
}

@media(max-width:950px){
  .field-gallery-heading{
    grid-template-columns:1fr;
    margin-bottom:28px;
  }

  .field-gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .field-shot,
  .field-shot-large,
  .field-shot-wide{
    height:220px;
  }

  .field-gallery-grid .field-shot:nth-child(n+7){
    height:230px;
  }
}

@media(max-width:640px){
  .field-gallery{
    padding:54px 0;
  }

  .field-gallery-grid{
    grid-template-columns:1fr;
    gap:10px;
  }

  .field-shot,
  .field-shot-large,
  .field-shot-wide,
  .field-gallery-grid .field-shot:nth-child(n+7){
    height:230px;
  }

  .field-gallery-grid .field-shot:nth-child(n+7) img{
    padding:8px;
  }
}


/* Homepage full-background hero v10 */
.hero-full{
  position:relative;
  min-height:clamp(440px,46vw,620px);
  overflow:hidden;
  background:#dce9eb;
}
.hero-full-bg{
  position:absolute;
  inset:0;
  background-image:url("../images/hero-concept.jpg");
  background-size:cover;
  background-position:center 52%;
  background-repeat:no-repeat;
  z-index:0;
}
.hero-full-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    linear-gradient(
      90deg,
      rgba(247,249,247,.97) 0%,
      rgba(247,249,247,.90) 24%,
      rgba(247,249,247,.56) 39%,
      rgba(247,249,247,.14) 53%,
      rgba(247,249,247,0) 68%
    );
}
.hero-full-inner{
  position:relative;
  z-index:2;
  min-height:inherit;
  display:flex;
  align-items:center;
}
.hero-full-copy{
  width:min(760px,48vw);
  padding:clamp(48px,6vw,92px) 0;
}
.hero-full-copy h1{
  margin:0;
  font-size:clamp(3.6rem,6.2vw,7.2rem);
  line-height:.91;
  letter-spacing:-.065em;
  color:var(--ink);
}
.hero-full-copy p{
  max-width:640px;
  margin:28px 0 0;
  color:#263d46;
  font-size:clamp(1rem,1.35vw,1.24rem);
  line-height:1.65;
}
.hero-full-copy .hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:34px;
}
.hero-full .button-secondary{
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(2px);
}
.hero-established{
  position:absolute;
  right:clamp(34px,4vw,76px);
  bottom:clamp(28px,4vw,48px);
  display:grid;
  padding-left:18px;
  border-left:3px solid rgba(255,255,255,.92);
  color:#fff;
  text-shadow:0 1px 8px rgba(0,26,38,.28);
}
.hero-established span{
  font-size:.72rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero-established strong{
  margin-top:2px;
  font-size:2rem;
  line-height:1;
}

@media(max-width:980px){
  .hero-full{
    min-height:560px;
  }
  .hero-full-bg{
    background-position:62% center;
  }
  .hero-full-overlay{
    background:
      linear-gradient(
        90deg,
        rgba(247,249,247,.96) 0%,
        rgba(247,249,247,.85) 46%,
        rgba(247,249,247,.20) 76%,
        rgba(247,249,247,0) 100%
      );
  }
  .hero-full-copy{
    width:min(650px,68vw);
  }
}
@media(max-width:700px){
  .hero-full{
    min-height:620px;
  }
  .hero-full-bg{
    background-position:68% center;
  }
  .hero-full-overlay{
    background:linear-gradient(
      to bottom,
      rgba(247,249,247,.96) 0%,
      rgba(247,249,247,.88) 46%,
      rgba(247,249,247,.32) 72%,
      rgba(247,249,247,.05) 100%
    );
  }
  .hero-full-inner{
    align-items:flex-start;
  }
  .hero-full-copy{
    width:100%;
    padding-top:54px;
  }
  .hero-full-copy h1{
    font-size:clamp(3.2rem,14vw,5rem);
  }
  .hero-established{
    right:20px;
    bottom:22px;
  }
}
