/* Font tokens — replaces next/font local variables with standard Google Fonts stacks. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@1,500;1,600&display=swap');
:root{
  --font-inter: 'Inter', Arial, sans-serif;
  --font-playfair: 'Playfair Display', Georgia, 'Times New Roman', serif;
}

.eco-core b{font-size:38px}.eco-core small{text-align:center;max-width:90px;line-height:1.25}.eco-panel{min-height:116px}.eco-panel i{letter-spacing:.08em}.eco-panel strong{font-size:14px;line-height:1.25}.eco-panel small{line-height:1.4}.service-photo-panel{padding:0;background:#d8d2ca}
.cta-journey{position:relative;min-height:440px;border-top:1px solid rgba(255,255,255,.38);border-bottom:1px solid rgba(255,255,255,.38);display:flex;flex-direction:column;justify-content:center;margin-left:5vw;padding:35px 0;overflow:hidden}.journey-step{position:relative;z-index:2;display:grid;grid-template-columns:48px 1fr;gap:20px;align-items:center;padding:19px 8px;border-bottom:1px solid rgba(255,255,255,.2);max-width:430px}.journey-step:nth-child(4){border-bottom:0}.journey-step>span{font-size:10px;letter-spacing:.15em;color:rgba(255,255,255,.58)}.journey-step>div{display:flex;align-items:baseline;justify-content:space-between;gap:15px}.journey-step b{font-size:clamp(26px,2.7vw,42px);letter-spacing:-.045em;font-weight:520}.journey-step small{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.65)}.journey-arrow{position:absolute;right:-2%;top:-12%;font-size:300px;line-height:1;color:rgba(255,255,255,.11);font-weight:200}.cta-journey>p{position:absolute;right:0;bottom:20px;margin:0!important;text-align:right;font-family:var(--serif);font-size:16px!important;line-height:1.35!important;color:#fff!important}
.premier-cta{background:linear-gradient(125deg,#f3eee9 0%,#f3e5df 55%,#eadbd5 100%);color:var(--ink)}.premier-cta .eyebrow.light{color:#74706d}.premier-cta .eyebrow.light span{background:var(--red)}.premier-cta>div>p:not(.eyebrow){color:#6d6966}.premier-cta .button.white{background:var(--ink);color:#fff}.premier-cta .cta-journey{border-color:rgba(23,32,46,.18)}.premier-cta .journey-step{border-color:rgba(23,32,46,.12)}.premier-cta .journey-step>span{color:var(--red)}.premier-cta .journey-step small{color:#77716d}.premier-cta .journey-arrow{color:rgba(223,45,49,.08)}.premier-cta .cta-journey>p{color:#6d6966!important}
.service-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform 1.2s cubic-bezier(.2,.7,.2,1);filter:saturate(.82) contrast(1.03)}
.service:hover .service-photo{transform:scale(1.035)}
.service-photo-panel:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(13,22,32,.14),transparent 48%,rgba(13,22,32,.22));pointer-events:none}
.service-photo-panel .visual-index{position:absolute;top:32px;left:32px;z-index:2;color:#fff;text-shadow:0 1px 18px rgba(0,0,0,.28)}
.service-photo-panel .visual-float{z-index:2}

:root{--ink:#17202e;--muted:#68707c;--red:#df2d31;--paper:#f6f5f1;--line:#dcdcd7;--serif:Georgia,"Times New Roman",serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fbfbf8;color:var(--ink);font-family:var(--font-inter),Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}.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}.nav{position:fixed;z-index:50;top:0;left:0;width:100%;height:92px;display:flex;align-items:center;padding:0 clamp(24px,4vw,72px);transition:.5s ease;border-bottom:1px solid transparent}.nav-scrolled{height:72px;background:rgba(251,251,248,.8);backdrop-filter:blur(18px);border-color:rgba(23,32,46,.08)}.brand img{width:148px;display:block}.nav nav{margin-left:auto;display:flex;gap:clamp(16px,1.8vw,30px);align-items:center}.nav nav a{font-size:13px;color:#39414d;transition:.2s}.nav nav a:hover{color:var(--red)}.nav-cta{margin-left:30px;background:var(--ink);color:#fff;padding:13px 18px;border-radius:30px;font-size:13px;display:flex;gap:16px;align-items:center}.nav-cta span,.button span,.button+span{transition:transform .25s}.nav-cta:hover span,.button:hover span{transform:translate(3px,-3px)}.menu-btn{display:none;background:none;border:0;width:36px;height:36px;position:relative}.menu-btn i{position:absolute;width:20px;height:1px;background:var(--ink);left:8px;top:14px}.menu-btn i+ i{top:21px}.hero{min-height:100vh;padding:150px clamp(24px,6vw,110px) 80px;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:5vw;position:relative;isolation:isolate;background:radial-gradient(circle at 70% 45%,#fff 0,transparent 45%),#f8f7f3}.blueprint{position:absolute;inset:0;z-index:-1;opacity:.26;background-image:linear-gradient(rgba(39,62,91,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(39,62,91,.08) 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(circle at 75% 45%,black,transparent 62%)}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.19em;font-weight:700;display:flex;align-items:center;gap:11px;margin:0 0 28px}.eyebrow span{display:block;width:25px;height:1px;background:var(--red)}.eyebrow.light{color:rgba(255,255,255,.72)}.eyebrow.light span{background:#fff}.hero h1{font-size:clamp(44px,4.6vw,76px);line-height:.98;letter-spacing:-.065em;font-weight:530;margin:0;max-width:850px}.hero h1 em{font-style:normal;color:var(--red)}.hero-lead{font-size:clamp(17px,1.4vw,21px);line-height:1.65;color:var(--muted);max-width:620px;margin:34px 0}.hero-actions{display:flex;gap:12px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:17px 22px;border-radius:3px;font-size:14px;font-weight:600;min-width:190px;transition:.3s}.button.primary{background:var(--red);color:#fff}.button.primary:hover{background:#bd2227;transform:translateY(-2px)}.button.secondary{border:1px solid #cacbc8;background:rgba(255,255,255,.45)}.button.secondary:hover{border-color:var(--ink)}.button.white{background:#fff;color:var(--ink)}.trust{display:flex;margin-top:58px;gap:36px}.trust div{display:grid;gap:3px;padding-right:36px;border-right:1px solid var(--line)}.trust div:last-child{border:0}.trust b{font-size:18px}.trust span{font-size:11px;color:var(--muted)}.hero-art{min-height:600px;display:grid;place-items:center}.ecosystem{--mx:0;--my:0;width:min(44vw,670px);aspect-ratio:1;position:relative;transition:transform .2s;transform:translate(calc(var(--mx)*8px),calc(var(--my)*8px))}.orbit{position:absolute;border:1px solid rgba(42,63,87,.2);border-radius:50%;inset:17%}.orbit-two{inset:31%;border-style:dashed}.eco-core{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:142px;height:142px;border-radius:50%;background:var(--ink);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 25px 70px rgba(23,32,46,.23)}.eco-core b{font-size:28px;letter-spacing:-.04em}.eco-core small{font-size:10px;opacity:.6}.pulse{position:absolute;inset:-12px;border:1px solid rgba(223,45,49,.35);border-radius:50%;animation:pulse 3s infinite}.eco-panel{position:absolute;width:180px;padding:18px;background:rgba(255,255,255,.83);border:1px solid rgba(23,32,46,.12);backdrop-filter:blur(16px);box-shadow:0 20px 50px rgba(38,48,60,.1);border-radius:7px;display:grid;gap:10px;animation:float 6s ease-in-out infinite}.eco-panel i{font-style:normal;font-size:9px;color:var(--red)}.eco-panel strong{font-size:13px}.eco-panel small{font-size:9px;color:var(--muted)}.eco-panel.cloud{left:3%;top:16%}.eco-panel.api{right:1%;top:23%;animation-delay:-1.5s}.eco-panel.data{left:2%;bottom:13%;animation-delay:-3s}.eco-panel.workflow{right:5%;bottom:9%;animation-delay:-4.5s}.eco-panel span:not(.bars,.flow){display:flex;gap:5px}.eco-panel span em{width:7px;height:7px;background:var(--red);border-radius:50%}.bars{height:28px;display:flex;gap:4px;align-items:end}.bars em{width:12%!important;border-radius:1px!important;background:#748da8!important}.bars em:nth-child(2){height:65%}.bars em:nth-child(3){height:100%}.bars em:nth-child(4){height:78%}.flow{display:flex;align-items:center}.flow em{background:#8396a9!important}.flow em+em:before{content:"";display:block;width:22px;height:1px;background:#ccd2d6;transform:translateX(-22px)}.node{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 7px rgba(223,45,49,.1)}.n1{left:33%;top:13%}.n2{right:19%;top:48%}.n3{left:24%;bottom:36%}.n4{right:34%;bottom:15%}.scroll-cue{position:absolute;bottom:24px;left:50%;display:flex;align-items:center;gap:14px;font-size:9px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}.scroll-cue i{display:block;height:1px;width:55px;background:#9da1a5;animation:progress 2s infinite}.premier-cta{margin:0 clamp(18px,3vw,50px);min-height:570px;background:linear-gradient(125deg,#d62930,#eb4a42 55%,#f27555);color:#fff;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;padding:clamp(50px,7vw,110px);overflow:hidden;position:relative}.premier-cta h2,.why h2,.work-intro h2,.team-tease h2{font-size:clamp(41px,4.8vw,73px);line-height:1;letter-spacing:-.06em;margin:0 0 28px;font-weight:520}.premier-cta h2 i,.why h2 i,.team-tease h2 i{font-family:var(--serif);font-weight:400}.premier-cta>div>p:not(.eyebrow){max-width:550px;color:rgba(255,255,255,.78);font-size:17px;line-height:1.6;margin:0 0 35px}.cta-illustration{height:430px;position:relative}.big-ring,.small-ring{position:absolute;border:1px solid rgba(255,255,255,.35);border-radius:50%;inset:2%}.small-ring{inset:28%}.cta-chip{position:absolute;left:25%;top:40%;background:rgba(255,255,255,.18);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.4);padding:24px 30px;font-size:17px}.cta-chip i{font-family:var(--serif);padding:0 15px}.cta-dot{position:absolute;background:#fff;border-radius:50%;width:13px;height:13px}.d1{top:4%;left:52%}.d2{bottom:7%;right:24%}.services{padding:150px clamp(24px,6vw,100px)}.section-intro{display:grid;grid-template-columns:1fr 2fr 1fr;gap:5vw;align-items:end;margin:0 auto 120px;max-width:1500px}.section-intro h2,.tech-heading h2{font-size:clamp(41px,4vw,63px);line-height:1.03;letter-spacing:-.055em;margin:0;font-weight:530}.section-intro>p:last-child{line-height:1.7;color:var(--muted)}.service{max-width:1420px;margin:0 auto 150px;min-height:75vh;display:grid;grid-template-columns:1.1fr .9fr;gap:9vw;align-items:center}.service.reverse{grid-template-columns:.9fr 1.1fr}.service.reverse .service-visual{order:2}.service-visual{min-height:620px;position:relative;overflow:hidden;background:#f5c6ba;padding:34px}.service-visual.blue{background:#c9ddec}.service-visual.sand{background:#ddd2b9}.service-visual.mint{background:#c9dfd5}.service-visual.lilac{background:#d6d0e7}.service-visual.rose{background:#e5c9cb}.service-visual.sky{background:#bdd9e5}.visual-index{font-size:10px;letter-spacing:.15em;text-transform:uppercase}.visual-frame{position:absolute;inset:18% 12% 14%;background:rgba(255,255,255,.7);backdrop-filter:blur(9px);border:1px solid rgba(255,255,255,.65);box-shadow:0 35px 70px rgba(48,52,63,.15);transform:rotate(-2deg)}.reverse .visual-frame{transform:rotate(2deg)}.visual-top{height:40px;border-bottom:1px solid rgba(23,32,46,.12);display:flex;gap:6px;align-items:center;padding:0 15px}.visual-top i{width:6px;height:6px;border-radius:50%;background:#fff}.visual-content{position:absolute;inset:19% 12%;display:grid;gap:14px}.visual-content span{border:1px solid rgba(23,32,46,.14);background:rgba(255,255,255,.45)}.visual-content span:first-child{width:65%}.visual-content span:nth-child(2){margin-left:20%;}.visual-content span:last-child{width:52%;margin-left:auto}.visual-accent{position:absolute;right:-9%;bottom:10%;font-size:clamp(55px,7vw,105px);font-weight:650;letter-spacing:-.08em;color:rgba(23,32,46,.08)}.visual-float{position:absolute;right:5%;bottom:8%;background:#fff;padding:17px 20px;min-width:160px;box-shadow:0 18px 45px rgba(23,32,46,.13);display:grid;gap:2px}.visual-float span{font-size:9px;color:var(--muted)}.visual-float b{font-size:22px}.visual-float i{height:2px;width:76%;background:var(--red);margin-top:8px}.service-no{font-size:10px;letter-spacing:.15em;color:var(--muted)}.service-copy h3{font-size:clamp(38px,4vw,61px);letter-spacing:-.06em;line-height:1;margin:35px 0 25px;font-weight:540}.service-copy h4{font-family:var(--serif);font-size:clamp(23px,2.2vw,35px);line-height:1.25;font-weight:400;margin:0 0 25px}.service-copy>p{color:var(--muted);line-height:1.75;font-size:16px;max-width:520px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin:35px 0}.tags span{border:1px solid var(--line);padding:8px 11px;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.service-copy>a,.section-intro>a{font-size:13px;font-weight:650;border-bottom:1px solid var(--ink);padding-bottom:7px;display:inline-flex;gap:15px}.why{background:#17202e;color:#fff;padding:150px clamp(24px,7vw,120px)}.why-head{display:grid;grid-template-columns:1.4fr .6fr;gap:8vw}.why-head .eyebrow{grid-column:1/-1}.why-head>p:last-child{align-self:end;line-height:1.7;color:#9ca5b0;max-width:450px}.timeline{margin-top:120px;border-top:1px solid rgba(255,255,255,.17);display:grid;grid-template-columns:repeat(5,1fr)}.milestone{padding:35px 42px 0 12px;position:relative;border-right:1px solid rgba(255,255,255,.12);min-height:300px}.line-dot{position:absolute;top:-11px;left:0;width:22px;height:22px;border-radius:50%;background:var(--red);display:grid;place-items:center;font-size:7px}.milestone b{font-size:clamp(42px,5vw,72px);letter-spacing:-.06em}.milestone p{color:#9ca5b0;font-size:13px;line-height:1.7;max-width:170px}.work{background:#17202e;color:#fff;padding:0 0 130px}.work-intro{padding:100px clamp(24px,7vw,120px);display:grid;grid-template-columns:1fr 1.3fr .5fr;align-items:end}.work-intro .eyebrow{align-self:start}.work-intro p:last-child{text-align:right;font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:#8a939f}.case-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.case{flex:0 0 88vw;min-height:78vh;scroll-snap-align:center;margin-right:18px;position:relative;overflow:hidden;padding:clamp(35px,6vw,90px);display:grid;align-content:end;isolation:isolate}.case-a{background:linear-gradient(135deg,#6b7c8f,#213042)}.case-b{background:linear-gradient(135deg,#a2785d,#54392f)}.case-c{background:linear-gradient(135deg,#5f8277,#203d39)}.case:before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(circle at 75% 25%,rgba(255,255,255,.2),transparent 27%),linear-gradient(115deg,transparent 45%,rgba(255,255,255,.06) 45% 47%,transparent 47%)}.case-grid{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:70px 70px;mask-image:linear-gradient(to right,transparent,black)}.case-num{position:absolute;right:5%;top:5%;font-size:clamp(100px,18vw,280px);font-weight:650;opacity:.07;letter-spacing:-.08em}.case-copy{max-width:900px}.case-copy>p{font-size:11px;text-transform:uppercase;letter-spacing:.18em}.case h3{font-size:clamp(37px,4.8vw,73px);line-height:1;letter-spacing:-.06em;margin:20px 0 55px;font-weight:520}.case-detail{display:grid;grid-template-columns:1fr 1fr;gap:60px;max-width:800px}.case-detail span{font-size:9px;text-transform:uppercase;letter-spacing:.17em;color:rgba(255,255,255,.6)}.case-detail p{line-height:1.6;font-size:13px;color:rgba(255,255,255,.75)}.impact{position:absolute;right:7%;bottom:9%;display:grid;text-align:right}.impact b{font-size:clamp(45px,7vw,100px);letter-spacing:-.07em}.impact span{font-size:11px;text-transform:uppercase;letter-spacing:.13em}.technologies{padding:150px 0;overflow:hidden}.tech-heading{display:flex;align-items:end;justify-content:space-between;padding:0 clamp(24px,7vw,120px);margin-bottom:90px}.tech-heading .eyebrow{align-self:flex-start}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0}.marquee>div{display:flex;width:max-content;animation:marquee 28s linear infinite}.marquee:hover>div{animation-play-state:paused}.marquee span{display:flex;align-items:center;gap:12px;margin:0 34px;font-size:17px}.marquee i{width:36px;height:36px;border-radius:50%;background:#ebeae5;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:700}.insights{padding:130px clamp(24px,7vw,120px);background:#f2f0ea}.insights .section-intro{grid-template-columns:1fr 2fr .7fr;margin-bottom:80px}.articles{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:22px}.article{position:relative}.article-image{height:480px;position:relative;overflow:hidden;padding:24px;background:#c4d1db}.article-2{height:390px;background:#dfc9bf}.article-3{height:430px;background:#c8d5c2}.article-image:before,.article-image:after{content:"";position:absolute;border:1px solid rgba(23,32,46,.2);border-radius:50%;inset:20%}.article-image:after{inset:34%;background:rgba(255,255,255,.24)}.article-image span{font-size:9px;letter-spacing:.14em;text-transform:uppercase}.article>p{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-top:22px}.article h3{font-size:clamp(20px,1.6vw,26px);line-height:1.2;letter-spacing:-.035em;max-width:500px;margin:13px 45px 0 0}.article>a{position:absolute;right:0;bottom:0;width:37px;height:37px;border:1px solid #b8b8b3;border-radius:50%;display:grid;place-items:center}.team-tease{min-height:730px;background:#d52d32;color:#fff;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:clamp(40px,8vw,130px);gap:8vw;overflow:hidden}.team-shape{height:550px;position:relative}.team-shape:before{content:"";position:absolute;width:320px;height:450px;border:1px solid rgba(255,255,255,.4);border-radius:170px 170px 20px 20px;left:15%;top:5%}.team-shape i{position:absolute;background:#fff;border-radius:50%;width:180px;height:180px;left:28%;top:14%;opacity:.9}.team-shape i:nth-child(2){width:280px;height:180px;border-radius:100% 0 0 0;top:51%;left:18%;background:#f4bdb8}.team-shape i:nth-child(3){width:90px;height:90px;top:62%;left:57%;background:#17202e}.team-tease>div>p:not(.eyebrow){color:rgba(255,255,255,.75);line-height:1.7;max-width:500px;margin-bottom:35px}.testimonials{text-align:center;padding:150px clamp(24px,10vw,180px);position:relative}.testimonials .eyebrow{justify-content:center}.quote-mark{font-family:var(--serif);font-size:100px;color:var(--red);height:70px}.testimonials blockquote{font-size:clamp(16px,1.4vw,20px);line-height:1.7;max-width:700px;margin:25px auto 55px;letter-spacing:normal;color:var(--muted);font-weight:400}.quote-meta{display:flex;justify-content:center;align-items:center;gap:14px;text-align:left}.avatar{width:46px;height:46px;border-radius:50%;background:#17202e;color:#fff;display:grid;place-items:center;font-size:11px}.quote-meta>div:last-child{display:grid}.quote-meta b{font-size:13px}.quote-meta span{font-size:10px;color:var(--muted);margin-top:4px}.dots{display:flex;justify-content:center;gap:7px;margin-top:40px}.dots button{border:0;width:7px;height:7px;border-radius:50%;background:#c8c8c4;padding:0;cursor:pointer}.dots button.active{background:var(--red);transform:scale(1.3)}footer{background:#f1efe9;padding:70px clamp(24px,7vw,120px) 30px}.footer-grid{display:grid;grid-template-columns:1.5fr .75fr .75fr 2fr;gap:7vw;padding:0 0 70px}.footer-grid>div{display:flex;flex-direction:column;gap:12px}.footer-map-canvas{height:185px;margin-top:2px;border-radius:8px;overflow:hidden;background:#e9e6dd;border:1px solid var(--line)}
.footer-map-canvas img{max-width:none}.footer-map-canvas .leaflet-control-attribution{font-size:7px;padding:0 3px;background:rgba(255,255,255,.7)}.footer-map-canvas .leaflet-control-attribution a{color:inherit}.footer-map-canvas .leaflet-popup-content{font-size:12px;line-height:1.5;color:var(--ink)}.footer-map-canvas .leaflet-popup-content a{color:var(--red);font-weight:600}.footer-grid b{font-size:12px;margin-bottom:10px}.footer-grid a,.footer-grid p{font-size:12px;color:var(--muted);line-height:1.7;margin:0}.social-links{display:flex;gap:14px}.social-links a{display:inline-flex;color:var(--muted);transition:color .2s}.social-links a:hover{color:var(--red)}.footer-brand-logo{width:160px;display:block}.footer-brand p{max-width:30ch}.footer-bottom{border-top:1px solid #cfcec8;padding-top:25px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.footer-bottom .back-to-top{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}.reveal{opacity:0;transform:translateY(35px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.in-view{opacity:1;transform:none}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes pulse{0%{transform:scale(.9);opacity:0}50%{opacity:1}100%{transform:scale(1.2);opacity:0}}@keyframes progress{0%{transform:scaleX(0);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}51%{transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}@keyframes marquee{to{transform:translateX(-50%)}}
@media(max-width:1100px){.nav nav{display:none}.menu-btn{display:block;margin-left:8px}.nav nav.open{display:flex;position:absolute;top:72px;left:20px;right:20px;background:#fff;padding:30px;flex-direction:column;align-items:flex-start;box-shadow:0 20px 50px rgba(23,32,46,.12)}.nav-cta{margin-left:auto}.hero{grid-template-columns:1fr;padding-top:140px}.hero-copy{max-width:850px}.hero-art{min-height:520px}.ecosystem{width:min(78vw,640px)}.section-intro{grid-template-columns:1fr 2fr}.section-intro>p:last-child{grid-column:2}.service,.service.reverse{gap:6vw}.service-visual{min-height:500px}.why-head{grid-template-columns:1fr 1fr}.timeline{grid-template-columns:repeat(3,1fr);row-gap:50px}.work-intro{grid-template-columns:1fr 1.5fr}.work-intro p:last-child{display:none}.impact{position:static;text-align:left;margin-top:30px}.articles{grid-template-columns:1fr 1fr}.article:first-child{grid-column:1/-1}.footer-grid{grid-template-columns:2fr 1fr 1fr}.footer-grid>div:last-child{grid-column:2/-1}.cta-illustration{opacity:.75}.team-shape{height:380px}.team-shape:before{width:210px;height:290px;left:12%;top:5%}.team-shape i{width:120px;height:120px;left:26%;top:13%}.team-shape i:nth-child(2){width:185px;height:120px;top:51%;left:15%}.team-shape i:nth-child(3){width:60px;height:60px;top:62%;left:55%}}
@media(max-width:760px){.nav{height:72px;padding:0 20px}.brand img{width:128px}.nav-cta{padding:10px 14px;font-size:12px;gap:8px}.hero{padding:120px 22px 70px;min-height:auto}.hero h1{font-size:clamp(38px,12vw,54px)}.hero-lead{font-size:16px}.hero-actions{flex-direction:column;align-items:flex-start}.trust{gap:14px;margin-top:42px}.trust div{padding-right:14px}.trust b{font-size:15px}.hero-art{min-height:430px}.ecosystem{width:100%;transform:scale(.9)}.eco-panel{width:140px;padding:13px}.eco-panel.cloud{left:2%;top:2%}.eco-panel.api{right:2%;top:2%;animation-delay:-2s}.eco-panel.data{left:2%;bottom:2%;animation-delay:-4s}.eco-panel.workflow{right:2%;bottom:2%;animation-delay:-1s}.eco-panel,.eco-core{cursor:pointer}.eco-panel.front,.eco-core.front{z-index:10;box-shadow:0 30px 60px rgba(23,32,46,.3)}.scroll-cue{display:none}.premier-cta{margin:0;grid-template-columns:1fr;padding:75px 25px}.cta-illustration{height:300px}.services{padding:100px 22px}.section-intro{display:block;margin-bottom:80px}.section-intro h2{margin-bottom:25px}.service,.service.reverse{display:flex;flex-direction:column;min-height:auto;margin-bottom:110px;align-items:stretch}.service.reverse .service-visual{order:0}.service-visual{min-height:440px}.service-copy h3{margin-top:25px}.why{padding:100px 22px}.why-head{display:block}.timeline{grid-template-columns:1fr;margin-top:70px}.milestone{min-height:180px;padding-left:25px;border-left:1px solid rgba(255,255,255,.12);border-right:0}.line-dot{top:38px;left:-11px}.work-intro{display:block;padding:90px 22px 50px}.case{flex-basis:94vw;min-height:76vh;padding:35px 25px}.case h3{font-size:35px}.case-detail{grid-template-columns:1fr;gap:15px}.technologies{padding:100px 0}.tech-heading{display:block;padding:0 22px;margin-bottom:50px}.tech-heading h2{font-size:36px}.insights{padding:90px 22px}.insights .section-intro{display:block}.insights .section-intro>a{margin-top:25px}.articles{display:block}.article{margin-bottom:65px}.article-image,.article-2,.article-3{height:360px}.team-tease{grid-template-columns:1fr;padding:80px 24px}.team-shape{height:320px}.team-shape:before{width:180px;height:250px;left:10%;top:5%}.team-shape i{width:100px;height:100px;left:24%;top:12%}.team-shape i:nth-child(2){width:156px;height:100px;top:51%;left:14%}.team-shape i:nth-child(3){width:50px;height:50px;top:62%;left:54%}.testimonials{padding:100px 22px}.footer-grid{grid-template-columns:1fr 1fr;gap:50px 30px}.footer-map-canvas{height:130px}.footer-brand{grid-column:1/-1}.footer-grid>div:last-child{grid-column:1/-1}.footer-bottom{flex-wrap:wrap;gap:15px}.footer-bottom a{width:100%}}
@media(max-width:340px){.eco-panel{width:108px;padding:9px;min-height:0}.eco-panel strong{font-size:10px;line-height:1.15}.eco-panel small{font-size:8px}.eco-panel>span{display:none}.eco-panel.cloud{left:2%;top:2%}.eco-panel.api{top:2%}.eco-panel.data{bottom:2%}.eco-panel.workflow{right:2%;bottom:2%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
@media(max-width:760px){.cta-journey{margin:60px 0 0;min-height:390px}.journey-step{grid-template-columns:36px 1fr}.journey-step>div{display:grid;gap:3px}.cta-journey>p{display:none}.journey-arrow{font-size:220px;top:2%}}

/* Mild editorial CTA theme — intentionally last to override the original red treatment. */
.premier-cta{background:linear-gradient(125deg,#f5f2ed 0%,#f3ebe6 58%,#ecdfd9 100%);color:var(--ink)}
.premier-cta .eyebrow.light{color:#74706d}
.premier-cta .eyebrow.light span{background:var(--red)}
.premier-cta>div>p:not(.eyebrow){color:#6d6966}
.premier-cta .button.white{background:var(--ink);color:#fff}
.premier-cta .cta-journey{border-color:rgba(23,32,46,.18)}
.premier-cta .journey-step{border-color:rgba(23,32,46,.12)}
.premier-cta .journey-step>span{color:var(--red)}
.premier-cta .journey-step b{color:var(--ink)}
.premier-cta .journey-step small{color:#77716d}
.premier-cta .journey-arrow{color:rgba(223,45,49,.07)}
.premier-cta .cta-journey>p{color:#6d6966!important}

/* Compact editorial services introduction. */
.services{padding-top:90px}
.services-intro{grid-template-columns:.78fr 1.55fr .8fr;align-items:center;margin-bottom:75px;padding:52px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}
.services-intro .intro-label{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between}
.services-intro .intro-label:before{content:"";position:absolute;left:0;bottom:-1px;width:56px;height:2px;background:var(--red)}
.services-intro .intro-label .eyebrow{margin-bottom:25px}
.services-intro .intro-label strong{font-family:var(--serif);font-size:17px;line-height:1.35;font-weight:400;color:#5e646d}
.services-intro h2{font-size:clamp(39px,3.6vw,58px)}
.services-intro h2 i{font-family:var(--serif);font-weight:400}
.services-intro .intro-support{align-self:stretch;display:flex;flex-direction:column;justify-content:space-between;gap:35px}
.services-intro .intro-support>p{margin:0;color:var(--muted);font-size:14px;line-height:1.65}
.services-intro .intro-support>div{display:grid;gap:10px;padding-top:16px;border-top:1px solid var(--line)}
.services-intro .intro-support span{display:flex;align-items:baseline;gap:10px;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.services-intro .intro-support b{font-size:18px;color:var(--ink);letter-spacing:-.04em}
.services-intro+.service{margin-top:0}
@media(max-width:1100px){.services-intro{grid-template-columns:.7fr 1.3fr}.services-intro .intro-support{grid-column:2;margin-top:20px}.services-intro .intro-label{grid-row:1/3}}
@media(max-width:760px){.services{padding-top:70px}.services-intro{display:block;padding:38px 0;margin-bottom:65px}.services-intro .intro-label strong{display:none}.services-intro h2{margin:0 0 25px}.services-intro .intro-support>div{grid-template-columns:1fr 1fr}}

/* Connected editorial service stories. */
.services{padding-left:0;padding-right:0;padding-bottom:110px}
.services-intro{width:min(1420px,88vw);margin-left:auto;margin-right:auto}
.service,.service.reverse{width:min(1520px,92vw);max-width:none;min-height:610px;margin:0 auto 34px;display:grid;grid-template-columns:1.08fr .92fr;gap:0;align-items:stretch;background:#f2f0eb;overflow:hidden}
.service.reverse{grid-template-columns:.92fr 1.08fr;background:#edf0ef}
.service:nth-of-type(3){background:#f0ece5}
.service:nth-of-type(4){background:#eaf0ed}
.service:nth-of-type(5){background:#eeecef}
.service:nth-of-type(6){background:#f1ece9}
.service:nth-of-type(7){background:#e9eff2}
.service .service-visual{min-height:610px;height:100%;width:100%}
.service.reverse .service-visual{order:2}
.service-copy{padding:clamp(55px,6vw,100px);display:flex;flex-direction:column;justify-content:center;position:relative}
.service-copy:before{content:"";position:absolute;top:0;left:clamp(55px,6vw,100px);width:72px;height:3px;background:var(--red)}
.service.reverse .service-copy:before{left:auto;right:clamp(55px,6vw,100px)}
.service-copy h3{font-size:clamp(36px,3.6vw,58px);margin:24px 0 20px}
.service-copy h4{font-size:clamp(22px,2vw,31px);max-width:520px;margin-bottom:20px}
.service-copy>p{font-size:14px;max-width:500px;margin:0}
.service-copy .tags{margin:28px 0}
.service-copy>a{align-self:flex-start}
.service-photo-panel .visual-float{right:28px;bottom:28px}
@media(max-width:1100px){.service,.service.reverse{width:94vw;min-height:520px;grid-template-columns:1fr 1fr}.service .service-visual{min-height:520px}.service-copy{padding:50px 42px}.service-copy:before{left:42px}.service.reverse .service-copy:before{right:42px}.service-copy h3{font-size:36px}}
@media(max-width:760px){.services{padding-bottom:70px}.service,.service.reverse{width:calc(100% - 28px);display:flex;flex-direction:column;min-height:0;margin-bottom:22px}.service.reverse .service-visual{order:0}.service .service-visual{min-height:410px}.service-copy{padding:48px 25px 55px}.service-copy:before,.service.reverse .service-copy:before{left:25px;right:auto}.service-copy h3{font-size:35px}.service-photo-panel .visual-float{right:18px;bottom:18px}}

/* Give case studies a distinct light editorial gateway after the dark proof section. */
.work{background:#f5f2ec;color:var(--ink);padding-top:0}
.work-intro{padding-top:105px;padding-bottom:80px;border-bottom:1px solid #d9d5ce;position:relative}
.work-intro:after{content:"CASE STUDIES";position:absolute;right:6vw;top:32px;font-size:clamp(70px,12vw,190px);font-weight:650;letter-spacing:-.08em;color:rgba(23,32,46,.035);pointer-events:none}
.work-intro .eyebrow.light{color:#676d76;position:relative;z-index:1}
.work-intro .eyebrow.light span{background:var(--red)}
.work-intro h2{color:var(--ink);position:relative;z-index:1}
.work-intro>p:last-child{color:#777d85;position:relative;z-index:1}
.case-track{padding-top:28px;background:#f5f2ec}
.case-d{background:linear-gradient(135deg,#5f7f9e,#1c2f42)}
.case-e{background:linear-gradient(135deg,#7d6f8a,#2e2638)}
/* Cards keep their own dark gradients, so their copy needs to stay light regardless of the section's ambient (light) text color. */
.case-copy>p,.case h3,.impact b,.impact span{color:#fff}
@media(max-width:760px){.work-intro{padding-top:80px;padding-bottom:55px}.work-intro:after{top:36px;right:18px;font-size:70px}.case-track{padding-top:14px}}

/* Technology philosophy with one purposeful marquee. */
.technologies{padding:0;background:#eeeae3}
.tech-shell{padding:95px clamp(24px,7vw,120px) 85px;display:grid;grid-template-columns:1.25fr .75fr;gap:10vw;align-items:end;border-bottom:1px solid #d4d0c8;position:relative;overflow:hidden}
.tech-shell:after{content:"T";position:absolute;right:-2vw;top:-11vw;font-size:34vw;font-weight:650;line-height:1;color:rgba(23,32,46,.025);pointer-events:none}
.tech-heading{display:block;padding:0;margin:0;position:relative;z-index:1}
.tech-heading .eyebrow{margin-bottom:55px}
.tech-heading h2{font-size:clamp(41px,4vw,65px)}
.tech-heading h2 i{font-family:var(--serif);font-weight:400}
.tech-philosophy{position:relative;z-index:1}
.tech-philosophy>p{font-family:var(--serif);font-size:clamp(20px,1.7vw,27px);line-height:1.4;margin:0 0 40px;color:#454b53}
.tech-philosophy>div{display:grid;border-top:1px solid #cbc7bf}
.tech-philosophy span{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid #d7d3cc;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#666c74}
.tech-philosophy b{color:var(--red);font-size:9px}
.technologies .marquee{background:var(--ink);border:0;padding:24px 0;color:#fff}
.technologies .marquee i{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.16)}
.technologies .marquee span{color:rgba(255,255,255,.88)}
.technologies .marquee i svg{width:20px;height:20px;display:block;transition:transform .3s ease,color .3s ease}
.technologies .marquee span:hover i{color:var(--brand);background:#fff;border-color:#fff;transform:translateY(-2px)}
.technologies .marquee span:hover i svg{transform:scale(1.08)}
.technologies .marquee span:hover{color:#fff}
@media(max-width:900px){.tech-shell{grid-template-columns:1fr;gap:55px;padding-top:75px}.tech-heading .eyebrow{margin-bottom:35px}.tech-philosophy{max-width:620px}}
@media(max-width:760px){.tech-shell{padding:65px 22px 55px;gap:40px}.tech-heading h2{font-size:36px}.tech-philosophy>p{font-size:21px}.technologies .marquee{padding:20px 0}.technologies .marquee span{margin:0 22px}}

/* Editorial insight photography replaces the abstract placeholder artwork. */
.article-image{padding:0;background:#c4d1db;isolation:isolate}
.article-image:before{content:"";position:absolute;z-index:1;inset:0;border:0;border-radius:0;background:linear-gradient(180deg,rgba(10,18,28,.32) 0%,transparent 42%,rgba(10,18,28,.12) 100%);pointer-events:none}
.article-image:after{display:none}
.article-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.03);transition:transform 1s cubic-bezier(.2,.7,.2,1),filter .6s ease}
.article-image span{position:absolute;z-index:2;top:24px;left:24px;color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.article:hover .article-image img{transform:scale(1.035);filter:saturate(.95) contrast(1.02)}
.article-1 img{object-position:center center}
.article-2 img{object-position:center 42%}
.article-3 img{object-position:center center}

/* Deliberate keyboard-focus system: a bright ring plus a dark halo reads clearly on light, dark and red sections alike. */
:is(a,button,input,textarea,select,[tabindex]):focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px rgba(23,32,46,.55)}
.dots button:focus-visible{outline-offset:3px}
#top:focus-visible{outline:none;box-shadow:none}
#services-hero:focus-visible{outline:none;box-shadow:none}

/* Shared primitives reused across pages: a dark filled button and a breadcrumb trail. */
.button.ink{background:var(--ink);color:#fff}
.button.ink:hover{background:#232f42;transform:translateY(-2px)}
.breadcrumb{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}
.breadcrumb a{color:var(--muted);transition:.2s}
.breadcrumb a:hover{color:var(--red)}
.breadcrumb span[aria-current]{color:var(--ink);font-weight:600}

/* Skip link for keyboard and screen-reader users, hidden until focused. */
.skip-link{position:fixed;z-index:100;left:16px;top:-60px;background:var(--ink);color:#fff;padding:13px 20px;border-radius:4px;font-size:13px;font-weight:600;transition:top .25s ease}
.skip-link:focus-visible{top:16px;outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px rgba(23,32,46,.55)}
/* About page — ported from the supplied about.html, styles kept as-is.
   Every selector is scoped under .about to avoid colliding with shared site
   classes that happen to share a name here (.impact, .hero, .eyebrow, footer),
   and the page's own design tokens (incl. a --red that differs from the
   site's) are scoped to .about instead of :root so they don't leak sitewide.
   The page's own <nav> markup/styles are dropped — this page uses the
   shared SiteHeader component instead, per the request. */

.about{
  --cream:#F7F5EF;
  --cream-deep:#F1EEE6;
  --navy:#14161F;
  --navy-soft:#3C3F4C;
  --gray:#767A85;
  --red:#E14A2E;
  --red-soft:#FF8A6B;
  --red-dim:rgba(225,74,46,0.10);
  --white:#FFFFFF;
  --line:rgba(20,22,31,0.1);
  --line-dark:rgba(255,255,255,0.14);
  background:var(--cream);
  color:var(--navy);
  font-family:var(--font-inter),sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  padding-top:92px;
}
@media (max-width:760px){ .about{padding-top:72px;} }

.about em.accent{font-family:var(--font-playfair),serif;font-style:italic;font-weight:500;color:var(--red);}
.about-crumb{padding:26px clamp(24px,6vw,110px) 0;max-width:1600px;margin:0 auto}
.about .eyebrow{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--red);font-weight:700;margin-bottom:22px;}
.about .eyebrow .dash{width:22px;height:2px;background:var(--red);display:inline-block;}

/* ---------- STORY SPINE (decorative, scroll progress) ---------- */
.about .spine{
  position:fixed;left:36px;top:0;bottom:0;width:2px;z-index:15;
  background:var(--line);
}
.about .spine-fill{
  position:absolute;left:0;top:0;width:2px;background:var(--red);
  height:0%;transition:height .1s linear;
}
.about .spine-node{
  position:absolute;left:50%;transform:translateX(-50%);
  width:9px;height:9px;border-radius:50%;background:var(--white);
  border:2px solid var(--line);z-index:2;transition:all .3s ease;
}
.about .spine-node.passed{background:var(--red);border-color:var(--red);}
@media (max-width:980px){ .about .spine{display:none;} }

/* ---------- CHAPTER NAV (appears on scroll) ---------- */
.about .chapter-nav{
  position:fixed;top:-100px;left:50%;transform:translateX(-50%);
  display:flex;gap:4px;background:rgba(247,245,239,0.92);backdrop-filter:blur(8px);
  border:1px solid var(--line);border-radius:100px;padding:6px;z-index:40;
  box-shadow:0 12px 30px rgba(20,22,31,.08);
  visibility:hidden;
  transition:top .4s cubic-bezier(.2,.8,.2,1),visibility 0s .4s;
}
.about .chapter-nav.show{top:104px;visibility:visible;transition:top .4s cubic-bezier(.2,.8,.2,1),visibility 0s;}
.about .chapter-nav a{
  font-size:12px;font-weight:700;color:var(--gray);padding:8px 14px;border-radius:100px;
  white-space:nowrap;transition:all .2s ease;
}
.about .chapter-nav a.active{background:var(--navy);color:var(--white);}
@media (max-width:980px){
  .about .chapter-nav{
    left:16px;right:16px;transform:none;
    max-width:calc(100vw - 32px);
    overflow-x:auto;justify-content:flex-start;
    -webkit-overflow-scrolling:touch;
    mask-image:linear-gradient(to right,transparent,#000 16px,#000 calc(100% - 28px),transparent);
    -webkit-mask-image:linear-gradient(to right,transparent,#000 16px,#000 calc(100% - 28px),transparent);
  }
  .about .chapter-nav a{flex-shrink:0;}
  .about .chapter-nav a:first-child{margin-left:10px;}
  .about .chapter-nav a:last-child{margin-right:22px;}
}

.about .container{max-width:1280px;margin:0 auto;padding-left:84px;padding-right:64px;}
@media (max-width:980px){ .about .container{padding-left:28px;padding-right:28px;} }

.about section{padding:120px 0;position:relative;}
.about .chapter-label{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#B9B5A8;font-weight:800;margin-bottom:18px;}

/* ================= HERO ================= */
/* .hero collides with the homepage's .hero (min-height/display/grid/background/position/isolation) — reset those explicitly since CSS cascades per-property, not per-rule. */
.about .hero{padding-top:40px;padding-bottom:120px;min-height:auto;display:block;background:none;position:static;isolation:auto;}
.about .hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.about .hero h1{font-size:64px;line-height:1.05;font-weight:800;letter-spacing:-1.8px;margin:0 0 26px;}
.about .hero p{font-size:18px;color:var(--gray);line-height:1.65;max-width:460px;}
.about #hero:focus-visible{outline:none;box-shadow:none;}
.about .hero-visual{position:relative;height:560px;}
.about .hv-svg{width:100%;height:100%;}
.about .hv-caption{position:absolute;bottom:0;left:0;font-size:12px;color:var(--gray);letter-spacing:1px;text-transform:uppercase;font-weight:700;}
.about .hv-caption em{color:var(--red);font-style:normal;}

/* ================= OUR STORY ================= */
.about .story{background:var(--cream-deep);}
.about .story-head h2{font-size:40px;font-weight:800;letter-spacing:-1px;margin:0 0 50px;max-width:600px;}
.about .story-shell{display:grid;grid-template-columns:220px 1fr;gap:0;border-top:1px solid var(--line);}
.about .stage-list{display:flex;flex-direction:column;}
.about .stage-btn{
  text-align:left;background:none;border:none;border-bottom:1px solid var(--line);
  padding:22px 20px;cursor:pointer;font-family:var(--font-inter),sans-serif;
}
.about .stage-btn .sn{font-size:13px;font-weight:800;color:var(--gray);letter-spacing:1px;display:block;margin-bottom:6px;}
.about .stage-btn .st{font-size:15px;font-weight:700;color:var(--navy-soft);}
.about .stage-btn.active{background:var(--white);}
.about .stage-btn.active .sn{color:var(--red);}
.about .stage-btn.active .st{color:var(--navy);}
.about .stage-panel{border-left:1px solid var(--line);padding:8px 0 8px 56px;position:relative;min-height:280px;}
.about .stage-content{display:none;}
.about .stage-content.active{display:block;animation:about-fadein .5s ease;}
.about .stage-year{font-size:80px;font-weight:800;letter-spacing:-3px;color:var(--navy);line-height:1;margin-bottom:20px;}
.about .stage-year span{color:var(--red);}
.about .stage-text{font-size:17px;color:var(--gray);line-height:1.7;max-width:520px;}
@media (max-width:980px){
  .about .story-shell{grid-template-columns:1fr;}
  .about .stage-list{flex-direction:row;overflow-x:auto;border-bottom:1px solid var(--line);}
  .about .stage-btn{border-bottom:none;border-right:1px solid var(--line);flex-shrink:0;padding:16px;}
  .about .stage-panel{border-left:none;padding:32px 0 0;}
  .about .stage-year{font-size:52px;}
}

/* ================= WHO WE ARE ================= */
.about .who-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
.about .who-statement{font-size:36px;font-weight:800;letter-spacing:-1px;line-height:1.25;position:sticky;top:120px;}
.about .who-list{display:flex;flex-direction:column;}
.about .who-item{padding:26px 0;border-top:1px solid var(--line);}
.about .who-item:nth-child(2){margin-left:36px;}
.about .who-item:nth-child(3){margin-left:0;}
.about .who-item:nth-child(4){margin-left:56px;}
.about .who-item:nth-child(5){margin-left:18px;}
.about .who-item .wt{font-size:19px;font-weight:800;margin-bottom:8px;}
.about .who-item .wd{font-size:14.5px;color:var(--gray);line-height:1.6;max-width:340px;}
@media (max-width:980px){
  .about .who-grid{grid-template-columns:1fr;gap:40px;}
  .about .who-statement{position:static;font-size:28px;}
  .about .who-item, .about .who-item:nth-child(2), .about .who-item:nth-child(4), .about .who-item:nth-child(5){margin-left:0;}
}

/* ================= BELIEFS ================= */
.about .beliefs{background:var(--navy);color:var(--white);}
.about .beliefs .chapter-label{color:#6E7180;}
.about .beliefs-head h2{font-size:40px;font-weight:800;letter-spacing:-1px;margin:0 0 56px;max-width:600px;}
.about .beliefs-shell{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;align-items:center;}
.about .belief-nums{display:flex;flex-direction:column;border-top:1px solid var(--line-dark);}
.about .belief-num-btn{
  text-align:left;background:none;border:none;border-bottom:1px solid var(--line-dark);
  padding:22px 0;cursor:pointer;color:#8B8D98;font-family:var(--font-inter),sans-serif;
  display:flex;align-items:baseline;gap:16px;transition:color .2s ease;
}
.about .belief-num-btn .bn{font-size:14px;font-weight:800;}
.about .belief-num-btn .bt{font-size:17px;font-weight:700;}
.about .belief-num-btn.active{color:var(--white);}
.about .belief-num-btn.active .bn{color:var(--red);}
.about .belief-display{min-height:220px;}
.about .belief-statement{display:none;}
.about .belief-statement.active{display:block;animation:about-fadein .5s ease;}
.about .belief-statement h3{font-size:38px;font-weight:800;letter-spacing:-1px;line-height:1.2;margin:0 0 22px;}
.about .belief-statement h3 em{color:var(--red-soft);font-family:var(--font-playfair),serif;font-style:italic;font-weight:500;}
.about .belief-statement p{font-size:16px;color:#B9BAC4;line-height:1.7;max-width:440px;}
@media (max-width:980px){
  .about .beliefs-shell{grid-template-columns:1fr;gap:36px;}
  .about .belief-statement h3{font-size:28px;}
}

/* ================= HOW WE THINK ================= */
.about .think-head h2{font-size:40px;font-weight:800;letter-spacing:-1px;margin:0 0 60px;max-width:600px;}
.about .think-path{position:relative;}
.about .think-svg{width:100%;height:4px;display:block;}
.about .think-line{stroke:var(--line);stroke-width:2;}
.about .think-line-fill{stroke:var(--red);stroke-width:2;stroke-dasharray:1000;stroke-dashoffset:1000;transition:stroke-dashoffset 1.6s cubic-bezier(.2,.8,.2,1);}
.about .think-nodes{display:flex;justify-content:space-between;margin-top:-14px;}
.about .think-node{text-align:center;cursor:pointer;flex:1;padding:0 8px;}
.about .think-dot{width:26px;height:26px;border-radius:50%;background:var(--white);border:2px solid var(--line);margin:0 auto 18px;transition:all .25s ease;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:var(--gray);}
.about .think-node.active .think-dot{background:var(--red);border-color:var(--red);color:var(--white);transform:scale(1.15);}
.about .think-node h4{font-size:16px;font-weight:800;margin:0 0 8px;}
.about .think-node p{font-size:13px;color:var(--gray);line-height:1.5;max-width:170px;margin:0 auto;opacity:0;max-height:0;overflow:hidden;transition:all .3s ease;}
.about .think-node.active p{opacity:1;max-height:100px;}
@media (max-width:980px){
  .about .think-nodes{flex-direction:column;gap:28px;}
  .about .think-svg{display:none;}
  .about .think-node p{max-height:none;opacity:1;}
}

/* ================= EXPERTISE (radial map) ================= */
.about .expertise{background:var(--cream-deep);}
.about .exp-head h2{font-size:40px;font-weight:800;letter-spacing:-1px;margin:0 0 50px;max-width:600px;}
.about .exp-map{position:relative;width:100%;max-width:680px;height:560px;margin:0 auto;}
.about .exp-center{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:150px;height:150px;border-radius:50%;background:var(--navy);color:var(--white);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  z-index:5;padding:16px;
}
.about .exp-center .et{font-size:15px;font-weight:800;line-height:1.3;}
.about .exp-center .es{font-size:10px;color:#9C9EA8;letter-spacing:1px;text-transform:uppercase;margin-top:6px;}
.about .exp-node{
  position:absolute;width:150px;padding:14px 16px;background:var(--white);border:1.5px solid var(--line);
  border-radius:14px;cursor:pointer;transition:all .25s ease;font-size:13px;font-weight:700;text-align:center;
  box-shadow:0 8px 20px rgba(20,22,31,.05);
}
.about .exp-node.active{border-color:var(--red);background:var(--red-dim);color:var(--red);}
.about .exp-line{position:absolute;top:50%;left:50%;height:1px;background:var(--line);transform-origin:0 0;z-index:1;}
.about .exp-line.active{background:var(--red);}
.about .exp-desc{
  max-width:520px;margin:44px auto 0;text-align:center;font-size:15px;color:var(--gray);
  line-height:1.7;min-height:50px;
}
.about .exp-desc b{color:var(--navy);}
@media (max-width:980px){
  .about .exp-map{display:none;}
  .about .exp-mobile-list{display:flex;flex-direction:column;gap:10px;}
  .about .exp-mobile-item{background:var(--white);border:1.5px solid var(--line);border-radius:14px;padding:16px 18px;cursor:pointer;}
  .about .exp-mobile-item.active{border-color:var(--red);}
  .about .exp-mobile-item .emt{font-weight:800;font-size:15px;}
  .about .exp-mobile-item .emd{font-size:13px;color:var(--gray);margin-top:8px;line-height:1.6;display:none;}
  .about .exp-mobile-item.active .emd{display:block;}
  .about .exp-desc{display:none;}
}
@media (min-width:981px){ .about .exp-mobile-list{display:none;} }

/* ================= PEOPLE ================= */
.about .people-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;border:1px solid var(--line);border-radius:24px;overflow:hidden;}
.about .people-visual{
  background:linear-gradient(135deg, #EFE9DD 0%, #E7DFCE 40%, #F3ECDD 100%);
  position:relative;min-height:480px;display:flex;align-items:flex-end;padding:36px;
}
.about .people-visual::before{
  content:'';position:absolute;inset:0;
  background-image:radial-gradient(circle at 30% 30%, rgba(225,74,46,0.08), transparent 45%),
                    radial-gradient(circle at 75% 70%, rgba(20,22,31,0.06), transparent 50%);
}
.about .people-visual .pv-tag{position:relative;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--navy-soft);background:rgba(255,255,255,.7);padding:8px 14px;border-radius:100px;}
.about .people-copy{padding:56px 48px;display:flex;flex-direction:column;justify-content:center;}
.about .people-copy h2{font-size:34px;font-weight:800;letter-spacing:-.8px;margin:0 0 32px;}
.about .people-stmt{padding:18px 0;border-top:1px solid var(--line);}
.about .people-stmt:last-child{border-bottom:1px solid var(--line);}
.about .people-stmt .pk{font-size:11px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--red);margin-bottom:6px;}
.about .people-stmt .pv{font-size:15px;color:var(--navy-soft);line-height:1.6;}
@media (max-width:980px){
  .about .people-grid{grid-template-columns:1fr;}
  .about .people-visual{min-height:260px;}
  .about .people-copy{padding:36px 24px;}
}

/* ================= IMPACT ================= */
/* .impact collides with the homepage's case-study stat corner (position:absolute etc.) — reset those explicitly. */
.about .impact{background:var(--navy);color:var(--white);position:static;right:auto;bottom:auto;display:block;text-align:left;}
.about .impact .chapter-label{color:#6E7180;}
.about .impact-head h2{font-size:36px;font-weight:800;letter-spacing:-.8px;margin:0 0 60px;max-width:560px;}
.about .impact-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-dark);}
.about .impact-item{padding:30px 24px 0;border-right:1px solid var(--line-dark);}
.about .impact-item:last-child{border-right:none;}
.about .impact-item .in{font-size:52px;font-weight:800;letter-spacing:-2px;margin-bottom:10px;}
.about .impact-item .in span{color:var(--red);}
.about .impact-item .il{font-size:13.5px;color:#9C9EA8;line-height:1.5;}
@media (max-width:980px){
  .about .impact-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .about .impact-item{border-bottom:1px solid var(--line-dark);padding-bottom:24px;margin-bottom:6px;}
  .about .impact-item .in{font-size:clamp(20px,6.5vw,44px);}
  .about .impact-item:nth-child(odd){border-right:1px solid var(--line-dark);}
}

/* ================= INDUSTRIES ================= */
.about .ind-head h2{font-size:40px;font-weight:800;letter-spacing:-1px;margin:0 0 50px;max-width:600px;}
.about .ind-list{display:flex;flex-wrap:wrap;gap:6px 22px;border-top:1px solid var(--line);padding-top:36px;}
.about .ind-item{
  font-size:38px;font-weight:800;letter-spacing:-1px;color:#D9D5C8;cursor:pointer;
  transition:color .25s ease;line-height:1.5;
}
.about .ind-item.active{color:var(--navy);}
.about .ind-item:hover{color:var(--navy-soft);}
.about .ind-desc{margin-top:30px;font-size:16px;color:var(--gray);max-width:560px;line-height:1.7;min-height:50px;}
.about .ind-desc b{color:var(--navy);}
@media (max-width:980px){ .about .ind-item{font-size:26px;} }

/* ================= THOMSUN TODAY ================= */
.about .today{background:var(--cream-deep);}
.about .today-stmt{font-size:44px;font-weight:800;letter-spacing:-1.2px;line-height:1.35;max-width:900px;}
.about .today-stmt .tag-inline{
  font-size:16px;font-weight:700;letter-spacing:.3px;color:var(--red);
  border-bottom:2px solid var(--red-dim);padding-bottom:2px;
}
.about .today-tags{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px;}
.about .today-tag{font-size:13px;font-weight:700;color:var(--navy-soft);border:1.5px solid var(--line);padding:8px 16px;border-radius:100px;background:var(--white);}

/* ================= FUTURE ================= */
.about .future{position:relative;overflow:hidden;}
.about .future-stmt{font-size:48px;font-weight:800;letter-spacing:-1.3px;line-height:1.2;max-width:760px;margin-bottom:24px;}
.about .future p{font-size:17px;color:var(--gray);max-width:520px;line-height:1.65;margin-bottom:44px;}
.about .future-pulse{display:flex;gap:10px;flex-wrap:wrap;}
.about .fp-tag{
  font-size:13px;font-weight:700;color:var(--navy-soft);padding:9px 18px;border-radius:100px;
  background:var(--white);border:1.5px solid var(--line);position:relative;overflow:hidden;
}
.about .fp-tag::after{
  content:'';position:absolute;inset:0;background:var(--red-dim);
  transform:translateX(-100%);animation:about-sweep 4.5s ease-in-out infinite;
}
.about .fp-tag:nth-child(2)::after{animation-delay:.6s;}
.about .fp-tag:nth-child(3)::after{animation-delay:1.2s;}
.about .fp-tag:nth-child(4)::after{animation-delay:1.8s;}
.about .fp-tag:nth-child(5)::after{animation-delay:2.4s;}
.about .fp-tag:nth-child(6)::after{animation-delay:3.0s;}
.about .fp-tag span{position:relative;}
@keyframes about-sweep{0%{transform:translateX(-100%);}50%{transform:translateX(0%);}100%{transform:translateX(100%);}}

/* ================= FINAL CTA ================= */
.about .final-cta{text-align:left;padding-bottom:80px;}
.about .final-cta h2{font-size:56px;font-weight:800;letter-spacing:-1.5px;margin:0 0 20px;}
.about .final-cta h2 em{color:var(--red);font-family:var(--font-playfair),serif;font-style:italic;font-weight:500;}
.about .final-cta p{font-size:17px;color:var(--gray);max-width:460px;margin-bottom:40px;}
.about .btn-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.about .btn-primary{background:var(--red);color:var(--white);padding:16px 30px;border-radius:100px;font-size:15px;font-weight:700;display:inline-flex;align-items:center;gap:8px;transition:transform .2s ease, box-shadow .2s ease;}
.about .btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(225,74,46,.28);}
.about .btn-secondary{background:transparent;color:var(--navy);padding:16px 26px;border-radius:100px;font-size:15px;font-weight:700;display:inline-flex;align-items:center;gap:8px;}
.about .btn-secondary:hover{text-decoration:underline;}


@media (max-width:980px){
  .about section{padding:80px 0;}
  .about .hero h1{font-size:38px;}
  .about .hero-grid{grid-template-columns:1fr;gap:36px;}
  .about .hero-visual{height:360px;}
  .about .story-head h2, .about .beliefs-head h2, .about .think-head h2, .about .exp-head h2, .about .ind-head h2{font-size:28px;}
  .about .today-stmt{font-size:28px;}
  .about .future-stmt{font-size:30px;}
  .about .final-cta h2{font-size:34px;}
}

@keyframes about-fadein{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
/* Services page — scoped styles (svc- prefix) reusing shared tokens/atoms from app/globals.css. */

.svc{padding-top:92px}

.svc-crumb{padding:26px clamp(24px,6vw,110px) 0;max-width:1600px;margin:0 auto}

/* Hero */
.svc-hero{padding:44px clamp(24px,6vw,110px) 90px;display:grid;grid-template-columns:1fr .92fr;gap:6vw;align-items:center;max-width:1600px;margin:0 auto}
.svc-hero h1{font-size:clamp(40px,4.6vw,64px);line-height:1.05;letter-spacing:-.03em;font-weight:560;margin:18px 0 26px;max-width:520px}
.svc-hero h1 em{font-style:normal;color:var(--red)}
.svc-hero-lead{font-size:16px;line-height:1.65;color:var(--muted);max-width:460px;margin:0 0 36px}
.svc-hero-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.svc-link-arrow{font-size:14px;font-weight:650;color:var(--ink);display:inline-flex;align-items:center;gap:10px;border-bottom:1px solid var(--ink);padding-bottom:6px;transition:.2s}
.svc-link-arrow span{transition:transform .25s}
.svc-link-arrow:hover span{transform:translate(3px,-2px)}
.svc-link-arrow.light{color:#fff;border-color:rgba(255,255,255,.55)}

.svc-orbit{width:min(42vw,460px);aspect-ratio:1;position:relative;margin:0 auto}
.svc-orbit-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.svc-orbit-lines line{stroke:rgba(223,45,49,.35);stroke-width:.4;stroke-dasharray:2 2}
.svc-orbit-lines circle{fill:var(--red)}
.svc-orbit-lines .svc-orbit-ring{fill:none;stroke:rgba(223,45,49,.16);stroke-width:.4;stroke-dasharray:none}
.svc-orbit-hub-glow{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(223,45,49,.14),rgba(223,45,49,.05) 55%,transparent 72%);z-index:0}
.svc-orbit-hub-platform{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:128px;height:128px;border-radius:50%;background:linear-gradient(180deg,#fff,#fbe4e4);box-shadow:0 16px 30px rgba(223,45,49,.18),inset 0 2px 6px rgba(255,255,255,.8),inset 0 -8px 12px rgba(223,45,49,.1);z-index:1}
.svc-orbit-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ef4c4f,var(--red) 70%);display:grid;place-items:center;box-shadow:0 18px 40px rgba(223,45,49,.35),0 0 0 10px rgba(223,45,49,.08);z-index:2}
.svc-orbit-hub span{font-size:28px;font-weight:650;color:#fff}
.svc-orbit-node{position:absolute;transform:translate(-50%,-50%);width:116px;background:#fff;border-radius:12px;box-shadow:0 16px 40px rgba(23,32,46,.12);padding:12px 10px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;z-index:1}
.svc-orbit-node i{flex:none;width:40px;height:40px;border-radius:11px;background:rgba(223,45,49,.09);color:var(--red);display:grid;place-items:center;font-size:15px}
.svc-orbit-node i svg{width:19px;height:19px}
.svc-orbit-node b{font-size:11.5px;line-height:1.3;font-weight:650;color:var(--ink)}
.svc-orbit-top{left:50%;top:6%}
.svc-orbit-upper-right{left:87%;top:25%}
.svc-orbit-lower-right{left:87%;top:68%}
.svc-orbit-bottom{left:50%;top:88%}
.svc-orbit-lower-left{left:13%;top:68%}
.svc-orbit-upper-left{left:13%;top:25%}

/* Capabilities grid */
.svc-capabilities{padding:20px clamp(24px,6vw,110px) 110px;max-width:1600px;margin:0 auto}
.svc-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:6vw;margin-bottom:56px;flex-wrap:wrap}
.svc-section-head h2{font-size:clamp(28px,3vw,38px);letter-spacing:-.03em;line-height:1.15;font-weight:560;margin:16px 0 0;max-width:560px}
.svc-section-head>p{color:var(--muted);font-size:15px;line-height:1.7;max-width:380px;margin:0}
.svc-view-all{font-size:13px;font-weight:650;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:7px;display:inline-flex;align-items:center;gap:14px;white-space:nowrap}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.svc-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 26px 62px;transition:border-color .25s,transform .25s,box-shadow .25s}
.svc-card:hover{border-color:transparent;box-shadow:0 22px 50px rgba(23,32,46,.1);transform:translateY(-4px)}
.svc-card-icon{width:48px;height:48px;border-radius:50%;background:rgba(223,45,49,.09);color:var(--red);display:grid;place-items:center;font-size:22px;margin-bottom:22px}
.svc-card-icon svg{width:22px;height:22px}
.svc-card h3{font-size:18px;font-weight:640;letter-spacing:-.01em;margin:0 0 12px}
.svc-card>p{color:var(--muted);font-size:14px;line-height:1.65;margin:0}
.svc-card-link{position:absolute;right:22px;bottom:22px;width:36px;height:36px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink);transition:.25s}
.svc-card-link svg{width:15px;height:15px}
.svc-card:hover .svc-card-link{background:var(--red);border-color:var(--red);color:#fff;transform:translate(2px,-2px)}

/* Approach */
.svc-approach{padding:0 clamp(18px,4vw,80px) 110px;max-width:1600px;margin:0 auto}
.svc-approach>div{background:var(--ink);color:#fff;border-radius:20px;padding:clamp(36px,4vw,56px);position:relative;overflow:hidden;isolation:isolate}
.svc-approach>div:before{content:"";position:absolute;z-index:-1;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:30px 30px;mask-image:radial-gradient(circle at 85% 12%,black,transparent 55%)}
.svc-approach-inner{display:grid;grid-template-columns:.82fr 2.18fr;gap:5vw;align-items:center;position:relative;z-index:1}
.svc-approach-head h2{font-size:clamp(22px,2vw,28px);letter-spacing:-.025em;line-height:1.2;font-weight:560;margin:16px 0 14px}
.svc-approach-head>p{color:#9ca5b0;font-size:13.5px;line-height:1.65;margin:0 0 24px}
.svc-approach-head .button{min-width:0;padding:14px 20px;font-size:13px}
.svc-timeline{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.svc-timeline:before{content:"";position:absolute;left:9%;right:9%;top:29px;border-top:1px dashed rgba(255,255,255,.28);z-index:0}
.svc-step{position:relative;z-index:1;text-align:center;padding:0 4px}
.svc-step-icon{width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);background:var(--ink);display:grid;place-items:center;color:var(--red);font-size:20px;margin:0 auto 14px}
.svc-step-icon svg{width:20px;height:20px}
.svc-step b{display:block;font-size:10.5px;letter-spacing:.1em;color:#8a93a0;margin-bottom:6px}
.svc-step strong{display:block;font-size:15px;font-weight:600;margin-bottom:8px}
.svc-step p{color:#9ca5b0;font-size:11.5px;line-height:1.55;margin:0}

/* Case studies */
.svc-cases{padding:110px clamp(24px,6vw,110px);max-width:1600px;margin:0 auto}
.svc-case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.svc-case{position:relative;border-radius:16px;padding:26px;min-height:290px;display:flex;flex-direction:column;color:#fff;overflow:hidden;isolation:isolate}
.svc-case:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:26px 26px;mask-image:radial-gradient(circle at 75% 20%,black,transparent 75%)}
.svc-case-transport{background:linear-gradient(135deg,#1b2733,#5b7691)}
.svc-case-fintech{background:linear-gradient(135deg,#17322c,#3f7d6e)}
.svc-case-health{background:linear-gradient(135deg,#3a1c20,#9c4f56)}
.svc-case-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:auto}
.svc-case-tag{font-size:9px;text-transform:uppercase;letter-spacing:.13em;font-weight:650;color:var(--red)}
.svc-case-arrow{width:34px;height:34px;border-radius:50%;background:#fff;color:var(--ink);display:grid;place-items:center;flex:none;transition:.2s}
.svc-case-arrow svg{width:14px;height:14px}
.svc-case-arrow:hover{background:var(--red);color:#fff}
.svc-case h3{font-size:20px;font-weight:600;letter-spacing:-.015em;line-height:1.25;margin:14px 0 10px}
.svc-case>p{font-size:13px;line-height:1.6;color:rgba(255,255,255,.78);margin:0 0 22px}
.svc-case-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:auto -26px -26px;padding:18px 26px 20px;background:#fff}
.svc-case-stats b{display:block;font-size:17px;font-weight:650;color:var(--ink)}
.svc-case-stats span{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:3px}
.svc-dots{display:flex;justify-content:center;gap:7px;margin-top:44px}
.svc-dots span{width:7px;height:7px;border-radius:50%;background:#d8d8d3}
.svc-dots span.active{background:var(--red);transform:scale(1.3)}

/* Stats bar */
.svc-stats{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:44px clamp(24px,6vw,110px);display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;max-width:1600px;margin:0 auto}
.svc-stat{display:flex;align-items:center;gap:14px}
.svc-stat svg{width:26px;height:26px;color:var(--red);flex:none}
.svc-stat b{display:block;font-size:24px;font-weight:650;letter-spacing:-.02em}
.svc-stat span{display:block;font-size:11.5px;color:var(--muted)}

/* CTA */
.svc-cta{background:linear-gradient(125deg,#f5f2ed 0%,#f3ebe6 58%,#ecdfd9 100%);padding:100px clamp(24px,6vw,110px);display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;max-width:1600px;margin:0 auto}
.svc-cta-copy h2{font-size:clamp(32px,3.6vw,46px);letter-spacing:-.03em;line-height:1.1;font-weight:560;margin:16px 0 32px;max-width:440px}
.svc-cta-photo{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3;box-shadow:0 30px 70px rgba(23,32,46,.16)}
.svc-cta-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.03)}

/* Tablet */
@media(max-width:1100px){
  .svc-hero{grid-template-columns:1fr;gap:60px;padding-top:30px}
  .svc-orbit{width:min(62vw,440px);margin:0 auto}
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .svc-approach-inner{grid-template-columns:1fr;gap:44px}
  .svc-approach-head{max-width:520px}
  .svc-timeline{grid-template-columns:repeat(5,1fr)}
  .svc-case-grid{grid-template-columns:1fr;max-width:520px;margin:0 auto}
  .svc-cta{grid-template-columns:1fr;gap:50px}
  .svc-cta-photo{order:-1}
}

/* Mobile */
@media(max-width:760px){
  .svc{padding-top:72px}
  .svc-crumb{padding-top:18px}
  .svc-hero{padding:30px 22px 70px}
  .svc-hero-actions{flex-direction:column;align-items:flex-start;gap:20px}
  .svc-orbit{width:88vw;max-width:340px;transform:scale(.94)}
  .svc-orbit-node{width:118px;padding:9px 10px;gap:8px}
  .svc-orbit-node i{width:26px;height:26px;font-size:12px}
  .svc-orbit-node i svg{width:13px;height:13px}
  .svc-orbit-node b{font-size:10px}
  .svc-orbit-hub{width:60px;height:60px}
  .svc-orbit-hub span{font-size:22px}
  .svc-capabilities{padding:70px 22px 80px}
  .svc-section-head{display:block;margin-bottom:40px}
  .svc-section-head h2{margin-top:14px}
  .svc-section-head>p{margin-top:16px;max-width:none}
  .svc-view-all{margin-top:18px}
  .svc-grid{grid-template-columns:1fr}
  .svc-approach{padding:0 16px 70px}
  .svc-approach-inner{gap:36px}
  .svc-timeline{grid-template-columns:1fr;gap:32px}
  .svc-timeline:before{display:none}
  .svc-cases{padding:70px 22px}
  .svc-case-grid{grid-template-columns:1fr}
  .svc-stats{padding:36px 22px;justify-content:flex-start;gap:28px 34px}
  .svc-cta{padding:70px 22px}
  .svc-cta-copy .button{width:100%;justify-content:center}
}

/* Very small screens: the orbit needs fewer, larger nodes to stay legible without overlap. */
@media(max-width:400px){
  .svc-orbit-upper-right,.svc-orbit-lower-left{display:none}
  .svc-orbit-node{width:132px}
}
/* Service detail pages (/services/[slug]) — a distinct design system reused across all
   8 service pages, only the copy changes per slug (see service-data.ts). Everything is
   scoped under .svcd, including its own color/type tokens, so it doesn't collide with the
   sitewide tokens or the /services listing page's own svc- classes. Nav/breadcrumb reuse
   the shared SiteHeader + .breadcrumb primitive per the site's convention; only the
   in-page sections below follow the supplied design. */
.svcd{
  --cream:#f3f0e7;
  --cream-2:#ece7da;
  --white:#ffffff;
  --navy:#101a2c;
  --navy-2:#16223a;
  --navy-3:#1d2b46;
  --red:#c8392c;
  --red-soft:#f8e3df;
  --ink:#101a2c;
  --ink-soft:#5b6472;
  --ink-faint:#8a92a0;
  --line:rgba(16,26,44,0.13);
  --line-dark:rgba(255,255,255,0.14);
  --serif:var(--font-playfair), serif;
  --sans:var(--font-inter), sans-serif;
  --body:var(--font-inter), sans-serif;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--body);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  padding-top:92px;
}
@media (max-width:760px){ .svcd{padding-top:72px;} }

.svcd h1,.svcd h2,.svcd h3,.svcd h4,.svcd p,.svcd ul{margin:0;}
.svcd img{max-width:100%;display:block;}
/* Excludes the shared SiteHeader/SiteFooter — their links (e.g. the "Let's Talk"
   button, footer nav) have their own deliberate colors that this reset would
   otherwise clobber, since it ties with their specificity and loses only on
   source order. */
.svcd a:not(header a,footer a){color:inherit;text-decoration:none;}
.svcd ul{list-style:none;padding:0;}

.svcd .wrap{max-width:1320px;margin:0 auto;padding:0 56px;}
@media (max-width:900px){ .svcd .wrap{padding:0 22px;} }

.svcd .reveal{opacity:0;transform:translateY(16px);transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1);}
.svcd .reveal.in-view{opacity:1 !important;transform:none !important;}
@media (prefers-reduced-motion:reduce){ .svcd .reveal{opacity:1;transform:none;transition:none;} }

.svcd .wrap.svcd-crumb{padding-top:20px;}
.svcd-crumb{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:12.5px;font-weight:500;color:var(--ink-faint);}
.svcd-crumb a{color:var(--ink-faint);}
.svcd-crumb a:hover{color:var(--red);}
.svcd-crumb span[aria-current]{color:var(--navy);font-weight:600;}

.svcd-eyebrow{display:flex;align-items:center;gap:12px;font-family:var(--sans);font-weight:600;font-size:12px;letter-spacing:0.24em;text-transform:uppercase;color:var(--ink-soft);}
.svcd-eyebrow::before{content:"";width:26px;height:1.5px;background:var(--red);display:block;}
.svcd-eyebrow.on-dark{color:rgba(255,255,255,0.6);}

.svcd .btn-primary{background:var(--navy);color:var(--white);font-family:var(--sans);font-weight:600;font-size:14.5px;padding:15px 24px;border-radius:100px;display:inline-flex;align-items:center;gap:8px;transition:background .25s ease,transform .25s ease;}
.svcd .btn-primary:hover{background:var(--red);transform:translateY(-2px);}
.svcd .btn-ghost{color:var(--navy);font-family:var(--sans);font-weight:600;font-size:14.5px;display:inline-flex;align-items:center;gap:8px;border-bottom:1.5px solid var(--navy);padding-bottom:3px;}
.svcd .btn-ghost:hover{color:var(--red);border-color:var(--red);}

/* ---------- hero ---------- */
.svcd-hero{padding:24px 0 40px;}
.svcd-hero-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:60px;align-items:start;margin-top:20px;}
.svcd-hero h1{font-family:var(--sans);font-weight:700;letter-spacing:-0.03em;font-size:clamp(40px,5.6vw,66px);line-height:1.02;color:var(--navy);margin-top:16px;}
.svcd-sub{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(22px,2.6vw,30px);color:var(--red);margin-top:14px;line-height:1.3;}
.svcd-lede{font-family:var(--body);font-size:16.5px;line-height:1.65;color:var(--ink-soft);max-width:48ch;margin-top:20px;}
.svcd-hero-actions{display:flex;align-items:center;gap:28px;margin-top:30px;flex-wrap:wrap;}

.svcd .stat-rail{background:var(--navy);border-radius:18px;padding:8px;}
.svcd .stat-rail .stat{padding:26px 26px;border-bottom:1px solid var(--line-dark);display:flex;align-items:baseline;justify-content:space-between;gap:14px;}
.svcd .stat-rail .stat:last-child{border-bottom:none;}
.svcd .stat-rail .stat b{font-family:var(--sans);font-weight:800;font-size:38px;color:var(--white);white-space:nowrap;}
.svcd .stat-rail .stat span{font-family:var(--body);font-size:13px;color:rgba(255,255,255,0.56);text-align:right;line-height:1.4;}
@media (max-width:900px){ .svcd-hero-grid{grid-template-columns:1fr;gap:30px;} }

/* ---------- layout with sticky rail nav ---------- */
.svcd .wrap.svcd-layout{padding-top:60px;}
.svcd-layout{display:grid;grid-template-columns:220px 1fr;gap:60px;align-items:start;}
.svcd .rail{position:sticky;top:96px;}
.svcd .rail ul{display:flex;flex-direction:column;gap:2px;}
.svcd .rail a{
  display:flex;align-items:center;gap:12px;padding:11px 0;font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--ink-faint);
  border-left:2px solid var(--line);padding-left:16px;transition:color .25s ease,border-color .25s ease;
}
.svcd .rail a::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--ink-faint);flex-shrink:0;transition:background .25s ease;}
.svcd .rail a:hover{color:var(--navy);}
.svcd .rail a.active{color:var(--red);border-color:var(--red);}
.svcd .rail a.active::before{background:var(--red);}
@media (max-width:980px){
  .svcd-layout{grid-template-columns:1fr;}
  .svcd .wrap.svcd-layout{padding-top:50px;}
  .svcd .rail{position:static;margin-bottom:20px;}
  .svcd .rail ul{flex-direction:row;flex-wrap:wrap;gap:10px;}
  .svcd .rail a{border-left:none;border-bottom:2px solid var(--line);padding:6px 0;}
}

.svcd .content > section{padding-bottom:104px;scroll-margin-top:110px;}
.svcd .content > section:last-child{padding-bottom:0;}

.svcd .section-head{max-width:680px;margin-bottom:40px;}
.svcd .section-head h2{font-family:var(--sans);font-weight:700;letter-spacing:-0.02em;color:var(--navy);font-size:clamp(26px,3vw,38px);line-height:1.1;margin-top:14px;}
.svcd .section-head h2 em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--red);}
.svcd .section-head p{font-family:var(--body);color:var(--ink-soft);font-size:15px;line-height:1.6;margin-top:14px;max-width:56ch;}

/* overview dark panel */
.svcd .panel-dark{background:var(--navy);color:var(--white);border-radius:20px;padding:52px;}
.svcd .panel-dark .section-head h2{color:var(--white);}
.svcd .panel-dark .section-head p{color:rgba(255,255,255,0.58);}
.svcd .feat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-dark);border-top:1px solid var(--line-dark);margin-top:44px;}
.svcd .feat{background:var(--navy);padding:26px 20px 6px;}
.svcd .feat-ic{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.08);display:flex;align-items:center;justify-content:center;}
.svcd .feat-ic svg{width:18px;height:18px;stroke:var(--red);fill:none;}
.svcd .feat h4{font-family:var(--sans);font-weight:700;font-size:15px;margin-top:16px;}
.svcd .feat p{font-family:var(--body);font-size:13px;color:rgba(255,255,255,0.5);line-height:1.55;margin-top:8px;}
@media (max-width:760px){ .svcd .panel-dark{padding:32px 26px;} .svcd .feat-row{grid-template-columns:1fr 1fr;} }

/* services accordion */
.svcd .svc-list{border-top:1px solid var(--line);}
.svcd .svc{border-bottom:1px solid var(--line);}
.svcd .svc-row{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:22px;padding:26px 0;width:100%;text-align:left;cursor:pointer;}
.svcd .svc-num{font-family:var(--sans);font-weight:700;font-size:13px;color:var(--red);}
.svcd .svc-title{font-family:var(--sans);font-weight:700;letter-spacing:-0.01em;font-size:clamp(20px,2.4vw,26px);color:var(--navy);transition:color .25s ease;}
.svcd .svc:hover .svc-title{color:var(--red);}
.svcd .svc-toggle{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .4s cubic-bezier(.2,.7,.3,1),background .25s ease,border-color .25s ease;}
.svcd .svc-toggle svg{width:12px;height:12px;stroke:var(--navy);}
.svcd .svc:hover .svc-toggle{border-color:var(--red);}
.svcd .svc.open .svc-toggle{background:var(--red);border-color:var(--red);transform:rotate(135deg);}
.svcd .svc.open .svc-toggle svg{stroke:var(--white);}
.svcd .svc.open .svc-title{color:var(--red);}
.svcd .svc-panel{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.2,.7,.3,1);}
.svcd .svc.open .svc-panel{max-height:200px;}
.svcd .svc-panel p{font-family:var(--body);font-size:15px;line-height:1.6;color:var(--ink-soft);max-width:60ch;padding:0 0 30px 74px;}
@media (max-width:600px){ .svcd .svc-panel p{padding-left:0;} .svcd .svc-row{grid-template-columns:32px 1fr auto;gap:14px;} }

/* vertical timeline */
.svcd-timeline{position:relative;padding-left:38px;}
.svcd-timeline::before{content:"";position:absolute;left:13px;top:6px;bottom:6px;width:1.5px;background:var(--line);}
.svcd .tl-step{position:relative;padding-bottom:44px;}
.svcd .tl-step:last-child{padding-bottom:0;}
.svcd .tl-dot{position:absolute;left:-38px;top:0;width:28px;height:28px;border-radius:50%;background:var(--white);border:1.5px solid var(--red);display:flex;align-items:center;justify-content:center;font-family:var(--sans);font-weight:700;font-size:11px;color:var(--red);}
.svcd .tl-step h4{font-family:var(--sans);font-weight:700;font-size:20px;color:var(--navy);letter-spacing:-0.01em;}
.svcd .tl-step p{font-family:var(--body);font-size:14.5px;color:var(--ink-soft);line-height:1.6;margin-top:8px;max-width:56ch;}

/* tech partners */
.svcd .stack-row{display:flex;flex-wrap:wrap;gap:12px;}
.svcd .stack-row span{font-family:var(--sans);font-weight:600;font-size:13.5px;color:var(--navy);background:var(--white);border:1px solid var(--line);border-radius:100px;padding:11px 20px;}

/* stats strip */
.svcd .stats-strip{background:var(--navy-3);border-radius:18px;padding:46px 10px;}
.svcd .stats-grid{display:grid;grid-template-columns:repeat(5,1fr);}
.svcd .stats-grid div{border-left:1px solid var(--line-dark);padding:0 22px;text-align:left;}
.svcd .stats-grid b{font-family:var(--sans);font-weight:800;font-size:clamp(24px,2.6vw,34px);color:var(--white);display:block;}
.svcd .stats-grid span{font-family:var(--body);font-size:12.5px;color:rgba(255,255,255,0.52);line-height:1.4;display:block;margin-top:8px;}
@media (max-width:760px){ .svcd .stats-grid{grid-template-columns:1fr 1fr;row-gap:24px;} }

/* case study */
.svcd .case{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:44px;display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start;align-content:start;min-height:0;}
.svcd .case .tag{font-family:var(--sans);font-weight:600;font-size:11.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--red);background:var(--red-soft);display:inline-block;padding:6px 12px;border-radius:100px;}
.svcd .case h3{font-family:var(--sans);font-weight:700;font-size:clamp(21px,2.4vw,27px);letter-spacing:-0.02em;color:var(--navy);margin-top:16px;line-height:1.25;}
.svcd .case p{font-family:var(--body);font-size:14.5px;color:var(--ink-soft);line-height:1.6;margin-top:12px;}
.svcd .case-stats{display:flex;flex-direction:column;gap:16px;}
.svcd .case-stats div{border-left:2px solid var(--red);padding-left:16px;}
.svcd .case-stats b{font-family:var(--sans);font-weight:800;font-size:28px;color:var(--navy);display:block;}
.svcd .case-stats span{font-family:var(--body);font-size:12.5px;color:var(--ink-faint);}
@media (max-width:760px){ .svcd .case{grid-template-columns:1fr;padding:30px;} }

/* why thomsun */
.svcd .why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;}
.svcd .why-item{display:flex;gap:16px;padding:24px 0;border-top:1px solid var(--line);}
.svcd .why-item b{font-family:var(--sans);font-weight:700;font-size:15px;color:var(--navy);display:block;}
.svcd .why-item p{font-family:var(--body);font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin-top:6px;}
.svcd .why-num{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--red);flex-shrink:0;}
@media (max-width:700px){ .svcd .why-grid{grid-template-columns:1fr;} }

/* faq */
.svcd .faq-list{border-top:1px solid var(--line);}
.svcd .faq-item{border-bottom:1px solid var(--line);}
.svcd .faq-q{display:flex;justify-content:space-between;align-items:center;padding:24px 0;gap:20px;width:100%;text-align:left;cursor:pointer;}
.svcd .faq-q h4{font-family:var(--sans);font-weight:600;font-size:16px;color:var(--navy);}
.svcd .faq-plus{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .35s ease,background .25s ease,border-color .25s ease;}
.svcd .faq-plus svg{width:11px;height:11px;stroke:var(--navy);}
.svcd .faq-item.open .faq-plus{background:var(--red);border-color:var(--red);transform:rotate(135deg);}
.svcd .faq-item.open .faq-plus svg{stroke:var(--white);}
.svcd .faq-a{max-height:0;overflow:hidden;transition:max-height .45s cubic-bezier(.2,.7,.3,1);}
.svcd .faq-item.open .faq-a{max-height:200px;}
.svcd .faq-a p{font-family:var(--body);font-size:14px;color:var(--ink-soft);line-height:1.6;padding-bottom:24px;max-width:62ch;}

/* cta */
.svcd .cta-box{background:var(--cream-2);border-radius:20px;padding:56px;display:grid;grid-template-columns:1.2fr 1fr;gap:40px;position:relative;overflow:hidden;}
.svcd .dots{position:absolute;left:-10px;top:-10px;width:120px;height:120px;opacity:0.5;}
.svcd .cta-box h2{font-family:var(--sans);font-weight:700;letter-spacing:-0.02em;font-size:clamp(28px,3.4vw,40px);color:var(--navy);line-height:1.1;}
.svcd .cta-box h2 em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--red);}
.svcd .cta-right p.label{font-family:var(--sans);font-weight:700;font-size:14.5px;color:var(--navy);}
.svcd .cta-right p.sub{font-family:var(--body);font-size:13.5px;color:var(--ink-soft);margin-top:6px;line-height:1.5;}
.svcd .cta-right{border-left:1px solid var(--line);padding-left:40px;}
.svcd .cta-contact{margin-top:20px;display:flex;flex-direction:column;gap:10px;}
.svcd .cta-contact a,.svcd .cta-contact span{font-family:var(--body);font-size:13.5px;color:var(--ink-soft);}
.svcd .cta-contact a:hover{color:var(--red);}
.svcd .cta-box .btn-primary{margin-top:22px;}
@media (max-width:800px){ .svcd .cta-box{grid-template-columns:1fr;padding:34px;} .svcd .cta-right{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:26px;} }

/* The shared SiteFooter is used as-is on this page (see ServiceDetail.tsx) rather than
   a page-specific footer, but it renders inside .svcd, which redefines --red/--ink to
   this design's own palette — reset those back to the sitewide values so the footer
   matches its appearance on every other page instead of picking up this page's colors. */
.svcd footer{--red:#df2d31;--ink:#17202e;}
/* Products (TERO) page — ported from the supplied teroproductpagev2.html, styles kept
   close to the original. Everything is scoped under .products to avoid colliding with
   shared site classes (.moment, .tag, .device etc. are common words), and the page's own
   design tokens are scoped to .products instead of :root so they don't leak sitewide.
   The page's own <nav> markup/styles are dropped — this page uses the shared SiteHeader
   component instead, per the site's convention (see about.css / contact.css). */

.products{
  --cream:#F7F5EF;
  --cream-deep:#F1EEE6;
  --navy:#14161F;
  --navy-soft:#3C3F4C;
  --gray:#767A85;
  --red:#E14A2E;
  --red-dim:rgba(225,74,46,0.10);
  --white:#FFFFFF;
  --line:rgba(20,22,31,0.1);
  background:var(--cream);
  color:var(--navy);
  font-family:var(--font-inter),sans-serif;
  -webkit-font-smoothing:antialiased;
  padding-top:92px;
}
@media (max-width:760px){ .products{padding-top:72px;} }

.products em.accent{font-family:var(--font-playfair),serif;font-style:italic;font-weight:500;color:var(--red);}
.products-crumb{padding:26px clamp(24px,6vw,110px) 0;max-width:1600px;margin:0 auto}

/* ---------- LAYOUT SHELL ---------- */
.products .shell{display:grid;grid-template-columns:56px 1fr 1fr;}

/* ---------- STEP RAIL ---------- */
/* Header height (92px / 72px on mobile) is added as the sticky offset so the rail and
   visual column stop below the fixed SiteHeader instead of underneath it. The shell only
   uses this sticky layout above 980px, where the header is always 92px tall, so a single
   fixed offset is safe here. */
.products .rail{
  position:sticky;top:92px;height:calc(100vh - 92px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:26px;border-right:1px solid var(--line);
}
.products .rail-dot{
  appearance:none;-webkit-appearance:none;border:0;margin:0;padding:0;font:inherit;
  width:8px;height:8px;border-radius:50%;background:var(--line);
  position:relative;transition:all .3s ease;cursor:pointer;
}
.products .rail-dot .num{
  position:absolute;left:20px;top:50%;transform:translateY(-50%);
  font-size:10px;font-weight:800;color:var(--gray);letter-spacing:1px;
  opacity:0;transition:opacity .3s ease;white-space:nowrap;
}
.products .rail-dot.active{background:var(--red);width:10px;height:10px;}
.products .rail-dot.active .num{opacity:1;color:var(--red);}
.products .rail-line{position:absolute;width:1px;background:var(--line);left:50%;top:0;bottom:0;z-index:-1;}

/* ---------- STICKY VISUAL (left content column) ---------- */
.products .visual-col{position:sticky;top:92px;height:calc(100vh - 92px);display:flex;align-items:center;justify-content:center;padding:40px;border-right:1px solid var(--line);}
.products .visual-stage{width:100%;max-width:420px;position:relative;}

.products .device{background:var(--white);border-radius:20px;border:1px solid var(--line);box-shadow:0 30px 60px rgba(20,22,31,.10);overflow:hidden;transition:box-shadow .4s ease;}
.products .device-bar{display:flex;align-items:center;gap:6px;padding:14px 18px;border-bottom:1px solid var(--line);}
.products .device-bar span{width:8px;height:8px;border-radius:50%;background:#E4E1D8;}
.products .device-body{padding:22px;}
.products .device-screenshot{display:block;width:100%;height:auto;}
.products .dv-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.products .dv-title{font-size:13px;font-weight:800;color:var(--navy);}
.products .dv-pill{font-size:10px;font-weight:700;color:var(--red);background:var(--red-dim);padding:4px 10px;border-radius:100px;transition:all .3s ease;}
.products .dv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px;}
.products .dv-chip{background:var(--cream-deep);border-radius:8px;padding:8px 6px;text-align:center;border:1.5px solid transparent;transition:all .35s ease;}
.products .dv-chip.hl{border-color:var(--red);background:var(--red-dim);}
.products .dv-chip .n{font-size:14px;font-weight:800;color:var(--navy);}
.products .dv-chip .l{font-size:9px;color:var(--gray);letter-spacing:.5px;text-transform:uppercase;margin-top:2px;}
.products .dv-panels{display:grid;grid-template-columns:1.2fr 1fr;gap:14px;}
.products .dv-bars{background:var(--cream-deep);border-radius:12px;padding:16px;border:1.5px solid transparent;transition:all .35s ease;}
.products .dv-bars.hl{border-color:var(--red);}
.products .dv-bars .lbl{font-size:10px;font-weight:700;color:var(--navy-soft);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px;}
.products .bar-row{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.products .bar-row .track{flex:1;height:6px;background:#E9E5DA;border-radius:6px;overflow:hidden;}
.products .bar-row .fill{height:100%;background:var(--red);border-radius:6px;}
.products .dv-donut{background:var(--cream-deep);border-radius:12px;padding:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1.5px solid transparent;transition:all .35s ease;}
.products .dv-donut.hl{border-color:var(--red);}
.products .donut{width:64px;height:64px;border-radius:50%;background:conic-gradient(var(--navy) 0% 72%, var(--red) 72% 100%);display:flex;align-items:center;justify-content:center;margin-bottom:8px;position:relative;}
.products .donut::after{content:'';width:32px;height:32px;border-radius:50%;background:var(--cream-deep);position:absolute;}
.products .dv-donut .lbl{font-size:10px;font-weight:700;color:var(--navy-soft);text-transform:uppercase;letter-spacing:.5px;}

.products .visual-caption{
  margin-top:22px;text-align:center;font-size:12px;font-weight:700;
  letter-spacing:1.5px;text-transform:uppercase;color:var(--gray);
  transition:color .3s ease;
}
.products .visual-caption em{color:var(--red);font-style:normal;}

.products .dimmed{opacity:.25;filter:grayscale(.4);transition:opacity .5s ease, filter .5s ease;}

/* ---------- NARRATIVE COLUMN ---------- */
.products .narrative-col{padding:0 64px;}
.products .moment{
  min-height:100vh;
  display:flex;flex-direction:column;justify-content:center;
  max-width:520px;
  opacity:.25;
  transition:opacity .5s ease;
}
.products .moment.active{opacity:1;}
.products .moment .tag{font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--red);font-weight:800;margin-bottom:18px;}
.products .moment h2{font-size:38px;line-height:1.15;font-weight:800;letter-spacing:-1px;margin:0 0 18px;}
.products .moment p{font-size:16px;color:var(--gray);line-height:1.65;margin:0 0 8px;}
.products .moment .stat-row{display:flex;gap:28px;margin-top:28px;flex-wrap:wrap;}
.products .moment .stat .n{font-size:26px;font-weight:800;color:var(--navy);}
.products .moment .stat .n span{color:var(--red);}
.products .moment .stat .l{font-size:12px;color:var(--gray);margin-top:2px;max-width:140px;line-height:1.4;}
.products .btn-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:32px;}
.products .btn-primary{background:var(--red);color:var(--white);padding:15px 28px;border-radius:100px;font-size:14px;font-weight:700;display:inline-flex;align-items:center;gap:8px;transition:transform .2s ease, box-shadow .2s ease;}
.products .btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(225,74,46,.28);}
.products .btn-secondary{background:transparent;color:var(--navy);padding:15px 26px;border-radius:100px;font-size:14px;font-weight:700;border:1.5px solid var(--line);display:inline-flex;align-items:center;gap:8px;transition:border-color .2s ease;}
.products .btn-secondary:hover{border-color:var(--navy);}

.products .last-moment{min-height:80vh;}

.products .container{max-width:1280px;margin:0 auto;padding-left:84px;padding-right:64px;}

@media (max-width:980px){
  .products .container{padding-left:28px;padding-right:28px;}
  .products .shell{grid-template-columns:1fr;}
  .products .rail{display:none;}
  .products .visual-col{position:sticky;top:92px;height:auto;z-index:5;background:var(--cream);padding:20px 24px;border-right:none;border-bottom:1px solid var(--line);box-shadow:0 12px 24px rgba(20,22,31,.06);}
  .products .narrative-col{padding:0 24px;}
  .products .moment{min-height:auto;padding:56px 0;opacity:1;}
  .products .moment h2{font-size:28px;}
}

/* Extra pass for small phones: the ported breakpoint above targets tablets, but the
   device mockup, stat row and footer still needed room to breathe under ~480px. */
@media (max-width:760px){
  .products .visual-col{top:72px;}
}

@media (max-width:480px){
  .products .visual-col{padding:16px 18px;}
  .products .dv-panels{gap:10px;}
  .products .dv-bars,.products .dv-donut{padding:12px;}
  .products .dv-grid{gap:6px;}
  .products .dv-chip{padding:7px 4px;}
  .products .dv-chip .n{font-size:13px;}
  .products .dv-chip .l{font-size:8px;}
  .products .donut{width:56px;height:56px;}
  .products .donut::after{width:28px;height:28px;}
  .products .moment h2{font-size:24px;letter-spacing:-.5px;}
  .products .moment p{font-size:15px;}
  .products .moment .stat-row{gap:20px;}
  .products .moment .stat .l{max-width:120px;}
  .products .btn-primary,.products .btn-secondary{padding:13px 20px;font-size:13px;}
}

@media (prefers-reduced-motion:reduce){
  .products *{transition:none!important;animation:none!important;}
}

/* Deliberate keyboard-focus ring, matching the rest of the site. */
.products :is(a,button):focus-visible{outline:2px solid var(--navy);outline-offset:2px;}
#tero-top:focus-visible{outline:none;}
/* Contact page — ported from the supplied contactv2.html, styles kept as-is.
   Everything is scoped under .contact to avoid colliding with shared site
   classes that reuse this design's class names (.reveal, .eyebrow), and the
   page's own <nav> markup/styles are dropped in favor of the shared
   SiteHeader component. */

.contact{
  --cream:#F7F5EF;
  --cream-deep:#F1EEE6;
  --navy:#14161F;
  --navy-soft:#3C3F4C;
  --gray:#767A85;
  --red:#E14A2E;
  --red-dim:rgba(225,74,46,0.10);
  --white:#FFFFFF;
  --line:rgba(20,22,31,0.1);
  background:var(--cream);
  color:var(--navy);
  font-family:var(--font-inter),sans-serif;
  -webkit-font-smoothing:antialiased;
  padding-top:92px;
}
@media (max-width:760px){ .contact{padding-top:72px;} }

.contact em.accent{font-family:var(--font-playfair),serif;font-style:italic;font-weight:500;color:var(--red);}
.contact-crumb{padding:26px clamp(24px,6vw,110px) 0;max-width:1600px;margin:0 auto}

/* .reveal and .eyebrow collide with shared site classes (a scroll-fade-in utility, and the nav/eyebrow micro-label) — reset what leaks through. */
.contact .reveal{opacity:1;transform:none;}
.contact .eyebrow{display:flex;align-items:center;gap:8px;margin:0;}

/* ---------- PAGE GRID ---------- */
.contact .page{
  display:grid;
  grid-template-columns:320px 1fr;
  gap:0;
  max-width:1400px;
  margin:0 auto;
  padding:32px 64px 100px;
}

/* ---------- SIDEBAR ---------- */
.contact .sidebar{
  position:sticky;
  top:124px;
  align-self:start;
  padding-right:48px;
  border-right:1px solid var(--line);
}
.contact .sidebar .eyebrow{
  font-size:11px;letter-spacing:3px;text-transform:uppercase;
  color:var(--red);font-weight:700;margin-bottom:14px;
}
.contact .sidebar .eyebrow .dash{width:18px;height:2px;background:var(--red);display:inline-block;}
.contact .sidebar h2{
  font-size:26px;font-weight:800;letter-spacing:-.5px;margin:0 0 32px;line-height:1.2;
}

.contact .direct-item{
  padding:20px 0;
  border-bottom:1px solid var(--line);
}
.contact .direct-item:first-of-type{padding-top:0;}
.contact .direct-item .k{
  font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--gray);font-weight:700;margin-bottom:8px;
}
.contact .direct-item .v{
  font-size:16px;font-weight:700;color:var(--navy);
}
.contact .direct-item .v.link{color:var(--red);}
.contact .direct-item .sub{font-size:13px;color:var(--gray);margin-top:4px;line-height:1.5;}

.contact .office-mini{
  display:flex;gap:10px;margin-top:10px;
}
.contact .office-mini .pin{width:14px;height:14px;color:var(--red);flex-shrink:0;margin-top:3px;}
.contact .office-mini .txt{font-size:13px;color:var(--navy-soft);line-height:1.55;}
.contact .office-mini .txt b{color:var(--navy);display:block;font-size:13px;margin-bottom:2px;}

/* ---------- MAIN ---------- */
.contact .main{padding-left:56px;}
.contact .main-head{max-width:640px;margin-bottom:56px;}
.contact .main-head .eyebrow{
  font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--red);
  font-weight:700;margin-bottom:20px;
}
.contact .main-head .eyebrow .dash{width:22px;height:2px;background:var(--red);display:inline-block;}
.contact .main-head h1{
  font-size:46px;line-height:1.1;font-weight:800;letter-spacing:-1px;margin:0 0 16px;
}
.contact .main-head p{font-size:17px;color:var(--gray);line-height:1.6;max-width:520px;margin:0;}

/* ---------- PATH GRID ---------- */
.contact .paths{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
}
.contact .path{
  background:var(--white);
  padding:32px;
  cursor:pointer;
  transition:background .2s ease;
  position:relative;
  border:none;
  text-align:left;
  font-family:var(--font-inter),sans-serif;
  display:block;
  width:100%;
}
.contact .path:hover{background:#FCFBF8;}
.contact .path.active{background:var(--navy);}
.contact .path .num{
  font-size:12px;font-weight:800;color:var(--red);letter-spacing:1px;margin-bottom:18px;
  display:block;
}
.contact .path.active .num{color:#FF8A6B;}
.contact .path h3{
  font-size:21px;font-weight:800;letter-spacing:-.3px;margin:0 0 10px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.contact .path.active h3{color:var(--white);}
.contact .path p{font-size:14px;color:var(--gray);line-height:1.55;margin:0;max-width:280px;}
.contact .path.active p{color:#B9BAC4;}
.contact .path .arrow{
  width:34px;height:34px;border-radius:50%;
  border:1.5px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all .2s ease;
  font-size:15px;color:var(--navy-soft);
}
.contact .path.active .arrow{
  background:var(--red);border-color:var(--red);color:var(--white);
  transform:rotate(90deg);
}
.contact .path:hover .arrow{border-color:var(--red);color:var(--red);}

/* ---------- REVEAL PANEL ---------- */
.contact .reveal-wrap{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .45s cubic-bezier(.2,.8,.2,1);
}
.contact .reveal-wrap.open{grid-template-rows:1fr;}
.contact .reveal-inner{overflow:hidden;}
.contact .reveal{
  margin-top:28px;
  background:var(--cream-deep);
  border:1px solid var(--line);
  border-radius:20px;
  padding:40px;
}
.contact .reveal-title{
  font-size:13px;letter-spacing:2px;text-transform:uppercase;color:var(--red);
  font-weight:800;margin-bottom:6px;
}
.contact .reveal-sub{font-size:22px;font-weight:700;letter-spacing:-.3px;margin:0 0 26px;}

/* quick form inside reveal */
.contact .qf-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px;}
.contact .qf-field{
  flex:1;min-width:220px;
  background:var(--white);
  border:1.5px solid var(--line);
  border-radius:12px;
  padding:14px 16px;
  font-family:var(--font-inter),sans-serif;
  font-size:15px;font-weight:500;color:var(--navy);
  outline:none;transition:border-color .2s ease;
}
.contact .qf-field:focus{border-color:var(--red);}
.contact .qf-field::placeholder{color:#B4B0A5;}
.contact textarea.qf-field{resize:none;min-height:90px;flex-basis:100%;}

.contact .qf-submit{
  background:var(--red);color:var(--white);border:none;
  padding:14px 26px;border-radius:100px;font-size:14px;font-weight:700;
  cursor:pointer;display:inline-flex;align-items:center;gap:8px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.contact .qf-submit:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(225,74,46,.25);}
.contact .qf-submit:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none;}
.contact .qf-error{font-size:13px;color:var(--red);margin:-4px 0 16px;}

/* call slots (path 2) */
.contact .slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:22px;}
.contact .slot{
  background:var(--white);border:1.5px solid var(--line);border-radius:12px;
  padding:14px;text-align:center;cursor:pointer;transition:all .2s ease;
  font-family:var(--font-inter),sans-serif;width:100%;
}
.contact .slot:hover{border-color:var(--red);}
.contact .slot.selected{background:var(--navy);border-color:var(--navy);color:var(--white);}
.contact .slot .d{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--gray);margin-bottom:4px;}
.contact .slot.selected .d{color:#B9BAC4;}
.contact .slot .t{font-size:15px;font-weight:700;}

.contact .confirm-inline{
  display:flex;align-items:center;gap:14px;
  background:var(--white);border:1px solid var(--line);border-radius:14px;
  padding:18px 22px;
}
.contact .confirm-inline .mk{
  width:36px;height:36px;border-radius:50%;background:var(--red-dim);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.contact .confirm-inline .tx b{display:block;font-size:15px;}
.contact .confirm-inline .tx span{font-size:13px;color:var(--gray);}

@media (max-width:900px){
  .contact .page{grid-template-columns:1fr;padding:24px 24px 60px;}
  .contact .sidebar{position:static;border-right:none;border-bottom:1px solid var(--line);
    padding-right:0;padding-bottom:32px;margin-bottom:40px;}
  .contact .main{padding-left:0;}
  .contact .paths{grid-template-columns:1fr;}
  .contact .slot-grid{grid-template-columns:1fr 1fr;}
  .contact .main-head h1{font-size:34px;}
  .contact .reveal-wrap{scroll-margin-top:100px;}
}

@media (max-width:480px){
  .contact .slot-grid{grid-template-columns:1fr;}
  .contact .reveal{padding:26px 22px;}
  .contact .qf-row{gap:12px;}
}
/* Careers page — ported from the supplied thomsun-careers.html, restyled onto
   the same editorial tokens as .about/.contact (cream/navy/red) so the three
   pages feel like one flow rather than three palettes. Everything is scoped
   under .careers to avoid colliding with shared site classes (.hero, .why,
   .reveal), and the page's own <nav>/<footer> markup is dropped in favor of
   the shared SiteHeader/SiteFooter components. */

.careers{
  --cream:#F7F5EF;
  --cream-deep:#F1EEE6;
  --navy:#14161F;
  --navy-soft:#3C3F4C;
  --gray:#5F636D; /* darkened from the about/contact #767A85 — that tone sits at ~3.9:1 on --cream, short of WCAG AA's 4.5:1 for body text; this hits ~5.5:1. */
  --red:#E14A2E;
  --red-soft:#FF8A6B;
  --red-dim:rgba(225,74,46,0.10);
  --white:#FFFFFF;
  --line:rgba(20,22,31,0.1);
  --line-dark:rgba(255,255,255,0.14);
  background:var(--cream);
  color:var(--navy);
  font-family:var(--font-inter),sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  padding-top:92px;
}
@media (max-width:760px){ .careers{padding-top:72px;} }

.careers-crumb{padding:26px clamp(24px,6vw,110px) 0;max-width:1600px;margin:0 auto}

.careers .container{max-width:1280px;margin:0 auto;padding:0 clamp(24px,6vw,64px);}
.careers section{padding:110px 0;}

.careers .eyebrow{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--red);font-weight:700;margin-bottom:22px;}
.careers .eyebrow .dash{width:22px;height:2px;background:var(--red);display:inline-block;}
.careers .eyebrow.on-dark{color:var(--red-soft);}
.careers .eyebrow.on-dark .dash{background:var(--red-soft);}

.careers .btn-primary,.careers .btn-secondary{cursor:pointer;font-family:var(--font-inter),sans-serif;}
.careers .btn-primary{background:var(--red);color:var(--white);padding:16px 30px;border:none;border-radius:100px;font-size:15px;font-weight:700;display:inline-flex;align-items:center;gap:8px;transition:transform .2s ease, box-shadow .2s ease;}
.careers .btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(225,74,46,.28);}
.careers .btn-secondary{background:transparent;border:1.5px solid var(--line);color:var(--navy);padding:15px 28px;border-radius:100px;font-size:15px;font-weight:700;display:inline-flex;align-items:center;gap:8px;transition:border-color .2s ease, transform .2s ease;}
.careers .btn-secondary:hover{border-color:var(--navy);transform:translateY(-2px);}
.careers .btn-secondary.on-dark{border-color:var(--line-dark);color:var(--white);}
.careers .btn-secondary.on-dark:hover{border-color:var(--white);}

.careers .text-link{
  font-weight:700;color:var(--navy);position:relative;padding-bottom:2px;
  background-image:linear-gradient(var(--red), var(--red));
  background-size:0% 2px;background-repeat:no-repeat;background-position:left bottom;
  transition:background-size .3s ease;
}
.careers .text-link:hover{background-size:100% 2px;}
.careers .text-link.on-dark{color:var(--white);background-image:linear-gradient(var(--red-soft), var(--red-soft));}

/* ---------- HERO ---------- */
/* .hero collides with the homepage's .hero (min-height/display/grid/background/position/isolation) — reset those explicitly since CSS cascades per-property, not per-rule. */
.careers .hero{padding-top:40px;padding-bottom:100px;min-height:auto;display:block;background:none;position:static;isolation:auto;}
.careers .hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;}
.careers .hero h1{font-size:60px;line-height:1.05;font-weight:800;letter-spacing:-1.6px;margin:0 0 24px;}
.careers .hero .lede{font-size:18px;color:var(--gray);line-height:1.6;max-width:460px;margin:0 0 36px;}
.careers .hero-ctas{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.careers .hero-ctas svg{width:18px;height:18px;}

.careers .hero-visual{position:relative;height:460px;}
.careers .hv-block{position:absolute;border-radius:22px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(20,22,31,.35);background:var(--navy);}
.careers .hv-1{width:78%;height:72%;top:0;right:0;}
.careers .hv-2{width:52%;height:46%;bottom:0;left:0;border:1px solid var(--line);}
.careers .hv-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
/* Darkens the top of the photo so the white badge/caption stay legible over whatever the photo looks like there; fades out by mid-height so the rest of the photo reads clearly. */
.careers .hv-scrim{position:absolute;inset:0;background:linear-gradient(180deg, rgba(11,13,20,.65) 0%, rgba(11,13,20,.2) 32%, transparent 55%);}
.careers .hv-tag{
  position:absolute;top:20px;left:20px;background:var(--white);color:var(--navy);
  font-size:12px;font-weight:700;padding:8px 14px;border-radius:100px;display:flex;align-items:center;gap:7px;
}
.careers .hv-tag::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--red);}
/* Anchored under the badge rather than at hv-1's bottom-left — hv-2 (painted after hv-1 in the DOM) sits directly on top of that corner and would otherwise blot out most of the caption text. */
.careers .hv-caption{position:absolute;left:22px;top:64px;color:var(--white);font-size:13px;font-weight:600;opacity:.9;}

@media (max-width:900px){
  .careers .hero-grid{grid-template-columns:1fr;gap:40px;}
  .careers .hero-visual{height:320px;order:-1;}
}
@media (max-width:760px){
  .careers .hero h1{font-size:38px;letter-spacing:-1px;}
  .careers .hero .lede{max-width:none;}
}

/* ---------- LIFE AT THOMSUN ---------- */
.careers .life{background:var(--cream-deep);}
.careers .life-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center;}
.careers .life-copy h2{font-size:38px;font-weight:800;letter-spacing:-1px;margin:0 0 22px;}
.careers .life-copy p{font-size:16px;color:var(--gray);line-height:1.65;margin:0 0 16px;max-width:460px;}
.careers .life-visual{
  position:relative;height:420px;border-radius:22px;overflow:hidden;border:1px solid var(--line);
  background:var(--cream-deep);
}
.careers .life-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.careers .life-visual .frame-note{
  position:absolute;right:18px;top:18px;font-size:12px;font-weight:700;color:var(--navy-soft);
  background:rgba(247,245,239,0.8);padding:6px 12px;border-radius:100px;
}

@media (max-width:900px){
  .careers .life-grid{grid-template-columns:1fr;gap:32px;}
  .careers .life-visual{height:280px;order:-1;}
}

/* ---------- WHY THOMSUN ---------- */
.careers .why{background:var(--navy);color:var(--white);}
/* .why-head collides with the homepage's .why-head (display:grid/grid-template-columns) — reset it back to a simple block. */
.careers .why-head{display:block;max-width:620px;margin-bottom:50px;}
.careers .why-head h2{font-size:36px;font-weight:800;letter-spacing:-1px;margin:0;color:var(--white);}
.careers .why-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);}
.careers .why-card{background:var(--navy);padding:36px 32px;transition:background .3s ease;}
.careers .why-card:hover{background:#1C2130;}
.careers .why-card .icon{width:38px;height:38px;margin-bottom:22px;color:var(--red-soft);}
.careers .why-card h3{font-size:18px;font-weight:700;color:var(--white);margin:0 0 10px;}
.careers .why-card p{font-size:14.5px;color:#AEB2C0;max-width:280px;margin:0;}

@media (max-width:900px){ .careers .why-grid{grid-template-columns:1fr;} }

/* ---------- OPENINGS ---------- */
.careers .openings-head{max-width:600px;margin-bottom:44px;}
.careers .openings-head h2{font-size:36px;font-weight:800;letter-spacing:-1px;margin:0 0 12px;}
.careers .openings-head p{font-size:16px;color:var(--gray);margin:0;}

.careers .job-controls{
  display:flex;flex-wrap:wrap;gap:14px;margin-bottom:40px;padding:20px;
  background:var(--white);border:1px solid var(--line);border-radius:16px;
}
.careers .search-field{
  flex:1 1 260px;display:flex;align-items:center;gap:10px;
  border:1.5px solid var(--line);border-radius:12px;padding:12px 16px;background:var(--cream);
}
.careers .search-field svg{width:18px;height:18px;color:var(--gray);flex-shrink:0;}
.careers .search-field input{border:none;background:none;outline:none;font-family:inherit;font-size:15px;width:100%;color:var(--navy);}
.careers .filter-select{
  border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;font-size:14px;font-weight:600;
  background:var(--cream) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6"><path d="M0 0l5 6 5-6z" fill="%23767A85"/></svg>') no-repeat right 14px center;
  appearance:none;color:var(--navy-soft);min-width:160px;cursor:pointer;font-family:var(--font-inter),sans-serif;
}

.careers .job-list{display:grid;gap:14px;}
.careers .job-card{
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px;
  padding:26px 28px;border:1px solid var(--line);border-radius:16px;background:var(--white);
  transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.careers .job-card:hover{border-color:var(--navy);transform:translateX(4px);box-shadow:0 12px 30px -18px rgba(20,22,31,.3);}
.careers .job-card h3{font-size:19px;font-weight:700;margin:0 0 10px;}
.careers .job-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;color:var(--gray);}
.careers .job-meta span{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--cream-deep);border-radius:100px;color:var(--navy-soft);}
.careers .job-card .actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.careers .job-card .view{font-size:14.5px;font-weight:700;white-space:nowrap;display:flex;align-items:center;gap:6px;color:var(--navy);}
.careers .job-card:hover .view{color:var(--red);}
.careers .job-card .apply-link{font-size:13px;font-weight:600;color:var(--gray);white-space:nowrap;}
.careers .job-card .apply-link:hover{color:var(--red);}
.careers .load-more-wrap{text-align:center;margin-top:36px;}
.careers .no-jobs{color:var(--gray);font-size:15px;margin:0;}

@media (max-width:700px){
  .careers .job-card{grid-template-columns:1fr;}
  .careers .job-card .actions{flex-direction:row;align-items:center;margin-top:10px;}
  .careers .job-controls{flex-direction:column;}
  /* .search-field's flex-basis:260px targets a *width* in the desktop row layout; in this
     column layout the same flex-basis would instead impose a 260px *height*, since flex-basis
     tracks the main axis. Reset it to a natural content height at 100% width. */
  .careers .search-field{flex:none;width:100%;}
  .careers .filter-select{width:100%;}
}

/* ---------- FOLLOW US ---------- */
.careers .social{background:var(--cream-deep);}
.careers .social-head{max-width:600px;margin-bottom:44px;}
.careers .social-head h2{font-size:36px;font-weight:800;letter-spacing:-1px;margin:0 0 12px;}
.careers .social-head p{font-size:16px;color:var(--gray);margin:0;}

.careers .social-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.careers .social-card{border-radius:22px;padding:38px;min-height:260px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;}
.careers .social-card h3{font-size:22px;font-weight:800;margin:14px 0 10px;}
.careers .social-card p{font-size:15px;max-width:340px;margin:0;}
.careers .icon-badge{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;}
.careers .icon-badge svg{width:22px;height:22px;}

.careers .linkedin-card{background:var(--navy);color:var(--white);border:1px solid var(--line-dark);}
.careers .linkedin-card p{color:#AEB2C0;}
.careers .linkedin-card .icon-badge{background:#22273A;color:#7FA8D6;}
.careers .linkedin-card .btn-secondary{margin-top:24px;align-self:flex-start;}

.careers .instagram-card{background:linear-gradient(135deg, #F6EADF 0%, #EDD7C2 45%, #E4C6D9 100%);color:var(--navy);border:1px solid var(--line);}
.careers .instagram-card .icon-badge{background:var(--white);color:#B85C8A;}
.careers .instagram-card p{color:var(--navy-soft);}
.careers .instagram-card .btn-secondary{margin-top:24px;align-self:flex-start;}

@media (max-width:900px){ .careers .social-grid{grid-template-columns:1fr;} }

/* ---------- MOMENTS ---------- */
.careers .moments-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:26px;flex-wrap:wrap;gap:12px;}
.careers .moments-head h3{font-size:20px;font-weight:700;margin:0;}
.careers .moments-head .handle{color:var(--red);font-weight:700;}
.careers .moments-grid{display:grid;grid-template-columns:repeat(4, 1fr);grid-auto-rows:140px;gap:12px;}
.careers .moment-tile{position:relative;border-radius:12px;overflow:hidden;background:var(--cream-deep);}
.careers .moment-tile .fill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.careers .moment-tile:hover .fill{transform:scale(1.08);}
.careers .moment-tile:nth-child(1){grid-row:span 2;}
.careers .load-more-wrap.moments{margin-top:28px;}

@media (max-width:900px){ .careers .moments-grid{grid-template-columns:repeat(2, 1fr);grid-auto-rows:130px;} }

/* ---------- FINAL CTA ---------- */
.careers .final-cta{position:relative;background:var(--navy);color:var(--white);overflow:hidden;text-align:center;}
.careers .final-cta::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 20% 20%, rgba(225,74,46,.22), transparent 45%),
    radial-gradient(circle at 82% 75%, rgba(255,255,255,.06), transparent 50%);
}
.careers .final-cta-inner{position:relative;z-index:1;max-width:620px;margin:0 auto;}
.careers .final-cta h2{font-size:44px;font-weight:800;letter-spacing:-1.2px;margin:0 0 18px;color:var(--white);}
.careers .final-cta p{font-size:17px;color:#C7CCD8;margin:0 0 36px;}
.careers .final-cta .hero-ctas{justify-content:center;}

@media (max-width:760px){
  .careers .life-copy h2,.careers .why-head h2,.careers .openings-head h2,.careers .social-head h2{font-size:28px;}
  .careers .final-cta h2{font-size:32px;}
}

/* ---------- JOB DETAIL PAGE (/careers/explore-opening/jobs/[slug]) ---------- */
/* A single, narrower reading column reads better for long-form job descriptions than the 1280px section width used on the rest of the careers page. */
.careers.job-detail .container{max-width:820px;}

.careers .job-hero{padding-top:40px;padding-bottom:44px;}
.careers .back-link{display:inline-flex;margin-bottom:28px;font-size:14px;}
.careers .job-hero h1{font-size:40px;font-weight:800;letter-spacing:-1px;line-height:1.15;margin:0 0 24px;}
.careers .job-hero .job-meta{margin-bottom:32px;}
.careers .job-hero .btn-primary{margin-top:4px;}

.careers .job-body{padding-top:0;padding-bottom:20px;}
.careers .job-section{padding:32px 0;border-bottom:1px solid var(--line);}
.careers .job-section:first-child{padding-top:0;}
.careers .job-section:last-child{border-bottom:none;}
.careers .job-section h2{font-size:21px;font-weight:800;letter-spacing:-.3px;margin:0 0 16px;}
.careers .job-section p{font-size:15.5px;color:var(--navy-soft);line-height:1.7;margin:0 0 14px;}
.careers .job-section p:last-child{margin-bottom:0;}
.careers .job-section ul{margin:0;padding-left:22px;display:grid;gap:10px;}
.careers .job-section li{font-size:15px;color:var(--navy-soft);line-height:1.6;}
.careers .job-section li ul{margin-top:8px;padding-left:20px;gap:6px;}
.careers .job-section li li{font-size:14px;color:var(--gray);}

.careers .tag-list{display:flex;flex-wrap:wrap;gap:8px;}
.careers .tag-list span{font-size:12.5px;font-weight:600;color:var(--navy-soft);background:var(--cream-deep);border:1px solid var(--line);padding:7px 14px;border-radius:100px;}

.careers .job-cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding-top:12px;padding-bottom:100px;}

@media (max-width:760px){
  .careers .job-hero h1{font-size:28px;}
  .careers .job-section h2{font-size:19px;}
  .careers .job-cta{padding-bottom:70px;}
}
