:root {
  --teal: #00adb5;
  --slate: #393e46;
  --paper: #eeeeee;
  --ink: #222831;
  --white: #fff;
  --muted: #a9b0b8;
  --line: rgba(255,255,255,.13);
  --radius: 10px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Comfortaa", Arial, sans-serif; font-size: 16px; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }

.site-header { height: 82px; padding: 0 5vw; display: grid; grid-template-columns: 210px 1fr auto; align-items: center; gap: 28px; background: rgba(34,40,49,.97); color: var(--paper); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 20; backdrop-filter: blur(14px); }
.brand { height: 60px; display: flex; align-items: center; overflow: hidden; }
.brand img { width: 190px; transform: translateY(1px); }
nav { display: flex; justify-content: flex-end; align-items: center; gap: clamp(14px,1.65vw,30px); font-size: .76rem; }
nav a { opacity: .82; transition: .2s ease; }
nav a:hover { opacity: 1; color: var(--teal); }
.language { padding-left: 22px; border-left: 1px solid var(--line); }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 50px; padding: 13px 22px; border: 1px solid var(--teal); border-radius: 5px; background: var(--teal); color: #10292c; font-weight: 700; font-size: .82rem; box-shadow: 0 12px 30px rgba(0,173,181,.16); transition: transform .2s ease, background .2s ease; }
.button:hover { transform: translateY(-2px); background: #18c1c9; }
.button-small { min-height: 42px; padding: 9px 17px; }

.hero { min-height: calc(100vh - 82px); padding: 7vw 5vw 6vw; display: grid; grid-template-columns: minmax(0,1fr) minmax(480px,.92fr); gap: 6vw; align-items: center; color: var(--paper); background: var(--ink); position: relative; overflow: hidden; }
.hero::before { content: ""; position: absolute; width: 40vw; height: 40vw; left: -25vw; top: -20vw; border: 1px solid rgba(0,173,181,.15); border-radius: 50%; box-shadow: 0 0 100px rgba(0,173,181,.08); }
.hero-copy { position: relative; z-index: 1; }
.eyebrow { margin: 0 0 24px; display: flex; align-items: center; gap: 11px; color: var(--teal); font-size: .67rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.eyebrow span { width: 25px; height: 1px; background: currentColor; }
.eyebrow.dark { color: #167b80; }
h1,h2,h3,p { margin-top: 0; }
h1 { max-width: 800px; margin-bottom: 26px; color: var(--white); font-size: clamp(2.7rem,5vw,5.6rem); line-height: 1.02; letter-spacing: -.045em; }
h1 em { color: var(--teal); font-style: normal; }
.hero-lead { max-width: 670px; margin-bottom: 34px; color: #c7ccd2; font-size: clamp(1rem,1.35vw,1.22rem); }
.actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.text-link { display: inline-flex; gap: 10px; align-items: center; padding-bottom: 3px; border-bottom: 1px solid var(--slate); font-size: .8rem; font-weight: 700; }
.text-link:hover { color: var(--teal); border-color: var(--teal); }
.microcopy { margin: 23px 0 0; color: #858e98; font-size: .69rem; }

.twin-panel { align-self: stretch; min-height: 520px; display: grid; grid-template-rows: auto 1fr auto; background: #192027; border: 1px solid rgba(0,173,181,.32); box-shadow: 0 28px 90px rgba(0,0,0,.38); position: relative; }
.panel-topline,.panel-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 17px; color: #aeb8c0; font-size: .55rem; letter-spacing: .1em; border-bottom: 1px solid var(--line); }
.status { display: flex; align-items: center; gap: 6px; color: #a5e9e6; }
.status i { width: 7px; height: 7px; display: inline-block; background: var(--teal); border-radius: 50%; box-shadow: 0 0 11px var(--teal); }
.plant-visual { position: relative; overflow: hidden; display: grid; place-items: center; min-height: 400px; background: radial-gradient(circle at 52% 43%, rgba(0,173,181,.13), transparent 37%), linear-gradient(135deg,#1b232b,#10161b); }
.plant-visual .grid { position: absolute; inset: 0; opacity: .23; background-image: linear-gradient(rgba(0,173,181,.26) 1px,transparent 1px),linear-gradient(90deg,rgba(0,173,181,.26) 1px,transparent 1px); background-size: 34px 34px; transform: perspective(400px) rotateX(60deg) scale(1.4) translateY(25%); }
.visual-mark { width: 27%; opacity: .13; filter: drop-shadow(0 0 20px rgba(0,173,181,.4)); }
.plant-visual p { position: absolute; bottom: 18px; margin: 0; color: #80909b; font-size: .57rem; letter-spacing: .08em; text-transform: uppercase; }
.process-line { position: absolute; height: 2px; background: linear-gradient(90deg,transparent,var(--teal),transparent); opacity: .6; }
.line-one { width: 78%; transform: rotate(-17deg); }
.line-two { width: 64%; transform: rotate(23deg); }
.node { position: absolute; width: 10px; height: 10px; background: var(--teal); border: 2px solid #b6fbf8; border-radius: 50%; box-shadow: 0 0 14px var(--teal); }
.node-a { left: 24%; top: 59%; }.node-b { left: 53%; top: 35%; }.node-c { right: 18%; top: 58%; }
.panel-footer { justify-content: center; border-top: 1px solid var(--line); border-bottom: 0; flex-wrap: wrap; }
.panel-footer b { width: 16px; height: 1px; background: var(--teal); opacity: .5; }

.capabilities { padding: 0 5vw; display: grid; grid-template-columns: repeat(3,1fr); background: var(--ink); color: var(--paper); border-top: 1px solid var(--line); }
.capabilities article { padding: 30px clamp(20px,3vw,48px); border-right: 1px solid var(--line); display: grid; grid-template-columns: auto 1fr; column-gap: 18px; }
.capabilities article:first-child { border-left: 1px solid var(--line); }
.capabilities strong { grid-row: 1 / 3; color: var(--teal); font-size: .65rem; }
.capabilities h2 { margin: 0; font-size: .9rem; }
.capabilities p { margin: 4px 0 0; color: #8e98a2; font-size: .68rem; line-height: 1.5; }

.section { padding: 110px 7vw; }
.section-intro { display: grid; grid-template-columns: 1.2fr .8fr; gap: 8vw; align-items: end; margin-bottom: 55px; }
.section-intro .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
.section-intro h2,.work h2,.about h2,.process h2,.cta h2 { margin: 0; font-size: clamp(2rem,3.5vw,4rem); line-height: 1.13; letter-spacing: -.035em; }
.section-intro > p { margin: 0; color: #5b626a; font-size: .9rem; }
.solution-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 22px; }
.solution-card { min-height: 475px; padding: 40px; display: flex; flex-direction: column; border: 1px solid #cfd3d5; border-radius: var(--radius); background: #f7f7f5; }
.solution-card.featured { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.card-number { color: #177e83; font-size: .63rem; font-weight: 700; letter-spacing: .08em; }
.solution-card h3 { max-width: 650px; margin: 23px 0 18px; font-size: clamp(1.35rem,2vw,2.2rem); line-height: 1.22; }
.solution-card > p:not(.card-number) { max-width: 640px; color: #626970; font-size: .84rem; }
.solution-card.featured > p:not(.card-number) { color: #aeb7bf; }
.solution-card ul { margin: auto 0 28px; padding: 20px 0 0; list-style: none; border-top: 1px solid rgba(128,136,143,.25); display: flex; flex-wrap: wrap; gap: 8px; }
.solution-card li { padding: 7px 10px; border: 1px solid rgba(128,136,143,.3); border-radius: 4px; font-size: .62rem; }
.solution-card a,.case-copy a { color: #08777c; font-size: .72rem; font-weight: 700; }
.featured a { color: var(--teal); }

.work { padding: 110px 7vw; background: var(--ink); color: var(--paper); }
.work-heading { margin-bottom: 55px; display: grid; grid-template-columns: 1.4fr .6fr; align-items: end; gap: 8vw; }
.work-heading > p { margin: 0; color: #9fa8b0; font-size: .8rem; }
.case-grid { display: grid; gap: 24px; }
.case-card { display: grid; grid-template-columns: .8fr 1.2fr; min-height: 420px; border: 1px solid var(--line); background: #282f38; }
.case-visual { min-height: 360px; padding: 24px; position: relative; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; background: linear-gradient(145deg,rgba(0,173,181,.2),transparent 60%),#151d23; }
.case-visual::before,.case-visual::after { content:""; position:absolute; width:70%; height:1px; background:var(--teal); opacity:.25; top:52%; left:15%; transform:rotate(24deg); }
.case-visual::after { transform:rotate(-20deg); }
.case-visual span { color: #9fabb4; font-size: .58rem; letter-spacing: .09em; }
.case-symbol { align-self: flex-end; color: rgba(0,173,181,.45); font-size: clamp(4rem,8vw,8rem); font-weight: 700; line-height: 1; }
.case-copy { padding: clamp(34px,5vw,70px); display: flex; flex-direction: column; justify-content: center; }
.case-copy h3 { margin-bottom: 18px; font-size: clamp(1.5rem,2.4vw,2.8rem); line-height: 1.2; }
.case-copy > p { max-width: 760px; color: #a7b0b8; font-size: .83rem; }
.case-copy dl { margin: 28px 0; padding: 24px 0; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.case-copy dl div { padding-right: 16px; }
.case-copy dt { color: #7f8992; font-size: .56rem; text-transform: uppercase; }
.case-copy dd { margin: 4px 0 0; font-size: .72rem; }
.case-copy a { color: var(--teal); }

.about { display: grid; grid-template-columns: .9fr 1.1fr; gap: 10vw; background: #f5f5f2; }
.about-copy > p { color: #525a61; font-size: 1rem; }
.proof-grid { margin-top: 40px; display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid #cbd0d2; border-left: 1px solid #cbd0d2; }
.proof-grid article { min-height: 130px; padding: 25px; display: flex; flex-direction: column; justify-content: space-between; border-right: 1px solid #cbd0d2; border-bottom: 1px solid #cbd0d2; }
.proof-grid strong { color: #08777c; font-size: 1.4rem; }
.proof-grid span { color: #666e74; font-size: .67rem; }

.process { padding: 110px 7vw; background: var(--slate); color: var(--paper); }
.process h2 { max-width: 880px; margin-bottom: 60px; }
.process ol { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.process li { padding: 25px 0; display: grid; grid-template-columns: 70px 1fr; align-items: start; border-bottom: 1px solid var(--line); }
.process li > span { color: var(--teal); font-size: .64rem; }
.process strong { font-size: .92rem; }
.process li p { margin: 3px 0 0; color: #aab2ba; font-size: .72rem; }

.technology { padding: 40px 7vw; display: flex; align-items: center; justify-content: space-between; gap: 35px; background: #f5f5f2; border-bottom: 1px solid #d4d7d8; }
.technology p { max-width: 330px; margin: 0; color: #5f676d; font-size: .7rem; }
.technology div { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.technology span { padding: 7px 10px; border: 1px solid #c4c9cb; border-radius: 3px; color: #515960; font-size: .58rem; }

.cta { min-height: 620px; padding: 110px 7vw; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: var(--ink); color: var(--paper); position: relative; overflow: hidden; }
.cta-mark { position: absolute; width: min(45vw,650px); opacity: .035; right: -8vw; bottom: -16vw; }
.cta h2 { max-width: 900px; }
.cta > p:not(.eyebrow) { max-width: 700px; margin: 26px 0 34px; color: #aeb7bf; font-size: .85rem; }
.actions.center { justify-content: center; }
.text-link.light { color: var(--paper); border-color: #69727c; }

footer { padding: 68px 7vw 26px; display: grid; grid-template-columns: 1.4fr repeat(3,1fr); gap: 5vw; background: #171e24; color: var(--paper); }
footer > div:not(.footer-brand) { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; font-size: .68rem; }
footer strong { margin-bottom: 8px; color: var(--teal); font-size: .6rem; text-transform: uppercase; letter-spacing: .08em; }
footer p { margin: 0; color: #87919a; }
footer a { color: #aeb6bd; }
.footer-brand img { width: 210px; }
.footer-brand p { max-width: 340px; margin-top: 8px; font-size: .66rem; }
.copyright { grid-column: 1 / -1; padding-top: 24px; border-top: 1px solid var(--line); font-size: .56rem; }
.not-found { min-height: 100vh; padding: 8vw; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; background: radial-gradient(circle at 78% 24%, rgba(0,173,181,.2), transparent 32%), var(--ink); color: var(--white); }
.not-found img { width: min(340px, 70vw); margin-bottom: 52px; }
.not-found h1 { max-width: 780px; margin: 0 0 22px; font-size: clamp(2.4rem, 7vw, 5.8rem); line-height: .95; letter-spacing: -.07em; }
.not-found p:not(.eyebrow) { max-width: 620px; margin: 0 0 30px; color: #c9d1d5; font-size: 1rem; line-height: 1.8; }

/* Service pages */
.service-hero { min-height: 680px; padding: 95px 7vw 85px; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(390px,.85fr); gap: 7vw; align-items: center; background: var(--ink); color: var(--paper); overflow: hidden; }
.service-hero h1 { max-width: 980px; font-size: clamp(2.7rem,4.8vw,5.35rem); }
.service-hero .hero-lead { max-width: 760px; }
.service-visual { min-height: 440px; padding: 32px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; border: 1px solid rgba(0,173,181,.34); background: radial-gradient(circle at 55% 40%,rgba(0,173,181,.2),transparent 34%),#171f26; }
.service-visual::before { content:""; position:absolute; inset:0; opacity:.22; background-image:linear-gradient(rgba(0,173,181,.24) 1px,transparent 1px),linear-gradient(90deg,rgba(0,173,181,.24) 1px,transparent 1px); background-size:38px 38px; }
.service-visual > * { position: relative; z-index: 1; }
.service-visual .visual-label { color: #93a1ab; font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.service-visual strong { color: rgba(0,173,181,.68); font-size: clamp(4rem,10vw,9rem); line-height: .9; letter-spacing: -.08em; }
.service-visual dl { margin: 0; display: grid; grid-template-columns: repeat(2,1fr); gap: 1px; background: rgba(255,255,255,.12); }
.service-visual dl div { padding: 13px; background: #1d262e; }
.service-visual dt { color: #77838d; font-size: .5rem; text-transform: uppercase; }
.service-visual dd { margin: 3px 0 0; font-size: .65rem; }
.service-intro { padding: 95px 7vw; display: grid; grid-template-columns: .8fr 1.2fr; gap: 9vw; background: #f6f6f3; }
.service-intro h2,.service-section h2,.case-feature h2,.faq h2 { margin: 0; font-size: clamp(2rem,3.25vw,3.65rem); line-height: 1.16; letter-spacing: -.035em; }
.service-intro-copy { max-width: 780px; color: #50585f; }
.service-intro-copy p:first-child { font-size: 1.02rem; }
.service-section { padding: 100px 7vw; background: var(--paper); }
.section-heading { margin-bottom: 48px; display: grid; grid-template-columns: 1fr .65fr; gap: 8vw; align-items: end; }
.section-heading > p { margin: 0; color: #5e666c; font-size: .82rem; }
.application-grid { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid #cbd0d2; border-left: 1px solid #cbd0d2; }
.application-grid article { min-height: 180px; padding: 28px; border-right: 1px solid #cbd0d2; border-bottom: 1px solid #cbd0d2; background: #f6f6f3; }
.application-grid strong { display: block; margin-bottom: 30px; color: #0b7d82; font-size: .64rem; }
.application-grid p { margin: 0; color: #4f575e; font-size: .76rem; }
.scope-section { background: var(--ink); color: var(--paper); }
.scope-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.scope-card { min-height: 380px; padding: 34px; display: flex; flex-direction: column; border: 1px solid var(--line); background: #282f38; }
.scope-card .scope-number { color: var(--teal); font-size: .62rem; }
.scope-card h3 { margin: 25px 0 16px; font-size: 1.4rem; line-height: 1.25; }
.scope-card ul { margin: auto 0 0; padding: 24px 0 0; list-style: none; border-top: 1px solid var(--line); }
.scope-card li { padding: 6px 0; color: #aeb7bf; font-size: .7rem; }
.scope-card li::before { content:"+"; margin-right: 8px; color: var(--teal); }
.case-feature { padding: 100px 7vw; display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; background: var(--slate); color: var(--paper); }
.case-feature-visual { min-height: 440px; padding: 34px; position: relative; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; border: 1px solid rgba(0,173,181,.3); background: linear-gradient(145deg,rgba(0,173,181,.19),transparent 58%),#1a2229; }
.case-feature-visual::before,.case-feature-visual::after { content:""; position:absolute; width:85%; height:1px; left:7%; top:51%; background:var(--teal); opacity:.28; transform:rotate(24deg); }
.case-feature-visual::after { transform:rotate(-19deg); }
.case-feature-visual span,.case-feature-visual strong { position:relative; z-index:1; }
.case-feature-visual span { color:#8c9aa4; font-size:.57rem; letter-spacing:.09em; }
.case-feature-visual strong { align-self:flex-end; color:rgba(0,173,181,.5); font-size:clamp(5rem,10vw,9rem); line-height:1; }
.case-feature-copy { display: flex; flex-direction: column; justify-content: center; }
.case-feature-copy > p { margin: 24px 0; color: #b0b8bf; font-size: .82rem; }
.case-facts { display: grid; grid-template-columns: repeat(3,1fr); margin: 12px 0 30px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.case-facts div { padding: 19px 12px 19px 0; }
.case-facts span { display: block; color: #7f8a93; font-size: .53rem; text-transform: uppercase; }
.case-facts strong { font-size: .68rem; }
.delivery-process { padding: 100px 7vw; background: #f6f6f3; }
.delivery-process ol { margin: 48px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid #c8cdcf; border-left: 1px solid #c8cdcf; }
.delivery-process li { min-height: 175px; padding: 28px; border-right: 1px solid #c8cdcf; border-bottom: 1px solid #c8cdcf; }
.delivery-process li span { display:block; margin-bottom:28px; color:#087b80; font-size:.6rem; }
.delivery-process li p { margin:0; color:#4d555b; font-size:.74rem; }
.faq { padding: 100px 7vw; background: var(--paper); }
.faq-layout { display: grid; grid-template-columns: .7fr 1.3fr; gap: 9vw; }
.faq-list { border-top: 1px solid #bec4c7; }
.faq details { border-bottom: 1px solid #bec4c7; }
.faq summary { padding: 22px 36px 22px 0; cursor: pointer; font-size: .82rem; font-weight: 700; position: relative; }
.faq summary::marker { color: var(--teal); }
.faq details p { max-width: 800px; padding: 0 0 22px; margin: 0; color: #555e64; font-size: .76rem; }
.service-cta { min-height: 520px; }

/* Case studies */
.case-study-hero { min-height: 720px; padding: 95px 7vw 80px; display: grid; grid-template-columns: minmax(0,1.15fr) minmax(390px,.85fr); gap: 7vw; align-items: center; background: var(--ink); color: var(--paper); }
.case-study-hero h1 { font-size: clamp(2.65rem,4.7vw,5.2rem); }
.case-study-hero .hero-lead { max-width: 800px; }
.case-media-placeholder { min-height: 480px; padding: 30px; position: relative; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; border: 1px solid rgba(0,173,181,.33); background: radial-gradient(circle at 60% 42%,rgba(0,173,181,.17),transparent 34%),#172028; }
.case-media-placeholder::before,.case-media-placeholder::after { content:""; position:absolute; width:90%; height:1px; left:5%; top:52%; background:var(--teal); opacity:.3; transform:rotate(24deg); }
.case-media-placeholder::after { transform:rotate(-20deg); }
.case-media-placeholder > * { position:relative; z-index:1; }
.case-media-placeholder .media-label { color:#93a1ab; font-size:.57rem; letter-spacing:.1em; text-transform:uppercase; }
.case-media-placeholder strong { align-self:flex-end; color:rgba(0,173,181,.53); font-size:clamp(5rem,11vw,10rem); line-height:1; letter-spacing:-.08em; }
.case-media-placeholder p { margin:0; color:#778690; font-size:.58rem; text-transform:uppercase; letter-spacing:.08em; }
.case-kpis { padding: 0 7vw; display: grid; grid-template-columns: repeat(4,1fr); background: var(--ink); color: var(--paper); border-top:1px solid var(--line); }
.case-kpis div { min-height:120px; padding:26px; border-right:1px solid var(--line); }
.case-kpis div:first-child { border-left:1px solid var(--line); }
.case-kpis span { display:block; margin-bottom:10px; color:#76828c; font-size:.52rem; text-transform:uppercase; }
.case-kpis strong { color:var(--paper); font-size:.75rem; }
.story-section { padding: 100px 7vw; display: grid; grid-template-columns: .72fr 1.28fr; gap: 10vw; background:#f6f6f3; }
.story-section.dark { background:var(--slate); color:var(--paper); }
.story-section h2 { margin:0; font-size:clamp(2rem,3.25vw,3.7rem); line-height:1.15; letter-spacing:-.035em; }
.story-copy { max-width:850px; color:#50585e; }
.story-section.dark .story-copy { color:#b2bac1; }
.story-copy > p:first-child { font-size:1rem; }
.story-copy ul { margin:28px 0 0; padding:0; list-style:none; border-top:1px solid #c8cdcf; }
.story-section.dark .story-copy ul { border-color:var(--line); }
.story-copy li { padding:12px 0; border-bottom:1px solid #c8cdcf; font-size:.76rem; }
.story-section.dark .story-copy li { border-color:var(--line); }
.story-copy li::before { content:"+"; margin-right:10px; color:#087b80; }
.story-section.dark .story-copy li::before { color:var(--teal); }
.data-section { padding:100px 7vw; background:var(--paper); }
.data-section h2 { max-width:850px; margin:0 0 48px; font-size:clamp(2rem,3.25vw,3.7rem); line-height:1.15; letter-spacing:-.035em; }
.data-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #c6ccce; border-left:1px solid #c6ccce; }
.data-grid article { min-height:175px; padding:28px; border-right:1px solid #c6ccce; border-bottom:1px solid #c6ccce; background:#f7f7f5; }
.data-grid strong { display:block; margin-bottom:28px; color:#087b80; font-size:.62rem; }
.data-grid p { margin:0; color:#4e565c; font-size:.73rem; }
.outcome-section { padding:100px 7vw; background:var(--ink); color:var(--paper); }
.outcome-heading { display:grid; grid-template-columns:1fr .7fr; gap:8vw; align-items:end; margin-bottom:48px; }
.outcome-heading h2 { margin:0; font-size:clamp(2rem,3.25vw,3.7rem); line-height:1.15; letter-spacing:-.035em; }
.outcome-heading p { margin:0; color:#aab3ba; font-size:.8rem; }
.outcome-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.outcome-grid article { min-height:170px; padding:28px; border:1px solid var(--line); background:#282f38; }
.outcome-grid strong { display:block; margin-bottom:20px; color:var(--teal); font-size:.61rem; }
.outcome-grid p { margin:0; color:#b2bac1; font-size:.75rem; }
.confidentiality { padding:36px 7vw; display:grid; grid-template-columns:auto 1fr; gap:20px; align-items:center; background:#0f7d82; color:#efffff; }
.confidentiality strong { font-size:.65rem; text-transform:uppercase; letter-spacing:.08em; }
.confidentiality p { margin:0; max-width:1050px; font-size:.7rem; }

/* Index, about and contact pages */
.inner-hero { min-height:520px; padding:100px 7vw 80px; display:flex; flex-direction:column; justify-content:center; background:var(--ink); color:var(--paper); }
.inner-hero h1 { max-width:1050px; }
.inner-hero .hero-lead { max-width:820px; margin-bottom:0; }
.case-index { padding:95px 7vw; background:#f6f6f3; }
.case-index-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.case-index-card { min-height:560px; display:flex; flex-direction:column; border:1px solid #c8cdcf; background:var(--white); }
.case-index-visual { min-height:245px; padding:24px; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; background:linear-gradient(145deg,rgba(0,173,181,.18),transparent 60%),var(--ink); color:var(--paper); }
.case-index-visual::before,.case-index-visual::after { content:""; position:absolute; width:80%; height:1px; left:10%; top:52%; background:var(--teal); opacity:.28; transform:rotate(22deg); }
.case-index-visual::after { transform:rotate(-18deg); }
.case-index-visual span,.case-index-visual strong { position:relative; z-index:1; }
.case-index-visual span { color:#98a4ad; font-size:.56rem; letter-spacing:.08em; }
.case-index-visual strong { align-self:flex-end; color:rgba(0,173,181,.5); font-size:5.5rem; line-height:1; }
.case-index-copy { flex:1; padding:34px; display:flex; flex-direction:column; }
.case-index-copy h2 { margin-bottom:17px; font-size:clamp(1.4rem,2.2vw,2.35rem); line-height:1.22; }
.case-index-copy > p { color:#596168; font-size:.76rem; }
.case-index-copy dl { margin:auto 0 25px; padding:22px 0; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #d2d6d8; border-bottom:1px solid #d2d6d8; }
.case-index-copy dt { color:#7b848b; font-size:.5rem; text-transform:uppercase; }
.case-index-copy dd { margin:4px 0 0; font-size:.6rem; }
.case-index-copy a { color:#087b80; font-size:.7rem; font-weight:700; }
.discipline-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.discipline-grid article { min-height:320px; padding:32px; display:flex; flex-direction:column; border:1px solid #c7ccce; background:#f7f7f5; }
.discipline-grid strong { color:#087b80; font-size:.62rem; }
.discipline-grid h3 { margin:26px 0 14px; font-size:1.25rem; }
.discipline-grid p { margin:auto 0 0; color:#565e64; font-size:.73rem; }
.reach-section { padding:95px 7vw; display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; background:var(--slate); color:var(--paper); }
.reach-section h2 { margin:0; font-size:clamp(2rem,3.25vw,3.7rem); line-height:1.15; }
.reach-copy { color:#b0b8bf; font-size:.8rem; }
.reach-copy address { margin-top:30px; padding-top:24px; border-top:1px solid var(--line); color:var(--paper); font-style:normal; }
.contact-layout { padding:95px 7vw; display:grid; grid-template-columns:1.2fr .8fr; gap:6vw; background:#f6f6f3; }
.lead-form { padding:38px; border:1px solid #c9ced0; background:var(--white); }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.form-field { display:flex; flex-direction:column; gap:7px; }
.form-field.full { grid-column:1 / -1; }
.form-field label,.consent label { color:#4d555b; font-size:.65rem; font-weight:700; }
.form-field input,.form-field select,.form-field textarea { width:100%; min-height:48px; padding:12px 13px; border:1px solid #bfc5c7; border-radius:3px; background:#fbfbfa; color:var(--ink); font:500 .76rem/1.4 "Comfortaa",Arial,sans-serif; }
.form-field textarea { min-height:130px; resize:vertical; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { outline:3px solid rgba(0,173,181,.18); border-color:#07848a; }
.consent { grid-column:1 / -1; display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:start; }
.consent input { margin-top:3px; }
.consent a { color:#087b80; text-decoration:underline; }
.form-note { grid-column:1 / -1; margin:0; color:#747d84; font-size:.59rem; }
.form-actions { grid-column:1 / -1; display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.prototype-note { color:#7a8389; font-size:.58rem; }
.contact-aside { display:flex; flex-direction:column; gap:18px; }
.contact-card { padding:30px; border:1px solid #c9ced0; background:var(--white); }
.contact-card.dark { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.contact-card h2 { margin-bottom:16px; font-size:1.3rem; }
.contact-card p,.contact-card address { margin:0 0 16px; color:#596168; font-size:.72rem; font-style:normal; }
.contact-card.dark p { color:#aab3ba; }
.contact-card a:not(.button) { display:block; margin-top:8px; color:#087b80; font-size:.7rem; font-weight:700; }
.legal-links { display:flex; gap:14px; flex-wrap:wrap; margin-top:14px; }
.legal-links a { color:#929da6; font-size:.57rem; text-decoration:underline; }
.related-guide-strip { padding:44px 7vw; display:grid; grid-template-columns:.75fr 1.25fr auto; gap:34px; align-items:center; border-top:1px solid #d1d6d8; border-bottom:1px solid #d1d6d8; background:#fff; }
.related-guide-strip h2 { margin:0; color:var(--ink); font-size:clamp(1.25rem,2vw,2.1rem); line-height:1.2; letter-spacing:-.03em; }
.related-guide-strip p { margin:0; color:#596168; font-size:.72rem; line-height:1.8; }
.resource-hero { min-height:520px; }
.resource-index { padding:95px 7vw; display:grid; grid-template-columns:1.1fr .9fr; gap:22px; background:#f6f6f3; }
.resource-card { min-height:360px; padding:38px; display:flex; flex-direction:column; border:1px solid #c8cdcf; background:#fff; }
.resource-card.featured-resource { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.resource-card-media { margin:-38px -38px 30px; border-bottom:1px solid rgba(0,173,181,.25); background:var(--ink); overflow:hidden; }
.resource-card-media img { width:100%; aspect-ratio:16/9; display:block; object-fit:cover; opacity:.94; }
.resource-card h2 { margin:24px 0 16px; font-size:clamp(1.45rem,2.35vw,2.8rem); line-height:1.18; letter-spacing:-.035em; }
.resource-card p:not(.card-number) { color:#596168; font-size:.78rem; line-height:1.8; }
.featured-resource p:not(.card-number) { color:#aeb7bf; }
.resource-card a { margin-top:auto; color:#087b80; font-size:.72rem; font-weight:700; }
.featured-resource a { color:var(--teal); }
.article-hero { min-height:680px; padding:95px 7vw 85px; display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; background:var(--ink); color:var(--paper); }
.article-hero::after { content:""; position:absolute; width:min(44vw,540px); height:min(44vw,540px); right:-11vw; bottom:-17vw; border:1px solid rgba(0,173,181,.28); border-radius:50%; box-shadow:0 0 90px rgba(0,173,181,.12); }
.article-hero > * { position:relative; z-index:1; }
.article-hero h1 { max-width:1100px; font-size:clamp(2.5rem,4.8vw,5.25rem); }
.article-hero .hero-lead { max-width:930px; margin-bottom:0; }
.article-body { padding:95px 7vw; display:grid; grid-template-columns:minmax(210px,.32fr) minmax(0,1fr); gap:6vw; background:linear-gradient(135deg,#f6f6f3 0%,#eeeeee 58%,#e8f3f3 100%); }
.article-sidebar { align-self:start; position:sticky; top:110px; padding:26px; border:1px solid rgba(34,40,49,.12); background:#fff; box-shadow:0 16px 50px rgba(34,40,49,.06); }
.article-sidebar a { display:block; padding:10px 0; border-top:1px solid #d9dddf; color:#5b636a; font-size:.65rem; font-weight:700; }
.article-content { max-width:930px; padding:48px 56px; border:1px solid rgba(34,40,49,.1); background:rgba(255,255,255,.76); box-shadow:0 24px 80px rgba(34,40,49,.08); }
.article-intro { padding:28px 30px; border:1px solid rgba(0,173,181,.22); border-left:5px solid var(--teal); background:#fff; box-shadow:0 18px 55px rgba(34,40,49,.07); color:#303941; font-size:.86rem; }
.article-content h2 { margin:52px 0 16px; padding-top:28px; border-top:1px solid rgba(34,40,49,.12); color:var(--ink); font-size:clamp(1.45rem,2.4vw,2.55rem); line-height:1.18; letter-spacing:-.035em; }
.article-content h2::before { content:""; display:block; width:42px; height:4px; margin-bottom:18px; background:var(--teal); }
.article-content p,.article-content li { color:#4e575e; font-size:.8rem; line-height:1.95; }
.article-content p { margin-top:0; margin-bottom:18px; }
.article-content ul,.article-content ol { margin:0 0 24px; padding-left:1.3rem; }
.article-content li { margin-bottom:8px; padding-left:4px; }
.article-content li::marker { color:var(--teal); }
.article-figure { margin:42px 0; border:1px solid rgba(0,173,181,.22); background:var(--ink); box-shadow:0 24px 80px rgba(34,40,49,.13); }
.article-figure img { width:100%; display:block; aspect-ratio:16/9; object-fit:cover; }
.article-figure figcaption { padding:14px 18px; color:#aeb7bf; font-size:.62rem; line-height:1.6; }
.article-callout { margin:44px 0; padding:30px; border:1px solid rgba(0,173,181,.35); background:var(--ink); color:var(--paper); }
.article-callout strong { display:block; margin-bottom:16px; color:var(--teal); font-size:.62rem; text-transform:uppercase; letter-spacing:.08em; }
.article-callout p { color:#b4bec6; }
.article-callout a { color:var(--teal); font-size:.72rem; font-weight:700; }
.article-cta { margin-top:54px; padding:36px; border:1px solid rgba(0,173,181,.22); background:#fff; }
.article-cta h2 { margin-top:0; padding-top:0; border:0; }
.article-cta h2::before { display:none; }
.article-faq details { border-top:1px solid #d0d5d7; }
.article-faq details:last-child { border-bottom:1px solid #d0d5d7; }
.article-faq summary { padding:18px 0; color:var(--ink); font-size:.82rem; font-weight:700; cursor:pointer; }
.article-faq summary::marker { color:var(--teal); }
.legal-hero { min-height:430px; position:relative; overflow:hidden; }
.legal-hero::after { content:""; position:absolute; width:min(44vw,520px); height:min(44vw,520px); right:-12vw; bottom:-18vw; border:1px solid rgba(0,173,181,.28); border-radius:50%; box-shadow:0 0 90px rgba(0,173,181,.12); }
.legal-document { padding:95px 7vw 105px; background:linear-gradient(135deg,#f6f6f3 0%,#eeeeee 58%,#e8f3f3 100%); color:var(--ink); }
.legal-content { width:min(960px,100%); margin:0 auto; padding:44px 52px 52px; border:1px solid rgba(34,40,49,.1); background:rgba(255,255,255,.68); box-shadow:0 24px 80px rgba(34,40,49,.08); }
.legal-content > p:first-child { padding:28px 30px; border:1px solid rgba(0,173,181,.22); border-left:5px solid var(--teal); background:#fff; box-shadow:0 18px 55px rgba(34,40,49,.07); color:#303941; font-size:.86rem; }
.legal-document h2 { margin:54px 0 18px; padding-top:26px; border-top:1px solid rgba(34,40,49,.12); color:var(--ink); font-size:clamp(1.35rem,2.25vw,2.35rem); line-height:1.18; letter-spacing:-.035em; }
.legal-document h2::before { content:""; display:block; width:42px; height:4px; margin-bottom:18px; background:var(--teal); }
.legal-document p,.legal-document li { color:#4e575e; font-size:.78rem; line-height:1.95; }
.legal-document p { margin-top:0; margin-bottom:18px; }
.legal-document a { color:#087b80; font-weight:700; text-underline-offset:3px; }
.legal-document ul { margin:0 auto 24px; padding:0 0 0 1.25rem; }
.legal-document li { padding-left:4px; margin-bottom:8px; }
.legal-document li::marker { color:var(--teal); }
.legal-pending { min-height:360px; }

@media (max-width: 1050px) {
  .site-header { grid-template-columns: 170px 1fr auto; }
  nav a:not(.language) { display: none; }
  .hero { grid-template-columns: 1fr; }
  .twin-panel { min-height: 460px; }
  .section-intro,.work-heading,.about { grid-template-columns: 1fr; }
  footer { grid-template-columns: 1.4fr repeat(2,1fr); }
  .service-hero { grid-template-columns: 1fr; }
  .service-intro,.case-feature,.faq-layout { grid-template-columns: 1fr; }
  .application-grid,.delivery-process ol { grid-template-columns: repeat(2,1fr); }
  .case-study-hero,.story-section { grid-template-columns:1fr; }
  .case-kpis { grid-template-columns:repeat(2,1fr); }
  .outcome-heading { grid-template-columns:1fr; }
  .reach-section,.contact-layout { grid-template-columns:1fr; }
  .related-guide-strip { grid-template-columns:1fr; }
  .resource-index { grid-template-columns:1fr; }
  .article-body { grid-template-columns:1fr; }
  .article-sidebar { position:static; display:grid; grid-template-columns:repeat(2,1fr); gap:0 18px; }
  .legal-document { padding:80px 5vw 90px; }
  .legal-content { padding:38px 36px 44px; }
}

@media (max-width: 760px) {
  .site-header { height: 68px; padding: 0 20px; grid-template-columns: 1fr auto auto; gap: 14px; }
  .brand { height: 50px; }.brand img { width: 150px; }
  .site-header .button-small { min-height: 38px; padding: 8px 11px; font-size: .65rem; }
  nav { gap: 0; }.language { padding-left: 0; border: 0; }
  .hero { min-height: auto; padding: 75px 22px 45px; gap: 50px; }
  h1 { font-size: clamp(2.65rem,13vw,4.2rem); }
  .twin-panel { min-height: 400px; }
  .plant-visual { min-height: 310px; }
  .capabilities,.solution-grid { grid-template-columns: 1fr; }
  .capabilities article { border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); }
  .section,.work,.process,.cta { padding: 80px 22px; }
  .section-intro { margin-bottom: 38px; }
  .solution-card { min-height: 440px; padding: 30px 24px; }
  .case-card { grid-template-columns: 1fr; }
  .case-visual { min-height: 260px; }
  .case-copy { padding: 30px 24px; }
  .case-copy dl { gap: 12px; }
  .case-copy dd { font-size: .63rem; }
  .about { gap: 40px; }
  .technology { align-items: flex-start; flex-direction: column; }
  .technology div { justify-content: flex-start; }
  footer { padding: 55px 22px 24px; grid-template-columns: repeat(2,1fr); }
  .footer-brand { grid-column: 1 / -1; }
  .service-hero { min-height: auto; padding: 75px 22px 55px; }
  .service-visual { min-height: 380px; }
  .service-intro,.service-section,.case-feature,.delivery-process,.faq { padding: 78px 22px; }
  .section-heading { grid-template-columns: 1fr; }
  .application-grid,.scope-grid,.delivery-process ol { grid-template-columns: 1fr; }
  .application-grid article,.delivery-process li { min-height: 150px; }
  .scope-card { min-height: 350px; }
  .case-feature-visual { min-height: 330px; }
  .case-study-hero { min-height:auto; padding:75px 22px 55px; }
  .case-media-placeholder { min-height:380px; }
  .case-kpis { padding:0 22px; grid-template-columns:1fr 1fr; }
  .case-kpis div { min-height:100px; padding:20px 14px; border-bottom:1px solid var(--line); }
  .story-section,.data-section,.outcome-section { padding:78px 22px; }
  .data-grid { grid-template-columns:1fr; }
  .outcome-grid { grid-template-columns:1fr; }
  .confidentiality { padding:30px 22px; grid-template-columns:1fr; }
  .inner-hero { min-height:440px; padding:80px 22px 65px; }
  .case-index { padding:72px 22px; }
  .case-index-grid,.discipline-grid { grid-template-columns:1fr; }
  .case-index-card { min-height:520px; }
  .reach-section,.contact-layout { padding:72px 22px; }
  .form-grid { grid-template-columns:1fr; }
  .form-field.full,.consent,.form-note,.form-actions { grid-column:1; }
  .lead-form { padding:26px 20px; }
  .related-guide-strip { padding:34px 22px; gap:20px; }
  .resource-index { padding:72px 22px; }
  .resource-card { min-height:300px; padding:30px 24px; }
  .article-hero { min-height:auto; padding:80px 22px 65px; }
  .article-body { padding:70px 22px 80px; }
  .article-sidebar { grid-template-columns:1fr; padding:22px 20px; }
  .article-content { padding:28px 20px 34px; }
  .article-intro { padding:22px 20px; }
  .article-cta { padding:28px 22px; }
  .legal-document { padding:70px 22px 80px; }
  .legal-content { padding:28px 20px 34px; }
  .legal-content > p:first-child { padding:22px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { transition: none !important; }
}
