/* =============================================================
   M-Corp Mobile Responsive Overrides
   Target: max-width 767px (Elementor "mobile" breakpoint)
   Loads after Elementor and titan-component CSS via functions.php
   Fixes: font sizes, section padding, side padding, grids,
          absolute-position overflow images
   ============================================================= */

/* ─────────────────────────────────────────────────────────────
   GLOBAL: Prevent horizontal scroll / overflow
   ───────────────────────────────────────────────────────────── */
html,
body {
  overflow-x: hidden;
  max-width: 100%;
}

/* ─────────────────────────────────────────────────────────────
   HEADER  (mobile)
   ───────────────────────────────────────────────────────────── */
@media (max-width: 767px) {
  /* Always sticky with white background — no transparent phase */
  .site-header {
    position: sticky !important;
    top: 0 !important;
    background: #fff !important;
    transform: none !important;
    opacity: 1 !important;
    z-index: 9000 !important;
    --min-height: 0px !important;
    min-height: 0 !important;
  }

  /* Remove min-height on header outer container */
  .elementor-element-e593d19 {
    --min-height: 0px !important;
    min-height: 0 !important;
  }
  /* Inner header wrap: tight padding, vertically centered */
  .elementor-element-5bb7ddb {
    --padding-top: 10px !important;
    --padding-bottom: 10px !important;
    --padding-left: 16px !important;
    --padding-right: 16px !important;
    align-items: center !important;
  }

  /* Single-row: stop wrapping, reduce padding */
  .head-wrap {
    flex-wrap: nowrap !important;
    align-items: center !important;
    padding: 10px 16px !important;
    gap: 0 !important;
  }

  /* Logo: don't grow, shrink naturally */
  .site-logo {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
  }
  .site-logo img {
    width: 200px !important;
    height: auto !important;
    max-width: 200px !important;
  }

  /* Right col: fill remaining width, row layout, flush right */
  .elementor-element-header_right_col {
    flex: 1 1 auto !important;
    width: auto !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    max-width: none !important;
  }

  /* Hide utility bar on mobile */
  .elementor-element-header_top_row {
    display: none !important;
  }

  /* Nav widget: shrink to fit the hamburger.
     Also clear any 3D transform — a transform on an ancestor makes position:fixed
     children position relative to that element instead of the viewport. */
  .elementor-element-3885d04 {
    width: auto !important;
    flex: 0 0 auto !important;
    max-width: none !important;
    transform: none !important;
  }

  /* Hamburger toggle: visible on white background */
  .elementor-menu-toggle {
    color: #04588C !important;
  }
  .elementor-menu-toggle svg {
    color: #04588C !important;
  }
}

/* ─────────────────────────────────────────────────────────────
   CUSTOM FLYOUT MENU  (right-side panel)
   ───────────────────────────────────────────────────────────── */

/* Hide Elementor's native dropdown on mobile — we use the custom flyout instead */
@media (max-width: 1024px) {
  .elementor-element-3885d04 > .elementor-nav-menu--dropdown {
    display: none !important;
  }
}

/* ── Overlay ── */
.titan-flyout-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(13, 14, 32, 0.5);
  z-index: 99998;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.titan-flyout-overlay.is-open {
  display: block;
  opacity: 1;
}

/* ── Flyout Panel ── */
.titan-flyout {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 320px;
  max-width: 85vw;
  background: #04588C;
  z-index: 99999;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.33, 1, 0.68, 1);
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  -webkit-overflow-scrolling: touch;
}
.titan-flyout.is-open {
  transform: translateX(0);
}

/* ── Header row (close button) ── */
.titan-flyout__header {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  padding: 12px 16px;
  border-bottom: none;
  flex-shrink: 0;
}
.titan-flyout__close {
  background: none;
  border: none;
  color: #fff;
  font-size: 48px;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  transition: color 0.2s ease;
}
.titan-flyout__close:hover {
  color: #F7CC97;
}

/* ── Menu body ── */
.titan-flyout__body {
  flex: 1 1 auto;
  padding: 8px 0;
}

/* ── Top-level menu items ── */
.titan-flyout__menu {
  margin: 0;
  padding: 0;
  list-style: none;
}
.titan-flyout__menu > .menu-item > a {
  display: block;
  color: #fff;
  font-family: "futura-pt", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 14px 24px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  transition: background 0.15s ease, color 0.15s ease;
}
.titan-flyout__menu > .menu-item > a:hover,
.titan-flyout__menu > .menu-item > a:focus {
  background: rgba(0, 0, 0, 0.15);
  color: #F7CC97;
}

/* ── Chevron for items with children ── */
.titan-flyout__menu > .menu-item-has-children > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.titan-flyout__menu > .menu-item-has-children > a::after {
  content: "\f107"; /* fa-angle-down */
  font-family: "Font Awesome 6 Pro", "Font Awesome 6 Free", "FontAwesome";
  font-weight: 900;
  font-size: 14px;
  color: #F7CC97;
  transition: transform 0.25s ease;
  margin-left: 12px;
  flex-shrink: 0;
}
.titan-flyout__menu > .menu-item-has-children.is-expanded > a::after {
  transform: rotate(180deg);
}

/* ── Sub-menus ── */
.titan-flyout__menu .sub-menu {
  display: none;
  margin: 0;
  padding: 0;
  list-style: none;
  background: rgba(0, 0, 0, 0.2);
}
.titan-flyout__menu .sub-menu .menu-item > a {
  display: block;
  color: rgba(255, 255, 255, 0.85);
  font-family: "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 400;
  text-decoration: none;
  padding: 11px 24px 11px 36px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  transition: background 0.15s ease, color 0.15s ease;
}
.titan-flyout__menu .sub-menu .menu-item > a:hover,
.titan-flyout__menu .sub-menu .menu-item > a:focus {
  background: rgba(0, 0, 0, 0.15);
  color: #F7CC97;
}

/* ── Utility actions at bottom of flyout ── */
.titan-flyout__utility {
  margin-top: 16px;
  padding: 20px 24px 24px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.titan-flyout__utility-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 11px 16px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-family: "futura-pt", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.titan-flyout__utility-btn:hover,
.titan-flyout__utility-btn:focus {
  background: rgba(255, 255, 255, 0.18);
  color: #F7CC97;
  border-color: rgba(255, 255, 255, 0.32);
}
.titan-flyout__utility-btn i {
  font-size: 15px;
  color: #F7CC97;
}
.titan-flyout__search {
  position: relative;
  margin-top: 4px;
}
.titan-flyout__search-icon {
  position: absolute;
  top: 50%;
  left: 14px;
  transform: translateY(-50%);
  color: rgba(255, 255, 255, 0.55);
  font-size: 14px;
  pointer-events: none;
}
.titan-flyout__search input[type="search"] {
  width: 100%;
  padding: 11px 14px 11px 38px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 6px;
  color: #fff;
  font-family: "proxima-nova", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}
.titan-flyout__search input[type="search"]::placeholder {
  color: rgba(255, 255, 255, 0.55);
}
.titan-flyout__search input[type="search"]:focus {
  background: rgba(255, 255, 255, 0.15);
  border-color: #F7CC97;
}

/* ── Hide flyout on desktop (nav widget handles it) ── */
@media (min-width: 1025px) {
  .titan-flyout,
  .titan-flyout-overlay {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .elementor-section,
  .e-con,
  .e-con-inner {
    overflow-x: clip;
  }

  img {
    max-width: 100%;
    height: auto;
  }

  /* Ensure Elementor containers don't exceed viewport */
  .elementor-widget-wrap,
  .elementor-widget-container {
    max-width: 100%;
  }
}


/* =============================================================
   HOMEPAGE  (post-7)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 100vh min-height — auto height + 50px padding */
  .elementor-7 .elementor-element.elementor-element-a390d42 {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 36px */
  .elementor-7 .elementor-element.elementor-element-301cc4a .elementor-heading-title { font-size: 36px; }

  /* Section headings */
  .elementor-7 .elementor-element.elementor-element-c09fefc .elementor-heading-title { font-size: 30px; }  /* 80px — "In the Community" */
  .elementor-7 .elementor-element.elementor-element-f637dee .elementor-heading-title { font-size: 30px; }  /* 60px */
  .elementor-7 .elementor-element.elementor-element-1e851bf .elementor-heading-title { font-size: 30px; }  /* 60px */
  .elementor-7 .elementor-element.elementor-element-a6b0817 .elementor-heading-title { font-size: 30px; }  /* 60px */
  .elementor-7 .elementor-element.elementor-element-a987b5c .elementor-heading-title { font-size: 30px; }  /* 60px */

  /* Value Proposition widget — element-level padding/font overrides */
  .elementor-7 .elementor-element.elementor-element-vp414b4 .titan-vp            { padding: 40px 20px; }
  .elementor-7 .elementor-element.elementor-element-vp414b4 .titan-vp-headline   { font-size: 30px; }
  .elementor-7 .elementor-element.elementor-element-vp414b4 .titan-vp-pillar-num { font-size: 28px; }
  .elementor-7 .elementor-element.elementor-element-vp414b4 .titan-vp-values-grid { grid-template-columns: repeat(2, 1fr); }

  /* Quote widget */
  .elementor-7 .elementor-element.elementor-element-qt0f177 .titan-quote      { padding: 40px 20px 50px; }
  .elementor-7 .elementor-element.elementor-element-qt0f177 .titan-quote-text { font-size: 22px; line-height: 1.4; }

  /* Numbers widget */
  .elementor-7 .elementor-element.elementor-element-nmd3dc7 .titan-numbers          { padding: 40px 16px; }
  .elementor-7 .elementor-element.elementor-element-nmd3dc7 .titan-numbers-headline { font-size: 30px; }
  .elementor-7 .elementor-element.elementor-element-nmd3dc7 .titan-numbers-grid     { grid-template-columns: repeat(2, 1fr); }
  .elementor-7 .elementor-element.elementor-element-nmd3dc7 .titan-numbers-value    { font-size: 28px; }

  /* Section vertical padding */
  .elementor-7 .elementor-element.elementor-element-dd09e1a { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-7 .elementor-element.elementor-element-ddf69c5 { --padding-top: 60px; --padding-bottom: 60px; --padding-left: 20px; --padding-right: 20px; }
  .elementor-7 .elementor-element.elementor-element-12e6a01 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-7 .elementor-element.elementor-element-751a76e { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-7 .elementor-element.elementor-element-e74cee8 { --padding-top: 50px; --padding-bottom: 50px; }

  /* Side padding on text columns */
  .elementor-7 .elementor-element.elementor-element-d187fc9 { --padding-left: 0px; }
  .elementor-7 .elementor-element.elementor-element-1c416e8 { --padding-right: 0px; }

  /* Absolutely-positioned decorative images — hide on mobile */
  .elementor-7 .elementor-element.elementor-element-51858e7,
  .elementor-7 .elementor-element.elementor-element-ab250c6 { display: none; }
}


/* =============================================================
   HOW WE'RE UNIQUE  (post-113)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height — content height + 50px padding */
  .elementor-113 .elementor-element.elementor-element-d556c14 {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix tight line-height */
  .elementor-113 .elementor-element.elementor-element-93e446b .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Intro heading: 48px → 28px (override beats component CSS specificity) */
  .elementor-113 .elementor-element.elementor-element-a263f00 .mfin-intro__heading { font-size: 28px; }

  /* Section heading: 60px → 30px */
  .elementor-113 .elementor-element.elementor-element-dd36e79 .elementor-heading-title { font-size: 30px; }

  /* Counter numbers: 50px → 30px */
  .elementor-113 .elementor-element.elementor-element-670e200 .elementor-counter-number-wrapper { font-size: 30px; }
  .elementor-113 .elementor-element.elementor-element-670e200 .elementor-counter-title         { font-size: 18px; }
  .elementor-113 .elementor-element.elementor-element-05e0cd2 .elementor-counter-number-wrapper { font-size: 30px; }
  .elementor-113 .elementor-element.elementor-element-05e0cd2 .elementor-counter-title         { font-size: 18px; }
  .elementor-113 .elementor-element.elementor-element-93c2cb3 .elementor-counter-number-wrapper { font-size: 30px; }
  .elementor-113 .elementor-element.elementor-element-93c2cb3 .elementor-counter-title         { font-size: 18px; }

  /* Section padding */
  .elementor-113 .elementor-element.elementor-element-294a5a1 { --padding-top: 50px; --padding-bottom: 50px; }
}


/* =============================================================
   OUR SOLUTIONS  (post-115)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height; match Corporate Careers padding style */
  .elementor-115 .elementor-element.elementor-element-f367adf {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
    padding-top: 50px !important;
    padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-115 .elementor-element.elementor-element-5cef9db .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Solution card headings: 40px → 24px */
  .elementor-115 .elementor-element.elementor-element-e91b36e .elementor-heading-title { font-size: 24px; }
  .elementor-115 .elementor-element.elementor-element-5d28905 .elementor-heading-title { font-size: 24px; }
  .elementor-115 .elementor-element.elementor-element-8449fd3 .elementor-heading-title { font-size: 24px; }

  /* Section padding */
  .elementor-115 .elementor-element.elementor-element-de96a52 { --padding-top: 50px; --padding-bottom: 50px; }
}


/* =============================================================
   OUR LEADERSHIP  (post-121)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height */
  .elementor-121 .elementor-element.elementor-element-fd88263 {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-121 .elementor-element.elementor-element-ccb2a06 .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Section headings: 60px → 30px */
  .elementor-121 .elementor-element.elementor-element-26879a3 .elementor-heading-title { font-size: 30px; }
  .elementor-121 .elementor-element.elementor-element-8dff2af .elementor-heading-title { font-size: 30px; }
  .elementor-121 .elementor-element.elementor-element-19a5e0a .elementor-heading-title { font-size: 30px; }
  .elementor-121 .elementor-element.elementor-element-e1dd5e5 .elementor-heading-title { font-size: 30px; }
  .elementor-121 .elementor-element.elementor-element-1202b55 .elementor-heading-title { font-size: 30px; }

  /* Section vertical padding */
  .elementor-121 .elementor-element.elementor-element-fb2883b { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-121 .elementor-element.elementor-element-85644a0 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-121 .elementor-element.elementor-element-1eb9116 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-121 .elementor-element.elementor-element-8a40b62 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-121 .elementor-element.elementor-element-c0c650d { --padding-top: 50px; --padding-bottom: 50px; }

  /* Side padding on text columns */
  .elementor-121 .elementor-element.elementor-element-d959d0b { --padding-left: 0px; }
  .elementor-121 .elementor-element.elementor-element-64c01ea { --padding-left: 0px; }

  /* Absolutely-positioned decorative images */
  .elementor-121 .elementor-element.elementor-element-05bc7a4,
  .elementor-121 .elementor-element.elementor-element-0bfdca9,
  .elementor-121 .elementor-element.elementor-element-8e5880d { display: none; }
}


/* =============================================================
   EXPLORE MEMBERSHIP  (post-125)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height */
  .elementor-125 .elementor-element.elementor-element-39b38d5 {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-125 .elementor-element.elementor-element-91b8aeb .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Section headings: 60px → 30px */
  .elementor-125 .elementor-element.elementor-element-b14c283 .elementor-heading-title { font-size: 30px; }
  .elementor-125 .elementor-element.elementor-element-a8196b0 .elementor-heading-title { font-size: 30px; }
  .elementor-125 .elementor-element.elementor-element-6ad707b .elementor-heading-title { font-size: 30px; }
  .elementor-125 .elementor-element.elementor-element-3ec1d6c .elementor-heading-title { font-size: 30px; }
  .elementor-125 .elementor-element.elementor-element-a2323ed .elementor-heading-title { font-size: 30px; }

  /* Section vertical padding */
  .elementor-125 .elementor-element.elementor-element-31e12fd { --padding-top: 50px; }
  .elementor-125 .elementor-element.elementor-element-ef2dc27 { --padding-top: 30px; --padding-bottom: 30px; --padding-left: 20px; --padding-right: 20px; }
  .elementor-125 .elementor-element.elementor-element-3df4d80 { --padding-bottom: 50px; }
  .elementor-125 .elementor-element.elementor-element-384cb02 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-125 .elementor-element.elementor-element-afe8e02 { --padding-top: 50px; --padding-bottom: 50px; }

  /* Side padding on text columns */
  .elementor-125 .elementor-element.elementor-element-d64561a { --padding-left: 0px; }

  /* Absolutely-positioned decorative images */
  .elementor-125 .elementor-element.elementor-element-eb39b81 { display: none; }
}


/* =============================================================
   CORPORATE CAREERS  (post-127)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height */
  .elementor-127 .elementor-element.elementor-element-5bb8a1a {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-127 .elementor-element.elementor-element-404b87f .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Intro heading: 48px → 28px */
  .elementor-127 .elementor-element.elementor-element-60f7496 .mfin-intro__heading { font-size: 28px; }

  /* Album heading: 60px → 28px */
  .elementor-127 .elementor-element.elementor-element-65fbc4f .mfin-album__heading { font-size: 28px; }

  /* Section heading: 60px → 30px */
  .elementor-127 .elementor-element.elementor-element-a060c3e .elementor-heading-title { font-size: 30px; }

  /* Section vertical padding */
  .elementor-127 .elementor-element.elementor-element-50351c1 { --padding-top: 40px; }
  .elementor-127 .elementor-element.elementor-element-a71eafd { --padding-top: 50px; --padding-bottom: 50px; }

  /* Side padding */
  .elementor-127 .elementor-element.elementor-element-1898099 { --padding-right: 0px; }

  /* Absolutely-positioned decorative image */
  .elementor-127 .elementor-element.elementor-element-44822ef { display: none; }
}


/* =============================================================
   FIND A MEMBER FIRM  (post-133)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height */
  .elementor-133 .elementor-element.elementor-element-6f85838 {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-133 .elementor-element.elementor-element-5868746 .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Section padding */
  .elementor-133 .elementor-element.elementor-element-7ef2574 { --padding-top: 40px; --padding-bottom: 40px; }
}


/* =============================================================
   CONTACT US  (post-2)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-2 .elementor-element.elementor-element-561f2ac .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Section padding */
  .elementor-2 .elementor-element.elementor-element-92c6a85 { --padding-top: 40px; --padding-bottom: 40px; }
}


/* =============================================================
   MEMBER FIRMS  (post-666)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-666 .elementor-element.elementor-element-d7f5770 .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Section headings: 60px → 30px */
  .elementor-666 .elementor-element.elementor-element-f08d43f .elementor-heading-title { font-size: 30px; }
  .elementor-666 .elementor-element.elementor-element-813728e .elementor-heading-title { font-size: 30px; }
  .elementor-666 .elementor-element.elementor-element-4fc32c1 .elementor-heading-title { font-size: 30px; }
  .elementor-666 .elementor-element.elementor-element-d23d74e .elementor-heading-title { font-size: 30px; }

  /* Section vertical padding */
  .elementor-666 .elementor-element.elementor-element-aafd6d6 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-666 .elementor-element.elementor-element-c910944 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-666 .elementor-element.elementor-element-92777d0 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-666 .elementor-element.elementor-element-a65b0bc { --padding-top: 50px; --padding-bottom: 50px; }

  /* Side padding */
  .elementor-666 .elementor-element.elementor-element-994834a { --padding-left: 0px; }
  .elementor-666 .elementor-element.elementor-element-3cbf02f { --padding-right: 0px; }

  /* Absolutely-positioned decorative images */
  .elementor-666 .elementor-element.elementor-element-3c7c77a,
  .elementor-666 .elementor-element.elementor-element-2954641 { display: none; }
}


/* =============================================================
   ADVISOR OPPORTUNITIES  (post-721)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-721 .elementor-element.elementor-element-ea17044 .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Section headings */
  .elementor-721 .elementor-element.elementor-element-4b9a8ca .elementor-heading-title { font-size: 30px; }  /* 60px */
  .elementor-721 .elementor-element.elementor-element-b8128c2 .elementor-heading-title { font-size: 24px; }  /* 40px */
  .elementor-721 .elementor-element.elementor-element-dc0abd3 .elementor-heading-title { font-size: 24px; }  /* 40px */
  .elementor-721 .elementor-element.elementor-element-425f0b5 .elementor-heading-title { font-size: 30px; }  /* 60px */
  .elementor-721 .elementor-element.elementor-element-993246f .elementor-heading-title { font-size: 30px; }  /* 60px */

  /* Section vertical padding */
  .elementor-721 .elementor-element.elementor-element-f081be1 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-721 .elementor-element.elementor-element-87a8aaa { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-721 .elementor-element.elementor-element-0907c60 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-721 .elementor-element.elementor-element-9f8f312 { --padding-top: 50px; --padding-bottom: 50px; }

  /* Side padding */
  .elementor-721 .elementor-element.elementor-element-8baa323 { --padding-right: 0px; }
  .elementor-721 .elementor-element.elementor-element-2053538 { --padding-left: 20px; }

  /* Absolutely-positioned decorative image */
  .elementor-721 .elementor-element.elementor-element-8ae8ea7 { display: none; }
}


/* =============================================================
   CARRIERS AND PARTNERS  (post-725)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height */
  .elementor-725 .elementor-element.elementor-element-65e37e5 {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-725 .elementor-element.elementor-element-a4d7140 .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Section headings: 60px → 30px */
  .elementor-725 .elementor-element.elementor-element-00507eb .elementor-heading-title { font-size: 30px; }
  .elementor-725 .elementor-element.elementor-element-a443521 .elementor-heading-title { font-size: 30px; }
  .elementor-725 .elementor-element.elementor-element-5f1aff6 .elementor-heading-title { font-size: 30px; }
  .elementor-725 .elementor-element.elementor-element-ed90afd .elementor-heading-title { font-size: 30px; }
  .elementor-725 .elementor-element.elementor-element-fa3c200 .elementor-heading-title { font-size: 30px; }

  /* Section vertical padding */
  .elementor-725 .elementor-element.elementor-element-c626fa3 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-725 .elementor-element.elementor-element-d0d33fc { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-725 .elementor-element.elementor-element-5a560d4 { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-725 .elementor-element.elementor-element-03a5fcb { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-725 .elementor-element.elementor-element-11860a7 { --padding-top: 50px; --padding-bottom: 50px; }

  /* Side padding */
  .elementor-725 .elementor-element.elementor-element-e64d949 { --padding-right: 0px; }

  /* Absolutely-positioned decorative image */
  .elementor-725 .elementor-element.elementor-element-c9d22a1 { display: none; }
}


/* =============================================================
   CLIENT LOGIN  (post-770)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-770 .elementor-element.elementor-element-dc27e4a .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Section padding */
  .elementor-770 .elementor-element.elementor-element-685948c { --padding-top: 50px; --padding-bottom: 50px; }
}


/* =============================================================
   INSURANCE SOLUTIONS  (post-782)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height */
  .elementor-782 .elementor-element.elementor-element-d137429 {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-782 .elementor-element.elementor-element-f8f25a5 .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Section headings: 60px → 30px */
  .elementor-782 .elementor-element.elementor-element-e07c130 .elementor-heading-title { font-size: 30px; }
  .elementor-782 .elementor-element.elementor-element-13ef7b1 .elementor-heading-title { font-size: 30px; }

  /* Section vertical padding */
  .elementor-782 .elementor-element.elementor-element-b6ef85e { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-782 .elementor-element.elementor-element-3aa27c7 { --padding-bottom: 40px; }

  /* Side padding */
  .elementor-782 .elementor-element.elementor-element-b6e413b { --padding-right: 0px; }

  /* Absolutely-positioned decorative image */
  .elementor-782 .elementor-element.elementor-element-0010d73 { display: none; }
}


/* =============================================================
   CORPORATE SOLUTIONS  (post-783)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height */
  .elementor-783 .elementor-element.elementor-element-7a80d7d {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-783 .elementor-element.elementor-element-d7c0192 .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Section headings: 60px → 30px */
  .elementor-783 .elementor-element.elementor-element-76ace92 .elementor-heading-title { font-size: 30px; }
  .elementor-783 .elementor-element.elementor-element-ac7608d .elementor-heading-title { font-size: 30px; }
  .elementor-783 .elementor-element.elementor-element-0c0bfbe .elementor-heading-title { font-size: 30px; }

  /* Inline text element: 34px → 22px */
  .elementor-783 .elementor-element.elementor-element-9bc572f { font-size: 22px; }

  /* Section vertical padding */
  .elementor-783 .elementor-element.elementor-element-79d9c2d { --padding-top: 50px; --padding-bottom: 50px; }
  .elementor-783 .elementor-element.elementor-element-e15e370 { --padding-top: 50px; --padding-bottom: 50px; }

  /* Highlight box padding: 80px all-sides → 30px */
  .elementor-783 .elementor-element.elementor-element-mbt31896 { --padding-top: 30px; --padding-bottom: 30px; --padding-left: 20px; --padding-right: 20px; }
  .elementor-783 .elementor-element.elementor-element-f5b50f5  { --padding-top: 30px; --padding-bottom: 30px; --padding-left: 20px; --padding-right: 20px; }
  .elementor-783 .elementor-element.elementor-element-08b9c79  { --padding-top: 30px; --padding-bottom: 30px; --padding-left: 20px; --padding-right: 20px; }

  /* Missing heading: M Retirement Solutions — 60px → 30px */
  .elementor-783 .elementor-element.elementor-element-ret_heading .elementor-heading-title { font-size: 30px; }

  /* Side padding on text column */
  .elementor-783 .elementor-element.elementor-element-8383c93 { --padding-left: 0px; }

  /* Absolutely-positioned decorative image */
  .elementor-783 .elementor-element.elementor-element-32d598c { display: none; }
}


/* =============================================================
   WEALTH SOLUTIONS  (post-784)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height */
  .elementor-784 .elementor-element.elementor-element-63daddd {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-784 .elementor-element.elementor-element-842dc2b .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Card headings: 36px → 22px */
  .elementor-784 .elementor-element.elementor-element-b2ba2ac .elementor-heading-title { font-size: 22px; }
  .elementor-784 .elementor-element.elementor-element-504477e .elementor-heading-title { font-size: 22px; }
  .elementor-784 .elementor-element.elementor-element-46eaf13 .elementor-heading-title { font-size: 22px; }

  /* Section padding */
  .elementor-784 .elementor-element.elementor-element-8a89d52 { --padding-top: 30px; --padding-bottom: 30px; }

  /* Content column left margin: 60px → 0 */
  .elementor-784 .elementor-element.elementor-element-0300efa { --margin-left: 0px; }
  .elementor-784 .elementor-element.elementor-element-0e3db33 { --margin-left: 0px; }
  .elementor-784 .elementor-element.elementor-element-280d127 { --margin-left: 0px; }
}


/* =============================================================
   MEMBER FIRM SERVICES  (post-785)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height */
  .elementor-785 .elementor-element.elementor-element-7117549 {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-785 .elementor-element.elementor-element-7c22114 .elementor-heading-title { font-size: 30px; line-height: 1.2; }
	
	.elementor-950 .elementor-element.elementor-element-99150ca .elementor-heading-title {
		       font-size: 30px; line-height: 1.2;
	}
}


/* =============================================================
   M FINANCIAL RE  (post-786)
   ============================================================= */
@media (max-width: 767px) {

  /* Hero: remove 500px min-height */
  .elementor-786 .elementor-element.elementor-element-7117549 {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 50px !important;
    --padding-bottom: 50px !important;
  }

  /* Hero heading: 72px → 30px, fix line-height */
  .elementor-786 .elementor-element.elementor-element-1759d3f .elementor-heading-title { font-size: 30px; line-height: 1.2; }

  /* Section heading: 60px → 30px */
  .elementor-786 .elementor-element.elementor-element-d164621 .elementor-heading-title { font-size: 30px; }

  /* Section padding */
  .elementor-786 .elementor-element.elementor-element-3926a88 { --padding-top: 50px; --padding-bottom: 50px; }
}


/* =============================================================
   FOOTER TEMPLATE  (post-437) — site-wide
   ============================================================= */
@media (max-width: 767px) {

  /* Section padding: 80px → 40px */
  .elementor-437 .elementor-element.elementor-element-21282c7 { --padding-top: 40px; --padding-bottom: 40px; }

  /* Right content panel padding: 40px → 20px */
  .elementor-437 .elementor-element.elementor-element-0d10b35 { --padding-top: 24px; --padding-bottom: 24px; --padding-left: 20px; --padding-right: 20px; }

  /* Logo column right padding: 40px → 0 */
  .elementor-437 .elementor-element.elementor-element-1599c73 { --padding-right: 0px; }

  /* Dallas city heading: 45px → 24px */
  .elementor-437 .elementor-element.elementor-element-8aee61f .elementor-heading-title { font-size: 24px; }

  /* Portland city heading: 45px → 24px */
  .elementor-437 .elementor-element.elementor-element-68aedd4 .elementor-heading-title { font-size: 24px; }
}


/* =============================================================
   GLOBAL COMPONENT OVERRIDES  (mobile)
   ============================================================= */
@media (max-width: 767px) {

  /* Leadership drawer person names: 2rem (32px) → 22px */
  .mfin-drawer__name { font-size: 22px !important; }

  /* Horizontal timeline entry titles: 32px → 20px, bold, primary blue */
  .titan-horizontal-timeline__title {
    font-size: 20px !important;
    font-weight: 800 !important;
    color: #0068a5 !important;
  }

  /* Horizontal timeline — shrink the 144px arrows to a mobile-friendly size
     and tighten the gap so the slider gets most of the viewport width. */
  .titan-horizontal-timeline-wrapper {
    gap: 6px !important;
    align-items: center;
  }
  button.titan-timeline-arrow {
    display: flex !important;
    font-size: 40px !important;
    flex-shrink: 0;
    width: 24px !important;
    justify-content: center;
  }

  /* Main slide: image stacked above content */
  .titan-horizontal-timeline--img-left .titan-horizontal-timeline__slide-inner,
  .titan-horizontal-timeline--img-right .titan-horizontal-timeline__slide-inner {
    grid-template-columns: 1fr !important;
  }
  /* img-right puts media at order:2 on desktop — reset so it renders first (top) */
  .titan-horizontal-timeline--img-right .titan-horizontal-timeline__media {
    order: -1 !important;
  }

  /* Nav items: single item centered, full width */
  .titan-horizontal-timeline__nav-track .titan-horizontal-timeline__nav-item {
    margin: 0 4px !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /* Main slide: full width, no partial neighbors */
  .titan-horizontal-timeline__main-track .slick-slide {
    padding: 0 8px !important;
  }

  /* Give the slide-inner enough breathing room so the border isn't clipped */
  .titan-horizontal-timeline__slide-inner {
    margin-bottom: 12px !important;
  }

  /* Hide the dot progress nav on mobile — arrows are sufficient */
  .titan-horizontal-timeline__dots,
  .titan-horizontal-timeline__progress {
    display: none !important;
  }
}


/* =============================================================
   BATCH MOBILE FIXES  (max-width: 767px)
   ============================================================= */
@media (max-width: 767px) {

  /* ── #22 Interior hero: consistent padding + heading sizes across all pages ── */
  .e-con.e-parent:first-child {
    --padding-top: 2rem !important;
    --padding-bottom: 2rem !important;
    --padding-left: 20px !important;
    --padding-right: 20px !important;
  }
  /* Hero heading text: left-aligned across all pages */
  .e-con.e-parent:first-child .elementor-heading-title,
  .e-con.e-parent:first-child .elementor-widget-text-editor,
  .e-con.e-parent:first-child .elementor-widget-text-editor p {
    text-align: left !important;
  }

  /* Homepage video overlay: darken on mobile */
  .elementor-7 .elementor-element.elementor-element-a390d42::before,
  .elementor-7 .elementor-element.elementor-element-a390d42 > .elementor-background-video-container::before,
  .elementor-7 .elementor-element.elementor-element-a390d42 > .e-con-inner > .elementor-background-video-container::before {
    background-image: none !important;
    background-color: rgba(13, 14, 32, 0.65) !important;
  }

  /* ── #23 Flyout close button: compact, pinned top-right, doesn't cover menu items ── */
  .titan-flyout__header {
    padding: 6px 8px !important;
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    width: auto !important;
    background: transparent !important;
  }
  .titan-flyout__close {
    font-size: 28px !important;
    font-weight: 300 !important;
    color: #fff !important;
    line-height: 1 !important;
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    background: transparent !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .titan-flyout__body {
    padding-top: 50px !important;
  }

  /* ── #24 + #44 Solution/service cards: center icon, text, and buttons site-wide ── */
  .elementor-widget-icon .elementor-icon {
    margin: 0 auto !important;
    text-align: center !important;
  }
  /* Cards with light background: center all content */
  .e-con[class*="background"] .elementor-widget-icon,
  .e-con[class*="background"] .elementor-widget-heading,
  .e-con[class*="background"] .elementor-widget-text-editor,
  .e-con[class*="background"] .elementor-widget-button,
  .elementor-121 .elementor-widget-icon,
  .elementor-121 .elementor-widget-heading,
  .elementor-121 .elementor-widget-text-editor,
  .elementor-121 .elementor-widget-button,
  .elementor-782 .elementor-widget-icon,
  .elementor-782 .elementor-widget-heading,
  .elementor-782 .elementor-widget-text-editor,
  .elementor-782 .elementor-widget-button {
    text-align: center !important;
  }
  .elementor-121 .elementor-widget-button .elementor-button-wrapper,
  .elementor-782 .elementor-widget-button .elementor-button-wrapper {
    text-align: center !important;
  }

  /* ── #25 Full-width images + margin below eyebrow text ── */
  .elementor-widget-image img {
    width: 100% !important;
    height: auto !important;
  }
  .elementor-widget-image {
    margin-bottom: 16px !important;
  }

  /* ── #26 Leadership cards: center names, titles, buttons ── */
  .mfin-leadership__info {
    text-align: center !important;
  }
  .mfin-leadership__bio-btn {
    margin: 8px auto 0 !important;
    display: block !important;
    width: fit-content !important;
  }

  /* ── #27 Button spacing (join our team CTA buttons) ── */
  .elementor-widget-button + .elementor-widget-button {
    margin-top: 12px !important;
  }

  /* ── #28 "At M Financial" large intro lead text: 75% of desktop ── */
  .mfin-intro__lead {
    font-size: 25px !important;
    line-height: 1.35 !important;
  }
  .mfin-intro__heading {
    font-size: 32px !important;
    line-height: 1.25 !important;
  }

  /* ── #29 + #42 Benefits list: tighten margin, top-align bullets ── */
  .elementor-widget-text-editor ul,
  .mfin-intro__benefits ul {
    margin-top: 8px !important;
    padding-left: 1.4em !important;
  }
  .elementor-widget-text-editor ul li,
  .mfin-intro__benefits li,
  .mfin-intro__benefit-item {
    list-style-position: outside !important;
    padding-left: 0.4em !important;
    margin-bottom: 4px !important;
    line-height: 1.5 !important;
  }

  /* ── #30 + #43 Culture gallery: horizontal scroll carousel with indicators ── */
  .mfin-album__grid {
    display: flex !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch;
    gap: 12px !important;
    padding-bottom: 8px !important;
    scrollbar-width: none;
  }
  .mfin-album__grid::-webkit-scrollbar {
    display: none;
  }
  .mfin-album__grid .mfin-album__item {
    flex: 0 0 85vw !important;
    max-width: 85vw !important;
    scroll-snap-align: center;
    height: 220px !important;
  }
  .mfin-album__grid .mfin-album__item--large {
    flex: 0 0 85vw !important;
    max-width: 85vw !important;
    height: 220px !important;
  }
  /* Scroll indicator bar beneath gallery */
  .mfin-album__grid::after {
    content: '';
    flex: 0 0 1px;
  }
  .mfin-album {
    position: relative;
  }
  .mfin-album__grid + .mfin-album__scroll-nav,
  .mfin-album__scroll-hint {
    display: block !important;
  }
  /* CSS scroll indicator dots via box-shadow hack */
  .mfin-album__inner::after {
    content: '← swipe →';
    display: block;
    text-align: center;
    font-size: 12px;
    color: #94A3B8;
    font-weight: 500;
    letter-spacing: 0.05em;
    margin-top: 10px;
    text-transform: uppercase;
  }

  /* ── #31 Remove border-right when columns stack ── */
  .e-con > .e-con {
    border-right: none !important;
  }
  .elementor-133 .e-con {
    border-right: none !important;
  }

  /* ── #32 Carousel-to-eyebrow spacing ── */
  .owl-carousel,
  .slick-slider {
    margin-bottom: 24px !important;
  }

  /* ── #33 + #45 FAQ nested accordion: consistent alignment and spacing ── */
  .e-n-accordion .e-n-accordion-item {
    margin-bottom: 0 !important;
    border-left: none !important;
    padding-left: 0 !important;
  }
  .e-n-accordion .e-n-accordion-item-title {
    padding: 14px 0 !important;
    gap: 12px !important;
  }
  .e-n-accordion .e-n-accordion-item + .e-n-accordion-item {
    border-top: 1px solid #E2E8F0;
  }
  /* Also cover legacy accordion widget */
  .elementor-widget-accordion .elementor-accordion-item {
    padding: 0 !important;
  }
  .elementor-widget-accordion .elementor-tab-title {
    padding: 14px 0 !important;
  }

  /* ── #34 + #35 + #40 Gravity Forms survey: checkbox alignment, remove left border/margin ── */
  .gform_wrapper .gchoice {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }
  .gform_wrapper .gfield-choice-input {
    margin-top: 5px !important;
    flex-shrink: 0 !important;
    width: 16px !important;
    height: 16px !important;
  }
  .gform_wrapper .gfield_checkbox .gchoice,
  .gform_wrapper .gfield_radio .gchoice {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }
  .gform_wrapper .gfield_checkbox .gchoice label,
  .gform_wrapper .gfield_radio .gchoice label {
    flex: 1 !important;
    min-width: 0 !important;
  }
  /* Remove border-left and margin-left from survey form on mobile */
  .gform_wrapper .gform_page,
  .gform_wrapper .gform_body,
  .gform_wrapper .gform_page .gform_body,
  .gform_wrapper .gform_fields,
  .gform_wrapper.gravity-theme .gform_fields,
  .gform_wrapper .gfield {
    border-left: none !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
  }
  .gform_wrapper.gravity-theme .gform_page {
    border-left: 0 !important;
    margin-left: 0 !important;
  }

  /* ── #36 + #37 Staff testimonials: arrows not clipped, no equal height ── */
  .mf-testimonials-carousel .slick-prev {
    left: -4px !important;
  }
  .mf-testimonials-carousel .slick-next {
    right: -4px !important;
  }
  .mf-testimonials-carousel .slick-list {
    overflow: visible !important;
    padding: 0 24px !important;
  }
  .mf-testimonials-carousel .slick-slide {
    height: auto !important;
  }
  .mf-testimonials-carousel .mf-testimonial-card {
    height: auto !important;
    min-height: 0 !important;
  }

  /* ── #38 Find a Firm search results: full width ── */
  [class*="firm-search"] .result,
  [class*="firm-search"] .card,
  [class*="firm"] .search-result,
  .firm-results .col,
  .firm-results [class*="col-"] {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  /* ── #39 + #47 Insights & Media posts: single column, full width ── */
  .insights-grid {
    grid-template-columns: 1fr !important;
    display: grid !important;
  }
  .insights-card {
    width: 100% !important;
    max-width: 100% !important;
  }
  .elementor-widget-loop-grid .elementor-loop-container,
  .elementor-posts-container {
    grid-template-columns: 1fr !important;
    display: grid !important;
  }
  .elementor-widget-loop-grid .e-loop-item,
  .elementor-post {
    width: 100% !important;
    max-width: 100% !important;
  }
}


/* =============================================================
   TABLET  (768px – 1024px)  — lighter touch
   ============================================================= */
@media (min-width: 768px) and (max-width: 1024px) {

  /* Scale hero headings on tablet (72px → 52px) */
  .elementor-7   .elementor-element.elementor-element-301cc4a .elementor-heading-title,
  .elementor-113 .elementor-element.elementor-element-93e446b .elementor-heading-title,
  .elementor-115 .elementor-element.elementor-element-5cef9db .elementor-heading-title,
  .elementor-121 .elementor-element.elementor-element-ccb2a06 .elementor-heading-title,
  .elementor-125 .elementor-element.elementor-element-91b8aeb .elementor-heading-title,
  .elementor-127 .elementor-element.elementor-element-404b87f .elementor-heading-title,
  .elementor-133 .elementor-element.elementor-element-5868746 .elementor-heading-title,
  .elementor-2   .elementor-element.elementor-element-561f2ac .elementor-heading-title,
  .elementor-666 .elementor-element.elementor-element-d7f5770 .elementor-heading-title,
  .elementor-721 .elementor-element.elementor-element-ea17044 .elementor-heading-title,
  .elementor-725 .elementor-element.elementor-element-a4d7140 .elementor-heading-title,
  .elementor-770 .elementor-element.elementor-element-dc27e4a .elementor-heading-title,
  .elementor-782 .elementor-element.elementor-element-f8f25a5 .elementor-heading-title,
  .elementor-783 .elementor-element.elementor-element-d7c0192 .elementor-heading-title,
  .elementor-784 .elementor-element.elementor-element-842dc2b .elementor-heading-title,
  .elementor-785 .elementor-element.elementor-element-7c22114 .elementor-heading-title,
  .elementor-950 .elementor-element.elementor-element-99150ca .elementor-heading-title,
  .elementor-786 .elementor-element.elementor-element-1759d3f .elementor-heading-title { font-size: 52px; line-height: 52px; }

  /* Side padding on text columns: 80px → 40px on tablet */
  .elementor-7   .elementor-element.elementor-element-d187fc9 { --padding-left: 40px; }
  .elementor-7   .elementor-element.elementor-element-1c416e8 { --padding-right: 40px; }
  .elementor-121 .elementor-element.elementor-element-d959d0b { --padding-left: 40px; }
  .elementor-121 .elementor-element.elementor-element-64c01ea { --padding-left: 40px; }
  .elementor-125 .elementor-element.elementor-element-d64561a { --padding-left: 40px; }
  .elementor-666 .elementor-element.elementor-element-994834a { --padding-left: 40px; }
  .elementor-666 .elementor-element.elementor-element-3cbf02f { --padding-right: 40px; }
  .elementor-721 .elementor-element.elementor-element-8baa323 { --padding-right: 40px; }
  .elementor-725 .elementor-element.elementor-element-e64d949 { --padding-right: 40px; }
  .elementor-782 .elementor-element.elementor-element-b6e413b { --padding-right: 40px; }
  .elementor-783 .elementor-element.elementor-element-8383c93 { --padding-left: 40px; }
  .elementor-127 .elementor-element.elementor-element-1898099 { --padding-right: 40px; }

  /* Numbers grid: 5-col → 3-col on tablet */
  .elementor-7 .elementor-element.elementor-element-nmd3dc7 .titan-numbers-grid { grid-template-columns: repeat(3, 1fr); }
}


/* =============================================================
   BACK TO TOP BUTTON  (mobile only)
   ============================================================= */
@media (max-width: 767px) {
  .back-to-top {
    position: fixed;
    bottom: 24px;
    right: 20px;
    width: 46px;
    height: 46px;
    background: #04588C;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    opacity: 0;
    pointer-events: none;
    transform: translateY(10px);
    transition: opacity 0.25s ease, transform 0.25s ease;
    z-index: 8990;
  }

  .back-to-top.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .back-to-top svg {
    display: block;
    flex-shrink: 0;
  }
}


/* =============================================================
   LANDSCAPE MOBILE  (phones rotated — short height, wider viewport)
   Targets: all iPhones/Galaxies horizontal (≤ 500px tall)
   ============================================================= */
@media (orientation: landscape) and (max-height: 500px) {

  /* Hero: reduce min-height so it doesn't fill entire short viewport */
  .e-con.e-parent:first-child,
  .elementor-section.elementor-top-section:first-child {
    --min-height: 0px !important;
    min-height: 0 !important;
    --padding-top: 2rem !important;
    --padding-bottom: 2rem !important;
    --padding-left: 24px !important;
    --padding-right: 24px !important;
  }

  /* Hero headings + copy: left-aligned */
  .e-con.e-parent:first-child .elementor-heading-title,
  .e-con.e-parent:first-child .elementor-widget-text-editor,
  .e-con.e-parent:first-child .elementor-widget-text-editor p {
    text-align: left !important;
  }

  /* Homepage hero video overlay: darken for text readability */
  .elementor-7 .elementor-element.elementor-element-a390d42::before,
  .elementor-7 .elementor-element.elementor-element-a390d42 > .elementor-background-video-container::before,
  .elementor-7 .elementor-element.elementor-element-a390d42 > .e-con-inner > .elementor-background-video-container::before {
    background-image: none !important;
    background-color: rgba(13, 14, 32, 0.65) !important;
  }

  /* Hero heading size: scale down for short viewports */
  .e-con.e-parent:first-child h1.elementor-heading-title,
  .e-con.e-parent:first-child h2.elementor-heading-title { font-size: 36px !important; line-height: 1.15 !important; }

  /* Global footer tier: shrink headings so they don't overflow narrow columns */
  .elementor-location-footer .elementor-element.elementor-element-21282c7 h2.elementor-heading-title {
    font-size: 20px !important;
    line-height: 1.2 !important;
  }
  .elementor-location-footer .elementor-element.elementor-element-21282c7 h3.elementor-heading-title {
    font-size: 26px !important;
    line-height: 1.1 !important;
  }
  .elementor-location-footer .elementor-element.elementor-element-21282c7 p {
    font-size: 14px !important;
    line-height: 1.5 !important;
  }

  /* Flyout menu: compact spacing + fade indicator so it doesn't look cut off on short viewports */
  .titan-flyout__menu > .menu-item > a { padding: 10px 20px !important; font-size: 14px !important; }
  .titan-flyout__menu .sub-menu .menu-item > a { padding: 8px 20px 8px 32px !important; font-size: 13px !important; }
  .titan-flyout__utility { padding: 12px 20px 16px !important; gap: 8px !important; }
  .titan-flyout__utility-btn { padding: 9px 14px !important; font-size: 13px !important; }
  .titan-flyout__search input[type="search"] { padding: 9px 12px 9px 34px !important; font-size: 13px !important; }
  /* Scroll-hint: darker fade + downward chevron at bottom of flyout */
  .titan-flyout::after {
    content: '\f107';
    font-family: "Font Awesome 6 Pro", "Font Awesome 6 Free", "FontAwesome";
    font-weight: 900;
    position: fixed;
    bottom: 6px;
    right: 0;
    max-width: 85vw;
    width: 320px;
    height: 40px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    color: #F7CC97;
    font-size: 18px;
    padding-bottom: 2px;
    background: linear-gradient(to bottom, rgba(3, 58, 95, 0), rgba(3, 58, 95, 0.95) 60%);
    pointer-events: none;
    z-index: 100000;
    opacity: 0;
    transition: opacity 0.2s ease;
    animation: titan-flyout-bounce 1.6s ease-in-out infinite;
  }
  .titan-flyout.is-open::after { opacity: 1; }

  @keyframes titan-flyout-bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
  }
}


/* =============================================================
   HOW WE'RE UNIQUE — modal title + counter side border on mobile
   ============================================================= */
@media (max-width: 767px) {
  /* Modal titles (e.g. "Comprehensive Wealth Management") — shrink on mobile */
  .mfin-pillars__modal-title {
    font-size: 28px !important;
    line-height: 1.15 !important;
  }
  /* Counter tile left side border — remove on mobile */
  .elementor-113 .elementor-element.elementor-element-2bf13f8 {
    border-left: none !important;
  }
}


/* =============================================================
   ADVISOR OPPORTUNITIES — FAQ nested container indent on mobile
   Last 3 accordion items live in a nested container with 20px
   left padding — remove it on mobile so all items align.
   ============================================================= */
@media (max-width: 767px) {
  .elementor-element.elementor-element-3320a59 {
    --padding-left: 0px !important;
    padding-left: 0 !important;
  }
}


/* =============================================================
   CARRIERS & PARTNERS  (post-725)
   Hero: add dark overlay for readability; 1st tier: shrink heading
   that's 60px in a 308px column (wraps awkwardly on iPad 10 vertical).
   ============================================================= */
@media (max-width: 1024px) {
  /* Hero overlay */
  .elementor-725 .elementor-element.elementor-element-65e37e5 {
    position: relative !important;
    isolation: isolate;
  }
  .elementor-725 .elementor-element.elementor-element-65e37e5::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(13, 14, 32, 0.55);
    pointer-events: none;
    z-index: 1;
  }
  .elementor-725 .elementor-element.elementor-element-65e37e5 > .e-con-inner {
    position: relative;
    z-index: 2;
  }
  /* 1st tier heading 60px → 34px so it fits */
  .elementor-725 .elementor-element.elementor-element-00507eb .elementor-heading-title {
    font-size: 34px !important;
    line-height: 1.15 !important;
  }
}


/* =============================================================
   OUR LEADERSHIP  (post-121)
   Galaxy horizontal / landscape phones: shrink portrait images
   so the tier isn't so tall and sparse.
   ============================================================= */
@media (orientation: landscape) and (max-height: 500px) {
  .elementor-121 .elementor-element.elementor-element-85644a0 img {
    max-width: 160px !important;
    height: auto !important;
  }
  .elementor-121 .elementor-element.elementor-element-85644a0 .elementor-widget-image {
    text-align: center;
  }
}


/* =============================================================
   INSURANCE SOLUTIONS  (post-782)
   Hero text container hard-coded to 1250px — overflows tablet widths.
   Also add dark overlay for readability over bright office image.
   ============================================================= */
@media (max-width: 1199px) {
  .elementor-782 .elementor-element.elementor-element-dd1979e {
    max-width: 100% !important;
    width: 100% !important;
  }
}
@media (max-width: 1024px) {
  .elementor-782 .elementor-element.elementor-element-d137429 {
    position: relative !important;
    isolation: isolate;
  }
  .elementor-782 .elementor-element.elementor-element-d137429::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(13, 14, 32, 0.55);
    pointer-events: none;
    z-index: 1;
  }
  .elementor-782 .elementor-element.elementor-element-d137429 > .e-con-inner {
    position: relative;
    z-index: 2;
  }
}


/* =============================================================
   FIND A MEMBER FIRM — card grid responsive layout
   Default is 3 columns (33.33%) but that's too narrow on mobile.
   ============================================================= */
@media (max-width: 767px) {
  .faf-result-card {
    flex: 1 1 100% !important;
    max-width: 100% !important;
  }
}
@media (min-width: 768px) and (max-width: 1024px) {
  .faf-result-card {
    flex: 1 1 calc(50% - 6px) !important;
    max-width: calc(50% - 6px) !important;
  }
}


/* =============================================================
   INSIGHTS PAGE — "Connect on LinkedIn" floating button
   Overlays search bar on mobile — scale down so it doesn't cover.
   ============================================================= */
@media (max-width: 1024px) {
  .elementor-element-388a2b5.elementor-fixed,
  .elementor-element-388a2b5.elementor-fixed .elementor-button {
    font-size: 12px !important;
  }
  .elementor-element-388a2b5.elementor-fixed .elementor-button {
    padding: 10px 14px !important;
  }
  /* Nudge away from right edge slightly so content isn't cropped behind */
  .elementor-element-388a2b5.elementor-fixed {
    z-index: 8000;
  }
}
@media (max-width: 767px) {
  /* On phones, shrink further and reposition to bottom-right corner */
  .elementor-element-388a2b5.elementor-fixed {
    right: 12px !important;
    left: auto !important;
    bottom: 12px !important;
    top: auto !important;
  }
  .elementor-element-388a2b5.elementor-fixed .elementor-button {
    font-size: 11px !important;
    padding: 8px 12px !important;
  }
}


/* =============================================================
   ELEMENTOR NESTED ACCORDION (FAQ) — align icons to right edge
   Short questions had their "+" next to text; long questions had
   it at the right. Make title take available space so icon always
   lands at the right.
   ============================================================= */
details.e-n-accordion-item > summary .e-n-accordion-item-title-header {
  flex: 1 1 auto !important;
}
details.e-n-accordion-item > summary .e-n-accordion-item-title-icon {
  flex: 0 0 auto !important;
  margin-left: auto !important;
}


/* =============================================================
   MF TESTIMONIALS CAROUSEL — remove centerPadding spillover on mobile
   so adjacent slides don't peek in and look cut off.
   ============================================================= */
@media (max-width: 767px) {
  .mf-testimonials-carousel .slick-list {
    padding: 0 !important;
    overflow: hidden !important;
  }
  .mf-testimonials-carousel .slick-slide {
    padding: 0 !important;
  }
  .mf-testimonials-carousel {
    padding-left: 32px !important;
    padding-right: 32px !important;
    /* Do NOT clip the arrows; rely on .slick-list overflow: hidden for slide clipping */
    overflow: visible !important;
  }
  /* Nudge arrows inside the padded area so they don't overlap the card edge */
  .mf-testimonials-carousel .slick-prev { left: 0 !important; }
  .mf-testimonials-carousel .slick-next { right: 0 !important; }
}


/* =============================================================
   INSIGHTS SINGLE POSTS (post type mf_insights)
   Hero h1 is 60px — too big for phone widths; scale it down.
   Apply to all articles (not just Eli Morgan).
   ============================================================= */
@media (max-width: 1024px) {
  .single-mf_insights h1.elementor-heading-title {
    font-size: 36px !important;
    line-height: 1.15 !important;
  }
}
@media (max-width: 767px) {
  .single-mf_insights h1.elementor-heading-title {
    font-size: 28px !important;
  }
}
/* Landscape phones — even smaller to fit short viewports */
@media (orientation: landscape) and (max-height: 500px) {
  .single-mf_insights h1.elementor-heading-title {
    font-size: 28px !important;
  }
}

/* Insights single hero: dark overlay for text readability on mobile/tablet */
@media (max-width: 1024px) {
  .single-mf_insights .e-con.e-parent:first-child {
    position: relative !important;
    isolation: isolate;
  }
  .single-mf_insights .e-con.e-parent:first-child::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: rgba(13, 14, 32, 0.55);
    pointer-events: none;
    z-index: 1;
  }
  /* Lift the inner container above the overlay */
  .single-mf_insights .e-con.e-parent:first-child > .e-con-inner {
    position: relative;
    z-index: 2;
  }
}


/* =============================================================
   HOW WE'RE UNIQUE  (post-113)  tablet + landscape-phone range
   The 2nd tier "High-Net-Worth..." heading is 48px — too big for
   narrow columns on iPhone horizontal through iPad 13 horizontal.
   ============================================================= */
@media (min-width: 768px) and (max-width: 1366px) {
  .elementor-113 .elementor-element.elementor-element-a263f00 .mfin-intro__heading,
  .elementor-113 .elementor-element.elementor-element-a263f00 .elementor-heading-title {
    font-size: 34px !important;
    line-height: 1.15 !important;
  }
}


/* =============================================================
   EXPLORE MEMBERSHIP FORM  (Gravity Forms multi-step layout)
   Next / Skip buttons: ensure proper spacing across all breakpoints
   ============================================================= */
/* Constrain form container to viewport on mobile + tablet */
@media (max-width: 1024px) {
  .elementor-125 .elementor-element.elementor-element-ef2dc27 {
    max-width: 100% !important;
    width: 100% !important;
  }
  .elementor-125 .gform_wrapper {
    max-width: 100% !important;
    width: 100% !important;
  }
}

.gform_page_footer,
.gform-page-footer {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  align-items: center !important;
}
.gform_page_footer .gform_next_button,
.gform_page_footer .gform_skip_button,
.gform-page-footer .gform_next_button,
.gform-page-footer .gform_skip_button {
  margin: 0 !important;
  flex: 0 1 auto !important;
}
/* Mobile portrait — keep them side-by-side with a visible gap */
@media (max-width: 767px) {
  .gform_page_footer,
  .gform-page-footer {
    gap: 10px !important;
  }
  .gform_page_footer input.gform_next_button,
  .gform_page_footer input.gform_skip_button,
  .gform-page-footer input.gform_next_button,
  .gform-page-footer input.gform_skip_button {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: calc(50% - 5px) !important;
  }
}
/* iPad 10 vertical (~768-1024px portrait) — keep a reasonable width so buttons don't stretch and aren't cut off */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  .gform_page_footer input.gform_next_button,
  .gform_page_footer input.gform_skip_button,
  .gform-page-footer input.gform_next_button,
  .gform-page-footer input.gform_skip_button {
    max-width: 180px !important;
    width: 180px !important;
  }
}


/* =============================================================
   iPAD 10 HORIZONTAL  (1025px–1199px)
   Wider-than-tablet but narrower than desktop — constrain fixed-width
   containers that were authored for ≥1200 viewports.
   ============================================================= */
@media (min-width: 1025px) and (max-width: 1199px) {

  /* Our Solutions (post-115) */
  /* Hero: constrain fixed inner container + scale heading to fit viewport */
  .elementor-115 .elementor-element.elementor-element-3533bcd {
    max-width: 100% !important;
    width: 100% !important;
  }
  .elementor-115 .elementor-element.elementor-element-5cef9db .elementor-heading-title { font-size: 52px !important; line-height: 1.1 !important; }

  /* 1st tier (solution cards) — reset negative offsets & overflow widths */
  .elementor-115 .elementor-element.elementor-element-de96a52 .e-con {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .elementor-115 .elementor-element.elementor-element-de96a52 .e-con-inner {
    max-width: 100% !important;
  }
}


/* =============================================================
   TABLET + LANDSCAPE PHONE  (768px–1024px)
   For side-by-side layouts that don't yet stack to column
   ============================================================= */
@media (min-width: 768px) and (max-width: 1024px) {

  /* Homepage 7th tier (2025 Annual Report): add gap between image & text */
  .elementor-7 .elementor-element.elementor-element-1c416e8 {
    --padding-left: 40px !important;
  }

  /* Corporate Careers 4th tier (Where We Are): add gap between image & text */
  .elementor-element.elementor-element-1898099 {
    --padding-left: 40px !important;
  }

  /* Corporate Careers (post-127): hero heading too big — scale to fit viewport */
  .elementor-127 .elementor-element.elementor-element-404b87f .elementor-heading-title {
    font-size: 40px !important;
    line-height: 1.15 !important;
  }
  /* Hero inner container constrained to viewport */
  .elementor-127 .elementor-element.elementor-element-73011b7 {
    max-width: 100% !important;
    width: 100% !important;
  }


  /* Header utility buttons: white-on-white at this breakpoint — force dark colors */
  .site-header .utility-bar-inner .utility-btn,
  .elementor-element-header_top_row .utility-btn {
    color: #04588C !important;
    border-color: #04588C !important;
  }
  .site-header .utility-bar-inner .utility-btn:hover,
  .elementor-element-header_top_row .utility-btn:hover {
    background-color: #04588C !important;
    color: #fff !important;
  }
  /* Search icon + form in utility bar */
  .site-header .utility-search-toggle,
  .elementor-element-header_top_row .utility-search-toggle {
    color: #04588C !important;
    border-color: #04588C !important;
  }
  .site-header .utility-search-toggle:hover,
  .elementor-element-header_top_row .utility-search-toggle:hover {
    background-color: #04588C !important;
    color: #fff !important;
  }
}

/* ──────────────────────────────────────────────────────────────────────────
   CONTACT US (post-2) — Gravity Form visual match to the legacy Elementor form
   ────────────────────────────────────────────────────────────────────────── */

.page-id-2 .gform_wrapper.gravity-theme {
  max-width: 800px;
  margin: 0 auto;
}

/* Hide the "* indicates required fields" notice (matches Elementor form) */
.page-id-2 .gform_wrapper .gform_required_legend {
  display: none !important;
}

.page-id-2 .gform_wrapper.gravity-theme .gform_fields {
  grid-row-gap: 7px;
  row-gap: 7px;
}

/* Labels: match Elementor form typography (uppercase, 600, 1.3px tracking) */
.page-id-2 .gform_wrapper.gravity-theme .gfield_label {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.3px;
  font-size: 13px;
  margin-bottom: 4px;
}

/* Red asterisk for required fields */
.page-id-2 .gform_wrapper.gravity-theme .gfield_required {
  color: #e84c3d;
  margin-left: 4px;
}

/* Inputs, selects, textareas: square corners, tighter height, no bottom margin */
.page-id-2 .gform_wrapper.gravity-theme input[type="text"],
.page-id-2 .gform_wrapper.gravity-theme input[type="email"],
.page-id-2 .gform_wrapper.gravity-theme input[type="tel"],
.page-id-2 .gform_wrapper.gravity-theme select,
.page-id-2 .gform_wrapper.gravity-theme textarea {
  border-radius: 0 !important;
  border: 1px solid #d5dadf !important;
  height: 48px;
  margin-bottom: 0 !important;
  padding: 10px 14px;
  background: #fff;
  box-shadow: none;
}

.page-id-2 .gform_wrapper.gravity-theme textarea {
  height: 130px;
  padding-top: 12px;
}

/* Hide the Message field label (Elementor used placeholder-only) */
.page-id-2 .gform_wrapper.gravity-theme .gfield.contact-message .gfield_label {
  position: absolute !important;
  left: -9999999px !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

/* Submit button — match Elementor's dark-blue uppercase Send */
.page-id-2 .gform_wrapper.gravity-theme .gform_footer {
  margin-top: 18px;
  padding: 0;
}

.page-id-2 .gform_wrapper.gravity-theme .gform_footer input[type="submit"] {
  background: var(--e-global-color-primary);
  color: #fff;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.5px;
  font-size: 14px;
  border: none;
  border-radius: 0;
  padding: 14px 36px;
  width: auto;
  cursor: pointer;
  transition: background 200ms ease;
}

.page-id-2 .gform_wrapper.gravity-theme .gform_footer input[type="submit"]:hover {
  background: var(--e-global-color-secondary);
}

/* Validation summary — tidy spacing above form when errors render */
.page-id-2 .gform_wrapper .gform_validation_errors {
  margin-bottom: 20px;
}

@media (max-width: 767px) {
  .page-id-2 .gform_wrapper.gravity-theme .gfield--type-text,
  .page-id-2 .gform_wrapper.gravity-theme .gfield--type-email,
  .page-id-2 .gform_wrapper.gravity-theme .gfield--type-phone {
    grid-column: span 12 / span 12 !important;
  }
}
@media (max-width: 767px) {
	.faf-widget {
	padding: 0 !important;
}
}

