/* ============================================================================
   layout-v150.css — spacing & alignment pass (2026-07-20)
   Operator feedback: "many areas too crowded and not aligned; borrow Dolphlink's
   layout discipline." Dolphlink keeps one content frame (every section shares a
   left edge) and generous vertical rhythm (~64px). This layer aligns Talktide's
   drifting bands to the main 1344px frame and restores breathing room in the
   cramped top zone. Loaded LAST. Guardrails preserved (green, imagery, etc.).
   ============================================================================ */

/* --- L1 — One content frame: align stats + partners to the main sections ---
   Main sections (flow/process/story/compliance) use a 1344px wrap (left edge
   48px). Stats (1180 -> L130) and partners (1240 -> L100) sat on narrower,
   misaligned frames, so the left edge visibly jumped 130 -> 100 -> 48 down the
   page. Put them on the same 1344px frame so every left edge lines up.        */
.home-page .stats .wrap,
.home-page .trust .wrap{
  width:100% !important;
  max-width:1344px !important;
  margin-inline:auto !important;
  padding-left:32px !important;
  padding-right:32px !important;
  box-sizing:border-box !important;
}

/* --- L2 — Breathing room in the crowded top zone --------------------------
   Stats had 10px top / 22px bottom and partners 24px / 30px, crammed against
   the hero. Give them a calmer rhythm closer to the Dolphlink reference.     */
.home-page .stats{
  padding-top:52px !important;
  padding-bottom:44px !important;
}
.home-page .trust{
  padding-top:48px !important;
  padding-bottom:52px !important;
}

/* --- L3 — Align the live-clock strip to the same frame --------------------- */
.home-page .hero-times .clocks{
  width:100% !important;
  max-width:1344px !important;
  margin-inline:auto !important;
  box-sizing:border-box !important;
}

/* --- L4 — Homepage vertical rhythm (Dolphlink ~64-96px breathing) ----------
   Main content sections were 72px top/bottom; lift to 90px so the page breathes
   like the reference. Moderate on purpose — not empty transition bands.       */
.home-page .features-stack,
.home-page .flow,
.home-page .proc,
.home-page .story,
.home-page .compl,
.home-page .contact-build{
  padding-top:90px !important;
  padding-bottom:90px !important;
}
/* Nudge the top-zone bands to match the airier scale. */
.home-page .stats{ padding-top:60px !important; padding-bottom:52px !important; }
.home-page .trust{ padding-top:56px !important; padding-bottom:60px !important; }

/* --- L5 — Subpage breathing (already aligned; add a little air) ------------
   products / solutions / about clauses are consistently framed (all L=128) but
   sit at 38px padding; ease to 48px to match the homepage rhythm.            */
body:not(.home-page) .terms-clause{
  padding-top:48px !important;
  padding-bottom:48px !important;
}

/* --- L6 — Wide-screen hero video crop -------------------------------------
   The 1280x720 hero video fills a fixed 660px-tall box with object-fit:cover,
   centered (50% 50%). On wide screens cover scales it much taller than 660, so
   top+bottom get cropped evenly and the subject's HEAD (near the top of frame)
   gets cut off — worse the wider the screen. Raise the vertical anchor toward
   the top progressively so the head stays in frame. Horizontal stays centered
   (person remains right-of-copy).                                            */
@media (min-width:1600px){
  .home-page .hero .himg video,
  .home-page .hero .himg > img{ object-position:50% 28% !important; }
}
@media (min-width:2000px){
  .home-page .hero .himg video,
  .home-page .hero .himg > img{ object-position:50% 20% !important; }
}
@media (min-width:2400px){
  .home-page .hero .himg video,
  .home-page .hero .himg > img{ object-position:50% 14% !important; }
}

/* --- L7 — Align the hero copy to the SAME 1344 frame as everything else -----
   The hero copy was anchored to a 1920-centered frame (~viewport-left), while
   the clock strip, stats and all main sections center in the 1344 frame. On
   wide screens the hero text ended up ~210px off the left edge of the bands
   below it. Anchor the copy's left edge to the shared 1344 frame so the hero
   title, clock strip and stat cards all line up.                             */
@media (min-width:1200px){
  .home-page .hero-stage .hero .hcopy{
    margin-left:max(0px, calc((100vw - 1344px) / 2)) !important;
    padding-left:0 !important;
    left:0 !important;   /* a wide-screen rule adds left:(100vw-1920)/2 on top of margin */
  }
}

/* --- L8 — Remove green-line + wave section-transition ornaments -------------
   Operator request: the bright 6px green rule + soft green wave shape that sit
   between sections read as clutter and repeat down the page. Remove them for
   clean, flat Dolphlink-style transitions (the alternating white/mint section
   backgrounds already separate the sections). Hero light-streaks and card-level
   effects are left untouched.                                                 */
.home-page .region-transition{ display:none !important; }

.home-page .flow,
.home-page .story,
.home-page .contact-build,
.home-page .features-stack,
.home-page .proc,
.home-page .compl,
.home-page .compliance-showcase,
.home-page .trust,
.home-page .stats,
.home-page .feature-rotator{
  border-top:0 !important;
  border-bottom:0 !important;
}

/* section-level decorative wave graphics (region-wave-green-v98.png) —
   NOT the .cmpl card effects. Every selector that paints the wave is listed. */
.home-page .features-stack::before,
.home-page .features-stack::after,
.home-page .feature-rotator::before,
.home-page .feature-rotator::after,
.home-page .compl::before,
.home-page .compl::after,
.home-page .compliance-showcase::before,
.home-page .compliance-showcase::after,
.home-page .trust::before,
.home-page .trust::after,
.home-page .flow::before,
.home-page .flow::after,
.home-page .story::before,
.home-page .story::after{
  display:none !important;
  content:none !important;
  background:none !important;
}
/* legacy solution hub carries the same wave as a section background */
.home-page .solution-hub-v124{ background-image:none !important; }

/* --- L9 — Fix the product carousel overlap ---------------------------------
   The 3D "prism/cube" (feature-cube-v132) computed valid face transforms for
   some slides but broke on others (e.g. slide 7): inactive faces stayed
   opacity:1/visible and piled up, so 2-3 product cards overlapped instead of
   one. Flatten the cube to a clean single-card crossfade — only the active
   (aria-hidden=false) face shows, at the full stage position, on every slide.
   This satisfies the "only one active face at a time" spec the broken cube
   violated; dots, arrows, counter, auto-rotate and swipe all keep working.   */
@media (min-width:861px){
  /* Taller stage so cards with three points + CTA never clip the button. */
  .home-page .feature-rotator .feature-rotator-stage{
    min-height:560px !important;
    height:auto !important;
  }
  .home-page .feature-rotator .features-list{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:auto !important;
    transform:none !important;
    transform-style:flat !important;
    perspective:none !important;
  }
  /* Only the active face shows (clean single card — no piled-up prism faces
     bleeding through the background). inset:0 + height:auto stretch it to the
     taller stage so the CTA is never clipped. */
  .home-page .feature-rotator .feature-face{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    transform:none !important;   /* kill the prism transform (some faces set it !important) */
    backface-visibility:visible !important;
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
    z-index:1 !important;
  }
  .home-page .feature-rotator .feature-face .fimg,
  .home-page .feature-rotator .feature-face .fimg img{
    height:100% !important;
  }
  /* Active face slides + eases in — restores the motion, cleanly, one card at a
     time. Uses the independent `translate`/`scale` properties (NOT `transform`,
     which the prism locks with !important) so the entrance animates freely. */
  .home-page .feature-rotator .feature-face:not([aria-hidden="true"]){
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    z-index:2 !important;
    animation:ttCardIn .6s cubic-bezier(.22,.61,.36,1) both !important;
  }
  @keyframes ttCardIn{
    0%   { opacity:0; translate:60px 0; scale:.985; }
    100% { opacity:1; translate:0 0;  scale:1; }
  }
}
@media (min-width:861px) and (prefers-reduced-motion:reduce){
  .home-page .feature-rotator .feature-face:not([aria-hidden="true"]){
    animation:none !important;
  }
}

/* Regional Offices — mirrors the About Us office details in the global footer. */
footer.site .footer-regional-offices .footer-office-list {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

footer.site .footer-regional-offices .footer-office-entry {
  min-width: 0;
  padding-top: 13px;
  border-top: 1px solid rgba(255, 255, 255, .24);
}

footer.site .footer-regional-offices .footer-office-entry:first-child {
  padding-top: 0;
  border-top: 0;
}

footer.site .footer-regional-offices .footer-office-entry strong {
  display: block;
  color: inherit;
  font-size: 12.5px;
  line-height: 1.4;
}

footer.site .footer-regional-offices .footer-office-entry p,
footer.site .footer-regional-offices .footer-office-entry a,
body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry p,
body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry a {
  margin: 5px 0 0 !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  overflow-wrap: anywhere;
}

@media (max-width: 620px) {
  footer.site .footer-regional-offices .footer-office-entry p,
  footer.site .footer-regional-offices .footer-office-entry a,
  body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry p,
  body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry a {
    font-size: 13px !important;
  }
}

@media (min-width: 1121px) {
  body.home-page footer.site .foot-top,
  body:not(.home-page) footer.site .foot-top {
    grid-template-columns: minmax(300px, 1.4fr) repeat(3, minmax(160px, .72fr)) !important;
  }

  body.home-page footer.site .foot-top > .footer-regional-offices,
  body:not(.home-page) footer.site .foot-top > .footer-regional-offices {
    grid-column: 1 / -1 !important;
    min-height: 0 !important;
  }

  footer.site .footer-regional-offices .footer-office-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
  }

  footer.site .footer-regional-offices .footer-office-entry,
  footer.site .footer-regional-offices .footer-office-entry:first-child {
    padding: 0 clamp(18px, 2vw, 30px);
    border-top: 0;
    border-right: 1px solid rgba(255, 255, 255, .24);
  }

  footer.site .footer-regional-offices .footer-office-entry:first-child {
    padding-left: 0;
  }

  footer.site .footer-regional-offices .footer-office-entry:last-child {
    padding-right: 0;
    border-right: 0;
  }
}

/* V294 — A slim, polished glass ribbon replaces the square copyright box. */
body.home-page footer.site .foot-bottom,
body:not(.home-page) footer.site .foot-bottom {
  position: relative !important;
  min-height: 0 !important;
  padding: 7px clamp(18px, 2vw, 30px) !important;
  overflow: hidden !important;
  border: 1px solid rgba(255, 255, 255, .76) !important;
  border-radius: 18px !important;
  background:
    linear-gradient(112deg, rgba(250, 254, 252, .82), rgba(224, 245, 236, .66) 48%, rgba(249, 253, 251, .76)) !important;
  -webkit-backdrop-filter: blur(14px) saturate(118%) !important;
  backdrop-filter: blur(14px) saturate(118%) !important;
  box-shadow:
    0 12px 30px rgba(14, 79, 50, .12),
    inset 0 1px 0 rgba(255, 255, 255, .72) !important;
}

body.home-page footer.site .footer-copyright,
body:not(.home-page) footer.site .footer-copyright {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  color: #28513b !important;
  letter-spacing: .01em !important;
}

body.home-page footer.site .footer-copyright::before,
body.home-page footer.site .footer-copyright::after,
body:not(.home-page) footer.site .footer-copyright::before,
body:not(.home-page) footer.site .footer-copyright::after {
  content: "";
  width: clamp(34px, 5vw, 88px);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(49, 173, 91, .58));
}

body.home-page footer.site .footer-copyright::after,
body:not(.home-page) footer.site .footer-copyright::after {
  transform: scaleX(-1);
}

@media (max-width: 620px) {
  body.home-page footer.site .foot-bottom,
  body:not(.home-page) footer.site .foot-bottom {
    width: calc(100% - 20px) !important;
    min-height: 0 !important;
    padding: 9px 12px calc(9px + env(safe-area-inset-bottom, 0px)) !important;
    border-radius: 16px !important;
  }

  body.home-page footer.site .footer-copyright,
  body:not(.home-page) footer.site .footer-copyright {
    gap: 8px !important;
  }

  body.home-page footer.site .footer-copyright::before,
  body.home-page footer.site .footer-copyright::after,
  body:not(.home-page) footer.site .footer-copyright::before,
  body:not(.home-page) footer.site .footer-copyright::after {
    width: clamp(18px, 7vw, 42px);
  }
}

/* V274 — Compact footer composition with tighter cards and less image whitespace. */
body.home-page footer.site .foot-brand,
body.home-page footer.site .fcol,
body.home-page footer.site .foot-top > .foff,
body:not(.home-page) footer.site .foot-brand,
body:not(.home-page) footer.site .fcol,
body:not(.home-page) footer.site .foot-top > .foff {
  padding: 20px !important;
}

body.home-page footer.site .foot-top,
body:not(.home-page) footer.site .foot-top {
  gap: 12px !important;
  padding-bottom: 24px !important;
}

body.home-page footer.site .footer-brand-copy p,
body.home-page footer.site .fcol a,
body.home-page footer.site .foot-top > .foff p,
body.home-page footer.site .foot-top > .foff a {
  line-height: 1.48 !important;
}

footer.site .footer-regional-offices .footer-office-list {
  margin-top: 10px;
  gap: 10px;
}

footer.site .footer-regional-offices .footer-office-entry p,
footer.site .footer-regional-offices .footer-office-entry a,
body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry p,
body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry a {
  margin-top: 4px !important;
  line-height: 1.42 !important;
}

@media (min-width: 1121px) {
  body.home-page footer.site .foot-top,
  body:not(.home-page) footer.site .foot-top {
    width: min(calc(100% - 56px), 1000px) !important;
  }

  body.home-page footer.site .footer-brand-copy p,
  body.home-page footer.site .fcol a,
  body.home-page footer.site .foot-top > .foff p,
  body.home-page footer.site .foot-top > .foff a {
    font-size: 12px !important;
  }

  footer.site .footer-regional-offices .footer-office-entry,
  footer.site .footer-regional-offices .footer-office-entry:first-child {
    padding-inline: 18px;
  }

  footer.site .footer-regional-offices .footer-office-entry:first-child {
    padding-left: 0;
  }

  footer.site .footer-regional-offices .footer-office-entry:last-child {
    padding-right: 0;
  }
}

/* V275 — Fill the desktop footer's empty right-side band below the nav cards. */
@media (min-width: 1121px) {
  body.home-page footer.site .foot-top > .foot-brand,
  body:not(.home-page) footer.site .foot-top > .foot-brand {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: stretch !important;
    height: 100% !important;
  }

  body.home-page footer.site .foot-top > .footer-regional-offices,
  body:not(.home-page) footer.site .foot-top > .footer-regional-offices {
    grid-column: 2 / -1 !important;
    grid-row: 2 !important;
  }

  body.home-page footer.site .foot-top > .footer-regional-offices b,
  body:not(.home-page) footer.site .foot-top > .footer-regional-offices b {
    margin-bottom: 8px !important;
  }

  footer.site .footer-regional-offices .footer-office-entry p,
  footer.site .footer-regional-offices .footer-office-entry a,
  body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry p,
  body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry a {
    font-size: 11.25px !important;
    line-height: 1.36 !important;
  }
}

/* V278 — One-row scenic footer with a compact copyright strip. */
@media (min-width: 1121px) {
  body.home-page footer.site,
  body:not(.home-page) footer.site {
    padding-top: clamp(34px, 3vw, 48px) !important;
  }

  body.home-page footer.site .foot-top,
  body:not(.home-page) footer.site .foot-top {
    grid-template-columns:
      minmax(290px, 1.25fr)
      minmax(145px, .66fr)
      minmax(130px, .58fr)
      minmax(140px, .62fr)
      minmax(420px, 2.05fr) !important;
    align-items: start !important;
    width: min(calc(100% - 48px), 1840px) !important;
    gap: 12px !important;
    padding-bottom: 14px !important;
  }

  body.home-page footer.site .foot-top > .foot-brand,
  body.home-page footer.site .foot-top > .fcol,
  body.home-page footer.site .foot-top > .footer-regional-offices,
  body:not(.home-page) footer.site .foot-top > .foot-brand,
  body:not(.home-page) footer.site .foot-top > .fcol,
  body:not(.home-page) footer.site .foot-top > .footer-regional-offices {
    grid-column: auto !important;
    grid-row: 1 !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 18px !important;
  }

  footer.site .footer-regional-offices .footer-office-list {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 0 !important;
    margin-top: 9px !important;
  }

  body.home-page footer.site .foot-brand .fb,
  body:not(.home-page) footer.site .foot-brand .fb {
    margin-bottom: 14px !important;
  }

  body.home-page footer.site .footer-brand-copy p,
  body:not(.home-page) footer.site .footer-brand-copy p {
    font-size: 11.5px !important;
    line-height: 1.42 !important;
  }

  footer.site .footer-regional-offices .footer-office-entry,
  footer.site .footer-regional-offices .footer-office-entry:first-child {
    padding-inline: 12px !important;
    border-top: 0 !important;
    border-right: 1px solid rgba(29, 103, 65, .14) !important;
  }

  footer.site .footer-regional-offices .footer-office-entry:first-child {
    padding-left: 0 !important;
  }

  footer.site .footer-regional-offices .footer-office-entry:last-child {
    padding-right: 0 !important;
    border-right: 0 !important;
  }

  footer.site .footer-regional-offices .footer-office-entry p,
  footer.site .footer-regional-offices .footer-office-entry a,
  body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry p,
  body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry a {
    font-size: 10.75px !important;
    line-height: 1.34 !important;
  }
}

body.home-page footer.site .foot-bottom,
body:not(.home-page) footer.site .foot-bottom {
  min-height: 0 !important;
  margin-top: 0 !important;
  padding: 7px 18px !important;
  line-height: 1.3 !important;
}

/* V280 — Brand at left; offices above the three navigation cards at right. */
@media (min-width: 1121px) {
  body.home-page footer.site .foot-top,
  body:not(.home-page) footer.site .foot-top {
    grid-template-columns: minmax(300px, .85fr) repeat(3, minmax(0, 1fr)) !important;
    align-items: start !important;
    width: min(calc(100% - 48px), 1840px) !important;
  }

  body.home-page footer.site .foot-top > .foot-brand,
  body:not(.home-page) footer.site .foot-top > .foot-brand {
    grid-column: 1 !important;
    grid-row: 1 / span 2 !important;
    align-self: stretch !important;
    height: 100% !important;
  }

  body.home-page footer.site .foot-top > .footer-regional-offices,
  body:not(.home-page) footer.site .foot-top > .footer-regional-offices {
    grid-column: 2 / -1 !important;
    grid-row: 1 !important;
  }

  body.home-page footer.site .foot-top > .fcol,
  body:not(.home-page) footer.site .foot-top > .fcol {
    grid-row: 2 !important;
  }

  body.home-page footer.site .foot-top > .fcol:nth-child(2),
  body:not(.home-page) footer.site .foot-top > .fcol:nth-child(2) {
    grid-column: 2 !important;
  }

  body.home-page footer.site .foot-top > .fcol:nth-child(3),
  body:not(.home-page) footer.site .foot-top > .fcol:nth-child(3) {
    grid-column: 3 !important;
  }

  body.home-page footer.site .foot-top > .fcol:nth-child(4),
  body:not(.home-page) footer.site .foot-top > .fcol:nth-child(4) {
    grid-column: 4 !important;
  }

  footer.site .footer-regional-offices .footer-office-entry p,
  footer.site .footer-regional-offices .footer-office-entry a,
  body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry p,
  body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry a {
    font-size: 11.25px !important;
    line-height: 1.38 !important;
  }
}

/* V282 — Uniform footer typography and exact card alignment. */
@media (min-width: 1121px) {
  body.home-page footer.site .foot-top > .fcol,
  body:not(.home-page) footer.site .foot-top > .fcol {
    align-self: stretch !important;
    height: 100% !important;
  }

  body.home-page footer.site .fcol h4,
  body.home-page footer.site .footer-regional-offices > b,
  body:not(.home-page) footer.site .fcol h4,
  body:not(.home-page) footer.site .footer-regional-offices > b {
    margin-bottom: 14px !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    letter-spacing: .08em !important;
  }

  body.home-page footer.site .footer-brand-copy p,
  body.home-page footer.site .fcol a,
  body.home-page footer.site .footer-regional-offices .footer-office-entry strong,
  body.home-page footer.site .footer-regional-offices .footer-office-entry p,
  body.home-page footer.site .footer-regional-offices .footer-office-entry a,
  body:not(.home-page) footer.site .footer-brand-copy p,
  body:not(.home-page) footer.site .fcol a,
  body:not(.home-page) footer.site .footer-regional-offices .footer-office-entry strong,
  body:not(.home-page) footer.site .footer-regional-offices .footer-office-entry p,
  body:not(.home-page) footer.site .footer-regional-offices .footer-office-entry a {
    font-size: 11.5px !important;
    line-height: 1.42 !important;
  }

  body.home-page footer.site .fcol a,
  body:not(.home-page) footer.site .fcol a {
    margin-bottom: 7px !important;
    padding-block: 1px !important;
  }

  body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry p,
  body.home-page footer.site .foot-top > .footer-regional-offices .footer-office-entry a,
  body:not(.home-page) footer.site .foot-top > .footer-regional-offices .footer-office-entry p,
  body:not(.home-page) footer.site .foot-top > .footer-regional-offices .footer-office-entry a,
  body.home-page footer.site .foot-sites a,
  body:not(.home-page) footer.site .foot-sites a {
    font-size: 11.5px !important;
    line-height: 1.42 !important;
  }
}

/* V285 — Copyright strip aligns exactly with the footer card grid. */
body.home-page footer.site .foot-bottom,
body:not(.home-page) footer.site .foot-bottom {
  flex: 0 0 auto !important;
  width: min(calc(100% - 48px), 1840px) !important;
  margin-right: auto !important;
  margin-left: auto !important;
  padding: 6px 18px !important;
}

body.home-page footer.site .footer-copyright,
body:not(.home-page) footer.site .footer-copyright {
  font-family: var(--sans, "Inter", "Segoe UI", sans-serif) !important;
  font-size: 11.5px !important;
  font-weight: 500 !important;
  line-height: 1.42 !important;
}

body.home-page footer.site .foot-bottom.fx-reveal,
body:not(.home-page) footer.site .foot-bottom.fx-reveal {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

/* V291 — Wider Talktide brand card and single-line desktop navigation. */
@media (min-width: 1121px) {
  body.home-page footer.site .foot-top,
  body:not(.home-page) footer.site .foot-top {
    grid-template-columns:
      minmax(360px, 1.18fr)
      minmax(250px, .80fr)
      minmax(145px, .46fr)
      minmax(250px, .80fr) !important;
  }

  body.home-page footer.site .fcol a,
  body:not(.home-page) footer.site .fcol a {
    display: block !important;
    white-space: nowrap !important;
  }
}

/* V314 - Fluid desktop footer: no dead right edge and balanced offices. */
@media (min-width: 1121px) {
  body.home-page footer.site .foot-top,
  body:not(.home-page) footer.site .foot-top,
  body.home-page footer.site .foot-bottom,
  body:not(.home-page) footer.site .foot-bottom {
    width: calc(100% - 48px) !important;
    max-width: none !important;
  }

  body.home-page footer.site .footer-regional-offices .footer-office-list,
  body:not(.home-page) footer.site .footer-regional-offices .footer-office-list {
    grid-template-columns: minmax(0, 1.32fr) minmax(0, 1fr) minmax(0, 1fr) !important;
  }
}
