

:root {
  --navy: #061b3b;
  --navy-2: #0b2f65;
  --blue: #075ecb;
  --cyan: #19b8e8;
  --yellow: #ffd400;
  --lime: #bbdc27;
  --ink: #07172f;
  --paper: #f4f7fb;
  --line: #dbe5f1;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Arial, Helvetica, sans-serif;
}
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }

.site-header {
  position: absolute;
  z-index: 20;
  inset: 0 0 auto;
  width: min(1380px, calc(100% - 64px));
  height: 104px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255,255,255,.13);
  color: white;
}
.brand { display: flex; align-items: center; gap: 14px; }
.brand > span:last-child { display: flex; flex-direction: column; gap: 2px; }
.brand strong { font-size: 17px; letter-spacing: -.02em; }
.brand small { font-size: 10px; text-transform: uppercase; letter-spacing: .13em; color: #99b7d8; }
.brand-logo { width:48px; height:48px; display:block; flex:0 0 48px; filter:drop-shadow(0 8px 20px rgba(255,212,0,.16)); }
.brand-logo img { display:block; width:100%; height:100%; object-fit:contain; }
.header-actions { display:flex; align-items:center; gap:15px; }
.nav { display: flex; align-items: center; gap: 37px; font-size: 13px; font-weight: 700; }
.nav > a:not(.nav-cta) { color: #bfcee1; transition: color .2s ease; }
.nav > a:not(.nav-cta):hover { color: white; }
.nav-cta { padding: 13px 18px; border: 1px solid rgba(255,255,255,.27); border-radius: 99px; }
.nav-cta span { margin-left: 9px; color: var(--yellow); }
.theme-picker { position:relative; }
.theme-trigger { min-height:43px; padding:0 13px; display:flex; align-items:center; gap:8px; border:1px solid rgba(255,255,255,.22); border-radius:99px; color:white; background:rgba(255,255,255,.05); cursor:pointer; font-size:11px; font-weight:800; transition:background .2s ease,border-color .2s ease; }
.theme-trigger:hover,.theme-trigger[aria-expanded="true"] { border-color:rgba(255,255,255,.42); background:rgba(255,255,255,.1); }
.theme-preview { width:27px; height:27px; display:flex; overflow:hidden; flex:0 0 27px; border:2px solid rgba(255,255,255,.72); border-radius:50%; transform:rotate(-22deg); box-shadow:0 3px 10px rgba(0,0,0,.18); }
.theme-preview i { width:50%; height:100%; display:block; }
.preview-adventista i:first-child { background:#082653; }.preview-adventista i:last-child { background:#ffd400; }
.preview-silver i:first-child { background:#101f38; }.preview-silver i:last-child { background:#c7d0da; }
.preview-moss i:first-child { background:#46563e; }.preview-moss i:last-child { background:#e4dac4; }
.theme-menu { position:absolute; z-index:30; top:calc(100% + 13px); right:0; width:250px; padding:11px; border:1px solid rgba(255,255,255,.16); border-radius:17px; color:white; background:rgba(5,25,53,.96); box-shadow:0 24px 60px rgba(0,0,0,.38); backdrop-filter:blur(18px); opacity:0; visibility:hidden; transform:translateY(-7px); transition:opacity .18s ease,transform .18s ease,visibility .18s ease; }
.theme-menu.open { opacity:1; visibility:visible; transform:translateY(0); }
.theme-menu > p { margin:3px 8px 9px; color:#8ea8c7; font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.theme-menu > button { width:100%; min-height:57px; padding:8px; display:grid; grid-template-columns:32px 1fr 18px; align-items:center; gap:10px; border:0; border-radius:11px; color:white; background:transparent; cursor:pointer; text-align:left; }
.theme-menu > button:hover,.theme-menu > button.active { background:rgba(255,255,255,.09); }
.theme-menu > button > span:nth-child(2) { display:flex; flex-direction:column; gap:3px; }
.theme-menu strong { font-size:12px; }.theme-menu small { color:#94acc7; font-size:9px; }.theme-menu b { color:var(--yellow); opacity:0; }
.theme-menu button.active b { opacity:1; }
.theme-trigger:focus-visible,.theme-menu button:focus-visible { outline:2px solid var(--yellow); outline-offset:3px; }
.menu-toggle { display:none; background:none; border:0; padding:10px; }
.menu-toggle span { display:block; width:24px; height:2px; background:white; margin:5px; }

.hero {
  min-height: 900px;
  position: relative;
  overflow: hidden;
  padding: 210px max(32px, calc((100vw - 1380px) / 2)) 64px;
  color: white;
  background: radial-gradient(circle at 78% 38%, #123f80 0, transparent 33%), linear-gradient(122deg, #061a39 0%, #06234b 54%, #061932 100%);
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  align-items: center;
}
.hero-grid { position:absolute; inset:0; opacity:.1; background-image: linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px); background-size:80px 80px; mask-image:linear-gradient(to bottom,black,transparent 80%); }
.hero::after { content:""; position:absolute; left:0; right:0; bottom:0; height:130px; background:linear-gradient(transparent, rgba(1,13,31,.5)); }
.hero-glow { position:absolute; border-radius:50%; filter:blur(10px); }
.hero-glow-one { width:500px; height:500px; top:-260px; left:16%; background:rgba(17,107,227,.24); }
.hero-glow-two { width:300px; height:300px; right:-130px; bottom:80px; background:rgba(255,212,0,.1); }
.hero-copy { position:relative; z-index:2; max-width:720px; align-self:start; }
.eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 24px; color:#bdd0e8; font-weight:800; font-size:11px; letter-spacing:.17em; text-transform:uppercase; }
.eyebrow span { width:31px; height:3px; border-radius:5px; background:var(--yellow); }
.eyebrow.dark { color:var(--blue); }
.hero h1 { margin:0; font-size:clamp(56px,6.2vw,92px); line-height:.97; letter-spacing:-.067em; max-width:770px; }
.hero h1 em { display:block; color:var(--yellow); font-style:normal; }
.hero-lead { max-width:610px; margin:32px 0 0; color:#b9cbe0; font-size:18px; line-height:1.72; }
.hero-actions { display:flex; gap:14px; margin-top:39px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:53px; padding:0 24px; border-radius:10px; font-size:13px; font-weight:800; transition:transform .2s ease, box-shadow .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { color:var(--navy); background:var(--yellow); box-shadow:0 14px 35px rgba(255,212,0,.16); }
.button-ghost { color:white; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.04); }
.play { display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:white; color:var(--navy); font-size:8px; }

.hero-visual { position:relative; z-index:2; width:min(560px,100%); aspect-ratio:1; justify-self:end; }
.orbit { position:absolute; border-radius:50%; border:1px solid rgba(103,170,246,.25); }
.orbit-one { inset:5%; animation:rotate 30s linear infinite; }
.orbit-two { inset:20%; border-style:dashed; animation:rotate 20s linear infinite reverse; }
.core-badge { position:absolute; inset:31%; border-radius:50%; background:linear-gradient(145deg,#0c62cc,#09285a); box-shadow:0 30px 80px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,255,255,.16); display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; }
.core-icon { display:grid; place-items:center; width:66px; height:66px; border-radius:20px; margin-bottom:13px; color:var(--navy); background:var(--yellow); font-size:22px; font-weight:900; transform:rotate(-6deg); }
.core-badge strong { font-size:15px; line-height:1.35; }
.floating-card { position:absolute; display:flex; align-items:center; gap:12px; padding:11px 16px 11px 11px; border-radius:16px; background:rgba(8,40,82,.86); border:1px solid rgba(122,181,244,.25); box-shadow:0 20px 45px rgba(0,0,0,.3); backdrop-filter:blur(13px); }
.floating-card p { display:flex; flex-direction:column; margin:0; gap:2px; }
.floating-card strong { font-size:12px; }.floating-card small { font-size:9px; color:#9db9da; }
.float-icon { display:grid; place-items:center; min-width:40px; height:40px; padding:0 7px; border-radius:12px; background:#123f79; color:var(--yellow); font-weight:900; font-size:11px; }
.float-a { top:9%; left:6%; }.float-b { right:-3%; top:39%; }.float-c { bottom:9%; left:8%; }
.signal { position:absolute; width:9px; height:9px; border-radius:50%; background:var(--yellow); box-shadow:0 0 0 7px rgba(255,212,0,.08); }
.signal-one { top:12%; right:29%; }.signal-two { top:56%; left:5%; }.signal-three { bottom:15%; right:24%; }
@keyframes rotate { to { transform:rotate(360deg); } }

.hero-stats { position:absolute; z-index:3; bottom:0; left:50%; transform:translateX(-50%); width:min(1380px,calc(100% - 64px)); min-height:110px; display:grid; grid-template-columns:repeat(3,1fr); align-items:center; border-top:1px solid rgba(255,255,255,.12); }
.hero-stats div { display:flex; align-items:center; gap:16px; min-height:58px; padding-left:32px; border-left:1px solid rgba(255,255,255,.13); }
.hero-stats div:first-child { padding-left:0; border-left:0; }
.hero-stats strong { font-size:34px; color:var(--yellow); letter-spacing:-.04em; }
.hero-stats span { color:#a7bdd6; font-size:11px; text-transform:uppercase; letter-spacing:.11em; line-height:1.5; }

.solutions-section { padding:120px max(32px,calc((100vw - 1380px)/2)) 130px; background:#f5f8fc; }
.section-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:80px; align-items:end; margin-bottom:54px; }
.section-heading h2 { margin:0; font-size:clamp(45px,5vw,72px); line-height:.98; letter-spacing:-.055em; }
.section-heading > p { max-width:470px; margin:0 0 4px auto; color:#60738b; font-size:17px; line-height:1.7; }
.featured-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:24px; }
.project-card { grid-column:span 4; background:white; border:1px solid #dee7f1; border-radius:22px; overflow:hidden; box-shadow:0 18px 40px rgba(9,40,81,.06); transition:transform .25s ease,box-shadow .25s ease; }
.project-card:hover { transform:translateY(-6px); box-shadow:0 24px 55px rgba(9,40,81,.13); }
.project-image { position:relative; aspect-ratio:1.52; overflow:hidden; background:#dce6f1; }
.project-image::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 55%,rgba(3,16,38,.54)); }
.project-image img { width:100%; height:100%; object-fit:cover; object-position:top; transition:transform .5s ease; }
.project-card:hover img { transform:scale(1.035); }
.project-index { position:absolute; z-index:2; bottom:17px; left:19px; color:white; font-size:11px; font-weight:800; letter-spacing:.12em; }
.project-open { position:absolute; z-index:2; right:15px; top:15px; width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.9); color:var(--navy); font-size:17px; }
.project-content { padding:24px 25px 28px; }
.project-content p { margin:0 0 10px; color:var(--blue); font-size:10px; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.project-content h3 { margin:0 0 10px; font-size:23px; letter-spacing:-.035em; }
.project-content > span { display:block; color:#62748a; font-size:14px; line-height:1.62; }
.project-lime .project-content p { color:#779500; }.project-cyan .project-content p { color:#008ab5; }.project-gold .project-content p { color:#a87900; }.project-green .project-content p { color:#087458; }.project-red .project-content p { color:#a4252c; }

.capabilities { display:grid; grid-template-columns:.92fr 1.08fr; gap:90px; padding:125px max(32px,calc((100vw - 1380px)/2)); background:white; }
.capability-intro h2 { margin:0; font-size:clamp(43px,4.6vw,68px); line-height:1; letter-spacing:-.055em; }
.capability-list { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.capability-list article { position:relative; min-height:270px; padding:31px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.capability-list article::after { content:""; position:absolute; left:0; bottom:-1px; width:0; height:3px; background:var(--yellow); transition:width .3s ease; }
.capability-list article:hover::after { width:100%; }
.capability-list b { position:absolute; top:20px; right:22px; color:#a8b6c6; font-size:10px; letter-spacing:.12em; }
.capability-icon { display:grid; place-items:center; width:49px; height:49px; margin-bottom:39px; border-radius:14px; background:#e9f2ff; color:var(--blue); font-weight:900; font-size:11px; }
.capability-list article:nth-child(2) .capability-icon { color:#9c7400; background:#fff7d6; }
.capability-list article:nth-child(3) .capability-icon { color:#087458; background:#e1f5ee; }
.capability-list article:nth-child(4) .capability-icon { color:#7255c4; background:#f0ebff; }
.capability-list h3 { margin:0 0 10px; font-size:22px; letter-spacing:-.03em; }
.capability-list p { margin:0; color:#667990; font-size:14px; line-height:1.65; }

.catalogue-section { padding:120px max(32px,calc((100vw - 1380px)/2)) 140px; color:white; background:linear-gradient(135deg,#061832,#092a57 70%,#073a6f); }
.catalogue-heading { display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:end; }
.catalogue-heading h2 { margin:0; font-size:clamp(48px,5.3vw,76px); line-height:.98; letter-spacing:-.06em; }
.catalogue-heading > p { max-width:500px; justify-self:end; margin:0; color:#a9bfd8; font-size:17px; line-height:1.7; }
.catalogue-tools { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-top:60px; padding:20px 0; border-top:1px solid rgba(255,255,255,.14); border-bottom:1px solid rgba(255,255,255,.14); }
.filter-list { display:flex; gap:9px; flex-wrap:wrap; }
.filter-list button { min-height:41px; padding:0 17px; border:1px solid rgba(255,255,255,.17); border-radius:99px; color:#bbcee4; background:rgba(255,255,255,.03); cursor:pointer; font-size:12px; font-weight:800; transition:.2s ease; }
.filter-list button:hover,.filter-list button.active { color:var(--navy); border-color:var(--yellow); background:var(--yellow); }
.search-box { display:flex; align-items:center; width:260px; min-height:46px; padding:0 15px; border:1px solid rgba(255,255,255,.2); border-radius:9px; background:rgba(255,255,255,.05); color:#8ba7c7; }
.search-box input { width:100%; border:0; outline:0; margin-left:9px; color:white; background:transparent; font-size:13px; }
.search-box input::placeholder { color:#86a2c1; }
.results-count { margin:24px 0 18px; color:#819dbc; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.catalogue-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.system-card { min-width:0; overflow:hidden; border:1px solid rgba(255,255,255,.13); border-radius:18px; background:rgba(255,255,255,.04); transition:transform .23s ease,background .23s ease; }
.system-card:hover { transform:translateY(-5px); background:rgba(255,255,255,.08); }
.system-media { position:relative; aspect-ratio:1.48; overflow:hidden; background:#0a244a; }
.system-media::after { content:""; position:absolute; inset:0; background:linear-gradient(transparent 48%,rgba(2,12,27,.72)); }
.system-media img { width:100%; height:100%; object-fit:cover; object-position:top; transition:transform .45s ease; }
.system-card:hover .system-media img { transform:scale(1.045); }
.system-placeholder { display:grid; place-items:center; background:radial-gradient(circle at 72% 25%,rgba(255,212,0,.18),transparent 22%),linear-gradient(135deg,#0b3268,#06172f); }
.system-placeholder::before { content:""; position:absolute; width:150px; height:150px; border:1px solid rgba(255,255,255,.12); border-radius:50%; box-shadow:0 0 0 28px rgba(255,255,255,.025); }
.system-placeholder > strong { position:relative; z-index:1; font-size:40px; color:var(--yellow); letter-spacing:-.05em; }
.system-number { position:absolute; z-index:2; left:15px; bottom:13px; color:white; font-size:9px; letter-spacing:.14em; font-weight:900; }
.system-arrow { position:absolute; z-index:2; top:12px; right:12px; display:grid; place-items:center; width:32px; height:32px; color:var(--navy); background:rgba(255,255,255,.92); border-radius:50%; }
.system-info { padding:19px 20px 21px; }
.system-info > div { display:flex; gap:8px; margin-bottom:13px; }
.system-info > div span { padding:5px 8px; border-radius:4px; color:#aac1dc; background:rgba(255,255,255,.07); font-size:8px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.system-info h3 { min-height:50px; margin:0; color:white; font-size:19px; line-height:1.28; letter-spacing:-.025em; }
.system-info p { display:flex; justify-content:space-between; margin:17px 0 0; padding-top:14px; border-top:1px solid rgba(255,255,255,.1); color:#92aac5; font-size:11px; font-weight:800; }
.system-info p span { color:var(--yellow); }
.empty-state { padding:70px 20px; border:1px dashed rgba(255,255,255,.22); border-radius:18px; display:flex; flex-direction:column; align-items:center; text-align:center; color:#9eb4ce; }
.empty-state strong { color:white; font-size:22px; }.empty-state span { margin:8px 0 20px; }
.empty-state button { padding:11px 16px; border:0; border-radius:7px; background:var(--yellow); color:var(--navy); font-weight:800; cursor:pointer; }

.process-section { display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; padding:130px max(32px,calc((100vw - 1380px)/2)); background:#f5f8fc; }
.process-copy h2 { margin:0; font-size:clamp(46px,5vw,72px); line-height:.98; letter-spacing:-.055em; }
.process-copy > p:not(.eyebrow) { max-width:480px; margin:27px 0 0; color:#65788f; font-size:16px; line-height:1.72; }
.process-list { list-style:none; margin:0; padding:0; border-top:1px solid #cfdbe8; }
.process-list li { display:grid; grid-template-columns:66px 1fr; gap:18px; align-items:center; padding:26px 12px; border-bottom:1px solid #cfdbe8; }
.process-list > li > span { display:grid; place-items:center; width:43px; height:43px; border-radius:50%; color:var(--blue); background:#e2efff; font-size:10px; font-weight:900; }
.process-list h3 { margin:0 0 4px; font-size:20px; }.process-list p { margin:0; color:#687b91; font-size:14px; }

.about-strip { position:relative; overflow:hidden; min-height:510px; padding:105px max(32px,calc((100vw - 1380px)/2)); background:linear-gradient(125deg,#061a39,#0a3f7e); color:white; }
.about-strip::after { content:"TI"; position:absolute; right:5%; top:-17%; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.08); font-size:460px; font-weight:900; line-height:1; }
.about-strip h2 { position:relative; z-index:1; margin:0; font-size:clamp(48px,6vw,82px); letter-spacing:-.06em; line-height:.97; }
.about-strip > p:not(.eyebrow) { position:relative; z-index:1; max-width:590px; color:#b8cae0; font-size:17px; line-height:1.7; }
.button-light { position:relative; z-index:1; margin-top:18px; background:white; color:var(--navy); }

.site-footer { padding:70px max(32px,calc((100vw - 1380px)/2)) 35px; display:grid; grid-template-columns:1fr 1fr auto; gap:35px; align-items:center; color:#a9bdd4; background:#031227; }
.footer-brand { color:white; }.site-footer > p { max-width:430px; font-size:13px; line-height:1.6; }
.site-footer > div { display:flex; gap:24px; color:white; font-size:12px; font-weight:800; }
.site-footer > div a:hover { color:var(--yellow); }
.site-footer > small { grid-column:1/-1; margin-top:30px; padding-top:26px; border-top:1px solid rgba(255,255,255,.1); color:#6f88a5; font-size:10px; letter-spacing:.06em; }

/* Paleta azul-marinho e cinza-prateado */
.theme-silver {
  --navy:#101f38;
  --navy-2:#243a59;
  --blue:#687f9d;
  --cyan:#9cabbc;
  --yellow:#c7d0da;
  --lime:#9faaba;
  --ink:#142033;
  --paper:#edf1f5;
  --line:#cbd3dc;
}
.theme-silver .hero { background:radial-gradient(circle at 78% 38%,#415979 0,transparent 34%),linear-gradient(122deg,#0c182c 0%,#182c49 55%,#0b1728 100%); }
.theme-silver .hero-glow-one { background:rgba(153,174,198,.2); }
.theme-silver .hero-glow-two { background:rgba(206,216,227,.1); }
.theme-silver .core-badge { background:linear-gradient(145deg,#526b8b,#1c304e); }
.theme-silver .floating-card { background:rgba(25,45,70,.88); border-color:rgba(198,211,225,.24); }
.theme-silver .float-icon { background:#2a405e; }
.theme-silver .capabilities { background:#f8fafc; }
.theme-silver .solutions-section,.theme-silver .process-section { background:#edf1f5; }
.theme-silver .project-card { border-color:#cdd6df; background:#f9fbfc; }
.theme-silver .catalogue-section { background:linear-gradient(135deg,#0b172a,#1b304d 70%,#2b435f); }
.theme-silver .system-placeholder { background:radial-gradient(circle at 72% 25%,rgba(211,220,230,.18),transparent 22%),linear-gradient(135deg,#29415f,#101d31); }
.theme-silver .about-strip { background:linear-gradient(125deg,#0d1b30,#334b69); }
.theme-silver .site-footer { background:#091321; }
.theme-silver .theme-menu { background:rgba(14,29,49,.97); }

/* Paleta verde-musgo e bege */
.theme-moss {
  --navy:#2f3c2b;
  --navy-2:#4d5d46;
  --blue:#66775c;
  --cyan:#8a9a7e;
  --yellow:#e4dac4;
  --lime:#96a56f;
  --ink:#2c3529;
  --paper:#eee7da;
  --line:#d7cebd;
}
.theme-moss .hero { background:radial-gradient(circle at 78% 38%,#617258 0,transparent 34%),linear-gradient(122deg,#263123 0%,#42513b 55%,#222c20 100%); }
.theme-moss .hero-glow-one { background:rgba(157,174,139,.17); }
.theme-moss .hero-glow-two { background:rgba(232,222,200,.13); }
.theme-moss .core-badge { background:linear-gradient(145deg,#6f8165,#34412f); }
.theme-moss .floating-card { background:rgba(48,63,43,.88); border-color:rgba(224,214,192,.24); }
.theme-moss .float-icon { background:#53634b; }
.theme-moss .capabilities { background:#faf6ee; }
.theme-moss .solutions-section,.theme-moss .process-section { background:#eee7da; }
.theme-moss .project-card { border-color:#d9cfbd; background:#fffaf1; }
.theme-moss .catalogue-section { background:linear-gradient(135deg,#263123,#42513b 70%,#5a684f); }
.theme-moss .system-placeholder { background:radial-gradient(circle at 72% 25%,rgba(232,222,201,.17),transparent 22%),linear-gradient(135deg,#52614a,#283326); }
.theme-moss .about-strip { background:linear-gradient(125deg,#283425,#596850); }
.theme-moss .site-footer { background:#20291f; }
.theme-moss .theme-menu { background:rgba(39,51,35,.97); }

@media (max-width: 1000px) {
  .site-header { width:calc(100% - 40px); }
  .nav { gap:22px; }
  .hero { min-height:1080px; grid-template-columns:1fr; padding-top:170px; align-items:start; }
  .hero-copy { max-width:820px; }
  .hero-visual { width:470px; justify-self:center; margin-top:35px; }
  .hero-stats { width:calc(100% - 40px); }
  .section-heading { grid-template-columns:1fr; gap:25px; }
  .section-heading > p { margin-left:0; }
  .project-card { grid-column:span 6; }
  .capabilities,.process-section { grid-template-columns:1fr; gap:55px; }
  .catalogue-grid { grid-template-columns:repeat(3,1fr); }
  .site-footer { grid-template-columns:1fr 1fr; }
  .site-footer > div { justify-self:end; }.site-footer > small { grid-column:1/-1; }
}

@media (max-width: 900px) {
  .nav { display:none; position:absolute; top:72px; left:0; right:0; padding:22px; border-radius:18px; flex-direction:column; align-items:stretch; gap:20px; background:#0a2b59; box-shadow:0 20px 50px rgba(0,0,0,.3); }
  .nav.open { display:flex; }
  .theme-silver .nav { background:#182d49; }
  .theme-moss .nav { background:#3c4b37; }
  .menu-toggle { display:block; }
  .header-actions { gap:4px; }
  .theme-trigger { min-height:39px; padding:0 9px; }
  .theme-trigger-label { display:none; }
  .theme-menu { right:-48px; width:238px; }
}

@media (max-width: 720px) {
  .site-header { height:82px; }
  .hero { min-height:1030px; padding:145px 22px 130px; }
  .hero h1 { font-size:52px; }
  .hero-lead { font-size:16px; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-visual { width:360px; max-width:100%; margin-top:45px; }
  .floating-card { transform:scale(.82); }
  .float-a { left:-5%; }.float-b { right:-10%; }.float-c { left:-2%; }
  .hero-stats { width:calc(100% - 44px); grid-template-columns:repeat(3,1fr); }
  .hero-stats div { padding:0 10px; gap:7px; flex-direction:column; justify-content:center; align-items:flex-start; }
  .hero-stats strong { font-size:24px; }.hero-stats span { font-size:8px; }
  .solutions-section { padding:84px 22px; }
  .section-heading h2 { font-size:46px; }
  .project-card { grid-column:span 12; }
  .capabilities { padding:84px 22px; }
  .capability-list { grid-template-columns:1fr; }
  .capability-list article { min-height:230px; }
  .catalogue-section { padding:86px 22px; }
  .catalogue-heading { grid-template-columns:1fr; gap:24px; }
  .catalogue-heading > p { justify-self:start; }
  .catalogue-tools { align-items:stretch; flex-direction:column; }
  .filter-list { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; scrollbar-width:none; }
  .filter-list::-webkit-scrollbar { display:none; }
  .filter-list button { white-space:nowrap; }
  .search-box { width:100%; }
  .catalogue-grid { grid-template-columns:1fr; }
  .process-section { padding:84px 22px; }
  .process-list li { grid-template-columns:55px 1fr; }
  .about-strip { padding:85px 22px; }
  .about-strip::after { font-size:280px; }
  .brand small { display:none; }
  .brand-logo { width:42px; height:42px; flex-basis:42px; }
  .site-footer { padding:60px 22px 30px; grid-template-columns:1fr; }
  .site-footer > div { justify-self:start; }.site-footer > small { grid-column:1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

[hidden]{display:none!important;}
