/* =========================================================
   MEP & AMC page  (prefix: mep-)
   ========================================================= */

.mep-eyebrow { font-size: 16px; color: var(--gold-500); letter-spacing: 0; margin-bottom: 0; }
.mep-eyebrow--light { color: #c9a451; }

.mep-h2 {
  font-size: clamp(30px, 3.35vw, 48px);
  line-height: 1.17;
  font-weight: 700;
  color: var(--navy-950);
  margin-top: 21px;
}

.mep-btn-gold { background: #c9a451; color: var(--navy-950); padding: 0 24px; }
.mep-btn-gold:hover { background: #d8b566; }

/* ---------- Hero ---------- */
.mep-hero { background: var(--navy-950); color: var(--white); overflow: hidden; }
.mep-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 620px);
  gap: 40px;
  align-items: center;
  min-height: 720px;
  padding-block: 48px 90px;
}
.mep-hero__content { padding-top: 40px; }
.mep-hero__title {
  font-size: clamp(38px, 4.6vw, 66px);
  line-height: 1.09;
  font-weight: 700;
  max-width: 650px;
  margin: 27px 0 26px;
}
.mep-hero__lead {
  font-size: clamp(16px, 1.32vw, 19px);
  line-height: 1.63;
  color: #e0e3e3;
  max-width: 570px;
  margin-bottom: 25px;
}
.mep-hero__media {
  position: relative;
  width: 100%;
  aspect-ratio: 620 / 582;
  align-self: start;
  margin-top: -10px;
}
.mep-hero__media img {
  position: absolute;
  object-fit: cover;
  border: 1px solid #bfbfb8;
  border-radius: 24px;
}
.mep-hero__tech { right: 0; top: 0; width: 83.87%; height: 73.88%; }
.mep-hero__building { left: 0; bottom: 0; width: 50%; height: 37.8%; z-index: 1; }
.mep-hero__badge {
  position: absolute; right: 0; bottom: 1.72%;
  width: 40.32%; height: 30.93%;
  background: #c9a451; border-radius: 24px;
  padding: clamp(20px, 2.7vw, 39px) 20px 20px clamp(18px, 2.2vw, 31px);
  font-size: clamp(18px, 1.95vw, 28px);
  font-weight: 700; line-height: 1.21;
  text-transform: uppercase;
  color: var(--white);
  z-index: 2;
}

/* ---------- MEP Support ---------- */
.mep-support { padding-block: 80px 56px; }
.mep-intro {
  display: grid;
  grid-template-columns: minmax(0, 718px) minmax(0, 473px);
  justify-content: space-between;
  align-items: end;
  gap: 40px;
}
.mep-intro__text {
  font-size: clamp(16px, 1.32vw, 19px);
  line-height: 1.63;
  color: #4d4d47;
  padding-bottom: 2px;
}
.mep-services {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 282px));
  justify-content: space-between;
  gap: 42px;
  margin-top: 118px;
  align-items: start;
}
.mep-service__img {
  width: 100%; height: 260px;
  object-fit: cover;
  border: 1px solid #bfbfb8;
  border-radius: 24px;
}
.mep-service__img--tall { height: 330px; }
.mep-service__title {
  font-size: clamp(20px, 1.67vw, 24px);
  font-weight: 700; line-height: 1.2;
  color: var(--navy-950);
  margin: 26px 0 14px;
}
.mep-service__text { font-size: 17px; line-height: 1.59; color: #4d4d47; }

/* ---------- Preventive ---------- */
.mep-preventive { background: #faf9f4; padding-block: 80px 110px; overflow: hidden; }
.mep-preventive__grid {
  display: grid;
  grid-template-columns: minmax(0, 830px) minmax(0, 390px);
  justify-content: space-between;
  gap: 48px;
  align-items: start;
}
.mep-preventive__media { position: relative; padding-right: 230px; }
.mep-preventive__img {
  width: 100%; aspect-ratio: 600 / 530;
  object-fit: cover;
  border: 1px solid #bfbfb8;
  border-radius: 24px;
}
.mep-preventive__card {
  position: absolute; right: 0; top: 90px;
  width: 300px; min-height: 260px;
  background: #c9a451; border-radius: 24px;
  padding: 32px 46px 24px 32px;
  color: var(--navy-950);
}
.mep-preventive__num { font-size: 18px; font-weight: 700; margin-bottom: 14px; }
.mep-preventive__card-title { font-size: 34px; line-height: 1.18; font-weight: 700; margin-bottom: 10px; }
.mep-preventive__card-text { font-size: 17px; line-height: 1.59; }
.mep-preventive__content { padding-top: 28px; }
.mep-preventive__text {
  font-size: 18px; line-height: 1.67; color: #4d4d47;
  margin-top: 23px; max-width: 380px;
}

/* ---------- AMC ---------- */
.mep-amc { background: var(--navy-950); color: var(--white); padding-block: 80px 61px; scroll-margin-top: 88px; }
.mep-amc__title {
  font-size: clamp(32px, 3.5vw, 50px);
  line-height: 1.16;
  font-weight: 700;
  margin-top: 21px;
}
.mep-amc__text { font-size: 18px; line-height: 1.67; color: #dbdede; margin-top: 39px; }
.mep-benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 380px));
  column-gap: 40px; row-gap: 35px;
  margin-top: 84px;
}
.mep-benefit {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  min-height: 120px;
  background: #132530;
  border-radius: 18px;
  padding: 18px 24px 18px 18px;
}
.mep-benefit__side { display: flex; flex-direction: column; gap: 12px; padding-top: 2px; }
.mep-benefit__num { font-size: 15px; font-weight: 700; color: #c9a451; padding-left: 4px; line-height: 1.2; }
.mep-benefit__side img { width: 36px; height: 36px; }
.mep-benefit__title { font-size: 20px; font-weight: 600; line-height: 1.2; margin-bottom: 8px; }
.mep-benefit__text { font-size: 15px; line-height: 1.53; color: #bfc7c9; max-width: 270px; }

/* ---------- How AMC works ---------- */
.mep-process { padding-block: 85px 68px; }
.mep-steps {
  list-style: none; margin: 54px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));
}
.mep-step {
  position: relative;
  display: flex; flex-direction: column; align-items: center;
  text-align: center;
}
.mep-step__num { font-size: 16px; font-weight: 700; color: var(--navy-950); line-height: 1.2; margin-bottom: 16px; }
.mep-step__circle {
  width: 76px; height: 76px; border-radius: 50%;
  background: var(--cream-200);
  display: flex; align-items: center; justify-content: center;
}
.mep-step__circle img { width: 36px; height: 36px; }
.mep-step--active .mep-step__circle { background: #c9a451; }
.mep-step__label { font-size: 17px; font-weight: 600; line-height: 1.25; color: var(--navy-950); margin-top: 19px; padding-inline: 4px; }
.mep-step:not(:last-child)::after {
  content: ""; position: absolute;
  top: calc(19px + 16px + 37px);
  left: calc(50% + 46px); right: calc(-50% + 46px);
  height: 2px; background: var(--gold-500); opacity: .6;
}

/* ---------- Proof ---------- */
.mep-proof { background: var(--cream-200); padding-block: 60px 62px; }
.mep-proof__grid {
  display: grid;
  grid-template-columns: 620fr 300fr 312fr;
  gap: 32px;
  margin-top: 38px;
}
.mep-proof__grid img {
  width: 100%; height: 350px;
  object-fit: cover;
  border: 1px solid #bfbfb8;
  border-radius: 24px;
}

/* ---------- Final CTA ---------- */
.mep-cta { position: relative; overflow: hidden; min-height: 735px; display: flex; align-items: flex-start; }
.mep-cta__bg {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center 40%;
}
.mep-cta .container { position: relative; }
.mep-cta__body { padding: 161px 0 120px 40px; max-width: 690px; }
.mep-cta__eyebrow {
  font-size: 15px; font-weight: 900; color: #c9a451;
  text-transform: uppercase; margin-bottom: 16px;
}
.mep-cta__title { font-size: clamp(30px, 2.8vw, 40px); line-height: 1.2; font-weight: 700; color: var(--white); }
.mep-cta__text { font-size: 18px; line-height: 1.61; color: #dbdede; margin: 14px 0 70px; max-width: 600px; }

@media (min-width: 961px) {
  .mep-cta__bg { inset: auto; top: -58px; left: 0; height: calc(100% + 225px); }
}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1180px) {
  .mep-services { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 32px; margin-top: 64px; }
  .mep-service__img, .mep-service__img--tall { height: 300px; }
  .mep-preventive__grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .mep-preventive__media { max-width: 830px; }
  .mep-preventive__content { padding-top: 0; }
  .mep-preventive__text { max-width: 640px; }
  .mep-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .mep-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 40px; }
  .mep-step:nth-child(4)::after { display: none; }
  .mep-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 0; padding-block: 56px 72px; }
  .mep-hero__content { padding-top: 0; }
  .mep-hero__media { margin-top: 0; align-self: center; }
  .mep-benefit:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .mep-benefit:last-child:nth-child(odd) .mep-benefit__text { max-width: none; }
}

@media (max-width: 960px) {
  .mep-hero__grid { grid-template-columns: 1fr; min-height: 0; padding-block: 48px 64px; gap: 48px; }
  .mep-hero__content { padding-top: 0; }
  .mep-hero__media { max-width: 620px; margin: 0 auto; }
  .mep-intro { grid-template-columns: 1fr; gap: 20px; }
  .mep-support { padding-block: 64px 48px; }
  .mep-preventive { padding-block: 64px; }
  .mep-amc { padding-block: 64px; }
  .mep-amc__text { margin-top: 24px; }
  .mep-benefits { margin-top: 48px; }
  .mep-process { padding-block: 64px 56px; }
  .mep-proof { padding-block: 56px; }
  .mep-proof__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .mep-proof__grid img:first-child { grid-column: 1 / -1; }
  .mep-proof__grid img { height: 300px; }
  .mep-cta { min-height: 0; }
  .mep-cta__bg { object-position: 70% center; }
  .mep-cta::before {
    content: ""; position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(90deg, rgba(11, 22, 32, .75), rgba(11, 22, 32, .35));
  }
  .mep-cta .container { z-index: 2; }
  .mep-cta__body { padding: 96px 0; }
  .mep-cta__text { margin-bottom: 40px; }
}

@media (max-width: 640px) {
  .mep-hero__badge { border-radius: 16px; padding: 14px 12px 12px 14px; font-size: clamp(14px, 4.2vw, 18px); }
  .mep-hero__media img { border-radius: 16px; }
  .mep-services { grid-template-columns: 1fr; gap: 40px; }
  .mep-service__img, .mep-service__img--tall { height: auto; aspect-ratio: 4 / 3; }
  .mep-service__title { margin-top: 20px; }
  .mep-preventive__media { padding-right: 0; }
  .mep-preventive__card { position: relative; top: auto; right: auto; width: auto; min-height: 0; margin: -60px 16px 0; padding: 26px 24px; }
  .mep-preventive__card-title { font-size: 28px; }
  .mep-benefits { grid-template-columns: 1fr; gap: 16px; }
  .mep-benefit__text { max-width: none; }
  .mep-steps { grid-template-columns: 1fr; row-gap: 0; margin-top: 40px; }
  .mep-step { flex-direction: row; text-align: left; gap: 16px; padding-bottom: 24px; }
  .mep-step__num { order: 2; margin: 0; min-width: 22px; }
  .mep-step__circle { order: 1; width: 64px; height: 64px; flex: none; }
  .mep-step__circle img { width: 30px; height: 30px; }
  .mep-step__label { order: 3; margin: 0; padding: 0; }
  .mep-step:not(:last-child)::after,
  .mep-step:nth-child(4)::after {
    display: block; top: 64px; bottom: 0; left: 31px; right: auto;
    width: 2px; height: auto;
  }
  .mep-proof__grid { grid-template-columns: 1fr; }
  .mep-proof__grid img { height: 240px; }
  .mep-cta__body { padding: 72px 0; }
  .mep-cta .btn { white-space: normal; }
  .mep-h2 br, .mep-cta__title br, .mep-amc__title br { display: none; }
}

/* =========================================================
   Motion (v3)
   Entrances use `animation … backwards` held on `paused` until the
   container gets .seq-on, so hover transitions never inherit stagger delays.
   ========================================================= */

/* ---------- Hero: the badge cycles Prevent → Maintain → Respond ---------- */
.mep-hero__word { display: inline-block; transition: color .4s ease; }
@media (prefers-reduced-motion: no-preference) {
  .mep-hero__word { animation: mepWord 4.5s 1.2s ease-in-out infinite; }
  .mep-hero__word:nth-of-type(2) { animation-delay: 2.7s; }
  .mep-hero__word:nth-of-type(3) { animation-delay: 4.2s; }
  .mep-hero__badge { animation: mepFloat 7s 1.4s ease-in-out infinite; }
}
@keyframes mepWord {
  0%, 36%, 100% { color: var(--white); translate: 0 0; }
  6%, 28% { color: var(--navy-950); translate: 4px 0; }
}
@keyframes mepFloat { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }

/* ---------- MEP services: photo brightens on card hover ---------- */
.mep-service__img { transition: filter .4s ease, box-shadow .4s ease; }
@media (hover: hover) {
  .mep-service:hover .mep-service__img { box-shadow: 0 0 0 3px rgba(201, 164, 81, .45); }
  .mep-service:hover .mep-service__title { color: var(--gold-700); }
}
.mep-service__title { transition: color .3s ease; }

/* ---------- Preventive: the gold "01" card breathes ---------- */
@media (prefers-reduced-motion: no-preference) {
  .mep-preventive__card { animation: mepFloat 6s ease-in-out infinite; box-shadow: 0 20px 40px rgba(11, 22, 32, .12); }
}

/* ---------- AMC: drifting dot grid + benefits that tick in ---------- */
.mep-amc { position: relative; overflow: hidden; }
.mep-amc > .container { position: relative; z-index: 1; }
.mep-amc::before {
  content: ""; position: absolute; top: -40px; right: -40px; width: 520px; height: 420px; pointer-events: none;
  background: radial-gradient(circle, rgba(201, 164, 81, .28) 1.4px, transparent 1.6px) 0 0 / 22px 22px;
  -webkit-mask-image: radial-gradient(closest-side, #000 30%, transparent);
          mask-image: radial-gradient(closest-side, #000 30%, transparent);
}
@media (prefers-reduced-motion: no-preference) {
  .mep-amc::before { animation: mepDrift 28s linear infinite; }
}
@keyframes mepDrift { from { background-position: 0 0; translate: 0 0; } 50% { translate: -30px 20px; } to { background-position: 44px 44px; translate: 0 0; } }

.mep-benefit {
  transition: translate .35s ease, background-color .35s ease, box-shadow .35s ease;
  box-shadow: inset 0 0 0 1px rgba(201, 164, 81, 0);
}
.mep-benefit__num { display: inline-block; }
.mep-benefit__side img { transition: rotate .4s cubic-bezier(.3,1.6,.5,1), scale .4s cubic-bezier(.3,1.6,.5,1); }
.js .mep-benefits.seq .mep-benefit__side img { animation: mepIconIn .6s calc(var(--i, 0) * .14s + .45s) cubic-bezier(.3,1.6,.5,1) backwards paused; }
.js .mep-benefits.seq .mep-benefit__num { animation: mepFlipIn .6s calc(var(--i, 0) * .14s + .3s) cubic-bezier(.2,.7,.2,1) backwards paused; }
.js .mep-benefits.seq-on .mep-benefit__side img, .js .mep-benefits.seq-on .mep-benefit__num { animation-play-state: running; }
@keyframes mepIconIn { from { scale: 0; rotate: -40deg; opacity: 0; } }
@keyframes mepFlipIn { from { transform: perspective(200px) rotateX(90deg); opacity: 0; } }
@media (hover: hover) {
  .mep-benefit:hover { translate: 0 -4px; background: #172d3a; box-shadow: inset 0 0 0 1px rgba(201, 164, 81, .55), 0 16px 32px rgba(0, 0, 0, .25); }
  .mep-benefit:hover .mep-benefit__side img { rotate: -8deg; scale: 1.14; }
}

/* ---------- How AMC works: draws itself, then a pulse keeps travelling ---------- */
.mep-step__circle { position: relative; transition: scale .4s cubic-bezier(.3,1.6,.5,1), background-color .3s ease, box-shadow .3s ease; }
.mep-step__circle img { transition: filter .3s ease; }
.mep-step__num, .mep-step__label { transition: color .3s ease, translate .3s ease; }
.mep-step { transition: opacity .3s ease; }
.mep-step:not(:last-child)::after {
  opacity: 1; transform-origin: left center;
  background: linear-gradient(90deg, transparent, #fff1c9 45%, var(--gold-600) 55%, transparent) no-repeat -200% 0 / 45% 100%,
              rgba(179, 138, 58, .6);
}

.js .mep-steps.seq .mep-step__circle {
  animation: mepPop .6s calc(var(--i, 0) * .22s) cubic-bezier(.3,1.6,.5,1) backwards,
             mepPing 6s calc(var(--i, 0) * .55s + 2.2s) ease-out infinite;
  animation-play-state: paused;
}
.js .mep-steps.seq .mep-step__num, .js .mep-steps.seq .mep-step__label {
  animation: mepRise .5s calc(var(--i, 0) * .22s + .12s) cubic-bezier(.2,.7,.2,1) backwards paused;
}
.js .mep-steps.seq .mep-step:not(:last-child)::after {
  animation: mepDraw .4s calc(var(--i, 0) * .22s + .2s) ease-out backwards,
             mepFlow 6s calc(var(--i, 0) * .55s + 2.2s) ease-in-out infinite;
  animation-play-state: paused;
}
.js .mep-steps.seq-on .mep-step__circle, .js .mep-steps.seq-on .mep-step__num,
.js .mep-steps.seq-on .mep-step__label, .js .mep-steps.seq-on .mep-step:not(:last-child)::after { animation-play-state: running; }

@keyframes mepPop { from { scale: .3; opacity: 0; } }
@keyframes mepRise { from { opacity: 0; translate: 0 10px; } }
@keyframes mepDraw { from { transform: scaleX(0); } }
@keyframes mepFlow { 0% { background-position: -200% 0, 0 0; } 9% { background-position: 300% 0, 0 0; } 100% { background-position: 300% 0, 0 0; } }
@keyframes mepFlowY { 0% { background-position: 0 -200%, 0 0; } 9% { background-position: 0 300%, 0 0; } 100% { background-position: 0 300%, 0 0; } }
@keyframes mepPing {
  0% { box-shadow: 0 0 0 0 rgba(201, 145, 41, .45); }
  14% { box-shadow: 0 0 0 14px rgba(201, 145, 41, 0); }
  100% { box-shadow: 0 0 0 0 rgba(201, 145, 41, 0); }
}


/* the travelling spark that rides each connector in turn */
.mep-step:not(:last-child)::before {
  content: ""; position: absolute; z-index: 1; top: calc(19px + 16px + 37px - 3px); left: calc(50% + 46px);
  width: 8px; height: 8px; margin-left: -4px; border-radius: 50%; background: #fff6dd; opacity: 0; pointer-events: none;
  box-shadow: 0 0 0 2px rgba(201, 145, 41, .55), 0 0 12px 3px rgba(201, 145, 41, .65);
}
.js .mep-steps.seq-on .mep-step:not(:last-child)::before { animation: mepSpark 6s calc(var(--i, 0) * .55s + 2.2s) ease-in-out infinite; }
@keyframes mepSpark {
  0% { left: calc(50% + 46px); opacity: 0; } 1.5% { opacity: 1; }
  8% { opacity: 1; } 9.2% { left: calc(150% - 46px); opacity: 0; } 100% { left: calc(150% - 46px); opacity: 0; }
}
@keyframes mepSparkY {
  0% { top: 64px; opacity: 0; } 1.5% { opacity: 1; }
  8% { opacity: 1; } 9.2% { top: calc(100% - 4px); opacity: 0; } 100% { top: calc(100% - 4px); opacity: 0; }
}
@media (max-width: 1180px) { .mep-step:nth-child(4)::before { display: none; } }
@media (max-width: 640px) {
  .mep-step:not(:last-child)::before, .mep-step:nth-child(4)::before { display: block; left: 32px; top: 64px; }
  .js .mep-steps.seq-on .mep-step:not(:last-child)::before { animation-name: mepSparkY; }
}

/* Hover: the step steps forward, the rest of the plan recedes */
@media (hover: hover) {
  .mep-steps:hover .mep-step { opacity: .45; }
  .mep-steps .mep-step:hover { opacity: 1; }
  .mep-step:hover .mep-step__circle { scale: 1.12; background: var(--navy-950); }
  .mep-step:hover .mep-step__circle img { filter: brightness(0) invert(1); }
  .mep-step:hover .mep-step__num { color: var(--gold-700); translate: 0 -3px; }
  .mep-step:hover .mep-step__label { color: var(--gold-700); }
}

/* ---------- Proof: hover brings one photo forward ---------- */
.mep-proof__grid img { transition: clip-path 1.1s cubic-bezier(.7,0,.2,1), scale 1.6s cubic-bezier(.2,.7,.2,1), translate .4s ease, box-shadow .4s ease, filter .4s ease; }
@media (hover: hover) {
  .mep-proof__grid:hover img { filter: saturate(.7) brightness(.92); }
  .mep-proof__grid img:hover { filter: none; translate: 0 -6px; box-shadow: 0 22px 40px rgba(11, 22, 32, .2); }
}

/* ---------- Final CTA: slow Ken Burns on the background ---------- */
@media (prefers-reduced-motion: no-preference) {
}
@keyframes mepKen { from { scale: 1; } to { scale: 1.07; } }

/* ---------- Phones: vertical process line draws downward ---------- */
@media (max-width: 640px) {
  .mep-step:not(:last-child)::after {
    transform-origin: center top;
    background: linear-gradient(180deg, transparent, #fff1c9 45%, var(--gold-600) 55%, transparent) no-repeat 0 -200% / 100% 45%,
                rgba(179, 138, 58, .6);
  }
  .js .mep-steps.seq .mep-step:not(:last-child)::after { animation-name: mepDrawY, mepFlowY; }
  .mep-amc::before { width: 300px; height: 300px; }
}
@keyframes mepDrawY { from { transform: scaleY(0); } }

@media (prefers-reduced-motion: reduce) {
  .js .mep-steps.seq .mep-step__circle, .js .mep-steps.seq .mep-step__num, .js .mep-steps.seq .mep-step__label,
  .js .mep-steps.seq .mep-step:not(:last-child)::after, .js .mep-steps.seq-on .mep-step:not(:last-child)::before, .js .mep-benefits.seq .mep-benefit__side img, .js .mep-benefits.seq .mep-benefit__num { animation: none; }
  .mep-amc::before { animation: none; }
}

/* =========================================================
   Compact (v3.2) — tighter vertical rhythm, no artificial heights
   ========================================================= */
.mep-h2, .mep-amc__title { margin-top: 16px; }
@media (min-width: 961px) {
  .mep-h2 { font-size: clamp(30px, 3.05vw, 44px); }
  .mep-amc__title { font-size: clamp(32px, 3.05vw, 44px); }
}
@media (min-width: 1181px) {
  .mep-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 560px); min-height: 0; padding-block: 56px 72px; }
  .mep-hero__content { padding-top: 0; }
  .mep-hero__media { margin-top: 0; align-self: center; }

  .mep-support { padding-block: 72px 64px; }
  .mep-services { margin-top: 48px; gap: 32px; }
  .mep-service__img { height: 240px; }
  .mep-service__img--tall { height: 300px; }
  .mep-service__title { margin: 20px 0 10px; }

  .mep-preventive { padding-block: 72px 72px; }
  .mep-preventive__img { aspect-ratio: 600 / 470; }
  .mep-preventive__card { top: 72px; min-height: 0; }

  .mep-amc { padding-block: 72px 72px; }
  .mep-amc__text { margin-top: 24px; }
  .mep-benefits { margin-top: 44px; row-gap: 24px; }
  .mep-benefit { min-height: 0; }

  .mep-process { padding-block: 72px 72px; }
  .mep-steps { margin-top: 44px; }

  .mep-proof { padding-block: 64px 64px; }
  .mep-proof__grid { margin-top: 32px; gap: 24px; }
  .mep-proof__grid img { height: 320px; }
}
@media (min-width: 961px) {
  .mep-cta { min-height: 540px; align-items: center; }
  .mep-cta__body { padding: 80px 0 80px 40px; }
  .mep-cta__text { margin-bottom: 32px; }
}
@media (max-width: 960px) {
  .mep-cta__body { padding: 72px 0; }
}
@media (max-width: 640px) {
  .mep-cta__body { padding: 56px 0; }
}

/* v3.2: sharp CTA photo with a navy fade on the text side for legibility */
@media (min-width: 961px) {
  .mep-cta::before {
    content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
    background: linear-gradient(90deg, rgba(11, 22, 32, .82) 0%, rgba(11, 22, 32, .55) 45%, rgba(11, 22, 32, .1) 75%, rgba(11, 22, 32, 0) 100%);
  }
  .mep-cta .container { z-index: 2; }
}
