/*
 * REAL.PRO Studios · CANONICAL FINAL FOOTER
 * Source markup is authoritative.
 * Desktop/tablet >760px preserve the existing theme footer.
 * Mobile <=760px gets the approved premium composition.
 */

:root{
  --rp-footer-final-red:var(--rp-brand-red,#e63236);
}

.rp-footer-mobile-source-symbol,
.rp-footer-mobile-services-toggle,
.rp-footer-mobile-services-panel{
  display:none;
}

.rp-footer-mobile-services-row{
  display:contents;
}

@media (min-width:761px){
  .site-footer--premium .rp-footer-mobile-services-page{
    color:inherit;
    text-decoration:none;
  }
}

@media (max-width:760px){
  html body .site-footer.site-footer--premium{
    --rp-footer-bg:#061321;
    --rp-footer-bg-deep:#040f1b;
    --rp-footer-text:#f7f8fb;
    --rp-footer-soft:rgba(247,248,251,.82);
    --rp-footer-line:rgba(247,248,251,.15);
    --rp-footer-line-soft:rgba(247,248,251,.085);
    --rp-footer-red:var(--rp-footer-final-red);

    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    background:
      radial-gradient(circle at 0 0,rgba(196,40,61,.075),transparent 28%),
      radial-gradient(circle at 100% 11%,rgba(26,91,153,.075),transparent 35%),
      linear-gradient(180deg,var(--rp-footer-bg) 0%,var(--rp-footer-bg-deep) 100%)!important;
    color:var(--rp-footer-text)!important;
  }

  html body .site-footer.site-footer--premium::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:-2!important;
    pointer-events:none!important;
    background-image:
      linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px)!important;
    background-size:72px 72px!important;
    opacity:.44!important;
  }

  html body .site-footer.site-footer--premium::after{
    content:""!important;
    position:absolute!important;
    z-index:-1!important;
    width:92vw!important;
    height:92vw!important;
    right:-63vw!important;
    top:9vw!important;
    border:1px solid rgba(35,103,166,.16)!important;
    border-radius:50%!important;
    pointer-events:none!important;
  }

  html body .site-footer.site-footer--premium .footer-shell{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding-inline:clamp(20px,5.6vw,30px)!important;
  }

  html body .site-footer.site-footer--premium .footer-main{
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-areas:
      "brand"
      "navigate"
      "newsletter"!important;
    gap:0!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:clamp(38px,9vw,54px) 0 30px!important;
  }

  html body .site-footer.site-footer--premium .footer-brand{
    grid-area:brand!important;
    box-sizing:border-box!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0 0 clamp(44px,10vw,62px)!important;
    padding:0!important;
    border:0!important;
  }

  html body .site-footer.site-footer--premium .footer-brand .brand--footer{
    display:none!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-source-symbol{
    box-sizing:border-box!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:clamp(80px,21vw,92px)!important;
    max-width:92px!important;
    height:auto!important;
    min-height:0!important;
    margin:0 0 clamp(26px,6vw,34px)!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    text-decoration:none!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-source-symbol img{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    object-fit:contain!important;
    object-position:left center!important;
    filter:drop-shadow(0 8px 22px rgba(0,0,0,.16))!important;
  }

  html body .site-footer.site-footer--premium .footer-brand > p{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:34rem!important;
    margin:0!important;
    padding:0!important;
    color:var(--rp-footer-soft)!important;
    font-size:clamp(16px,4.25vw,20px)!important;
    font-weight:430!important;
    line-height:1.54!important;
    letter-spacing:-.016em!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }

  html body .site-footer.site-footer--premium .footer-col--navigate{
    grid-area:navigate!important;
    box-sizing:border-box!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0 0 clamp(50px,11vw,68px)!important;
    padding:0!important;
    border:0!important;
  }

  html body .site-footer.site-footer--premium .footer-col--navigate > h2{
    margin:0 0 28px!important;
    padding:0!important;
    color:#fff!important;
    font-size:clamp(12px,3.15vw,15px)!important;
    font-weight:800!important;
    line-height:1.2!important;
    letter-spacing:.28em!important;
    text-transform:uppercase!important;
  }

  html body .site-footer.site-footer--premium .footer-col--navigate > h2::after{
    content:""!important;
    display:block!important;
    width:54px!important;
    height:4px!important;
    margin-top:16px!important;
    border-radius:999px!important;
    background:var(--rp-footer-red)!important;
  }

  html body .site-footer.site-footer--premium .footer-col--navigate > a,
  html body .site-footer.site-footer--premium .rp-footer-mobile-services-row{
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    min-height:clamp(76px,18.4vw,84px)!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-bottom:1px solid var(--rp-footer-line)!important;
    background:transparent!important;
  }

  html body .site-footer.site-footer--premium .footer-col--navigate > a:first-of-type{
    border-top:1px solid var(--rp-footer-line)!important;
  }

  html body .site-footer.site-footer--premium .footer-col--navigate > a{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    padding-right:54px!important;
    color:var(--rp-footer-text)!important;
    font-size:clamp(18px,5vw,23px)!important;
    font-weight:480!important;
    line-height:1.1!important;
    letter-spacing:-.02em!important;
    text-decoration:none!important;
    -webkit-tap-highlight-color:transparent!important;
    touch-action:manipulation!important;
  }

  html body .site-footer.site-footer--premium .footer-col--navigate > a::after{
    content:""!important;
    position:absolute!important;
    top:50%!important;
    right:15px!important;
    width:11px!important;
    height:11px!important;
    margin:0!important;
    border-right:2px solid rgba(255,255,255,.96)!important;
    border-bottom:2px solid rgba(255,255,255,.96)!important;
    transform:translateY(-50%) rotate(-45deg)!important;
    transform-origin:center!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 54px!important;
    align-items:center!important;
    gap:0!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-page{
    box-sizing:border-box!important;
    display:flex!important;
    align-items:center!important;
    align-self:stretch!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    color:var(--rp-footer-text)!important;
    font-size:clamp(18px,5vw,23px)!important;
    font-weight:480!important;
    line-height:1.1!important;
    letter-spacing:-.02em!important;
    text-decoration:none!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-toggle{
    box-sizing:border-box!important;
    position:relative!important;
    display:grid!important;
    place-items:center!important;
    justify-self:end!important;
    align-self:center!important;
    width:48px!important;
    height:48px!important;
    min-width:48px!important;
    min-height:48px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:50%!important;
    background:transparent!important;
    color:#fff!important;
    cursor:pointer!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-toggle span{
    position:relative!important;
    display:block!important;
    width:24px!important;
    height:24px!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-toggle span::before,
  html body .site-footer.site-footer--premium .rp-footer-mobile-services-toggle span::after{
    content:""!important;
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    display:block!important;
    width:22px!important;
    height:2px!important;
    border-radius:999px!important;
    background:#fff!important;
    transform:translate(-50%,-50%)!important;
    transition:transform .18s ease,opacity .18s ease!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-toggle span::after{
    transform:translate(-50%,-50%) rotate(90deg)!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-toggle[aria-expanded="true"] span::after{
    opacity:0!important;
    transform:translate(-50%,-50%) rotate(0)!important;
  }

  html body .site-footer.site-footer--premium .footer-col--services{
    display:none!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-panel{
    box-sizing:border-box!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    border-bottom:1px solid var(--rp-footer-line)!important;
    background:rgba(255,255,255,.012)!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-panel[hidden]{
    display:none!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:0!important;
    width:100%!important;
    min-width:0!important;
    padding:8px 0 16px!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-grid > a{
    box-sizing:border-box!important;
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-width:0!important;
    min-height:52px!important;
    margin:0!important;
    padding:13px 4px 13px 30px!important;
    border-bottom:1px solid var(--rp-footer-line-soft)!important;
    color:rgba(247,248,251,.86)!important;
    font-size:clamp(15px,4vw,18px)!important;
    font-weight:440!important;
    line-height:1.3!important;
    text-decoration:none!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-services-grid > a::before{
    content:""!important;
    position:absolute!important;
    left:7px!important;
    top:50%!important;
    width:7px!important;
    height:7px!important;
    border-radius:50%!important;
    background:var(--rp-footer-red)!important;
    box-shadow:0 0 0 6px rgba(230,50,54,.055)!important;
    transform:translateY(-50%)!important;
  }

  html body .site-footer.site-footer--premium .footer-col--newsletter{
    grid-area:newsletter!important;
    box-sizing:border-box!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
  }

  html body .site-footer.site-footer--premium .footer-col--newsletter > h2{
    margin:0 0 28px!important;
    padding:0!important;
    color:#fff!important;
    font-size:clamp(12px,3.15vw,15px)!important;
    font-weight:800!important;
    line-height:1.2!important;
    letter-spacing:.28em!important;
    text-transform:uppercase!important;
  }

  html body .site-footer.site-footer--premium .footer-col--newsletter > h2::after{
    content:""!important;
    display:block!important;
    width:54px!important;
    height:4px!important;
    margin-top:16px!important;
    border-radius:999px!important;
    background:var(--rp-footer-red)!important;
  }

  html body .site-footer.site-footer--premium .footer-col--newsletter > p{
    width:100%!important;
    min-width:0!important;
    max-width:34rem!important;
    margin:0 0 24px!important;
    padding:0!important;
    color:var(--rp-footer-soft)!important;
    font-size:clamp(16px,4.1vw,19px)!important;
    line-height:1.52!important;
    letter-spacing:-.014em!important;
  }

  html body .site-footer.site-footer--premium .footer-newsletter{
    box-sizing:border-box!important;
    display:flex!important;
    grid-template-columns:none!important;
    align-items:center!important;
    width:100%!important;
    min-width:0!important;
    min-height:64px!important;
    margin:0 0 28px!important;
    padding:0!important;
    border:1px solid rgba(247,248,251,.42)!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.03)!important;
    overflow:hidden!important;
    box-shadow:none!important;
  }

  html body .site-footer.site-footer--premium .footer-newsletter input{
    box-sizing:border-box!important;
    flex:1 1 auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    height:62px!important;
    margin:0!important;
    padding:0 18px!important;
    border:0!important;
    outline:0!important;
    background:transparent!important;
    color:#fff!important;
    font-size:clamp(15px,4vw,18px)!important;
  }

  html body .site-footer.site-footer--premium .footer-newsletter button{
    box-sizing:border-box!important;
    flex:0 0 62px!important;
    display:grid!important;
    place-items:center!important;
    width:62px!important;
    min-width:62px!important;
    max-width:62px!important;
    height:62px!important;
    min-height:62px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:50%!important;
    background:var(--rp-footer-red)!important;
    color:#fff!important;
  }

  html body .site-footer.site-footer--premium .footer-contact-mini{
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:0!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
  }

  html body .site-footer.site-footer--premium .footer-contact-mini > a{
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:30px minmax(0,1fr)!important;
    align-items:center!important;
    column-gap:14px!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:68px!important;
    margin:0!important;
    padding:14px 0!important;
    border:0!important;
    border-bottom:1px solid var(--rp-footer-line)!important;
    background:transparent!important;
    color:rgba(247,248,251,.93)!important;
    font-size:clamp(14px,3.9vw,17px)!important;
    line-height:1.35!important;
    text-decoration:none!important;
  }

  html body .site-footer.site-footer--premium .footer-contact-mini > a svg{
    display:block!important;
    width:22px!important;
    height:22px!important;
    margin:0!important;
    padding:0!important;
    fill:none!important;
    stroke:var(--rp-footer-red)!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }

  html body .site-footer.site-footer--premium .footer-contact-mini > a span{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    color:inherit!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:anywhere!important;
  }

  html body .site-footer.site-footer--premium .footer-contact-mini > a[href^="tel:"] span{
    white-space:nowrap!important;
    overflow-wrap:normal!important;
  }

  html body .site-footer.site-footer--premium .footer-bottom--premium{
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:28px 0 34px!important;
    border:0!important;
    border-top:1px solid var(--rp-footer-line)!important;
    border-radius:0!important;
    background:transparent!important;
    color:var(--rp-footer-soft)!important;
  }

  html body .site-footer.site-footer--premium .footer-bottom--premium > p{
    margin:0!important;
    color:var(--rp-footer-soft)!important;
    font-size:clamp(13px,3.45vw,15px)!important;
    line-height:1.5!important;
  }

  html body .site-footer.site-footer--premium .footer-bottom--premium > div{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:6px 14px!important;
    width:100%!important;
    min-width:0!important;
  }

  html body .site-footer.site-footer--premium .footer-bottom--premium a{
    display:inline-flex!important;
    align-items:center!important;
    min-height:44px!important;
    color:rgba(247,248,251,.90)!important;
    font-size:clamp(13px,3.45vw,15px)!important;
    text-decoration:none!important;
  }
}

@media (max-width:380px){
  html body .site-footer.site-footer--premium .footer-shell{
    padding-inline:20px!important;
  }

  html body .site-footer.site-footer--premium .rp-footer-mobile-source-symbol{
    width:78px!important;
  }

  html body .site-footer.site-footer--premium .footer-col--navigate > a,
  html body .site-footer.site-footer--premium .rp-footer-mobile-services-row{
    min-height:72px!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .site-footer *,
  .site-footer *::before,
  .site-footer *::after{
    transition:none!important;
  }
}

/* =========================================================
   REALPRO_SCROLLTOP_RESPONSIVE_AUTHORITY_20260920
   Canonical ownership of the global back-to-top control.
   Prevents collision with footer content on every viewport.
   ========================================================= */

html body .rp-scroll-top,
html body .rp-scroll-top.is-visible{
  box-sizing:border-box !important;

  position:fixed !important;

  right:max(
    24px,
    calc(env(safe-area-inset-right,0px) + 18px)
  ) !important;

  bottom:max(
    24px,
    calc(env(safe-area-inset-bottom,0px) + 18px)
  ) !important;

  width:56px !important;
  height:56px !important;

  margin:0 !important;
  padding:0 !important;

  display:grid !important;
  place-items:center !important;

  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;

  transform:translateY(12px) scale(.94) !important;

  transition:
    opacity .25s ease,
    visibility .25s ease,
    transform .25s ease,
    background .25s ease,
    border-color .25s ease !important;
}


/* Canonical JS is the only visibility authority. */

html body
.rp-scroll-top.rp-scrolltop-safe-visible{
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;

  transform:translateY(0) scale(1) !important;
}


/* Notebook / tablet */

@media (min-width:761px) and (max-width:1199px){

  html body .rp-scroll-top,
  html body .rp-scroll-top.is-visible{
    width:52px !important;
    height:52px !important;

    right:max(
      20px,
      calc(env(safe-area-inset-right,0px) + 18px)
    ) !important;

    bottom:max(
      20px,
      calc(env(safe-area-inset-bottom,0px) + 18px)
    ) !important;
  }

}


/* Mobile */

@media (max-width:760px){

  html body .rp-scroll-top,
  html body .rp-scroll-top.is-visible{
    width:48px !important;
    height:48px !important;

    right:max(
      16px,
      calc(env(safe-area-inset-right,0px) + 14px)
    ) !important;

    bottom:max(
      16px,
      calc(env(safe-area-inset-bottom,0px) + 14px)
    ) !important;
  }

  html body .rp-scroll-top::before{
    font-size:21px !important;
  }

}


/* Small phones */

@media (max-width:380px){

  html body .rp-scroll-top,
  html body .rp-scroll-top.is-visible{
    width:46px !important;
    height:46px !important;

    right:max(
      14px,
      calc(env(safe-area-inset-right,0px) + 12px)
    ) !important;

    bottom:max(
      14px,
      calc(env(safe-area-inset-bottom,0px) + 12px)
    ) !important;
  }

}


/* Accessibility */

@media (prefers-reduced-motion:reduce){

  html body .rp-scroll-top{
    transition:none !important;
  }

}

/* =========================================================
   REALPRO_SCROLLTOP_GLOBAL_REMOVAL_20260920
   Definitive authority.
   The legacy global back-to-top control is intentionally
   removed from every viewport and interaction state.
   ========================================================= */

html body .rp-scroll-top,
html body button.rp-scroll-top,
html body .rp-scroll-top.is-visible,
html body button.rp-scroll-top.is-visible{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
  width:0 !important;
  height:0 !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
  transform:none !important;
}

/* =========================================================
   REALPRO_NAVIGATE_CLEAN_AUTHORITY_20260920

   SINGLE FINAL AUTHORITY:
   Home / About / Services / Process / Contact

   No accumulated margin corrections.
   No absolute positioning.
   No translate compensation.
   No display:contents in primary navigation geometry.

   Each viewport receives one row size.
   All five items use exactly the same row geometry.
   ========================================================= */


/* ---------------------------------------------------------
   GLOBAL NAV RESET
   --------------------------------------------------------- */

html body
.site-footer.site-footer--premium
nav.footer-col.footer-col--navigate{
  box-sizing:border-box !important;

  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;

  width:100% !important;
  min-width:0 !important;

  gap:0 !important;
  row-gap:0 !important;
  column-gap:0 !important;

  padding:0 !important;
}


/* Remove geometry inherited from generic .footer-col rules. */

html body
.site-footer.site-footer--premium
nav.footer-col.footer-col--navigate
> a,

html body
.site-footer.site-footer--premium
nav.footer-col.footer-col--navigate
> .rp-footer-mobile-services-row,

html body
.site-footer.site-footer--premium
nav.footer-col.footer-col--navigate
.rp-footer-mobile-services-page{
  box-sizing:border-box !important;

  margin:0 !important;

  top:auto !important;
  right:auto !important;
  bottom:auto !important;
  left:auto !important;

  transform:none !important;
}


/* ---------------------------------------------------------
   DESKTOP + NOTEBOOK
   --------------------------------------------------------- */

@media (min-width:981px){

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate{
    --rp-nav-row:54px;
  }


  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > h2{
    flex:0 0 auto !important;

    margin:
      0
      0
      24px
      0 !important;

    padding:0 !important;
  }


  /* HOME / ABOUT / PROCESS / CONTACT */

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > a{
    position:relative !important;

    display:flex !important;
    flex:0 0 var(--rp-nav-row) !important;

    align-items:center !important;
    justify-content:flex-start !important;

    width:100% !important;

    height:var(--rp-nav-row) !important;
    min-height:var(--rp-nav-row) !important;
    max-height:var(--rp-nav-row) !important;

    margin:0 !important;
    padding:0 !important;
  }


  /* SERVICES WRAPPER = EXACTLY ONE NORMAL ROW */

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > .rp-footer-mobile-services-row{
    position:relative !important;

    display:grid !important;
    flex:0 0 var(--rp-nav-row) !important;

    grid-template-columns:minmax(0,1fr) !important;
    align-items:stretch !important;

    width:100% !important;

    height:var(--rp-nav-row) !important;
    min-height:var(--rp-nav-row) !important;
    max-height:var(--rp-nav-row) !important;

    margin:0 !important;
    padding:0 !important;

    gap:0 !important;
  }


  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  .rp-footer-mobile-services-page{
    position:relative !important;

    display:flex !important;

    align-items:center !important;
    justify-content:flex-start !important;

    width:100% !important;

    height:var(--rp-nav-row) !important;
    min-height:var(--rp-nav-row) !important;
    max-height:var(--rp-nav-row) !important;

    margin:0 !important;
    padding:0 !important;
  }


  /* Accordion control does not participate in desktop geometry. */

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  .rp-footer-mobile-services-toggle{
    display:none !important;
  }


  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  .rp-footer-mobile-services-panel{
    display:none !important;
  }
}


/* ---------------------------------------------------------
   TABLET
   --------------------------------------------------------- */

@media (min-width:761px) and (max-width:980px){

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate{
    --rp-nav-row:60px;
  }


  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > h2{
    flex:0 0 auto !important;

    margin:
      0
      0
      24px
      0 !important;

    padding:0 !important;
  }


  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > a{
    position:relative !important;

    display:flex !important;
    flex:0 0 var(--rp-nav-row) !important;

    align-items:center !important;
    justify-content:flex-start !important;

    width:100% !important;

    height:var(--rp-nav-row) !important;
    min-height:var(--rp-nav-row) !important;
    max-height:var(--rp-nav-row) !important;

    margin:0 !important;
    padding:0 !important;
  }


  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > .rp-footer-mobile-services-row{
    position:relative !important;

    display:grid !important;
    flex:0 0 var(--rp-nav-row) !important;

    grid-template-columns:minmax(0,1fr) !important;
    align-items:stretch !important;

    width:100% !important;

    height:var(--rp-nav-row) !important;
    min-height:var(--rp-nav-row) !important;
    max-height:var(--rp-nav-row) !important;

    margin:0 !important;
    padding:0 !important;

    gap:0 !important;
  }


  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  .rp-footer-mobile-services-page{
    position:relative !important;

    display:flex !important;

    align-items:center !important;
    justify-content:flex-start !important;

    width:100% !important;

    height:var(--rp-nav-row) !important;
    min-height:var(--rp-nav-row) !important;
    max-height:var(--rp-nav-row) !important;

    margin:0 !important;
    padding:0 !important;
  }


  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  .rp-footer-mobile-services-toggle,

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  .rp-footer-mobile-services-panel{
    display:none !important;
  }
}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width:760px){

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate{
    --rp-nav-row:80px;
  }


  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > h2{
    flex:0 0 auto !important;

    margin:
      0
      0
      28px
      0 !important;

    padding:0 !important;
  }


  /* HOME / ABOUT / PROCESS / CONTACT */

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > a{
    position:relative !important;

    display:flex !important;
    flex:0 0 var(--rp-nav-row) !important;

    align-items:center !important;
    justify-content:flex-start !important;

    width:100% !important;

    height:var(--rp-nav-row) !important;
    min-height:var(--rp-nav-row) !important;
    max-height:var(--rp-nav-row) !important;

    margin:0 !important;

    padding:
      0
      54px
      0
      0 !important;
  }


  /* SERVICES = ONE IDENTICAL 80px ROW */

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > .rp-footer-mobile-services-row{
    position:relative !important;

    display:grid !important;
    flex:0 0 var(--rp-nav-row) !important;

    grid-template-columns:minmax(0,1fr) 54px !important;
    align-items:stretch !important;

    width:100% !important;

    height:var(--rp-nav-row) !important;
    min-height:var(--rp-nav-row) !important;
    max-height:var(--rp-nav-row) !important;

    margin:0 !important;
    padding:0 !important;

    gap:0 !important;
  }


  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > .rp-footer-mobile-services-row
  > .rp-footer-mobile-services-page{
    position:relative !important;

    display:flex !important;

    align-items:center !important;
    justify-content:flex-start !important;

    width:100% !important;

    height:var(--rp-nav-row) !important;
    min-height:var(--rp-nav-row) !important;
    max-height:var(--rp-nav-row) !important;

    margin:0 !important;
    padding:0 !important;
  }


  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > .rp-footer-mobile-services-row
  > .rp-footer-mobile-services-toggle{
    position:relative !important;

    display:grid !important;
    place-items:center !important;

    align-self:center !important;
    justify-self:end !important;

    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    min-height:48px !important;

    margin:0 !important;
    padding:0 !important;

    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;

    transform:none !important;
  }


  /* Closed panel contributes ZERO geometry. */

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > .rp-footer-mobile-services-panel[hidden]{
    display:none !important;
  }
}

/* ==========================================================
   REALPRO_FOOTER_DESKTOP_COLUMN_ALIGNMENT_20260921
   Desktop-only alignment authority.
   Navigate and Services share the same vertical rhythm.
   Mobile/tablet behavior remains untouched.
   ========================================================== */

@media (min-width: 1024px) {

  .site-footer.site-footer--premium
  .footer-main{
    align-items:start;
  }

  .site-footer.site-footer--premium
  .footer-col--navigate,

  .site-footer.site-footer--premium
  .footer-col--services{
    align-self:start;
  }


  /* ------------------------------------------
     HEADINGS
     ------------------------------------------ */

  .site-footer.site-footer--premium
  .footer-col--navigate > h2,

  .site-footer.site-footer--premium
  .footer-col--services > h2{
    margin-top:0 !important;
    margin-bottom:0 !important;
    min-height:76px;
    display:flex;
    align-items:flex-start;
  }


  /* ------------------------------------------
     NAVIGATE
     6 service rows use the same rhythm below.
     ------------------------------------------ */

  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate{
    display:flex;
    flex-direction:column;
  }

  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate > a,

  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > .rp-footer-mobile-services-row{
    width:100%;
    min-height:48px;
    display:flex;
    align-items:center;
    margin:0 !important;
  }

  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > a:not(:last-of-type),

  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate
  > .rp-footer-mobile-services-row{
    margin-bottom:48px !important;
  }


  /* ------------------------------------------
     SERVICES
     Two columns / six perfectly aligned rows.
     ------------------------------------------ */

  .site-footer.site-footer--premium
  .footer-col--services
  .footer-link-grid{
    display:grid !important;
    grid-template-columns:
      minmax(0,1fr)
      minmax(0,1fr);

    grid-auto-rows:48px;

    column-gap:72px;
    row-gap:48px;

    align-items:center;

    margin-top:0 !important;
    padding-top:0 !important;
  }

  .site-footer.site-footer--premium
  .footer-col--services
  .footer-link-grid > a{
    min-width:0;
    min-height:48px;

    display:flex;
    align-items:center;

    margin:0 !important;
    padding-top:0 !important;
    padding-bottom:0 !important;

    line-height:1.25;
  }


  /* ------------------------------------------
     Keep both content starts on same baseline.
     ------------------------------------------ */

  .site-footer.site-footer--premium
  .footer-col--navigate > h2 + a,

  .site-footer.site-footer--premium
  .footer-col--navigate > h2
  + .rp-footer-mobile-services-row,

  .site-footer.site-footer--premium
  .footer-col--services > h2
  + .footer-link-grid{
    margin-top:48px !important;
  }

}




/* =========================================================
   REALPRO_FOOTER_DESKTOP_PERFECT_ALIGNMENT_20260921
   Keep smartphone exactly as-is
   Align Navigate with Services on desktop/tablet
   ========================================================= */

@media (min-width:761px){

  html body
  .site-footer.site-footer--premium{
    --rp-footer-desktop-row:72px;
    --rp-footer-desktop-gap:0px;
  }

  /* -------------------------------------------------------
     NAVIGATE
     ------------------------------------------------------- */

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate{
    display:flex !important;
    flex-direction:column !important;
    gap:var(--rp-footer-desktop-gap) !important;
  }

  html body
  .site-footer.site-footer--premium
  nav.footer-col.footer-col--navigate > a{
    box-sizing:border-box !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;

    width:100% !important;
    height:var(--rp-footer-desktop-row) !important;
    min-height:var(--rp-footer-desktop-row) !important;
    max-height:var(--rp-footer-desktop-row) !important;

    margin:0 !important;
    padding:0 !important;
    line-height:1 !important;
    transform:none !important;
    position:relative !important;
    top:auto !important;
  }

  /* -------------------------------------------------------
     SERVICES
     broad desktop authority so we do not depend on a single
     internal wrapper naming variation
     ------------------------------------------------------- */

  html body
  .site-footer.site-footer--premium
  .footer-col--services ul,
  html body
  .site-footer.site-footer--premium
  .footer-col--services ol,
  html body
  .site-footer.site-footer--premium
  .footer-col--services .footer-services-list,
  html body
  .site-footer.site-footer--premium
  .footer-col--services .footer-services-col,
  html body
  .site-footer.site-footer--premium
  .footer-col--services .footer-services-column{
    display:grid !important;
    row-gap:0 !important;
    margin:0 !important;
    padding:0 !important;
  }

  html body
  .site-footer.site-footer--premium
  .footer-col--services li{
    list-style:none !important;
    margin:0 !important;
    padding:0 !important;
    min-height:var(--rp-footer-desktop-row) !important;
    display:flex !important;
    align-items:center !important;
  }

  html body
  .site-footer.site-footer--premium
  .footer-col--services a{
    box-sizing:border-box !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;

    width:100% !important;
    height:var(--rp-footer-desktop-row) !important;
    min-height:var(--rp-footer-desktop-row) !important;
    max-height:var(--rp-footer-desktop-row) !important;

    margin:0 !important;
    padding:0 !important;
    line-height:1 !important;
    transform:none !important;
    position:relative !important;
    top:auto !important;
  }

  /* Preserve service bullet presence while normalizing rhythm */
  html body
  .site-footer.site-footer--premium
  .footer-col--services a::before{
    align-self:center !important;
  }
}

/* Slightly denser laptop fit without touching mobile */
@media (min-width:761px) and (max-width:1200px){
  html body
  .site-footer.site-footer--premium{
    --rp-footer-desktop-row:64px;
  }
}

/* ==========================================================
   REALPRO_FOOTER_SERVICES_HORIZONTAL_REFINEMENT_20260921

   Desktop-only refinement:
   - preserves vertical alignment
   - increases Services column separation
   - creates dedicated bullet gutter
   - prevents red bullet from touching text
   - smartphone remains untouched
   ========================================================== */

@media (min-width:1024px){

  /* ---------------------------------------------
     SERVICES GRID
     --------------------------------------------- */

  html body
  .site-footer.site-footer--premium
  .footer-col.footer-col--services
  .footer-link-grid{

    display:grid !important;

    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, 1fr) !important;

    column-gap:clamp(64px, 5vw, 96px) !important;

    align-items:center !important;

    width:100% !important;
  }


  /* ---------------------------------------------
     SERVICE LINKS
     Dedicated gutter for bullet.
     --------------------------------------------- */

  html body
  .site-footer.site-footer--premium
  .footer-col.footer-col--services
  .footer-link-grid > a{

    box-sizing:border-box !important;

    position:relative !important;

    display:flex !important;
    align-items:center !important;

    width:100% !important;

    padding-left:38px !important;
    padding-right:8px !important;

    white-space:nowrap;

    overflow:visible !important;

    margin-left:0 !important;
  }


  /* ---------------------------------------------
     RED BULLET
     Keep current visual treatment.
     Change positioning only.
     --------------------------------------------- */

  html body
  .site-footer.site-footer--premium
  .footer-col.footer-col--services
  .footer-link-grid > a::before{

    position:absolute !important;

    left:6px !important;
    top:50% !important;

    transform:translateY(-50%) !important;

    margin:0 !important;

    flex:none !important;
  }

}

/* ==========================================================
   REALPRO_FOOTER_SERVICES_FINAL_GRID_SYNC_20260921

   Final desktop authority:
   - synchronizes Services rows with Navigate
   - preserves heading position
   - preserves red bullet treatment
   - creates clean bullet/text separation
   - prevents service-name wrapping
   - smartphone remains untouched
   ========================================================== */

@media (min-width:1024px){

  html body
  .site-footer.site-footer--premium
  .footer-col.footer-col--services
  .footer-link-grid{

    transform:translateY(-45px) !important;

    grid-template-columns:
      minmax(0,1fr)
      minmax(0,1fr) !important;

    column-gap:48px !important;

    row-gap:0 !important;

    align-items:center !important;
  }


  html body
  .site-footer.site-footer--premium
  .footer-col.footer-col--services
  .footer-link-grid > a{

    position:relative !important;

    box-sizing:border-box !important;

    display:flex !important;
    align-items:center !important;

    padding-left:34px !important;
    padding-right:0 !important;

    margin:0 !important;

    white-space:nowrap !important;
    word-break:normal !important;
    overflow-wrap:normal !important;

    line-height:1.2 !important;

    overflow:visible !important;
  }


  html body
  .site-footer.site-footer--premium
  .footer-col.footer-col--services
  .footer-link-grid > a::before{

    position:absolute !important;

    left:4px !important;
    top:50% !important;

    transform:translateY(-50%) !important;

    margin:0 !important;
  }

}


