/* Approved engarta-professional-v1-20261106. All rules are page-scoped. */
.ej-engineering {
  --ej-blue:#1857b6; --ej-ink:#142d43; --ej-muted:#4c6173; --ej-pale:#f1f5fa; --ej-line:#cbd7e2; --ej-gutter:64px;
  --dp-ink:var(--ej-ink); --dp-muted:var(--ej-muted); --dp-brand:var(--ej-blue);
  width:100%; max-width:100%; min-width:0; background:#fff; color:var(--ej-ink); font-size:17px; line-height:1.6;
}
.ej-engineering .ej-wrap, .ej-engineering .dp-partner__wrap { width:min(1152px,calc(100% - var(--ej-gutter)*2)); min-width:0; margin-inline:auto; }
.ej-engineering :is(h1,h2,h3,p,figure,dl,dd) { margin:0; }
.ej-engineering :is(h1,h2,h3) { color:var(--ej-ink); font-weight:700; line-height:1.12; letter-spacing:-.035em; text-wrap:balance; }
.ej-engineering h2 { font-size:44px; }
.ej-engineering h3 { font-size:23px; }
.ej-engineering a { color:var(--ej-blue); }
.ej-engineering :is(a,button,input,textarea):focus-visible { outline:2px solid var(--ej-blue); outline-offset:4px; }
.ej-engineering [id] { scroll-margin-top:140px; }
.ej-engineering .ej-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; clip-path:inset(50%); overflow:hidden; white-space:nowrap; }
.ej-engineering .ej-scheme-defs { position:absolute; width:0; height:0; overflow:hidden; pointer-events:none; }
.ej-engineering .ej-breadcrumbs { display:flex; flex-wrap:wrap; gap:10px; padding-block:16px; font-size:12px; color:var(--ej-muted); }
.ej-engineering .ej-breadcrumbs a { color:var(--ej-muted); }
.ej-engineering .ej-eyebrow { color:var(--ej-blue); font-size:12px; font-weight:700; line-height:1.5; text-transform:uppercase; letter-spacing:.045em; }
.ej-engineering .ej-hero__scene { position:relative; min-height:700px; background:#273b4a; isolation:isolate; }
.ej-engineering .ej-hero__scene::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(15,35,50,.85),rgba(15,35,50,.48) 58%,rgba(15,35,50,.12)); }
.ej-engineering .ej-hero__image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.ej-engineering .ej-hero__copy { display:flex; flex-direction:column; align-items:flex-start; min-height:700px; padding-block:48px 32px; color:#fff; }
.ej-engineering .ej-hero .ej-eyebrow { color:#fff; font-size:13px; }
.ej-engineering .ej-hero h1 { margin-top:80px; max-width:760px; font-size:66px; line-height:1.1; color:#fff; }
.ej-engineering .ej-hero__lead { max-width:610px; margin-top:28px; color:#fff; font-size:21px; line-height:1.5; }
.ej-engineering .ej-cta { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; min-height:58px; min-width:280px; max-width:100%; padding:16px 22px; margin-top:28px; border:1px solid #2b73d3; background:var(--ej-blue); color:#fff; font-size:16px; font-weight:700; text-decoration:none; border-radius:3px; }
.ej-engineering .ej-cta:hover { background:#124794; }
.ej-engineering .ej-hero a:focus-visible { outline-color:#fff; }
.ej-engineering .ej-hero__scope { margin-top:auto; padding-top:44px; color:#fff; font-size:15px; }
.ej-engineering .ej-hero__caption { padding-top:14px; color:var(--ej-muted); font-size:12px; }
.ej-engineering .ej-intro { display:grid; grid-template-columns:1fr 1fr; gap:72px; padding-block:100px 80px; border-bottom:1px solid var(--ej-line); }
.ej-engineering .ej-intro h2 { font-size:48px; max-width:17ch; }
.ej-engineering .ej-intro p { font-size:19px; line-height:1.6; }
.ej-engineering .ej-system-index { padding-block:72px 60px; }
.ej-engineering .ej-system-index h2 { font-size:46px; max-width:22ch; margin-top:30px; }
.ej-engineering .ej-system-index nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:40px; }
.ej-engineering .ej-system-index nav a { display:flex; gap:18px; align-items:center; min-height:52px; padding-bottom:18px; border-bottom:1px solid var(--ej-line); color:var(--ej-ink); font-size:16px; font-weight:700; text-decoration:none; }
.ej-engineering .ej-system-index nav a:hover { color:var(--ej-blue); border-color:var(--ej-blue); }
.ej-engineering .ej-system-index nav span { color:var(--ej-blue); font-size:12px; }
.ej-engineering .ej-system-section { border-top:1px solid var(--ej-line); padding-block:58px 86px; }
.ej-engineering .ej-system-section:first-of-type { border-color:var(--ej-blue); }
.ej-engineering .ej-system-heading { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:start; margin-bottom:64px; }
.ej-engineering .ej-system-heading h2 { margin-top:24px; max-width:20ch; }
.ej-engineering .ej-system-subtitle { margin-top:18px; font-size:16px; color:var(--ej-muted); }
.ej-engineering .ej-system-copy dt { margin-bottom:10px; color:var(--ej-blue); font-size:11px; line-height:1.5; font-weight:700; text-transform:uppercase; letter-spacing:.045em; }
.ej-engineering .ej-system-copy dd { font-size:17px; line-height:27px; }
.ej-engineering .ej-system-copy > div + div { margin-top:28px; }
.ej-engineering .ej-carousel, .ej-engineering .ej-gallery, .ej-engineering .ej-carousel__track, .ej-engineering .ej-carousel__slide { min-width:0; max-width:100%; }
.ej-engineering .ej-gallery { position:relative; }
.ej-engineering .ej-carousel__track { width:100%; list-style:none; margin:0; padding:0; }
.ej-engineering .ej-carousel__slide + .ej-carousel__slide { margin-top:60px; }
.ej-engineering .ej-carousel[data-ej-ready] .ej-carousel__slide { margin:0; }
.ej-engineering .ej-carousel[data-ej-ready] .ej-carousel__track { touch-action:pan-y pinch-zoom; }
.ej-engineering .ej-gallery__stage { display:flex; align-items:center; justify-content:center; width:100%; height:530px; background:var(--ej-pale); }
.ej-engineering .ej-gallery__image-link { display:block; width:100%; height:100%; min-width:0; }
.ej-engineering .ej-gallery__image { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
.ej-engineering .ej-gallery__stage--cover .ej-gallery__image { object-fit:cover; }
.ej-engineering .ej-gallery__stage--mixed { display:grid; grid-template-columns:minmax(0,.58fr) minmax(0,1fr); height:560px; }
.ej-engineering .ej-gallery__mixed-context { display:flex; flex-direction:column; align-self:stretch; padding:58px 44px; min-width:0; }
.ej-engineering .ej-gallery__mixed-context strong { font-size:38px; line-height:1.15; letter-spacing:-.03em; max-width:16ch; }
.ej-engineering .ej-gallery__mixed-context p { margin-top:24px; max-width:38ch; color:var(--ej-muted); font-size:18px; }
.ej-engineering .ej-gallery__mixed-context span { margin-top:auto; color:var(--ej-blue); font-size:12px; font-weight:700; }
.ej-engineering .ej-gallery__full:not([hidden]) { position:absolute; top:16px; right:16px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--ej-line); border-radius:50%; background:#fff; color:var(--ej-ink); cursor:pointer; }
.ej-engineering .ej-gallery figcaption { margin-top:24px; color:var(--ej-muted); }
.ej-engineering .ej-gallery__kind { display:block; font-size:10px; line-height:1.5; text-transform:uppercase; letter-spacing:.04em; color:var(--ej-blue); font-weight:700; }
.ej-engineering .ej-gallery__caption { margin-top:8px; font-size:16px; line-height:1.6; }
.ej-engineering .ej-gallery__context { margin-top:10px; font-size:14px; line-height:1.6; }
.ej-engineering .ej-gallery__note { margin-top:10px; font-size:13px; line-height:1.6; }
.ej-engineering .ej-carousel__controls:not([hidden]) { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:22px; }
.ej-engineering .ej-carousel__controls > span { font-size:14px; font-variant-numeric:tabular-nums; }
.ej-engineering .ej-carousel__controls > div { display:flex; gap:10px; }
.ej-engineering .ej-carousel__controls button { display:inline-grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--ej-blue); border-radius:50%; color:var(--ej-blue); background:#fff; cursor:pointer; }
.ej-engineering .ej-carousel__controls button[hidden] { display:none; }
.ej-engineering .ej-carousel__controls button:disabled { color:#9dafc0; border-color:#d9e2ea; cursor:default; }
.ej-engineering .ej-arrow { display:block; width:7px; height:7px; border-right:1.5px solid currentColor; border-top:1.5px solid currentColor; transform:rotate(45deg); }
.ej-engineering .ej-arrow--left { transform:rotate(-135deg); }
.ej-engineering .ej-carousel__thumbnails:not([hidden]) { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; width:min(580px,100%); margin-top:24px; }
.ej-engineering .ej-carousel__thumbnails button { min-width:0; padding:0; border:0; background:transparent; color:var(--ej-ink); cursor:pointer; text-align:left; font:inherit; }
.ej-engineering .ej-thumbnail__art { display:block; border:2px solid transparent; height:88px; background:var(--ej-pale); }
.ej-engineering [data-ej-thumb][aria-current="true"] .ej-thumbnail__art { border-color:var(--ej-blue); }
.ej-engineering .ej-thumbnail__art :is(img,svg) { display:block; width:100%; height:100%; object-fit:contain; }
.ej-engineering .ej-thumbnail__label, .ej-engineering .ej-thumbnail__kind { display:block; line-height:1.5; overflow-wrap:anywhere; }
.ej-engineering .ej-thumbnail__label { padding-top:6px; font-size:10px; }
.ej-engineering .ej-thumbnail__kind { font-size:9px; color:var(--ej-muted); }
.ej-engineering .ej-scheme-art { width:100%; min-width:0; padding:12px; }
.ej-engineering .ej-scheme-art__vector { display:block; width:100%; max-height:506px; height:auto; }
.ej-engineering .ej-scheme-art__panels { display:none; }
.ej-engineering .ej-gallery-dialog { width:min(1184px,calc(100% - 32px)); padding:24px; background:#fff; color:var(--ej-ink); }
.ej-engineering .ej-gallery-dialog img { width:100%; height:auto; max-height:72dvh; object-fit:contain; }
.ej-engineering .ej-gallery-dialog figcaption { white-space:pre-line; font-size:16px; line-height:1.6; color:var(--ej-muted); }
.ej-engineering .ej-gallery-dialog button { min-width:44px; min-height:44px; margin-bottom:16px; border:1px solid var(--ej-line); border-radius:3px; background:#fff; color:var(--ej-ink); font:inherit; cursor:pointer; }
.ej-engineering .ej-system-note { margin-bottom:64px; font-size:15px; color:var(--ej-muted); }
.ej-engineering .ej-coordination-section { margin-bottom:90px; }
.ej-engineering .ej-coordination { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:44px; padding:40px 32px; background:var(--ej-pale); }
.ej-engineering .ej-coordination h2 { max-width:19ch; margin-bottom:30px; }
.ej-engineering .ej-coordination p { max-width:72ch; font-size:18px; line-height:1.6; }
.ej-engineering .ej-coordination-points { list-style:none; margin:30px 0 0; padding:0; counter-reset:ej-point; }
.ej-engineering .ej-coordination-points li { position:relative; padding:12px 0 12px 38px; font-weight:700; counter-increment:ej-point; }
.ej-engineering .ej-coordination-points li::before { position:absolute; left:0; top:16px; content:'0' counter(ej-point); font-size:12px; color:var(--ej-blue); }
.ej-engineering .ej-supporting { align-self:end; min-width:0; }
.ej-engineering .ej-supporting img { display:block; width:100%; height:320px; object-fit:cover; }
.ej-engineering .ej-supporting figcaption { margin-top:10px; font-size:12px; color:var(--ej-muted); }
.ej-engineering .ej-textlink { display:inline-flex; align-items:center; min-height:44px; padding-block:10px; font-size:14px; line-height:1.5; font-weight:700; }
.ej-engineering .ej-supporting .ej-textlink { font-size:12px; }
.ej-engineering .ej-process { margin-bottom:90px; }
.ej-engineering .ej-process h2 { max-width:20ch; margin-bottom:40px; }
.ej-engineering .ej-steps { list-style:none; margin:0; padding:0; }
.ej-engineering .ej-steps li { display:grid; grid-template-columns:48px minmax(0,.9fr) minmax(0,1.2fr); gap:32px; padding-block:28px; border-top:1px solid var(--ej-line); }
.ej-engineering .ej-steps li > span { color:var(--ej-blue); font-size:12px; padding-top:4px; }
.ej-engineering .ej-steps h3 { font-size:22px; }
.ej-engineering .ej-steps p { font-size:17px; line-height:27px; color:var(--ej-muted); }
.ej-engineering .ej-service-links { display:flex; flex-wrap:wrap; gap:12px 28px; border-top:1px solid var(--ej-line); padding-top:18px; }
.ej-engineering .ej-service-links a { display:inline-flex; align-items:center; min-height:44px; font-size:13px; }
.ej-engineering .ej-cases { padding-bottom:80px; }
.ej-engineering .ej-cases__heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:36px; }
.ej-engineering .ej-cases__heading h2 { margin-top:24px; }
.ej-engineering .ej-section-heading { display:block; max-width:720px; }
.ej-engineering .ej-section-number { display:none; }
.ej-engineering .ej-cases__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.ej-engineering .ej-case { min-width:0; }
.ej-engineering .ej-case figure img { display:block; width:100%; height:330px; object-fit:cover; object-position:center 38%; border-radius:0; }
.ej-engineering .ej-case figcaption { font-size:12px; line-height:1.5; color:var(--ej-muted); margin-top:10px; }
.ej-engineering .ej-case__body h3 { margin-block:18px; font-size:24px; }
.ej-engineering .ej-case__body dt { margin-top:12px; font-size:12px; color:var(--ej-muted); }
.ej-engineering .ej-case__body dd, .ej-engineering .ej-case__role { font-size:14px; line-height:1.6; }
.ej-engineering .ej-case__role { margin-top:16px; color:var(--ej-muted); }
.ej-engineering .ej-all-projects { display:flex; align-items:center; justify-content:space-between; min-height:56px; padding-block:16px; margin-top:36px; border-top:1px solid var(--ej-line); font-size:15px; font-weight:700; text-decoration:none; }
.ej-engineering .dp-partner__contact { background:var(--ej-ink); color:#fff; border:0; padding-block:80px; }
.ej-engineering .dp-partner__contact-grid { grid-template-columns:1fr 1fr; gap:72px; }
.ej-engineering .dp-partner__contact h2 { font-size:46px; color:#fff; max-width:15ch; }
.ej-engineering .dp-partner__contact p { color:#e0eaf4; }
.ej-engineering .dp-partner__contact .dp-partner__eyebrow { color:#c4d9f5; }
.ej-engineering .dp-partner__contact .question-form { padding:0; border:0; border-radius:0; background:transparent; }
.ej-engineering .dp-partner__contact .form-group .label-name, .ej-engineering .dp-partner__contact .form-group .label-lg { color:#e0eaf4; }
.ej-engineering .dp-partner__contact .form-group .form-control { background:#29485f; color:#fff; border-color:#637f94; border-radius:2px; }
.ej-engineering .dp-partner__contact .form-control::placeholder { color:#bdcedb; }
.ej-engineering .dp-partner__contact :is(.dp-partner__help,#feedback-plan-url-help) { color:#bed0df; }
.ej-engineering .dp-partner__contact a, .ej-engineering .dp-partner__contact .dp-partner__remove-plan { color:#c4dbff; }
.ej-engineering .dp-partner__contact .error-text { color:#ffc2cc; }
.ej-engineering .dp-partner__contact :is(a,button,input,textarea):focus-visible { outline-color:#b8d3ff; }
.ej-engineering .dp-partner__contact .question-form button[type=submit] { min-height:56px; border-radius:2px; }
@media(max-width:1000px) {
 .ej-engineering { --ej-gutter:32px; }
 .ej-engineering .ej-hero__scene, .ej-engineering .ej-hero__copy { min-height:650px; }
 .ej-engineering .ej-hero h1 { font-size:52px; max-width:560px; }
 .ej-engineering .ej-intro { grid-template-columns:1fr; gap:36px; padding-block:80px 64px; }
 .ej-engineering .ej-intro h2 { font-size:42px; max-width:23ch; }
 .ej-engineering .ej-system-heading { grid-template-columns:1fr; gap:38px; margin-bottom:48px; }
 .ej-engineering .ej-system-heading h2 { max-width:24ch; }
 .ej-engineering .ej-gallery__stage { height:440px; }
 .ej-engineering .ej-gallery__mixed-context { padding:38px 28px; }
 .ej-engineering .ej-gallery__mixed-context strong { font-size:30px; }
 .ej-engineering .ej-gallery__mixed-context p { font-size:16px; }
 .ej-engineering .ej-carousel__slide[data-media-kind=scheme] .ej-gallery__stage { height:auto; }
 .ej-engineering .ej-scheme-art { padding:28px; }
 .ej-engineering .ej-scheme-art__vector { display:none; }
 .ej-engineering .ej-scheme-art__panels { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:16px; }
 .ej-engineering .ej-scheme-art__panels > p { grid-column:1 / -1; font-size:12px; line-height:1.6; }
 .ej-engineering .ej-scheme-art__panels > div { padding:24px 18px; background:#fff; border:1px solid var(--ej-line); }
 .ej-engineering .ej-scheme-art__panels strong { display:block; font-size:15px; line-height:1.4; }
 .ej-engineering .ej-scheme-art__panels div p { margin-top:14px; font-size:13px; line-height:1.6; color:var(--ej-muted); }
 .ej-engineering .ej-coordination { grid-template-columns:1fr; gap:24px; }
 .ej-engineering .ej-supporting figure { display:none; }
 .ej-engineering .ej-steps li { grid-template-columns:40px minmax(0,1fr); gap:18px; }
 .ej-engineering .ej-steps li p { grid-column:2; }
 .ej-engineering .ej-cases__grid { grid-template-columns:1fr; gap:36px; }
 .ej-engineering .ej-case { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1fr); gap:24px; }
 .ej-engineering .ej-case__body h3 { margin-top:0; }
 .ej-engineering .dp-partner__contact-grid { grid-template-columns:1fr; gap:36px; }
 .ej-engineering .dp-partner__contact h2 { max-width:24ch; }
}
@media(max-width:600px) {
 .ej-engineering { --ej-gutter:24px; font-size:16px; line-height:25px; }
 .ej-engineering h2 { font-size:32px; }
 .ej-engineering .ej-hero__scene, .ej-engineering .ej-hero__copy { min-height:640px; }
 .ej-engineering .ej-hero h1 { font-size:35px; max-width:290px; margin-top:100px; }
 .ej-engineering .ej-hero .ej-eyebrow { font-size:11px; }
 .ej-engineering .ej-hero__copy { padding-top:32px; }
 .ej-engineering .ej-hero__lead { font-size:17px; line-height:1.5; max-width:32ch; }
 .ej-engineering .ej-cta { min-width:0; width:100%; min-height:56px; }
 .ej-engineering .ej-hero__scope { font-size:13px; }
 .ej-engineering .ej-hero__caption { font-size:11px; }
 .ej-engineering .ej-intro { padding-block:64px 56px; gap:30px; }
 .ej-engineering .ej-intro h2 { font-size:34px; max-width:16ch; }
 .ej-engineering .ej-intro p { font-size:16px; line-height:25px; }
 .ej-engineering .ej-system-index { padding-block:56px 44px; }
 .ej-engineering .ej-system-index h2 { font-size:34px; max-width:18ch; margin-top:24px; }
 .ej-engineering .ej-system-index nav { grid-template-columns:1fr; gap:0; margin-top:24px; }
 .ej-engineering .ej-system-index nav a { min-height:48px; padding-block:12px; font-size:15px; }
 .ej-engineering .ej-system-section { padding-block:44px 56px; }
 .ej-engineering .ej-system-heading h2 { font-size:32px; margin-top:20px; }
 .ej-engineering .ej-system-copy dd { font-size:16px; line-height:25px; }
 .ej-engineering .ej-system-subtitle { font-size:14px; }
 .ej-engineering .ej-gallery__stage { height:300px; }
 .ej-engineering .ej-gallery__stage--cover { height:220px; }
 .ej-engineering .ej-gallery__stage--mixed { display:block; height:420px; }
 .ej-engineering .ej-gallery__mixed-context { display:none; }
 .ej-engineering .ej-carousel__slide[data-media-kind=scheme] .ej-gallery__stage { height:auto; }
 .ej-engineering .ej-scheme-art { padding:24px; }
 .ej-engineering .ej-scheme-art__vector { display:none; }
 .ej-engineering .ej-scheme-art__panels { display:block; }
 .ej-engineering .ej-scheme-art__panels > div { margin-top:16px; padding:20px 16px; background:#fff; border:1px solid var(--ej-line); }
 .ej-engineering .ej-scheme-art__panels strong { display:block; font-size:15px; line-height:1.4; }
 .ej-engineering .ej-scheme-art__panels p { margin-top:10px; font-size:12px; line-height:1.6; color:var(--ej-muted); }
 .ej-engineering .ej-gallery__full:not([hidden]) { top:8px; right:8px; }
 .ej-engineering .ej-gallery figcaption { margin-top:20px; }
 .ej-engineering .ej-gallery__caption { font-size:15px; }
 .ej-engineering .ej-gallery__context { font-size:13px; }
 .ej-engineering .ej-carousel__thumbnails:not([hidden]) { gap:8px; }
 .ej-engineering .ej-thumbnail__art { height:54px; }
 .ej-engineering .ej-thumbnail__label { font-size:9px; }
 .ej-engineering .ej-thumbnail__kind { font-size:9px; }
 .ej-engineering .ej-system-note { font-size:13px; margin-bottom:48px; }
 .ej-engineering .ej-coordination { padding:28px 22px; }
 .ej-engineering .ej-coordination h2 { font-size:32px; }
 .ej-engineering .ej-coordination p { font-size:16px; line-height:25px; }
 .ej-engineering .ej-coordination-points li { font-size:16px; padding-left:32px; }
 .ej-engineering .ej-coordination-section, .ej-engineering .ej-process { margin-bottom:64px; }
 .ej-engineering .ej-steps h3 { font-size:20px; }
 .ej-engineering .ej-steps p { font-size:16px; line-height:25px; }
 .ej-engineering .ej-steps li { grid-template-columns:28px minmax(0,1fr); gap:14px; }
 .ej-engineering .ej-cases__heading { display:block; }
 .ej-engineering .ej-cases__grid { grid-template-columns:1fr; }
 .ej-engineering .ej-case { display:block; }
 .ej-engineering .ej-case__body h3 { margin-top:18px; }
 .ej-engineering .ej-case figure img { height:350px; }
 .ej-engineering .ej-cases { padding-bottom:56px; }
 .ej-engineering .dp-partner__contact { padding-block:56px; }
 .ej-engineering .dp-partner__contact h2 { font-size:34px; }
}
