/* Eclipse MDI Engineering Support — Design #5. Scoped to avoid modifying the theme. */
.ems5, .ems5 * { box-sizing: border-box; }
.ems5 {
  --ems5-navy: #141331;
  --ems5-orange: #ff711d;
  --ems5-cyan: #05a9e4;
  --ems5-teal: #08d4ad;
  position: relative;
  isolation: isolate;
  width: 100%;
  overflow: hidden;
  padding: 64px 20px 62px;
  color: #151733;
  font-family: inherit;
  background:
    radial-gradient(ellipse 48% 57% at 25% 23%, rgba(255,255,255,.97), rgba(250,245,254,.78) 62%, transparent 100%),
    linear-gradient(117deg, #e8e5f5 0%, #eee9f8 34%, #a5a1c6 62%, #24265c 100%);
  border-bottom: 2px solid var(--ems5-orange);
}
.ems5--full-width { position: relative; left: 50%; width: 100vw; max-width: 100vw; margin-left: -50vw !important; }
.ems5::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  inset: 56% 0 0;
  background: linear-gradient(180deg, rgba(24,25,76,0) 0%, #282c65 52%, #171737 100%);
}
.ems5__art {
  position: absolute;
  top: 0;
  right: 0;
  width: 38%;
  height: 72%;
  z-index: -1;
  background-size: cover;
  background-position: center right;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.8) 23%, black 43%);
  mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.8) 23%, black 43%);
}
.ems5__curve {
  position: absolute;
  z-index: -1;
  width: 140%;
  height: 590px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 50%;
  pointer-events: none;
  left: -25%;
  top: -365px;
  transform: rotate(-9deg);
  box-shadow: 0 1px 0 rgba(255,255,255,.18);
}
.ems5__curve--two { top: -332px; left: -33%; opacity: .5; width: 145%; }
.ems5__container { position: relative; z-index: 2; width: min(100%, 1320px); margin: 0 auto; }
.ems5__top { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .8fr); align-items: center; gap: clamp(25px, 4vw, 65px); min-height: 270px; padding: 0 37% 39px 0; }
/* The content sits over the soft left side of the image, while the dish scene stays visible right. */
.ems5__top { grid-template-columns: minmax(360px, 1fr) minmax(215px, .64fr); gap: 38px; padding-right: 19%; }
.ems5__intro { min-width: 0; }
.ems5__eyebrow, .ems5__updates-eyebrow { margin: 0 0 21px !important; font-size: 13px !important; letter-spacing: .23em; font-weight: 800; line-height: 1.35; text-transform: uppercase; }
.ems5__eyebrow { display: flex; align-items: center; gap: 16px; color: #151733; }
.ems5__eyebrow span { display: inline-block; width: 64px; height: 3px; background: var(--ems5-orange); flex-shrink: 0; border-radius: 5px; }
.ems5 h2.ems5__heading { margin: 0 0 17px !important; padding: 0 !important; font-weight: 740 !important; letter-spacing: -.045em; font-size: clamp(32px, 3.15vw, 52px) !important; line-height: 1.1 !important; color: #14152f !important; font-style: italic; text-transform: none !important; }
.ems5__heading strong { color: var(--ems5-orange); font-weight: 800; white-space: nowrap; }
.ems5__description { max-width: 575px; font-size: clamp(15px, 1.23vw, 18px) !important; line-height: 1.53 !important; margin: 0 !important; color: #212441; }
.ems5__actions { display: flex; flex-direction: column; gap: 12px; padding: 8px 0 8px 32px; border-left: 2px solid var(--ems5-orange); }
.ems5 a.ems5__text-link { display: flex; align-items: center; gap: 12px; color: #161935 !important; text-decoration: none !important; font-size: 17px !important; font-weight: 700; line-height: 1.3; width: fit-content; transition: color .2s ease; }
.ems5 a.ems5__text-link:hover, .ems5 a.ems5__text-link:focus-visible { color: #cc5212 !important; text-decoration: underline !important; }
.ems5__icon--file, .ems5__icon--person { color: var(--ems5-orange); flex-shrink: 0; }
.ems5 a.ems5__contact { display: inline-flex; align-items: center; justify-content: center; gap: 12px; width: fit-content; max-width: 100%; margin-top: 7px; padding: 12px 18px; min-height: 45px; border: 1px solid rgba(255,255,255,.3); border-radius: 10px; background: linear-gradient(100deg, #008de4, #02d5af); box-shadow: 0 9px 20px rgba(0,127,183,.2); font-size: 16px; line-height: 1.3; font-weight: 750; color: #fff !important; text-decoration: none !important; white-space: nowrap; transition: transform .18s ease, box-shadow .18s ease; }
.ems5 a.ems5__contact:hover, .ems5 a.ems5__contact:focus-visible { transform: translateY(-2px); box-shadow: 0 14px 25px rgba(0,127,183,.26); }
.ems5__contact .ems5__icon { width: 18px; height: 18px; }
.ems5 a:focus-visible { outline: 3px solid #ff8d38; outline-offset: 4px; }
.ems5__updates { display: grid; grid-template-columns: 104px minmax(0, 1fr) minmax(320px, .99fr); align-items: center; gap: 24px; margin: 17px 0 0; padding: 22px 35px; min-height: 164px; border: 2px solid #ff8544; border-radius: 23px; color: white; background: linear-gradient(120deg, rgba(43,32,80,.97), rgba(31,33,83,.97) 58%, rgba(23,22,66,.98)); box-shadow: 0 0 0 3px rgba(255,130,60,.08), 0 10px 35px rgba(20,15,43,.25), inset 0 0 32px rgba(238,84,128,.11); }
.ems5__newsletter-icon { display: flex; justify-content: center; align-items: center; width: 100%; min-height: 97px; border-right: 2px solid var(--ems5-orange); color: #ff891c; }
.ems5__newsletter-icon svg { width: 56px; height: 56px; stroke-width: 1.5; }
.ems5__newsletter-copy { min-width: 0; padding-right: 12px; }
.ems5__updates-eyebrow { color: #ff8a27 !important; letter-spacing: .16em !important; font-size: 12px !important; margin-bottom: 4px !important; }
.ems5__newsletter-copy h3 { color: #fff !important; margin: 0 0 7px !important; padding: 0 !important; font-weight: 750 !important; font-size: clamp(25px, 2.2vw, 34px) !important; line-height: 1.15 !important; letter-spacing: -.025em; text-transform: none !important; }
.ems5__newsletter-copy p:not(.ems5__updates-eyebrow) { color: #f1f1fa !important; margin: 0 !important; font-size: 14px !important; line-height: 1.4 !important; }
.ems5__form-area { padding-left: 30px; min-width: 0; border-left: 1px solid rgba(255,255,255,.55); }
.ems5__form-area, .ems5__form-area p, .ems5__form-area label, .ems5__form-area .nf-form-fields-required { color: #fff !important; }
.ems5__form-area .nf-form-content { padding: 0 !important; margin: 0 !important; max-width: none !important; }
/* Ninja Forms: align an email field and its submit button as in design #5. */
.ems5__form-area .nf-form-content nf-fields-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  column-gap: 15px;
}
.ems5__form-area .nf-form-content nf-fields-wrap > nf-field { min-width: 0; }
.ems5__form-area .nf-form-content nf-fields-wrap > nf-field:first-child { grid-column: 1; }
.ems5__form-area .nf-form-content nf-fields-wrap > nf-field:has(.submit-container) { grid-column: 2; align-self: end; }
.ems5__form-area .nf-form-fields-required { font-size: 12px !important; margin: 0 0 5px !important; }
.ems5__form-area .nf-field-label { margin-bottom: 5px !important; }
.ems5__form-area .nf-field-label label, .ems5__form-area label { font-size: 13px !important; line-height: 1.3; font-weight: 650 !important; }
.ems5__form-area .nf-field-element input[type="email"],
.ems5__form-area .nf-field-element input[type="text"],
.ems5__form-area .gform_wrapper input[type="email"],
.ems5__form-area .wpforms-field input[type="email"],
.ems5__form-area input[type="email"] {
  display: block; background: #f3f4ff !important; color: #15152f !important; border: 1px solid #c7c6df !important; border-radius: 8px !important; height: 46px !important; min-height: 46px !important; max-width: 100% !important; width: 100% !important; padding: 11px 14px !important; box-shadow: none !important; font-size: 14px !important;
}
.ems5__form-area input::placeholder { color: #666b85 !important; }
.ems5__form-area input[type="submit"],
.ems5__form-area button[type="submit"],
.ems5__form-area .nf-form-content input[type="button"],
.ems5__form-area .gform_button,
.ems5__form-area .wpforms-submit {
  display: inline-flex !important; justify-content: center; align-items: center; width: auto !important; min-height: 43px !important; height: 43px !important; padding: 0 25px !important; margin: 0 !important; background: linear-gradient(180deg, #ffa02c, #ff6f0a) !important; color: #1b1534 !important; border: 0 !important; border-radius: 8px !important; font-size: 14px !important; font-weight: 750 !important; line-height: 1.2 !important; box-shadow: 0 4px 12px rgba(255,90,0,.25) !important; cursor: pointer;
}
.ems5__form-area input[type="submit"]:hover, .ems5__form-area button[type="submit"]:hover, .ems5__form-area .nf-form-content input[type="button"]:hover { filter: brightness(1.07); }
.ems5__form-area .nf-field-container { margin-bottom: 10px !important; }
.ems5__form-area .nf-form-title { display: none !important; }
.ems5__form-area .nf-after-form-content { font-size: 12px; }
.ems5__form-area .nf-error-msg, .ems5__form-area .nf-error .nf-error-msg { color: #ffd2bd !important; }
.ems5__form-area .nf-response-msg { color: #fff !important; }
.ems5__setup-note { padding: 14px; border: 1px dashed #ffab70; border-radius: 9px; font-size: 13px; line-height: 1.5; }
.ems5__setup-note a, .ems5__setup-note a:visited { color: #b1eaff !important; text-decoration: underline; }
.ems5__setup-note code { color: #ffcd91; }
/* Form-builder controls remain functional and preserve their own validation/submission behavior. */
@media (max-width: 1150px) {
 .ems5__art { width: 40%; height: 64%; }
 .ems5__top { grid-template-columns: minmax(0, 1.25fr) minmax(205px, .8fr); padding-right: 13%; gap: 27px; }
 .ems5__updates { grid-template-columns: 72px minmax(0, 1fr) minmax(265px, 1fr); gap: 17px; padding: 22px; }
 .ems5__newsletter-icon { min-height: 100px; }
 .ems5__newsletter-icon svg { width: 44px; height: 44px; }
 .ems5__form-area { padding-left: 22px; }
}
@media (max-width: 800px) {
 .ems5 { padding: 45px 19px 46px; }
 .ems5__art { opacity: .38; width: 60%; height: 260px; }
 .ems5__top { grid-template-columns: minmax(0, 1fr); gap: 23px; min-height: 0; padding: 0 0 22px; }
 .ems5__heading { max-width: 700px; }
 .ems5__actions { padding: 12px 0 12px 19px; gap: 10px; }
 .ems5__updates { grid-template-columns: 68px minmax(0,1fr); gap: 15px; padding: 22px; }
 .ems5__newsletter-icon { grid-row: 1; }
 .ems5__form-area { grid-column: 1 / -1; padding: 16px 0 0; border-left: 0; border-top: 1px solid rgba(255,255,255,.35); }
}
@media (max-width: 500px) {
 .ems5 { padding: 34px 15px 35px; }
 .ems5__art { width: 75%; height: 210px; opacity: .22; }
 .ems5__eyebrow { font-size: 10px !important; letter-spacing: .16em; gap: 9px; }
 .ems5__eyebrow span { width: 33px; }
 .ems5 h2.ems5__heading { font-size: clamp(31px, 8vw, 40px) !important; }
 .ems5__description { font-size: 15px !important; }
 .ems5__actions { padding-left: 16px; }
 .ems5 a.ems5__text-link { font-size: 15px !important; }
 .ems5 a.ems5__contact { font-size: 14px; white-space: normal; }
 .ems5__updates { grid-template-columns: 42px minmax(0,1fr); gap: 12px; padding: 16px; border-radius: 17px; }
 .ems5__newsletter-icon { min-height: 66px; }
 .ems5__newsletter-icon svg { width: 32px; height: 32px; }
 .ems5__newsletter-copy { padding-right: 0; }
 .ems5__form-area .nf-form-content nf-fields-wrap { display: block; }
 .ems5__newsletter-copy h3 { font-size: 25px !important; }
 .ems5__newsletter-copy p:not(.ems5__updates-eyebrow) { font-size: 12px !important; }
 .ems5__updates-eyebrow { font-size: 10px !important; }
}
@media (prefers-reduced-motion: reduce) {
 .ems5 a { transition: none !important; }
}
