/* Footer, legal line and WhatsApp button (every page) — split out of the old footer.css / footer-contact.css; printed by footer.php */
.footer {
    background-color: #151515;
    color: #fff;
    padding-top: 24px;
    padding-bottom: 24px;
    padding-left: 16px;
    padding-right: 16px;
}
.footer-logo-zone {
    text-align: center;
    margin-bottom: 20px;
    margin-top: 8px;
}
.footer-logo-zone a {
    display: inline-block;
    max-width: 150px;
    text-decoration: none;
}
.footer-logo-zone img {
    display: block;
    width: 100%;
    height: auto;
}
.footer-rule {
    display: block;
    background-color: #3b3b3b;
    height: 1px;
    width: 100%;
    border: none;
    margin: 0;
}
.footer-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    padding-top: 24px;
    padding-bottom: 8px;
}
.footer-col-head {
    display: block;
    font-family: var(--sans);
    font-size: .58rem;
    font-weight: 500;
    letter-spacing: .24em;
    text-transform: uppercase;
    color: rgba(255,255,255,.28);
    margin-bottom: 16px;
    margin-top: 24px;
}
.footer-nav > div:first-child .footer-col-head,
.footer-nav > div:nth-child(2) .footer-col-head { margin-top: 0; }
.footer-nav a {
    display: block;
    font-family: var(--sans);
    font-size: .75rem;
    font-weight: 400;
    letter-spacing: .1818em;
    line-height: 1.636;
    text-transform: uppercase;
    color: #fff;
    text-decoration: none;
    margin-bottom: 16px;
    transition: opacity .4s;
}
.footer-nav a:link,
.footer-nav a:visited { color: #fff; text-decoration: none; }
.footer-nav a:hover { opacity: .7; }
/* Galaxy Z Fold cover screen and other sub-340px phones: one column,
   slightly tighter tracking, so the uppercase links never overflow (R-07) */
@media only screen and (max-width: 340px) {
    .footer-nav { grid-template-columns: minmax(0, 1fr); }
    .footer-nav > div:nth-child(2) .footer-col-head { margin-top: 24px; }
    .footer-nav a { letter-spacing: .12em; }
}
.footer-address {
    font-family: var(--sans);
    font-size: .72rem;
    font-weight: 300;
    letter-spacing: .03em;
    color: rgba(255,255,255,.50);
    line-height: 1.9;
    text-transform: none;
    margin-bottom: 16px;
}
.footer-address a {
    display: inline !important;
    font-size: .72rem !important;
    font-weight: 300 !important;
    letter-spacing: .03em !important;
    color: rgba(255,255,255,.50) !important;
    text-transform: none !important;
    text-decoration: none !important;
    margin-bottom: 0 !important;
    transition: opacity .4s !important;
}
.footer-address a:hover { opacity: .7 !important; }
.footer-address-label {
    display: block;
    font-size: .55rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: rgba(255,255,255,.20);
    margin-bottom: 6px;
    margin-top: 16px;
}
.footer-social-bar {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding-top: 16px;
    padding-bottom: 24px;
}
.footer-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-left: 24px;
    text-decoration: none;
    opacity: .45;
    transition: opacity .4s;
}
.footer-social:first-child { margin-left: 0; }
.footer-social:hover { opacity: 1; }
.footer-social svg { display: block; width: 18px; height: 18px; fill: #fff; }
.footer-legal {
    padding-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.footer-copy {
    font-family: var(--sans);
    font-size: .63rem;
    font-weight: 300;
    letter-spacing: .038em;
    line-height: 1.9230769231;
    color: rgba(255,255,255,.36);
}
.footer-copy a { color: rgba(255,255,255,.36); text-decoration: none; transition: opacity .4s; }
.footer-copy a:hover { opacity: .7; }
.footer-tracking {
    font-size: .6rem;
    font-weight: 300;
    color: rgba(255,255,255,.26);
    text-decoration: none;
    letter-spacing: .038em;
    transition: opacity .4s;
    margin-left: 14px;
}
.footer-tracking:hover { opacity: .7; }
.wa-float {
    /* --brg-cb-h is the live cookie-banner height (include/cookie-banner.php); it is 0px
       whenever the banner is absent, so this sits at 32px as before and
       lifts clear only while the banner is on screen. */
    position: fixed; bottom: calc(32px + var(--brg-cb-h, 0px)); right: 32px; z-index: 90;
    width: 54px; height: 54px; border-radius: 50%;
    background: hsla(0,0%,8%,.3);
    -webkit-backdrop-filter: blur(20px) saturate(1.4);
    backdrop-filter: blur(20px) saturate(1.4);
    display: flex; align-items: center; justify-content: center;
    /* include/cookie-banner.php owns the lift and restates this list with
       !important (it has to — .wa-float is re-declared in eight files).
       Kept in step here so this file reads correctly on its own: the lift
       is `translate` on any current engine, `bottom` only as the pre-2022
       fallback, both at .62s so the two floats move as one. */
    transition: transform .5s var(--ease), translate .62s cubic-bezier(.22,1,.36,1), bottom .62s cubic-bezier(.22,1,.36,1);
}
.wa-float:hover { transform: scale(1.1); }
.wa-float svg { width: 26px; height: 26px; fill: white; }
@media only screen and (max-width: 767px){
body.single-property .wa-float { display: none; }
}
@media only screen and (max-width: 600px){
.wa-float { bottom: calc(20px + var(--brg-cb-h, 0px)); right: 20px; width: 48px; height: 48px; }
.wa-float svg { width: 22px; height: 22px; }
}
@media only screen and (min-width: 768px){
.footer { padding-top: 40px; padding-bottom: 40px; padding-left: 32px; padding-right: 32px; }
.footer-logo-zone { margin-bottom: 32px; }
.footer-nav { grid-template-columns: repeat(4, 1fr); padding-top: 32px; padding-bottom: 16px; }
.footer-nav > div:first-child .footer-col-head,
    .footer-nav > div:nth-child(2) .footer-col-head,
    .footer-nav > div:nth-child(3) .footer-col-head,
    .footer-nav > div:nth-child(4) .footer-col-head { margin-top: 0; }
.footer-social-bar { padding-top: 8px; padding-bottom: 32px; }
.footer-legal { flex-direction: row; justify-content: space-between; align-items: center; padding-top: 24px; }
}
@media only screen and (min-width: 1024px){
.footer { padding-left: 52px; padding-right: 52px; }
}
@media only screen and (min-width: 1440px){
.footer { padding-top: 48px; padding-bottom: 48px; padding-left: 64px; padding-right: 64px; }
}
:where(:root[data-theme="dark"]) .footer{background-color:var(--surface)}
