/* MINDFLARES footer v18 — rebuilt to match the supplied Figma/PDF footer.
   The footer uses the same 80px left rail + RightSide shell as the website. */

.FooterV2Container,
.FooterV2Container * { box-sizing: border-box; }

.FooterV2Container {
  display: flex !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #141414 !important;
}

.FooterV2Rail {
  flex: 0 0 80px;
  width: 80px;
  min-width: 80px;
  background: #141414;
}

.FooterV2Container > .FooterV2RightSide {
  position: relative !important;
  left: auto !important;
  width: calc(100% - 80px) !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #141414 !important;
}

footer.FooterV2 {
  position: relative !important;
  inset: auto !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 470px !important;
  height: 470px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #141414 !important;
  color: #fff;
  font-family: "Proxima Nova Rg", Arial, sans-serif;
}

.FooterV2__Inner {
  position: relative;
  z-index: 1;
  display: grid !important;
  grid-template-columns: 36.5% 8.3% 8.3% 26.5%;
  width: 100%;
  margin: 0;
  padding: 100px 0 0 !important;
  align-items: start;
}

.FooterV2__CTA {
  position: relative;
  grid-column: 1;
  min-width: 0;
  padding-left: 6px;
  isolation: isolate;
}

.FooterV2__Glow {
  position: absolute;
  z-index: -1;
  pointer-events: none;
  width: 751px;
  height: 359px;
  left: -72px;
  top: -88px;
}

.FooterV2__CTA h2 {
  position: relative;
  z-index: 1;
  width: min(31vw, 742px);
  max-width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
  font-family: "Mont Heavy DEMO", Arial, sans-serif !important;
  font-size: 42px !important;
  font-style: normal !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  line-height: 50px;
}

.FooterV2__CTAButton {
  position: relative;
  z-index: 1;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 170px;
  height: 38px;
  margin-top:40px;
  padding: 0 18px !important;
border-radius: 50px;
border: 1px solid rgba(0, 0, 0, 0.00);
background: linear-gradient(90deg, #D31260 0%, rgba(255, 105, 25, 0.99) 50%, #D31260 100%);
box-shadow: 0 4px 6px 0 rgba(50, 50, 93, 0.11), 0 1px 3px 0 rgba(0, 0, 0, 0.08);
  color: #fff !important;
  text-decoration: none !important;
  font-family: "Proxima Nova Bold", Arial, sans-serif !important;
  white-space: nowrap;

font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: normal;
}

.FooterV2__Nav {
  min-width: 0;
  margin: 0;
  padding: 0;
}
.FooterV2__Nav--Primary { grid-column: 2; }
.FooterV2__Nav--Secondary { grid-column: 3; }

.FooterV2__Nav ul,
.FooterV2__Nav li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.FooterV2__Nav ul {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

.FooterV2__Nav a {
  position: relative;
  display: inline-block;
  margin: 0 !important;
  padding: 0 !important;
  color: #9B9B9B !important;
  text-decoration: none !important;
  font-family: "Proxima Nova Rg", Arial, sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.2 !important;
  white-space: nowrap;
}

.FooterV2__Nav li.active > a,
.FooterV2__Nav a:hover {
  color: #fff !important;
}

.FooterV2__Nav li.active > a {
  font-family: "Proxima Nova Bold", Arial, sans-serif !important;
  font-weight: 700 !important;
}

.FooterV2__Nav li.active > a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -7px;
  width: 9px;
  height: 3px;
  background: #e60064;
}

.FooterV2__Offices {
  grid-column: 4;
  min-width: 0;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: start !important;
  column-gap: 28px !important;
  margin: 0 !important;
  padding: 0 0 0 65px !important;
  border-left: 1px solid #494949;
}

.FooterV2__Offices > .view,
.FooterV2__Offices > .views-element-container,
.FooterV2__Offices .view > .view-content,
.FooterV2__Offices .views-row { display: contents !important; }

.FooterV2__Offices .Footer__Address {
  min-width: 0 !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

.FooterV2__Offices .Footer__Address h2 {
  position: relative;
  margin: 0 0 23px !important;
  padding: 0 !important;
  color: #fff !important;
  font-family: "Proxima Nova Rg", Arial, sans-serif !important;
  font-size: 16px;
  font-weight: 400 !important;
  line-height: 1 !important;
  text-transform: uppercase;
  white-space: nowrap;
}

.FooterV2__Offices .Footer__Address h2::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: -11px;
  width: 9px;
  height: 3px;
  background: #e60064;
}

.FooterV2__Offices .Footer__Address address {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #8f8f8f !important;
  font-family: "Proxima Nova Rg", Arial, sans-serif !important;
  font-size: 9.5px !important;
  font-style: normal !important;
  font-weight: 400 !important;
  line-height: 1.08 !important;
  overflow-wrap: normal;
  word-break: normal;
  font-size: 14px;
}

.FooterV2__Offices .Footer__Address address p {
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  font-size: 14px;
}
.FooterV2__Offices .Footer__Address address br { display: none !important; }
.FooterV2__Offices .Footer__Address:nth-child(2) address p:nth-child(3),
.FooterV2__Offices .Footer__Address:nth-child(3) address p:nth-child(3) { display: none !important; }

.FooterV2__Offices .Footer__Address address a {
  color: #8f8f8f !important;
  font: inherit !important;
  text-underline-offset: 2px;
}
.FooterV2__Offices .Footer__Address address a[href^="http"] {
  display: block !important;
  width: max-content;
  max-width: 100%;
  margin-top: 1px !important;
  text-decoration: underline !important;
}
.FooterV2__Offices .Footer__Address address a[href^="tel:"] {
  display: block !important;
  width: max-content;
  max-width: 100%;
  margin-top: 18px !important;
  text-decoration: none !important;
}

.FooterV2__Bottom {
  position: absolute;
  z-index: 2;
  left: 0;
  right: 0;
  font-size: 14px;
  bottom: 107px;
  display: grid !important;
  grid-template-columns: 36.5% 8.3% 8.3% 26.5%;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  pointer-events: auto;
}

.FooterV2__Bottom > span { grid-column: 2; }
.FooterV2__Bottom > a { grid-column: 3; }
.FooterV2__Bottom > span,
.FooterV2__Bottom > a {
  margin: 0 !important;
  padding: 0 !important;
  color: #777 !important;
  text-decoration: none !important;
  font-family: "Proxima Nova Rg", Arial, sans-serif !important;
  font-size: 14px;
  font-weight: 400 !important;
  line-height: 1 !important;
  white-space: nowrap;
}

/* Keep the desktop composition but reduce a little before the mobile stack. */
@media (max-width: 1250px) and (min-width: 761px) {
  footer.FooterV2 {
    min-height: 420px !important;
    height: auto !important;
    padding-bottom: 52px !important;
  }
  .FooterV2__Inner {
    grid-template-columns: minmax(330px, 1.45fr) 90px 90px;
    column-gap: 30px;
    row-gap: 40px;
    padding: 58px 34px 0 !important;
  }
  .FooterV2__CTA { grid-column: 1; grid-row: 1; padding-left: 0; }
  .FooterV2__CTA h2 { width: 100%; font-size: 38px !important; }
  .FooterV2__CTAButton { margin-top: 28px !important; }
  .FooterV2__Nav--Primary { grid-column: 2; grid-row: 1; }
  .FooterV2__Nav--Secondary { grid-column: 3; grid-row: 1; }
  .FooterV2__Nav a { font-size: 12px !important; }
  .FooterV2__Offices {
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 28px !important;
    padding: 30px 0 0 !important;
    border-left: 0;
    border-top: 1px solid #414141;
  }
  .FooterV2__Bottom {
    position: static;
    display: flex !important;
    gap: 50px;
    margin: 34px 34px 0 !important;
    width: calc(100% - 68px);
    padding-top: 20px !important;
    border-top: 1px solid #414141 !important;
  }
}

@media (max-width: 767px) {
  .FooterV2Rail { display: none !important; }
  .FooterV2Container > .FooterV2RightSide {
    width: 100% !important;
    left: 0 !important;
    margin: 0 !important;
    margin-top: 0 !important;
  }
  footer.FooterV2 {
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }
  .FooterV2__Inner {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
    row-gap: 0;
    width: calc(100% - 20px);
    margin: 0 10px;
    padding: 48px 0 0 !important;
  }
  .FooterV2__CTA {
    grid-column: 1 / -1;
    text-align: center;
    padding: 0;
  }
  .FooterV2__CTA h2 {
    width: 100%;
    max-width: 330px;
    margin: 0 auto !important;
    font-size: 30px !important;
    line-height: 1.02 !important;
  }
  .FooterV2__CTAButton {
    min-width: 160px;
    height: 38px;
    margin: 22px auto 0 !important;
    font-size: 16px !important;
  }
  .FooterV2__Glow {
    width: 520px;
    height: 290px;
    left: 50%;
    top: -105px;
    transform: translateX(-50%);
  }
  .FooterV2__Nav {
    margin-top: 40px;
  }
  .FooterV2__Nav--Primary { grid-column: 1; }
  .FooterV2__Nav--Secondary { grid-column: 2; }
  .FooterV2__Nav ul { gap: 13px; }
  .FooterV2__Nav a { font-size: 18px !important; }
  .FooterV2__Offices {
    grid-column: 1 / -1;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 28px !important;
    margin-top: 30px !important;
    padding: 26px 0 0 !important;
    border-left: 0;
    border-top: 1px solid #414141;
  }
  .FooterV2__Offices .Footer__Address h2 {
    margin-bottom: 22px !important;
    font-size: 18px !important;
  }
  .FooterV2__Offices .Footer__Address address {
    font-size: 10px !important;
    line-height: 1.38 !important;
  }
  .FooterV2__Bottom {
    position: static;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    width: calc(100% - 20px);
    margin: 28px 10px 0 !important;
    padding: 18px 0 20px !important;
    border-top: 1px solid #414141 !important;
  }
}

/* ========================================================================
 * v19 — Footer reference match.
 * The footer remains inside the site's 80px rail + RightSide shell, while
 * the CTA, menus and offices follow the proportions from the supplied Figma.
 * ====================================================================== */
@media screen and (min-width: 1251px) {
  footer.FooterV2 {
    min-height: 430px !important;
    height: 430px !important;
  }

  .FooterV2__Inner,
  .FooterV2__Bottom {
    grid-template-columns: 41% 9% 10% 40% !important;
  }

  .FooterV2__Inner {
    padding-top: 101px !important;
  }


  .FooterV2__Glow {
    width: min(980px, 55vw) !important;
    height: 375px !important;
    left: -78px !important;
    top: -86px !important;
  }

  .FooterV2__Offices {
    padding-left: 39px !important;
    column-gap: 24px !important;
  }

  .FooterV2__Bottom {
    bottom: 49px !important;
  }

  .FooterV2__Bottom > span { grid-column: 2 !important; }
  .FooterV2__Bottom > a { grid-column: 3 !important; }
}

/* ================================================================
 * v20 footer alignment correction
 * The dark footer background still fills the site's RightSide, but every
 * footer content column now observes BOTH the left and right website gutter.
 * The Industries carousel is the only Solutions-page block that deliberately
 * bleeds through the right content gutter.
 * ================================================================ */
@media screen and (min-width: 1251px) {
  .FooterV2RightSide {
    --footer-content-gutter: 85px;
  }

  footer.FooterV2 {
    overflow: hidden !important;
  }

  .FooterV2__Inner {
    box-sizing: border-box !important;
    grid-template-columns:
      minmax(390px, 1.55fr)
      minmax(90px, .34fr)
      minmax(100px, .38fr)
      minmax(500px, 1.72fr) !important;
    column-gap: 31px !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding:
      95px
      var(--footer-content-gutter)
      0 !important;
  }
  .FooterV2__CTA {
    padding-left: 0 !important;
  }

  .FooterV2__Offices {
    min-width: 0 !important;
    width: 100% !important;
    padding-left: 35px !important;
    padding-right: 0 !important;
    column-gap: 24px !important;
  }

  .FooterV2__Offices .Footer__Address {
    min-width: 0 !important;
    overflow: hidden;
  }

  .FooterV2__Offices .Footer__Address address,
  .FooterV2__Offices .Footer__Address address p,
  .FooterV2__Offices .Footer__Address address a {
    max-width: 100% !important;
    overflow-wrap: break-word;
  }

  .FooterV2__Bottom {
    box-sizing: border-box !important;
    left: var(--footer-content-gutter) !important;
    right: var(--footer-content-gutter) !important;
    width: auto !important;
    grid-template-columns:
      minmax(390px, 1.55fr)
      minmax(90px, .34fr)
      minmax(100px, .38fr)
      minmax(500px, 1.72fr) !important;
    column-gap: 31px !important;
  }
}

  .FooterV2__CTA h2 {
    text-shadow:
      0 0 160.907px rgba(165, 56, 255, .92),
      0 0 321.814px rgba(165, 56, 255, .72),
      0 0 1126.349px rgba(165, 56, 255, .38),
      0 0 2252.698px rgba(165, 56, 255, .23),
      0 0 3861.768px rgba(165, 56, 255, .14),
      0 0 6758.095px rgba(165, 56, 255, .08) !important;
  }

  .FooterV2__Glow {
    background: none !important;
    box-shadow: none !important;
    filter: none !important;
  }

@media screen and (min-width: 1251px) {
  .FooterV2__Offices {
    --footer-divider-before: 38px;
    --footer-divider-after: 38px;

    position: relative !important;
    align-self: stretch !important;
    margin-left: var(--footer-divider-before) !important;
    width: calc(100% - var(--footer-divider-before)) !important;
    padding-left: var(--footer-divider-after) !important;
    border-left: 0 !important;
  }

  .FooterV2__Offices::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 1px;
    background: #494949;
    pointer-events: none;
  }
}

/* ========================================================================
 * v23 — footer link states only.
 * Keeps all existing footer sizing/spacing/typography untouched.
 * ====================================================================== */

/* Solutions is the current section on the Solutions overview and detail pages. */
.SolutionsOverviewWrapper .FooterV2__Nav li.active-solutions > a,
.SolutionsPage .FooterV2__Nav li.active-solutions > a,
body.path-solutions .FooterV2__Nav li.active-solutions > a,
body.page-node-type-solutions .FooterV2__Nav li.active-solutions > a {
  position: relative;
  color: #fff !important;
  font-family: "Proxima Nova Bold", Arial, sans-serif !important;
  font-weight: 700 !important;
}

.SolutionsOverviewWrapper .FooterV2__Nav li.active-solutions > a::after,
.SolutionsPage .FooterV2__Nav li.active-solutions > a::after,
body.path-solutions .FooterV2__Nav li.active-solutions > a::after,
body.page-node-type-solutions .FooterV2__Nav li.active-solutions > a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -7px;
  width: 9px;
  height: 3px;
  background: #e60064;
}

/* Every footer link turns white on hover, including office map/phone links
   and Privacy Policy.  No sizing, spacing, or layout values are changed. */
.FooterV2__Nav a:hover,
.FooterV2__Bottom a:hover,
.FooterV2__Offices .Footer__Address address a:hover,
.FooterV2__CTAButton:hover {
  color: #fff !important;
}

.FooterV2__Nav a,
.FooterV2__Bottom a,
.FooterV2__Offices .Footer__Address address a {
  transition: color .2s ease-in-out;
}

/* ========================================================================
 * v24 — center the desktop office divider in the sitemap/office gap.
 * Keep every existing footer size/style unchanged.  The parent grid already
 * owns the horizontal gap between the secondary sitemap and the office cell;
 * use that exact same distance as the office padding after the divider.
 * ====================================================================== */
@media screen and (min-width: 1251px) {
  .FooterV2__Inner {
    --footer-divider-space: 31px;
  }

  .FooterV2__Offices {
    margin-left: 0 !important;
    width: 100% !important;
    padding-left: var(--footer-divider-space) !important;
  }

  .FooterV2__Offices::before {
    left: 0 !important;
  }
}

/* ========================================================================
 * v25 — exact desktop divider + office spacing from the supplied Figma.
 * Layout-only correction: no typography, colors, CTA sizing, glow, or
 * vertical spacing is changed.
 *
 * Desktop structure after the CTA:
 *   primary nav | 50px | secondary nav | 40px | divider | 40px | Dubai
 *   Dubai       | 40px | Beirut        | 40px | San Francisco
 * ====================================================================== */
@media screen and (min-width: 1251px) {
  /* Use explicit spacer tracks so the divider is mathematically centered
     between the secondary sitemap column and Dubai. */
  .FooterV2__Inner {
    grid-template-columns:
      minmax(390px, 1.55fr)
      max-content
      50px
      max-content
      80px
      minmax(500px, 1.72fr) !important;
    column-gap: 0 !important;
  }

  .FooterV2__CTA {
    grid-column: 1 !important;
  }

  .FooterV2__Nav--Primary {
    grid-column: 2 !important;
  }

  .FooterV2__Nav--Secondary {
    grid-column: 4 !important;
  }

  .FooterV2__Offices {
    grid-column: 6 !important;
    position: relative !important;
    align-self: stretch !important;
    width: 100% !important;
    margin: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-left: 0 !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 40px !important;
  }

  /* The spacer track before Offices is 80px wide. Put the divider exactly
     at its midpoint: 40px after the sitemap and 40px before Dubai. */
  .FooterV2__Offices::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -40px !important;
    width: 1px;
    background: #494949;
    pointer-events: none;
  }
}

/* ========================================================================
 * v26 — exact footer spacing from the supplied desktop/mobile measurements.
 * Spacing only: existing typography, colours, CTA styling and link states
 * remain untouched.
 *
 * Desktop (>= 1200px):
 *   sitemap column gap               = 50px
 *   secondary sitemap -> divider     = 88px
 *   divider -> Dubai                 = 88px
 *   Dubai -> Beirut                  = 40px
 *   Beirut -> San Francisco          = 40px
 *
 * Tablet (768px–1199px): adapts the same content to the available width.
 * Mobile (<= 767px): 24px side gutters, 60px top padding, 40px CTA->sitemap,
 * 50px sitemap column gap and 40px between stacked office locations.
 * ====================================================================== */

@media screen and (min-width: 1200px) {
  .FooterV2__Inner {
    /* Keep all desktop items on the same row.  The 176px spacer contains the
       vertical divider exactly at its midpoint (88px on each side). */
    grid-template-columns:
      minmax(0, 1.45fr)
      max-content
      50px
      max-content
      176px
      minmax(0, 1.35fr) !important;
    column-gap: 0 !important;
    align-items: start !important;
  }

  .FooterV2__CTA {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .FooterV2__Nav--Primary {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  .FooterV2__Nav--Secondary {
    grid-column: 4 !important;
    grid-row: 1 !important;
  }

  .FooterV2__Offices {
    grid-column: 6 !important;
    grid-row: 1 !important;
    position: relative !important;
    align-self: stretch !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 40px !important;
    row-gap: 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }

  .FooterV2__Offices::before {
    content: "";
    position: absolute;
    top: 0 !important;
    bottom: 0 !important;
    left: -88px !important;
    width: 1px !important;
    height: auto !important;
    background: #494949 !important;
    pointer-events: none;
  }

  /* Match the bottom row to the same desktop columns without affecting its
     current vertical position or typography. */
  .FooterV2__Bottom {
    grid-template-columns:
      minmax(0, 1.45fr)
      max-content
      50px
      max-content
      176px
      minmax(0, 1.35fr) !important;
    column-gap: 0 !important;
  }

  .FooterV2__Bottom > span { grid-column: 2 !important; }
  .FooterV2__Bottom > a    { grid-column: 4 !important; }
}

/* Tablet / small desktop: keep the sitemap as two columns, then place the
   office group beneath it so the exact desktop spacer does not force overflow. */
@media screen and (min-width: 768px) and (max-width: 1199px) {
  footer.FooterV2 {
    height: auto !important;
    min-height: 0 !important;
    padding-bottom: 44px !important;
  }

  .FooterV2__Inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content 50px max-content !important;
    column-gap: 0 !important;
    row-gap: 38px !important;
    width: 100% !important;
    padding: 58px 34px 0 !important;
  }

  .FooterV2__CTA {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .FooterV2__Nav--Primary {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  .FooterV2__Nav--Secondary {
    grid-column: 4 !important;
    grid-row: 1 !important;
  }

  .FooterV2__Offices {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 40px !important;
    row-gap: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 30px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid #414141 !important;
  }

  .FooterV2__Offices::before {
    display: none !important;
  }

  .FooterV2__Bottom {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    gap: 50px !important;
    width: calc(100% - 68px) !important;
    margin: 34px 34px 0 !important;
    padding: 20px 0 0 !important;
    border-top: 1px solid #414141 !important;
  }
}

/* Mobile spacing taken from the attached annotated design. */
@media screen and (max-width: 767px) {
  .FooterV2Rail {
    display: none !important;
  }

  .FooterV2Container > .FooterV2RightSide {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  footer.FooterV2 {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  .FooterV2__Inner {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 50px minmax(0, 1fr) !important;
    column-gap: 0 !important;
    row-gap: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 60px 24px 0 !important;
  }

  .FooterV2__CTA {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    padding: 0 !important;
    text-align: center !important;
  }

  .FooterV2__CTAButton {
    margin-top: 24px !important;
    width: 100%;
  }

  .FooterV2__Nav {
    margin-top: 40px !important;
  }

  .FooterV2__Nav--Primary {
    grid-column: 1 !important;
    grid-row: 2 !important;
  }

  .FooterV2__Nav--Secondary {
    grid-column: 3 !important;
    grid-row: 2 !important;
  }

  .FooterV2__Nav ul {
    gap: 13px !important;
  }

  .FooterV2__Offices {
    grid-column: 1 / -1 !important;
    grid-row: 3 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    row-gap: 40px !important;
    column-gap: 0 !important;
    width: 100% !important;
    margin: 40px 0 0 !important;
    padding: 40px 0 0 !important;
    border: 0 !important;
    border-top: 1px solid #414141 !important;
  }

  .FooterV2__Offices::before {
    display: none !important;
  }

  .FooterV2__Offices .Footer__Address {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .FooterV2__Bottom {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 30px !important;
    width: calc(100% - 48px) !important;
    margin: 40px 24px 0 !important;
    padding: 24px 0 30px !important;
    border-top: 1px solid #414141 !important;
  }
}

/* ========================================================================
 * v27 — Mobile bottom spacing from annotated design.
 * Keep all existing mobile footer styling; only correct the vertical space
 * before the copyright/privacy row and the space after it.
 * Total space from the end of the locations block to the text row = 118px:
 *   94px margin before the divider + 24px divider-to-text padding.
 * Footer bottom space after the row = 30px.
 * ====================================================================== */
@media screen and (max-width: 767px) {
  .FooterV2__Bottom {
    margin-top: 94px !important;
    padding-top: 24px !important;
    padding-bottom: 30px !important;
  }
}

/* ========================================================================
 * v28 — Mobile copyright/privacy spacing correction.
 * Requested measurement:
 *   - 118px clear space BEFORE the copyright/privacy text row.
 *   - 30px clear space AFTER the row to the footer bottom.
 * The separator remains 24px above the text without being counted as part
 * of the 118px spacing value.
 * ====================================================================== */
@media screen and (max-width: 767px) {
  .FooterV2__Bottom {
    position: relative !important;
    margin-top: 118px !important;
    padding-top: 0 !important;
    padding-bottom: 30px !important;
    border-top: 0 !important;
  }

  .FooterV2__Bottom::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -24px;
    height: 1px;
    background: #414141;
    pointer-events: none;
  }
}


/* ========================================================================
 * v29 — fixed media values only (no clamp) + exact mobile footer bottom gap.
 * Mobile measurements:
 *   locations block -> copyright/privacy row = 118px
 *   copyright/privacy row -> footer bottom   = 30px
 * ====================================================================== */
@media screen and (max-width: 767px) {
  .FooterV2Container,
  .FooterV2Container > .FooterV2RightSide,
  footer.FooterV2 {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    min-height: 0 !important;
    height: auto !important;
  }

  .FooterV2__Bottom {
    position: relative !important;
    width: calc(100% - 48px) !important;
    margin: 118px 24px 0 !important;
    padding: 0 0 30px !important;
    border-top: 0 !important;
  }

  .FooterV2__Bottom::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -24px;
    height: 1px;
    background: #414141;
    pointer-events: none;
  }

  .FooterV2__Bottom > span,
  .FooterV2__Bottom > a {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* ========================================================================
 * v30 — Footer strategy CTA hover.
 * Match the solid red/pink hover treatment used by the site's other CTAs.
 * ====================================================================== */
.FooterV2__CTAButton:hover,
.FooterV2__CTAButton:focus-visible {
  background: #D5055F !important;
  color: #fff !important;
  text-decoration: none !important;
}

/* ========================================================================
 * v31 — Copyright row spacing + responsive footer measurements.
 * Matches the supplied annotated desktop/mobile references:
 *   Desktop: 118px between the main footer content and copyright row,
 *            30px from copyright row to the bottom edge.
 *   Mobile:  60px top, 24px side gutters, 40px CTA -> sitemap,
 *            and 30px beneath the copyright row.
 * This final block intentionally overrides the earlier experimental mobile
 * 118px copyright rule; that 118px measurement belongs to desktop.
 * ====================================================================== */

@media screen and (min-width: 1200px) {
  .FooterV2RightSide {
    --footer-content-gutter: 85px;
  }

  footer.FooterV2 {
    height: auto !important;
    min-height: 0 !important;
    padding-bottom: 0 !important;
  }

  /* Keep the copyright/privacy row in normal flow so the 118px measurement
     is taken from the actual bottom of the tallest content block. */
  .FooterV2__Bottom {
    position: static !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: calc(100% - 170px) !important;
    margin: 118px 85px 0 !important;
    padding: 0 0 30px !important;
    border: 0 !important;
  }
}

@media screen and (min-width: 768px) and (max-width: 1199px) {
  footer.FooterV2 {
    padding-bottom: 0 !important;
  }

  .FooterV2__Bottom {
    position: static !important;
    width: calc(100% - 68px) !important;
    margin: 40px 34px 0 !important;
    padding: 24px 0 30px !important;
    border-top: 1px solid #414141 !important;
  }
}

@media screen and (max-width: 767px) {
  .FooterV2__Inner {
    width: 100% !important;
    margin: 0 !important;
    padding: 60px 24px 0 !important;
  }

  .FooterV2__Nav {
    margin-top: 40px !important;
  }

  /* Restore the compact mobile ending shown in the reference. The 118px
     desktop gap must not be inherited by the stacked mobile footer. */
  .FooterV2__Bottom {
    position: static !important;
    width: calc(100% - 48px) !important;
    margin: 40px 24px 0 !important;
    padding: 24px 0 30px !important;
    border-top: 1px solid #414141 !important;
  }

  .FooterV2__Bottom::before {
    content: none !important;
    display: none !important;
  }
}

/* ========================================================================
 * v32 — Footer-only container alignment + 70px CTA-to-sitemap spacing.
 * Requested corrections:
 *   - Keep every footer item inside the same responsive content container.
 *   - Desktop/tablet: 70px between the CTA block and the first sitemap column.
 *   - Preserve equal spacing on both sides of the offices divider (88px / 88px).
 *   - Keep the existing mobile 24px gutter and 40px CTA-to-sitemap stack gap.
 * No non-footer selectors are changed here.
 * ====================================================================== */

@media screen and (min-width: 1200px) {
  .FooterV2RightSide {
    /* Matches the responsive content inset used by the page sections while
       still allowing the footer to scale down cleanly on smaller desktops. */
    --footer-container-gutter: clamp(56px, 6.25vw, 120px);
    --footer-cta-sitemap-gap: 70px;
    --footer-sitemap-gap: 50px;
    --footer-divider-side: 88px;
  }

  .FooterV2__Inner {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-left: var(--footer-container-gutter) !important;
    padding-right: var(--footer-container-gutter) !important;
    grid-template-columns:
      minmax(0, 1.45fr)
      var(--footer-cta-sitemap-gap)
      max-content
      var(--footer-sitemap-gap)
      max-content
      calc(var(--footer-divider-side) * 2)
      minmax(0, 1.35fr) !important;
    column-gap: 0 !important;
  }

  .FooterV2__CTA {
    grid-column: 1 !important;
  }

  .FooterV2__Nav--Primary {
    grid-column: 3 !important;
  }

  .FooterV2__Nav--Secondary {
    grid-column: 5 !important;
  }

  .FooterV2__Offices {
    grid-column: 7 !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 40px !important;
  }

  /* The divider sits in the exact middle of the 176px spacer, leaving
     88px before it and 88px after it. */
  .FooterV2__Offices::before {
    left: calc(-1 * var(--footer-divider-side)) !important;
  }

  .FooterV2__Bottom {
    width: auto !important;
    margin-left: var(--footer-container-gutter) !important;
    margin-right: var(--footer-container-gutter) !important;
    grid-template-columns:
      minmax(0, 1.45fr)
      var(--footer-cta-sitemap-gap)
      max-content
      var(--footer-sitemap-gap)
      max-content
      calc(var(--footer-divider-side) * 2)
      minmax(0, 1.35fr) !important;
    column-gap: 0 !important;
  }

  .FooterV2__Bottom > span {
    grid-column: 3 !important;
  }

  .FooterV2__Bottom > a {
    grid-column: 5 !important;
  }
}

@media screen and (min-width: 768px) and (max-width: 1199px) {
  .FooterV2__Inner {
    /* Add an explicit 70px track between the CTA and the first sitemap
       column while keeping all content within the existing tablet container. */
    grid-template-columns:
      minmax(0, 1fr)
      70px
      max-content
      50px
      max-content !important;
  }

  .FooterV2__CTA {
    grid-column: 1 !important;
  }

  .FooterV2__Nav--Primary {
    grid-column: 3 !important;
  }

  .FooterV2__Nav--Secondary {
    grid-column: 5 !important;
  }
}

@media screen and (max-width: 767px) {
  /* Mobile remains inside the 24px footer container from the approved
     responsive reference.  The sitemap is stacked, so its measured gap from
     the CTA remains the approved 40px rather than becoming a horizontal 70px. */
  .FooterV2__Inner {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  .FooterV2__Nav {
    margin-top: 40px !important;
  }
}

/* Mobile: keep copyright and Privacy Policy grouped on the left, matching the reference. */
@media screen and (max-width: 767px) {
  .FooterV2__Bottom {
    justify-content: flex-start !important;
    gap: 60px !important;
  }
}
