
:root{
  --navy:#062A5E;
  --navy2:#073C84;
  --royal:#0756B0;
  --cyan:#00B9D7;
  --turq:#14C5D4;
  --ink:#142033;
  --graphite:#1D2939;
  --muted:#667085;
  --line:#DCE5EE;
  --soft:#F4F7FA;
  --white:#fff;
  --shadow:0 18px 55px rgba(6,42,94,.12);
  --radius:28px;
  --ease:cubic-bezier(.2,.8,.2,1);
  --header-h:78px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--white)}
body{margin:0;color:var(--ink);background:var(--white);font-family:Inter,Manrope,Sora,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
::selection{background:rgba(0,185,215,.22);color:var(--navy)}
.container{width:min(1180px,calc(100% - 48px));margin-inline:auto}
.container-wide{width:min(1440px,calc(100% - 48px));margin-inline:auto}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.76rem;text-transform:uppercase;letter-spacing:.18em;font-weight:800;color:var(--royal)}
.eyebrow:before{content:"";width:30px;height:2px;background:linear-gradient(90deg,var(--cyan),var(--royal));border-radius:99px}
.display{font-size:clamp(3rem,7vw,7.3rem);line-height:.9;letter-spacing:-.065em;font-weight:790;margin:0}
.section-title{font-size:clamp(2.2rem,4.4vw,4.8rem);line-height:.98;letter-spacing:-.05em;font-weight:760;margin:0}
.lead{font-size:clamp(1.05rem,1.45vw,1.3rem);color:var(--muted);max-width:780px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:999px;padding:14px 20px;font-weight:750;transition:transform .35s var(--ease),box-shadow .35s var(--ease),background .35s,color .35s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:linear-gradient(115deg,var(--royal),#078bd2);color:#fff;box-shadow:0 12px 30px rgba(7,86,176,.25)}
.btn-secondary{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(12px)}
.btn-light{background:#fff;color:var(--navy);box-shadow:0 12px 30px rgba(0,0,0,.08)}
.arrow{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);transition:transform .35s var(--ease)}
.btn:hover .arrow{transform:translateX(4px)}
.skip{position:fixed;z-index:200;left:12px;top:-60px;background:#fff;color:#000;padding:10px 14px;border-radius:10px;box-shadow:var(--shadow)}
.skip:focus{top:12px}

/* Header */
.site-header{position:fixed;top:14px;left:0;right:0;z-index:100;pointer-events:none}
.header-shell{pointer-events:auto;width:min(1420px,calc(100% - 36px));margin:auto;height:var(--header-h);background:rgba(255,255,255,.96);border:1px solid rgba(8,49,94,.08);border-radius:18px;display:flex;align-items:center;padding:0 22px;gap:28px;box-shadow:0 12px 36px rgba(6,42,94,.10);backdrop-filter:blur(16px);transition:height .35s var(--ease),top .35s var(--ease),box-shadow .35s}
.site-header.scrolled .header-shell{height:68px;box-shadow:0 18px 48px rgba(6,42,94,.16)}
.brand{width:215px;flex:0 0 auto}
.brand img{width:100%;height:auto}
.main-nav{margin-left:auto;display:flex;align-items:center;gap:24px;font-size:.89rem;font-weight:700;color:#203149}
.main-nav a{position:relative;padding:10px 0}
.main-nav a:after{content:"";position:absolute;left:0;bottom:4px;width:100%;height:2px;background:linear-gradient(90deg,var(--cyan),var(--royal));transform:scaleX(0);transform-origin:right;transition:transform .32s var(--ease)}
.main-nav a:hover:after,.main-nav a[aria-current="page"]:after{transform:scaleX(1);transform-origin:left}
.main-nav a[aria-current="page"]{color:var(--royal)}
.menu-toggle{display:none;margin-left:auto;width:48px;height:48px;border:0;background:var(--soft);border-radius:14px;place-items:center}
.menu-toggle span,.menu-toggle:before,.menu-toggle:after{content:"";display:block;width:21px;height:2px;background:var(--navy);transition:.3s var(--ease)}
.menu-toggle span{margin:5px 0}
.mobile-nav{position:fixed;inset:0;z-index:95;background:rgba(4,24,48,.96);color:#fff;display:grid;align-content:center;padding:110px 34px 42px;opacity:0;visibility:hidden;transform:translateY(-12px);transition:.4s var(--ease);backdrop-filter:blur(16px)}
.mobile-nav.open{opacity:1;visibility:visible;transform:none}
.mobile-nav nav{display:grid;gap:7px}
.mobile-nav a{font-size:clamp(1.7rem,7vw,3rem);font-weight:760;letter-spacing:-.04em;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.mobile-meta{margin-top:32px;color:#b9c9dc;font-size:.9rem}

/* page transition */
.page-curtain{position:fixed;inset:0;z-index:9999;pointer-events:none;display:flex}
.page-curtain i{width:50%;height:100%;background:var(--navy);transform:scaleY(0);transition:transform .42s var(--ease)}
.page-curtain i:first-child{transform-origin:top}
.page-curtain i:last-child{transform-origin:bottom;background:linear-gradient(180deg,var(--navy2),#031b37)}
body.is-leaving .page-curtain i{transform:scaleY(1)}
body.page-enter{animation:pageEnter .58s var(--ease) both}
@keyframes pageEnter{from{opacity:0;filter:blur(8px);transform:translateY(10px)}to{opacity:1;filter:none;transform:none}}

/* hero home */
.home-hero{height:min(920px,96svh);min-height:720px;position:relative;overflow:hidden;background:#04172d;color:#fff}
.hero-slides,.hero-slide{position:absolute;inset:0}
.hero-slide{opacity:0;transition:opacity 1s var(--ease);isolation:isolate}
.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.05);transition:transform 8s linear;z-index:-2;user-select:none;pointer-events:none}
.hero-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,19,39,.94) 0%,rgba(3,30,61,.72) 38%,rgba(0,24,49,.18) 70%,rgba(0,0,0,.06) 100%);z-index:-1}
.hero-slide.active{opacity:1}
.hero-slide.active .hero-media{transform:scale(1.13)}
.hero-content{position:absolute;left:max(6vw,42px);top:51%;transform:translateY(-48%);width:min(640px,76vw);z-index:3}
.hero-kicker{font-size:.78rem;letter-spacing:.24em;text-transform:uppercase;font-weight:800;color:#9eefff;display:flex;align-items:center;gap:12px;margin-bottom:22px}
.hero-kicker:before{content:"";width:42px;height:2px;background:var(--cyan)}
.hero-title{font-size:clamp(3.6rem,6.6vw,7rem);line-height:.87;letter-spacing:-.065em;margin:0;font-weight:800}
.hero-title span{display:block;color:#fff}
.hero-title em{font-style:normal;color:transparent;background:linear-gradient(110deg,#72ebff 0%,#09badd 38%,#1685ff 100%);background-clip:text;-webkit-background-clip:text}
.hero-copy{font-size:clamp(1rem,1.35vw,1.22rem);max-width:560px;color:#d5e4f2;margin:26px 0 32px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.hero-index{position:absolute;right:max(3vw,22px);top:50%;transform:translateY(-50%);z-index:4;display:grid;gap:10px}
.hero-index button{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(1,25,51,.28);color:#fff;display:grid;place-items:center;backdrop-filter:blur(8px);transition:.3s}
.hero-index button:hover{background:rgba(0,185,215,.26);border-color:#64e7ff}
.hero-progress{position:absolute;left:max(6vw,42px);bottom:58px;right:max(6vw,42px);z-index:4;display:flex;align-items:center;gap:12px}
.hero-progress button{height:4px;flex:1;border:0;background:rgba(255,255,255,.26);padding:0;overflow:hidden;border-radius:99px}
.hero-progress button:before{content:"";display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--cyan),#5be9ff);transform:scaleX(0);transform-origin:left}
.hero-progress button.active:before{animation:slideTimer 7s linear forwards}
@keyframes slideTimer{to{transform:scaleX(1)}}
.hero-slide.active .hero-kicker,.hero-slide.active .hero-title,.hero-slide.active .hero-copy,.hero-slide.active .hero-actions{animation:heroReveal .85s var(--ease) both}
.hero-slide.active .hero-title{animation-delay:.08s}
.hero-slide.active .hero-copy{animation-delay:.16s}
.hero-slide.active .hero-actions{animation-delay:.24s}
@keyframes heroReveal{from{opacity:0;transform:translateY(28px);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}

/* marquee */
.ticker{overflow:hidden;border-block:1px solid var(--line);background:#fff}
.ticker-track{display:flex;width:max-content;animation:ticker 26s linear infinite;padding:16px 0}
.ticker span{display:flex;align-items:center;gap:24px;padding:0 24px;color:#47617f;font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;font-weight:800}
.ticker b{width:7px;height:7px;border-radius:50%;background:var(--cyan)}
@keyframes ticker{to{transform:translateX(-50%)}}

/* general sections */
.section{padding:120px 0;position:relative}
.section.soft{background:var(--soft)}
.section.dark{background:#031c38;color:#fff}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease),filter .8s;filter:blur(3px)}
.reveal.in{opacity:1;transform:none;filter:none}
.reveal[data-delay="1"]{transition-delay:.08s}.reveal[data-delay="2"]{transition-delay:.16s}.reveal[data-delay="3"]{transition-delay:.24s}.reveal[data-delay="4"]{transition-delay:.32s}
.split-words .word{display:inline-block;opacity:0;transform:translateY(.85em);transition:.7s var(--ease)}
.split-words.in .word{opacity:1;transform:none}
.split-words .word:nth-child(2n){transition-delay:.04s}.split-words .word:nth-child(3n){transition-delay:.08s}.split-words .word:nth-child(4n){transition-delay:.12s}

/* intro */
.intro-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:84px;align-items:center}
.intro-visual{position:relative}
.intro-visual .frame{border-radius:34px;overflow:hidden;min-height:620px;background:#dce8f2;box-shadow:var(--shadow)}
.intro-visual img{width:100%;height:100%;object-fit:cover;transform:scale(1.08) translateY(var(--parallax,0px));transition:transform .1s linear}
.intro-visual .float-note{position:absolute;right:-26px;bottom:44px;width:240px;background:rgba(255,255,255,.92);border:1px solid rgba(6,42,94,.08);padding:24px;border-radius:22px;box-shadow:var(--shadow);backdrop-filter:blur(14px)}
.float-note strong{display:block;color:var(--navy);font-size:1.2rem;margin-bottom:4px}
.float-note span{color:var(--muted);font-size:.92rem}

/* bento */
.bento-head{display:flex;justify-content:space-between;gap:32px;align-items:end;margin-bottom:54px}
.bento-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:340px 340px;gap:16px}
.bento-card{position:relative;border-radius:28px;overflow:hidden;background:#082849;color:#fff;isolation:isolate}
.bento-card.big{grid-row:1/3}
.bento-card.wide{grid-column:2/4}
.bento-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .8s}
.bento-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(1,21,44,.85) 100%)}
.bento-card:hover img{transform:scale(1.07)}
.bento-copy{position:absolute;z-index:2;left:28px;right:28px;bottom:26px}
.bento-copy h3{font-size:clamp(1.4rem,2vw,2.25rem);letter-spacing:-.035em;margin:0 0 8px}
.bento-copy p{margin:0;color:#d0dfec;max-width:420px}
.bento-num{position:absolute;z-index:3;top:22px;left:22px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(10px);font-size:.82rem}

/* material rail */
.material-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(270px,1fr);overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding:12px max(24px,calc((100vw - 1180px)/2)) 28px;scrollbar-width:none}
.material-rail::-webkit-scrollbar{display:none}
.material-card{scroll-snap-align:center;border-radius:26px;overflow:hidden;background:#fff;border:1px solid var(--line);min-height:410px;position:relative;transition:.45s var(--ease)}
.material-card:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.material-card figure{height:250px;margin:0;overflow:hidden;background:#dfe8ee}
.material-card img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.material-card:hover img{transform:scale(1.08)}
.material-card .body{padding:22px}
.material-card h3{font-size:1.35rem;margin:0 0 7px;letter-spacing:-.03em}
.material-card p{margin:0;color:var(--muted);font-size:.95rem}

/* sticky process */
.process-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px;align-items:start}
.process-sticky{position:sticky;top:130px}
.process-list{position:relative}
.process-list:before{content:"";position:absolute;left:24px;top:22px;bottom:22px;width:2px;background:#d8e3ee}
.process-list:after{content:"";position:absolute;left:24px;top:22px;width:2px;height:var(--process-progress,0%);background:linear-gradient(var(--cyan),var(--royal));transition:height .2s}
.process-step{display:grid;grid-template-columns:50px 1fr;gap:24px;min-height:170px;position:relative}
.process-dot{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;z-index:2;background:#fff;border:1px solid #cbd9e6;color:var(--royal);font-weight:800;transition:.4s var(--ease)}
.process-step.in .process-dot{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 0 0 9px rgba(0,185,215,.10)}
.process-step h3{font-size:1.5rem;margin:6px 0 6px;letter-spacing:-.03em}
.process-step p{margin:0;color:var(--muted)}

/* feature band */
.photo-band{min-height:680px;position:relative;display:flex;align-items:end;color:#fff;overflow:hidden}
.photo-band img{position:absolute;inset:0;width:100%;height:120%;object-fit:cover;transform:translateY(var(--parallax,0px));filter:saturate(.9) contrast(1.05)}
.photo-band:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,20,40,.04),rgba(2,20,40,.84) 78%)}
.photo-band-content{position:relative;z-index:2;padding:80px max(24px,calc((100vw - 1180px)/2));width:100%}
.photo-band-grid{display:grid;grid-template-columns:1fr .8fr;gap:80px;align-items:end}
.photo-band p{color:#d8e6f1;max-width:550px}

/* text stats */
.diff-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:56px}
.diff-item{padding:34px 28px 34px 0;border-right:1px solid var(--line)}
.diff-item+ .diff-item{padding-left:28px}
.diff-item:last-child{border-right:0}
.diff-item b{font-size:2.9rem;line-height:1;color:var(--navy);display:block;letter-spacing:-.06em}
.diff-item h3{font-size:1.05rem;margin:12px 0 6px}
.diff-item p{font-size:.92rem;color:var(--muted);margin:0}

/* CTA */
.cta-shell{border-radius:36px;background:linear-gradient(125deg,#031d3a 0%,#064785 58%,#04a8cc 125%);color:#fff;padding:64px;position:relative;overflow:hidden;isolation:isolate}
.cta-shell:before,.cta-shell:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.13);border-radius:50%;width:440px;height:440px;right:-180px;top:-190px;z-index:-1;animation:orb 8s ease-in-out infinite alternate}
.cta-shell:after{width:290px;height:290px;right:40px;top:auto;bottom:-210px;animation-delay:-2s}
@keyframes orb{to{transform:translate3d(-40px,30px,0) scale(1.08)}}
.cta-shell h2{font-size:clamp(2.4rem,5vw,5.2rem);line-height:.94;letter-spacing:-.055em;margin:0 0 20px;max-width:900px}
.cta-shell p{color:#d7e8f6;max-width:620px;font-size:1.1rem}

/* internal hero */
.inner-hero{min-height:670px;padding-top:130px;display:grid;align-items:end;background:#041b35;color:#fff;position:relative;overflow:hidden}
.inner-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.78}
.inner-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,19,39,.96) 0%,rgba(4,36,70,.72) 50%,rgba(1,15,31,.18))}
.inner-hero-content{position:relative;z-index:2;padding:110px 0 82px}
.inner-hero h1{font-size:clamp(3.5rem,7vw,7rem);line-height:.9;letter-spacing:-.065em;margin:0;max-width:900px}
.inner-hero p{font-size:1.18rem;color:#d5e6f2;max-width:650px;margin:24px 0 0}
.inner-hero .eyebrow{color:#8cecff}
.inner-hero .eyebrow:before{background:#8cecff}

/* editorial blocks */
.editorial-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.editorial-grid.reverse .editorial-media{order:2}
.editorial-media{border-radius:30px;overflow:hidden;min-height:520px;background:#e7eef4;position:relative}
.editorial-media img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .8s var(--ease)}
.editorial-media:hover img{transform:scale(1.04)}
.editorial-copy h2{font-size:clamp(2.25rem,4vw,4.2rem);line-height:.98;letter-spacing:-.05em;margin:14px 0 24px}
.editorial-copy p{color:var(--muted);font-size:1.03rem}
.kicker-list{display:grid;gap:0;margin-top:32px;border-top:1px solid var(--line)}
.kicker-list div{display:flex;justify-content:space-between;gap:30px;padding:18px 0;border-bottom:1px solid var(--line);font-weight:720}
.kicker-list span{color:var(--royal)}

/* solutions accordion */
.accordion{border-top:1px solid var(--line)}
.acc-item{border-bottom:1px solid var(--line)}
.acc-btn{width:100%;display:grid;grid-template-columns:80px 1fr 50px;gap:22px;align-items:center;background:none;border:0;padding:28px 0;text-align:left;color:var(--ink)}
.acc-btn .n{font-weight:800;color:var(--royal)}
.acc-btn h3{font-size:clamp(1.45rem,2.8vw,2.6rem);margin:0;letter-spacing:-.04em}
.acc-btn .plus{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);transition:.35s}
.acc-item.open .plus{transform:rotate(45deg);background:var(--navy);color:#fff}
.acc-content{display:grid;grid-template-columns:1fr .85fr;gap:50px;max-height:0;overflow:hidden;transition:max-height .7s var(--ease),padding .7s var(--ease);padding-left:102px}
.acc-item.open .acc-content{max-height:520px;padding-bottom:34px}
.acc-content p{color:var(--muted);margin:0}
.acc-content img{width:100%;height:250px;object-fit:cover;border-radius:20px}

/* materials mosaic */
.material-mosaic{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.mosaic{border-radius:24px;overflow:hidden;position:relative;min-height:300px;background:#e4edf5}
.mosaic:nth-child(1){grid-column:span 7;min-height:480px}
.mosaic:nth-child(2){grid-column:span 5}
.mosaic:nth-child(3){grid-column:span 4}
.mosaic:nth-child(4){grid-column:span 4}
.mosaic:nth-child(5){grid-column:span 4}
.mosaic:nth-child(6){grid-column:span 12;min-height:360px}
.mosaic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:.7s var(--ease)}
.mosaic:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(3,26,53,.82))}
.mosaic:hover img{transform:scale(1.06)}
.mosaic .label{position:absolute;z-index:2;left:24px;right:24px;bottom:22px;color:#fff}
.mosaic .label h3{font-size:1.7rem;margin:0 0 4px;letter-spacing:-.04em}
.mosaic .label p{margin:0;color:#d8e6f1;font-size:.9rem}

/* circular flow */
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;align-items:center;margin-top:60px}
.flow-node{min-height:180px;border:1px solid var(--line);border-radius:26px;padding:24px;position:relative;background:#fff;transition:.4s var(--ease)}
.flow-node:hover{transform:translateY(-6px);border-color:#98ddea;box-shadow:var(--shadow)}
.flow-node:after{content:"→";position:absolute;right:-18px;top:50%;transform:translateY(-50%);z-index:2;color:var(--cyan);font-size:1.5rem}
.flow-node:last-child:after{display:none}
.flow-node small{color:var(--royal);font-weight:800}
.flow-node h3{margin:8px 0 6px;font-size:1.2rem}
.flow-node p{margin:0;color:var(--muted);font-size:.9rem}

/* quality */
.quality-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}
.quality-panel{border-radius:30px;overflow:hidden;background:#061f3e;color:#fff;min-height:560px;position:relative}
.quality-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75}
.quality-panel:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,rgba(1,20,42,.92))}
.quality-panel .content{position:absolute;z-index:2;bottom:34px;left:34px;right:34px}
.quality-side{display:grid;gap:18px}
.quality-note{border-radius:30px;padding:34px;background:var(--soft);min-height:270px}
.quality-note.dark{background:var(--navy);color:#fff}
.quality-note h3{font-size:1.7rem;margin:0 0 14px;letter-spacing:-.04em}
.quality-note p{margin:0;color:var(--muted)}
.quality-note.dark p{color:#d6e4ef}

/* blog */
.blog-feature{display:grid;grid-template-columns:1.2fr .8fr;gap:48px;align-items:end;margin-bottom:70px}
.blog-feature figure{height:500px;margin:0;border-radius:30px;overflow:hidden}
.blog-feature img{width:100%;height:100%;object-fit:cover}
.blog-feature h2{font-size:clamp(2.2rem,4.5vw,4.7rem);line-height:.95;letter-spacing:-.055em;margin:15px 0}
.blog-feature p{color:var(--muted)}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.article-card{border-top:1px solid var(--line);padding-top:20px}
.article-card figure{height:230px;margin:0 0 20px;border-radius:22px;overflow:hidden}
.article-card img{width:100%;height:100%;object-fit:cover;transition:.6s var(--ease)}
.article-card:hover img{transform:scale(1.06)}
.article-card small{color:var(--royal);font-weight:800}
.article-card h3{font-size:1.35rem;line-height:1.1;margin:8px 0 10px;letter-spacing:-.035em}
.article-card p{color:var(--muted);font-size:.92rem}

/* contact */
.contact-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:70px;align-items:start}
.contact-card{position:sticky;top:120px;background:var(--navy);color:#fff;border-radius:30px;padding:40px}
.contact-card h2{font-size:2.4rem;line-height:1;margin:0 0 26px;letter-spacing:-.05em}
.contact-lines{display:grid;gap:20px}
.contact-lines a,.contact-lines div{padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.14)}
.contact-lines small{display:block;color:#8edfee;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;margin-bottom:5px}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:grid;gap:8px}
.field.full{grid-column:1/-1}
.field label{font-size:.86rem;font-weight:750;color:#33455c}
.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:15px;padding:15px 16px;background:#fff;color:var(--ink);outline:none;transition:border-color .25s,box-shadow .25s}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(0,185,215,.12)}
.field textarea{min-height:160px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;color:var(--muted);font-size:.9rem}
.map{margin-top:70px;border-radius:30px;overflow:hidden;height:440px;border:1px solid var(--line)}
.map iframe{width:100%;height:100%;border:0}

/* privacy */
.prose{max-width:860px;margin:auto}
.prose h2{font-size:1.8rem;letter-spacing:-.03em;margin:48px 0 12px;color:var(--navy)}
.prose p,.prose li{color:var(--muted)}
.prose ul{padding-left:22px}

/* 404 */
.not-found{min-height:100svh;display:grid;place-items:center;background:radial-gradient(circle at 70% 30%,#0d4b84 0,#041c38 36%,#021126 80%);color:#fff;padding:120px 24px;text-align:center;position:relative;overflow:hidden}
.not-found .code{font-size:clamp(7rem,22vw,18rem);line-height:.7;font-weight:850;letter-spacing:-.09em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.34);position:relative}
.not-found .code:after{content:"404";position:absolute;inset:0;color:rgba(0,185,215,.2);transform:translate(8px,8px);filter:blur(2px)}
.not-found h1{font-size:clamp(2rem,5vw,4rem);letter-spacing:-.05em;margin:30px 0 12px}
.not-found p{color:#cbdbe9;max-width:600px;margin:0 auto 28px}

/* footer */
.site-footer{background:#02172f;color:#d8e5ef;padding:74px 0 28px;margin-top:0}
.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:50px}
.footer-brand img{width:250px;filter:brightness(0) invert(1);opacity:.94}
.footer-brand p{color:#9eb3c6;max-width:380px}
.footer-col h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;color:#7cdcef;margin:0 0 18px}
.footer-col a,.footer-col span{display:block;color:#b7c7d6;margin:9px 0;font-size:.93rem}
.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid rgba(255,255,255,.1);margin-top:52px;padding-top:24px;color:#8198ac;font-size:.83rem}
.footer-bottom a{color:#a7bbca}

/* responsive */
@media(max-width:1180px){
  .main-nav{gap:15px;font-size:.82rem}.brand{width:190px}
  .bento-grid{grid-template-columns:1fr 1fr;grid-template-rows:380px 320px 320px}.bento-card.big{grid-row:auto;grid-column:1/-1}.bento-card.wide{grid-column:1/-1}
  .diff-grid{grid-template-columns:1fr 1fr}.diff-item:nth-child(2){border-right:0}.diff-item:nth-child(3){padding-left:0;border-top:1px solid var(--line)}.diff-item:nth-child(4){border-top:1px solid var(--line)}
  .footer-grid{grid-template-columns:1.5fr 1fr 1fr}.footer-col:last-child{grid-column:2/4}
}
@media(max-width:980px){
  .main-nav{display:none}.menu-toggle{display:grid}
  .header-shell{height:68px;padding:0 16px}.brand{width:180px}
  .home-hero{min-height:700px;height:90svh}.hero-content{left:28px;top:49%;width:calc(100% - 56px)}.hero-index{display:none}.hero-progress{left:28px;right:28px;bottom:30px}
  .intro-grid,.editorial-grid,.process-wrap,.photo-band-grid,.contact-grid,.quality-grid,.blog-feature{grid-template-columns:1fr;gap:46px}
  .intro-visual .frame{min-height:520px}.intro-visual .float-note{right:18px}
  .process-sticky,.contact-card{position:relative;top:auto}
  .editorial-grid.reverse .editorial-media{order:0}
  .editorial-media{min-height:420px}
  .flow{grid-template-columns:1fr 1fr}.flow-node:after{display:none}
  .blog-grid{grid-template-columns:1fr 1fr}
  .footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-col:last-child{grid-column:auto}
}
@media(max-width:680px){
  .container,.container-wide{width:min(100% - 30px,1180px)}
  .site-header{top:8px}.header-shell{width:calc(100% - 16px);border-radius:15px}.brand{width:155px}
  .home-hero{min-height:690px;height:88svh}.hero-slide:after{background:linear-gradient(90deg,rgba(2,19,39,.94),rgba(3,30,61,.72) 75%,rgba(0,24,49,.35))}
  .hero-content{left:20px;width:calc(100% - 40px);top:52%}.hero-title{font-size:clamp(3.2rem,16vw,5.2rem)}.hero-copy{font-size:1rem;margin:20px 0 24px}.hero-actions .btn{width:100%}.hero-progress{left:20px;right:20px}
  .section{padding:82px 0}.section-title{font-size:2.8rem}
  .intro-grid{gap:36px}.intro-visual .frame{min-height:400px}.intro-visual .float-note{position:relative;right:auto;bottom:auto;width:auto;margin:-42px 18px 0}
  .bento-head{display:block}.bento-head .lead{margin-top:20px}.bento-grid{display:grid;grid-template-columns:1fr;grid-template-rows:none}.bento-card,.bento-card.big,.bento-card.wide{grid-column:auto;min-height:350px}.bento-card.big{min-height:470px}
  .material-rail{grid-auto-columns:82vw;padding-inline:15px}
  .process-step{grid-template-columns:44px 1fr;gap:16px}.process-dot{width:44px;height:44px}.process-list:before,.process-list:after{left:21px}
  .photo-band{min-height:620px}.photo-band-content{padding:55px 20px}.photo-band-grid{gap:30px}
  .diff-grid{grid-template-columns:1fr}.diff-item,.diff-item+ .diff-item,.diff-item:nth-child(3){padding:24px 0;border-right:0;border-top:1px solid var(--line)}
  .cta-shell{padding:38px 26px;border-radius:28px}
  .inner-hero{min-height:620px}.inner-hero-content{padding:120px 0 64px}.inner-hero h1{font-size:clamp(3.1rem,15vw,5rem)}
  .editorial-media{min-height:350px}.acc-btn{grid-template-columns:44px 1fr 42px;gap:12px}.acc-content{grid-template-columns:1fr;padding-left:56px}.acc-item.open .acc-content{max-height:800px}
  .material-mosaic{display:block}.mosaic{min-height:360px;margin-bottom:14px}.mosaic:nth-child(1),.mosaic:nth-child(6){min-height:430px}
  .flow{grid-template-columns:1fr}
  .quality-panel{min-height:460px}
  .blog-feature figure{height:360px}.blog-grid{grid-template-columns:1fr}
  .contact-form{grid-template-columns:1fr}.field.full{grid-column:auto}.map{height:360px}
  .footer-grid{grid-template-columns:1fr}.footer-brand,.footer-col:last-child{grid-column:auto}.footer-bottom{display:block}.footer-bottom span{display:block;margin-bottom:8px}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
  .hero-media{transform:none!important}.ticker-track{animation:none!important}
}


/* =========================================================
   V4 — ajustes cirúrgicos: hero, menu mobile e materiais
   ========================================================= */

/* Header: permanece fixo, branco e com a mesma altura durante o scroll. */
.site-header{
  position:fixed;
  top:14px;
  left:0;
  right:0;
  z-index:120;
}
.header-shell{
  height:var(--header-h);
  background:#fff;
}
.site-header.scrolled .header-shell{
  height:var(--header-h);
  box-shadow:0 14px 42px rgba(6,42,94,.14);
}

/* Hero: 10% menor e com composição de linhas estável em qualquer largura. */
.hero-content{
  top:55%;
  transform:translateY(-46%);
  width:min(1250px,84vw);
}
.hero-kicker{
  font-size:.70rem;
  margin-bottom:20px;
}
.hero-title{
  font-size:clamp(3.24rem,5.94vw,6.3rem);
  line-height:.89;
  letter-spacing:-.06em;
  max-width:none;
}
.hero-title > span,
.hero-title > em{
  display:block;
  white-space:nowrap;
}
.hero-mobile-break{display:none}
.hero-copy{
  font-size:clamp(.90rem,1.215vw,1.10rem);
  max-width:540px;
  margin:24px 0 30px;
}

/* Materiais: cabeçalho e trilho visual centralizados no desktop. */
.materials-head{
  text-align:center;
  margin-bottom:34px;
}
.materials-head .eyebrow{
  justify-content:center;
}
.materials-head .section-title{
  max-width:920px;
  margin:10px auto 0;
}
.materials-section .material-rail{
  width:min(1440px,calc(100% - 48px));
  margin-inline:auto;
  grid-auto-flow:row;
  grid-template-columns:repeat(5,minmax(0,1fr));
  grid-auto-columns:auto;
  overflow:visible;
  padding:12px 0 28px;
}

/* Menu mobile: camada própria, clicável e rolável em telas baixas. */
.mobile-nav{
  z-index:115;
  pointer-events:none;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.mobile-nav.open{
  pointer-events:auto;
  opacity:1;
  visibility:visible;
  transform:none;
}
.menu-toggle{
  position:relative;
  z-index:125;
}
.menu-toggle span,
.menu-toggle:before,
.menu-toggle:after{
  position:absolute;
  left:50%;
  width:22px;
  height:2px;
  margin:0;
  transform:translateX(-50%);
  border-radius:99px;
}
.menu-toggle:before{top:16px}
.menu-toggle span{top:23px}
.menu-toggle:after{top:30px}
.menu-toggle[aria-expanded="true"]:before{
  top:23px;
  transform:translateX(-50%) rotate(45deg);
}
.menu-toggle[aria-expanded="true"] span{
  opacity:0;
  transform:translateX(-50%) scaleX(.2);
}
.menu-toggle[aria-expanded="true"]:after{
  top:23px;
  transform:translateX(-50%) rotate(-45deg);
}

@media(max-width:1180px){
  .hero-content{width:min(1100px,84vw)}
}

@media(max-width:980px){
  .site-header{top:12px}
  .header-shell,
  .site-header.scrolled .header-shell{height:68px}
  .home-hero{padding-top:0}
  .hero-content{
    left:28px;
    top:55%;
    width:calc(100% - 56px);
    transform:translateY(-45%);
  }
  .hero-title{
    font-size:clamp(3.24rem,5.94vw,6.3rem);
    line-height:.90;
  }
  .materials-section .material-rail{
    width:100%;
    margin-inline:0;
    grid-auto-flow:column;
    grid-template-columns:none;
    grid-auto-columns:minmax(270px,42vw);
    overflow-x:auto;
    padding:12px 24px 28px;
  }
}

@media(max-width:740px){
  .hero-title{
    font-size:clamp(2rem,8.4vw,3.35rem);
    line-height:.94;
    letter-spacing:-.05em;
  }
  .hero-mobile-break{display:block}
}

@media(max-width:680px){
  .site-header{top:8px}
  .hero-content{
    left:20px;
    top:56%;
    width:calc(100% - 40px);
    transform:translateY(-44%);
  }
  .hero-kicker{
    font-size:.66rem;
    margin-bottom:16px;
  }
  .hero-copy{
    font-size:.90rem;
    line-height:1.48;
    max-width:94%;
    margin:18px 0 22px;
  }
  .hero-actions{gap:9px}
  .hero-actions .btn{padding:12px 16px}
  .mobile-nav{
    padding:100px 24px 30px;
    align-content:start;
  }
  .mobile-nav nav{gap:3px}
  .mobile-nav a{font-size:clamp(1.5rem,7vw,2.35rem);padding:8px 0}
  .mobile-meta{margin-top:24px;padding-bottom:20px}
  .materials-head{
    width:min(100% - 30px,1180px);
    margin-bottom:24px;
  }
  .materials-section .material-rail{
    grid-auto-columns:82vw;
    padding-inline:15px;
  }
}

@media(max-width:380px){
  .hero-copy{font-size:.86rem}
}

/* =========================================================
   V5 — correção definitiva do header fixo e mídia institucional
   ========================================================= */

/* O body não pode receber transform: um ancestral transformado muda o
   referencial de position: fixed em alguns navegadores. A entrada passa a
   animar somente o conteúdo, preservando o header preso à viewport. */
body.page-enter{
  animation:none !important;
  transform:none !important;
  filter:none !important;
}
body.page-enter main,
body.page-enter .site-footer{
  animation:pageEnter .58s var(--ease) both;
}

/* Header realmente fixo em desktop, tablet e mobile. */
.site-header,
.site-header.scrolled{
  position:fixed !important;
  top:14px !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  z-index:1000 !important;
  transform:none !important;
}
.header-shell,
.site-header.scrolled .header-shell{
  height:var(--header-h) !important;
  background:#fff !important;
}

/* A imagem institucional passa a preencher integralmente o frame.
   O problema anterior era o uso de min-height no container com uma imagem
   de altura intrínseca menor, deixando a área inferior vazia. */
.intro-visual .frame{
  position:relative;
  height:620px;
  min-height:0 !important;
  overflow:hidden;
  background:#dce8f2;
}
.intro-visual .frame img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
  transform:scale(1.06) translateY(var(--parallax,0px));
}

@media(max-width:980px){
  .site-header,
  .site-header.scrolled{top:12px !important}
  .header-shell,
  .site-header.scrolled .header-shell{height:68px !important}
  .intro-visual .frame{height:520px}
}

@media(max-width:680px){
  .site-header,
  .site-header.scrolled{top:8px !important}
  .intro-visual .frame{height:430px}
  .intro-visual .frame img{object-position:58% center}
}
