:root {
  --header-height: 76px;
  --content: min(1200px, calc(100vw - 64px));
}

body { overflow-x: hidden; }
.site-container { width: var(--content); margin-inline: auto; }
.site-section { padding: clamp(78px, 9vw, 132px) 0; }
.site-eyebrow { margin: 0 0 18px; color: var(--accent); font-size: 11px; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
h1,h2,h3,p { text-wrap: pretty; }
h1,h2,h3 { color: var(--text); }
.site-lead { max-width: 580px; margin: 22px 0 0; color: var(--text-muted); font-size: clamp(17px, 1.7vw, 20px); line-height: 1.55; }

/* Header */
.site-header { position: sticky; z-index: 1000; top: 0; min-height: var(--header-height); display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 28px; padding: 0 max(28px, calc((100vw - 1440px)/2)); color: var(--header-text); background: color-mix(in srgb, var(--header) 96%, transparent); border-bottom: 1px solid rgba(255,255,255,.09); backdrop-filter: blur(18px); }
.site-brand { display: flex; align-items: center; gap: 14px; color: #fff; text-decoration: none; }
.site-brand img { display: block; width: 112px; height: auto; }
.site-brand span { padding-left: 14px; border-left: 1px solid rgba(255,255,255,.22); color: #d1dbeb; font-size: 13px; font-weight: 800; }
.site-nav { justify-self: center; display: flex; align-items: center; gap: 30px; }
.site-nav > a { position: relative; padding: 28px 0 25px; color: #d9e2ef; text-decoration: none; font-size: 13px; font-weight: 750; white-space: nowrap; }
.site-nav > a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 19px; height: 2px; background: var(--accent); transition: right .2s ease; }
.site-nav > a:hover,.site-nav > a.is-active { color: #fff; }
.site-nav > a:hover::after,.site-nav > a.is-active::after { right: 0; }
.site-actions { display: flex; align-items: center; gap: 12px; }
.site-login { color: #e0e7f2; text-decoration: none; font-size: 13px; font-weight: 800; }
.theme-toggle { width: 40px; height: 40px; display: grid; place-items: center; padding: 0; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }
.theme-toggle:hover { border-color: rgba(255,255,255,.5); }
.theme-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.site-menu-button { display: none; width: 42px; height: 42px; padding: 0; color: #fff; background: transparent; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }
.site-menu-button span { display: block; width: 17px; height: 1.5px; margin: 5px auto; background: currentColor; transition: transform .2s ease; }
.site-menu-button[aria-expanded="true"] span:first-child { transform: translateY(3.25px) rotate(45deg); }
.site-menu-button[aria-expanded="true"] span:last-child { transform: translateY(-3.25px) rotate(-45deg); }
.site-nav-mobile-actions { display: none; }

/* Buttons */
.site-button-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.site-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 19px; border: 1px solid transparent; border-radius: 999px; text-decoration: none; font-size: 13px; font-weight: 850; white-space: nowrap; }
.site-button--primary { color: var(--accent-text); background: var(--accent); }
.site-button--primary:hover { filter: brightness(1.04); }
.site-button--secondary { color: inherit; border-color: var(--border); background: transparent; }
.home-hero .site-button--secondary,.software-intro .site-button--secondary { color: #fff; border-color: rgba(255,255,255,.28); }
.text-link { display: inline-flex; gap: 10px; align-items: center; color: var(--text); text-decoration: none; font-size: 13px; font-weight: 850; }
.text-link span { color: var(--accent); }
.text-link--light { color: #fff; }

/* Hero */
.home-hero { position: relative; min-height: clamp(680px, calc(100vh - var(--header-height)), 900px); display: grid; align-items: center; overflow: hidden; color: #fff; background: var(--jabo-navy-950); }
.home-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,20,45,.98) 0%, rgba(6,20,45,.83) 38%, rgba(6,20,45,.18) 73%, rgba(6,20,45,.05) 100%); }
.home-hero-art { position: absolute; inset: 0; background: url('assets/hero-blueprint.png') right center / min(92vw, 1400px) auto no-repeat; opacity: .78; }
:root[data-theme="light"] .home-hero { color: var(--jabo-ink); background: #f4f6f9; }
:root[data-theme="light"] .home-hero::after { background: linear-gradient(90deg, rgba(244,246,249,.99) 0%, rgba(244,246,249,.9) 38%, rgba(244,246,249,.25) 75%, rgba(244,246,249,.08) 100%); }
:root[data-theme="light"] .home-hero-art { background-image: url('assets/hero-light.png'); opacity: .72; }
.home-hero-content { position: relative; z-index: 2; padding-block: 90px; }
.home-hero h1 { max-width: 710px; margin: 0; color: inherit; font-size: clamp(56px, 7.2vw, 104px); line-height: .94; letter-spacing: -.062em; }
.home-hero .site-lead { color: color-mix(in srgb, currentColor 76%, transparent); }

/* Home sections */
.section-head { max-width: 760px; margin-bottom: 48px; }
.section-head h2,.split-head h2,.about-grid h2,.final-cta h2 { margin: 0; font-size: clamp(38px, 5vw, 72px); line-height: .98; letter-spacing: -.052em; }
.section-services { background: var(--page); }
.service-list { border-top: 1px solid var(--border); }
.service-row { display: grid; grid-template-columns: 54px minmax(0,1fr) auto; gap: 24px; align-items: center; min-height: 142px; padding: 26px 0; color: var(--text); text-decoration: none; border-bottom: 1px solid var(--border); }
.service-row > span { color: var(--accent); font-size: 11px; font-weight: 900; }
.service-row h3 { margin: 0 0 8px; font-size: clamp(26px, 3vw, 42px); line-height: 1; letter-spacing: -.04em; }
.service-row p { margin: 0; color: var(--text-muted); font-size: 16px; line-height: 1.5; }
.service-row b { font-size: 24px; font-weight: 400; transition: transform .2s ease; }
.service-row:hover b { transform: translateX(7px); color: var(--accent); }
.section-process { color: #fff; background: var(--jabo-navy-950); }
.split-head { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.section-process h2,.section-software h2 { color: #fff; }
.process-line { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 58px; border-top: 1px solid rgba(255,255,255,.18); }
.process-line div { min-height: 130px; padding: 24px 24px 0 0; border-right: 1px solid rgba(255,255,255,.14); }
.process-line div:last-child { border-right: 0; }
.process-line span { display: block; margin-bottom: 22px; color: var(--accent); font-size: 11px; font-weight: 900; }
.process-line strong { font-size: clamp(17px, 2vw, 24px); }
.section-about { background: var(--page-soft); }
.about-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.72fr); gap: clamp(50px, 9vw, 130px); align-items: end; }
.about-grid p:not(.site-eyebrow) { max-width: 540px; margin: 0 0 25px; color: var(--text-muted); font-size: 19px; line-height: 1.65; }
.section-software { color: #fff; background: #0b1f40; }
.product-lines { margin-top: 58px; border-top: 1px solid rgba(255,255,255,.18); }
.product-line { display: grid; grid-template-columns: 110px minmax(0,1fr) auto; gap: 26px; align-items: center; min-height: 150px; color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.16); }
.product-line > span { color: var(--accent); font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: .1em; }
.product-line h3 { margin: 0 0 8px; color: #fff; font-size: clamp(28px, 3vw, 44px); letter-spacing: -.045em; }
.product-line p { margin: 0; color: #aebbd0; }
.product-line b { font-size: 25px; font-weight: 400; }
.final-cta { text-align: center; background: var(--surface); }
.final-cta-inner { max-width: 850px; }
.final-cta p:not(.site-eyebrow) { margin: 18px 0 28px; color: var(--text-muted); font-size: 18px; }

/* Page intros and compact content */
.page-intro,.software-intro { padding: clamp(115px, 14vw, 190px) 0 clamp(74px, 8vw, 110px); background: var(--page-soft); }
.software-intro { color: #fff; background: var(--jabo-navy-950); }
.compact-intro { max-width: 930px; }
.compact-intro h1 { margin: 0; font-size: clamp(50px, 7vw, 94px); line-height: .95; letter-spacing: -.058em; }
.compact-intro > p:not(.site-eyebrow) { max-width: 630px; margin: 24px 0 0; color: var(--text-muted); font-size: 19px; line-height: 1.6; }
.compact-intro--dark h1 { color: #fff; }
.compact-intro--dark > p:not(.site-eyebrow) { color: #b4c0d2; }
.detail-list-section,.workflow-clean-section,.projects-clean-section,.about-clean-section,.product-clean-section { background: var(--page); }
.detail-list-clean,.workflow-clean,.project-type-list,.product-clean-list { border-top: 1px solid var(--border); }
.detail-row-clean { display: grid; grid-template-columns: 54px minmax(260px,.85fr) minmax(260px,1fr); gap: clamp(28px, 5vw, 72px); padding: 52px 0; border-bottom: 1px solid var(--border); scroll-margin-top: 110px; }
.detail-row-clean > span,.workflow-clean > article > span,.project-type-list > article > span,.product-clean-list > article > span { color: var(--accent); font-size: 11px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.detail-row-title h2 { margin: 0 0 10px; font-size: clamp(34px, 4vw, 58px); letter-spacing: -.048em; }
.detail-row-title p { margin: 0; color: var(--text-muted); line-height: 1.55; }
.detail-row-clean ul { margin: 0; padding: 0; list-style: none; }
.detail-row-clean li { padding: 12px 0; border-bottom: 1px solid var(--border); }
.workflow-clean article { display: grid; grid-template-columns: 54px minmax(220px,.7fr) minmax(0,1fr); gap: clamp(26px,5vw,70px); align-items: baseline; padding: 38px 0; border-bottom: 1px solid var(--border); }
.workflow-clean h2,.project-type-list h2,.product-clean-list h2 { margin: 0; font-size: clamp(30px, 3.6vw, 50px); letter-spacing: -.045em; }
.workflow-clean p,.project-type-list p,.product-clean-list p { margin: 0; color: var(--text-muted); font-size: 17px; line-height: 1.55; }
.project-type-list { display: grid; grid-template-columns: repeat(3,1fr); }
.project-type-list article { min-height: 300px; padding: 38px 32px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.project-type-list article:first-child { border-left: 1px solid var(--border); }
.project-type-list h2 { margin: 48px 0 12px; }
.honest-note { display: flex; justify-content: space-between; gap: 30px; padding-top: 38px; }
.honest-note p { margin: 0; color: var(--text-muted); }
.about-copy-clean { max-width: 900px; }
.about-copy-clean h2 { margin: 0 0 30px; font-size: clamp(42px, 5.5vw, 76px); line-height: .98; letter-spacing: -.052em; }
.about-copy-clean > p { max-width: 760px; margin: 0 0 18px; color: var(--text-muted); font-size: 19px; line-height: 1.7; }
.expertise-line { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 38px; }
.expertise-line span { padding: 9px 13px; border: 1px solid var(--border); border-radius: 999px; color: var(--text); font-size: 12px; font-weight: 800; }
.product-clean-list article { display: grid; grid-template-columns: 130px minmax(0,1fr) auto; gap: 34px; align-items: center; padding: 50px 0; border-bottom: 1px solid var(--border); scroll-margin-top: 110px; }
.product-clean-list small { color: var(--text-muted); font-size: 12px; font-weight: 800; }

/* Contact legacy shell */
.page-hero { padding: 140px 0 90px; background: var(--page-soft); }
.page-hero h1 { max-width: 900px; margin: 0; font-size: clamp(48px,6vw,86px); line-height:.96; letter-spacing:-.055em; }
.page-hero > .site-container > p:not(.site-eyebrow) { max-width: 680px; color: var(--text-muted); font-size:18px; line-height:1.65; }
.site-section--paper { background: var(--page); }
.content-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.feature-panel { padding:36px; border:1px solid var(--border); border-radius:18px; background:var(--surface); }
.feature-panel > span { color:var(--accent); font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.09em; }
.feature-panel h2 { font-size:34px; letter-spacing:-.04em; }
.feature-panel p { color:var(--text-muted); line-height:1.6; }

/* Request form */
.request-shell { min-height: calc(100vh - var(--header-height)); padding: clamp(70px,8vw,110px) 0; background: var(--page); }
.request-layout { display: grid; grid-template-columns: minmax(280px,.62fr) minmax(0,1.18fr); gap: clamp(42px,7vw,90px); align-items: start; }
.request-intro { position: sticky; top: calc(var(--header-height) + 40px); }
.request-intro h1 { max-width: 470px; margin: 0; font-size: clamp(44px,5.3vw,72px); line-height:.96; letter-spacing:-.054em; }
.request-intro > p:not(.site-eyebrow) { max-width:470px; color:var(--text-muted); line-height:1.65; }
.request-expectations { margin-top:34px; padding-top:24px; border-top:1px solid var(--border); }
.request-expectations > div { display:grid; grid-template-columns:34px 1fr; gap:12px; padding:9px 0; }
.request-expectations span { color:var(--accent); font-size:10px; font-weight:900; }
.request-expectations p { margin:0; color:var(--text-muted); font-size:13px; line-height:1.45; }
.request-expectations strong { display:block; margin-bottom:2px; color:var(--text); }
.request-card { overflow:hidden; border:1px solid var(--border); border-radius:20px; background:var(--surface); box-shadow:var(--shadow); }
.request-progress { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--border); }
.request-step-tab { min-height:72px; padding:14px 18px; color:var(--text-muted); background:transparent; border:0; border-right:1px solid var(--border); text-align:left; font-weight:800; }
.request-step-tab:last-child { border-right:0; }
.request-step-tab span { display:block; margin-bottom:6px; color:var(--text-muted); font-size:9px; letter-spacing:.1em; }
.request-step-tab.is-active { color:var(--text); box-shadow:inset 0 3px var(--accent); }
.request-step-tab.is-active span,.request-step-tab.is-complete span { color:var(--accent); }
.request-form { padding: clamp(28px,4vw,48px); }
.request-panel { display:none; }
.request-panel.is-active { display:block; }
.request-panel h2 { margin:0; font-size:clamp(30px,3vw,42px); letter-spacing:-.04em; }
.request-panel > p { color:var(--text-muted); line-height:1.55; }
.form-grid-v5 { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:30px; }
.form-field { display:grid; gap:8px; }
.form-field--wide { grid-column:1/-1; }
.form-field > span { font-size:12px; font-weight:850; }
.form-field input,.form-field select,.form-field textarea { width:100%; min-height:48px; padding:12px 14px; color:var(--text); background:var(--page); border:1px solid var(--border); border-radius:10px; }
.form-field textarea { min-height:120px; resize:vertical; }
.upload-field { display:grid; gap:8px; padding:18px; border:1px dashed var(--border); border-radius:12px; background:var(--page); }
.upload-field small { color:var(--text-muted); line-height:1.45; }
.check-line { display:flex; align-items:flex-start; gap:10px; color:var(--text-muted); font-size:13px; }
.check-line input { width:auto; margin-top:3px; }
.request-actions { display:flex; justify-content:space-between; gap:16px; margin-top:28px; padding-top:24px; border-top:1px solid var(--border); }
.request-review { display:grid; gap:0; margin-top:28px; border-top:1px solid var(--border); }
.request-review article { display:grid; grid-template-columns:180px 1fr; gap:20px; padding:14px 0; border-bottom:1px solid var(--border); }
.request-review span { color:var(--text-muted); font-size:13px; }
.request-status { margin-bottom:22px; padding:13px 15px; border:1px solid var(--border); border-radius:10px; }
.request-status.ok { border-color:#7db792; background:#edf8f0; color:#174c2d; }
.request-status.warn { border-color:#e5bd76; background:#fff7e8; color:#684615; }
.request-status.err { border-color:#dc9191; background:#fff0f0; color:#7c2222; }
:root[data-theme="dark"] .request-status.ok { color:#c7f4d3; background:#123a24; }
:root[data-theme="dark"] .request-status.warn { color:#ffe2a8; background:#493514; }
:root[data-theme="dark"] .request-status.err { color:#ffd0d0; background:#481e27; }

/* Footer */
.site-footer { min-height:150px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:30px; padding:34px max(28px, calc((100vw - 1440px)/2)); color:#c6d1e2; background:var(--jabo-navy-950); }
.footer-brand img { width:105px; display:block; }
.site-footer p { margin:0; color:#94a5bd; font-size:13px; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:20px; }
.site-footer nav a { color:#c6d1e2; text-decoration:none; font-size:12px; }

/* Responsive */
@media (max-width: 1160px) {
  :root { --content: min(100% - 44px, 920px); --header-height: 70px; }
  .site-header { grid-template-columns:auto 1fr auto auto; padding-inline:22px; }
  .site-nav { position:absolute; top:var(--header-height); left:0; right:0; display:none; padding:18px 22px 26px; background:var(--header); border-top:1px solid rgba(255,255,255,.09); box-shadow:0 22px 40px rgba(0,0,0,.2); }
  .site-nav.is-open { display:grid; }
  .site-nav > a { padding:15px 0; font-size:17px; border-bottom:1px solid rgba(255,255,255,.1); }
  .site-nav > a::after { display:none; }
  .site-nav-mobile-actions { display:flex; gap:12px; align-items:center; padding-top:18px; }
  .site-nav-mobile-actions > a:first-child { color:#fff; text-decoration:none; font-weight:800; }
  .site-actions .site-login,.site-actions > .site-button { display:none; }
  .site-menu-button { display:block; }
  .home-hero { min-height:720px; }
  .home-hero-art { background-size:1250px auto; background-position:55% 58%; opacity:.52; }
  .home-hero::after { background:linear-gradient(90deg,rgba(6,20,45,.98),rgba(6,20,45,.76) 70%,rgba(6,20,45,.42)); }
  :root[data-theme="light"] .home-hero::after { background:linear-gradient(90deg,rgba(244,246,249,.98),rgba(244,246,249,.82) 70%,rgba(244,246,249,.5)); }
  .about-grid { grid-template-columns:1fr; }
  .request-layout { grid-template-columns:1fr; }
  .request-intro { position:static; }
  .project-type-list { grid-template-columns:1fr; }
  .project-type-list article,.project-type-list article:first-child { min-height:0; border-left:0; border-right:0; }
  .detail-row-clean { grid-template-columns:44px 1fr; }
  .detail-row-clean ul { grid-column:2; }
}

@media (max-width: 720px) {
  :root { --content: calc(100vw - 36px); --header-height: 66px; }
  .site-header { padding-inline:18px; gap:12px; }
  .site-brand img { width:94px; }
  .site-brand span { display:none; }
  .theme-toggle,.site-menu-button { width:38px; height:38px; }
  .site-section { padding:72px 0; }
  .home-hero { min-height:660px; align-items:end; }
  .home-hero-content { padding:84px 0 70px; }
  .home-hero h1 { max-width:520px; font-size:clamp(48px,14vw,68px); }
  .home-hero-art { inset:70px -260px auto -120px; height:510px; background-size:900px auto; background-position:center top; opacity:.27; }
  .home-hero::after { background:linear-gradient(0deg,rgba(6,20,45,1) 28%,rgba(6,20,45,.74) 66%,rgba(6,20,45,.32)); }
  :root[data-theme="light"] .home-hero::after { background:linear-gradient(0deg,rgba(244,246,249,1) 28%,rgba(244,246,249,.8) 66%,rgba(244,246,249,.38)); }
  .service-row { grid-template-columns:36px minmax(0,1fr) auto; gap:14px; min-height:120px; }
  .service-row h3 { font-size:29px; }
  .service-row p { font-size:15px; }
  .split-head { align-items:flex-start; flex-direction:column; }
  .process-line { grid-template-columns:1fr 1fr; }
  .process-line div { min-height:110px; border-bottom:1px solid rgba(255,255,255,.14); }
  .product-line { grid-template-columns:1fr auto; gap:10px 18px; padding:28px 0; }
  .product-line > span { grid-column:1/-1; }
  .product-line h3 { font-size:32px; }
  .compact-intro h1 { font-size:clamp(46px,13vw,66px); }
  .page-intro,.software-intro { padding:100px 0 65px; }
  .detail-row-clean,.workflow-clean article { grid-template-columns:36px 1fr; gap:18px; padding:34px 0; }
  .detail-row-clean ul,.workflow-clean article p { grid-column:2; }
  .workflow-clean h2 { font-size:32px; }
  .product-clean-list article { grid-template-columns:1fr; gap:10px; padding:36px 0; }
  .product-clean-list h2 { margin-top:8px; }
  .honest-note { flex-direction:column; }
  .expertise-line { gap:7px; }
  .request-shell { padding:46px 0 70px; }
  .request-intro h1 { font-size:46px; }
  .request-expectations { display:none; }
  .request-progress { grid-template-columns:repeat(3,1fr); }
  .request-step-tab { min-height:62px; padding:10px 8px; font-size:11px; text-align:center; }
  .request-form { padding:24px 18px; }
  .form-grid-v5 { grid-template-columns:1fr; gap:16px; }
  .form-field--wide { grid-column:auto; }
  .request-review article { grid-template-columns:1fr; gap:5px; }
  .content-grid { grid-template-columns:1fr; }
  .site-footer { grid-template-columns:1fr; gap:16px; padding:34px 20px; }
}

@media (max-width: 420px) {
  .site-actions { gap:7px; }
  .site-nav-mobile-actions { flex-direction:column; align-items:stretch; }
  .site-nav-mobile-actions .site-button { width:100%; }
  .home-hero h1 { font-size:48px; }
  .site-button-row { flex-direction:column; align-items:stretch; }
  .site-button-row .site-button { width:100%; }
  .process-line { grid-template-columns:1fr; }
  .process-line div { border-right:0; }
  .request-progress { grid-template-columns:1fr; }
  .request-step-tab { display:none; }
  .request-step-tab.is-active { display:block; text-align:left; }
}
.site-button--ghost-dark { color: var(--text); background: transparent; border-color: var(--border); }
:root[data-theme="light"] .home-hero .site-button--secondary { color: var(--jabo-ink); border-color: rgba(16,29,52,.22); }

/* V009 — rhythm, responsive and concise content closeout */
html { scroll-padding-top: calc(var(--header-height) + 20px); }
:root {
  --section-light-bg: #f4f6f9;
  --section-light-surface: #ffffff;
  --section-light-text: #101d34;
  --section-light-muted: #637087;
  --section-light-border: #dce3ed;
  --section-dark-bg: #06142d;
  --section-dark-soft: #0b1f40;
  --section-dark-text: #f5f7fb;
  --section-dark-muted: #acbad0;
  --section-dark-border: rgba(255,255,255,.15);
}

/* Strong rhythm: dark identity, light information, dark workflow/software. */
.section-services,
.section-about,
.final-cta,
.detail-list-section,
.workflow-clean-section,
.projects-clean-section,
.about-clean-section,
.product-clean-section,
.request-shell {
  --text: var(--section-light-text);
  --text-muted: var(--section-light-muted);
  --border: var(--section-light-border);
  --page: var(--section-light-bg);
  --page-soft: #eef2f6;
  --surface: var(--section-light-surface);
  color: var(--section-light-text);
  background: var(--section-light-bg);
}
.section-about,
.final-cta { background: #ffffff; }
.page-intro,
.software-intro {
  --text: var(--section-dark-text);
  --text-muted: var(--section-dark-muted);
  --border: var(--section-dark-border);
  color: var(--section-dark-text);
  background: var(--section-dark-soft);
}
.page-intro h1,
.software-intro h1 { color: var(--section-dark-text); }
.page-intro .compact-intro > p:not(.site-eyebrow),
.software-intro .compact-intro > p:not(.site-eyebrow) { color: var(--section-dark-muted); }
.section-process,
.section-software { background: var(--section-dark-bg); }
.section-software { border-top: 1px solid rgba(255,255,255,.06); }

/* Less presentation, more editorial precision. */
.site-section { padding: clamp(68px, 7.5vw, 104px) 0; }
.section-head { margin-bottom: 32px; }
.section-head h2,
.split-head h2,
.about-grid h2,
.final-cta h2 { font-size: clamp(34px, 4.1vw, 58px); line-height: 1; letter-spacing: -.047em; }
.home-hero h1 { font-size: clamp(54px, 6.6vw, 92px); max-width: 660px; }
.home-hero-content { padding-block: clamp(72px, 8vw, 104px); }
.site-lead { max-width: 540px; margin-top: 18px; }

.service-row { min-height: 116px; padding: 22px 0; }
.service-row h3 { margin-bottom: 5px; font-size: clamp(25px, 2.5vw, 36px); }
.service-row p { font-size: 15px; }

.split-head { align-items: center; }
.process-line { grid-template-columns: repeat(4,1fr); margin-top: 38px; }
.process-line div { min-height: 118px; padding: 22px 22px 18px 0; }
.process-line span { margin-bottom: 14px; }
.process-line strong { display: block; font-size: clamp(17px,1.7vw,22px); }
.process-line small { display: block; max-width: 180px; margin-top: 8px; color: var(--section-dark-muted); font-size: 13px; line-height: 1.4; }

.about-grid { align-items: center; gap: clamp(36px,7vw,92px); }
.about-grid p:not(.site-eyebrow) { max-width: 440px; margin-bottom: 20px; font-size: 17px; line-height: 1.55; }
.product-lines { margin-top: 38px; }
.product-line { min-height: 118px; }
.product-line h3 { font-size: clamp(26px,2.6vw,38px); }
.product-line p { font-size: 15px; }
.final-cta p:not(.site-eyebrow) { margin: 14px 0 24px; font-size: 16px; }

/* Subpages: shorter intro, compact rows and no slide-like empty screens. */
.page-intro,
.software-intro { padding: clamp(82px, 9vw, 126px) 0 clamp(56px, 6vw, 82px); }
.compact-intro { max-width: 850px; }
.compact-intro h1 { max-width: 820px; font-size: clamp(46px, 6.1vw, 78px); line-height: .98; letter-spacing: -.052em; }
.compact-intro > p:not(.site-eyebrow) { max-width: 560px; margin-top: 18px; font-size: 17px; line-height: 1.5; }
.detail-row-clean { padding: 40px 0; }
.detail-row-title h2 { font-size: clamp(31px,3.4vw,48px); }
.workflow-clean article { padding: 30px 0; }
.workflow-clean h2 { font-size: clamp(28px,3vw,42px); }
.workflow-clean article p { margin: 0; font-size: 15px; line-height: 1.45; }
.project-type-list article { min-height: 260px; }
.about-copy-clean { max-width: 820px; }
.about-copy-clean h2 { font-size: clamp(34px,4vw,54px); }
.about-copy-clean > p { max-width: 690px; font-size: 17px; }
.product-clean-list article { padding: 42px 0; }
.product-clean-list h2 { font-size: clamp(32px,3.5vw,48px); }

/* Mobile navigation before the desktop header becomes cramped. */
@media (max-width: 1160px) {
  :root { --content: min(100% - 48px, 960px); --header-height: 70px; }
  .site-header { grid-template-columns: auto 1fr auto auto; padding-inline: 24px; }
  .site-nav { position: absolute; top: var(--header-height); left: 0; right: 0; display: none; padding: 18px 24px 26px; background: var(--header); border-top: 1px solid rgba(255,255,255,.09); box-shadow: 0 22px 40px rgba(0,0,0,.2); }
  .site-nav.is-open { display: grid; }
  .site-nav > a { padding: 14px 0; font-size: 17px; border-bottom: 1px solid rgba(255,255,255,.1); }
  .site-nav > a::after { display: none; }
  .site-nav-mobile-actions { display: flex; gap: 12px; align-items: center; padding-top: 18px; }
  .site-nav-mobile-actions > a:first-child { color: #fff; text-decoration: none; font-weight: 800; }
  .site-actions .site-login,
  .site-actions > .site-button { display: none; }
  .site-menu-button { display: block; }
  .home-hero { min-height: 700px; }
  .home-hero h1 { font-size: clamp(52px,8vw,78px); max-width: 580px; }
  .home-hero-art { background-size: 1180px auto; background-position: 58% 55%; opacity: .5; }
  .about-grid { grid-template-columns: 1fr 1fr; gap: 44px; }
  .compact-intro h1 { font-size: clamp(44px,7vw,68px); }
}

@media (max-width: 860px) {
  :root { --content: min(100% - 40px, 720px); }
  .site-section { padding: 68px 0; }
  .home-hero { min-height: 650px; align-items: end; }
  .home-hero-content { padding: 82px 0 64px; }
  .home-hero h1 { font-size: clamp(48px,10vw,66px); max-width: 520px; }
  .home-hero-art { inset: 30px -230px auto -90px; height: 520px; background-size: 920px auto; background-position: center top; opacity: .3; }
  .home-hero::after { background: linear-gradient(0deg,rgba(6,20,45,1) 29%,rgba(6,20,45,.78) 63%,rgba(6,20,45,.28)); }
  :root[data-theme="light"] .home-hero::after { background: linear-gradient(0deg,rgba(244,246,249,1) 29%,rgba(244,246,249,.83) 63%,rgba(244,246,249,.35)); }
  .section-head h2,
  .split-head h2,
  .about-grid h2,
  .final-cta h2 { font-size: clamp(34px,7vw,50px); }
  .split-head { align-items: flex-start; flex-direction: column; gap: 22px; }
  .process-line { grid-template-columns: 1fr 1fr; }
  .process-line div { min-height: 108px; border-bottom: 1px solid rgba(255,255,255,.14); }
  .about-grid { grid-template-columns: 1fr; gap: 28px; }
  .product-line { grid-template-columns: 90px minmax(0,1fr) auto; }
  .page-intro,
  .software-intro { padding: 76px 0 56px; }
  .compact-intro h1 { font-size: clamp(42px,9vw,60px); }
  .detail-row-clean { grid-template-columns: 40px 1fr; gap: 18px; }
  .detail-row-clean ul { grid-column: 2; }
}

@media (max-width: 620px) {
  :root { --content: calc(100vw - 36px); --header-height: 66px; }
  .site-header { padding-inline: 18px; gap: 10px; }
  .site-brand img { width: 92px; }
  .site-brand span { display: none; }
  .theme-toggle,
  .site-menu-button { width: 38px; height: 38px; }
  .site-section { padding: 58px 0; }
  .home-hero { min-height: 610px; }
  .home-hero-content { padding: 74px 0 54px; }
  .home-hero h1 { font-size: clamp(44px,13vw,58px); line-height: .97; }
  .home-hero .site-lead { font-size: 16px; }
  .home-hero-art { inset: 52px -260px auto -130px; height: 430px; background-size: 800px auto; opacity: .23; }
  .service-row { grid-template-columns: 32px minmax(0,1fr) auto; gap: 12px; min-height: 104px; }
  .service-row h3 { font-size: 27px; }
  .service-row p { font-size: 14px; }
  .process-line { grid-template-columns: 1fr; }
  .process-line div { min-height: 0; padding: 20px 0; border-right: 0; }
  .process-line small { max-width: none; }
  .product-line { grid-template-columns: 1fr auto; gap: 8px 14px; padding: 24px 0; }
  .product-line > span { grid-column: 1 / -1; }
  .product-line h3 { font-size: 29px; }
  .compact-intro h1 { font-size: clamp(40px,12vw,52px); }
  .compact-intro > p:not(.site-eyebrow) { font-size: 16px; }
  .detail-row-clean,
  .workflow-clean article { grid-template-columns: 32px 1fr; gap: 14px; padding: 28px 0; }
  .detail-row-clean ul,
  .workflow-clean article p { grid-column: 2; }
  .workflow-clean h2 { font-size: 29px; }
  .final-cta h2 { font-size: 38px; }
  .site-button-row { flex-direction: column; align-items: stretch; }
  .site-button-row .site-button { width: 100%; }
}


/* V010 — public website closeout
   Clean, engineered, concise. The platform/module architecture is unchanged. */

:root {
  --content: min(1180px, calc(100vw - 64px));
  --header-height: 74px;
  --marketing-light: #f4f6f9;
  --marketing-white: #ffffff;
  --marketing-dark: #06142d;
  --marketing-dark-soft: #0b1f40;
}

/* One controlled marketing rhythm. Dark theme only replaces information surfaces. */
.section-services,
.section-principles,
.section-engineering,
.final-cta,
.detail-list-section,
.workflow-clean-section,
.projects-clean-section,
.about-clean-section,
.product-clean-section,
.request-shell {
  --text: #101d34;
  --text-muted: #637087;
  --border: #dce3ed;
  --page: #f4f6f9;
  --page-soft: #eef2f6;
  --surface: #ffffff;
  color: var(--text);
}
.section-services,
.detail-list-section,
.workflow-clean-section,
.projects-clean-section,
.about-clean-section,
.product-clean-section,
.request-shell { background: var(--marketing-light); }
.section-principles,
.section-engineering,
.final-cta { background: var(--marketing-white); }

:root[data-theme="dark"] .section-services,
:root[data-theme="dark"] .section-principles,
:root[data-theme="dark"] .section-engineering,
:root[data-theme="dark"] .final-cta,
:root[data-theme="dark"] .detail-list-section,
:root[data-theme="dark"] .workflow-clean-section,
:root[data-theme="dark"] .projects-clean-section,
:root[data-theme="dark"] .about-clean-section,
:root[data-theme="dark"] .product-clean-section,
:root[data-theme="dark"] .request-shell {
  --text: #f4f7fb;
  --text-muted: #aebbd0;
  --border: rgba(255,255,255,.14);
  --page: #07162f;
  --page-soft: #0b1f40;
  --surface: #0d2347;
  color: var(--text);
}
:root[data-theme="dark"] .section-services,
:root[data-theme="dark"] .detail-list-section,
:root[data-theme="dark"] .workflow-clean-section,
:root[data-theme="dark"] .projects-clean-section,
:root[data-theme="dark"] .about-clean-section,
:root[data-theme="dark"] .product-clean-section,
:root[data-theme="dark"] .request-shell { background: #07162f; }
:root[data-theme="dark"] .section-principles,
:root[data-theme="dark"] .section-engineering,
:root[data-theme="dark"] .final-cta { background: #0b1f40; }

.site-section { padding: clamp(72px, 7.4vw, 108px) 0; }
.section-head--compact { max-width: 720px; }
.section-head h2,
.split-head h2,
.principles-head h2,
.engineering-grid h2,
.final-cta h2 {
  margin: 0;
  max-width: 900px;
  font-size: clamp(34px, 4.25vw, 58px);
  line-height: 1;
  letter-spacing: -.048em;
}

/* Header: fewer navigation choices and earlier clean collapse. */
.site-header {
  grid-template-columns: auto 1fr auto auto;
  gap: 24px;
  padding-inline: max(24px, calc((100vw - 1400px)/2));
}
.site-brand img { width: 108px; }
.site-nav { gap: 34px; }
.site-nav > a { font-size: 13px; }

/* Hero: precise message, art supports rather than competes. */
.home-hero {
  min-height: clamp(650px, calc(100svh - var(--header-height)), 860px);
}
.home-hero-art {
  background-size: min(88vw, 1280px) auto;
  background-position: right 52%;
  opacity: .68;
}
.home-hero::after {
  background: linear-gradient(90deg, rgba(6,20,45,.99) 0%, rgba(6,20,45,.91) 39%, rgba(6,20,45,.44) 65%, rgba(6,20,45,.06) 100%);
}
.home-hero h1 {
  max-width: 760px;
  font-size: clamp(54px, 6.45vw, 90px);
  line-height: .96;
  letter-spacing: -.058em;
}
.home-hero .site-lead { max-width: 520px; }
:root[data-theme="light"] .home-hero::after {
  background: linear-gradient(90deg, rgba(244,246,249,.99) 0%, rgba(244,246,249,.93) 40%, rgba(244,246,249,.5) 68%, rgba(244,246,249,.08) 100%);
}

/* Services: one clear line per project type. */
.service-row {
  grid-template-columns: 56px minmax(0,1fr) auto;
  min-height: 112px;
  padding: 22px 0;
}
.service-row h3 { font-size: clamp(26px, 2.5vw, 36px); }
.service-row p { max-width: 560px; }

/* Principles: the actual JABO promise, no abstract visuals. */
.section-principles { border-top: 1px solid var(--border); }
.principles-head { max-width: 880px; }
.principle-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 42px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.principle-grid article {
  min-height: 220px;
  padding: 30px 34px 32px 0;
  border-right: 1px solid var(--border);
}
.principle-grid article:not(:first-child) { padding-left: 34px; }
.principle-grid article:last-child { border-right: 0; }
.principle-grid span {
  display: block;
  margin-bottom: 38px;
  color: var(--accent);
  font-size: 11px;
  font-weight: 900;
}
.principle-grid h3 {
  margin: 0 0 12px;
  font-size: clamp(25px, 2.45vw, 34px);
  letter-spacing: -.04em;
}
.principle-grid p {
  max-width: 320px;
  margin: 0;
  color: var(--text-muted);
  font-size: 15px;
  line-height: 1.55;
}

/* Process: concise and structurally legible. */
.section-process { background: var(--marketing-dark); }
.process-line { margin-top: 42px; }
.process-line div { min-height: 120px; }
.process-line strong { max-width: 220px; }

/* Company statement without forced founder marketing. */
.section-engineering { border-top: 1px solid var(--border); }
.engineering-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(320px,.62fr);
  gap: clamp(48px, 8vw, 120px);
  align-items: end;
}
.engineering-grid p:not(.site-eyebrow) {
  max-width: 520px;
  margin: 0 0 22px;
  color: var(--text-muted);
  font-size: 18px;
  line-height: 1.55;
}

/* Software is a second business line, not decoration. */
.section-software { background: var(--marketing-dark-soft); }
.product-line { min-height: 122px; }
.product-line p { max-width: 520px; }

/* Page intros stay compact. */
.page-intro,
.software-intro {
  padding: clamp(84px, 9vw, 122px) 0 clamp(58px, 6vw, 78px);
  color: #f5f7fb;
  background: var(--marketing-dark-soft);
}
.page-intro h1,
.software-intro h1 { color: #f5f7fb; }
.page-intro .compact-intro > p:not(.site-eyebrow),
.software-intro .compact-intro > p:not(.site-eyebrow) { color: #acbad0; }
.compact-intro { max-width: 920px; }
.compact-intro h1 {
  max-width: 900px;
  font-size: clamp(45px, 5.9vw, 76px);
  line-height: .98;
}

/* Detailed pages: readable, not presentation-like. */
.detail-row-clean { padding: 40px 0; }
.detail-row-clean li { color: var(--text); }
.workflow-clean article {
  grid-template-columns: 58px minmax(230px,.72fr) minmax(0,1fr);
  min-height: 116px;
  padding: 30px 0;
}
.workflow-clean article p { color: var(--text-muted); }

.about-statement {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(320px,.72fr);
  gap: clamp(48px, 8vw, 120px);
  align-items: end;
  margin-bottom: 52px;
}
.about-statement h2 {
  margin: 0;
  font-size: clamp(34px, 4.2vw, 58px);
  line-height: 1;
  letter-spacing: -.048em;
}
.about-statement p {
  max-width: 540px;
  margin: 0;
  color: var(--text-muted);
  font-size: 18px;
  line-height: 1.55;
}
.principle-list-clean {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border);
}
.principle-list-clean article {
  min-height: 190px;
  padding: 28px 30px;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.principle-list-clean span {
  color: var(--accent);
  font-size: 11px;
  font-weight: 900;
}
.principle-list-clean h3 {
  margin: 34px 0 10px;
  font-size: 29px;
  letter-spacing: -.04em;
}
.principle-list-clean p {
  max-width: 430px;
  margin: 0;
  color: var(--text-muted);
  line-height: 1.55;
}
.location-line,
.platform-line {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: center;
  margin-top: 42px;
  padding-top: 22px;
  border-top: 1px solid var(--border);
  color: var(--text-muted);
}
.location-line span:last-child { text-align: right; }
.platform-line { grid-template-columns: 180px minmax(0,1fr) auto; }
.platform-line > span { color: var(--text); font-weight: 850; }
.platform-line p { margin: 0; }

/* Footer and CTA. */
.final-cta { border-top: 1px solid var(--border); }
.site-footer p { max-width: 360px; }

/* Responsive: recompose before anything becomes cramped. */
@media (max-width: 1080px) {
  :root { --content: min(100% - 48px, 900px); --header-height: 70px; }
  .site-header { padding-inline: 24px; }
  .site-nav {
    position: absolute;
    top: var(--header-height);
    left: 0;
    right: 0;
    display: none;
    padding: 18px 24px 26px;
    background: var(--header);
    border-top: 1px solid rgba(255,255,255,.09);
    box-shadow: 0 22px 40px rgba(0,0,0,.2);
  }
  .site-nav.is-open { display: grid; }
  .site-nav > a { padding: 14px 0; font-size: 17px; border-bottom: 1px solid rgba(255,255,255,.1); }
  .site-nav > a::after { display: none; }
  .site-nav-mobile-actions { display: flex; gap: 12px; align-items: center; padding-top: 18px; }
  .site-nav-mobile-actions > a:first-child { color: #fff; text-decoration: none; font-weight: 800; }
  .site-actions .site-login,
  .site-actions > .site-button { display: none; }
  .site-menu-button { display: block; }
  .home-hero { min-height: 690px; }
  .home-hero h1 { max-width: 620px; font-size: clamp(52px, 8vw, 76px); }
  .home-hero-art { background-size: 1120px auto; background-position: 61% 54%; opacity: .48; }
  .engineering-grid,
  .about-statement { grid-template-columns: 1fr 1fr; gap: 42px; }
}

@media (max-width: 820px) {
  :root { --content: min(100% - 40px, 680px); }
  .site-section { padding: 64px 0; }
  .home-hero { min-height: 640px; align-items: end; }
  .home-hero-content { padding: 78px 0 58px; }
  .home-hero h1 { max-width: 570px; font-size: clamp(46px, 10vw, 64px); }
  .home-hero-art { inset: 24px -210px auto -100px; height: 500px; background-size: 880px auto; opacity: .25; }
  .home-hero::after { background: linear-gradient(0deg,rgba(6,20,45,1) 30%,rgba(6,20,45,.78) 66%,rgba(6,20,45,.25)); }
  :root[data-theme="light"] .home-hero::after { background: linear-gradient(0deg,rgba(244,246,249,1) 30%,rgba(244,246,249,.85) 66%,rgba(244,246,249,.28)); }
  .principle-grid { grid-template-columns: 1fr; }
  .principle-grid article,
  .principle-grid article:not(:first-child) { min-height: 0; padding: 26px 0; border-right: 0; border-bottom: 1px solid var(--border); }
  .principle-grid article:last-child { border-bottom: 0; }
  .principle-grid span { margin-bottom: 18px; }
  .principle-grid p { max-width: 520px; }
  .process-line { grid-template-columns: 1fr 1fr; }
  .engineering-grid,
  .about-statement { grid-template-columns: 1fr; gap: 24px; }
  .principle-list-clean { grid-template-columns: 1fr; }
  .platform-line { grid-template-columns: 1fr; }
  .location-line { grid-template-columns: 1fr; }
  .location-line span:last-child { text-align: left; }
  .compact-intro h1 { font-size: clamp(42px, 9vw, 60px); }
}

@media (max-width: 560px) {
  :root { --content: calc(100vw - 36px); --header-height: 66px; }
  .site-header { gap: 9px; padding-inline: 18px; }
  .site-brand img { width: 92px; }
  .site-brand span { display: none; }
  .theme-toggle,
  .site-menu-button { width: 38px; height: 38px; }
  .home-hero { min-height: 600px; }
  .home-hero-content { padding: 70px 0 50px; }
  .home-hero h1 { font-size: clamp(43px, 12.7vw, 56px); line-height: .98; }
  .home-hero .site-lead { max-width: 360px; font-size: 16px; }
  .home-hero-art { inset: 45px -260px auto -125px; height: 420px; background-size: 780px auto; opacity: .2; }
  .section-head h2,
  .split-head h2,
  .principles-head h2,
  .engineering-grid h2,
  .final-cta h2 { font-size: 38px; }
  .service-row { grid-template-columns: 32px minmax(0,1fr) auto; gap: 12px; min-height: 100px; }
  .service-row h3 { font-size: 26px; }
  .service-row p { font-size: 14px; }
  .process-line { grid-template-columns: 1fr; }
  .process-line div { min-height: 0; padding: 20px 0; border-right: 0; }
  .product-line { grid-template-columns: 1fr auto; gap: 8px 14px; padding: 24px 0; }
  .product-line > span { grid-column: 1 / -1; }
  .detail-row-clean,
  .workflow-clean article { grid-template-columns: 32px 1fr; gap: 14px; padding: 28px 0; }
  .detail-row-clean ul,
  .workflow-clean article p { grid-column: 2; }
  .about-statement p { font-size: 16px; }
  .principle-list-clean article { min-height: 0; padding: 24px 22px; }
  .principle-list-clean h3 { margin-top: 22px; }
  .site-button-row { flex-direction: column; align-items: stretch; }
  .site-button-row .site-button { width: 100%; }
}


/* V012 — canonical public website
   One canonical stylesheet. Business details are visible; personal founder marketing is omitted. */

/* Slightly richer copy without increasing visual noise. */
.detail-row-title .service-description {
  max-width: 650px;
  margin-top: 16px;
  color: var(--text);
  font-size: 16px;
  line-height: 1.6;
}

/* Canonical footer: compact, complete and anonymous. */
.site-footer {
  display: grid;
  grid-template-columns: minmax(260px, .9fr) minmax(420px, 1.1fr);
  gap: clamp(42px, 7vw, 110px);
  padding: 62px max(28px, calc((100vw - 1400px)/2)) 28px;
  color: #d8e2f0;
  background: #06142d;
  border-top: 1px solid rgba(255,255,255,.1);
}
.footer-identity { max-width: 420px; }
.footer-brand { display: inline-flex; align-items: center; text-decoration: none; }
.footer-brand img { display: block; width: 112px; height: auto; }
.footer-identity > p { margin: 24px 0 9px; color: #f4f7fb; font-size: 17px; font-weight: 780; }
.footer-identity > span { color: #9faec3; font-size: 13px; }
.footer-nav-grid { display: grid; grid-template-columns: repeat(2,minmax(150px,1fr)); gap: 34px 60px; }
.footer-nav-group strong { display: block; margin-bottom: 15px; color: #fff; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.footer-nav-group a { display: block; width: fit-content; margin: 10px 0; color: #b5c2d4; text-decoration: none; font-size: 14px; }
.footer-nav-group a:hover { color: #fff; }
.footer-meta {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px 28px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.12);
  color: #8f9db1;
  font-size: 12px;
}
.footer-meta a { color: #c7d2e1; text-decoration: none; }

/* Legal and business pages use the same restrained shell. */
.legal-page { background: var(--page); }
.legal-layout {
  display: grid;
  grid-template-columns: minmax(220px,.42fr) minmax(0,1fr);
  gap: clamp(42px,7vw,110px);
  align-items: start;
}
.legal-aside { position: sticky; top: calc(var(--header-height) + 32px); }
.legal-aside h2 { margin: 0 0 12px; font-size: clamp(25px,2.6vw,36px); letter-spacing: -.04em; }
.legal-aside p { margin: 0; color: var(--text-muted); line-height: 1.6; }
.legal-content { border-top: 1px solid var(--border); }
.legal-section { padding: 30px 0; border-bottom: 1px solid var(--border); }
.legal-section h2 { margin: 0 0 14px; font-size: clamp(24px,2.7vw,36px); letter-spacing: -.035em; }
.legal-section h3 { margin: 22px 0 8px; font-size: 18px; }
.legal-section p, .legal-section li { color: var(--text-muted); line-height: 1.7; }
.legal-section p { margin: 0 0 12px; }
.legal-section ul { margin: 0; padding-left: 20px; }
.business-facts { margin: 0; }
.business-facts div {
  display: grid;
  grid-template-columns: minmax(130px,.35fr) minmax(0,1fr);
  gap: 24px;
  padding: 15px 0;
  border-bottom: 1px solid var(--border);
}
.business-facts div:last-child { border-bottom: 0; }
.business-facts dt { color: var(--text-muted); }
.business-facts dd { margin: 0; color: var(--text); font-weight: 750; }
.business-facts a { text-decoration: none; }

@media (max-width: 1080px) {
  .site-footer { padding-inline: 24px; }
}
@media (max-width: 820px) {
  .site-footer { grid-template-columns: 1fr; gap: 38px; padding: 50px 20px 24px; }
  .footer-meta { grid-column: 1; }
  .legal-layout { grid-template-columns: 1fr; gap: 34px; }
  .legal-aside { position: static; }
}
@media (max-width: 560px) {
  .footer-nav-grid { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
  .footer-meta { display: grid; }
  .business-facts div { grid-template-columns: 1fr; gap: 5px; }
}


/* V012 — shell recovery and audience clarity */
.section-audience {
  --text: var(--section-light-text);
  --text-muted: var(--section-light-muted);
  --border: var(--section-light-border);
  color: var(--section-light-text);
  background: #fff;
}
.audience-layout {
  display: grid;
  grid-template-columns: minmax(260px,.8fr) minmax(0,1.45fr);
  gap: clamp(44px,8vw,110px);
  align-items: start;
}
.audience-heading h2 {
  max-width: 460px;
  margin: 0;
  font-size: clamp(36px,4.3vw,60px);
  line-height: 1;
  letter-spacing: -.05em;
}
.audience-list { border-top: 1px solid var(--section-light-border); }
.audience-list article {
  display: grid;
  grid-template-columns: minmax(135px,.55fr) minmax(0,1fr);
  gap: 28px;
  align-items: baseline;
  padding: 24px 0;
  border-bottom: 1px solid var(--section-light-border);
}
.audience-list h3 { margin: 0; color: var(--section-light-text); font-size: 21px; letter-spacing: -.025em; }
.audience-list p { margin: 0; color: var(--section-light-muted); font-size: 15px; line-height: 1.5; }
.region-note {
  margin-top: 34px;
  padding-top: 20px;
  color: var(--section-light-muted);
  border-top: 1px solid var(--section-light-border);
  font-size: 13px;
  font-weight: 700;
}

.site-footer {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(250px,.85fr) minmax(320px,1.15fr);
  gap: 34px clamp(48px,8vw,120px);
  align-items: start;
  padding: 54px max(28px, calc((100vw - 1440px)/2)) 30px;
  color: #c6d1e2;
  background: var(--jabo-navy-950);
}
.footer-identity { max-width: 440px; }
.footer-brand img { width: 112px; display: block; }
.footer-identity p { max-width: 390px; margin: 22px 0 12px; color: #aab8cc; font-size: 14px; line-height: 1.55; }
.footer-identity > span { color: #fff; font-size: 13px; font-weight: 800; }
.footer-nav-grid { display: grid; grid-template-columns: repeat(2,minmax(130px,1fr)); gap: 34px; }
.footer-nav-group { display: grid !important; gap: 10px !important; align-content: start; }
.footer-nav-group strong { margin-bottom: 5px; color: #fff; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.site-footer .footer-nav-group a { color: #c6d1e2; text-decoration: none; font-size: 13px; }
.site-footer .footer-nav-group a:hover { color: #fff; }
.footer-meta {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.12);
  color: #8fa0b8;
  font-size: 12px;
}
.footer-meta a { color: inherit; text-decoration: none; }
.footer-meta a:hover { color: #fff; }

@media (max-width: 1160px) {
  .audience-layout { grid-template-columns: 1fr; gap: 34px; }
  .audience-heading h2 { max-width: 620px; }
  .site-footer { grid-template-columns: 1fr; gap: 38px; }
  .footer-nav-grid { max-width: 560px; }
}
@media (max-width: 720px) {
  .audience-list article { grid-template-columns: 1fr; gap: 7px; padding: 22px 0; }
  .audience-list h3 { font-size: 20px; }
  .site-footer { padding: 42px 20px 28px; }
  .footer-nav-grid { grid-template-columns: 1fr 1fr; gap: 28px 18px; }
  .footer-meta { flex-direction: column; gap: 8px; }
}
@media (max-width: 420px) {
  .footer-nav-grid { grid-template-columns: 1fr; }
}

/* V013 — practical website and intake closeout
   Concrete building-language, fast relevance scan and a complete three-step intake. */
.practical-jobs-section,
.practical-software-section,
.practical-detail-section,
.practical-workflow-page,
.practical-request-shell {
  background: var(--marketing-light, #f4f6f9);
}
.practical-section-head { max-width: 820px; margin-bottom: 42px; }
.practical-section-head h2 {
  max-width: 760px;
  margin: 0;
  font-size: clamp(38px, 5vw, 68px);
  line-height: .98;
  letter-spacing: -.05em;
}
.practical-section-head > p:not(.site-eyebrow) { max-width: 600px; margin: 18px 0 0; color: var(--text-muted); font-size: 17px; line-height: 1.55; }
.practical-section-head--dark h2 { color: #fff; }
.practical-section-head--dark > p:not(.site-eyebrow) { color: #afbdd1; }

.practical-list { border-top: 1px solid var(--border); }
.practical-row {
  display: grid;
  grid-template-columns: 48px minmax(240px,.82fr) minmax(300px,1.18fr) auto;
  gap: clamp(18px,3vw,42px);
  align-items: center;
  min-height: 116px;
  padding: 24px 0;
  color: var(--text);
  text-decoration: none;
  border-bottom: 1px solid var(--border);
}
.practical-row > span { color: var(--accent); font-size: 11px; font-weight: 900; }
.practical-row h3 { margin: 0; font-size: clamp(24px,2.6vw,36px); letter-spacing: -.035em; }
.practical-row p { margin: 0; color: var(--text-muted); font-size: 15px; line-height: 1.5; }
.practical-row b { font-size: 22px; font-weight: 400; transition: transform .18s ease; }
.practical-row:hover b { color: var(--accent); transform: translateX(6px); }

.deliverables-section,
.practical-process-section { color: #fff; background: var(--marketing-dark, #06142d); }
.deliverables-grid,
.practical-process {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  margin-top: 46px;
  border-top: 1px solid rgba(255,255,255,.17);
}
.deliverables-grid article,
.practical-process article { min-height: 178px; padding: 26px 25px 24px 0; border-right: 1px solid rgba(255,255,255,.14); }
.deliverables-grid article:last-child,
.practical-process article:last-child { border-right: 0; }
.deliverables-grid span,
.practical-process span { display: block; margin-bottom: 24px; color: var(--accent); font-size: 11px; font-weight: 900; }
.deliverables-grid h3,
.practical-process h3 { margin: 0 0 10px; color: #fff; font-size: clamp(22px,2.2vw,30px); letter-spacing: -.035em; }
.deliverables-grid p,
.practical-process p { max-width: 240px; margin: 0; color: #afbdd1; font-size: 14px; line-height: 1.55; }
.practical-inline-action { margin-top: 30px; }

.practical-software-layout,
.practical-supply-layout {
  display: grid;
  grid-template-columns: minmax(260px,.8fr) minmax(0,1fr);
  gap: clamp(44px,8vw,120px);
  align-items: end;
}
.practical-software-layout h2,
.practical-supply-layout h2 { max-width: 620px; margin: 0; font-size: clamp(38px,4.8vw,66px); line-height: .98; letter-spacing: -.05em; }
.practical-software-layout > div:last-child > p { max-width: 560px; margin: 0 0 24px; color: var(--text-muted); font-size: 17px; line-height: 1.6; }

.practical-page-intro { padding-bottom: clamp(62px,7vw,96px); }
.practical-detail-row { grid-template-columns: 54px minmax(300px,.95fr) minmax(260px,.8fr); }
.practical-workflow-list article { grid-template-columns: 54px minmax(260px,.72fr) minmax(0,1fr); padding: 46px 0; }
.practical-workflow-list p { max-width: 620px; }
.practical-supply-section { background: var(--page-soft); }
.practical-supply-layout ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--border); }
.practical-supply-layout li { padding: 18px 0; color: var(--text); border-bottom: 1px solid var(--border); }
.practical-final-cta { background: var(--surface); }

.request-check-group { margin: 0; padding: 0; border: 0; }
.request-check-group legend { margin-bottom: 12px; color: var(--text); font-size: 13px; font-weight: 800; }
.request-check-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px 20px; }
.request-check-grid .check-line { margin: 0; padding: 10px 0; border-bottom: 1px solid var(--border); }

@media (max-width: 960px) {
  .practical-row { grid-template-columns: 42px minmax(0,1fr) auto; }
  .practical-row p { grid-column: 2; }
  .deliverables-grid,
  .practical-process { grid-template-columns: repeat(2,1fr); }
  .deliverables-grid article:nth-child(2),
  .practical-process article:nth-child(2) { border-right: 0; }
  .deliverables-grid article:nth-child(-n+2),
  .practical-process article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.14); }
  .practical-software-layout,
  .practical-supply-layout { grid-template-columns: 1fr; gap: 34px; align-items: start; }
  .practical-detail-row { grid-template-columns: 44px minmax(0,1fr); }
  .practical-detail-row ul { grid-column: 2; }
}

@media (max-width: 620px) {
  .practical-section-head { margin-bottom: 28px; }
  .practical-section-head h2,
  .practical-software-layout h2,
  .practical-supply-layout h2 { font-size: 38px; }
  .practical-row { grid-template-columns: 30px minmax(0,1fr) auto; min-height: 0; padding: 23px 0; gap: 10px 13px; }
  .practical-row h3 { font-size: 25px; }
  .practical-row p { font-size: 14px; }
  .deliverables-grid,
  .practical-process { grid-template-columns: 1fr; }
  .deliverables-grid article,
  .practical-process article { min-height: 0; padding: 24px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.14); }
  .deliverables-grid article:last-child,
  .practical-process article:last-child { border-bottom: 0; }
  .deliverables-grid p,
  .practical-process p { max-width: 100%; }
  .practical-detail-row,
  .practical-workflow-list article { grid-template-columns: 30px minmax(0,1fr); gap: 12px; padding: 29px 0; }
  .practical-detail-row ul,
  .practical-workflow-list article p { grid-column: 2; }
  .request-check-grid { grid-template-columns: 1fr; }
}

/* V015 — public website freeze and explicit contrast closeout.
   These rules are deliberately last: every marketing surface owns its contrast. */
:root {
  --public-info-bg: #f4f6f9;
  --public-info-surface: #ffffff;
  --public-info-text: #101d34;
  --public-info-muted: #637087;
  --public-info-border: #dce3ed;
  --public-dark-bg: #06142d;
  --public-dark-soft: #0b1f40;
  --public-dark-text: #f5f7fb;
  --public-dark-muted: #acbad0;
  --public-dark-border: rgba(255,255,255,.16);
}
:root[data-theme="dark"] {
  --public-info-bg: #0b1f40;
  --public-info-surface: #0d2347;
  --public-info-text: #f5f7fb;
  --public-info-muted: #acbad0;
  --public-info-border: rgba(255,255,255,.14);
}

/* Information surfaces: readable in both themes. */
.practical-jobs-section,
.section-audience,
.practical-detail-section,
.practical-workflow-page,
.practical-supply-section,
.product-clean-section,
.request-shell,
.practical-request-shell,
.practical-final-cta {
  --text: var(--public-info-text);
  --text-muted: var(--public-info-muted);
  --border: var(--public-info-border);
  --page: var(--public-info-bg);
  --page-soft: var(--public-info-bg);
  --surface: var(--public-info-surface);
  color: var(--public-info-text);
  background: var(--public-info-bg);
}
.practical-final-cta { background: var(--public-info-surface); }
.practical-jobs-section h2,
.practical-jobs-section h3,
.section-audience h2,
.section-audience h3,
.practical-detail-section h2,
.practical-workflow-page h2,
.practical-supply-section h2,
.product-clean-section h2,
.request-shell h1,
.request-shell h2,
.practical-request-shell h1,
.practical-request-shell h2,
.practical-final-cta h2 { color: var(--public-info-text); }
.practical-jobs-section p,
.section-audience p,
.practical-detail-section p,
.practical-workflow-page p,
.practical-supply-section p,
.product-clean-section p,
.request-shell p,
.practical-request-shell p,
.practical-final-cta p { color: var(--public-info-muted); }

/* Dark identity surfaces remain intentionally dark in both themes. */
.deliverables-section,
.practical-process-section,
.practical-software-section {
  --text: var(--public-dark-text);
  --text-muted: var(--public-dark-muted);
  --border: var(--public-dark-border);
  color: var(--public-dark-text);
  background: var(--public-dark-bg);
}
.deliverables-section h2,
.deliverables-section h3,
.practical-process-section h2,
.practical-process-section h3,
.practical-software-section h2,
.practical-software-section h3 { color: var(--public-dark-text); }
.deliverables-section p,
.practical-process-section p,
.practical-software-section p { color: var(--public-dark-muted); }

/* Compact software proof until real product screenshots are available. */
.practical-software-section { padding-block: clamp(72px, 8vw, 104px); }
.practical-product-list { border-top: 1px solid var(--public-dark-border); }
.practical-product-list > a {
  min-height: 124px;
  display: grid;
  grid-template-columns: 130px minmax(0,1fr) auto;
  gap: 28px;
  align-items: center;
  color: var(--public-dark-text);
  text-decoration: none;
  border-bottom: 1px solid var(--public-dark-border);
}
.practical-product-list > a > span {
  color: var(--accent);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.practical-product-list h3 {
  margin: 0 0 7px;
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1;
  letter-spacing: -.04em;
}
.practical-product-list p { margin: 0; font-size: 15px; line-height: 1.5; }
.practical-product-list b { font-size: 23px; font-weight: 400; transition: transform .18s ease, color .18s ease; }
.practical-product-list > a:hover b { color: var(--accent); transform: translateX(6px); }

/* Keep the landing flow compact and eliminate unfinished blank bands. */
.practical-section-head { margin-bottom: 34px; }
.practical-software-section .practical-section-head { margin-bottom: 28px; }
.section-audience .region-note { color: var(--public-info-muted); border-color: var(--public-info-border); }
.audience-list { border-color: var(--public-info-border); }
.audience-list article { border-color: var(--public-info-border); }
.audience-list h3 { color: var(--public-info-text); }
.audience-list p { color: var(--public-info-muted); }

@media (max-width: 960px) {
  .practical-product-list > a { grid-template-columns: 105px minmax(0,1fr) auto; min-height: 112px; }
}
@media (max-width: 620px) {
  .practical-product-list > a {
    grid-template-columns: 1fr auto;
    gap: 8px 14px;
    min-height: 0;
    padding: 24px 0;
  }
  .practical-product-list > a > span { grid-column: 1 / -1; }
  .practical-product-list h3 { font-size: 29px; }
  .practical-product-list p { font-size: 14px; }
}

/* V015 — hierarchy and CTA micro-closeout. */
.detail-row-clean > span,
.workflow-clean > article > span,
.project-type-list > article > span,
.product-clean-list > article > span,
.principle-list-clean span {
  font-size: 14px;
  line-height: 1;
  letter-spacing: .055em;
  font-variant-numeric: tabular-nums;
}
.product-line > span { font-size: 12px; }

@media (max-width: 760px) {
  .detail-row-clean > span,
  .workflow-clean > article > span,
  .project-type-list > article > span,
  .product-clean-list > article > span,
  .principle-list-clean span { font-size: 13px; }
}

/* V016A security / accessibility */
.form-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.request-status.progress {
  border-color: #83a4c8;
  background: #eef5fb;
  color: #173a5f;
}
:root[data-theme="dark"] .request-status.progress {
  border-color: #365f8f;
  background: #122a45;
  color: #d4e8ff;
}


/* V031E — fixed public contact actions, restored from the legacy website as one canonical component. */
.contact-dock {
  position: fixed;
  right: max(18px, calc(env(safe-area-inset-right) + 12px));
  bottom: max(18px, calc(env(safe-area-inset-bottom) + 12px));
  z-index: 1250;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}
.contact-dock__action {
  --contact-size: 56px;
  position: relative;
  width: var(--contact-size);
  height: var(--contact-size);
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid transparent;
  border-radius: 50%;
  box-shadow: 0 14px 34px rgba(4, 13, 30, .22);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  text-decoration: none;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease, opacity .16s ease;
  pointer-events: auto;
}
.contact-dock__action svg { width: 23px; height: 23px; fill: currentColor; }
.contact-dock__action::before {
  content: attr(data-label);
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  transform: translate(6px, -50%);
  max-width: min(260px, calc(100vw - 100px));
  padding: 8px 11px;
  color: #f5f7fb;
  background: rgba(6, 20, 45, .94);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px;
  box-shadow: 0 10px 28px rgba(4, 13, 30, .18);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity .14s ease, transform .14s ease;
}
.contact-dock__action:hover,
.contact-dock__action:focus-visible { transform: translateY(-2px); box-shadow: 0 18px 40px rgba(4, 13, 30, .28); }
.contact-dock__action:hover::before,
.contact-dock__action:focus-visible::before { opacity: 1; transform: translate(0, -50%); }
.contact-dock__action:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 58%, transparent); outline-offset: 3px; }
.contact-dock__action--mail {
  color: #eef3fa;
  background: color-mix(in srgb, var(--jabo-navy-950) 92%, transparent);
  border-color: rgba(255,255,255,.18);
}
.contact-dock__action--whatsapp {
  color: var(--accent-text);
  background: var(--accent);
  border-color: color-mix(in srgb, var(--accent) 74%, #fff 26%);
}
.contact-dock__action--whatsapp.is-unconfigured {
  opacity: .46;
  cursor: not-allowed;
  filter: saturate(.45);
}
:root[data-theme="light"] .contact-dock__action--mail {
  color: var(--jabo-navy-950);
  background: rgba(255,255,255,.92);
  border-color: rgba(6,20,45,.18);
}
@media (max-width: 620px) {
  .contact-dock { right: max(12px, env(safe-area-inset-right)); bottom: max(12px, env(safe-area-inset-bottom)); gap: 9px; }
  .contact-dock__action { --contact-size: 50px; }
  .contact-dock__action svg { width: 21px; height: 21px; }
  .contact-dock__action::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .contact-dock__action,
  .contact-dock__action::before { transition: none; }
}

/* V049F — readability floor for public Website; preserve hierarchy, raise only small functional copy. */
@media (min-width:621px){
  .site-nav>a,.site-login,.site-button,.text-link{font-size:14px}
  .site-eyebrow{font-size:12px}
  .request-step-tab span{font-size:10px}
  .form-field>span{font-size:13px}
  .check-line{font-size:14px}
  .footer-nav-group strong{font-size:12px}.footer-nav-group a{font-size:14px}
  .service-row p,.practical-row p,.practical-product-list p,.product-line p{font-size:16px;line-height:1.55}
  .contact-dock__action::before{font-size:13px}
}
