/* ==========================================================================
   Moeller Matthews design system (child theme of Divi)
   Sections built in Divi carry an "mm-sec" class plus a section class.
   ========================================================================== */

:root {
  --mm-navy: #132f4c;
  --mm-navy-900: #0d2238;
  --mm-navy-700: #1d3f63;
  --mm-teal: #2b7a80;
  --mm-teal-ink: #1d666c;      /* text-safe teal (≥ 5:1 on warm white) */
  --mm-teal-50: #d6e5e5;
  --mm-teal-25: #e8f0ef;
  --mm-warm: #f8f5f0;
  --mm-warm-200: #efe9df;
  --mm-white: #ffffff;
  --mm-ink: #1c2733;
  --mm-ink-soft: #3d4a57;
  --mm-line: #e3ddd2;
  --mm-grey: #6d6d6d;
  --mm-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --mm-sans: "Figtree", "Helvetica Neue", Arial, sans-serif;
  --mm-radius: 6px;
  --mm-radius-lg: 10px;
  --mm-shadow: 0 1px 2px rgba(19, 47, 76, .05), 0 6px 18px rgba(19, 47, 76, .06);
  --mm-wrap: 1200px;
  --mm-gutter: clamp(20px, 4vw, 40px);
  --mm-space: clamp(56px, 8vw, 104px);
  --mm-focus: 3px solid #f2b705;
}

/* ---------- Base ------------------------------------------------------- */
body.mm-site {
  background: var(--mm-warm);
  color: var(--mm-ink);
  font-family: var(--mm-sans);
  font-size: 17px;
  line-height: 1.65;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}
body.mm-site #page-container { padding-top: 0 !important; overflow-x: clip; }
body.mm-site #main-content,
body.mm-site #main-content .container,
body.mm-site .et-l--post { background: transparent; }
body.mm-site #main-content .container:before { display: none; }
body.mm-site #left-area, body.mm-site #sidebar { padding: 0; }

.mm-site h1, .mm-site h2, .mm-site h3, .mm-site h4 {
  font-family: var(--mm-serif);
  font-weight: 500;
  color: var(--mm-navy-900);
  line-height: 1.15;
  letter-spacing: -0.01em;
  padding-bottom: 0;
  margin: 0 0 .5em;
}
.mm-site h1 { font-size: clamp(2.4rem, 5.2vw, 4rem); }
.mm-site h2 { font-size: clamp(1.9rem, 3.6vw, 2.75rem); }
.mm-site h3 { font-size: clamp(1.3rem, 2vw, 1.5rem); font-weight: 600; }
.mm-site h4 { font-size: 1.15rem; font-weight: 600; }
.mm-site p { padding-bottom: 0; margin: 0 0 1em; }
.mm-site p:last-child { margin-bottom: 0; }
.mm-site a { color: var(--mm-teal-ink); text-underline-offset: .18em; }
.mm-site a:hover { color: var(--mm-navy); }
.mm-site strong { font-weight: 600; color: var(--mm-ink); }
.mm-site img { max-width: 100%; height: auto; }
.mm-site ul, .mm-site ol { padding: 0; }
.mm-site address { font-style: normal; }

.mm-site :focus-visible { outline: var(--mm-focus); outline-offset: 3px; border-radius: 2px; }

.mm-skip {
  position: absolute; left: 12px; top: -60px; z-index: 100000;
  background: var(--mm-navy); color: #fff !important; padding: 10px 16px; border-radius: var(--mm-radius);
  font-weight: 600; text-decoration: none;
}
.mm-skip:focus { top: 12px; }

.mm-wrap { max-width: var(--mm-wrap); margin: 0 auto; padding: 0 var(--mm-gutter); }
.mm-narrow { max-width: 760px; }
.mm-eyebrow {
  font-family: var(--mm-sans); font-size: .82rem; font-weight: 600; letter-spacing: .12em;
  text-transform: uppercase; color: var(--mm-teal-ink); margin: 0 0 .9em;
}
.mm-lead { font-size: clamp(1.05rem, 1.4vw, 1.2rem); color: var(--mm-ink-soft); }

/* ---------- Divi neutralisers for our sections ----------------------- */
.mm-site .et_pb_section.mm-sec { padding: var(--mm-sec-pad, 0) 0 !important; background-color: var(--mm-sec-bg, transparent); }
.mm-site .mm-sec .et_pb_row { width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
.mm-site .mm-sec .et_pb_column { width: 100% !important; margin: 0 !important; }
.mm-site .mm-sec .et_pb_module { margin-bottom: 0 !important; }
.mm-site .mm-sec .et_pb_text { color: inherit; font-size: inherit; line-height: inherit; }
.mm-site .mm-sec .et_pb_text_inner > *:last-child { margin-bottom: 0; }
.mm-site .mm-sec ul[class], .mm-site .mm-sec ol[class] { list-style: none; padding: 0; margin-left: 0; }
.mm-site .mm-sec ul[class] > li, .mm-site .mm-sec ol[class] > li { list-style: none; }
.mm-site .mm-sec ul:not([class]) { list-style: disc; padding-left: 1.2em; margin: 0 0 1em; }
.mm-site .mm-sec ul:not([class]) li { margin-bottom: .35em; }

/* ---------- Buttons & links ------------------------------------------ */
.mm-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  font-family: var(--mm-sans); font-weight: 500; font-size: 1rem; line-height: 1.2;
  padding: .9em 1.5em; border-radius: var(--mm-radius); border: 2px solid transparent;
  text-decoration: none !important; transition: background-color .15s, color .15s, border-color .15s;
  cursor: pointer;
}
.mm-btn--primary { background: var(--mm-navy); color: #fff !important; }
.mm-btn--primary:hover { background: var(--mm-navy-700); color: #fff !important; }
.mm-btn--light { background: #fff; color: var(--mm-navy) !important; border-color: #fff; }
.mm-btn--light:hover { background: var(--mm-teal-25); }
.mm-btn--ghost { background: transparent; color: var(--mm-navy) !important; border-color: var(--mm-navy); }
.mm-btn--ghost:hover { background: var(--mm-navy); color: #fff !important; }
.mm-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 28px; margin-top: 2rem; }

.mm-link {
  font-weight: 500; color: var(--mm-teal-ink) !important; text-decoration: underline;
  text-decoration-thickness: 1px; text-underline-offset: .25em;
}
.mm-link:hover { color: var(--mm-navy) !important; }
.mm-arrow::after { content: "\2192"; display: inline-block; margin-left: .4em; text-decoration: none; transition: transform .15s; }
.mm-arrow:hover::after { transform: translateX(3px); }

/* ---------- Header ---------------------------------------------------- */
.mm-header { background: #fff; position: relative; z-index: 1000; border-bottom: 1px solid var(--mm-line); }
.mm-utility { background: var(--mm-warm); font-size: .88rem; }
.mm-utility .mm-wrap { display: flex; justify-content: flex-end; }
.mm-utility__list { display: flex; list-style: none; margin: 0; padding: 7px 0 !important; }
.mm-utility__list li { display: flex; align-items: center; }
.mm-utility__list li + li::before { content: ""; width: 1px; height: 14px; background: var(--mm-grey); margin: 0 14px; opacity: .6; }
.mm-utility__list a { color: var(--mm-ink) !important; text-decoration: none; font-weight: 500; }
.mm-utility__list a:hover { color: var(--mm-teal-ink) !important; text-decoration: underline; }

.mm-masthead__inner { display: flex; align-items: center; gap: 24px; min-height: 104px; }
.mm-logo { display: block; flex: 0 0 auto; line-height: 0; }
.mm-logo img { width: 330px; height: auto; }
.mm-navpanel { display: flex; align-items: center; gap: 32px; margin-left: auto; }
.mm-primary__list { display: flex; list-style: none; gap: 30px; margin: 0; padding: 0 !important; }
.mm-primary__list a {
  color: var(--mm-ink) !important; text-decoration: none; font-weight: 500; font-size: 1rem;
  padding: 8px 0; border-bottom: 2px solid transparent;
}
.mm-primary__list a:hover { color: var(--mm-teal-ink) !important; border-bottom-color: currentColor; }
.mm-primary__list .current-menu-item > a,
.mm-primary__list .current-menu-ancestor > a,
.mm-primary__list .current-page-ancestor > a,
.mm-primary__list .current_page_parent > a { color: var(--mm-navy) !important; border-bottom-color: var(--mm-teal); }
.mm-header__cta { padding: .8em 1.3em; }
.mm-navtoggle, .mm-navpanel__utility { display: none; }

@media (max-width: 1100px) {
  .mm-primary__list { gap: 22px; }
  .mm-navpanel { gap: 22px; }
  .mm-logo img { width: 260px; }
}
@media (max-width: 980px) {
  .mm-utility { display: none; }
  .mm-masthead__inner { min-height: 74px; }
  .mm-logo img { width: 210px; }
  .mm-navtoggle {
    display: inline-flex; align-items: center; gap: 10px; margin-left: auto;
    background: transparent; border: 1px solid var(--mm-line); border-radius: var(--mm-radius);
    padding: 10px 14px; font: 500 .95rem var(--mm-sans); color: var(--mm-navy); cursor: pointer;
  }
  .mm-navtoggle__bars { display: inline-grid; gap: 4px; }
  .mm-navtoggle__bars span { display: block; width: 20px; height: 2px; background: currentColor; transition: transform .2s, opacity .2s; }
  .mm-nav-open .mm-navtoggle__bars span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .mm-nav-open .mm-navtoggle__bars span:nth-child(2) { opacity: 0; }
  .mm-nav-open .mm-navtoggle__bars span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .mm-navpanel {
    display: none; position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column; align-items: stretch; gap: 0; margin: 0;
    background: #fff; border-top: 1px solid var(--mm-line); border-bottom: 1px solid var(--mm-line);
    box-shadow: 0 16px 30px rgba(13, 34, 56, .12); padding: 8px var(--mm-gutter) 24px;
  }
  .mm-nav-open .mm-navpanel { display: flex; }
  .mm-primary__list { flex-direction: column; gap: 0; }
  .mm-primary__list li { border-bottom: 1px solid var(--mm-line); }
  .mm-primary__list a { display: block; padding: 14px 0; font-size: 1.1rem; border-bottom: 0; }
  .mm-header__cta { margin-top: 20px; }
  .mm-navpanel__utility { display: block; margin-top: 18px; }
  .mm-navpanel__utility-list { list-style: none; display: flex; gap: 24px; margin: 0; padding: 0 !important; }
  .mm-navpanel__utility-list a { color: var(--mm-ink) !important; font-weight: 500; }
}

/* ---------- Home hero ------------------------------------------------- */
.mm-hero { --mm-sec-bg: var(--mm-warm); }
.mm-hero__grid { display: grid; grid-template-columns: calc((100vw - min(100vw, var(--mm-wrap))) / 2 + min(100vw, var(--mm-wrap)) * .46) minmax(0, 1fr); min-height: 520px; }
.mm-hero__copy {
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(48px, 6vw, 88px) clamp(28px, 4vw, 56px) clamp(48px, 6vw, 88px) max(var(--mm-gutter), calc((100vw - var(--mm-wrap)) / 2 + var(--mm-gutter)));
}
.mm-hero h1 { font-size: clamp(2.6rem, 4.6vw, 4.1rem); line-height: 1.05; margin-bottom: .55em; }
.mm-hero__copy p { font-size: clamp(1.05rem, 1.3vw, 1.15rem); color: var(--mm-ink-soft); max-width: 30em; }
.mm-hero__media { position: relative; min-height: 320px; }
.mm-hero__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* ---------- Credibility strip ---------------------------------------- */
.mm-strip { --mm-sec-bg: var(--mm-teal-50); }
.mm-strip__list {
  list-style: none; margin: 0; padding: 22px 0 !important;
  display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 0;
}
.mm-strip__list li { font-weight: 500; color: var(--mm-navy-900); padding: 0 40px; position: relative; }
.mm-strip__list li + li::before { content: ""; position: absolute; left: 0; top: 50%; height: 24px; width: 1px; background: var(--mm-teal); transform: translateY(-50%); }

/* ---------- Generic section spacing ---------------------------------- */
.mm-block { --mm-sec-pad: var(--mm-space); }
.mm-block--tight { --mm-sec-pad: calc(var(--mm-space) * .65); }
.mm-block--white { --mm-sec-bg: #fff; }
.mm-block--warm2 { --mm-sec-bg: var(--mm-warm-200); }
.mm-block--teal { --mm-sec-bg: var(--mm-teal-25); }
.mm-head { margin-bottom: clamp(28px, 4vw, 44px); }
.mm-head--center { text-align: center; }
.mm-head--center .mm-lead { margin-left: auto; margin-right: auto; max-width: 40em; }
.mm-head h2 { margin-bottom: .3em; }

/* ---------- Cards ----------------------------------------------------- */
.mm-cards { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mm-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mm-card {
  background: #fff; border: 1px solid var(--mm-line); border-radius: var(--mm-radius-lg);
  padding: 28px 28px 26px; display: flex; flex-direction: column; position: relative;
  transition: box-shadow .2s, border-color .2s;
}
.mm-card:hover { box-shadow: var(--mm-shadow); border-color: #d5cdbf; }
.mm-card h3 { margin: 16px 0 8px; font-size: 1.45rem; }
.mm-card p { color: var(--mm-ink-soft); }
.mm-card .mm-link { margin-top: auto; padding-top: 16px; align-self: flex-start; }
.mm-card--link .mm-link::before { content: ""; position: absolute; inset: 0; border-radius: var(--mm-radius-lg); }
.mm-icon { width: 40px; height: 40px; color: var(--mm-teal); flex: 0 0 auto; }
.mm-icon svg { width: 100%; height: 100%; display: block; }

/* ---------- Relationship split --------------------------------------- */
.mm-split { display: grid; grid-template-columns: calc((100vw - min(100vw, var(--mm-wrap))) / 2 + min(100vw, var(--mm-wrap)) * .5) minmax(0, 1fr); align-items: stretch; background: #fff; }
.mm-split__media { position: relative; min-height: 380px; }
.mm-split__media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mm-split__copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(40px, 6vw, 88px) var(--mm-gutter) clamp(40px, 6vw, 88px) clamp(28px, 4vw, 64px); max-width: calc(min(100vw, var(--mm-wrap)) * .5 + 40px); }
.mm-split__copy p { color: var(--mm-ink-soft); max-width: 32em; }
.mm-partners { display: grid; grid-template-columns: repeat(2, 1fr); height: 100%; gap: 3px; background: #fff; position: absolute; inset: 0; }
.mm-partners figure { margin: 0; position: relative; overflow: hidden; }
.mm-partners img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; display: block; }
.mm-partners figcaption {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 14px 10px;
  background: linear-gradient(transparent, rgba(13, 34, 56, .85)); color: #fff; font-size: .9rem; line-height: 1.3;
}
.mm-partners figcaption strong { color: #fff; display: block; font-weight: 600; }

/* ---------- Location cards ------------------------------------------- */
.mm-card.mm-loc { flex-direction: row; gap: 18px; align-items: flex-start; }
.mm-loc .mm-icon { width: 30px; height: 30px; margin-top: 4px; }
.mm-loc h3 { margin: 0 0 4px; font-size: 1.6rem; }
.mm-loc address, .mm-loc p { color: var(--mm-ink-soft); margin-bottom: 8px; }
.mm-loc .mm-link { padding-top: 0; }
.mm-locations { max-width: 960px; margin: 0 auto; }
.mm-site .mm-note { text-align: center; font-style: italic; color: var(--mm-ink-soft); margin-top: 28px; }

/* ---------- CTA band -------------------------------------------------- */
.mm-cta {
  --mm-sec-bg: var(--mm-navy);
  background-color: var(--mm-navy);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 200' preserveAspectRatio='none'%3E%3Cpath fill='%23173a5c' d='M0 200V120l90-50 80 40 120-70 110 60 90-30 130 70 120-80 110 50 100-40 140 70 110-50 90 40 150-70v160z'/%3E%3Cpath fill='%231b4269' opacity='.7' d='M0 200v-40l60-20 40 10 30-25 30 25 50-30 60 35 40-20 50 25 30-15 40 20 70-35 50 25 40-15 60 30 30-10 50 20 60-30 40 20 50-25 60 30 40-15 80 25 60-20 40 15 70-30 50 25 30-10 80 25v40z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: bottom center; background-size: 100% 70%;
  color: #fff;
}
.mm-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: clamp(48px, 6vw, 72px) var(--mm-gutter); }
.mm-cta h2 { color: #fff; margin: 0; max-width: 14em; }
.mm-cta p { color: rgba(255, 255, 255, .88); margin: 12px 0 0; max-width: 36em; }
.mm-cta__actions { display: flex; flex-wrap: wrap; gap: 14px; flex: 0 0 auto; }
.mm-cta .mm-btn--ghost { color: #fff !important; border-color: rgba(255, 255, 255, .7); }
.mm-cta .mm-btn--ghost:hover { background: #fff; color: var(--mm-navy) !important; }
.mm-cta a:focus-visible { outline-color: #f2b705; }

/* ---------- Interior page hero --------------------------------------- */
.mm-pagehero { --mm-sec-bg: #fff; border-bottom: 1px solid var(--mm-line); }
.mm-pagehero .mm-wrap { padding-top: clamp(40px, 6vw, 80px); padding-bottom: clamp(40px, 6vw, 72px); }
.mm-pagehero h1 { font-size: clamp(2.3rem, 4.4vw, 3.5rem); max-width: 18em; }
.mm-pagehero .mm-lead { max-width: 40em; }
.mm-pagehero--split .mm-wrap { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center; }
.mm-pagehero__media { border-radius: var(--mm-radius-lg); overflow: hidden; aspect-ratio: 4 / 3; }
.mm-pagehero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mm-crumbs { font-size: .9rem; margin-bottom: 18px; color: var(--mm-ink-soft); }
.mm-crumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.mm-crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--mm-grey); }
.mm-crumbs a { color: var(--mm-ink-soft) !important; }

/* ---------- Content layouts ------------------------------------------ */
.mm-cols { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.mm-cols--even { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mm-prose h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin-top: 1.6em; }
.mm-prose h2:first-child { margin-top: 0; }
.mm-prose h3 { margin-top: 1.4em; }
.mm-prose p, .mm-prose li { color: var(--mm-ink-soft); }
.mm-aside {
  background: #fff; border: 1px solid var(--mm-line); border-radius: var(--mm-radius-lg); padding: 28px;
  position: sticky; top: 24px;
}
.mm-aside h2, .mm-aside h3 { font-size: 1.35rem; margin-bottom: .5em; }
.mm-aside .mm-btn { width: 100%; margin-top: 8px; }
.mm-aside__meta { font-size: .95rem; color: var(--mm-ink-soft); margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--mm-line); }

.mm-check { list-style: none !important; padding: 0 !important; margin: 0 0 1.2em; display: grid; gap: 10px; }
.mm-check li { position: relative; padding-left: 30px; margin: 0; color: var(--mm-ink-soft); }
.mm-check li::before {
  content: ""; position: absolute; left: 0; top: .32em; width: 18px; height: 18px; border-radius: 50%;
  background: var(--mm-teal-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%231d666c' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M5.5 10.5l3 3 6-7'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.mm-check--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
.mm-panel { background: #fff; border: 1px solid var(--mm-line); border-radius: var(--mm-radius-lg); padding: clamp(24px, 3vw, 36px); }
.mm-panel + .mm-panel { margin-top: 20px; }
.mm-panel h3 { margin-top: 0; }
.mm-def { margin: 0; display: grid; gap: 14px; }
.mm-def div { padding-bottom: 14px; border-bottom: 1px solid var(--mm-line); }
.mm-def div:last-child { border-bottom: 0; padding-bottom: 0; }
.mm-def dt { font-weight: 600; color: var(--mm-ink); }
.mm-def dd { margin: 2px 0 0; color: var(--mm-ink-soft); }
.mm-steps { list-style: none !important; padding: 0 !important; margin: 0; counter-reset: s; display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mm-steps li { counter-increment: s; background: #fff; border: 1px solid var(--mm-line); border-radius: var(--mm-radius-lg); padding: 24px; margin: 0; }
.mm-steps li::before { content: counter(s); display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--mm-navy); color: #fff; font-weight: 600; margin-bottom: 12px; }
.mm-steps h3 { font-size: 1.2rem; margin-bottom: 6px; }
.mm-steps p { color: var(--mm-ink-soft); margin: 0; }

.mm-related { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mm-related a {
  display: block; background: #fff; border: 1px solid var(--mm-line); border-radius: var(--mm-radius);
  padding: 18px 20px; color: var(--mm-navy) !important; text-decoration: none; font-weight: 500;
}
.mm-related a span { display: block; font-weight: 400; color: var(--mm-ink-soft); font-size: .95rem; margin-top: 4px; }
.mm-related a:hover { border-color: var(--mm-teal); box-shadow: var(--mm-shadow); }

/* ---------- Office details ------------------------------------------- */
.mm-office { display: grid; gap: 16px; }
.mm-office__row { display: flex; gap: 14px; align-items: flex-start; }
.mm-office__row .mm-icon { width: 24px; height: 24px; margin-top: 3px; }
.mm-office__row strong { display: block; }
.mm-office__row address { margin: 0; }
.mm-map { border-radius: var(--mm-radius-lg); overflow: hidden; border: 1px solid var(--mm-line); background: var(--mm-warm-200); }
.mm-map iframe { display: block; width: 100%; height: 360px; border: 0; }

/* ---------- Team ------------------------------------------------------ */
.mm-team-partners { display: grid; gap: 22px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mm-person { background: #fff; border: 1px solid var(--mm-line); border-radius: var(--mm-radius-lg); overflow: hidden; display: flex; flex-direction: column; }
.mm-person__photo { aspect-ratio: 4 / 5; overflow: hidden; background: var(--mm-warm-200); }
.mm-person__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; display: block; }
.mm-person__body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.mm-person__name { font-family: var(--mm-serif); font-size: 1.4rem; font-weight: 600; color: var(--mm-navy-900); margin: 0; line-height: 1.2; }
.mm-person__role { color: var(--mm-ink-soft); margin: 4px 0 12px; font-size: .97rem; }
.mm-person__links { margin-top: auto; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .97rem; }
.mm-bio-toggle {
  background: none; border: 0; padding: 0; font: 500 .97rem var(--mm-sans); color: var(--mm-teal-ink);
  text-decoration: underline; text-underline-offset: .25em; cursor: pointer;
}
.mm-bio-toggle:hover { color: var(--mm-navy); }
.mm-bio { padding: 0 22px 22px; color: var(--mm-ink-soft); font-size: .97rem; }
.mm-bio p { margin-bottom: .8em; }
.mm-retired { margin-top: 28px; display: flex; gap: 22px; align-items: center; background: #fff; border: 1px solid var(--mm-line); border-radius: var(--mm-radius-lg); padding: 18px; max-width: 560px; }
.mm-retired img { width: 96px; height: 96px; object-fit: cover; border-radius: 50%; flex: 0 0 auto; }
.mm-retired p { margin: 0; color: var(--mm-ink-soft); }

.mm-staff { list-style: none !important; padding: 0 !important; margin: 0; display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mm-staff li { background: #fff; border: 1px solid var(--mm-line); border-radius: var(--mm-radius); padding: 16px 18px; margin: 0; }
.mm-staff__name { display: block; font-weight: 600; color: var(--mm-ink); }
.mm-staff__role { display: block; color: var(--mm-ink-soft); font-size: .95rem; }
.mm-staff a { font-size: .95rem; }
.mm-team-group + .mm-team-group { margin-top: 44px; }
.mm-team-group > h3 { font-size: 1.35rem; margin-bottom: 16px; }

/* ---------- Careers --------------------------------------------------- */
.mm-jobs { display: grid; gap: 14px; }
.mm-job { background: #fff; border: 1px solid var(--mm-line); border-radius: var(--mm-radius-lg); }
.mm-job > summary {
  list-style: none; cursor: pointer; padding: 22px 26px; display: flex; justify-content: space-between; align-items: center; gap: 16px;
}
.mm-job > summary::-webkit-details-marker { display: none; }
.mm-job > summary::after { content: "+"; font-size: 1.6rem; line-height: 1; color: var(--mm-teal-ink); flex: 0 0 auto; }
.mm-job[open] > summary::after { content: "\2212"; }
.mm-job__title { font-family: var(--mm-serif); font-size: 1.4rem; font-weight: 600; color: var(--mm-navy-900); display: block; }
.mm-job__meta { display: block; color: var(--mm-ink-soft); font-size: .95rem; margin-top: 2px; }
.mm-job__body { padding: 0 26px 26px; border-top: 1px solid var(--mm-line); padding-top: 22px; }
.mm-job__body h4 { margin-top: 1.2em; }

/* ---------- Contact & form ------------------------------------------- */
.mm-contact { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.mm-formcard { background: #fff; border: 1px solid var(--mm-line); border-radius: var(--mm-radius-lg); padding: clamp(24px, 4vw, 44px); }
.mm-formcard h2 { font-size: 1.8rem; }
.mm-notice { background: var(--mm-teal-25); border-left: 4px solid var(--mm-teal); padding: 14px 18px; border-radius: 0 var(--mm-radius) var(--mm-radius) 0; color: var(--mm-ink); margin: 0 0 24px; font-size: .97rem; }

.mm-site .gform_wrapper.gravity-theme .gfield_label,
.mm-site .gform_wrapper .gfield_label { font-family: var(--mm-sans); font-weight: 600; font-size: 1rem; color: var(--mm-ink); margin-bottom: 6px; }
.mm-site .gform_wrapper.gravity-theme .gfield_required { color: #a4262c; font-weight: 500; }
.mm-site .gform_wrapper input[type=text],
.mm-site .gform_wrapper input[type=email],
.mm-site .gform_wrapper input[type=tel],
.mm-site .gform_wrapper select,
.mm-site .gform_wrapper textarea {
  font: 400 1rem var(--mm-sans) !important; color: var(--mm-ink) !important; background: #fff !important;
  border: 1px solid #b9b1a3 !important; border-radius: var(--mm-radius) !important; padding: 12px 14px !important; width: 100%;
}
.mm-site .gform_wrapper select { min-height: 48px; }
.mm-site .gform_wrapper input:focus, .mm-site .gform_wrapper select:focus, .mm-site .gform_wrapper textarea:focus {
  outline: var(--mm-focus) !important; outline-offset: 1px; border-color: var(--mm-navy) !important;
}
.mm-site .gform_wrapper .gfield_description { font-size: .92rem; color: var(--mm-ink-soft); padding-top: 6px; }
.mm-site .gform_wrapper .gchoice label { font-size: 1rem; color: var(--mm-ink); }
.mm-site .gform_wrapper .gform_footer input[type=submit],
.mm-site .gform_wrapper .gform_footer button {
  background: var(--mm-navy) !important; color: #fff !important; border: 0 !important; border-radius: var(--mm-radius) !important;
  font: 500 1.02rem var(--mm-sans) !important; padding: 15px 28px !important; cursor: pointer; width: auto !important;
}
.mm-site .gform_wrapper .gform_footer input[type=submit]:hover { background: var(--mm-navy-700) !important; }
.mm-site .gform_wrapper .gform_validation_errors { border-radius: var(--mm-radius); }
.mm-site .gform_confirmation_message { background: var(--mm-teal-25); border-left: 4px solid var(--mm-teal); padding: 20px 22px; border-radius: 0 var(--mm-radius) var(--mm-radius) 0; color: var(--mm-ink); font-size: 1.05rem; }

/* ---------- Footer ---------------------------------------------------- */
.mm-footer { background: #fff; border-top: 1px solid var(--mm-line); font-size: .97rem; color: var(--mm-ink-soft); }
.mm-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr .9fr 1fr; gap: 36px; padding-top: 56px; padding-bottom: 44px; }
.mm-logo--footer img { width: 240px; margin-bottom: 18px; }
.mm-footer__heading { font-family: var(--mm-sans) !important; font-size: .82rem !important; font-weight: 600 !important; letter-spacing: .12em; text-transform: uppercase; color: var(--mm-navy) !important; margin: 6px 0 14px !important; }
.mm-footer p, .mm-footer address { margin: 0 0 10px; }
.mm-footer a { color: var(--mm-ink) !important; }
.mm-footer a:hover { color: var(--mm-teal-ink) !important; }
.mm-footer__list { list-style: none !important; margin: 0 0 14px; padding: 0 !important; display: grid; gap: 8px; }
.mm-footer__hours { font-size: .93rem; }
.mm-footer__bottom { border-top: 1px solid var(--mm-line); background: var(--mm-warm); font-size: .9rem; }
.mm-footer__bottom-inner { display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: center; padding-top: 18px; padding-bottom: 18px; }
.mm-footer__bottom-inner p { margin: 0; }
.mm-footer__legal, .mm-footer__social { list-style: none; display: flex; gap: 18px; margin: 0; padding: 0 !important; }
.mm-footer__social { margin-left: auto; }

/* ---------- Responsive ------------------------------------------------ */
@media (max-width: 1100px) {
  .mm-footer__grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .mm-team-partners { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .mm-hero__grid, .mm-split, .mm-cols, .mm-contact, .mm-pagehero--split .mm-wrap { grid-template-columns: 1fr; }
  .mm-hero__copy { padding: 48px var(--mm-gutter) 40px; }
  .mm-hero__media { min-height: 0; aspect-ratio: 16 / 10; }
  .mm-split__media { min-height: 0; aspect-ratio: 1 / 1; }
  .mm-split__copy { padding: 48px var(--mm-gutter); }
  .mm-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mm-related, .mm-steps, .mm-staff { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mm-aside { position: static; }
  .mm-cta__inner { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px) {
  body.mm-site { font-size: 16px; }
  .mm-cards, .mm-cards--2, .mm-related, .mm-steps, .mm-staff, .mm-check--2, .mm-cols--even { grid-template-columns: 1fr; }
  .mm-team-partners { grid-template-columns: 1fr 1fr; gap: 14px; }
  .mm-person__body { padding: 14px; }
  .mm-person__name { font-size: 1.15rem; }
  .mm-strip__list { flex-direction: column; align-items: center; gap: 8px; }
  .mm-strip__list li { padding: 0; }
  .mm-strip__list li + li::before { display: none; }
  .mm-footer__grid { grid-template-columns: 1fr; gap: 28px; }
  .mm-footer__social { margin-left: 0; }
  .mm-card { padding: 22px; }
  .mm-actions .mm-btn { width: 100%; }
  .mm-retired { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 420px) {
  .mm-team-partners { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Small utilities ------------------------------------------ */
.mm-site .mm-loc__title { font-size: 1.6rem; font-weight: 600; margin: 0 0 6px; }
.mm-panel--spaced { margin-top: 20px; }
.mm-cols--center { align-items: center; }
@media (max-width: 980px) {
  .mm-strip__list { gap: 6px 28px; }
  .mm-strip__list li { padding: 0; }
  .mm-strip__list li + li::before { display: none; }
}
