.jme .jme-hero { background: #f4f6f9; border-bottom: 1px solid var(--line); }
.jme .jme-hero-grid { align-items: center; display: grid; column-gap: 62px; grid-template-areas: "media intro" "media details"; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); min-height: 530px; padding-bottom: 48px; padding-top: 42px; }
.jme .jme-hero-media { align-items: center; align-self: stretch; background: #1d2a35; box-shadow: inset 0 0 0 1px #334350; display: flex; grid-area: media; justify-content: center; margin-bottom: 0; min-height: 470px; padding: 26px; }
.jme .jme-hero-media img { filter: drop-shadow(0 18px 16px rgba(0, 0, 0, .24)); max-height: 460px; object-fit: contain; width: 100%; }
.jme .jme-hero-intro { align-self: end; grid-area: intro; }
.jme .jme-hero-details { align-self: start; grid-area: details; }
.jme .jme-proof { display: flex; flex-wrap: wrap; gap: 10px 20px; list-style: none; margin: 24px 0 0; padding: 0; }
.jme .jme-proof li { color: #344155; font-size: 14px; font-weight: 600; padding-left: 18px; position: relative; }
.jme .jme-proof li::before { background: var(--green); border-radius: 50%; content: ""; height: 7px; left: 0; position: absolute; top: 9px; width: 7px; }

.jme .jme-scope { background: #fff; padding: 86px 0; }
.jme .jme-scope-grid { display: grid; gap: 76px; grid-template-columns: .82fr 1.18fr; }
.jme .jme-scope-columns { border-left: 1px solid var(--line); display: grid; gap: 36px; grid-template-columns: 1fr 1fr; padding-left: 42px; }
.jme .jme-scope-list h3 { color: var(--blue-dark); }
.jme .jme-scope-list-muted h3 { color: #6c4e18; }
.jme .jme-scope-list ul { list-style: none; margin: 0; padding: 0; }
.jme .jme-scope-list li { border-top: 1px solid var(--line); color: #425063; font-size: 15px; padding: 12px 0 12px 22px; position: relative; }
.jme .jme-scope-list li::before { color: var(--green); content: "+"; font-weight: 700; left: 0; position: absolute; }
.jme .jme-scope-list-muted li::before { color: var(--gold); content: "="; }

.jme .jme-routes { background: var(--soft); padding: 88px 0; }
.jme .jme-route-grid { display: grid; gap: 22px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 44px; }
.jme .jme-route-card { background: #fff; border: 1px solid var(--line); border-radius: 6px; display: grid; grid-template-columns: 190px minmax(0, 1fr); min-height: 250px; overflow: hidden; text-decoration: none; transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.jme .jme-route-card:hover, .jme .jme-route-card:focus { border-color: var(--blue); box-shadow: 0 12px 28px rgba(20, 47, 67, .1); transform: translateY(-2px); }
.jme .jme-route-card-wide { grid-column: 1 / -1; grid-template-columns: minmax(260px, .62fr) minmax(0, 1.38fr); }
.jme .jme-route-card img { align-self: stretch; background: #edf1f3; height: 100%; object-fit: cover; width: 100%; }
.jme .jme-route-card:nth-child(3) img { object-fit: contain; padding: 18px; }
.jme .jme-route-copy { align-self: center; padding: 26px 28px; }
.jme .jme-route-copy p { font-size: 15px; margin-bottom: 0; }
.jme .jme-route-copy .jme-route-number { color: var(--blue-dark); font-size: 12px; font-weight: 700; margin-bottom: 9px; }
.jme .jme-inline-link { color: var(--blue-dark); display: inline-flex; font-size: 16px; font-weight: 700; gap: 9px; margin-top: 30px; text-decoration: none; }
.jme .jme-inline-link:hover, .jme .jme-inline-link:focus { text-decoration: underline; text-underline-offset: 4px; }

.jme .jme-options { background: #fff; padding: 88px 0; }
.jme .jme-option-grid { border-bottom: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 44px 0 0; }
.jme .jme-option-grid div { border-top: 1px solid var(--line); display: grid; gap: 18px; grid-template-columns: minmax(150px, .7fr) minmax(0, 1.3fr); padding: 22px 26px 22px 0; }
.jme .jme-option-grid div:nth-child(even) { border-left: 1px solid var(--line); padding-left: 26px; }
.jme .jme-option-grid dt { color: var(--ink); font-size: 16px; font-weight: 700; }
.jme .jme-option-grid dd { color: var(--muted); font-size: 15px; margin: 0; }

.jme .jme-stack { background: #17222d; color: #fff; padding: 88px 0; }
.jme .jme-stack-grid { align-items: center; display: grid; gap: 72px; grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr); }
.jme .jme-stack-media { margin-bottom: 0; }
.jme .jme-stack-media img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.jme .jme-stack-media figcaption { color: #bac5cf; font-size: 13px; margin-top: 12px; }
.jme .jme-stack h2 { color: #fff; }
.jme .jme-stack p { color: #c6d0d9; }
.jme .jme-layer-list { list-style: none; margin: 30px 0 0; padding: 0; }
.jme .jme-layer-list li { border-top: 1px solid #374450; display: grid; gap: 18px; grid-template-columns: 34px 1fr; padding: 15px 0; }
.jme .jme-layer-list li > span { color: #7bc0eb; font-size: 13px; font-weight: 700; }
.jme .jme-layer-list strong { color: #fff; display: block; font-size: 16px; }
.jme .jme-layer-list p { font-size: 14px; margin: 3px 0 0; }
.jme .jme-note { border-left: 3px solid #7bc0eb; font-size: 14px; margin: 22px 0 0; padding-left: 16px; }

.jme .jme-process { background: #fff; padding: 88px 0; }
.jme .jme-process-grid { counter-reset: steps; display: grid; gap: 0; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; margin: 46px 0 0; padding: 0; }
.jme .jme-process-grid li { border-left: 1px solid var(--line); min-height: 230px; padding: 8px 22px; }
.jme .jme-process-grid li:first-child { border-left: 0; padding-left: 0; }
.jme .jme-process-grid span { color: var(--blue-dark); display: block; font-size: 13px; font-weight: 700; margin-bottom: 38px; }
.jme .jme-process-grid h3 { font-size: 18px; }
.jme .jme-process-grid p { font-size: 14px; margin-bottom: 0; }

.jme .jme-rfq { background: #eaf2f7; padding: 82px 0; }
.jme .jme-rfq-grid { display: grid; gap: 72px; grid-template-columns: .8fr 1.2fr; }
.jme .jme-rfq-list { column-count: 2; column-gap: 42px; list-style: none; margin: 0; padding: 0; }
.jme .jme-rfq-list li { break-inside: avoid; border-top: 1px solid #c7d5df; color: #37465a; font-size: 15px; padding: 13px 0 13px 22px; position: relative; }
.jme .jme-rfq-list li::before { color: var(--green); content: "\2713"; font-weight: 700; left: 0; position: absolute; }

.jme .jme-related { background: #fff; padding: 88px 0; }
.jme .jme-related-grid { border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 42px; }
.jme .jme-related-grid a { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); min-height: 210px; padding: 24px 20px; text-decoration: none; }
.jme .jme-related-grid a:first-child { border-left: 1px solid var(--line); }
.jme .jme-related-grid span { color: var(--blue-dark); display: block; font-size: 12px; font-weight: 700; margin-bottom: 28px; text-transform: uppercase; }
.jme .jme-related-grid strong { display: block; font-size: 17px; line-height: 1.35; }
.jme .jme-related-grid small { color: var(--muted); display: block; font-size: 13px; line-height: 1.5; margin-top: 10px; }
.jme .jme-related-grid a:hover, .jme .jme-related-grid a:focus { background: var(--soft); }

.jme .jme-faq { background: var(--soft); padding: 88px 0; }
.jme .jme-faq-grid { display: grid; gap: 82px; grid-template-columns: .7fr 1.3fr; }
.jme .jme-faq-list { border-top: 1px solid #cbd5dd; }
.jme .jme-faq-list details { border-bottom: 1px solid #cbd5dd; }
.jme .jme-faq-list summary { color: var(--ink); cursor: pointer; font-size: 17px; font-weight: 700; list-style: none; padding: 19px 40px 19px 0; position: relative; }
.jme .jme-faq-list summary::-webkit-details-marker { display: none; }
.jme .jme-faq-list summary::after { color: var(--blue-dark); content: "+"; font-size: 24px; position: absolute; right: 4px; top: 13px; }
.jme .jme-faq-list details[open] summary::after { content: "\2212"; }
.jme .jme-faq-list details p { font-size: 15px; padding: 0 40px 18px 0; }

.jme .jme-final { background: #0879bd; padding: 70px 0; }
.jme .jme-final-inner { align-items: center; display: grid; gap: 70px; grid-template-columns: minmax(0, 1fr) auto; }
.jme .jme-final h2, .jme .jme-final .jme-kicker { color: #fff; }
.jme .jme-final p { color: #e4f2fb; margin-bottom: 0; max-width: 760px; }
.jme .jme-final .jme-actions { justify-content: flex-end; margin-top: 0; }
.jme .jme-text-link { color: #fff; font-weight: 700; text-underline-offset: 4px; }
