/* ECE 1919687 — approved engineering / process panels. Desktop only.
 * Scoped to the homepage sections. Site-wide palette remains #2D3C91;
 * existing CMS text, choice URLs, forms, other pages and mobile are untouched.
 */
@media screen and (min-width:981px) {
  html:root[data-theme] body main > section#solutions,
  html:root[data-theme] body main > section#process {
    --ece87-panel:#071d43;
    --ece87-card:#0a234f;
    --ece87-sky:#82a9f5;
    --ece87-stroke:#489cf5;
    --ece87-orange:#ffa52e;
    --ece87-copy:#c8d8fb;
    position:relative!important;
    isolation:isolate;
    overflow:hidden!important;
    background:#2d3c91!important;
    color:#f7f9ff!important;
    padding-top:58px!important;
    padding-bottom:46px!important;
    border-bottom:1px solid rgba(119,178,251,.22)!important;
  }
  html:root[data-theme] body main > section#solutions::before,
  html:root[data-theme] body main > section#process::before {
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:-1!important;
    background:
      radial-gradient(circle at 95% 5%,transparent 0 100px,rgba(98,189,255,.21) 101px,transparent 103px,transparent 140px,rgba(98,189,255,.10) 141px,transparent 142px),
      repeating-linear-gradient(133deg,transparent 0 212px,rgba(130,175,250,.11) 213px,transparent 214px 362px),
      radial-gradient(ellipse at 7% 15%,rgba(40,103,222,.27),transparent 56%)!important;
    opacity:1!important;
    pointer-events:none!important;
  }
  html:root[data-theme] body main > section#solutions::after,
  html:root[data-theme] body main > section#process::after {
    content:""!important;
    position:absolute!important;
    right:0!important;top:0!important;
    width:160px!important;height:155px!important;
    pointer-events:none!important;
    background-image:radial-gradient(rgba(137,205,255,.30) 1px,transparent 1.2px)!important;
    background-size:14px 14px!important;
    opacity:.46!important;
    z-index:0!important;
  }
  html:root[data-theme] body main > section#solutions > .container,
  html:root[data-theme] body main > section#process > .container {
    position:relative!important;
    z-index:1!important;
    width:min(calc(100% - 62px),1380px)!important;
    max-width:1380px!important;
  }
  /* Same large-section numbering system in both blocks. */
  html:root[data-theme] body main > section#solutions .section-intro,
  html:root[data-theme] body main > section#process .section-intro.compact {
    display:grid!important;
    grid-template-columns:minmax(210px,.8fr) minmax(390px,1.45fr) minmax(230px,.88fr)!important;
    column-gap:clamp(22px,3vw,54px)!important;
    align-items:center!important;
    margin:0 0 33px!important;
  }
  html:root[data-theme] body main > section#solutions .section-intro > div:first-child,
  html:root[data-theme] body main > section#process .section-intro > div:first-child {
    align-self:center!important;
    display:flex!important;
    gap:18px!important;
    align-items:center!important;
    flex-wrap:nowrap!important;
  }
  html:root[data-theme] body main > section#solutions .ece-section-number191936,
  html:root[data-theme] body main > section#process .ece-section-number191936 {
    display:inline-block!important;
    margin:0!important;
    min-width:0!important;
    font-family:Manrope,Arial,sans-serif!important;
    font-size:clamp(66px,7.1vw,112px)!important;
    font-weight:850!important;
    line-height:1!important;
    letter-spacing:-.09em!important;
    font-variant-numeric:tabular-nums!important;
    color:#7eabfa!important;
    text-shadow:0 8px 26px rgba(3,23,68,.13)!important;
  }
  html:root[data-theme] body main > section#solutions .section-intro .eyebrow,
  html:root[data-theme] body main > section#process .section-intro .eyebrow {
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:flex-start!important;
    gap:12px!important;
    min-width:max-content!important;
    padding:0!important;
    margin:0!important;
    font-size:12px!important;
    line-height:1.2!important;
    font-weight:850!important;
    letter-spacing:.08em!important;
    color:#ffae3c!important;
    text-transform:uppercase!important;
  }
  html:root[data-theme] body main > section#solutions .section-intro .eyebrow::before,
  html:root[data-theme] body main > section#process .section-intro .eyebrow::before {
    content:""!important;
    display:block!important;
    width:38px!important;height:2px!important;
    background:rgba(116,183,255,.60)!important;
  }
  html:root[data-theme] body main > section#solutions .section-intro > h2,
  html:root[data-theme] body main > section#process .section-intro > h2 {
    margin:0!important;
    max-width:700px!important;
    font-family:Unbounded,Manrope,Arial,sans-serif!important;
    font-size:clamp(28px,2.95vw,46px)!important;
    line-height:1.11!important;
    letter-spacing:-.045em!important;
    font-weight:750!important;
    color:#fff!important;
  }
  html:root[data-theme] body main > section#solutions .section-intro > h2 em,
  html:root[data-theme] body main > section#process .section-intro > h2 em {
    color:#ffb14b!important;font-style:normal!important;
  }
  html:root[data-theme] body main > section#solutions .section-intro > p,
  html:root[data-theme] body main > section#process .section-intro > p.ece87-process-summary {
    margin:0!important;
    padding-left:22px!important;
    border-left:1px solid rgba(132,186,255,.65)!important;
    color:#d4e1ff!important;
    font:400 14px/1.65 Manrope,Arial,sans-serif!important;
    letter-spacing:0!important;
    grid-column:auto!important;
  }
  /* Engineering directions: four dark technical panels with icons and orange links. */
  html:root[data-theme] body main > section#solutions .solution-grid {
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:16px!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
    align-items:stretch!important;
    overflow:visible!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card:not([hidden]) {
    display:flex!important;
    flex-direction:column!important;
    position:relative!important;
    min-width:0!important;
    min-height:352px!important;
    grid-column:auto!important;grid-row:auto!important;
    gap:0!important;
    padding:20px 22px 18px!important;
    overflow:hidden!important;
    border:1px solid rgba(94,171,255,.78)!important;
    border-top:1px solid rgba(94,171,255,.78)!important;
    border-radius:13px!important;
    background:linear-gradient(155deg,rgba(9,38,85,.98),rgba(5,25,60,.98))!important;
    box-shadow:inset 0 1px rgba(154,204,255,.065),0 8px 26px rgba(3,18,51,.1)!important;
    isolation:isolate!important;
    color:#f7f9ff!important;
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card:not([hidden]):hover,
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card:not([hidden]):focus-within {
    transform:translateY(-3px)!important;
    border-color:#a2d5ff!important;
    box-shadow:0 12px 34px rgba(2,14,48,.27),0 0 0 1px rgba(106,178,255,.20)!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .card-top,
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .service-icon,
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-service-symbol,
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-card-photo {
    display:none!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card::before {
    content:""!important;
    display:block!important;
    position:absolute!important;
    width:69px!important;height:69px!important;
    left:21px!important;top:20px!important;right:auto!important;bottom:auto!important;
    border:1px solid rgba(86,170,255,.68)!important;
    border-radius:12px!important;
    background-color:rgba(12,62,126,.33)!important;
    background-repeat:no-repeat!important;
    background-position:center!important;
    background-size:44px 44px!important;
    opacity:1!important;
    transform:none!important;
    pointer-events:none!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card:nth-child(1)::before {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%2389c6ff' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M8 14 24 6l16 8v20l-16 8L8 34Z M8 14l16 9 16-9 M24 23v19 M15 18l9-5 9 5 M13 29l6 3 M29 32l6-3 M18 36l6 3 6-3'/%3E%3C/svg%3E")!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card:nth-child(2)::before {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%2389c6ff' stroke-width='1.8' stroke-linejoin='round'%3E%3Crect x='6' y='8' width='16' height='32' rx='2'/%3E%3Crect x='26' y='8' width='16' height='32' rx='2'/%3E%3Cpath d='M11 14h6 M11 20h6 M11 26h6 M31 14h6 M31 20h6 M31 26h6 M14 34h1 M34 34h1'/%3E%3C/svg%3E")!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card:nth-child(3)::before {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%2389c6ff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='10' width='36' height='25' rx='2'/%3E%3Cpath d='M18 42h12 M24 35v7 M11 28l8-7 6 5 10-11 M30 15h5v5'/%3E%3C/svg%3E")!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card:nth-child(4)::before {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%2389c6ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M28 8a12 12 0 0 0-15 15L5 31a5 5 0 0 0 7 7l9-9A12 12 0 0 0 36 14l-9 9-7-7z'/%3E%3C/svg%3E")!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > h3 {
    margin:0 0 5px 83px!important;
    min-height:58px!important;
    max-width:none!important;
    color:#fff!important;
    font:750 clamp(15px,1.35vw,19px)/1.34 Manrope,Arial,sans-serif!important;
    letter-spacing:-.02em!important;
    overflow-wrap:break-word!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > p {
    margin:0 0 16px 83px!important;
    min-height:90px!important;
    max-width:none!important;
    color:#d0dcf7!important;
    font:400 12.4px/1.52 Manrope,Arial,sans-serif!important;
    overflow-wrap:break-word!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > ul {display:none!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-solution-choices {
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:5px!important;
    padding:12px 0 9px!important;
    margin:0 0 8px!important;
    min-height:91px!important;
    background:none!important;
    border:0!important;
    border-top:1px solid rgba(113,166,236,.35)!important;
    color:#d7e5ff!important;
    position:static!important;
    font:400 12.4px/1.4 Manrope,Arial,sans-serif!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-solution-choices::before {display:none!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-solution-choices > a.kei-solution-choice {
    display:block!important;
    position:relative!important;
    min-height:0!important;
    margin:0!important;
    padding:0 0 0 16px!important;
    border:0!important;
    background:none!important;
    border-radius:0!important;
    box-shadow:none!important;
    color:#d7e5ff!important;
    font:400 12.4px/1.5 Manrope,Arial,sans-serif!important;
    text-align:left!important;
    text-transform:none!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-solution-choices > a.kei-solution-choice::before {
    content:"•"!important;
    display:block!important;
    position:absolute!important;
    left:0!important;top:0!important;
    color:#ffab35!important;
    font-size:17px!important;line-height:1.2!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-solution-choices > a.kei-solution-choice::after {display:none!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-solution-choices > a.kei-solution-choice:hover,
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-solution-choices > a.kei-solution-choice:focus-visible {color:#fff!important;text-decoration:underline!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-solution-tags {
    display:flex!important;
    gap:6px!important;
    flex-wrap:wrap!important;
    margin:0 0 10px!important;
    padding:0!important;
    min-height:25px!important;
    border:0!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-solution-tags > span {
    display:inline-flex!important;align-items:center!important;justify-content:center!important;
    min-height:23px!important;
    padding:2px 11px!important;
    border:1px solid #ffa83b!important;
    border-radius:999px!important;
    color:#fff!important;
    background:transparent!important;
    font:750 10px/1.15 Manrope,Arial,sans-serif!important;
    text-transform:uppercase!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > a.solution-primary-action[href] {
    display:flex!important;position:relative!important;
    inset:auto!important;
    width:100%!important;max-width:none!important;
    margin:auto 0 0!important;padding:10px 0 0!important;
    min-height:29px!important;
    background:none!important;border:0!important;
    border-top:1px solid rgba(114,172,245,.38)!important;
    border-radius:0!important;
    color:#ffb044!important;
    font:800 12.5px/1.35 Manrope,Arial,sans-serif!important;
    text-align:left!important;
    justify-content:space-between!important;
    align-items:center!important;
    gap:12px!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > a.solution-primary-action::after {
    content:"→"!important;
    display:inline-block!important;
    color:#ffad38!important;
    font:500 22px/1 Arial,sans-serif!important;
    transform:none!important;
  }
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > a.solution-primary-action:hover,
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > a.solution-primary-action:focus-visible {
    color:#ffd19a!important;text-decoration:none!important;
  }
  /* How we work: a connected four-stage roadmap. */
  html:root[data-theme] body main > section#process {
    padding-top:38px!important;
    padding-bottom:70px!important;
  }
  html:root[data-theme] body main > section#process .section-intro.compact {
    margin-bottom:28px!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track {
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:18px!important;
    position:relative!important;
    padding:0!important;
    margin:0 auto!important;
    background:none!important;
    border:0!important;
    isolation:isolate!important;
    max-width:1300px!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track > .kei-flow-line {
    display:block!important;
    position:absolute!important;
    z-index:-1!important;
    inset:19px 24px auto!important;
    height:2px!important;
    border:0!important;
    background:linear-gradient(90deg,transparent 0%,#2c9cff 9%,#71caff 50%,#2c9cff 91%,transparent 100%)!important;
    opacity:1!important;
    pointer-events:none!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track > .kei-flow-line i {display:none!important;}
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step {
    position:relative!important;
    display:flex!important;
    flex-direction:column!important;
    min-width:0!important;
    min-height:151px!important;
    margin:0!important;
    padding:17px 20px!important;
    border:1px solid rgba(89,173,255,.74)!important;
    border-radius:12px!important;
    background:linear-gradient(154deg,#092c63,#071d44)!important;
    color:#fff!important;
    overflow:hidden!important;
    box-shadow:0 10px 23px rgba(0,22,66,.13)!important;
    transition:transform .2s ease,border-color .2s ease!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step:hover {
    transform:translateY(-3px)!important;
    border-color:#b1d5ff!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step::before {
    content:""!important;
    display:block!important;
    position:absolute!important;
    width:145px!important;height:145px!important;
    right:-67px!important;bottom:-81px!important;
    top:auto!important;left:auto!important;
    border:1px solid rgba(71,174,255,.66)!important;
    border-radius:50%!important;
    background:repeating-linear-gradient(135deg,transparent 0 27px,rgba(92,192,255,.14) 28px,transparent 29px 48px)!important;
    transform:none!important;
    opacity:1!important;
    pointer-events:none!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step::after {display:none!important;}
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step .kei-step-top {
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    margin:0 0 4px!important;
    padding:0!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step .step-no {
    display:inline-block!important;
    position:relative!important;
    padding:0 0 8px!important;
    font:850 29px/1 Manrope,Arial,sans-serif!important;
    letter-spacing:-.05em!important;
    color:#82b4ff!important;
    text-shadow:none!important;
    font-variant-numeric:tabular-nums!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step .step-no::after {
    content:""!important;
    position:absolute!important;
    bottom:2px!important;left:0!important;
    display:block!important;
    width:25px!important;height:2px!important;
    background:#ffa83b!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step .kei-step-icon {
    width:39px!important;height:39px!important;
    display:block!important;
    flex:none!important;
    border:1px solid rgba(91,176,255,.77)!important;
    border-radius:50%!important;
    background-color:rgba(26,64,123,.65)!important;
    background-size:22px 22px!important;
    background-repeat:no-repeat!important;
    background-position:center!important;
    font-size:0!important;
    color:transparent!important;
    box-shadow:none!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step:nth-of-type(1) .kei-step-icon {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a6d1ff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='14' height='18' rx='2'/%3E%3Cpath d='M9 7h6 M9 11h6 M9 15h4'/%3E%3C/svg%3E")!important;}
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step:nth-of-type(2) .kei-step-icon {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a6d1ff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6 M10 21h4 M8 15a7 7 0 1 1 8 0c-1 1-1 3-2 3h-4c-1 0-1-2-2-3z'/%3E%3C/svg%3E")!important;}
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step:nth-of-type(3) .kei-step-icon {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a6d1ff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v3 M12 19v3 M4.9 4.9l2.1 2.1 M17 17l2.1 2.1 M2 12h3 M19 12h3 M4.9 19.1 7 17 M17 7l2.1-2.1'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3C/svg%3E")!important;}
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step:nth-of-type(4) .kei-step-icon {background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a6d1ff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20V11h3v9 M10 20V7h3v13 M16 20V4h3v16 M2 20h20'/%3E%3C/svg%3E")!important;}
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step .kei-step-body {
    margin:0!important;
    padding:0!important;
    position:relative!important;
    z-index:1!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step h3 {
    margin:0 0 3px!important;
    font:750 19px/1.35 Manrope,Arial,sans-serif!important;
    letter-spacing:-.02em!important;
    color:#fff!important;
  }
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step p {
    margin:0!important;
    max-width:270px!important;
    font:400 12.6px/1.52 Manrope,Arial,sans-serif!important;
    color:#c8d7f7!important;
  }
}
@media screen and (min-width:981px) and (max-width:1230px) {
  html:root[data-theme] body main > section#solutions .section-intro,
  html:root[data-theme] body main > section#process .section-intro.compact {
    grid-template-columns:minmax(180px,.7fr) minmax(350px,1.4fr) minmax(195px,.85fr)!important;
    gap:18px!important;
  }
  html:root[data-theme] body main > section#solutions .ece-section-number191936,
  html:root[data-theme] body main > section#process .ece-section-number191936 {font-size:76px!important;}
  html:root[data-theme] body main > section#solutions .solution-grid {gap:10px!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card:not([hidden]) {padding:16px!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card::before {left:15px!important;top:16px!important;width:51px!important;height:51px!important;background-size:33px 33px!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > h3 {margin-left:61px!important;font-size:15px!important;min-height:69px!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > p {margin-left:61px!important;font-size:11.5px!important;min-height:100px!important;}
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card > .kei-solution-choices > a.kei-solution-choice {font-size:11.5px!important;}
  html:root[data-theme] body main > section#process .kei-flow-track {gap:10px!important;}
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step {padding:14px!important;}
}
@media (prefers-reduced-motion:reduce) {
  html:root[data-theme] body main > section#solutions .solution-grid > article.solution-card,
  html:root[data-theme] body main > section#process .kei-flow-track > article.process-step {transition:none!important;}
}
