@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("fonts/manrope-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Manrope";
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url("fonts/manrope-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --navy: #061f3c;
  --navy-2: #0a3158;
  --teal: #10cfc7;
  --teal-dark: #00aaa5;
  --ink: #09254a;
  --muted: #60769a;
  --line: #dce7f1;
  --pale: #effbfb;
  --white: #fff;
  --shadow: 0 18px 52px rgba(6, 31, 60, .1);
  --radius: 14px;
}

* { box-sizing: border-box; }
html { overflow-x: hidden; scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: #fff; font-family: "Manrope", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
:focus-visible { outline:3px solid rgba(16,207,199,.5); outline-offset:4px; }
.section-shell { width: min(1640px, calc(100% - 96px)); margin-inline: auto; }

.site-header { height: 94px; display: grid; grid-template-columns: 220px 1fr auto auto auto; gap: 24px; align-items: center; padding: 0 max(32px, calc((100vw - 1640px)/2)); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 20; background: rgba(255,255,255,.94); backdrop-filter: blur(16px); }
.brand img { width: 190px; height: 64px; object-fit: contain; }
.nav { justify-self: center; display: flex; gap: clamp(20px, 3vw, 48px); font-weight: 650; }
.nav a, .header-link { transition: color .2s ease; }
.nav a:hover, .header-link:hover { color: var(--teal-dark); }
.menu-toggle { display: none; }
.language-switch { display:flex; align-items:center; gap:7px; color:#7790ae; font-size:.84rem; font-weight:800; }
.language-switch a { padding:7px 8px; border-radius:8px; }
.language-switch a:hover, .language-switch a.active { color:var(--ink); background:var(--pale); }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 16px; min-height: 58px; padding: 0 28px; border: 0; border-radius: 8px; background: #10cfc7; color: #041d38; box-shadow: 0 10px 24px rgba(16,207,199,.2); font: inherit; font-weight: 800; cursor: pointer; }
.button:hover { transform: translateY(-2px); box-shadow: 0 16px 36px rgba(16,207,199,.28); }
.button-small { min-height: 50px; padding-inline: 22px; }
.button-outline { background: #fff; color: var(--ink); border: 1px solid #9db0c9; box-shadow: none; }

.hero { min-height: 760px; display: grid; grid-template-columns: .92fr 1.08fr; gap: 72px; align-items: center; padding-block: 88px 76px; position: relative; }
.hero > * { min-width: 0; }
.hero::after { content: ""; position: absolute; width: 410px; height: 410px; border: 40px solid rgba(16,207,199,.08); border-radius: 50%; right: -250px; bottom: -230px; pointer-events: none; }
.eyebrow { margin: 0 0 22px; color: #47709e; font-size: .82rem; font-weight: 800; letter-spacing: .24em; text-transform: uppercase; }
.eyebrow::after { content: ""; display: inline-block; width: 48px; height: 3px; margin-left: 18px; vertical-align: middle; background: var(--teal); }
h1, h2, h3 { margin-top: 0; color: var(--ink); line-height: 1.08; }
h1 { margin-bottom: 28px; max-width: 760px; font-size: clamp(3.2rem, 5vw, 5.8rem); letter-spacing: -.055em; }
h1 span { color: var(--teal); }
h2 { margin-bottom: 22px; font-size: clamp(2.35rem, 3.8vw, 4rem); letter-spacing: -.045em; }
h3 { margin-bottom: 12px; font-size: 1.35rem; }
.lead { max-width: 700px; margin: 0 0 32px; color: var(--muted); font-size: 1.25rem; }
.actions { display: flex; gap: 18px; flex-wrap: wrap; }
.assurance { margin: 24px 0 0; color: #36577e; }
.assurance span { display: inline-grid; place-items: center; width: 28px; height: 28px; margin-right: 10px; border: 2px solid var(--teal); border-radius: 50%; color: var(--teal-dark); font-weight: 900; }

.flow-card { position: relative; padding: 74px 28px 34px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, #fff, #f6fbff); box-shadow: var(--shadow); overflow: hidden; }
.flow-line { position: absolute; top: 37px; left: 8%; width: 84%; height: 78px; border-top: 5px solid var(--teal); border-radius: 50%; }
.flow-line::before, .flow-line::after { content:""; position: absolute; top: -11px; width: 18px; height: 18px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 24px rgba(16,207,199,.65); }
.flow-line::before { left: 0; } .flow-line::after { right: 0; }
.flow { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5,1fr); gap: 14px; margin: 0; padding: 0; list-style: none; }
.flow li { min-height: 238px; padding: 22px 14px; display: flex; flex-direction: column; align-items: center; text-align: center; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.92); }
.flow li:not(:last-child)::after { content:"→"; position: absolute; transform: translate(calc(50% + 54px), 54px); color: var(--teal); font-size: 1.7rem; }
.flow-icon { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 18px; border-radius: 16px; background: var(--pale); color: var(--ink); font-size: 2rem; font-weight: 800; }
.flow-icon.mark img { width: 48px; height: 48px; object-fit: contain; }
.flow strong { line-height: 1.2; }
.flow small { margin-top: 12px; color: var(--muted); line-height: 1.35; }
.flow-caption { margin: 30px 0 0; color: #557399; text-align: center; font-size: .75rem; font-weight: 800; letter-spacing: .24em; text-transform: uppercase; }

.product-map { position:relative; min-height:560px; padding:30px; border:1px solid rgba(16,207,199,.35); border-radius:30px; background:radial-gradient(circle at 50% 47%,#0d4b6d 0,#082d50 27%,#051e3a 66%,#03182f 100%); box-shadow:0 28px 70px rgba(6,31,60,.24); overflow:hidden; }
.product-map::before { content:""; position:absolute; inset:13% 16%; border:1px solid rgba(16,207,199,.24); border-radius:50%; box-shadow:0 0 80px rgba(16,207,199,.08) inset; }
.product-map::after { content:""; position:absolute; width:420px; height:420px; right:-250px; bottom:-260px; border:52px solid rgba(16,207,199,.08); border-radius:50%; }
.map-kicker { position:relative; z-index:2; margin:0 0 22px; color:#9cc4dc; text-align:center; font-size:.72rem; font-weight:800; letter-spacing:.22em; text-transform:uppercase; }
.map-grid { position:relative; z-index:2; min-height:430px; display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:1fr 1.1fr 1fr; gap:13px; }
.map-grid > a { min-height:112px; padding:17px; display:flex; flex-direction:column; justify-content:center; border:1px solid rgba(92,216,221,.27); border-radius:16px; background:rgba(5,31,57,.78); color:#fff; backdrop-filter:blur(10px); transition:transform .22s ease,border-color .22s ease,background .22s ease; }
.map-grid > a:hover { transform:translateY(-4px); border-color:var(--teal); background:rgba(8,55,83,.94); }
.map-grid > a span { color:var(--teal); font-size:.68rem; font-weight:900; letter-spacing:.12em; }
.map-grid > a strong { margin-top:5px; font-size:1.03rem; }
.map-grid > a small { margin-top:4px; color:#9fbdd1; line-height:1.3; }
.map-grid > a:nth-of-type(1) { grid-column:1;grid-row:1; }.map-grid > a:nth-of-type(2) { grid-column:2;grid-row:1; }.map-grid > a:nth-of-type(3) { grid-column:3;grid-row:1; }
.map-grid > a:nth-of-type(4) { grid-column:3;grid-row:3; }.map-grid > a:nth-of-type(5) { grid-column:2;grid-row:3; }.map-grid > a:nth-of-type(6) { grid-column:1;grid-row:3; }
.map-hub { grid-column:2; grid-row:2; place-self:center; width:132px; height:132px; display:grid; place-items:center; align-content:center; border:1px solid rgba(16,207,199,.7); border-radius:28px; background:linear-gradient(145deg,#0b3b63,#061f3c); box-shadow:0 0 0 14px rgba(16,207,199,.05),0 0 54px rgba(16,207,199,.3); color:#fff; }
.map-hub img { width:72px; height:72px; object-fit:contain; }
.map-hub b { margin-top:-5px; color:#bce8ed; font-size:.7rem; }
.product-map .flow-caption { position:relative; z-index:2; margin-top:17px; color:#82afc8; }

.trust-strip { display:grid; grid-template-columns:repeat(3,1fr); margin-bottom:24px; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:0 12px 34px rgba(6,31,60,.06); overflow:hidden; }
.trust-strip div { padding:24px 30px; display:flex; flex-direction:column; gap:4px; }
.trust-strip div + div { border-left:1px solid var(--line); }
.trust-strip strong { color:var(--ink); }
.trust-strip span { color:var(--muted); font-size:.92rem; }

.systems, .solutions, .examples, .about, .contact { padding-block: 96px; }
.systems { display: grid; grid-template-columns: .65fr 1.35fr; gap: 70px; align-items: end; border-top: 1px solid var(--line); }
.systems h2 { font-size: clamp(2.3rem,3.4vw,3.6rem); }
.section-intro { max-width:560px; color:var(--muted); font-size:1.05rem; }
.system-grid { display: grid; grid-template-columns: repeat(4,1fr); column-gap: 30px; border-top: 1px solid #cbd9e6; }
.system { min-height: 126px; padding: 26px 0; display: flex; flex-direction: column; justify-content: center; border: 0; border-bottom: 1px solid #cbd9e6; border-radius: 0; background: transparent; box-shadow: none; }
.system b { font-size: 1rem; line-height: 1.2; }
.system span { margin-top: 8px; color: var(--muted); font-size: .9rem; }

.solutions { border-top: 1px solid var(--line); }
.section-heading { display: grid; grid-template-columns: 1.5fr .5fr; gap: 80px; align-items: end; margin-bottom: 46px; }
.section-heading > p { color: var(--muted); font-size: 1.1rem; }
.solution-grid { display: grid; grid-template-columns: repeat(2,1fr); column-gap: 54px; border-top: 1px solid #cbd9e6; }
.solution-grid article, .service-card { min-height: 250px; padding: 38px 4px 40px; border: 0; border-bottom: 1px solid #cbd9e6; border-radius: 0; transition: padding .22s ease, border-color .22s ease, background .22s ease; }
.solution-grid article:hover, .service-card:hover { padding-left: 12px; padding-right: 12px; border-color: var(--teal-dark); background: linear-gradient(90deg, rgba(16,207,199,.055), transparent 78%); }
.solution-grid p, .example-row p { color: var(--muted); }
.tile-icon { --icon:none; display:grid; place-items:center; width:54px; height:54px; margin-bottom:26px; border:1px solid #cbdde8; border-radius:12px; background:#f7fbfc; color:var(--teal-dark); }
.tile-icon img { width:27px; height:27px; object-fit:contain; }
.service-card { position:relative; display:flex; flex-direction:column; background:transparent; }
.service-card::after { display:none; }
.service-index { position:absolute; top:42px; right:4px; color:#8ca2b8; font-size:.75rem; font-weight:800; letter-spacing:.16em; }
.service-card h3 { max-width:75%; margin-bottom:14px; font-size:1.55rem; letter-spacing:-.025em; }
.service-card p { max-width:520px; margin:0; color:var(--muted); }
.service-card b { margin-top:26px; color:var(--ink); font-size:.88rem; }
.service-card b::after { content:""; display:inline-block; width:28px; height:1px; margin-left:10px; vertical-align:middle; background:var(--teal-dark); transition:width .22s ease; }
.service-card:hover b::after { width:42px; }
.service-featured, .service-dark { background:transparent; }
.service-dark h3,.service-dark b { color:var(--ink); }.service-dark p { color:var(--muted); }.service-dark .service-index { color:#8ca2b8; }.service-dark .tile-icon { border-color:#cbdde8; background:#f7fbfc; color:var(--teal-dark); }

.examples { background: linear-gradient(180deg,#fff,#f7fbfe); }
.example-row { display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; }
.example-row article { min-height: 300px; padding: 28px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.example-row article > span { color: var(--teal-dark); font-size: 1.6rem; font-weight: 900; }
.example-row h3 { margin-top: 54px; }
.project-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.project-card { position:relative; min-height:430px; padding:34px; display:flex; flex-direction:column; justify-content:flex-end; border:1px solid rgba(16,207,199,.24); border-radius:24px; color:#fff; overflow:hidden; transition:transform .25s ease,box-shadow .25s ease; }
.project-card::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(5,26,49,.06),rgba(4,22,43,.96)); }
.project-card::after { display:none; }
.project-card > * { position:relative; z-index:1; }
.project-card:hover { transform:translateY(-7px); box-shadow:0 28px 58px rgba(6,31,60,.2); }
.project-one { background:linear-gradient(135deg,#0d4e6e,#071e3a); }.project-two { background:linear-gradient(135deg,#103b68,#061a34); }.project-three { background:linear-gradient(135deg,#0b5964,#061e38); }
.project-number { position:absolute; top:-4px; left:28px; color:rgba(255,255,255,.12); font-size:7rem; font-weight:900; letter-spacing:-.08em; }
.project-tags { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:20px; }
.project-tags span { padding:6px 9px; border:1px solid rgba(255,255,255,.2); border-radius:999px; color:#c9e0ec; font-size:.72rem; font-weight:700; }
.project-card h3 { color:#fff; font-size:1.7rem; }.project-card p { min-height:75px; color:#b7cedd; }.project-card b { margin-top:18px; color:var(--teal); font-size:.9rem; }
.section-action { margin-top:34px; display:flex; justify-content:center; }

.process-wrap { background: radial-gradient(circle at 52% 60%, #0b4268 0, var(--navy) 48%, #04182d 100%); color: #d7e9f8; position: relative; overflow: hidden; }
.process-wrap::after { content:""; position:absolute; inset:auto -10% -150px; height:320px; border-top:1px solid rgba(16,207,199,.6); border-radius:50%; transform:rotate(-5deg); }
.process { padding-block: 92px; position:relative; z-index:1; }
.light h2, .light p, .light .eyebrow { color: #fff; }
.steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 26px; margin: 0; padding: 0; list-style: none; }
.steps li { display: flex; gap: 18px; }
.steps li > span { flex: 0 0 auto; display:grid; place-items:center; width:52px; height:52px; border-radius:50%; background:var(--teal); color:var(--navy); font-weight:900; }
.steps h3 { color:#fff; }
.steps p { margin:0; color:#aecaDF; }

.brand-visual { min-height:620px; display:grid; align-items:center; position:relative; overflow:hidden; color:#d7e9f8; background:#041a32 url("systems-flow-hero.webp") center/cover no-repeat; }
.brand-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,24,45,.97) 0%,rgba(4,24,45,.84) 34%,rgba(4,24,45,.18) 70%,rgba(4,24,45,.06)); }
.brand-visual-copy { position:relative; z-index:1; padding-block:100px; }
.brand-visual-copy h2 { max-width:720px; color:#fff; }
.brand-visual-copy > p:not(.eyebrow) { max-width:650px; color:#b8cde0; font-size:1.18rem; }
.brand-visual .eyebrow { color:#91b9d7; }
.visual-points { display:flex; flex-wrap:wrap; gap:12px; margin:32px 0 0; padding:0; list-style:none; }
.visual-points li { padding:11px 16px; border:1px solid rgba(16,207,199,.42); border-radius:999px; background:rgba(3,25,46,.62); color:#e8f9ff; font-weight:700; backdrop-filter:blur(8px); }

.about { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:start; }
.about-copy { color: var(--muted); font-size:1.22rem; }
.value-row { display:flex; gap:12px; flex-wrap:wrap; margin-top:30px; }
.value-row span { padding:10px 16px; border:1px solid var(--line); border-radius:999px; color:var(--ink); font-size:.95rem; font-weight:700; }

.contact { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; margin-bottom:70px; padding-inline:54px; border-radius:28px; background:#f4fafc; }
.contact > div > p:last-child { color:var(--muted); font-size:1.12rem; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:16px; padding:30px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow); }
.contact-form label { color:#436184; font-size:.86rem; font-weight:700; }
.contact-form input, .contact-form textarea { width:100%; margin-top:7px; padding:15px 16px; border:1px solid #cfdce9; border-radius:10px; color:var(--ink); background:#fff; font:inherit; }
.contact-form input:focus, .contact-form textarea:focus { outline:3px solid rgba(16,207,199,.18); border-color:var(--teal-dark); }
.contact-form .consent { display:flex; align-items:flex-start; gap:11px; font-size:.78rem; line-height:1.5; font-weight:500; }
.contact-form .consent input { width:18px; height:18px; flex:0 0 auto; margin:1px 0 0; accent-color:var(--teal-dark); }
.contact-form .consent a { color:var(--navy); text-decoration:underline; text-underline-offset:2px; }
.full { grid-column:1/-1; }
.form-trap { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.form-status { min-height:1.5em; margin:0; font-weight:700; }
.form-status.success { color:#087e72; }
.form-status.error { color:#a63232; }
.contact-form button:disabled { opacity:.68; cursor:wait; transform:none; }

.faq { padding-block:30px 110px; }
.faq-list { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.faq details { border:1px solid var(--line); border-radius:16px; background:#fff; box-shadow:0 10px 28px rgba(6,31,60,.04); }
.faq summary { padding:24px 56px 24px 24px; position:relative; color:var(--ink); font-size:1.08rem; font-weight:800; cursor:pointer; list-style:none; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; position:absolute; right:22px; top:18px; color:var(--teal-dark); font-size:1.6rem; }
.faq details[open] summary::after { content:"−"; }
.faq details p { margin:0; padding:0 24px 24px; color:var(--muted); }

.footer { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:60px; padding-block:60px 26px; border-top:1px solid var(--line); }
.footer img { width:220px; height:76px; object-fit:contain; }
.footer p { color:var(--muted); }
.footer div { display:flex; flex-direction:column; gap:9px; }
.footer b { margin-bottom:8px; }
.footer a { color:#4b678b; }
.legal-hero { padding-bottom:36px; }
.legal-copy { max-width:980px; padding-bottom:96px; }
.legal-copy article { padding:28px 0; border-top:1px solid var(--line); }
.legal-copy h2 { margin:0 0 10px; font-size:clamp(1.25rem,2vw,1.65rem); }
.legal-copy p { margin:0; color:var(--muted); line-height:1.75; }
.legal-updated { margin-top:28px; color:var(--muted); font-size:.9rem; }
.copyright { grid-column:1/-1; padding-top:24px; border-top:1px solid var(--line); font-size:.9rem; }

.subhero { max-width:1180px; padding-block:110px 80px; text-align:center; }
.subhero h1 { max-width:1100px; margin-inline:auto; }
.subhero .lead { max-width:850px; margin-inline:auto; }
.subhero .actions { justify-content:center; }
.detail-grid, .portfolio-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding-bottom:100px; }
.detail-grid article, .portfolio-grid article { min-height:330px; padding:38px; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:0 12px 34px rgba(6,31,60,.05); }
.detail-grid article > span, .portfolio-grid article > span { color:var(--teal-dark); font-size:1.4rem; font-weight:900; }
.detail-grid h2, .portfolio-grid h2 { margin-top:42px; font-size:clamp(1.65rem,2.3vw,2.45rem); }
.detail-grid p, .portfolio-grid p { color:var(--muted); font-size:1.03rem; }
.portfolio-grid article { min-height:380px; display:flex; flex-direction:column; }
.portfolio-grid article a { margin-top:auto; color:var(--teal-dark); font-weight:800; }
.capabilities { padding-block:90px; background:radial-gradient(circle at 55% 30%,#0b4268,var(--navy) 54%,#04182d); color:#d7e9f8; }
.capability-list { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:0; padding:0; list-style:none; }
.capability-list li { padding:22px; border:1px solid rgba(16,207,199,.32); border-radius:14px; background:rgba(255,255,255,.04); color:#eefaff; font-weight:700; }
.capability-list span { display:inline-grid; place-items:center; width:28px; height:28px; margin-right:12px; border-radius:50%; background:var(--teal); color:var(--navy); }
.page-cta { margin-block:90px; padding:58px; display:flex; align-items:center; justify-content:space-between; gap:50px; border:1px solid var(--line); border-radius:28px; background:linear-gradient(135deg,#f5fbfd,#effbfb); }
.page-cta h2 { max-width:850px; margin-bottom:0; font-size:clamp(2rem,3vw,3.4rem); }

@media (max-width: 1120px) {
  .site-header { grid-template-columns:190px 1fr auto auto; }
  .nav { gap:20px; }
  .header-link { display:none; }
  .hero { grid-template-columns:1fr; }
  .flow-card { max-width:900px; }
  .systems { grid-template-columns:1fr; }
  .system-grid { grid-template-columns:repeat(4,1fr); }
  .example-row { grid-template-columns:repeat(2,1fr); }
  .project-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 760px) {
  .section-shell { width:min(100% - 36px, 1640px); }
  .site-header { height:76px; grid-template-columns:1fr auto auto; padding-inline:18px; gap:8px; }
  .brand img { width:145px; height:54px; }
  .menu-toggle { display:block; justify-self:end; border:1px solid var(--line); background:#fff; border-radius:8px; padding:9px 12px; color:var(--ink); font-weight:800; }
  .nav { display:none; position:absolute; top:76px; left:0; right:0; padding:22px; flex-direction:column; background:#fff; border-bottom:1px solid var(--line); box-shadow:var(--shadow); }
  .nav.open { display:flex; }
  .button-small { display:none; }
  .language-switch { font-size:.76rem; }
  .language-switch a { padding:5px; }
  .hero { min-height:auto; padding-block:64px; gap:46px; }
  h1 { max-width:100%; font-size:clamp(2.4rem,11.5vw,3.2rem); letter-spacing:-.045em; overflow-wrap:break-word; }
  .lead { font-size:1.08rem; }
  .hero-copy, .lead, .assurance { max-width:100%; min-width:0; }
  .actions { flex-direction:column; }
  .flow-card { overflow-x:auto; padding-inline:18px; }
  .flow { min-width:780px; }
  .product-map { min-height:auto; padding:22px; }
  .product-map::before { display:none; }
  .map-grid { min-height:auto; grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  .map-grid > a { min-width:0; }
  .map-grid > a:nth-of-type(n), .map-hub { grid-column:auto; grid-row:auto; }
  .map-hub { grid-column:1/-1; grid-row:1; margin-bottom:8px; }
  .system-grid, .steps { grid-template-columns:1fr 1fr; }
  .solution-grid { grid-template-columns:1fr; column-gap:0; }
  .section-heading, .about, .contact, .faq-list { grid-template-columns:1fr; gap:24px; }
  .trust-strip { grid-template-columns:1fr; }
  .trust-strip div + div { border-left:0; border-top:1px solid var(--line); }
  .contact { padding-inline:22px; }
  .footer { grid-template-columns:1fr 1fr; }
  .detail-grid, .portfolio-grid { grid-template-columns:1fr; }
  .capability-list { grid-template-columns:1fr 1fr; }
  .project-grid { grid-template-columns:1fr; }
}

@media (max-width: 520px) {
  .system-grid, .solution-grid, .example-row, .steps, .contact-form, .footer { grid-template-columns:1fr; }
  .map-grid { grid-template-columns:1fr; }
  .map-hub { grid-column:1; }
  .systems, .solutions, .examples, .about, .contact { padding-block:64px; }
  .section-heading { margin-bottom:28px; }
  .example-row article { min-height:auto; }
  .example-row h3 { margin-top:30px; }
  .footer { gap:34px; }
  .brand-visual { min-height:560px; background-position:64% center; }
  .brand-visual::after { background:linear-gradient(90deg,rgba(4,24,45,.97),rgba(4,24,45,.72)); }
  .subhero { padding-block:64px 48px; }
  .capability-list { grid-template-columns:1fr; }
  .page-cta { padding:34px 24px; flex-direction:column; align-items:flex-start; }
}

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