/* =========================================================
   OGROUP WEBSITE
   CSS PARTE 1
   RESET • VARIABILI • BASE • LOADER • NAVBAR
========================================================= */


/* =========================================================
   GOOGLE FONT FALLBACK
   I font principali sono già caricati nell'index.html.
========================================================= */


/* =========================================================
   DESIGN SYSTEM
========================================================= */

:root {

    /* Background */
    --color-black: #080808;
    --color-black-soft: #0d0d0e;
    --color-charcoal: #131416;
    --color-charcoal-light: #1a1b1d;

    /* Text */
    --color-white: #f5f3ef;
    --color-white-pure: #ffffff;
    --color-grey: #aaa7a2;
    --color-grey-dark: #74716d;

    /* Brand */
    --color-red: #a4161a;
    --color-red-light: #cf2027;
    --color-red-dark: #720d10;

    /* Borders */
    --color-border: rgba(255, 255, 255, 0.14);
    --color-border-light: rgba(255, 255, 255, 0.24);

    /* Typography */
    --font-heading: "Cormorant Garamond", Georgia, serif;
    --font-body: "Montserrat", Arial, sans-serif;

    /* Layout */
    --page-padding: clamp(24px, 5vw, 88px);
    --section-spacing: clamp(100px, 12vw, 190px);
    --header-height: 104px;
    --content-width: 1500px;

    /* Effects */
    --transition-fast: 220ms ease;
    --transition-medium: 450ms cubic-bezier(0.22, 1, 0.36, 1);
    --transition-slow: 900ms cubic-bezier(0.22, 1, 0.36, 1);

    --shadow-soft:
        0 20px 70px rgba(0, 0, 0, 0.35);

    --shadow-red:
        0 0 35px rgba(164, 22, 26, 0.28);
}


/* =========================================================
   RESET
========================================================= */

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


html {
    scroll-behavior: smooth;
    background: var(--color-black);
}


body {
    min-height: 100vh;

    background:
        var(--color-black);

    color:
        var(--color-white);

    font-family:
        var(--font-body);

    font-size: 16px;
    font-weight: 300;
    line-height: 1.7;

    overflow-x: hidden;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}


body.menu-open {
    overflow: hidden;
}


img,
picture,
video,
canvas,
svg {
    display: block;
    max-width: 100%;
}


img {
    user-select: none;
    -webkit-user-drag: none;
}


a {
    color: inherit;
    text-decoration: none;
}


button,
input,
textarea,
select {
    color: inherit;
    font: inherit;
}


button {
    border: 0;
    cursor: pointer;
}


ul,
ol {
    list-style: none;
}


h1,
h2,
h3,
h4,
h5,
h6 {
    font-family:
        var(--font-heading);

    font-weight: 400;
    line-height: 1.05;
}


p {
    color:
        var(--color-grey);
}


::selection {
    background:
        var(--color-red);

    color:
        var(--color-white-pure);
}


/* Firefox scrollbar */

* {
    scrollbar-width: thin;
    scrollbar-color:
        var(--color-red)
        var(--color-black);
}


/* Chrome / Edge / Safari scrollbar */

::-webkit-scrollbar {
    width: 9px;
}


::-webkit-scrollbar-track {
    background:
        var(--color-black);
}


::-webkit-scrollbar-thumb {
    background:
        var(--color-red-dark);

    border:
        2px solid var(--color-black);

    border-radius:
        20px;
}


::-webkit-scrollbar-thumb:hover {
    background:
        var(--color-red);
}


/* =========================================================
   ACCESSIBILITY
========================================================= */

:focus-visible {
    outline:
        2px solid var(--color-red-light);

    outline-offset:
        5px;
}


@media (prefers-reduced-motion: reduce) {

    html {
        scroll-behavior: auto;
    }


    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;

        scroll-behavior: auto !important;

        transition-duration: 0.01ms !important;
    }

}


/* =========================================================
   GENERIC LAYOUT
========================================================= */

main {
    position: relative;
    z-index: 1;
}


.section {
    position: relative;

    width: 100%;

    padding:
        var(--section-spacing)
        var(--page-padding);
}


.section > * {
    width: min(100%, var(--content-width));

    margin-inline: auto;
}


/* =========================================================
   GENERIC SECTION HEADING
   Verrà utilizzato nelle sezioni successive.
========================================================= */

.section-heading {
    max-width: 830px;

    margin-right: auto;
    margin-bottom: clamp(60px, 8vw, 120px);
}


.section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 14px;

    margin-bottom: 24px;

    color:
        var(--color-red-light);

    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.34em;
    line-height: 1.4;

    text-transform: uppercase;
}


.section-kicker::before {
    content: "";

    width: 42px;
    height: 1px;

    background:
        var(--color-red);
}


.section-heading h2 {
    max-width: 760px;

    color:
        var(--color-white);

    font-size:
        clamp(3rem, 6vw, 6.5rem);

    letter-spacing:
        -0.035em;
}


.section-heading p {
    max-width: 670px;

    margin-top: 30px;

    font-size:
        clamp(0.95rem, 1.2vw, 1.12rem);

    line-height:
        1.9;
}


/* =========================================================
   BUTTON BASE
========================================================= */

.primary-button,
.secondary-button {
    position: relative;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 22px;

    min-height: 58px;

    padding:
        17px 30px;

    font-size:
        0.7rem;

    font-weight:
        500;

    letter-spacing:
        0.25em;

    line-height:
        1;

    text-transform:
        uppercase;

    transition:
        color var(--transition-medium),
        background-color var(--transition-medium),
        border-color var(--transition-medium),
        transform var(--transition-medium),
        box-shadow var(--transition-medium);
}


.primary-button {
    overflow: hidden;

    border:
        1px solid var(--color-red);

    background:
        rgba(9, 9, 9, 0.48);

    color:
        var(--color-white);
}


.primary-button::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        var(--color-red);

    transform:
        translateX(-102%);

    transition:
        transform var(--transition-medium);
}


.primary-button span {
    position: relative;
    z-index: 2;
}


.primary-button:hover {
    border-color:
        var(--color-red-light);

    box-shadow:
        var(--shadow-red);

    transform:
        translateY(-3px);
}


.primary-button:hover::before {
    transform:
        translateX(0);
}


.button-arrow {
    font-size:
        1.05rem;

    transition:
        transform var(--transition-medium);
}


.primary-button:hover .button-arrow {
    transform:
        translateX(7px);
}


.secondary-button {
    border-bottom:
        1px solid var(--color-border-light);

    padding-inline:
        0;

    padding-bottom:
        13px;
}


.secondary-button::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: -1px;

    width: 100%;
    height: 1px;

    background:
        var(--color-red);

    transform:
        scaleX(0);

    transform-origin:
        right;

    transition:
        transform var(--transition-medium);
}


.secondary-button:hover {
    color:
        var(--color-white-pure);
}


.secondary-button:hover::after {
    transform:
        scaleX(1);

    transform-origin:
        left;
}


.secondary-button span {
    color:
        var(--color-red-light);

    transition:
        transform var(--transition-medium);
}


.secondary-button:hover span {
    transform:
        translateX(7px);
}


/* =========================================================
   PAGE LOADER
========================================================= */

/*
   Il loader rimane nascosto per ora.
   Lo attiveremo nella parte JavaScript, così non bloccherà
   la pagina mentre stiamo ancora costruendo il sito.
*/

.page-loader {
    position: fixed;
    inset: 0;

    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    background:
        var(--color-black);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity 600ms ease,
        visibility 600ms ease;
}


.page-loader.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: all;
}


.loader-logo {
    width:
        clamp(80px, 9vw, 135px);

    filter:
        drop-shadow(0 0 28px rgba(164, 22, 26, 0.42));

    animation:
        loaderPulse 1.8s ease-in-out infinite;
}


@keyframes loaderPulse {

    0%,
    100% {
        opacity: 0.55;
        transform: scale(0.94);
    }

    50% {
        opacity: 1;
        transform: scale(1);
    }

}


/* =========================================================
   HEADER / NAVBAR
========================================================= */

.site-header {
    position: fixed;
    top: 0;
    left: 0;

    z-index: 5000;

    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;
    min-height: var(--header-height);

    padding:
        20px var(--page-padding);

    border-bottom:
        1px solid transparent;

    background:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0.52),
            rgba(0, 0, 0, 0)
        );

    transition:
        min-height var(--transition-medium),
        padding var(--transition-medium),
        background-color var(--transition-medium),
        border-color var(--transition-medium),
        backdrop-filter var(--transition-medium);
}


/* Classe aggiunta dal JavaScript quando si scorre */

.site-header.is-scrolled {
    min-height: 78px;

    padding-top: 13px;
    padding-bottom: 13px;

    border-bottom-color:
        rgba(255, 255, 255, 0.08);

    background:
        rgba(8, 8, 8, 0.82);

    backdrop-filter:
        blur(18px);

    -webkit-backdrop-filter:
        blur(18px);

    box-shadow:
        0 12px 35px rgba(0, 0, 0, 0.14);
}


/* =========================================================
   HEADER BRAND
========================================================= */

.header-brand {
    position: relative;
    z-index: 5002;

    display: flex;
    align-items: center;
    gap: 16px;

    flex-shrink: 0;
}


.header-brand-icon {
    width:
        clamp(42px, 4vw, 56px);

    height:
        clamp(42px, 4vw, 56px);

    object-fit:
        contain;

    filter:
        drop-shadow(0 0 16px rgba(164, 22, 26, 0.22));

    transition:
        transform var(--transition-medium),
        filter var(--transition-medium);
}


.header-brand:hover .header-brand-icon {
    transform:
        rotate(-5deg) scale(1.05);

    filter:
        drop-shadow(0 0 24px rgba(207, 32, 39, 0.38));
}


.header-brand-text {
    display: flex;
    flex-direction: column;
    gap: 6px;
}


.header-brand-name {
    color:
        var(--color-white);

    font-family:
        var(--font-heading);

    font-size:
        clamp(0.9rem, 1.2vw, 1.25rem);

    font-weight:
        500;

    letter-spacing:
        0.17em;

    line-height:
        1;
}


.header-brand-subtitle {
    color:
        var(--color-red-light);

    font-size:
        0.57rem;

    font-weight:
        500;

    letter-spacing:
        0.56em;

    line-height:
        1;

    text-transform:
        uppercase;
}


/* =========================================================
   DESKTOP NAVIGATION
========================================================= */

.desktop-navigation {
    display: flex;
    align-items: center;

    gap:
        clamp(24px, 3vw, 52px);
}


.desktop-navigation a {
    position: relative;

    padding:
        10px 0;

    color:
        rgba(255, 255, 255, 0.82);

    font-size:
        0.67rem;

    font-weight:
        500;

    letter-spacing:
        0.22em;

    text-transform:
        uppercase;

    transition:
        color var(--transition-fast);
}


.desktop-navigation a::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: 4px;

    width: 100%;
    height: 1px;

    background:
        var(--color-red-light);

    transform:
        scaleX(0);

    transform-origin:
        right;

    transition:
        transform var(--transition-medium);
}


.desktop-navigation a:hover,
.desktop-navigation a:focus-visible,
.desktop-navigation a.is-active {
    color:
        var(--color-white-pure);
}


.desktop-navigation a:hover::after,
.desktop-navigation a:focus-visible::after,
.desktop-navigation a.is-active::after {
    transform:
        scaleX(1);

    transform-origin:
        left;
}


/* =========================================================
   MOBILE MENU BUTTON
========================================================= */

.menu-toggle {
    position: relative;
    z-index: 5002;

    display: none;

    width: 48px;
    height: 48px;

    padding: 0;

    border:
        1px solid var(--color-border);

    border-radius:
        50%;

    background:
        rgba(9, 9, 9, 0.22);

    transition:
        border-color var(--transition-medium),
        background-color var(--transition-medium),
        transform var(--transition-medium);
}


.menu-toggle:hover {
    border-color:
        var(--color-red);

    background:
        rgba(164, 22, 26, 0.12);

    transform:
        scale(1.04);
}


.menu-toggle span {
    position: absolute;
    left: 50%;

    width: 20px;
    height: 1px;

    background:
        var(--color-white);

    transform:
        translateX(-50%);

    transition:
        top var(--transition-medium),
        transform var(--transition-medium),
        opacity var(--transition-medium);
}


.menu-toggle span:first-child {
    top: 20px;
}


.menu-toggle span:last-child {
    top: 27px;
}


/* Stato aperto */

.menu-toggle.is-open span:first-child {
    top: 24px;

    transform:
        translateX(-50%)
        rotate(45deg);
}


.menu-toggle.is-open span:last-child {
    top: 24px;

    transform:
        translateX(-50%)
        rotate(-45deg);
}


/* =========================================================
   MOBILE NAVIGATION
========================================================= */

.mobile-navigation {
    position: fixed;
    inset: 0;

    z-index: 5001;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap:
        clamp(24px, 6vh, 48px);

    padding:
        120px 30px 60px;

    background:
        rgba(8, 8, 8, 0.98);

    backdrop-filter:
        blur(20px);

    -webkit-backdrop-filter:
        blur(20px);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transform:
        translateY(-18px);

    transition:
        opacity var(--transition-medium),
        visibility var(--transition-medium),
        transform var(--transition-medium);
}


.mobile-navigation::before {
    content: "";

    position: absolute;
    top: 0;
    left: 50%;

    width: min(70vw, 500px);
    height: 300px;

    background:
        radial-gradient(
            circle,
            rgba(164, 22, 26, 0.18),
            transparent 68%
        );

    transform:
        translateX(-50%);

    pointer-events:
        none;
}


.mobile-navigation.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: all;

    transform:
        translateY(0);
}


.mobile-navigation a {
    position: relative;

    color:
        var(--color-white);

    font-family:
        var(--font-heading);

    font-size:
        clamp(2.3rem, 8vw, 4.8rem);

    font-weight:
        300;

    letter-spacing:
        0.035em;

    line-height:
        1;

    transition:
        color var(--transition-medium),
        transform var(--transition-medium);
}


.mobile-navigation a::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: -10px;

    width: 100%;
    height: 1px;

    background:
        var(--color-red);

    transform:
        scaleX(0);

    transform-origin:
        right;

    transition:
        transform var(--transition-medium);
}


.mobile-navigation a:hover {
    color:
        var(--color-red-light);

    transform:
        translateX(7px);
}


.mobile-navigation a:hover::after {
    transform:
        scaleX(1);

    transform-origin:
        left;
}


/* =========================================================
   RESPONSIVE NAVBAR
========================================================= */

@media (max-width: 1100px) {

    :root {
        --header-height: 90px;
    }


    .desktop-navigation {
        display: none;
    }


    .menu-toggle {
        display: block;
    }

}


@media (max-width: 700px) {

    :root {
        --page-padding: 22px;
        --header-height: 82px;
    }


    .site-header {
        padding:
            14px var(--page-padding);
    }


    .site-header.is-scrolled {
        min-height:
            72px;

        padding-top:
            10px;

        padding-bottom:
            10px;
    }


    .header-brand {
        gap:
            11px;
    }


    .header-brand-icon {
        width:
            42px;

        height:
            42px;
    }


    .header-brand-name {
        max-width:
            180px;

        font-size:
            0.74rem;

        letter-spacing:
            0.14em;
    }


    .header-brand-subtitle {
        font-size:
            0.48rem;

        letter-spacing:
            0.42em;
    }


    .menu-toggle {
        width:
            44px;

        height:
            44px;
    }


    .menu-toggle span:first-child {
        top:
            18px;
    }


    .menu-toggle span:last-child {
        top:
            25px;
    }


    .menu-toggle.is-open span:first-child,
    .menu-toggle.is-open span:last-child {
        top:
            21px;
    }

}


@media (max-width: 420px) {

    .header-brand-text {
        display:
            none;
    }


    .mobile-navigation a {
        font-size:
            clamp(2.2rem, 12vw, 3.4rem);
    }

}
/* =========================================================
   OGROUP WEBSITE
   CSS PARTE 2 — HERO DEFINITIVA
   VILLA • REZA • ANDREW • CONTENUTO CENTRALE
========================================================= */


/* =========================================================
   HERO
========================================================= */

.hero {
    position: relative;
    width: 100%;
    min-height: 100svh;

    background: var(--color-black);

    overflow: hidden;
    isolation: isolate;
}


/* =========================================================
   BACKGROUND VILLA
========================================================= */

.hero-background {
    position: absolute;
    inset: -18px;

    z-index: -10;

    background-image:
        url("../images/hero-bg-20260929.webp");

    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;

    filter:
        brightness(0.62)
        contrast(1.08)
        saturate(0.90);

    transform:
        scale(1.035);

    animation:
        heroBackgroundReveal
        1.8s
        cubic-bezier(0.22, 1, 0.36, 1)
        both;
}


@keyframes heroBackgroundReveal {

    from {
        opacity: 0;

        transform:
            scale(1.09);
    }

    to {
        opacity: 1;

        transform:
            scale(1.035);
    }

}


/* =========================================================
   OVERLAY
========================================================= */

.hero-overlay {
    position: absolute;
    inset: 0;

    z-index: -9;

    background:
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.82) 0%,
            rgba(0, 0, 0, 0.43) 22%,
            rgba(0, 0, 0, 0.15) 50%,
            rgba(0, 0, 0, 0.43) 78%,
            rgba(0, 0, 0, 0.82) 100%
        );
}


.hero-overlay::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0.48) 0%,
            rgba(0, 0, 0, 0.04) 27%,
            rgba(0, 0, 0, 0.10) 58%,
            rgba(0, 0, 0, 0.94) 100%
        );
}


.hero-overlay::after {
    content: "";

    position: absolute;
    left: 50%;
    top: 45%;

    width: min(70vw, 1050px);
    height: min(70vw, 1050px);

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(164, 22, 26, 0.11) 0%,
            rgba(164, 22, 26, 0.025) 38%,
            transparent 69%
        );

    transform:
        translate(-50%, -50%);

    pointer-events: none;
}


.hero-vignette {
    position: absolute;
    inset: 0;

    z-index: -8;

    background:
        radial-gradient(
            ellipse at center,
            transparent 32%,
            rgba(0, 0, 0, 0.12) 62%,
            rgba(0, 0, 0, 0.53) 100%
        );

    pointer-events: none;
}


/* Nessuna linea tra navbar e Hero */

.hero::after {
    display: none;
}


/* =========================================================
   STRUTTURA BASE AGENTI
========================================================= */

.hero-agent {
    position: absolute;
    bottom: 0;

    z-index: 10;

    display: block;

    color:
        var(--color-white);

    transition:
        filter var(--transition-slow);
}


/* =========================================================
   REZA — GRANDE, INCLINATO, USCENTE DAL BORDO
========================================================= */

.hero-agent-reza {
    left: -7.5vw;
    bottom: -1vh;

    width:
        clamp(560px, 48vw, 850px);

    height:
        calc(100svh - 95px);
}

.hero-agent-reza .hero-agent-image {
    position: absolute;
    left: 50%;
    bottom: 0;

    width: 118%;
    height: 100%;

    max-width: none;

    object-fit: contain;
    object-position: center bottom;

    filter:
        brightness(0.78)
        contrast(1.12)
        saturate(0.82)
        drop-shadow(
            0 38px 50px rgba(0, 0, 0, 0.82)
        );

    transform:
        translateX(-50%)
        scale(1.05);

    transform-origin:
        center bottom;

    animation:
        rezaHeroEntrance
        1.45s
        180ms
        cubic-bezier(0.22, 1, 0.36, 1)
        both;

    transition:
        transform var(--transition-slow),
        filter var(--transition-slow);
}

@keyframes rezaHeroEntrance {

    from {
        opacity: 0;

        transform:
            translateX(-62%)
            translateY(45px)
            scale(0.98);
    }

    to {
        opacity: 1;

        transform:
            translateX(-50%)
            translateY(0)
            scale(1.03);
    }

}


.hero-agent-reza:hover .hero-agent-image {
    transform:
        translateX(-48.5%)
        scale(1.055);

    filter:
        brightness(0.98)
        contrast(1.07)
        saturate(0.96)
        drop-shadow(
            0 40px 44px rgba(0, 0, 0, 0.82)
        );
}


/* =========================================================
   ANDREW — PIÙ LARGO E TAGLIATO SOTTO LE BRACCIA
========================================================= */
.hero-agent-andrew {
    right: -1.2vw;
    bottom: 0;

    width: clamp(500px, 41vw, 720px);

    height: calc(88svh - 10px);

    min-height: 620px;

    overflow: hidden;
}

.hero-agent-andrew .hero-agent-image {
    left: 50%;
    bottom: -10%;

    width: 138%;
    height: auto;

    max-width: none;

    object-fit: contain;

    filter:
        brightness(0.82)
        contrast(1.10)
        saturate(0.84)
        drop-shadow(
            0 40px 55px rgba(0,0,0,.82)
        );

    transform:
        translateX(-50%)
        scale(1.12);

    transform-origin: center bottom;

    animation:
        andrewHeroEntrance
        1.45s
        330ms
        cubic-bezier(0.22,1,0.36,1)
        both;

    transition:
        transform var(--transition-slow),
        filter var(--transition-slow);
}


@keyframes andrewHeroEntrance {

    from {
        opacity: 0;

        transform:
            translateX(-38%)
            translateY(45px)
            scale(1.01);
    }

    to {
        opacity: 1;

        transform:
            translateX(-50%)
            translateY(0)
            scale(1.07);
    }

}


.hero-agent-andrew:hover .hero-agent-image {
    transform:
        translateX(-51.5%)
        scale(1.10);

    filter:
        brightness(0.94)
        contrast(1.08)
        saturate(0.93)
        drop-shadow(
            0 40px 44px rgba(0, 0, 0, 0.80)
        );
}


/* =========================================================
   SFUMATURA ALLA BASE DEGLI AGENTI
========================================================= */

.hero-agent::after {
    content: "";

    position: absolute;
    left: -5%;
    right: -5%;
    bottom: 0;

    z-index: 5;

    height: 27%;

    background:
        linear-gradient(
            to bottom,
            transparent 0%,
            rgba(8, 8, 8, 0.23) 42%,
            rgba(8, 8, 8, 0.92) 100%
        );

    pointer-events: none;
}


.hero-agent-andrew::after {
    height: 30%;
}


/* =========================================================
   NOMI AGENTI
========================================================= */

.hero-agent-information {
    position: absolute;
    left: 50%;
    bottom: 43px;

    z-index: 15;

    display: flex;
    flex-direction: column;
    align-items: center;

    width: 340px;

    text-align: center;

    transform:
        translateX(-50%);
}


.hero-agent-reza .hero-agent-information {
    left: 51%;
}


.hero-agent-andrew .hero-agent-information {
    left: 49%;
}


.hero-agent-information h2 {
    order: 1;

    color:
        var(--color-white-pure);

    font-size:
        clamp(1.65rem, 1.9vw, 2.25rem);

    font-weight: 400;

    letter-spacing: 0.20em;

    line-height: 1.08;

    text-transform: uppercase;

    text-shadow:
        0 5px 24px rgba(0, 0, 0, 0.95);
}


.hero-agent-line {
    order: 2;

    width: 67px;
    height: 1px;

    margin:
        13px 0;

    background:
        var(--color-red-light);

    transition:
        width var(--transition-medium),
        box-shadow var(--transition-medium);
}


.hero-agent-information p {
    order: 3;

    color:
        rgba(255, 255, 255, 0.80);

    font-size:
        0.57rem;

    font-weight:
        500;

    letter-spacing:
        0.29em;

    text-transform:
        uppercase;

    transition:
        color var(--transition-medium),
        letter-spacing var(--transition-medium);
}


.hero-agent:hover .hero-agent-line {
    width: 91px;

    box-shadow:
        0 0 18px rgba(207, 32, 39, 0.52);
}


.hero-agent:hover .hero-agent-information p {
    color:
        var(--color-red-light);

    letter-spacing:
        0.33em;
}


/* =========================================================
   CONTENUTO CENTRALE
========================================================= */

.hero-content {
    position: absolute;
    left: 50%;
    top: 48.5%;

    z-index: 25;

    display: flex;
    flex-direction: column;
    align-items: center;

    width:
        min(44vw, 700px);

    padding:
        18px;

    text-align:
        center;

    transform:
        translate(-50%, -50%);
}


.hero-content::before {
    content: "";

    position: absolute;
    left: 50%;
    top: 50%;

    z-index: -1;

    width: 138%;
    aspect-ratio: 1;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(0, 0, 0, 0.72) 0%,
            rgba(0, 0, 0, 0.37) 42%,
            rgba(0, 0, 0, 0.08) 62%,
            transparent 73%
        );

    transform:
        translate(-50%, -50%);

    pointer-events:
        none;
}


/* =========================================================
   LOGO CENTRALE — LEGGERMENTE PIÙ GRANDE
========================================================= */

.hero-main-logo {
   width: clamp(340px, 29vw, 500px);

    max-height:
        250px;

    object-fit:
        contain;

    margin-bottom:
        35px;

    filter:
        drop-shadow(
            0 6px 30px rgba(0, 0, 0, 0.94)
        )
        drop-shadow(
            0 0 24px rgba(164, 22, 26, 0.19)
        );

    animation:
        heroLogoReveal
        1.25s
        520ms
        cubic-bezier(0.22, 1, 0.36, 1)
        both;

    transition:
        transform var(--transition-slow),
        filter var(--transition-slow);
}


.hero-main-logo:hover {
    transform:
        scale(1.025);

    filter:
        drop-shadow(
            0 7px 34px rgba(0, 0, 0, 0.96)
        )
        drop-shadow(
            0 0 29px rgba(207, 32, 39, 0.26)
        );
}


@keyframes heroLogoReveal {

    from {
        opacity: 0;

        transform:
            translateY(-22px)
            scale(0.95);
    }

    to {
        opacity: 1;

        transform:
            translateY(0)
            scale(1);
    }

}


/* =========================================================
   TITOLO
========================================================= */

.hero-title-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;

    width: 100%;

    animation:
        heroTextReveal
        1.25s
        700ms
        cubic-bezier(0.22, 1, 0.36, 1)
        both;
}


@keyframes heroTextReveal {

    from {
        opacity: 0;

        transform:
            translateY(26px);
    }

    to {
        opacity: 1;

        transform:
            translateY(0);
    }

}


.hero-title-line {
    width: 72px;
    height: 1px;

    margin-bottom: 21px;

    background:
        linear-gradient(
            90deg,
            transparent,
            var(--color-red-light),
            transparent
        );
}

/* =========================================================
   DEFERRED HOMEPAGE BACKGROUNDS
   Heavy below-the-fold images are requested only when their
   section approaches the viewport.
========================================================= */

.service-buy.is-background-loaded .service-image {
    background-image: url("../images/service-buy-bg-20260929.webp");
}

.service-sell.is-background-loaded .service-image {
    background-image: url("../images/services-sell-bg-20260929.webp");
}

.service-rent.is-background-loaded .service-image {
    background-image: url("../images/services-rent-bg-20260929.webp");
}

.legacy-section.is-background-loaded .legacy-background {
    background-image: url("../images/legacy-bg-20260929.webp");
}


.hero-title-kicker {
    display: block;

    margin-bottom: 15px;

    color:
        var(--color-red-light);

    font-size:
        clamp(0.62rem, 0.72vw, 0.74rem);

    font-weight: 500;

    letter-spacing:
        0.3em;

    line-height: 1.4;

    text-transform: uppercase;

    text-shadow:
        0 4px 18px rgba(0, 0, 0, 0.95);
}


.hero-title-wrapper h1 {
    max-width: 680px;

    color:
        var(--color-white-pure);

    font-size:
        clamp(3.3rem, 4.8vw, 6rem);

    font-weight: 300;

    letter-spacing:
        -0.035em;

    line-height:
        0.94;

    text-shadow:
        0 6px 31px rgba(0, 0, 0, 0.96);
}


.hero-title-wrapper h1 span {
    display: block;

    margin-top: 12px;

    color:
        rgba(255, 255, 255, 0.93);

    font-size:
        0.48em;

    font-style:
        italic;

    letter-spacing:
        0;
}


.hero-title-wrapper p {
    max-width: 535px;

    margin-top: 26px;

    color:
        rgba(255, 255, 255, 0.78);

    font-size:
        clamp(0.72rem, 0.9vw, 0.91rem);

    letter-spacing:
        0.03em;

    line-height:
        1.85;

    text-shadow:
        0 4px 18px rgba(0, 0, 0, 0.95);
}


/* =========================================================
   PULSANTE
========================================================= */

.hero-content .primary-button {
    min-width:
        318px;

    margin-top:
        33px;

    background:
        rgba(5, 5, 5, 0.68);

    backdrop-filter:
        blur(8px);

    -webkit-backdrop-filter:
        blur(8px);

    animation:
        heroButtonReveal
        1.05s
        890ms
        cubic-bezier(0.22, 1, 0.36, 1)
        both;
}


@keyframes heroButtonReveal {

    from {
        opacity: 0;

        transform:
            translateY(20px);
    }

    to {
        opacity: 1;

        transform:
            translateY(0);
    }

}


/* =========================================================
   SCROLL INDICATOR
========================================================= */

.scroll-indicator {
    position: absolute;
    left: 50%;
    bottom: 26px;

    z-index: 35;

    display: flex;
    flex-direction: column;
    align-items: center;

    color:
        rgba(255, 255, 255, 0.68);

    transform:
        translateX(-50%);
}


.scroll-indicator span:first-child {
    font-size:
        0.50rem;

    font-weight:
        500;

    letter-spacing:
        0.30em;

    text-transform:
        uppercase;
}


.scroll-arrow {
    margin-top:
        9px;

    color:
        var(--color-red-light);

    font-size:
        1.1rem;

    animation:
        scrollArrowMovement
        1.7s
        ease-in-out
        infinite;
}


@keyframes scrollArrowMovement {

    0%,
    100% {
        transform:
            translateY(0);
    }

    50% {
        transform:
            translateY(7px);
    }

}


/* =========================================================
   LAPTOP
========================================================= */

@media (max-width: 1400px) {

    .hero-agent-reza {
        left: -10vw;

        width:
            52vw;
    }


    .hero-agent-andrew {
        right: -5vw;

        width:
            40vw;
    }


    .hero-content {
        width:
            min(45vw, 610px);
    }


    .hero-main-logo {
        width:
            clamp(225px, 20vw, 330px);
    }


    .hero-title-wrapper h1 {
        font-size:
            clamp(3rem, 4.5vw, 5.3rem);
    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 900px) {

    .hero {
        min-height:
            960px;
    }


    .hero-background {
        filter:
            brightness(0.53)
            contrast(1.06)
            saturate(0.86);
    }


    .hero-content {
        top: 30%;

        width:
            min(91vw, 620px);
    }


    .hero-main-logo {
        width:
            min(53vw, 315px);
    }


    .hero-title-wrapper h1 {
        font-size:
            clamp(3rem, 8vw, 5rem);
    }


    .hero-agent-reza {
        left: -24vw;
        bottom: 0;

        width: 72vw;
        height: 590px;
    }


    .hero-agent-andrew {
        right: -25vw;
        bottom: 0;

        width: 69vw;
        height: 545px;

        min-height: 0;
    }


    .hero-agent-andrew .hero-agent-image {
        bottom: -15%;
    }


    .hero-agent-information {
        display: none;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 650px) {

    .hero {
        min-height:
            860px;
    }


    .hero-content {
        top: 27.5%;

        width:
            calc(100% - 30px);
    }


    .hero-main-logo {
        width:
            min(70vw, 270px);

        margin-bottom:
            18px;
    }


    .hero-title-wrapper h1 {
        font-size:
            clamp(2.65rem, 11.8vw, 4.05rem);
    }


    .hero-title-wrapper p {
        font-size:
            0.66rem;
    }


    .hero-content .primary-button {
        min-width: 0;

        padding-inline:
            24px;
    }


    .hero-agent-reza {
        left: -39vw;

        width: 94vw;
        height: 465px;
    }


    .hero-agent-andrew {
        right: -37vw;

        width: 86vw;
        height: 440px;
    }


    .hero-agent-andrew .hero-agent-image {
        bottom: -14%;
    }


    .scroll-indicator span:first-child {
        display:
            none;
    }

}


/* =========================================================
   MOBILE PICCOLO
========================================================= */

@media (max-width: 430px) {

    .hero {
        min-height:
            800px;
    }


    .hero-content {
        top:
            24.5%;
    }


    .hero-title-wrapper p {
        display:
            none;
    }


    .hero-agent-reza {
        left:
            -47vw;

        width:
            106vw;

        height:
            425px;
    }


    .hero-agent-andrew {
        right:
            -44vw;

        width:
            98vw;

        height:
            400px;
    }

}/* =========================================================
   RIFINITURA HERO DESKTOP — VERSIONE CORRETTA
========================================================= */

@media (min-width: 901px) {

    /* REZA: più integrato e leggermente più scuro */

    .hero-agent-reza .hero-agent-image {
        filter:
            brightness(0.76)
            contrast(1.11)
            saturate(0.84)
            drop-shadow(
                0 38px 50px rgba(0, 0, 0, 0.82)
            );
    }

    .hero-agent-reza:hover .hero-agent-image {
        filter:
            brightness(0.82)
            contrast(1.12)
            saturate(0.88)
            drop-shadow(
                0 42px 54px rgba(0, 0, 0, 0.86)
            );
    }


    /* ANDREW: grande e proporzionato a Reza */

    .hero-agent-andrew {
        right: -4vw;
        bottom: 0;

        width: clamp(470px, 40vw, 680px);
        height: calc(100svh - 95px);

        min-height: 0;

        overflow: visible;
    }

    .hero-agent-andrew .hero-agent-image {
        position: absolute;
        left: 50%;
        bottom: 0;

        width: auto;
        height: 100%;
        max-width: none;

        object-fit: contain;

        filter:
            brightness(0.80)
            contrast(1.09)
            saturate(0.86)
            drop-shadow(
                0 38px 50px rgba(0, 0, 0, 0.80)
            );

        transform:
            translateX(-50%)
            scale(1.03);

        transform-origin:
            center bottom;

        animation:
            andrewCorrectEntrance
            1.45s
            330ms
            cubic-bezier(0.22, 1, 0.36, 1)
            both;

        transition:
            transform var(--transition-slow),
            filter var(--transition-slow);
    }

    @keyframes andrewCorrectEntrance {

        from {
            opacity: 0;

            transform:
                translateX(-38%)
                translateY(45px)
                scale(1);
        }

        to {
            opacity: 1;

            transform:
                translateX(-50%)
                translateY(0)
                scale(1.03);
        }
    }

    .hero-agent-andrew:hover .hero-agent-image {
        transform:
            translateX(-51%)
            scale(1.06);

        filter:
            brightness(0.87)
            contrast(1.10)
            saturate(0.90)
            drop-shadow(
                0 42px 55px rgba(0, 0, 0, 0.85)
            );
    }

    .hero-agent-andrew .hero-agent-information {
        left: 49%;
        bottom: 42px;
    }
}


.site-header::before,
.site-header::after {
    display: none !important;
}


/* Quando scorri, la navbar può tornare scura */

.site-header.is-scrolled {
    border-bottom: none !important;

    background: rgba(8, 8, 8, 0.86) !important;

    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;

    box-shadow: none !important;
}
/* =========================================================
   OGROUP WEBSITE
   CSS PARTE 3 — FEATURED PROPERTIES
   HEADER • GRID • CARDS • HOVER • RESPONSIVE
========================================================= */


/* =========================================================
   SEZIONE PRINCIPALE
========================================================= */

.featured-properties {
    position: relative;

    overflow: hidden;

    background:
        linear-gradient(
            180deg,
            #080808 0%,
            #0d0d0e 48%,
            #111214 100%
        );

    border-top:
        1px solid rgba(255, 255, 255, 0.055);
}


/* Luce rossa molto discreta sullo sfondo */

.featured-properties::before {
    content: "";

    position: absolute;
    top: 8%;
    left: -16%;

    width: 520px;
    height: 520px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(164, 22, 26, 0.12) 0%,
            rgba(164, 22, 26, 0.025) 42%,
            transparent 72%
        );

    filter:
        blur(20px);

    pointer-events: none;
}


.featured-properties::after {
    content: "PROPERTIES";

    position: absolute;
    top: 7%;
    right: -2%;

    color:
        rgba(255, 255, 255, 0.018);

    font-family:
        var(--font-heading);

    font-size:
        clamp(7rem, 16vw, 18rem);

    font-weight:
        500;

    letter-spacing:
        -0.06em;

    line-height:
        0.8;

    pointer-events:
        none;

    white-space:
        nowrap;
}


/* =========================================================
   INTESTAZIONE DELLA SEZIONE
========================================================= */

.featured-properties-header {
    position: relative;
    z-index: 2;

    display: grid;
    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(280px, 0.65fr);

    align-items: end;
    gap:
        clamp(45px, 7vw, 130px);

    width:
        min(100%, var(--content-width));

    margin-inline:
        auto;

    margin-bottom:
        clamp(65px, 8vw, 115px);
}


.featured-properties-heading {
    max-width:
        850px;
}


.featured-properties-heading h2 {
    color:
        var(--color-white);

    font-size:
        clamp(3.7rem, 6.4vw, 7.1rem);

    font-weight:
        300;

    letter-spacing:
        -0.045em;

    line-height:
        0.89;

    text-wrap:
        balance;
}


.featured-properties-heading h2 span {
    display: block;

    margin-top:
        11px;

    color:
        rgba(255, 255, 255, 0.72);

    font-size:
        0.57em;

    font-style:
        italic;

    letter-spacing:
        -0.015em;

    line-height:
        1;
}


.featured-properties-introduction {
    position: relative;

    max-width:
        430px;

    padding-left:
        28px;

    border-left:
        1px solid rgba(207, 32, 39, 0.62);
}


.featured-properties-introduction p {
    color:
        rgba(255, 255, 255, 0.58);

    font-size:
        clamp(0.83rem, 1vw, 0.98rem);

    line-height:
        1.95;
}


/* =========================================================
   GRIGLIA PROPRIETÀ
========================================================= */

.featured-properties-grid {
    position: relative;
    z-index: 3;

    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    align-items: stretch;

    gap:
        clamp(22px, 2.2vw, 38px);

    width:
        min(100%, var(--content-width));

    margin-inline:
        auto;
}


/* =========================================================
   CARD
========================================================= */

.property-showcase-card {
    position: relative;

    min-width: 0;

    border-top:
        1px solid rgba(255, 255, 255, 0.14);

    transition:
        border-color var(--transition-medium),
        transform var(--transition-slow);
}


.property-showcase-card::before {
    content: "";

    position: absolute;
    top: -1px;
    left: 0;

    z-index: 5;

    width: 0;
    height: 1px;

    background:
        var(--color-red-light);

    box-shadow:
        0 0 15px rgba(207, 32, 39, 0.46);

    transition:
        width 750ms cubic-bezier(0.22, 1, 0.36, 1);
}


.property-showcase-card:hover {
    border-top-color:
        rgba(255, 255, 255, 0.24);

    transform:
        translateY(-8px);
}


.property-showcase-card:hover::before {
    width:
        100%;
}


.property-showcase-link {
    display:
        flex;

    flex-direction:
        column;

    height:
        100%;

    padding-top:
        29px;
}


/* =========================================================
   TESTO SOPRA L’IMMAGINE
========================================================= */

.property-showcase-top {
    display:
        flex;

    flex-direction:
        column;

    min-height:
        190px;

    padding:
        0 4px 28px;
}


.property-heading {
    min-width:
        0;
}


.property-badge {
    display:
        inline-flex;

    align-items:
        center;

    gap:
        10px;

    margin-bottom:
        18px;

    color:
        var(--color-red-light);

    font-size:
        0.57rem;

    font-weight:
        500;

    letter-spacing:
        0.28em;

    line-height:
        1;

    text-transform:
        uppercase;
}


.property-badge::before {
    content: "";

    width:
        21px;

    height:
        1px;

    background:
        currentColor;
}


.property-heading h3 {
    max-width:
        100%;

    color:
        var(--color-white-pure);

    font-size:
        clamp(1.9rem, 2.25vw, 2.8rem);

    font-weight:
        400;

    letter-spacing:
        -0.02em;

    line-height:
        1.03;

    transition:
        color var(--transition-medium),
        transform var(--transition-medium);
}


.property-showcase-card:hover .property-heading h3 {
    color:
        var(--color-white);

    transform:
        translateX(4px);
}


.property-location {
    margin-top:
        12px;

    color:
        rgba(255, 255, 255, 0.48);

    font-size:
        0.63rem;

    font-weight:
        400;

    letter-spacing:
        0.17em;

    line-height:
        1.5;

    text-transform:
        uppercase;
}


.property-price {
    display:
        block;

    margin-top:
        auto;

    padding-top:
        19px;

    color:
        rgba(255, 255, 255, 0.80);

    font-family:
        var(--font-heading);

    font-size:
        clamp(1.25rem, 1.6vw, 1.7rem);

    font-weight:
        400;

    letter-spacing:
        0.01em;

    transition:
        color var(--transition-medium);
}


.property-showcase-card:hover .property-price {
    color:
        var(--color-white-pure);
}


/* =========================================================
   IMMAGINE DELLA PROPRIETÀ
========================================================= */

.property-showcase-image {
    position: relative;

    width:
        100%;

    aspect-ratio:
        4 / 5;

    overflow:
        hidden;

    background:
        var(--color-charcoal);
}


.property-showcase-image::after {
    content: "";

    position: absolute;
    inset: 0;

    z-index: 4;

    border:
        1px solid rgba(255, 255, 255, 0.08);

    pointer-events:
        none;

    transition:
        border-color var(--transition-medium);
}


.property-showcase-card:hover .property-showcase-image::after {
    border-color:
        rgba(207, 32, 39, 0.42);
}


.property-showcase-image img {
    width:
        100%;

    height:
        100%;

    object-fit:
        cover;

    object-position:
        center;

    filter:
        brightness(0.82)
        contrast(1.06)
        saturate(0.88);

    transform:
        scale(1.01);

    transition:
        transform 1.25s cubic-bezier(0.22, 1, 0.36, 1),
        filter 900ms cubic-bezier(0.22, 1, 0.36, 1);

    will-change:
        transform;
}


.property-showcase-card:hover .property-showcase-image img {
    filter:
        brightness(0.66)
        contrast(1.08)
        saturate(0.92);

    transform:
        scale(1.075);
}


/* =========================================================
   OVERLAY IMMAGINE
========================================================= */

.property-showcase-overlay {
    position: absolute;
    inset: 0;

    z-index: 2;

    background:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0.04) 0%,
            rgba(0, 0, 0, 0.06) 40%,
            rgba(0, 0, 0, 0.70) 100%
        );

    transition:
        background var(--transition-slow);
}


.property-showcase-card:hover .property-showcase-overlay {
    background:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0.14) 0%,
            rgba(0, 0, 0, 0.22) 38%,
            rgba(0, 0, 0, 0.88) 100%
        );
}


/* =========================================================
   CONTENUTO IN HOVER
========================================================= */

.property-hover-content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;

    z-index: 3;

    display:
        flex;

    flex-direction:
        column;

    justify-content:
        flex-end;

    min-height:
        48%;

    padding:
        clamp(25px, 2.4vw, 38px);

    opacity:
        0;

    transform:
        translateY(26px);

    transition:
        opacity 650ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
}


.property-showcase-card:hover .property-hover-content {
    opacity:
        1;

    transform:
        translateY(0);
}


.property-specifications {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 12px;

    padding-bottom: 20px;

    border-bottom:
        1px solid rgba(255, 255, 255, 0.18);
}


.property-specifications > span {
    display: flex;
    align-items: center;
    gap: 8px;

    min-width: 0;

    color: rgba(255, 255, 255, 0.78);

    font-family: var(--font-body);
    font-size: 0.61rem;
    font-weight: 500;

    line-height: 1.2;
    letter-spacing: 0.08em;

    text-transform: uppercase;

    white-space: nowrap;
}

.property-specifications strong {
    color: #ffffff;

    font-family: var(--font-body);
    font-size: 0.92rem;
    font-weight: 500;

    line-height: 1;
    letter-spacing: 0.03em;

    font-variant-numeric: lining-nums tabular-nums;
}


.property-view-link {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    gap:
        22px;

    margin-top:
        22px;

    color:
        var(--color-white-pure);

    font-size:
        0.6rem;

    font-weight:
        500;

    letter-spacing:
        0.24em;

    line-height:
        1;

    text-transform:
        uppercase;
}


.property-view-link > span {
    color:
        var(--color-red-light);

    font-size:
        1.15rem;

    transition:
        transform var(--transition-medium);
}


.property-showcase-card:hover .property-view-link > span {
    transform:
        translateX(7px);
}


/* =========================================================
   PULSANTE FINALE
========================================================= */

.featured-properties-action {
    position: relative;
    z-index: 3;

    display:
        flex;

    justify-content:
        center;

    width:
        min(100%, var(--content-width));

    margin:
        clamp(65px, 8vw, 115px)
        auto
        0;
}


/* =========================================================
   SUPPORTO TOUCH
   Su dispositivi senza hover rendiamo visibili i dettagli.
========================================================= */

@media (hover: none) {

    .property-hover-content {
        opacity:
            1;

        transform:
            translateY(0);
    }


    .property-showcase-image img {
        filter:
            brightness(0.70)
            contrast(1.07)
            saturate(0.90);
    }


    .property-showcase-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(0, 0, 0, 0.08) 0%,
                rgba(0, 0, 0, 0.18) 42%,
                rgba(0, 0, 0, 0.86) 100%
            );
    }

}


/* =========================================================
   RESPONSIVE — LAPTOP
========================================================= */

@media (max-width: 1250px) {

    .featured-properties-grid {
        gap:
            24px;
    }


    .property-showcase-top {
        min-height:
            205px;
    }


    .property-heading h3 {
        font-size:
            clamp(1.75rem, 2.25vw, 2.35rem);
    }


    .property-showcase-image {
        aspect-ratio:
            3 / 4;
    }


    .property-hover-content {
        padding:
            25px;
    }

}


/* =========================================================
   RESPONSIVE — TABLET
========================================================= */

@media (max-width: 950px) {

    .featured-properties-header {
        grid-template-columns:
            1fr;

        align-items:
            start;

        gap:
            34px;
    }


    .featured-properties-introduction {
        max-width:
            570px;
    }


    .featured-properties-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));

        gap:
            55px 26px;
    }


    .property-showcase-card:last-child {
        grid-column:
            1 / -1;

        width:
            calc(50% - 13px);

        margin-inline:
            auto;
    }


    .property-showcase-top {
        min-height:
            180px;
    }

}


/* =========================================================
   RESPONSIVE — MOBILE
========================================================= */

@media (max-width: 680px) {

    .featured-properties {
        padding-top:
            105px;

        padding-bottom:
            115px;
    }


    .featured-properties::after {
        display:
            none;
    }


    .featured-properties-header {
        margin-bottom:
            60px;
    }


    .featured-properties-heading h2 {
        font-size:
            clamp(3.15rem, 14vw, 4.7rem);
    }


    .featured-properties-introduction {
        padding-left:
            20px;
    }


    .featured-properties-grid {
        grid-template-columns:
            1fr;

        gap:
            62px;
    }


    .property-showcase-card:last-child {
        grid-column:
            auto;

        width:
            100%;
    }


    .property-showcase-link {
        padding-top:
            25px;
    }


    .property-showcase-top {
        min-height:
            auto;

        padding-bottom:
            26px;
    }


    .property-heading h3 {
        font-size:
            clamp(2rem, 9vw, 2.8rem);
    }


    .property-price {
        margin-top:
            23px;
    }


    .property-showcase-image {
        aspect-ratio:
            4 / 5;
    }


    .property-hover-content {
        padding:
            27px 23px;
    }


    .featured-properties-action {
        margin-top:
            78px;
    }

}


/* =========================================================
   RESPONSIVE — MOBILE PICCOLO
========================================================= */

@media (max-width: 420px) {

    .property-specifications {
        gap:
            8px;
    }


    .property-specifications > span {
        font-size:
            0.46rem;

        letter-spacing:
            0.09em;
    }


    .property-specifications strong {
        font-size:
            1.2rem;
    }


    .property-view-link {
        font-size:
            0.54rem;

        letter-spacing:
            0.18em;
    }

}/* =========================================================
   FEATURED PROPERTIES — TESTI DENTRO LE IMMAGINI
========================================================= */

/* La foto diventa il contenitore di tutti i testi */

.property-showcase-image {
    position: relative;
}


/* Nome, località, stato e prezzo dentro la fotografia */

.property-showcase-top {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;

    z-index: 3;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;

    min-height: 68%;

    padding: clamp(26px, 2.4vw, 38px);

    background:
        linear-gradient(
            to top,
            rgba(0, 0, 0, 0.94) 0%,
            rgba(0, 0, 0, 0.58) 43%,
            rgba(0, 0, 0, 0.12) 76%,
            transparent 100%
        );

    pointer-events: none;

    transition:
        transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}


/* Il testo sale quando passi sulla proprietà */

.property-showcase-card:hover .property-showcase-top {
    transform: translateY(-112px);
}


/* Badge Active / Pending */

.property-badge {
    margin-bottom: 15px;
}

.property-badge-active {
    color: #d73a40;
}

.property-badge-pending {
    color: #d2aa61;
}


/* Titolo dentro la fotografia */

.property-heading h3 {
    color: #ffffff;

    text-shadow:
        0 4px 20px rgba(0, 0, 0, 0.95);
}


/* Località dentro la fotografia */

.property-location {
    color: rgba(255, 255, 255, 0.68);

    text-shadow:
        0 3px 14px rgba(0, 0, 0, 0.95);
}


/* Prezzo dentro la fotografia */

.property-price {
    display: block;

    margin-top: 17px;
    padding-top: 15px;

    border-top:
        1px solid rgba(255, 255, 255, 0.23);

    color: #ffffff;

    font-family: var(--font-heading);

    font-size:
        clamp(1.35rem, 1.7vw, 1.85rem);

    font-weight: 400;
    letter-spacing: 0.015em;

    text-shadow:
        0 4px 18px rgba(0, 0, 0, 0.95);
}


/* Dati tecnici che compaiono in hover */

.property-hover-content {
    z-index: 6;

    padding:
        clamp(25px, 2.4vw, 38px);
}


/* Evita spazio inutile sopra le fotografie */

.property-showcase-link {
    padding-top: 0;
}


/* =========================================================
   TABLET E DISPOSITIVI TOUCH
========================================================= */

@media (hover: none), (max-width: 950px) {

    .property-showcase-top {
        min-height: 68%;

        padding:
            27px 24px;

        transform: translateY(-105px);
    }

    .property-hover-content {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 680px) {

    .property-showcase-top {
        min-height: 70%;

        padding:
            25px 22px;

        transform: translateY(-102px);
    }

    .property-heading h3 {
        font-size:
            clamp(2rem, 9vw, 2.75rem);
    }

    .property-price {
        font-size: 1.45rem;
    }

}.property-spec-icon {
    flex: 0 0 auto;

    width: 17px;
    height: 17px;

    fill: none;
    stroke: var(--color-red-light);
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}/* =========================================================
   FEATURED PROPERTIES — VERSIONE DEFINITIVA
   INFO PRINCIPALI SEMPRE VISIBILI
   DATI TECNICI SOLO IN HOVER
========================================================= */


/* Un solo gradiente continuo */

.property-showcase-overlay,
.property-showcase-card:hover .property-showcase-overlay {
    position: absolute;
    inset: 0;

    z-index: 2;

    background:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0.02) 0%,
            rgba(0, 0, 0, 0.08) 35%,
            rgba(0, 0, 0, 0.44) 67%,
            rgba(0, 0, 0, 0.94) 100%
        );
}


/* Nome, città e prezzo sempre dentro la fotografia */

.property-showcase-top,
.property-showcase-card:hover .property-showcase-top {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;

    z-index: 3;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;

    min-height: 62%;

    padding:
        clamp(26px, 2.4vw, 38px);

    background: transparent;

    pointer-events: none;

    transform: none;

    transition:
        transform 650ms cubic-bezier(0.22, 1, 0.36, 1);
}


/* In hover il blocco principale sale leggermente */

.property-showcase-card:hover .property-showcase-top {
    transform:
        translateY(-112px);
}


/* Prezzo leggibile */

.property-price {
    display: inline-block;

    margin-top: 22px;
    padding-bottom: 10px;

    color: #ffffff;

    font-family: var(--font-heading);
    font-size: clamp(1.7rem, 2vw, 2.15rem);
    font-weight: 500;
    line-height: 1;
    letter-spacing: -0.02em;

    font-variant-numeric: lining-nums tabular-nums;

    border-bottom: 2px solid transparent;

    transition:
        border-color 400ms ease,
        transform 400ms ease;
}

.property-showcase-card:hover .property-price {
    border-bottom-color: var(--color-red-light);

    transform: translateY(-2px);
}

/* =========================================================
   DATI TECNICI: NASCOSTI NORMALMENTE
========================================================= */

.property-hover-content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;

    z-index: 4;

    display: flex;
    flex-direction: column;
    justify-content: flex-end;

    min-height: 0;

    padding:
        0 clamp(26px, 2.4vw, 38px)
        clamp(25px, 2.2vw, 34px);

    background: transparent;

    opacity: 0;

    transform:
        translateY(28px);

    pointer-events: none;

    transition:
        opacity 600ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 600ms cubic-bezier(0.22, 1, 0.36, 1);
}


/* Compaiono quando passi sopra */

.property-showcase-card:hover .property-hover-content {
    opacity: 1;

    transform:
        translateY(0);
}


/* Riga dati tecnici */

.property-specifications {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    align-items: center;

    gap:
        clamp(8px, 1vw, 15px);

    padding-bottom: 17px;

    border-bottom:
        1px solid rgba(255, 255, 255, 0.23);
}


.property-specifications > span {
    display: flex;
    align-items: center;

    gap: 7px;

    min-width: 0;

    color:
        rgba(255, 255, 255, 0.86);

    font-family:
        var(--font-body);

    font-size:
        clamp(0.52rem, 0.58vw, 0.64rem);

    font-weight: 500;

    line-height: 1;

    letter-spacing: 0.04em;

    white-space: nowrap;
}


.property-specifications strong {
    color: #ffffff;

    font-family:
        var(--font-body);

    font-size:
        clamp(0.74rem, 0.8vw, 0.9rem);

    font-weight: 600;

    line-height: 1;

    font-variant-numeric:
        lining-nums tabular-nums;
}


/* Icone */

.property-spec-icon {
    flex: 0 0 auto;

    width: 19px;
    height: 19px;

    fill:
        var(--color-red-light);

    stroke: none;
}


/* View Property */

.property-view-link {
    margin-top: 18px;

    opacity: 0.85;
}


/* =========================================================
   ZOOM DELLA FOTOGRAFIA
========================================================= */

.property-showcase-image img {
    transform:
        scale(1.01);

    transition:
        transform 1.1s cubic-bezier(0.22, 1, 0.36, 1),
        filter 800ms cubic-bezier(0.22, 1, 0.36, 1);
}


.property-showcase-card:hover .property-showcase-image img {
    transform:
        scale(1.065);

    filter:
        brightness(0.68)
        contrast(1.08)
        saturate(0.91);
}


/* =========================================================
   TOUCH / MOBILE
   Non esiste hover: mostriamo i dati tecnici.
========================================================= */

@media (hover: none), (max-width: 950px) {

    .property-showcase-top,
    .property-showcase-card:hover .property-showcase-top {
        transform:
            translateY(-108px);
    }

    .property-hover-content,
    .property-showcase-card:hover .property-hover-content {
        opacity: 1;

        transform:
            translateY(0);
    }

}
/* =========================================================
   TEAM STORY
========================================================= */

.team-story{

    padding:140px 0;

    background:#080808;
}

.team-story-container{

    width:min(1280px,92%);
    margin:0 auto;
}

.team-member{

    display:grid;

    grid-template-columns:1fr 1fr;

    align-items:center;

    gap:90px;
}

.team-content h2{

    margin:18px 0 28px;

    font-size:clamp(2.8rem,5vw,4.6rem);

    line-height:1.05;
}

.team-content h2 span{

    color:var(--color-red-light);
}

.team-content p{

    max-width:620px;

    color:rgba(255,255,255,.78);

    line-height:1.9;

    margin-bottom:45px;
}
.team-image{

    position:relative;

    display:flex;

    justify-content:center;

    align-items:flex-end;
}

.team-image img{

    position:relative;

    width:min(100%,520px);

    z-index:2;

    filter:
        drop-shadow(0 30px 60px rgba(0,0,0,.55));

    transition:
        transform .55s ease;
}

.team-member:hover .team-image img{

    transform:
        translateY(-8px)
        scale(1.02);
}

.team-image-glow{

    position:absolute;

    width:520px;

    height:520px;

    border-radius:50%;

    background:
        radial-gradient(circle,
        rgba(164,22,26,.28) 0%,
        rgba(164,22,26,.12) 35%,
        transparent 72%);

    filter:blur(24px);

    z-index:1;
}
.team-stats{

    display:flex;

    gap:28px;

    margin-bottom:55px;

    flex-wrap:wrap;
}

.team-stats div{

    min-width:170px;

    padding:24px;

    border:1px solid rgba(255,255,255,.08);

    border-radius:18px;

    background:rgba(255,255,255,.03);

    backdrop-filter:blur(12px);

    transition:
        transform .35s ease,
        border-color .35s ease,
        background .35s ease;
}

.team-stats div:hover{

    transform:translateY(-6px);

    border-color:rgba(164,22,26,.45);

    background:rgba(255,255,255,.05);
}

.team-stats strong{

    display:block;

    margin-bottom:10px;

    font-size:2rem;

    font-family:var(--font-heading);

    color:#ffffff;
}

.team-stats span{

    color:rgba(255,255,255,.68);

    font-size:.95rem;

    line-height:1.5;
}
.team-content .secondary-button{

    margin-top:10px;
}

.team-member{

    position:relative;
}

.team-member::after{

    content:"";

    position:absolute;

    left:0;
    right:0;
    bottom:-70px;

    height:1px;

    background:linear-gradient(
        90deg,
        transparent,
        rgba(164,22,26,.45),
        transparent
    );
}

@media (max-width: 980px){

    .team-member{

        grid-template-columns:1fr;

        gap:60px;
    }

    .team-image{

        order:-1;
    }

    .team-content{

        text-align:center;
    }

    .team-content p{

        margin-left:auto;
        margin-right:auto;
    }

    .team-stats{

        justify-content:center;
    }

}/* =========================================================
   TEAM STORY — RIFINITURA REZA
========================================================= */

.team-member-reza {
    grid-template-columns: 0.9fr 1.1fr;
    gap: clamp(45px, 6vw, 90px);
}

.team-member-reza .team-image {
    min-height: 650px;
    align-items: flex-end;
    justify-content: flex-start;
}

.team-member-reza .team-image img {
    width: min(132%, 760px);
    transform: translateX(-2%);
    transform-origin: center bottom;
}

.team-member-reza:hover .team-image img {
    transform:
        translateX(-2%)
        translateY(-8px)
        scale(1.02);
}

.team-member-reza .team-content {
    max-width: 680px;
}

.team-member-reza .team-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.team-member-reza .team-stats div {
    min-width: 0;
    padding: 22px 18px;
}
/* =========================================================
   AGENT STORY — REZA
========================================================= */

.team-story {
    padding: 0;
    background: #050505;
}

.team-story-container {
    width: 100%;
    max-width: none;
    margin: 0;
}

.agent-story {
    position: relative;

    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);

    min-height: 620px;

    overflow: hidden;

    background: #050505;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}


/* =========================================================
   FOTO COMPLETA
========================================================= */

.agent-story-visual {
    position: relative;

    min-height: 620px;

    overflow: hidden;

    background: #080808;
}

.agent-story-photo {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    display: block;

   object-fit: cover;
object-position: 15% center;
transform: scale(0.94);
background: #050505;

    filter:
        brightness(0.82)
        contrast(1.06)
        saturate(0.90);

    transform: scale(1.01);

    transition:
        transform 1.1s cubic-bezier(0.22, 1, 0.36, 1),
        filter 800ms cubic-bezier(0.22, 1, 0.36, 1);
}

.agent-story:hover .agent-story-photo {
    transform: scale(1.045);

    filter:
        brightness(0.88)
        contrast(1.07)
        saturate(0.94);
}


/* Il gradiente unisce la fotografia allo sfondo nero */

.agent-story-image-overlay {
    position: absolute;
    inset: 0;

    z-index: 2;

    pointer-events: none;

    background:
        linear-gradient(
            to right,
            rgba(5, 5, 5, 0.02) 0%,
            rgba(5, 5, 5, 0.04) 48%,
            rgba(5, 5, 5, 0.42) 72%,
            rgba(5, 5, 5, 0.88) 90%,
            #050505 100%
        ),
        linear-gradient(
            to top,
            rgba(5, 5, 5, 0.62) 0%,
            transparent 26%
        );
}


/* =========================================================
   CONTENUTO
========================================================= */

.agent-story-content {
    position: relative;
    z-index: 3;

    display: flex;
    flex-direction: column;
    justify-content: center;

    padding:
        clamp(80px, 8vw, 130px)
        clamp(55px, 7vw, 120px)
        clamp(80px, 8vw, 130px)
        clamp(35px, 4.5vw, 75px);
}

.agent-story-content .section-kicker {
    margin-bottom: 28px;
}

.agent-story-title {
    max-width: 760px;

    margin: 0 0 30px;

    color: #ffffff;

    font-family: var(--font-heading);

    font-size: clamp(2.5rem, 3.8vw, 4.4rem);
    font-weight: 400;
    line-height: 0.98;
    letter-spacing: -0.035em;
}

.agent-story-title span {
    display: block;

    margin-top: 8px;

    color: var(--color-red-light);
}

.agent-story-description {
    max-width: 650px;

    margin-bottom: 42px;
}

.agent-story-description p {
    margin: 0;

    color: rgba(255, 255, 255, 0.76);

    font-size: clamp(0.96rem, 1.05vw, 1.1rem);
    line-height: 1.85;
}

.agent-story-description p + p {
    margin-top: 18px;
}


/* =========================================================
   STATISTICHE — SENZA BOX
========================================================= */

.agent-story-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    max-width: 690px;

    margin-bottom: 45px;
}

.agent-story-stat {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: center;

    min-width: 0;

    padding: 0 clamp(16px, 2vw, 30px);

    text-align: center;
}

.agent-story-stat:not(:last-child)::after {
    content: "";

    position: absolute;
    top: 8px;
    right: 0;
    bottom: 5px;

    width: 1px;

    background:
        linear-gradient(
            to bottom,
            transparent,
            rgba(255, 255, 255, 0.25),
            transparent
        );
}

.agent-story-stat-icon {
    display: grid;
    place-items: center;

    width: 38px;
    height: 38px;

    margin-bottom: 13px;

    border: 1px solid var(--color-red-light);
    border-radius: 50%;

    color: var(--color-red-light);

    font-family: var(--font-body);
    font-size: 0.95rem;
    font-weight: 600;
}

.agent-story-stat-icon svg {
    width: 18px;
    height: 18px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.45;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.agent-story-stat strong {
    display: block;

    margin-bottom: 10px;

    color: #ffffff;

    font-family: var(--font-heading);
    font-size: clamp(1.55rem, 2vw, 2.15rem);
    font-weight: 400;
    line-height: 1;

    font-variant-numeric:
        lining-nums tabular-nums;
}

.agent-story-stat > span:last-child {
    max-width: 130px;

    color: rgba(255, 255, 255, 0.68);

    font-size: 0.67rem;
    font-weight: 500;
    line-height: 1.45;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}


/* =========================================================
   PULSANTE
========================================================= */

.agent-story-button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;

    width: fit-content;
    min-width: 350px;

    padding: 18px 26px;

    border: 1px solid rgba(222, 35, 42, 0.82);

    color: #ffffff;
    background: rgba(255, 255, 255, 0.015);

    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.13em;
    text-transform: uppercase;

    transition:
        color 350ms ease,
        background 350ms ease,
        border-color 350ms ease,
        transform 350ms ease;
}

.agent-story-button span {
    margin-left: 32px;

    color: var(--color-red-light);

    font-size: 1.1rem;

    transition: transform 350ms ease;
}

.agent-story-button:hover {
    color: #ffffff;
    background: rgba(207, 32, 39, 0.12);
    border-color: var(--color-red-light);

    transform: translateY(-3px);
}

.agent-story-button:hover span {
    transform: translateX(5px);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1100px) {

    .agent-story {
       grid-template-columns: 58% 42%;
    }

    .agent-story-content {
        padding:
            80px 42px;
    }

    .agent-story-title {
        font-size: clamp(2.7rem, 4.6vw, 4.2rem);
    }

    .agent-story-stat {
        padding:
            0 12px;
    }

}


@media (max-width: 820px) {

    .agent-story {
        grid-template-columns: 1fr;

        min-height: auto;
    }

    .agent-story-visual {
        min-height: 680px;
    }

    .agent-story-photo {
        object-position: 42% center;
    }

    .agent-story-image-overlay {
        background:
            linear-gradient(
                to bottom,
                transparent 55%,
                #050505 100%
            );
    }

    .agent-story-content {
        padding:
            65px 7vw 85px;

        text-align: left;
    }

    .agent-story-stats {
        width: 100%;
        max-width: none;
    }

}


@media (max-width: 560px) {

    .agent-story-visual {
        min-height: 480px;
    }

    .agent-story-title {
        font-size:
            clamp(2.55rem, 12vw, 3.5rem);
    }

    .agent-story-stats {
        grid-template-columns: 1fr;

        gap: 25px;
    }

    .agent-story-stat {
        padding: 20px 0;
    }

    .agent-story-stat:not(:last-child)::after {
        top: auto;
        right: 15%;
        bottom: 0;
        left: 15%;

        width: auto;
        height: 1px;

        background:
            linear-gradient(
                to right,
                transparent,
                rgba(255, 255, 255, 0.24),
                transparent
            );
    }

    .agent-story-button {
        width: 100%;
        min-width: 0;
    }

}.team-story{
    padding-top: 95px;
}/* =========================================================
   FIX REZA — FOTO FINO AL BORDO SINISTRO
========================================================= */

.team-story.section {
    width: 100%;
    max-width: none;

    margin: 0;
    padding: 0;

    overflow: hidden;
}

.team-story .team-story-container {
    width: 100%;
    max-width: none;

    margin: 0;
    padding: 0;
}

.team-story .agent-story {
    width: 100%;
    max-width: none;

    margin: 0;
    padding: 0;

    grid-template-columns: 58% 42%;
}

.team-story .agent-story-visual {
    width: 100%;
    height: 100%;

    margin: 0;
    padding: 0;

    overflow: hidden;
}

.team-story .agent-story-photo {
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: 22% center;

    transform: scale(1);
}/* =========================================================
   AGENT STORY — ANDREW
========================================================= */

.agent-story-andrew {
    grid-template-columns:
        minmax(0, 0.95fr)
        minmax(0, 1.05fr);

    min-height: 680px;

    border-top:
        1px solid rgba(255, 255, 255, 0.10);
}


/* =========================================================
   CONTENUTO A SINISTRA
========================================================= */

.agent-story-andrew .agent-story-content {
    order: 1;

    padding:
        clamp(90px, 8vw, 125px)
        clamp(35px, 4.5vw, 75px)
        clamp(80px, 7vw, 110px)
        clamp(70px, 7vw, 120px);
}


/* =========================================================
   FOTO A DESTRA
========================================================= */

.agent-story-andrew .agent-story-visual {
    order: 2;

    position: relative;

    min-height: 680px;

    overflow: hidden;

    background: #050505;
}

.agent-story-andrew .agent-story-photo {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    max-width: none;

    display: block;

    object-fit: cover;
    object-position: 72% center;

    transform: scale(1);

    filter:
        brightness(0.82)
        contrast(1.06)
        saturate(0.90);

    transition:
        transform 1.1s cubic-bezier(0.22, 1, 0.36, 1),
        filter 800ms cubic-bezier(0.22, 1, 0.36, 1);
}

.agent-story-andrew:hover .agent-story-photo {
    transform: scale(1.035);

    filter:
        brightness(0.88)
        contrast(1.07)
        saturate(0.94);
}


/* =========================================================
   GRADIENTE SPECCHIATO
========================================================= */

.agent-story-andrew .agent-story-image-overlay {
    position: absolute;
    inset: 0;

    z-index: 2;

    pointer-events: none;

    background:
        linear-gradient(
            to left,
            rgba(5, 5, 5, 0.02) 0%,
            rgba(5, 5, 5, 0.04) 48%,
            rgba(5, 5, 5, 0.42) 72%,
            rgba(5, 5, 5, 0.88) 90%,
            #050505 100%
        ),
        linear-gradient(
            to top,
            rgba(5, 5, 5, 0.62) 0%,
            transparent 26%
        );
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1100px) {

    .agent-story-andrew {
        grid-template-columns: 1fr 1fr;
    }

    .agent-story-andrew .agent-story-content {
        padding:
            80px 42px;
    }

}


@media (max-width: 820px) {

    .agent-story-andrew {
        grid-template-columns: 1fr;

        min-height: auto;
    }

    .agent-story-andrew .agent-story-content {
        order: 2;

        padding:
            65px 7vw 85px;
    }

    .agent-story-andrew .agent-story-visual {
        order: 1;

        min-height: 620px;
    }

    .agent-story-andrew .agent-story-photo {
        object-position: 70% center;
    }

    .agent-story-andrew .agent-story-image-overlay {
        background:
            linear-gradient(
                to bottom,
                transparent 55%,
                #050505 100%
            );
    }

}


@media (max-width: 560px) {

    .agent-story-andrew .agent-story-visual {
        min-height: 480px;
    }

    .agent-story-andrew .agent-story-photo {
        object-position: 68% center;
    }

}/* =========================================================
   ANDREW — CORREZIONE DEFINITIVA
========================================================= */

.agent-story-andrew {
    grid-template-columns: 42% 58%;
}

.agent-story-andrew .agent-story-visual {
    position: relative;
    min-height: 680px;
    overflow: hidden;
    background: #050505;
}

.agent-story-andrew .agent-story-photo {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    /* Sposta visivamente Andrew verso sinistra */
    object-position: 90% center;

    transform: none;
}

.agent-story-andrew:hover .agent-story-photo {
    transform: scale(1.025);
}

/* Sfumatura breve: unisce la foto al testo senza nasconderla */
.agent-story-andrew .agent-story-image-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;

    background:
        linear-gradient(
            to right,
            #050505 0%,
            rgba(5, 5, 5, 0.95) 4%,
            rgba(5, 5, 5, 0.65) 10%,
            rgba(5, 5, 5, 0.28) 18%,
            rgba(5, 5, 5, 0.08) 26%,
            transparent 34%
        ),
        linear-gradient(
            to top,
            rgba(5, 5, 5, 0.38) 0%,
            transparent 18%
        );
}
/* =========================================================
   FIX REALE ANDREW
========================================================= */
.team-story .agent-story-andrew {
    grid-template-columns: 42% 58%;
}


.team-story .agent-story-andrew .agent-story-visual {
    position: relative;
    overflow: hidden;
}

.team-story .agent-story-andrew .agent-story-photo {
    position: absolute;

    top: 0;
    bottom: 0;
    left: -110px;
    right: auto;

    width: calc(100% + 160px);
    height: 100%;

    object-fit: cover;
    object-position: center center;

    transform: scale(1.12);
    transform-origin: center right;
      filter: brightness(0.78) contrast(1.05) saturate(0.92);
}

.team-story .agent-story-andrew:hover .agent-story-photo {
    transform: scale(1.16);
    transform-origin: center right;
}

.team-story .agent-story-andrew .agent-story-image-overlay {
    background:
        linear-gradient(
            to right,
            #050505 0%,
            rgba(5, 5, 5, 0.86) 6%,
            rgba(5, 5, 5, 0.48) 15%,
            rgba(5, 5, 5, 0.16) 25%,
            transparent 38%
        ),
        linear-gradient(
            to top,
            rgba(5, 5, 5, 0.38) 0%,
            transparent 18%
        );
}/* =========================================================
   HOW CAN WE HELP — VERSIONE PREMIUM
========================================================= */

.services-section {
    position: relative;
    overflow: hidden;

    padding:
        clamp(110px, 10vw, 165px)
        var(--page-padding);

    background:
        linear-gradient(
            180deg,
            #050505 0%,
            #090909 50%,
            #050505 100%
        );
}


/* Luce di sfondo molto discreta */

.services-section::before {
    content: "";

    position: absolute;
    top: 12%;
    left: 50%;

    width: min(900px, 80vw);
    height: 520px;

    background:
        radial-gradient(
            circle,
            rgba(164, 22, 26, 0.08) 0%,
            rgba(164, 22, 26, 0.025) 38%,
            transparent 70%
        );

    transform: translateX(-50%);
    pointer-events: none;
}


/* =========================================================
   HEADER
========================================================= */

.services-section .section-heading {
    position: relative;
    z-index: 2;

    max-width: 900px;

    margin:
        0 auto
        clamp(65px, 7vw, 105px);

    text-align: center;
}


.services-section .section-kicker {
    justify-content: center;
}


.services-section .section-kicker::after {
    content: "";

    width: 42px;
    height: 1px;

    background: var(--color-red);
}


.services-section .section-heading h2 {
    max-width: none;

    font-size:
        clamp(3.8rem, 7vw, 7.4rem);

    line-height: 0.95;
}


.services-section .section-heading p {
    max-width: 570px;

    margin:
        26px auto 0;

    color:
        rgba(255, 255, 255, 0.58);

    font-size:
        clamp(0.95rem, 1.1vw, 1.1rem);

    line-height: 1.8;
}


/* =========================================================
   GRID
========================================================= */

.services-grid {
    position: relative;
    z-index: 2;

    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        clamp(20px, 2vw, 34px);

    width:
        min(100%, var(--content-width));

    margin-inline: auto;
}


/* =========================================================
   CARD
========================================================= */

.service-card {
    position: relative;

    display: block;

    color: inherit;
    text-decoration: none;

    cursor: pointer;

    min-height:
        clamp(560px, 49vw, 720px);

    overflow: hidden;

    border:
        1px solid rgba(255, 255, 255, 0.14);

    background:
        #0b0b0b;

    isolation: isolate;

    transition:
        transform 700ms cubic-bezier(0.22, 1, 0.36, 1),
        border-color 500ms ease,
        box-shadow 700ms ease;
}


.service-card::before {
    content: "";

    position: absolute;
    inset: 0;

    z-index: 4;

    border:
        1px solid transparent;

    pointer-events: none;

    transition:
        border-color 500ms ease;
}


.service-card:hover {
    transform:
        translateY(-10px);

    border-color:
        rgba(207, 32, 39, 0.50);

    box-shadow:
        0 28px 80px rgba(0, 0, 0, 0.50),
        0 0 30px rgba(164, 22, 26, 0.10);
}


.service-card:hover::before {
    border-color:
        rgba(207, 32, 39, 0.32);
}


/* =========================================================
   FOTO
========================================================= */

.service-image {
    position: absolute;
    inset: 0;

    z-index: -3;

    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;

    filter:
        brightness(0.74)
        contrast(1.08)
        saturate(0.88);

    transform:
        scale(1.01);

    transition:
        transform 1.2s cubic-bezier(0.22, 1, 0.36, 1),
        filter 900ms ease;
}


.service-buy .service-image {
    background-image: none;
}


.service-sell .service-image {
    background-image: none;
}


.service-rent .service-image {
    background-image: none;
}


.service-card:hover .service-image {
    transform:
        scale(1.075);

    filter:
        brightness(0.61)
        contrast(1.10)
        saturate(0.92);
}


/* Overlay principale */

.service-card::after {
    content: "";

    position: absolute;
    inset: 0;

    z-index: -2;

    background:
        linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0.05) 0%,
            rgba(0, 0, 0, 0.16) 35%,
            rgba(0, 0, 0, 0.64) 72%,
            rgba(0, 0, 0, 0.96) 100%
        );
}


/* =========================================================
   CONTENUTO
========================================================= */

.service-overlay {
    position: absolute;
    inset: 0;

    z-index: 3;

    display: flex;
    flex-direction: column;
    justify-content: flex-end;

    padding:
        clamp(30px, 3vw, 48px);
}


/* Numero grande */

.service-overlay::before {
    content: "";

    position: absolute;
    top: 25px;
    left: 30px;

    color:
        rgba(255, 255, 255, 0.18);

    font-family:
        var(--font-heading);

    font-size:
        clamp(5.5rem, 7vw, 8.5rem);

    font-weight: 300;

    line-height: 1;
}


.service-buy .service-overlay::before {
    content: "01";
}


.service-sell .service-overlay::before {
    content: "02";
}


.service-rent .service-overlay::before {
    content: "03";
}


/* =========================================================
   ICONA
========================================================= */

.service-icon {
    position: absolute;
    top:
        clamp(28px, 2.5vw, 42px);

    right:
        clamp(28px, 2.5vw, 42px);

    display: grid;
    place-items: center;

    width: 64px;
    height: 64px;

    border:
        1px solid var(--color-red-light);

    border-radius:
        50%;

    color:
        var(--color-red-light);

    font-size:
        1.55rem;

    background:
        rgba(7, 7, 7, 0.24);

    backdrop-filter:
        blur(7px);

    -webkit-backdrop-filter:
        blur(7px);

    transition:
        transform var(--transition-medium),
        background-color var(--transition-medium),
        color var(--transition-medium),
        box-shadow var(--transition-medium);
}


.service-card:hover .service-icon {
    color:
        #ffffff;

    background:
        rgba(164, 22, 26, 0.80);

    transform:
        rotate(-5deg)
        scale(1.06);

    box-shadow:
        0 0 28px rgba(207, 32, 39, 0.25);
}


/* =========================================================
   TITOLI
========================================================= */

.service-overlay h3 {
    position: relative;

    max-width: 390px;

    margin-bottom:
        26px;

    padding-top:
        24px;

    color:
        #ffffff;

    font-size:
        clamp(2.25rem, 3.1vw, 4.1rem);

    font-weight:
        400;

    line-height:
        0.98;

    letter-spacing:
        -0.035em;

    text-shadow:
        0 5px 25px rgba(0, 0, 0, 0.80);
}


.service-overlay h3::before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;

    width: 46px;
    height: 1px;

    background:
        var(--color-red-light);

    transition:
        width var(--transition-medium);
}


.service-card:hover .service-overlay h3::before {
    width:
        82px;
}


.service-overlay h3 span {
    color:
        var(--color-red-light);
}


/* =========================================================
   LINK
========================================================= */

.service-card-link {
    position: relative;

    display: flex;
    align-items: center;
    justify-content: space-between;

    width: 100%;
    max-width: 310px;

    padding-bottom:
        14px;

    border-bottom:
        1px solid rgba(207, 32, 39, 0.72);

    color:
        rgba(255, 255, 255, 0.90);

    font-size:
        0.64rem;

    font-weight:
        500;

    letter-spacing:
        0.20em;

    line-height:
        1.4;

    text-transform:
        uppercase;

    transition:
        color var(--transition-medium),
        border-color var(--transition-medium);
}


.service-card-link > span {
    color:
        var(--color-red-light);

    font-size:
        1.1rem;

    transition:
        transform var(--transition-medium);
}


.service-card:hover .service-card-link,
.service-card:focus-visible .service-card-link {
    color:
        #ffffff;

    border-color:
        var(--color-red-light);
}


.service-card:hover .service-card-link > span,
.service-card:focus-visible .service-card-link > span {
    transform:
        translateX(7px);
}


/* =========================================================
   RESPONSIVE — LAPTOP
========================================================= */

@media (max-width: 1200px) {

    .service-card {
        min-height:
            610px;
    }

    .service-overlay {
        padding:
            32px;
    }

    .service-overlay h3 {
        font-size:
            clamp(2.15rem, 3vw, 3.3rem);
    }

}


/* =========================================================
   RESPONSIVE — TABLET
========================================================= */

@media (max-width: 950px) {

    .services-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .service-card:last-child {
        grid-column:
            1 / -1;

        width:
            calc(50% - 10px);

        margin-inline:
            auto;
    }

}


/* =========================================================
   RESPONSIVE — MOBILE
========================================================= */

@media (max-width: 680px) {

    .services-section {
        padding:
            100px 22px;
    }

    .services-section .section-heading {
        margin-bottom:
            55px;
    }

    .services-grid {
        grid-template-columns:
            1fr;

        gap:
            26px;
    }

    .service-card,
    .service-card:last-child {
        grid-column:
            auto;

        width:
            100%;

        min-height:
            580px;
    }

    .service-overlay {
        padding:
            28px 24px;
    }

    .service-icon {
        width:
            56px;

        height:
            56px;

        font-size:
            1.25rem;
    }

}


/* =========================================================
   MOBILE PICCOLO
========================================================= */

@media (max-width: 420px) {

    .service-card {
        min-height:
            535px;
    }

    .service-overlay h3 {
        font-size:
            2.3rem;
    }

    .service-card-link {
        max-width:
            none;

        font-size:
            0.56rem;
    }

}
/* =========================================================
   LEGACY — VERSIONE CINEMATOGRAFICA
========================================================= */

.legacy-section {
    position: relative;

    min-height: 820px;

    overflow: hidden;

    padding:
        clamp(110px, 10vw, 165px)
        var(--page-padding);

    background: #050505;

    isolation: isolate;
}


/* =========================================================
   SFONDO
========================================================= */

.legacy-background {
    position: absolute;
    inset: 0;

    z-index: -3;

    background-image: none;

    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;

    filter:
        brightness(0.72)
        contrast(1.08)
        saturate(0.90);

    transform: scale(1.015);

    transition:
        transform 1.4s cubic-bezier(0.22, 1, 0.36, 1),
        filter 900ms ease;
}


.legacy-section:hover .legacy-background {
    transform: scale(1.045);

    filter:
        brightness(0.76)
        contrast(1.09)
        saturate(0.94);
}


/* =========================================================
   OVERLAY
========================================================= */

.legacy-overlay {
    position: absolute;
    inset: 0;

    z-index: -2;

    background:
        linear-gradient(
            to right,
            rgba(5, 5, 5, 0.96) 0%,
            rgba(5, 5, 5, 0.88) 22%,
            rgba(5, 5, 5, 0.64) 42%,
            rgba(5, 5, 5, 0.28) 66%,
            rgba(5, 5, 5, 0.08) 100%
        ),
        linear-gradient(
            to top,
            rgba(5, 5, 5, 0.76) 0%,
            transparent 35%
        );
}


/* =========================================================
   CONTENUTO
========================================================= */

.legacy-content {
    position: relative;
    z-index: 2;

    display: grid;
    grid-template-columns:
        minmax(0, 1.1fr)
        minmax(320px, 0.9fr);

    align-items: end;

    gap:
        clamp(70px, 8vw, 150px);

    width:
        min(100%, var(--content-width));

    min-height:
        600px;

    margin-inline: auto;
}


/* =========================================================
   TESTO
========================================================= */

.legacy-copy {
    max-width: 760px;
}


.legacy-copy h2 {
    margin:
        0 0 34px;

    color: #ffffff;

    font-size:
        clamp(3.8rem, 6.2vw, 7rem);

    font-weight: 300;

    line-height: 0.94;

    letter-spacing: -0.045em;

    text-shadow:
        0 8px 35px rgba(0, 0, 0, 0.62);
}


.legacy-copy h2 span {
    display: block;

    margin-top: 10px;

    color:
        var(--color-red-light);
}


.legacy-description {
    max-width: 620px;

    margin-bottom: 42px;
}


.legacy-description p {
    margin: 0;

    color:
        rgba(255, 255, 255, 0.74);

    font-size:
        clamp(0.95rem, 1.05vw, 1.08rem);

    line-height: 1.9;
}


.legacy-description p + p {
    margin-top: 18px;
}


/* =========================================================
   PULSANTE
========================================================= */

.legacy-button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;

    min-width: 310px;

    padding:
        18px 24px;

    border:
        1px solid rgba(207, 32, 39, 0.78);

    color:
        #ffffff;

    background:
        rgba(5, 5, 5, 0.26);

    backdrop-filter:
        blur(8px);

    -webkit-backdrop-filter:
        blur(8px);

    font-size:
        0.7rem;

    font-weight: 600;

    letter-spacing:
        0.18em;

    text-transform: uppercase;

    transition:
        background 350ms ease,
        border-color 350ms ease,
        transform 350ms ease;
}


.legacy-button span {
    margin-left: 30px;

    color:
        var(--color-red-light);

    font-size:
        1.1rem;

    transition:
        transform 350ms ease;
}


.legacy-button:hover {
    background:
        rgba(164, 22, 26, 0.18);

    border-color:
        var(--color-red-light);

    transform:
        translateY(-3px);
}


.legacy-button:hover span {
    transform:
        translateX(6px);
}


/* =========================================================
   STATISTICHE
========================================================= */

.legacy-stats {
    display: grid;
    grid-template-columns: 1fr;

    gap: 0;

    width: 100%;

    max-width: 440px;

    justify-self: end;

    border-top:
        1px solid rgba(255, 255, 255, 0.18);

    border-bottom:
        1px solid rgba(255, 255, 255, 0.18);

    background:
        rgba(5, 5, 5, 0.28);

    backdrop-filter:
        blur(12px);

    -webkit-backdrop-filter:
        blur(12px);
}


.legacy-stat {
    position: relative;

    display: grid;
    grid-template-columns:
        minmax(130px, 0.42fr)
        minmax(0, 0.58fr);

    align-items: center;

    min-height: 135px;

    padding:
        26px 30px;
}


.legacy-stat:not(:last-child) {
    border-bottom:
        1px solid rgba(255, 255, 255, 0.12);
}


.legacy-stat::before {
    content: "";

    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;

    width: 2px;

    background:
        var(--color-red-light);

    transform:
        scaleY(0);

    transform-origin:
        bottom;

    transition:
        transform 450ms cubic-bezier(0.22, 1, 0.36, 1);
}


.legacy-stat:hover::before {
    transform:
        scaleY(1);
}


.legacy-stat strong {
    color: #ffffff;

    font-family:
        var(--font-heading);

    font-size:
        clamp(1.65rem, 2.35vw, 2.7rem);

    font-weight: 400;

    line-height: 1;

    font-variant-numeric:
        lining-nums tabular-nums;

    overflow-wrap: anywhere;
}


.legacy-stat span {
    color:
        rgba(255, 255, 255, 0.65);

    font-size:
        0.67rem;

    font-weight: 500;

    letter-spacing:
        0.14em;

    line-height: 1.55;

    text-transform: uppercase;
}


/* =========================================================
   RESPONSIVE — TABLET
========================================================= */

@media (max-width: 950px) {

    .legacy-section {
        min-height: auto;
    }

    .legacy-content {
        grid-template-columns: 1fr;

        align-items: start;

        min-height: auto;

        gap: 70px;
    }

    .legacy-stats {
        max-width: none;

        justify-self: stretch;
    }

    .legacy-stat {
        grid-template-columns:
            180px 1fr;
    }

}


/* =========================================================
   RESPONSIVE — MOBILE
========================================================= */

@media (max-width: 680px) {

    .legacy-section {
        padding:
            100px 22px;
    }

    .legacy-background {
        background-position:
            68% center;
    }

    .legacy-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(5, 5, 5, 0.92) 0%,
                rgba(5, 5, 5, 0.74) 48%,
                rgba(5, 5, 5, 0.88) 100%
            );
    }

    .legacy-copy h2 {
        font-size:
            clamp(3.2rem, 14vw, 4.9rem);
    }

    .legacy-button {
        width: 100%;
        min-width: 0;
    }

    .legacy-stat {
        grid-template-columns: 1fr;

        gap: 12px;

        min-height: 0;

        padding:
            26px 22px;
    }

}
/* =========================================================
   ABOUT REZA + ANDREW — ALTEZZA PIÙ COMPATTA
========================================================= */

.team-story .agent-story {
    min-height: 590px;
}

.team-story .agent-story-visual {
    min-height: 590px;
}

.team-story .agent-story-content {
    padding-top: 70px;
    padding-bottom: 70px;
}

.team-story .agent-story-title {
    font-size: clamp(2.35rem, 3.4vw, 4rem);
}

.team-story .agent-story-description {
    margin-bottom: 32px;
}

.team-story .agent-story-stats {
    margin-bottom: 34px;
}
.team-story .agent-story-andrew,
.team-story .agent-story-andrew .agent-story-visual {
    min-height: 590px;
}
/* =========================================================
   ABOUT REZA + ANDREW — VERSIONE PIÙ COMPATTA
========================================================= */

.team-story .agent-story,
.team-story .agent-story-andrew {
    min-height: 500px;
}

.team-story .agent-story-visual,
.team-story .agent-story-andrew .agent-story-visual {
    min-height: 500px;
}

.team-story .agent-story-content,
.team-story .agent-story-andrew .agent-story-content {
    padding-top: 48px;
    padding-bottom: 48px;
}

.team-story .agent-story-title {
    margin-bottom: 22px;
    font-size: clamp(2.2rem, 3vw, 3.55rem);
}

.team-story .agent-story-description {
    margin-bottom: 26px;
}

.team-story .agent-story-description p {
    font-size: clamp(0.88rem, 0.95vw, 1rem);
    line-height: 1.65;
}

.team-story .agent-story-description p + p {
    margin-top: 12px;
}

.team-story .agent-story-stats {
    margin-bottom: 28px;
}

.team-story .agent-story-stat-icon {
    width: 32px;
    height: 32px;
    margin-bottom: 9px;
}

.team-story .agent-story-stat strong {
    margin-bottom: 7px;
    font-size: clamp(1.35rem, 1.7vw, 1.85rem);
}

.team-story .agent-story-button {
    padding-top: 14px;
    padding-bottom: 14px;
}/* =========================================================
   NAVBAR — VERSIONE PIÙ COMPATTA
========================================================= */

:root {
    --header-height: 84px;
}

.site-header {
    min-height: 84px;

    padding-top: 12px;
    padding-bottom: 12px;
}

.site-header.is-scrolled {
    min-height: 68px;

    padding-top: 9px;
    padding-bottom: 9px;
}

.header-brand-icon {
    width: clamp(36px, 3.3vw, 48px);
    height: clamp(36px, 3.3vw, 48px);
}

.header-brand-name {
    font-size: clamp(0.78rem, 1vw, 1.05rem);
}

.header-brand-subtitle {
    font-size: 0.5rem;
}

.desktop-navigation {
    gap: clamp(20px, 2.5vw, 40px);
}

.desktop-navigation a {
    font-size: 0.62rem;
}
/* =========================================================
   HOW CAN WE HELP — CARD LEGGERMENTE PIÙ COMPATTE
========================================================= */

.services-grid {
    gap: 22px;
}

.service-card {
    min-height: 445px;
    padding: 42px 36px;
}

.service-number {
    margin-bottom: 22px;
}

.service-icon {
    margin-bottom: 26px;
}

.service-card h3 {
    margin-bottom: 14px;
}

.service-card p {
    margin-bottom: 26px;
}
/* =========================================================
   FOOTER
========================================================= */

.site-footer {
    position: relative;

    background:
        linear-gradient(
            to bottom,
            #0b0b0b 0%,
            #050505 100%
        );

    border-top: 1px solid rgba(255,255,255,.08);

    padding:
        clamp(90px,8vw,120px)
        var(--page-padding)
        32px;

    overflow: hidden;
}

.site-footer::before {
    content: "";

    position: absolute;
    top: 0;
    left: 50%;

    transform: translateX(-50%);

    width: min(100%, var(--content-width));
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(207,32,39,.45),
            transparent
        );
}

.footer-inner{
    width:min(100%,var(--content-width));

    margin-inline:auto;

    display:grid;
    grid-template-columns:
        2fr
        1fr
        1fr
        1fr;

    gap:70px;

    padding-bottom:60px;
}

.footer-brand h3{
    margin:22px 0 18px;

    color:#fff;

    font-size:clamp(2rem,2.8vw,3rem);

    font-weight:300;

    line-height:1.1;
}

.footer-brand h3 span{
    color:var(--color-red-light);
}

.footer-brand p{
    color:rgba(255,255,255,.65);

    line-height:1.9;

    max-width:320px;
}

.footer-monogram{
    width:74px;
    height:74px;

    border:1px solid rgba(255,255,255,.12);

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    color:#fff;

    font-family:var(--font-heading);

    font-size:1.45rem;

    letter-spacing:.12em;

    transition:.35s;
}

.footer-brand:hover .footer-monogram{
    border-color:var(--color-red-light);

    color:var(--color-red-light);

    transform:rotate(6deg);
}

/* ===================== */

.footer-column h4{
    margin:0 0 26px;

    color:#fff;

    font-size:.8rem;

    letter-spacing:.18em;

    text-transform:uppercase;
}

.footer-column a,
.footer-column p{
    display:block;

    margin-bottom:14px;

    color:rgba(255,255,255,.62);

    text-decoration:none;

    line-height:1.7;

    transition:.3s;
}

.footer-column a:hover{
    color:var(--color-red-light);

    transform:translateX(6px);
}

/* ===================== */

.footer-bottom{
    width:min(100%,var(--content-width));

    margin-inline:auto;

    padding-top:28px;

    border-top:1px solid rgba(255,255,255,.08);

    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:25px;

    flex-wrap:wrap;
}

.footer-bottom p{
    margin:0;

    color:rgba(255,255,255,.48);

    font-size:.72rem;

    letter-spacing:.08em;
}

/* ===================== */

@media (max-width:1000px){

.footer-inner{

grid-template-columns:
1fr 1fr;

gap:55px;

}

}

@media (max-width:700px){

.site-footer{

padding:
70px 22px
28px;

}

.footer-inner{

grid-template-columns:1fr;

gap:45px;

}

.footer-bottom{

flex-direction:column;

align-items:flex-start;

}

.footer-brand h3{

font-size:2.2rem;

}

}
/* =========================================================
   FOOTER — LUXURY UPGRADE
========================================================= */

.site-footer {
    background:
        radial-gradient(
            circle at 18% 28%,
            rgba(164, 22, 26, 0.10),
            transparent 28%
        ),
        linear-gradient(
            180deg,
            #0b0b0c 0%,
            #050505 100%
        );
}

/* Brand più importante */

.footer-brand {
    position: relative;
}

.footer-monogram {
    width: auto;
    height: auto;

    display: inline-block;

    border: 0;
    border-radius: 0;

    color: #ffffff;

    font-family: var(--font-heading);
    font-size: clamp(4.8rem, 6vw, 7rem);
    font-weight: 300;

    line-height: 0.8;
    letter-spacing: -0.12em;

    text-shadow:
        0 0 30px rgba(207, 32, 39, 0.16);

    transform: none;
}

/* piccolo dettaglio rosso sotto il monogramma */

.footer-monogram::after {
    content: "";

    display: block;

    width: 72px;
    height: 1px;

    margin-top: 22px;

    background:
        linear-gradient(
            90deg,
            var(--color-red-light),
            transparent
        );
}

.footer-brand:hover .footer-monogram {
    color: #ffffff;
    transform: none;
}

/* Nomi più raffinati */

.footer-brand h3 {
    margin-top: 34px;

    font-size: clamp(2rem, 2.5vw, 2.8rem);
    font-weight: 300;

    letter-spacing: 0.04em;

    line-height: 1.05;
}

.footer-brand h3 span {
    color: var(--color-red-light);
    font-style: italic;
}

/* sottotitolo */

.footer-brand p {
    margin-top: 20px;

    color: rgba(255,255,255,.55);

    font-size: 0.78rem;
    font-weight: 400;

    letter-spacing: 0.13em;
    line-height: 1.9;

    text-transform: uppercase;
}

/* colonne */

.footer-column h4 {
    color: rgba(255,255,255,.92);

    font-size: .7rem;
    letter-spacing: .25em;

    margin-bottom: 30px;
}

.footer-column a,
.footer-column p {
    color: rgba(255,255,255,.52);

    font-size: .87rem;
}

/* hover più raffinato */

.footer-column a {
    position: relative;
    width: fit-content;
}

.footer-column a::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: -3px;

    width: 100%;
    height: 1px;

    background: var(--color-red-light);

    transform: scaleX(0);
    transform-origin: right;

    transition: transform .35s ease;
}

.footer-column a:hover {
    color: #ffffff;
    transform: translateX(3px);
}

.footer-column a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}

/* separatori verticali più luxury */

.footer-column {
    position: relative;
}

.footer-column::before {
    content: "";

    position: absolute;
    left: -34px;
    top: 0;
    bottom: 0;

    width: 1px;

    background:
        linear-gradient(
            to bottom,
            transparent,
            rgba(255,255,255,.12),
            transparent
        );
}

/* footer bottom */

.footer-bottom {
    margin-top: 12px;

    border-top:
        1px solid rgba(255,255,255,.10);
}

.footer-bottom p {
    color: rgba(255,255,255,.38);
}/* =========================================================
   NAVBAR — FIX DEFINITIVO
========================================================= */

.site-header {
    background: transparent;
}

.site-header.is-scrolled {
    background: rgba(5, 5, 5, 0.96) !important;

    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;

    box-shadow:
        0 10px 30px rgba(0, 0, 0, 0.28) !important;
}/* =========================================================
   PROPERTIES PAGE — PREMIUM CARDS
========================================================= */

.all-properties {
    padding:
        clamp(70px, 7vw, 110px)
        var(--page-padding)
        clamp(100px, 9vw, 150px);

    background:
        linear-gradient(
            180deg,
            #080808 0%,
            #050505 100%
        );
}

.premium-property-grid {
    width:
        min(100%, var(--content-width));

    margin-inline:
        auto;

    display:
        grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        clamp(22px, 2.2vw, 34px);
}

.premium-property-card {
    position:
        relative;

    overflow:
        hidden;

    border:
        1px solid rgba(255,255,255,.09);

    background:
        #0b0b0b;

    transition:
        transform .45s ease,
        border-color .45s ease,
        box-shadow .45s ease;
}

.premium-property-card:hover {
    transform:
        translateY(-8px);

    border-color:
        rgba(207,32,39,.42);

    box-shadow:
        0 22px 55px rgba(0,0,0,.42);
}


/* IMAGE */

.premium-property-image {
    position:
        relative;

    aspect-ratio:
        16 / 10;

    overflow:
        hidden;

    background:
        #111;
}

.premium-property-image::after {
    content:
        "";

    position:
        absolute;

    inset:
        0;

    background:
        linear-gradient(
            to top,
            rgba(5,5,5,.62) 0%,
            rgba(5,5,5,.10) 45%,
            transparent 72%
        );

    pointer-events:
        none;
}

.premium-property-image img {
    width:
        100%;

    height:
        100%;

    object-fit:
        cover;

    transition:
        transform .8s cubic-bezier(.22,1,.36,1),
        filter .8s ease;
}

.premium-property-card:hover
.premium-property-image img {
    transform:
        scale(1.055);

    filter:
        brightness(.88);
}


/* STATUS */

.property-status {
    position:
        absolute;

    top:
        18px;

    left:
        18px;

    z-index:
        3;

    padding:
        8px 12px;

    color:
        #fff;

    font-size:
        .58rem;

    font-weight:
        600;

    letter-spacing:
        .17em;

    text-transform:
        uppercase;

    backdrop-filter:
        blur(8px);

    -webkit-backdrop-filter:
        blur(8px);
}

.property-status-active {
    background:
        rgba(164,22,26,.88);

    border:
        1px solid rgba(207,32,39,.65);
}

.property-status-pending {
    background:
        rgba(255,255,255,.09);

    border:
        1px solid rgba(255,255,255,.22);
}


/* CONTENT */

.premium-property-content {
    padding:
        24px 24px 22px;
}

.premium-property-heading {
    display:
        flex;

    align-items:
        flex-start;

    justify-content:
        space-between;

    gap:
        25px;

    padding-bottom:
        20px;

    border-bottom:
        1px solid rgba(255,255,255,.08);
}

.premium-property-heading h2 {
    margin:
        0;

    color:
        #fff;

    font-family:
        var(--font-body);

    font-size:
        clamp(1rem, 1.2vw, 1.25rem);

    font-weight:
        400;

    line-height:
        1.35;
}

.premium-property-location {
    margin-top:
        7px;

    color:
        rgba(255,255,255,.46);

    font-size:
        .72rem;

    line-height:
        1.5;
}

.premium-property-price {
    flex:
        0 0 auto;

    color:
        var(--color-red-light);

    font-family:
        var(--font-heading);

    font-size:
        clamp(1.35rem, 1.7vw, 1.8rem);

    line-height:
        1;

    text-align:
        right;
}


/* SPECS */

.premium-property-specs {
    display:
        grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap:
        10px;

    padding:
        20px 0;

    border-bottom:
        1px solid rgba(255,255,255,.08);
}

.premium-property-specs span {
    display:
        flex;

    flex-direction:
        column;

    gap:
        4px;

    color:
        rgba(255,255,255,.44);

    font-size:
        .63rem;

    letter-spacing:
        .08em;

    text-transform:
        uppercase;
}

.premium-property-specs strong {
    color:
        rgba(255,255,255,.92);

    font-size:
        .86rem;

    font-weight:
        500;

    letter-spacing:
        0;

    text-transform:
        none;
}


/* LINK */

.premium-property-link {
    display:
        flex;

    align-items:
        center;

    justify-content:
        space-between;

    padding-top:
        19px;

    color:
        rgba(255,255,255,.75);

    font-size:
        .63rem;

    font-weight:
        500;

    letter-spacing:
        .18em;

    text-transform:
        uppercase;

    transition:
        color .3s ease;
}

.premium-property-link span {
    color:
        var(--color-red-light);

    font-size:
        1rem;

    transition:
        transform .35s ease;
}

.premium-property-link:hover {
    color:
        #fff;
}

.premium-property-link:hover span {
    transform:
        translateX(6px);
}


/* RESPONSIVE */

@media (max-width: 1100px) {

    .premium-property-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 680px) {

    .premium-property-grid {
        grid-template-columns:
            1fr;
    }

    .premium-property-heading {
        flex-direction:
            column;
    }

    .premium-property-price {
        text-align:
            left;
    }

}.premium-property-card {
    animation:
        propertyCardReveal .45s ease both;
}

@keyframes propertyCardReveal {

    from {
        opacity: 0;
        transform: translateY(14px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}/* =========================================================
   PROPERTIES — FILTER & SORT PANEL
========================================================= */

.property-filter-panel {
    max-height: 0;

    overflow: hidden;

    background:
        #070707;

    border-bottom:
        1px solid rgba(255,255,255,.08);

    opacity: 0;

    visibility: hidden;

    pointer-events: none;

    transition:
        max-height .55s cubic-bezier(.22,1,.36,1),
        opacity .35s ease,
        visibility 0s linear .55s;
}

.property-filter-panel.is-open {
    max-height: 760px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition-delay: 0s;
}

.property-filter-panel-inner {
    width:
        min(100%, var(--content-width));

    margin-inline:
        auto;

    padding:
        35px var(--page-padding) 42px;

    display:
        grid;

    grid-template-columns:
        1fr 1.4fr auto;

    gap:
        clamp(35px, 5vw, 80px);

    align-items:
        start;
}


/* GROUP */

.property-filter-group {
    display:
        flex;

    flex-direction:
        column;

    align-items:
        flex-start;

    gap:
        13px;
}

.property-filter-label {
    margin-bottom:
        8px;

    color:
        var(--color-red-light);

    font-size:
        .62rem;

    font-weight:
        600;

    letter-spacing:
        .22em;

    text-transform:
        uppercase;
}

.property-filter-group button {
    position:
        relative;

    padding:
        4px 0;

    background:
        transparent;

    border:
        0;

    color:
        rgba(255,255,255,.52);

    font-size:
        .76rem;

    letter-spacing:
        .05em;

    transition:
        color .3s ease,
        transform .3s ease;
}

.property-filter-group button:hover,
.property-filter-group button.is-active {
    color:
        #fff;

    transform:
        translateX(5px);
}

.property-filter-group button.is-active::before {
    content:
        "";

    position:
        absolute;

    left:
        -14px;

    top:
        50%;

    width:
        5px;

    height:
        5px;

    border-radius:
        50%;

    background:
        var(--color-red-light);

    transform:
        translateY(-50%);
}


/* RESET */

.property-filter-reset {
    min-width:
        155px;

    min-height:
        46px;

    padding:
        0 20px;

    border:
        1px solid rgba(255,255,255,.15);

    background:
        transparent;

    color:
        rgba(255,255,255,.65);

    font-size:
        .62rem;

    font-weight:
        500;

    letter-spacing:
        .16em;

    text-transform:
        uppercase;

    transition:
        color .3s ease,
        border-color .3s ease,
        background .3s ease;
}

.property-filter-reset:hover {
    color:
        #fff;

    border-color:
        var(--color-red-light);

    background:
        rgba(164,22,26,.10);
}


/* RESPONSIVE */

@media (max-width: 850px) {

    .property-filter-panel-inner {
        grid-template-columns:
            1fr 1fr;
    }

    .property-filter-reset {
        grid-column:
            1 / -1;

        width:
            100%;
    }

}

@media (max-width: 560px) {

    .property-filter-panel-inner {
        grid-template-columns:
            1fr;

        padding:
            30px 22px;
    }

    .property-filter-reset {
        grid-column:
            auto;
    }

}/* =========================================================
   PROPERTIES PAGE — FINAL VISUAL POLISH
   SOLO PAGINA PROPERTIES
========================================================= */


/* =========================
   HERO
========================= */

.properties-page-hero {
    min-height: 520px;

    display: flex;
    align-items: center;

    background: #050505;
}

.properties-page-hero-bg {
    inset: 0;

    background-size: cover;
    background-position: center 58%;

    filter:
        brightness(.32)
        contrast(1.12)
        saturate(.72);

    transform: scale(1.03);
}

.properties-page-hero-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(5,5,5,.97) 0%,
            rgba(5,5,5,.78) 30%,
            rgba(5,5,5,.34) 60%,
            rgba(5,5,5,.50) 100%
        ),
        linear-gradient(
            to top,
            rgba(5,5,5,.95) 0%,
            transparent 58%
        );
}

.properties-page-hero-content {
    padding:
        150px
        var(--page-padding)
        80px;
}

.properties-page-hero-content .section-kicker {
    margin-bottom: 20px;
}

.properties-page-hero-content h1 {
    font-size:
        clamp(4.8rem, 7.5vw, 8rem);

    line-height: .84;

    letter-spacing: -.045em;

    text-transform: none;
}

.properties-page-hero-line {
    margin:
        28px 0 22px;
}

.properties-page-hero-content p {
    max-width: 600px;

    font-size:
        .93rem;

    line-height:
        1.8;
}


/* =========================
   FILTER BAR
========================= */

.properties-filter-section {
    position: relative;
    z-index: 5;

    background:
        rgba(7,7,7,.98);

    border-top:
        1px solid rgba(255,255,255,.06);

    border-bottom:
        1px solid rgba(255,255,255,.08);
}

.properties-filter-inner {
    padding-top: 18px;
    padding-bottom: 18px;
}


/* =========================
   LISTINGS AREA
========================= */

.all-properties {
    padding:
        55px
        var(--page-padding)
        120px;

    background:
        #070707;
}


/* =========================
   GRID
========================= */

.premium-property-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap:
        28px;

    align-items: start;
}


/* =========================
   CARD
========================= */

.premium-property-card {
    min-width: 0;

    background:
        #0a0a0a;

    border:
        1px solid rgba(255,255,255,.08);

    overflow: hidden;

    transition:
        transform .45s cubic-bezier(.22,1,.36,1),
        border-color .45s ease,
        box-shadow .45s ease;
}

.premium-property-card:hover {
    transform:
        translateY(-6px);

    border-color:
        rgba(207,32,39,.48);

    box-shadow:
        0 25px 65px rgba(0,0,0,.48);
}


/* =========================
   PROPERTY IMAGE
========================= */

.premium-property-image {
    aspect-ratio:
        16 / 9;

    overflow: hidden;
}

.premium-property-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;
}

.premium-property-card:hover
.premium-property-image img {
    transform:
        scale(1.045);
}


/* =========================
   STATUS
========================= */

.property-status {
    top: 16px;
    left: 16px;

    padding:
        7px 12px;

    font-size:
        .56rem;

    letter-spacing:
        .15em;
}


/* =========================
   CONTENT
========================= */

.premium-property-content {
    padding:
        22px
        22px
        20px;
}


/* titolo e prezzo NON più schiacciati */

.premium-property-heading {
    display: block;

    padding-bottom:
        18px;
}

.premium-property-heading h2 {
    max-width: 100%;

    margin: 0;

    font-family:
        var(--font-heading);

    font-size:
        clamp(1.55rem, 1.8vw, 2rem);

    font-weight: 400;

    line-height:
        1.05;
}

.premium-property-location {
    margin-top:
        9px;

    font-size:
        .69rem;

    line-height:
        1.55;
}


/* PREZZO SOTTO LA LOCATION */

.premium-property-price {
    display: block;

    margin-top:
        18px;

    color:
        var(--color-red-light);

    font-family:
        var(--font-heading);

    font-size:
        clamp(1.6rem, 2vw, 2.2rem);

    line-height:
        1;

    text-align:
        left;
}


/* =========================
   SPECS
========================= */

.premium-property-specs {
    padding:
        18px 0;

    gap:
        15px;
}

.premium-property-specs span {
    gap:
        5px;

    font-size:
        .58rem;
}

.premium-property-specs strong {
    font-size:
        .88rem;
}


/* =========================
   VIEW DETAILS
========================= */

.premium-property-link {
    padding-top:
        17px;

    font-size:
        .59rem;

    letter-spacing:
        .19em;
}


/* =========================
   SPECIAL PRICE
========================= */

.premium-property-card
.premium-property-price {
    white-space: normal;
}


/* =========================
   TABLET
========================= */

@media (max-width: 1100px) {

    .premium-property-grid {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }

}


/* =========================
   MOBILE
========================= */

@media (max-width: 680px) {

    .properties-page-hero {
        min-height: 500px;
    }

    .properties-page-hero-content {
        padding:
            130px
            22px
            65px;
    }

    .properties-page-hero-content h1 {
        font-size:
            clamp(3.8rem, 16vw, 5.5rem);
    }

    .premium-property-grid {
        grid-template-columns:
            1fr;
    }

    .all-properties {
        padding:
            40px
            22px
            85px;
    }

}/* =========================================================
   PROPERTIES HERO — BACKGROUND DEFINITIVO
========================================================= */

.properties-page-hero {
    position: relative;
    min-height: 560px;

    overflow: hidden;

    background: #050505;
}

.properties-page-hero-bg {
    position: absolute;
    inset: 0;

    z-index: 0;

    background-image:
        url("../images/properties/properties-hero.webp?v=20260930");

    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

.properties-page-hero-overlay {
    position: absolute;
    inset: 0;

    z-index: 1;

    background:
        linear-gradient(
            90deg,
            rgba(5,5,5,.88) 0%,
            rgba(5,5,5,.60) 32%,
            rgba(5,5,5,.18) 66%,
            rgba(5,5,5,.06) 100%
        ),
        linear-gradient(
            to top,
            rgba(5,5,5,.48) 0%,
            transparent 50%
        );

    pointer-events: none;
}

.properties-page-hero-content {
    position: relative;
    z-index: 2;
}
/* =========================================================
   PROPERTIES FILTER BUTTON FIX
========================================================= */

.property-filter {
    appearance: none;
    -webkit-appearance: none;

    background: transparent !important;
    border: none !important;

    color: rgba(255,255,255,.60) !important;

    box-shadow: none !important;
}

.property-filter.is-active {
    color: #ffffff !important;
}
/* =========================================================
   PROPERTIES FILTER BAR — FIX
========================================================= */

.property-category-filters {
    display: flex;
    align-items: center;

    gap: 38px;
}

.property-filter {
    position: relative;

    appearance: none;
    -webkit-appearance: none;

    display: inline-block;

    padding: 18px 4px;

    border: 0 !important;
    outline: 0;

    background: transparent !important;

    color: rgba(255,255,255,.58) !important;

    box-shadow: none !important;

    font-size: .66rem;
    font-weight: 500;
    letter-spacing: .17em;

    text-transform: uppercase;
}

.property-filter::before {
    display: none !important;
}

.property-filter::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: 7px;

    width: 100%;
    height: 1px;

    background: var(--color-red-light) !important;

    transform: scaleX(0);

    transform-origin: right center;

    transition: transform .35s ease;
}

.property-filter:hover,
.property-filter.is-active {
    color: #fff !important;
}

.property-filter:hover::after,
.property-filter.is-active::after {
    transform: scaleX(1);

    transform-origin: left center;
}/* =========================================================
   PROPERTIES — LUXURY HERO REFINEMENT
========================================================= */

.properties-page-hero {
    min-height: 620px;
}


/* FOTO PIÙ VISIBILE */

.properties-page-hero-bg {
    background-position: center 52%;

    filter:
        brightness(.82)
        contrast(1.04)
        saturate(.92);
}


/* OVERLAY MOLTO PIÙ LEGGERO */

.properties-page-hero-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(4, 4, 5, .78) 0%,
            rgba(4, 4, 5, .53) 30%,
            rgba(4, 4, 5, .16) 58%,
            rgba(4, 4, 5, .04) 100%
        ),
        linear-gradient(
            to top,
            rgba(4, 4, 5, .42) 0%,
            transparent 45%
        );
}


/* CONTENUTO */

.properties-page-hero-content {
    max-width: 760px;

    padding-top: 175px;
    padding-bottom: 105px;
}


/* EXCLUSIVE COLLECTION */

.properties-page-hero-content .section-kicker {
    margin-bottom: 27px;

    color: #ef3b40;

    font-family: var(--font-body);

    font-size: .64rem;
    font-weight: 500;

    letter-spacing: .42em;

    text-transform: uppercase;
}


/* TITOLO */

.properties-page-hero-content h1 {
    margin: 0;

    color: #fff;

    font-family: var(--font-heading);

    font-size:
        clamp(5.4rem, 8vw, 8.6rem);

    font-weight: 300;

    line-height: .78;

    letter-spacing: -.055em;

    text-transform: none;

    text-shadow:
        0 8px 32px rgba(0,0,0,.45);
}


/* LINEA ROSSA */

.properties-page-hero-line {
    width: 62px;
    height: 1px;

    margin:
        37px 0 27px;

    background:
        linear-gradient(
            90deg,
            #cf2027,
            rgba(207,32,39,.10)
        );
}


/* DESCRIZIONE */

.properties-page-hero-content p {
    max-width: 590px;

    color:
        rgba(255,255,255,.72);

    font-family: var(--font-body);

    font-size:
        clamp(.83rem, .95vw, .97rem);

    font-weight: 300;

    line-height: 1.95;

    letter-spacing: .015em;

    text-shadow:
        0 4px 20px rgba(0,0,0,.65);
}


/* =========================================================
   FILTER BAR — PIÙ PREMIUM
========================================================= */

.properties-filter-section {
    background:
        rgba(6,6,7,.98);

    border-top:
        1px solid rgba(255,255,255,.07);

    border-bottom:
        1px solid rgba(255,255,255,.08);
}


.properties-filter-inner {
    min-height: 82px;

    padding-top: 0;
    padding-bottom: 0;
}


.property-category-filters {
    gap:
        clamp(28px, 4vw, 58px);
}


.property-filter {
    position: relative;

    min-height: 82px;

    padding: 0 2px;

    display: inline-flex;
    align-items: center;

    background: transparent !important;

    border: 0 !important;

    color:
        rgba(255,255,255,.48) !important;

    font-family:
        var(--font-body);

    font-size:
        .62rem;

    font-weight:
        500;

    letter-spacing:
        .22em;

    text-transform:
        uppercase;

    transition:
        color .3s ease;
}


.property-filter::before {
    display: none !important;
}


.property-filter::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: 0;

    width: 100%;
    height: 1px;

    background:
        #cf2027 !important;

    transform:
        scaleX(0);

    transform-origin:
        right;

    transition:
        transform .35s ease;
}


.property-filter:hover,
.property-filter.is-active {
    color:
        #fff !important;
}


.property-filter:hover::after,
.property-filter.is-active::after {
    transform:
        scaleX(1);

    transform-origin:
        left;
}


/* FILTER & SORT */

.property-sort-button {
    min-width: 175px;
    min-height: 48px;

    border:
        1px solid rgba(255,255,255,.16);

    background:
        rgba(255,255,255,.015);

    color:
        rgba(255,255,255,.72);

    font-size:
        .59rem;

    letter-spacing:
        .20em;
}


.property-sort-button:hover {
    border-color:
        rgba(207,32,39,.65);

    background:
        rgba(164,22,26,.07);
}/* =========================================================
   PROPERTIES — FILTER BAR REFINEMENT
========================================================= */

.properties-filter-inner {
    justify-content: flex-start;
    align-items: center;
    gap: 28px;
}

.property-category-filters {
    justify-content: flex-start;
    gap: 34px;
}

.property-filter {
    min-height: 68px;
    padding: 0;

    font-size: .58rem;
    letter-spacing: .20em;
}

.property-sort-button {
    margin-left: 0;

    min-width: 150px;
    min-height: 44px;

    justify-content: center;

    padding: 0 18px;

    font-size: .57rem;
    letter-spacing: .17em;
}

@media (max-width: 850px) {

    .properties-filter-inner {
        flex-direction: column;
        align-items: flex-start;
        gap: 18px;
    }

    .property-sort-button {
        width: auto;
    }
}
/* =========================================================
   PROPERTIES — CARD REFINEMENT
========================================================= */

.premium-property-grid {
    gap: 24px;
}

.premium-property-card {
    background: #0a0a0b;
}

.premium-property-image {
    aspect-ratio: 16 / 8.7;
}

.premium-property-content {
    padding: 20px 20px 18px;
}

.premium-property-heading h2 {
    font-size: clamp(1.35rem, 1.55vw, 1.75rem);
    line-height: 1.08;
}

.premium-property-location {
    margin-top: 7px;

    font-size: .64rem;
    line-height: 1.5;
}

.premium-property-price {
    margin-top: 14px;

    font-size: clamp(1.45rem, 1.7vw, 1.9rem);
}

.premium-property-specs {
    padding: 15px 0;

    gap: 10px;
}

.premium-property-specs strong {
    font-size: .82rem;
}

.premium-property-specs span {
    font-size: .54rem;
}

.premium-property-link {
    padding-top: 15px;

    font-size: .56rem;
}/* =========================================================
   PROPERTIES — FILTER BAR + CARDS
   OVERRIDE DEFINITIVO
========================================================= */


/* =========================================================
   FILTER BAR
========================================================= */

.properties-filter-section {
    width: 100%;

    background: #070707;

    border-top:
        1px solid rgba(255,255,255,.07);

    border-bottom:
        1px solid rgba(255,255,255,.09);
}


.properties-filter-inner {
    width: 100% !important;

    max-width: none !important;

    margin: 0 !important;

    padding:
        0
        clamp(28px, 4vw, 68px) !important;

    min-height: 88px;

    display: flex !important;

    flex-direction: row !important;

    align-items: center !important;

    justify-content: flex-start !important;

    gap: 42px !important;
}


/* ALL / ACTIVE / PENDING */

.property-category-filters {
    display: flex !important;

    align-items: center !important;

    justify-content: flex-start !important;

    gap:
        clamp(30px, 3vw, 52px) !important;
}


.property-filter {
    position: relative;

    min-height: 88px !important;

    padding: 0 !important;

    display: inline-flex !important;

    align-items: center;

    border: 0 !important;

    background: transparent !important;

    color:
        rgba(255,255,255,.50) !important;

    font-family:
        var(--font-body);

    font-size: .60rem !important;

    font-weight: 500;

    letter-spacing: .21em !important;

    text-transform: uppercase;

    box-shadow: none !important;
}


.property-filter::before {
    display: none !important;
}


.property-filter::after {
    content: "";

    position: absolute;

    left: 0;
    bottom: 0;

    width: 100%;
    height: 2px;

    background:
        var(--color-red-light) !important;

    transform:
        scaleX(0);

    transform-origin:
        right;

    transition:
        transform .35s ease;
}


.property-filter:hover,
.property-filter.is-active {
    color: #fff !important;
}


.property-filter:hover::after,
.property-filter.is-active::after {
    transform:
        scaleX(1);

    transform-origin:
        left;
}


/* FILTER & SORT — ADESSO A SINISTRA */

.property-sort-button {
    margin: 0 !important;

    width: auto !important;

    min-width: 165px !important;

    min-height: 46px !important;

    padding:
        0 19px !important;

    display: inline-flex !important;

    align-items: center;

    justify-content: space-between !important;

    gap: 22px;

    border:
        1px solid rgba(255,255,255,.18) !important;

    background:
        rgba(255,255,255,.018) !important;

    color:
        rgba(255,255,255,.73) !important;

    font-size:
        .58rem !important;

    font-weight: 500;

    letter-spacing:
        .17em !important;

    text-transform: uppercase;

    transition:
        border-color .3s ease,
        background .3s ease,
        color .3s ease;
}


.property-sort-button:hover {
    color: #fff !important;

    border-color:
        rgba(207,32,39,.75) !important;

    background:
        rgba(164,22,26,.10) !important;
}


/* =========================================================
   LISTINGS
========================================================= */

.all-properties {
    padding:
        58px
        clamp(28px, 4vw, 68px)
        120px !important;

    background:
        linear-gradient(
            180deg,
            #070707 0%,
            #050505 100%
        );
}


.premium-property-grid {
    width: 100% !important;

    max-width: none !important;

    margin: 0 !important;

    display: grid !important;

    grid-template-columns:
        repeat(3, minmax(0, 1fr)) !important;

    gap:
        clamp(20px, 2vw, 30px) !important;

    align-items: stretch;
}


/* =========================================================
   CARD — PIÙ LUXURY
========================================================= */

.premium-property-card {
    position: relative;

    min-width: 0;

    overflow: hidden;

    background:
        linear-gradient(
            145deg,
            #0d0d0e 0%,
            #080808 100%
        ) !important;

    border:
        1px solid rgba(255,255,255,.09) !important;

    border-radius: 0;

    box-shadow:
        0 18px 55px rgba(0,0,0,.20);

    transition:
        transform .45s cubic-bezier(.22,1,.36,1),
        border-color .45s ease,
        box-shadow .45s ease;
}


.premium-property-card::before {
    content: "";

    position: absolute;

    left: 0;
    top: 0;

    z-index: 10;

    width: 0;
    height: 2px;

    background:
        var(--color-red-light);

    transition:
        width .5s cubic-bezier(.22,1,.36,1);
}


.premium-property-card:hover::before {
    width: 100%;
}


.premium-property-card:hover {
    transform:
        translateY(-7px);

    border-color:
        rgba(207,32,39,.35) !important;

    box-shadow:
        0 28px 70px rgba(0,0,0,.46);
}


/* FOTO */

.premium-property-image {
    position: relative;

    width: 100%;

    aspect-ratio:
        16 / 9 !important;

    overflow: hidden;
}


.premium-property-image img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    filter:
        brightness(.88)
        contrast(1.04)
        saturate(.92);

    transition:
        transform .8s cubic-bezier(.22,1,.36,1),
        filter .8s ease;
}


.premium-property-card:hover
.premium-property-image img {
    transform:
        scale(1.045);

    filter:
        brightness(.78)
        contrast(1.07)
        saturate(.96);
}


/* STATUS */

.property-status {
    top: 16px !important;
    left: 16px !important;

    padding:
        7px 12px !important;

    font-size:
        .55rem !important;

    letter-spacing:
        .17em !important;
}


/* =========================================================
   CARD CONTENT
========================================================= */

.premium-property-content {
    padding:
        24px
        24px
        20px !important;
}


.premium-property-heading {
    display: block !important;

    padding-bottom:
        19px !important;

    border-bottom:
        1px solid rgba(255,255,255,.09);
}


.premium-property-heading h2 {
    margin: 0;

    color: #fff;

    font-family:
        var(--font-heading) !important;

    font-size:
        clamp(1.55rem, 1.7vw, 2rem) !important;

    font-weight: 400;

    line-height:
        1.03 !important;

    letter-spacing:
        -.015em;
}


.premium-property-location {
    margin-top:
        9px !important;

    color:
        rgba(255,255,255,.48);

    font-family:
        var(--font-body);

    font-size:
        .63rem !important;

    line-height:
        1.55;
}


/* PREZZO */

.premium-property-price {
    display: block !important;

    margin-top:
        16px !important;

    color:
        var(--color-red-light);

    font-family:
        var(--font-heading);

    font-size:
        clamp(1.55rem, 1.8vw, 2.05rem) !important;

    font-weight: 400;

    line-height: 1;

    text-align:
        left !important;
}


/* SPECS */

.premium-property-specs {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 12px !important;

    padding:
        18px 0 !important;

    border-bottom:
        1px solid rgba(255,255,255,.09);
}


.premium-property-specs span {
    color:
        rgba(255,255,255,.42);

    font-size:
        .53rem !important;

    letter-spacing:
        .10em;
}


.premium-property-specs strong {
    margin-bottom: 3px;

    color:
        #fff;

    font-size:
        .84rem !important;

    font-weight: 500;
}


/* VIEW DETAILS */

.premium-property-link {
    padding-top:
        17px !important;

    color:
        rgba(255,255,255,.67);

    font-size:
        .55rem !important;

    letter-spacing:
        .20em !important;
}


.premium-property-link span {
    color:
        var(--color-red-light);

    font-size:
        1rem;
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1100px) {

    .premium-property-grid {
        grid-template-columns:
            repeat(2, minmax(0,1fr)) !important;
    }

}


@media (max-width: 850px) {

    .properties-filter-inner {
        flex-wrap: wrap !important;

        flex-direction: row !important;

        padding-top:
            14px !important;

        padding-bottom:
            14px !important;
    }

    .property-category-filters {
        width: 100%;
    }

}


@media (max-width: 680px) {

    .premium-property-grid {
        grid-template-columns:
            1fr !important;
    }

}/* =========================================================
   PROPERTIES — LUXURY FULL IMAGE CARDS
========================================================= */

.premium-property-grid {
    width: 100% !important;
    max-width: none !important;

    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;

    gap: clamp(22px, 2vw, 32px) !important;
}


/* CARD */

.listing-showcase-card {
    position: relative;

    min-width: 0;

    overflow: hidden;

    background: #090909;

    border-top:
        1px solid rgba(255,255,255,.16);

    transition:
        transform .55s cubic-bezier(.22,1,.36,1),
        border-color .45s ease;
}


.listing-showcase-card:hover {
    transform: translateY(-7px);

    border-color:
        rgba(207,32,39,.70);
}


/* IMAGE */

.listing-showcase-image {
    position: relative;

    width: 100%;

    aspect-ratio: 4 / 5;

    overflow: hidden;
}


.listing-showcase-image img {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;

    filter:
        brightness(.82)
        contrast(1.05)
        saturate(.90);

    transform: scale(1.01);

    transition:
        transform .9s cubic-bezier(.22,1,.36,1),
        filter .7s ease;
}


.listing-showcase-card:hover
.listing-showcase-image img {

    transform: scale(1.055);

    filter:
        brightness(.63)
        contrast(1.07)
        saturate(.92);
}


/* DARK GRADIENT */

.listing-showcase-overlay {
    position: absolute;
    inset: 0;

    z-index: 1;

    pointer-events: none;

    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.02) 0%,
            rgba(0,0,0,.05) 35%,
            rgba(0,0,0,.30) 60%,
            rgba(0,0,0,.93) 100%
        );

    transition:
        background .6s ease;
}


.listing-showcase-card:hover
.listing-showcase-overlay {

    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.06) 0%,
            rgba(0,0,0,.13) 32%,
            rgba(0,0,0,.48) 62%,
            rgba(0,0,0,.97) 100%
        );
}


/* =========================================================
   PARTNER REFERRAL — PREMIUM FIRST-VISIT WELCOME
========================================================= */

body.referral-dialog-open {
    overflow: hidden;
}

.referral-welcome-overlay {
    position: fixed;
    inset: 0;
    z-index: 120000;
    display: grid;
    place-items: center;
    padding: clamp(16px, 4vw, 48px);
    background:
        radial-gradient(circle at 50% 18%, rgba(117, 13, 18, .17), transparent 34%),
        rgba(2, 2, 3, .82);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    opacity: 0;
    visibility: hidden;
    transition:
        opacity .45s ease,
        visibility .45s ease;
}

.referral-welcome-overlay.is-visible {
    opacity: 1;
    visibility: visible;
}

.referral-welcome-dialog {
    position: relative;
    width: min(680px, 100%);
    max-height: calc(100svh - 32px);
    overflow-y: auto;
    padding: clamp(42px, 6vw, 70px) clamp(28px, 6vw, 76px) clamp(34px, 5vw, 58px);
    border: 1px solid rgba(255, 255, 255, .16);
    background:
        radial-gradient(circle at 50% 5%, rgba(164, 22, 26, .16), transparent 30%),
        linear-gradient(145deg, rgba(21, 21, 23, .985), rgba(5, 5, 6, .995) 68%);
    box-shadow:
        0 45px 120px rgba(0, 0, 0, .76),
        inset 0 1px rgba(255, 255, 255, .04);
    text-align: center;
    transform: translateY(22px) scale(.975);
    transition: transform .65s cubic-bezier(.22, 1, .36, 1);
    isolation: isolate;
    scrollbar-width: thin;
    scrollbar-color: var(--color-red) transparent;
}

.referral-welcome-overlay.is-visible .referral-welcome-dialog {
    transform: translateY(0) scale(1);
}

.referral-welcome-dialog::before,
.referral-welcome-dialog::after {
    content: "";
    position: absolute;
    pointer-events: none;
}

.referral-welcome-dialog::before {
    inset: 12px;
    z-index: -1;
    border: 1px solid rgba(255, 255, 255, .055);
}

.referral-welcome-dialog::after {
    top: 0;
    left: 50%;
    width: 92px;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--color-red-light), transparent);
    transform: translateX(-50%);
    box-shadow: 0 0 24px rgba(207, 32, 39, .48);
}

.referral-welcome-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 50%;
    background: rgba(8, 8, 9, .72);
    transition:
        border-color .3s ease,
        background .3s ease,
        transform .3s ease;
}

.referral-welcome-close:hover,
.referral-welcome-close:focus-visible {
    border-color: rgba(207, 32, 39, .8);
    background: rgba(164, 22, 26, .14);
    transform: rotate(5deg);
    outline: none;
}

.referral-welcome-close span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 18px;
    height: 1px;
    background: rgba(245, 243, 239, .9);
}

.referral-welcome-close span:first-child {
    transform: translate(-50%, -50%) rotate(45deg);
}

.referral-welcome-close span:last-child {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.referral-welcome-logo {
    width: clamp(64px, 8vw, 86px);
    margin: 0 auto 20px;
    filter: drop-shadow(0 0 24px rgba(164, 22, 26, .34));
}

.referral-welcome-kicker {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin-bottom: 16px;
    color: var(--color-red-light);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .34em;
    line-height: 1.3;
    text-transform: uppercase;
}

.referral-welcome-kicker::before,
.referral-welcome-kicker::after {
    content: "";
    width: 34px;
    height: 1px;
    background: rgba(207, 32, 39, .72);
}

.referral-welcome-dialog h2 {
    max-width: 560px;
    margin: 0 auto;
    color: var(--color-white-pure);
    font-size: clamp(42px, 5vw, 62px);
    font-weight: 400;
    letter-spacing: -.035em;
    line-height: .94;
}

.referral-welcome-rule {
    width: 54px;
    height: 1px;
    margin: 27px auto 24px;
    background: var(--color-red-light);
    box-shadow: 0 0 16px rgba(207, 32, 39, .38);
}

.referral-welcome-copy {
    max-width: 530px;
    margin: 0 auto;
    color: rgba(225, 222, 217, .74);
    font-size: 14px;
    line-height: 1.75;
}

.referral-welcome-partner {
    display: grid;
    gap: 3px;
    width: min(420px, 100%);
    margin: 27px auto 18px;
    padding: 15px 22px;
    border-top: 1px solid rgba(255, 255, 255, .09);
    border-bottom: 1px solid rgba(255, 255, 255, .09);
    background: rgba(255, 255, 255, .018);
}

.referral-welcome-partner span {
    color: rgba(170, 167, 162, .72);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .28em;
    text-transform: uppercase;
}

.referral-welcome-partner strong {
    color: var(--color-white);
    font-family: var(--font-heading);
    font-size: 24px;
    font-weight: 400;
    line-height: 1.3;
}

.referral-welcome-form {
    display: grid;
    width: min(480px, 100%);
    margin: 28px auto 0;
    text-align: left;
}

.referral-welcome-form label {
    color: var(--color-white);
    font-family: var(--font-heading);
    font-size: 21px;
    letter-spacing: .015em;
    text-align: center;
}

.referral-welcome-hint {
    margin: 3px 0 13px;
    color: rgba(170, 167, 162, .7);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .2em;
    text-align: center;
    text-transform: uppercase;
}

.referral-welcome-form input {
    width: 100%;
    height: 58px;
    padding: 0 20px;
    border: 1px solid rgba(255, 255, 255, .17);
    border-radius: 0;
    background: rgba(255, 255, 255, .025);
    color: var(--color-white-pure);
    font-size: 13px;
    outline: none;
    transition:
        border-color .3s ease,
        background .3s ease,
        box-shadow .3s ease;
}

.referral-welcome-form input::placeholder {
    color: rgba(170, 167, 162, .54);
}

.referral-welcome-form input:focus {
    border-color: rgba(207, 32, 39, .8);
    background: rgba(255, 255, 255, .04);
    box-shadow: 0 0 0 3px rgba(164, 22, 26, .08);
}

.referral-welcome-primary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(360px, 100%);
    min-height: 60px;
    margin: 18px auto 0;
    padding: 0 22px;
    border: 1px solid rgba(207, 32, 39, .88);
    background:
        linear-gradient(90deg, rgba(164, 22, 26, .12), transparent 52%),
        rgba(7, 7, 8, .72);
    color: var(--color-white-pure);
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .25em;
    text-align: left;
    text-transform: uppercase;
    transition:
        background .35s ease,
        border-color .35s ease,
        transform .35s ease;
}

.referral-welcome-form .referral-welcome-primary {
    width: 100%;
}

.referral-welcome-primary span:last-child {
    color: var(--color-red-light);
    font-size: 19px;
    line-height: 1;
    transition: transform .35s ease;
}

.referral-welcome-primary:hover,
.referral-welcome-primary:focus-visible {
    border-color: var(--color-red-light);
    background:
        linear-gradient(90deg, rgba(164, 22, 26, .2), transparent 70%),
        rgba(12, 12, 13, .92);
    transform: translateY(-2px);
    outline: none;
}

.referral-welcome-primary:hover span:last-child,
.referral-welcome-primary:focus-visible span:last-child {
    transform: translateX(5px);
}

.referral-welcome-later {
    margin: 16px auto 0;
    padding: 4px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    background: transparent;
    color: rgba(170, 167, 162, .72);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: .15em;
    text-transform: uppercase;
    transition:
        color .3s ease,
        border-color .3s ease;
}

.referral-welcome-later:hover,
.referral-welcome-later:focus-visible {
    border-color: rgba(207, 32, 39, .68);
    color: var(--color-white);
    outline: none;
}

@media (max-width: 620px) {
    .referral-welcome-overlay {
        align-items: end;
        padding: 10px;
    }

    .referral-welcome-dialog {
        width: 100%;
        max-height: calc(100svh - 20px);
        padding: 48px 22px 31px;
        text-align: center;
    }

    .referral-welcome-dialog::before {
        inset: 8px;
    }

    .referral-welcome-close {
        top: 15px;
        right: 15px;
        width: 42px;
        height: 42px;
    }

    .referral-welcome-logo {
        width: 58px;
        margin-bottom: 15px;
    }

    .referral-welcome-kicker {
        margin-bottom: 13px;
        font-size: 8px;
        letter-spacing: .27em;
    }

    .referral-welcome-kicker::before,
    .referral-welcome-kicker::after {
        width: 22px;
    }

    .referral-welcome-dialog h2 {
        font-size: clamp(38px, 11.5vw, 50px);
    }

    .referral-welcome-rule {
        margin: 22px auto 19px;
    }

    .referral-welcome-copy {
        font-size: 12px;
        line-height: 1.65;
    }

    .referral-welcome-partner {
        margin-top: 21px;
    }

    .referral-welcome-primary {
        min-height: 58px;
    }
}

@media (max-height: 780px) {
    .referral-welcome-dialog {
        padding-top: 36px;
        padding-bottom: 28px;
    }

    .referral-welcome-logo {
        width: 52px;
        margin-bottom: 12px;
    }

    .referral-welcome-dialog h2 {
        font-size: clamp(36px, 7vh, 50px);
    }

    .referral-welcome-rule {
        margin-top: 18px;
        margin-bottom: 16px;
    }

    .referral-welcome-partner,
    .referral-welcome-form {
        margin-top: 18px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .referral-welcome-overlay,
    .referral-welcome-dialog,
    .referral-welcome-primary,
    .referral-welcome-primary span,
    .referral-welcome-close {
        transition-duration: .01ms !important;
    }
}


/* =========================================================
   404 — QUIET LUXURY FALLBACK
========================================================= */

.not-found-page {
    overflow-x: hidden;
    background: #050505;
}

.not-found-main {
    position: relative;
    display: grid;
    min-height: 100svh;
    place-items: center;
    overflow: hidden;
    padding: 130px 7vw 72px;
}

.not-found-background {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(2, 2, 3, 0.96), rgba(2, 2, 3, 0.58) 55%, rgba(2, 2, 3, 0.86)),
        url("../images/hero-bg-20260929.webp") center / cover no-repeat;
    filter: saturate(0.72);
    transform: scale(1.025);
}

.not-found-copy {
    position: relative;
    z-index: 1;
    width: min(760px, 100%);
    text-align: center;
}

.not-found-code {
    margin: 18px 0 -24px;
    color: rgba(255, 255, 255, 0.08);
    font-family: var(--font-heading);
    font-size: clamp(7rem, 20vw, 14rem);
    font-weight: 300;
    line-height: 0.8;
}

.not-found-copy h1 {
    color: #ffffff;
    font-size: clamp(3rem, 6vw, 6.4rem);
    font-weight: 400;
    line-height: 0.92;
}

.not-found-copy h1 em {
    color: var(--color-red-light);
    font-weight: 400;
}

.not-found-copy > p:last-of-type {
    max-width: 560px;
    margin: 28px auto 0;
    color: rgba(255, 255, 255, 0.62);
    line-height: 1.8;
}

.not-found-actions {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-top: 38px;
}

.not-found-actions a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-width: 240px;
    min-height: 64px;
    padding: 0 24px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    transition: border-color 300ms ease, background 300ms ease, transform 300ms ease;
}

.not-found-actions a:first-child {
    border-color: rgba(207, 32, 39, 0.8);
    background: rgba(164, 22, 26, 0.1);
}

.not-found-actions a:hover,
.not-found-actions a:focus-visible {
    border-color: var(--color-red-light);
    background: rgba(164, 22, 26, 0.18);
    outline: none;
    transform: translateY(-2px);
}

@media (max-width: 620px) {
    .not-found-main {
        padding: 110px 22px 44px;
    }

    .not-found-actions {
        flex-direction: column;
    }

    .not-found-actions a {
        width: 100%;
        min-width: 0;
    }
}

/* =========================================================
   PROPERTY DETAIL — PRIVATE EDITORIAL EXPERIENCE
========================================================= */

.property-detail-page {
    background: #050505;
    color: #f6f1eb;
}

.listing-showcase-card[data-href] {
    cursor: pointer;
}

.listing-showcase-card[data-href]:focus-visible {
    outline: 1px solid #d31d29;
    outline-offset: 6px;
}

.property-detail-page.property-gallery-open {
    overflow: hidden;
}

.property-detail-page .property-detail-header {
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.property-detail-shell {
    overflow: hidden;
    background:
        radial-gradient(circle at 14% 30%, rgba(119, 19, 27, .09), transparent 26%),
        #050505;
}

.property-detail-loading,
.property-detail-not-found {
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding: 130px 7vw 80px;
    text-align: center;
}

.property-detail-loading img {
    width: 74px;
    animation: propertyDetailPulse 1.8s ease-in-out infinite;
}

.property-detail-loading p {
    color: #a7a1a0;
    font-size: .72rem;
    letter-spacing: .28em;
    text-transform: uppercase;
}

@keyframes propertyDetailPulse {
    0%, 100% { opacity: .42; transform: scale(.96); }
    50% { opacity: 1; transform: scale(1.04); }
}

.property-detail-not-found h1 {
    max-width: 900px;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(3rem, 6vw, 6.8rem);
    font-weight: 400;
    line-height: .95;
}

.property-detail-not-found p {
    max-width: 580px;
    color: #aaa5a2;
    font-size: 1.05rem;
    line-height: 1.75;
}

.property-detail-hero {
    position: relative;
    min-height: 100svh;
    display: flex;
    align-items: flex-end;
    isolation: isolate;
    background: #090909;
}

.property-detail-hero-media,
.property-detail-hero-shade {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.property-detail-hero-media {
    z-index: -3;
    overflow: hidden;
    background: #090909;
}

.property-detail-hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    opacity: 0;
    transform: scale(1.045);
    transition:
        opacity 1.15s cubic-bezier(.22, .8, .2, 1),
        transform 7s cubic-bezier(.18, .72, .2, 1);
}

.property-detail-hero-image.is-active {
    opacity: 1;
    transform: scale(1);
}

.property-detail-hero-shade {
    z-index: -2;
    background:
        linear-gradient(180deg, rgba(2, 3, 4, .4) 0%, rgba(2, 3, 4, .05) 35%, rgba(2, 3, 4, .38) 65%, rgba(2, 3, 4, .96) 100%),
        linear-gradient(90deg, rgba(2, 3, 4, .72) 0%, rgba(2, 3, 4, .12) 58%, rgba(2, 3, 4, .35) 100%);
}

.property-detail-hero::after {
    content: "";
    position: absolute;
    right: clamp(22px, 5vw, 90px);
    top: 22%;
    width: 1px;
    height: 22%;
    background: linear-gradient(to bottom, transparent, #c71925, transparent);
    opacity: .7;
}

.property-detail-slider-controls {
    position: absolute;
    z-index: 4;
    inset: 0;
    pointer-events: none;
}

.property-detail-slider-arrow {
    position: absolute;
    top: 50%;
    width: clamp(62px, 5vw, 76px);
    height: clamp(62px, 5vw, 76px);
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .38);
    border-radius: 50%;
    background: rgba(7, 7, 8, .42);
    box-shadow:
        0 18px 55px rgba(0, 0, 0, .32),
        inset 0 0 0 1px rgba(255, 255, 255, .04);
    color: rgba(255, 255, 255, .96);
    cursor: pointer;
    pointer-events: auto;
    backdrop-filter: blur(16px) saturate(120%);
    -webkit-backdrop-filter: blur(16px) saturate(120%);
    transform: translateY(-50%);
    transition:
        color .28s ease,
        background .28s ease,
        border-color .28s ease,
        box-shadow .28s ease,
        transform .28s ease;
}

.property-detail-slider-prev {
    left: clamp(18px, 3.25vw, 62px);
}

.property-detail-slider-next {
    right: clamp(18px, 3.25vw, 62px);
}

.property-detail-slider-arrow svg {
    width: 29px;
    height: 29px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.35;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.property-detail-slider-arrow:hover,
.property-detail-slider-arrow:focus-visible {
    border-color: rgba(255, 255, 255, .72);
    background: rgba(185, 24, 36, .94);
    color: #fff;
    outline: 0;
    box-shadow:
        0 22px 65px rgba(0, 0, 0, .38),
        0 0 0 7px rgba(185, 24, 36, .14);
    transform: translateY(-50%) scale(1.06);
}

.property-detail-slider-arrow:focus-visible {
    outline: 2px solid rgba(255, 255, 255, .94);
    outline-offset: 4px;
}

.property-detail-slider-status {
    position: absolute;
    right: clamp(22px, 4.7vw, 88px);
    bottom: clamp(24px, 5vh, 54px);
    min-height: 46px;
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 10px 16px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 28px;
    background: rgba(7, 7, 8, .46);
    box-shadow: 0 14px 38px rgba(0, 0, 0, .26);
    pointer-events: none;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.property-detail-slider-count {
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.property-detail-slider-count strong {
    color: #fff;
    font-family: var(--font-display, Georgia, serif);
    font-size: 1.25rem;
    font-weight: 400;
}

.property-detail-slider-count span,
.property-detail-slider-count em {
    color: rgba(255, 255, 255, .52);
    font-size: .56rem;
    font-style: normal;
}

.property-detail-slider-progress {
    width: 64px;
    height: 1px;
    overflow: hidden;
    background: rgba(255, 255, 255, .18);
}

.property-detail-slider-progress i {
    display: block;
    width: 100%;
    height: 100%;
    background: #d61e2a;
    transform: scaleX(var(--property-slider-progress, 0));
    transform-origin: left;
    transition: transform .85s cubic-bezier(.22, .8, .2, 1);
}

.property-detail-back {
    position: absolute;
    z-index: 2;
    top: clamp(118px, 15vh, 170px);
    left: clamp(24px, 6vw, 112px);
    display: inline-flex;
    align-items: center;
    gap: 16px;
    color: rgba(255, 255, 255, .72);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
    transition: color .25s ease;
}

.property-detail-back span {
    color: #d51d29;
    font-size: 1.1rem;
    transition: transform .25s ease;
}

.property-detail-back:hover {
    color: #fff;
}

.property-detail-back:hover span {
    transform: translateX(-5px);
}

.property-detail-hero-copy {
    width: min(1180px, 88vw);
    margin: 0 auto;
    padding: 0 0 clamp(68px, 9vh, 112px);
}

.property-detail-status {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 18px;
    color: #e12631;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .28em;
    text-transform: uppercase;
}

.property-detail-status span {
    width: 44px;
    height: 1px;
    background: #d21c27;
}

.property-detail-location {
    margin-bottom: 14px;
    color: rgba(255, 255, 255, .72);
    font-size: clamp(.78rem, 1vw, .95rem);
    letter-spacing: .18em;
    text-transform: uppercase;
}

.property-detail-hero h1 {
    max-width: 1100px;
    margin: 0;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(3.4rem, 7.2vw, 8.8rem);
    font-weight: 400;
    line-height: .88;
    letter-spacing: -.045em;
    text-wrap: balance;
}

.property-detail-hero-bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    margin-top: clamp(28px, 4vh, 52px);
    padding-top: 26px;
    border-top: 1px solid rgba(255, 255, 255, .22);
}

.property-detail-hero-bottom > strong {
    color: #fff;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(1.65rem, 3vw, 3.1rem);
    font-weight: 400;
}

.property-detail-hero-bottom > a {
    display: inline-flex;
    align-items: center;
    gap: 24px;
    color: #fff;
    font-size: .69rem;
    font-weight: 700;
    letter-spacing: .22em;
    text-transform: uppercase;
}

.property-detail-hero-bottom > a span {
    color: #d91d2a;
    font-size: 1.2rem;
}

.property-detail-index {
    position: absolute;
    right: clamp(24px, 5vw, 90px);
    bottom: clamp(70px, 9vh, 112px);
    display: none;
    align-items: baseline;
    gap: 8px;
    color: rgba(255, 255, 255, .65);
}

.property-detail-index span {
    position: absolute;
    right: 0;
    bottom: 42px;
    width: max-content;
    font-size: .6rem;
    letter-spacing: .26em;
    text-transform: uppercase;
}

.property-detail-index b {
    color: #fff;
    font-family: var(--font-display, Georgia, serif);
    font-size: 2rem;
    font-weight: 400;
}

.property-detail-index i,
.property-detail-index em {
    font-style: normal;
    font-size: .76rem;
}

.property-detail-overview,
.property-detail-private-cta {
    width: min(1500px, 88vw);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .78fr);
    gap: clamp(60px, 10vw, 180px);
    padding: clamp(110px, 15vw, 220px) 0;
}

.property-detail-overview-heading h2,
.property-detail-section-heading h2,
.property-detail-private-cta h2 {
    margin: 28px 0 0;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(3.2rem, 6vw, 7rem);
    font-weight: 400;
    line-height: .98;
    letter-spacing: -.04em;
    text-wrap: balance;
}

.property-detail-overview-heading h2 {
    max-width: 860px;
}

.property-detail-overview-copy {
    align-self: end;
    padding-left: clamp(0px, 3vw, 60px);
    border-left: 1px solid rgba(214, 28, 40, .5);
}

.property-detail-overview-copy p {
    margin: 0;
    color: #aaa5a2;
    font-size: clamp(.98rem, 1.2vw, 1.16rem);
    line-height: 1.85;
}

.property-detail-overview-copy .property-detail-lead {
    margin-bottom: 28px;
    color: #eee9e3;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(1.4rem, 2vw, 2.05rem);
    line-height: 1.45;
}

.property-detail-facts {
    width: min(1500px, 88vw);
    margin: 0 auto clamp(110px, 12vw, 190px);
    padding: clamp(32px, 4vw, 58px) 0;
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    border-top: 1px solid rgba(255, 255, 255, .16);
    border-bottom: 1px solid rgba(255, 255, 255, .16);
}

.property-detail-facts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.property-detail-facts-grid > div {
    min-height: 112px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 clamp(18px, 3vw, 48px);
    border-right: 1px solid rgba(255, 255, 255, .12);
}

.property-detail-facts-grid > div:first-child {
    padding-left: 0;
}

.property-detail-facts-grid strong {
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(2rem, 3.4vw, 4.2rem);
    font-weight: 400;
    line-height: 1;
}

.property-detail-facts-grid span,
.property-detail-facts-meta span {
    margin-top: 12px;
    color: #8e8986;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.property-detail-facts-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 34px;
    align-items: center;
    padding-left: clamp(30px, 5vw, 80px);
}

.property-detail-facts-meta > div {
    display: flex;
    flex-direction: column;
}

.property-detail-facts-meta strong {
    order: -1;
    color: #ded9d4;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(1.15rem, 1.5vw, 1.55rem);
    font-weight: 400;
    line-height: 1.25;
}

.property-detail-gallery-section,
.property-related {
    width: min(1680px, 92vw);
    margin: 0 auto;
    padding-bottom: clamp(110px, 15vw, 220px);
}

.property-detail-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 50px;
    width: min(1450px, 94%);
    margin: 0 auto clamp(52px, 7vw, 90px);
}

.property-detail-section-heading h2 {
    max-width: 900px;
    font-size: clamp(2.8rem, 5vw, 6rem);
}

.property-detail-section-heading > p,
.property-detail-section-heading > a {
    max-width: 430px;
    color: #96918e;
    font-size: .92rem;
    line-height: 1.7;
}

.property-detail-section-heading > a {
    color: #d91f2b;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .19em;
    text-transform: uppercase;
}

.property-detail-gallery {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 16px;
}

.property-detail-gallery.is-single {
    grid-template-columns: 1fr;
}

.property-gallery-item {
    position: relative;
    min-height: min(72vw, 850px);
    padding: 0;
    overflow: hidden;
    border: 0;
    background: #111;
    cursor: zoom-in;
}

.property-detail-gallery:not(.is-single) .property-gallery-item {
    min-height: 380px;
}

.property-detail-gallery:not(.is-single) .property-gallery-item:first-child {
    grid-row: span 2;
}

.property-gallery-item img {
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0;
    object-fit: cover;
    transition: transform .9s cubic-bezier(.2, .72, .18, 1), filter .5s ease;
}

.property-gallery-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, .55));
    pointer-events: none;
}

.property-gallery-item:hover img {
    transform: scale(1.025);
    filter: brightness(1.06);
}

.property-gallery-item > span {
    position: absolute;
    z-index: 2;
    right: 30px;
    bottom: 26px;
    color: rgba(255, 255, 255, .72);
    font-size: .65rem;
    letter-spacing: .18em;
}

.property-gallery-item > span b {
    color: #fff;
    font-family: var(--font-display, Georgia, serif);
    font-size: 1.6rem;
    font-weight: 400;
}

.property-detail-private-cta {
    position: relative;
    width: 100%;
    grid-template-columns: minmax(0, 1.15fr) minmax(330px, .65fr);
    padding-left: 7vw;
    padding-right: 7vw;
    background:
        linear-gradient(105deg, rgba(62, 4, 10, .5), transparent 48%),
        #0b0b0b;
    border-top: 1px solid rgba(199, 25, 37, .34);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.property-detail-private-cta::before {
    content: "PRIVATE";
    position: absolute;
    right: 2vw;
    bottom: -3vw;
    color: rgba(255, 255, 255, .018);
    font-family: var(--font-display, Georgia, serif);
    font-size: 17vw;
    line-height: 1;
    pointer-events: none;
}

.property-detail-private-cta h2 {
    max-width: 940px;
    font-size: clamp(3rem, 5.4vw, 6.5rem);
}

.property-detail-private-cta > div:last-child {
    position: relative;
    z-index: 1;
    align-self: end;
}

.property-detail-private-cta p {
    margin: 0 0 32px;
    color: #aaa5a2;
    font-size: 1rem;
    line-height: 1.75;
}

.property-detail-contact {
    min-height: 78px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 0 28px;
    border: 1px solid #b91723;
    color: #fff;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .19em;
    text-transform: uppercase;
    transition: background .25s ease, border-color .25s ease;
}

.property-detail-contact:hover {
    background: #b91723;
    border-color: #d61f2b;
}

.property-detail-contact span {
    color: #ee2733;
    font-size: 1.15rem;
    transition: color .25s ease, transform .25s ease;
}

.property-detail-contact:hover span {
    color: #fff;
    transform: translateX(4px);
}

.property-detail-official {
    display: inline-block;
    margin-top: 22px;
    color: #8d8885;
    font-size: .64rem;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.property-detail-official:hover {
    color: #fff;
}

.property-related {
    padding-top: clamp(110px, 14vw, 200px);
}

.property-related-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.property-related-card {
    display: block;
    color: #fff;
}

.property-related-image {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #111;
}

.property-related-image::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid rgba(255, 255, 255, .08);
    box-shadow: inset 0 0 80px rgba(0, 0, 0, .25);
}

.property-related-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.2, .72, .18, 1);
}

.property-related-card:hover .property-related-image img {
    transform: scale(1.035);
}

.property-related-card > div:last-child {
    padding: 25px 4px 0;
}

.property-related-card span {
    display: block;
    color: #9b9693;
    font-size: .62rem;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.property-related-card h3 {
    margin: 10px 0 12px;
    font-family: var(--font-display, Georgia, serif);
    font-size: clamp(1.55rem, 2.2vw, 2.6rem);
    font-weight: 400;
    line-height: 1.05;
}

.property-related-card strong {
    color: #d91f2b;
    font-family: var(--font-display, Georgia, serif);
    font-size: 1.35rem;
    font-weight: 400;
}

.property-lightbox {
    position: fixed;
    z-index: 10000;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5vw;
    background: rgba(0, 0, 0, .96);
    opacity: 0;
    visibility: hidden;
    transition: opacity .28s ease, visibility .28s ease;
}

.property-lightbox.is-open {
    opacity: 1;
    visibility: visible;
}

.property-lightbox figure {
    width: min(86vw, 1500px);
    height: min(78vh, 940px);
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.property-lightbox figure img {
    max-width: 100%;
    max-height: calc(100% - 45px);
    object-fit: contain;
}

.property-lightbox figcaption {
    margin-top: 20px;
    color: #a8a29f;
    font-size: .62rem;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.property-lightbox-close,
.property-lightbox-nav {
    position: absolute;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 50%;
    background: rgba(0, 0, 0, .32);
    color: #fff;
    cursor: pointer;
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    transition: background .25s ease, border-color .25s ease, transform .25s ease;
}

.property-lightbox-close {
    top: 28px;
    right: 32px;
    width: 56px;
    height: 56px;
    font-size: 1.8rem;
    font-weight: 200;
}

.property-lightbox-nav {
    top: 50%;
    width: 68px;
    height: 68px;
    transform: translateY(-50%);
}

.property-lightbox-nav svg {
    width: 28px;
    height: 28px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.35;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.property-lightbox-close:hover,
.property-lightbox-close:focus-visible,
.property-lightbox-nav:hover,
.property-lightbox-nav:focus-visible {
    border-color: rgba(255, 255, 255, .7);
    background: #b91824;
    outline: 0;
}

.property-lightbox-nav:hover,
.property-lightbox-nav:focus-visible {
    transform: translateY(-50%) scale(1.06);
}

.property-lightbox-prev { left: clamp(20px, 3vw, 54px); }
.property-lightbox-next { right: clamp(20px, 3vw, 54px); }

@media (min-width: 1500px) {
    .property-detail-hero-copy {
        padding-right: 170px;
    }

    .property-detail-index {
        display: flex;
    }
}

@media (max-width: 1050px) {
    .property-detail-overview,
    .property-detail-private-cta {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .property-detail-overview-copy {
        max-width: 760px;
        padding-left: 30px;
    }

    .property-detail-facts {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .property-detail-facts-meta {
        padding: 38px 0 0;
        border-top: 1px solid rgba(255, 255, 255, .1);
    }
}

@media (max-width: 760px) {
    .property-detail-hero {
        min-height: 92svh;
    }

    .property-detail-hero-image {
        object-position: center center;
    }

    .property-detail-slider-controls {
        inset: 0;
    }

    .property-detail-slider-arrow {
        width: 54px;
        height: 54px;
    }

    .property-detail-slider-prev {
        left: 12px;
    }

    .property-detail-slider-next {
        right: 12px;
    }

    .property-detail-slider-arrow svg {
        width: 23px;
        height: 23px;
    }

    .property-detail-slider-status {
        right: 16px;
        bottom: 22px;
        min-height: 40px;
        gap: 10px;
        padding: 8px 12px;
    }

    .property-detail-slider-progress {
        width: 44px;
    }

    .property-detail-hero-shade {
        background: linear-gradient(180deg, rgba(2, 3, 4, .35), rgba(2, 3, 4, .12) 32%, rgba(2, 3, 4, .65) 65%, #050505 100%);
    }

    .property-detail-back {
        top: 104px;
        left: 20px;
        font-size: .58rem;
    }

    .property-detail-hero-copy {
        width: calc(100% - 38px);
        padding-bottom: 42px;
    }

    .property-detail-status {
        margin-bottom: 13px;
        font-size: .58rem;
    }

    .property-detail-location {
        font-size: .66rem;
        line-height: 1.55;
    }

    .property-detail-hero h1 {
        max-width: 96%;
        font-size: clamp(2.8rem, 13vw, 4.5rem);
        line-height: .94;
    }

    .property-detail-hero-bottom {
        align-items: center;
        margin-top: 24px;
        padding-top: 18px;
    }

    .property-detail-hero-bottom > a {
        width: 42px;
        height: 42px;
        justify-content: center;
        border: 1px solid rgba(255, 255, 255, .24);
        border-radius: 50%;
        font-size: 0;
    }

    .property-detail-hero-bottom > a span {
        font-size: 1rem;
    }

    .property-detail-overview,
    .property-detail-private-cta {
        width: calc(100% - 38px);
        padding: 88px 0;
    }

    .property-detail-overview-heading h2,
    .property-detail-section-heading h2,
    .property-detail-private-cta h2 {
        margin-top: 20px;
        font-size: clamp(2.65rem, 12vw, 4.2rem);
        line-height: 1;
    }

    .property-detail-overview-copy {
        padding-left: 20px;
    }

    .property-detail-overview-copy .property-detail-lead {
        font-size: 1.4rem;
    }

    .property-detail-facts {
        width: calc(100% - 38px);
        margin-bottom: 96px;
        padding: 10px 0 28px;
    }

    .property-detail-facts-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .property-detail-facts-grid > div {
        min-height: 102px;
        padding: 0 12px;
    }

    .property-detail-facts-grid > div:first-child {
        padding-left: 0;
    }

    .property-detail-facts-grid strong {
        font-size: clamp(1.5rem, 7vw, 2.25rem);
    }

    .property-detail-facts-grid span,
    .property-detail-facts-meta span {
        font-size: .51rem;
        letter-spacing: .13em;
    }

    .property-detail-facts-meta {
        grid-template-columns: 1fr;
        gap: 28px;
    }

    .property-detail-gallery-section,
    .property-related {
        width: 100%;
        padding-bottom: 96px;
    }

    .property-detail-section-heading {
        width: calc(100% - 38px);
        display: block;
        margin-bottom: 36px;
    }

    .property-detail-section-heading > p,
    .property-detail-section-heading > a {
        display: block;
        margin-top: 24px;
    }

    .property-gallery-item {
        min-height: 68svh;
    }

    .property-detail-gallery {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .property-detail-gallery:not(.is-single) .property-gallery-item,
    .property-detail-gallery:not(.is-single) .property-gallery-item:first-child {
        min-height: 58svh;
        grid-row: auto;
    }

    .property-gallery-item > span {
        right: 20px;
        bottom: 18px;
    }

    .property-detail-private-cta {
        width: 100%;
        padding: 90px 19px;
    }

    .property-detail-contact {
        min-height: 72px;
        padding: 0 20px;
        font-size: .62rem;
    }

    .property-related {
        padding-top: 96px;
    }

    .property-related-grid {
        display: flex;
        gap: 14px;
        padding: 0 19px 10px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .property-related-grid::-webkit-scrollbar { display: none; }

    .property-related-card {
        flex: 0 0 82vw;
        scroll-snap-align: start;
    }

    .property-related-card h3 {
        font-size: 1.8rem;
    }

    .property-lightbox {
        padding: 70px 14px 30px;
    }

    .property-lightbox figure {
        width: 100%;
        height: 80vh;
    }

    .property-lightbox-close {
        top: 14px;
        right: 14px;
        width: 46px;
        height: 46px;
    }

    .property-lightbox-nav {
        top: 50%;
        bottom: auto;
        width: 54px;
        height: 54px;
    }

    .property-lightbox-prev { left: 10px; }
    .property-lightbox-next { right: 10px; }
}

@media (max-width: 420px) {
    .property-detail-facts-grid {
        grid-template-columns: 1fr;
    }

    .property-detail-facts-grid > div,
    .property-detail-facts-grid > div:first-child {
        min-height: 86px;
        padding: 18px 0;
        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .1);
    }
}

/* =========================================================
   OFFICIAL IDX PORTFOLIO — 2026 REFRESH
========================================================= */

.property-search-field {
    display: block;
    width: min(100%, 340px);
}

.property-search-field input {
    width: 100%;
    min-height: 48px;
    padding: 0 16px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 0;
    outline: none;
    background: rgba(255, 255, 255, 0.025);
    color: #f5f2ed;
    font: inherit;
    letter-spacing: 0.04em;
    transition: border-color 180ms ease, background-color 180ms ease;
}

.property-search-field input::placeholder {
    color: rgba(255, 255, 255, 0.42);
}

.property-search-field input:focus {
    border-color: #d41f2b;
    background: rgba(212, 31, 43, 0.055);
}

.listing-official-image,
.property-official-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.listing-image-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    min-height: inherit;
    gap: 18px;
    background:
        radial-gradient(circle at 50% 38%, rgba(126, 21, 27, 0.22), transparent 32%),
        linear-gradient(145deg, #171719 0%, #080809 72%);
}

.listing-image-placeholder::after {
    content: "";
    position: absolute;
    inset: 14px;
    border: 1px solid rgba(255, 255, 255, 0.07);
    pointer-events: none;
}

.listing-image-placeholder img {
    width: 72px !important;
    height: 72px !important;
    object-fit: contain !important;
    opacity: 0.72;
}

.listing-image-placeholder span {
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.24em;
    text-transform: uppercase;
}

.listing-status.active-under-contract,
.property-badge-active-under-contract {
    color: #f1c68a;
}

.listing-status.active-under-contract::before,
.property-badge-active-under-contract::before {
    background: #f1c68a;
}

.listing-specs-unavailable {
    min-width: 100%;
    justify-content: flex-start !important;
    color: rgba(255, 255, 255, 0.66);
    font-size: 0.7rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.official-listings-footer {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
    padding: 62px 24px 36px;
}

.official-listings-summary {
    margin: 0;
    color: rgba(255, 255, 255, 0.52);
    font-size: 0.72rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.official-listings-load-more,
.official-listings-more {
    min-width: 260px;
    min-height: 58px;
    border: 1px solid rgba(212, 31, 43, 0.8);
    background: transparent;
    color: #fff;
    cursor: pointer;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    transition: background-color 180ms ease, color 180ms ease;
}

.official-listings-load-more:hover,
.official-listings-load-more:focus-visible,
.official-listings-more:hover,
.official-listings-more:focus-visible {
    background: #d41f2b;
    color: #fff;
}

.official-listings-load-more[hidden],
.official-listings-more[hidden] {
    display: none;
}

.idx-listing-disclaimer {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 24px 72px;
    color: rgba(255, 255, 255, 0.32);
    font-size: 0.68rem;
    line-height: 1.7;
    text-align: center;
}

.official-listings-empty {
    grid-column: 1 / -1;
    min-height: 340px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.09);
    text-align: center;
}

.official-listings-empty span {
    color: #f5f2ed;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.8rem, 3vw, 3rem);
}

.official-listings-empty p {
    color: rgba(255, 255, 255, 0.5);
}

.listing-showcase-card {
    content-visibility: auto;
    contain-intrinsic-size: 520px;
}

@media (max-width: 760px) {
    .property-search-field {
        width: 100%;
    }

    .official-listings-footer {
        padding-top: 42px;
    }

    .official-listings-load-more,
    .official-listings-more {
        width: 100%;
    }

    .idx-listing-disclaimer {
        padding-bottom: 50px;
    }
}

/* =========================================================
   SITE FOOTER — FINAL PREMIUM REDESIGN
========================================================= */

.site-footer {
    position: relative;

    isolation: isolate;

    padding:
        0
        var(--page-padding)
        28px;

    overflow: hidden;

    border-top: 1px solid rgba(220, 39, 46, .34);

    background:
        radial-gradient(
            circle at 8% 30%,
            rgba(164, 22, 26, .12),
            transparent 28%
        ),
        radial-gradient(
            circle at 86% 12%,
            rgba(255, 255, 255, .035),
            transparent 23%
        ),
        linear-gradient(
            180deg,
            #0a0a0b 0%,
            #050505 100%
        );
}


.site-footer::before {
    content: "";

    position: absolute;
    top: 0;
    left: 50%;

    z-index: -1;

    width: min(72vw, 1050px);
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(230, 41, 48, .95),
            transparent
        );

    transform: translateX(-50%);
}


.site-footer::after {
    content: "OGROUP";

    position: absolute;
    right: -2vw;
    bottom: 72px;

    z-index: -1;

    color: rgba(255, 255, 255, .01);

    font-family: var(--font-heading);
    font-size: clamp(9rem, 18vw, 21rem);
    font-weight: 300;
    letter-spacing: -.08em;
    line-height: .7;

    pointer-events: none;
}


.footer-cta {
    position: relative;

    width: min(100%, var(--content-width));

    margin: 0 auto;
    padding:
        clamp(72px, 7vw, 108px)
        0
        clamp(65px, 6vw, 92px);

    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(360px, .62fr);

    gap: clamp(60px, 9vw, 145px);
    align-items: end;

    border-bottom: 1px solid rgba(255, 255, 255, .1);
}


.footer-cta-copy {
    max-width: 900px;
}


.footer-cta-kicker {
    display: flex;
    align-items: center;

    gap: 16px;

    color: #e12a31;

    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .28em;
    line-height: 1.4;

    text-transform: uppercase;
}


.footer-cta-kicker::before {
    content: "";

    width: 42px;
    height: 1px;

    background: #e12a31;
}


.footer-cta h2 {
    margin: 27px 0 0;

    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(3.7rem, 5.25vw, 6.2rem);
    font-weight: 300;
    letter-spacing: -.045em;
    line-height: .9;

    text-wrap: balance;
}


.footer-cta h2 em {
    display: block;

    margin-top: 8px;

    color: #d6242b;

    font-style: italic;
    font-weight: 300;
}


.footer-cta-action {
    padding-bottom: 5px;
}


.footer-cta-action > p {
    max-width: 470px;

    margin: 0 0 28px;

    color: rgba(255, 255, 255, .53);

    font-size: .87rem;
    line-height: 1.8;
}


.footer-cta-button {
    min-height: 64px;

    padding: 0 22px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    color: #fff;

    border: 1px solid rgba(216, 35, 42, .85);

    background:
        linear-gradient(
            90deg,
            rgba(164, 22, 26, .16),
            rgba(164, 22, 26, .03)
        );

    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .2em;

    text-transform: uppercase;

    transition:
        background .35s ease,
        transform .35s ease,
        border-color .35s ease;
}


.footer-cta-button > span {
    color: #ed3037;

    font-size: 1.15rem;

    transition:
        color .35s ease,
        transform .35s ease;
}


.footer-cta-button:hover {
    border-color: #e42b32;

    background: #b51b21;

    transform: translateY(-2px);
}


.footer-cta-button:hover > span {
    color: #fff;

    transform: translateX(5px);
}


.site-footer .footer-inner {
    position: relative;

    z-index: 1;

    width: min(100%, var(--content-width));

    margin: 0 auto;
    padding:
        clamp(50px, 4.2vw, 68px)
        0
        clamp(42px, 3.4vw, 56px);

    display: grid;
    grid-template-columns: minmax(300px, 1.35fr) .7fr .86fr .72fr;

    gap: clamp(36px, 4.2vw, 66px);
}


.site-footer .footer-brand {
    max-width: 440px;
}


.site-footer .footer-monogram {
    width: 70px;
    height: 70px;

    display: grid;
    place-items: center;

    color: #f5f3ef;

    border: 1px solid rgba(222, 40, 47, .65);
    border-radius: 50%;

    background:
        radial-gradient(
            circle at 35% 30%,
            rgba(216, 35, 42, .15),
            transparent 62%
        );

    font-family: var(--font-heading);
    font-size: 1.35rem;
    font-weight: 400;
    letter-spacing: .08em;
    line-height: 1;

    text-shadow: none;

    transition:
        color .35s ease,
        background .35s ease,
        transform .45s cubic-bezier(.22, 1, .36, 1);
}


.site-footer .footer-monogram::after {
    display: none;
}


.site-footer .footer-brand:hover .footer-monogram {
    color: #fff;

    background: rgba(181, 27, 33, .85);

    transform: rotate(-7deg);
}


.site-footer .footer-brand h3 {
    max-width: 390px;

    margin: 25px 0 0;

    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(2rem, 2.25vw, 2.7rem);
    font-weight: 300;
    letter-spacing: -.015em;
    line-height: 1.02;
}


.site-footer .footer-brand h3 span {
    color: #db282f;

    font-style: italic;
}


.site-footer .footer-brand p {
    margin-top: 18px;

    color: rgba(255, 255, 255, .58);

    font-size: .7rem;
    font-weight: 500;
    letter-spacing: .17em;
    line-height: 1.9;

    text-transform: uppercase;
}


.site-footer .footer-column {
    position: relative;

    padding-left: clamp(22px, 2.3vw, 38px);

    border-left: 1px solid rgba(255, 255, 255, .065);
}


.site-footer .footer-column::before {
    display: none;
}


.site-footer .footer-column h4 {
    margin: 0 0 24px;

    color: rgba(255, 255, 255, .94);

    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .25em;

    text-transform: uppercase;
}


.site-footer .footer-column a,
.site-footer .footer-column p {
    width: fit-content;

    margin: 0 0 13px;

    color: rgba(255, 255, 255, .66);

    font-size: .91rem;
    line-height: 1.6;

    transition:
        color .3s ease,
        transform .3s ease;
}


.site-footer .footer-column a::after {
    bottom: -1px;

    background: linear-gradient(90deg, #e32932, rgba(227, 41, 50, .32));
}


.site-footer .footer-column a:hover,
.site-footer .footer-column a:focus-visible {
    color: #fff;

    transform: translateX(4px);

    outline: 0;
}


.site-footer .footer-column a:focus-visible::after {
    transform: scaleX(1);
    transform-origin: left;
}


.site-footer .footer-bottom {
    position: relative;

    z-index: 1;

    width: min(100%, var(--content-width));

    margin: 0 auto;
    padding-top: 24px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 24px;

    border-top: 1px solid rgba(255, 255, 255, .08);
}


.site-footer .footer-bottom p {
    margin: 0;

    color: rgba(255, 255, 255, .48);

    font-size: .69rem;
    letter-spacing: .1em;
    line-height: 1.6;
}


@media (max-width: 1050px) {

    .footer-cta {
        grid-template-columns: 1fr;

        gap: 42px;
    }


    .footer-cta-action {
        max-width: 520px;
    }


    .site-footer .footer-inner {
        grid-template-columns: 1.25fr 1fr;

        row-gap: 55px;
    }


    .site-footer .footer-column:nth-of-type(3) {
        border-left: 0;
    }
}


@media (max-width: 680px) {

    .site-footer {
        padding:
            0
            20px
            25px;
    }


    .site-footer::after {
        right: -18px;
        bottom: 165px;

        font-size: 8rem;
    }


    .footer-cta {
        padding:
            68px
            0
            62px;

        gap: 34px;
    }


    .footer-cta-kicker {
        gap: 12px;

        font-size: .55rem;
        letter-spacing: .22em;
    }


    .footer-cta-kicker::before {
        width: 30px;
    }


    .footer-cta h2 {
        margin-top: 23px;

        font-size: clamp(3.2rem, 15vw, 4.6rem);
    }


    .footer-cta-action > p {
        font-size: .82rem;
    }


    .footer-cta-button {
        min-height: 62px;

        font-size: .57rem;
    }


    .site-footer .footer-inner {
        padding:
            56px
            0
            48px;

        grid-template-columns: 1fr;

        gap: 0;
    }


    .site-footer .footer-brand {
        padding-bottom: 45px;
    }


    .site-footer .footer-column,
    .site-footer .footer-column:nth-of-type(3) {
        padding:
            28px
            0;

        border-top: 1px solid rgba(255, 255, 255, .08);
        border-left: 0;
    }


    .site-footer .footer-column h4 {
        margin-bottom: 18px;
    }


    .site-footer .footer-bottom {
        padding-top: 22px;

        flex-direction: column;
        align-items: flex-start;

        gap: 9px;
    }
}


/* =========================================================
   AGENT BIOGRAPHIES — REZA & ANDREW
========================================================= */

.biography-page {
    background: #070707;
}


.biography-kicker {
    display: flex;
    align-items: center;

    gap: 16px;

    color: #e12a31;

    font-size: .67rem;
    font-weight: 600;
    letter-spacing: .28em;
    line-height: 1.4;

    text-transform: uppercase;
}


.biography-kicker::before {
    content: "";

    width: 43px;
    height: 1px;

    flex: 0 0 auto;

    background: #e12a31;
}


/* HERO */

.biography-hero {
    position: relative;

    min-height: 100vh;
    min-height: 100svh;

    overflow: hidden;

    background: #050505;
}


.biography-hero-background,
.biography-hero-overlay {
    position: absolute;
    inset: 0;
}


.biography-hero-background {
    z-index: 0;

    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;

    filter:
        brightness(.78)
        contrast(1.05)
        saturate(.92);

    transform: scale(1.015);

    transition: transform 7s cubic-bezier(.22, 1, .36, 1);
}


.biography-page-reza .biography-hero-background {
    background-image: url("../images/agents/reza-home-20260929.webp");
    background-position: center center;
}


.biography-page-andrew .biography-hero-background {
    background-image: url("../images/agents/andrew-home-20260929.webp");
    background-position: center center;
}


.biography-hero:hover .biography-hero-background {
    transform: scale(1.045);
}


.biography-hero-overlay {
    z-index: 1;
}


.biography-back-home {
    position: absolute;
    z-index: 3;
    top: clamp(112px, 13vh, 148px);
    left: var(--page-padding);

    display: inline-flex;
    align-items: center;
    gap: 13px;

    color: rgba(255, 255, 255, .72);

    font-size: .65rem;
    font-weight: 600;
    letter-spacing: .2em;

    text-transform: uppercase;

    transition: color .28s ease;
}


.biography-back-home span {
    width: 38px;
    height: 38px;

    display: grid;
    place-items: center;

    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 50%;

    background: rgba(5, 5, 6, .3);
    color: #e02730;

    font-size: 1rem;

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);

    transition:
        color .28s ease,
        background .28s ease,
        border-color .28s ease,
        transform .28s ease;
}


.biography-back-home:hover,
.biography-back-home:focus-visible {
    color: #fff;
    outline: 0;
}


.biography-back-home:hover span,
.biography-back-home:focus-visible span {
    border-color: #c51d27;
    background: #b91824;
    color: #fff;
    transform: translateX(-4px);
}


.biography-page-reza .biography-hero-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(3, 3, 4, .14) 0%,
            rgba(3, 3, 4, .18) 38%,
            rgba(3, 3, 4, .9) 65%,
            rgba(3, 3, 4, .97) 100%
        ),
        linear-gradient(
            to bottom,
            rgba(3, 3, 4, .42),
            transparent 34%,
            rgba(3, 3, 4, .68)
        );
}


.biography-page-andrew .biography-hero-overlay {
    background:
        linear-gradient(
            90deg,
            rgba(3, 3, 4, .96) 0%,
            rgba(3, 3, 4, .88) 38%,
            rgba(3, 3, 4, .16) 67%,
            rgba(3, 3, 4, .2) 100%
        ),
        linear-gradient(
            to bottom,
            rgba(3, 3, 4, .42),
            transparent 34%,
            rgba(3, 3, 4, .68)
        );
}


.biography-hero-content {
    position: relative;

    z-index: 2;

    width: min(100%, var(--content-width));
    min-height: 100vh;
    min-height: 100svh;

    margin: 0 auto;
    padding:
        clamp(135px, 16vh, 185px)
        var(--page-padding)
        clamp(95px, 11vh, 125px);

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    column-gap: clamp(75px, 10vw, 165px);
    align-content: center;
}


.biography-hero-copy {
    max-width: 700px;
}


.biography-page-reza .biography-hero-copy,
.biography-page-reza .biography-hero-stats {
    grid-column: 2;
}


.biography-page-andrew .biography-hero-copy,
.biography-page-andrew .biography-hero-stats {
    grid-column: 1;
}


.biography-hero-copy h1 {
    margin: clamp(25px, 3vh, 35px) 0 0;

    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(5.2rem, 7.7vw, 8.8rem);
    font-weight: 300;
    letter-spacing: -.055em;
    line-height: .78;

    text-shadow:
        0 4px 20px rgba(0, 0, 0, .5),
        0 24px 60px rgba(0, 0, 0, .35);
}


.biography-hero-copy h1 span {
    display: block;

    margin-top: 17px;

    color: #d5232a;
}


.biography-hero-tagline {
    margin-top: clamp(30px, 4vh, 44px);

    color: rgba(255, 255, 255, .94);

    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 2.45vw, 2.8rem);
    font-style: italic;
    font-weight: 300;
    line-height: 1.12;
}


.biography-hero-tagline span {
    display: block;

    margin-top: 5px;

    color: #dc282f;
}


.biography-license {
    margin-top: 14px;

    color: rgba(255, 255, 255, .55);

    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .18em;
    line-height: 1.4;
    text-transform: uppercase;
}


.biography-hero-intro {
    max-width: 590px;

    margin-top: 24px;

    color: rgba(255, 255, 255, .58);

    font-size: .91rem;
    line-height: 1.8;

    text-shadow: 0 2px 12px rgba(0, 0, 0, .62);
}


.biography-primary-button {
    width: min(100%, 285px);
    min-height: 65px;

    margin-top: 35px;
    padding: 0 24px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    color: #fff;

    border: 1px solid rgba(220, 39, 46, .85);

    background: rgba(7, 7, 8, .48);

    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .2em;

    text-transform: uppercase;

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    transition:
        background .35s ease,
        transform .35s ease,
        border-color .35s ease;
}


.biography-primary-button > span {
    color: #ec3037;

    font-size: 1.15rem;

    transition:
        color .35s ease,
        transform .35s ease;
}


.biography-primary-button:hover {
    border-color: #e32a31;

    background: #b51b21;

    transform: translateY(-2px);
}


.biography-primary-button:hover > span {
    color: #fff;

    transform: translateX(5px);
}


.biography-hero-stats {
    margin-top: clamp(36px, 5vh, 52px);

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    border-top: 1px solid rgba(255, 255, 255, .14);
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}


.biography-hero-stats > div {
    min-height: 92px;

    padding: 18px 15px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    border-right: 1px solid rgba(255, 255, 255, .1);
}


.biography-hero-stats > div:first-child {
    padding-left: 0;
}


.biography-hero-stats > div:last-child {
    border-right: 0;
}


.biography-hero-stats strong {
    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(1.65rem, 2.15vw, 2.5rem);
    font-weight: 300;
    line-height: 1;
}


.biography-hero-stats span {
    margin-top: 10px;

    color: rgba(255, 255, 255, .4);

    font-size: .52rem;
    font-weight: 600;
    letter-spacing: .13em;
    line-height: 1.45;

    text-transform: uppercase;
}


.biography-scroll {
    position: absolute;
    right: var(--page-padding);
    bottom: 28px;

    z-index: 3;

    display: flex;
    align-items: center;

    gap: 13px;

    color: rgba(255, 255, 255, .43);
}


.biography-scroll span {
    font-size: .52rem;
    font-weight: 600;
    letter-spacing: .2em;

    text-transform: uppercase;
}


.biography-scroll i {
    color: #dd272e;

    font-size: .9rem;
    font-style: normal;

    animation: biographyScrollHint 1.8s ease-in-out infinite;
}


@keyframes biographyScrollHint {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(5px); }
}


/* BIOGRAPHY STORY */

.biography-story {
    position: relative;

    width: min(100%, 1480px);

    margin: 0 auto;
    padding:
        clamp(115px, 11vw, 180px)
        var(--page-padding);

    display: grid;
    grid-template-columns: minmax(420px, .84fr) minmax(0, 1.16fr);

    gap: clamp(70px, 9vw, 145px);
    align-items: center;
}


.biography-story::before {
    content: "BIOGRAPHY";

    position: absolute;
    top: 50px;
    left: 50%;

    color: rgba(255, 255, 255, .017);

    font-family: var(--font-heading);
    font-size: clamp(7rem, 15vw, 17rem);
    font-weight: 300;
    letter-spacing: -.065em;
    line-height: .8;

    white-space: nowrap;

    transform: translateX(-50%);

    pointer-events: none;
}


.biography-story-visual,
.biography-story-content {
    position: relative;

    z-index: 1;
}


.biography-story-visual {
    min-width: 0;
}


.biography-story-frame {
    position: relative;

    height: clamp(620px, 72vw, 830px);

    overflow: hidden;

    border: 1px solid rgba(255, 255, 255, .11);

    background:
        radial-gradient(
            circle at 50% 34%,
            rgba(34, 47, 78, .7),
            #070708 67%
        );

    box-shadow: 0 35px 90px rgba(0, 0, 0, .32);
}


.biography-story-frame::before,
.biography-story-frame::after {
    content: "";

    position: absolute;

    z-index: 2;

    width: 65px;
    height: 65px;

    pointer-events: none;
}


.biography-story-frame::before {
    top: -1px;
    left: -1px;

    border-top: 1px solid #d9272e;
    border-left: 1px solid #d9272e;
}


.biography-story-frame::after {
    right: -1px;
    bottom: -1px;

    border-right: 1px solid #d9272e;
    border-bottom: 1px solid #d9272e;
}


.biography-story-frame img {
    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;

    filter:
        brightness(.86)
        contrast(1.03)
        saturate(.9);

    transition:
        transform 1s cubic-bezier(.22, 1, .36, 1),
        filter .6s ease;
}


.biography-story:hover .biography-story-frame img {
    filter:
        brightness(.95)
        contrast(1.02)
        saturate(.96);

    transform: scale(1.025);
}


.biography-page-reza .biography-story-frame img {
    object-position: 51% center;
}


.biography-page-andrew .biography-story-frame {
    background:
        radial-gradient(
            circle at 52% 30%,
            rgba(42, 55, 87, .8),
            #060607 67%
        );
}


.biography-page-andrew .biography-story-frame img {
    object-fit: cover;
    object-position: center bottom;

    transform: scale(1.08);
}


.biography-page-andrew .biography-story:hover
.biography-story-frame img {
    transform: scale(1.115);
}


.biography-story-signature {
    position: absolute;
    right: -31px;
    bottom: 36px;

    z-index: 3;

    color: rgba(255, 255, 255, .12);

    font-family: var(--font-heading);
    font-size: clamp(5rem, 8vw, 9rem);
    font-weight: 300;
    letter-spacing: -.1em;
    line-height: .7;

    pointer-events: none;
}


.biography-story-content {
    max-width: 720px;
}


.biography-story-content h2,
.biography-section-heading h2,
.biography-closing h2 {
    margin: 29px 0 0;

    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(4rem, 5.75vw, 6.7rem);
    font-weight: 300;
    letter-spacing: -.045em;
    line-height: .92;

    text-wrap: balance;
}


.biography-story-content h2 span,
.biography-section-heading h2 span,
.biography-closing h2 span {
    display: block;

    margin-top: 9px;

    color: #d52229;
}


.biography-story-copy {
    margin-top: clamp(35px, 4vw, 50px);
}


.biography-story-copy p {
    color: rgba(255, 255, 255, .55);

    font-size: .92rem;
    line-height: 1.88;
}


.biography-story-copy p + p {
    margin-top: 18px;
}


.biography-story-copy .biography-story-lead {
    color: rgba(255, 255, 255, .86);

    font-family: var(--font-heading);
    font-size: clamp(1.55rem, 2vw, 2.15rem);
    font-weight: 300;
    line-height: 1.38;
}


.biography-story-content blockquote {
    margin-top: 35px;
    padding: 2px 0 2px 25px;

    color: rgba(255, 255, 255, .76);

    border-left: 1px solid #cf2027;

    font-family: var(--font-heading);
    font-size: clamp(1.3rem, 1.75vw, 1.9rem);
    font-style: italic;
    line-height: 1.45;
}


.biography-text-link {
    width: fit-content;

    margin-top: 38px;

    display: flex;
    align-items: center;

    gap: 32px;

    color: rgba(255, 255, 255, .9);

    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .18em;

    text-transform: uppercase;

    transition: color .3s ease;
}


.biography-text-link > span {
    color: #e42b32;

    font-size: 1.1rem;

    transition: transform .3s ease;
}


.biography-text-link:hover {
    color: #e42b32;
}


.biography-text-link:hover > span {
    transform: translateX(6px);
}


.biography-page-andrew .biography-story {
    grid-template-columns: minmax(0, 1.16fr) minmax(420px, .84fr);
}


.biography-page-andrew .biography-story-visual {
    grid-column: 2;
    grid-row: 1;
}


.biography-page-andrew .biography-story-content {
    grid-column: 1;
    grid-row: 1;
}


.biography-page-andrew .biography-story-signature {
    right: auto;
    left: -31px;
}


/* EXPERTISE */

.biography-expertise {
    padding:
        clamp(110px, 11vw, 175px)
        var(--page-padding)
        clamp(120px, 12vw, 190px);

    background:
        radial-gradient(
            circle at 8% 20%,
            rgba(164, 22, 26, .1),
            transparent 27%
        ),
        linear-gradient(
            to bottom,
            #0a0a0a,
            #060606
        );

    border-top: 1px solid rgba(255, 255, 255, .07);
}


.biography-section-heading {
    width: min(100%, 990px);

    margin: 0 auto clamp(65px, 7vw, 105px);

    text-align: center;
}


.biography-section-heading .biography-kicker {
    justify-content: center;
}


.biography-section-heading h2 {
    font-size: clamp(3.8rem, 5.65vw, 6.5rem);
}


.biography-expertise-grid {
    width: min(100%, 1380px);

    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 22px;
}


.biography-expertise-card {
    position: relative;

    min-height: 370px;

    padding: clamp(38px, 4vw, 57px);

    display: flex;
    flex-direction: column;
    justify-content: flex-end;

    overflow: hidden;

    border: 1px solid rgba(255, 255, 255, .1);

    background:
        linear-gradient(
            145deg,
            rgba(24, 24, 25, .94),
            rgba(8, 8, 8, .99)
        );

    transition:
        border-color .45s ease,
        background .45s ease,
        transform .45s cubic-bezier(.22, 1, .36, 1);
}


.biography-expertise-card::before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;

    width: 0;
    height: 2px;

    background: #dd282f;

    transition: width .55s cubic-bezier(.22, 1, .36, 1);
}


.biography-expertise-card:hover {
    border-color: rgba(221, 40, 47, .48);

    background:
        linear-gradient(
            145deg,
            rgba(44, 15, 17, .94),
            rgba(8, 8, 8, .99)
        );

    transform: translateY(-8px);
}


.biography-expertise-card:hover::before {
    width: 100%;
}


.biography-expertise-number {
    position: absolute;
    top: 29px;
    right: 32px;

    color: rgba(255, 255, 255, .1);

    font-family: var(--font-heading);
    font-size: clamp(3.5rem, 5vw, 5.8rem);
    font-weight: 300;
    line-height: 1;
}


.biography-expertise-card h3 {
    max-width: 370px;

    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(2.45rem, 3.1vw, 3.6rem);
    font-weight: 300;
    letter-spacing: -.035em;
    line-height: 1;
}


.biography-expertise-card h3::after {
    content: "";

    display: block;

    width: 45px;
    height: 1px;

    margin: 22px 0;

    background: #cf2027;
}


.biography-expertise-card p {
    max-width: 370px;

    color: rgba(255, 255, 255, .52);

    font-size: .85rem;
    line-height: 1.8;
}


/* CLOSING CTA */

.biography-closing {
    position: relative;

    min-height: clamp(670px, 84svh, 880px);

    display: grid;
    place-items: center;

    overflow: hidden;

    background: #050505;
}


.biography-closing-background,
.biography-closing-overlay {
    position: absolute;
    inset: 0;
}


.biography-closing-background {
    z-index: 0;

    background:
        url("../images/properties/desert-pavilion-estate.webp?v=20260930")
        center center / cover
        no-repeat;

    filter:
        brightness(.58)
        contrast(1.07)
        saturate(.9);

    transform: scale(1.015);

    transition: transform 6s cubic-bezier(.22, 1, .36, 1);
}


.biography-page-andrew .biography-closing-background {
    background-image:
        url("../images/properties/andrew-coastal-night-estate.webp?v=20260930");
}


.biography-closing:hover .biography-closing-background {
    transform: scale(1.045);
}


.biography-closing-overlay {
    z-index: 1;

    background:
        linear-gradient(
            to bottom,
            rgba(3, 3, 4, .35),
            rgba(3, 3, 4, .48)
        ),
        radial-gradient(
            circle at center,
            transparent,
            rgba(2, 2, 3, .56)
        );
}


.biography-closing-content {
    position: relative;

    z-index: 2;

    width: min(100%, 1080px);

    padding:
        110px
        var(--page-padding);

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;
}


.biography-closing .biography-kicker {
    justify-content: center;
}


.biography-closing h2 {
    font-size: clamp(4rem, 6vw, 6.8rem);

    text-shadow:
        0 4px 18px rgba(0, 0, 0, .52),
        0 20px 55px rgba(0, 0, 0, .35);
}


.biography-closing-content > p {
    margin-top: 29px;

    color: rgba(255, 255, 255, .68);

    font-size: .95rem;
    line-height: 1.8;

    text-shadow: 0 2px 12px rgba(0, 0, 0, .65);
}


.biography-closing-actions {
    margin-top: 39px;

    display: flex;
    align-items: center;

    gap: 34px;
}


.biography-closing-actions .biography-primary-button {
    margin-top: 0;
}


.biography-secondary-link {
    position: relative;

    padding: 12px 0;

    color: rgba(255, 255, 255, .82);

    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .19em;

    text-transform: uppercase;
}


.biography-secondary-link::after {
    content: "";

    position: absolute;
    right: 0;
    bottom: 3px;
    left: 0;

    height: 1px;

    background: #d9282f;

    transform: scaleX(.32);
    transform-origin: left;

    transition: transform .35s ease;
}


.biography-secondary-link:hover::after {
    transform: scaleX(1);
}


/* RESPONSIVE */

@media (max-width: 1100px) {

    .biography-hero-content {
        grid-template-columns: .92fr 1.08fr;

        column-gap: 55px;
    }


    .biography-page-andrew .biography-hero-content {
        grid-template-columns: 1.08fr .92fr;
    }


    .biography-story,
    .biography-page-andrew .biography-story {
        grid-template-columns: minmax(370px, .82fr) minmax(0, 1.18fr);

        gap: 65px;
    }


    .biography-page-andrew .biography-story-visual {
        grid-column: 1;
        grid-row: 1;
    }


    .biography-page-andrew .biography-story-content {
        grid-column: 2;
        grid-row: 1;
    }


    .biography-page-andrew .biography-story-signature {
        right: -31px;
        left: auto;
    }
}


@media (max-width: 900px) {

    .biography-page-reza .biography-hero-background {
        background-position: 38% center;
    }


    .biography-page-andrew .biography-hero-background {
        background-position: 63% center;
    }


    .biography-page-reza .biography-hero-overlay,
    .biography-page-andrew .biography-hero-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(3, 3, 4, .5) 0%,
                rgba(3, 3, 4, .28) 32%,
                rgba(3, 3, 4, .92) 69%,
                rgba(3, 3, 4, .98) 100%
            );
    }


    .biography-hero-content,
    .biography-page-andrew .biography-hero-content {
        grid-template-columns: 1fr;

        align-content: end;
    }


    .biography-page-reza .biography-hero-copy,
    .biography-page-reza .biography-hero-stats,
    .biography-page-andrew .biography-hero-copy,
    .biography-page-andrew .biography-hero-stats {
        grid-column: 1;
    }


    .biography-hero-copy {
        max-width: 680px;
    }


    .biography-hero-stats {
        max-width: 680px;
    }


    .biography-story,
    .biography-page-andrew .biography-story {
        grid-template-columns: 1fr;

        gap: 70px;
    }


    .biography-story-visual,
    .biography-page-andrew .biography-story-visual {
        width: min(100%, 620px);

        grid-column: 1;
        grid-row: 1;
    }


    .biography-story-content,
    .biography-page-andrew .biography-story-content {
        max-width: 720px;

        grid-column: 1;
        grid-row: 2;

        margin-left: auto;
    }


    .biography-expertise-grid {
        grid-template-columns: 1fr;
    }


    .biography-expertise-card {
        min-height: 285px;
    }
}


@media (max-width: 680px) {

    .biography-back-home {
        top: max(88px, calc(72px + env(safe-area-inset-top)));
        left: 18px;
        gap: 10px;
        font-size: .56rem;
        letter-spacing: .16em;
    }


    .biography-back-home span {
        width: 35px;
        height: 35px;
    }

    .biography-kicker {
        gap: 13px;

        font-size: .58rem;
        letter-spacing: .22em;
    }


    .biography-kicker::before {
        width: 31px;
    }


    .biography-hero-content {
        padding:
            118px
            20px
            45px;
    }


    .biography-page-reza .biography-hero-background {
        background-position: 35% center;
    }


    .biography-page-andrew .biography-hero-background {
        background-position: 64% center;
    }


    .biography-hero-copy h1 {
        margin-top: 22px;

        font-size: clamp(4.2rem, 19vw, 6rem);
    }


    .biography-hero-tagline {
        margin-top: 27px;

        font-size: clamp(1.55rem, 7vw, 2rem);
    }


    .biography-hero-intro {
        display: none;
    }


    .biography-primary-button {
        min-height: 61px;

        margin-top: 28px;

        font-size: .59rem;
    }


    .biography-hero-stats {
        margin-top: 30px;
    }


    .biography-hero-stats > div {
        min-height: 75px;

        padding: 12px 7px;

        text-align: center;
    }


    .biography-hero-stats > div:first-child {
        padding-left: 7px;
    }


    .biography-hero-stats strong {
        font-size: clamp(1.4rem, 7vw, 1.85rem);
    }


    .biography-hero-stats span {
        font-size: .43rem;
        letter-spacing: .08em;
    }


    .biography-scroll {
        display: none;
    }


    .biography-story {
        padding:
            88px
            20px
            105px;

        gap: 55px;
    }


    .biography-story::before {
        top: 30px;

        font-size: 5.5rem;
    }


    .biography-story-frame {
        height: clamp(500px, 140vw, 680px);
    }


    .biography-story-signature {
        right: -2px;
        bottom: 25px;

        font-size: 5.2rem;
    }


    .biography-page-andrew .biography-story-signature {
        right: -2px;
    }


    .biography-story-content h2,
    .biography-section-heading h2,
    .biography-closing h2 {
        margin-top: 23px;

        font-size: clamp(3.1rem, 14vw, 4.6rem);
    }


    .biography-story-copy .biography-story-lead {
        font-size: 1.52rem;
    }


    .biography-story-copy p {
        font-size: .86rem;
        line-height: 1.78;
    }


    .biography-expertise {
        padding:
            88px
            14px
            105px;
    }


    .biography-section-heading {
        margin-bottom: 56px;
        padding: 0 6px;
    }


    .biography-expertise-card {
        min-height: 285px;

        padding: 34px 28px;
    }


    .biography-closing {
        min-height: 700px;
    }


    .biography-closing-background {
        background-position: 56% center;
    }


    .biography-closing-content {
        padding:
            100px
            20px;
    }


    .biography-closing-content > p {
        font-size: .88rem;
    }


    .biography-closing-actions {
        width: 100%;

        flex-direction: column;

        gap: 20px;
    }


    .biography-closing-actions .biography-primary-button {
        width: 100%;
    }
}


@media (prefers-reduced-motion: reduce) {

    .biography-hero-background,
    .biography-story-frame img,
    .biography-closing-background,
    .biography-scroll i {
        animation: none;
        transition: none;
    }
}


/* =========================================================
   ABOUT PAGE — COMPLETE PREMIUM EXPERIENCE
========================================================= */

.about-page {
    background: #070707;
}


.about-page-kicker {
    display: flex;
    align-items: center;

    gap: 17px;

    color: #e12a31;

    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .29em;
    line-height: 1.4;

    text-transform: uppercase;
}


.about-page-kicker::before {
    content: "";

    width: 43px;
    height: 1px;

    flex: 0 0 auto;

    background: #e12a31;
}


/* HERO */

.about-page-hero {
    position: relative;

    min-height: 100vh;
    min-height: 100svh;

    display: flex;
    align-items: stretch;

    overflow: hidden;

    background: #080808;
}


.about-page-hero-background,
.about-page-hero-overlay {
    position: absolute;
    inset: 0;
}


.about-page-hero-background {
    z-index: 0;

    background:
        url("../images/properties/laguna-cliff-estate.webp?v=20260930")
        center center / cover
        no-repeat;

    filter:
        brightness(.76)
        contrast(1.04)
        saturate(.9);

    transform: scale(1.015);

    transition: transform 8s cubic-bezier(.22, 1, .36, 1);
}


.about-page-hero:hover .about-page-hero-background {
    transform: scale(1.045);
}


.about-page-hero-overlay {
    z-index: 1;

    background:
        linear-gradient(
            90deg,
            rgba(3, 3, 4, .94) 0%,
            rgba(3, 3, 4, .69) 38%,
            rgba(3, 3, 4, .18) 70%,
            rgba(3, 3, 4, .36) 100%
        ),
        linear-gradient(
            to bottom,
            rgba(4, 4, 5, .45) 0%,
            transparent 32%,
            rgba(4, 4, 5, .74) 100%
        );
}


.about-page-hero-content {
    position: relative;

    z-index: 2;

    width: min(100%, var(--content-width));

    margin: 0 auto;
    padding:
        clamp(145px, 18vh, 205px)
        var(--page-padding)
        clamp(110px, 13vh, 150px);

    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(440px, .9fr);

    gap: clamp(70px, 9vw, 150px);
    align-items: center;
}


.about-page-hero-copy {
    max-width: 820px;
}


.about-page-hero-copy h1 {
    margin: clamp(28px, 3.5vh, 42px) 0 0;

    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(4.6rem, 7.25vw, 8rem);
    font-weight: 300;
    letter-spacing: -.05em;
    line-height: .89;

    text-wrap: balance;

    text-shadow:
        0 4px 20px rgba(0, 0, 0, .46),
        0 26px 65px rgba(0, 0, 0, .36);
}


.about-page-hero-copy h1 span {
    display: block;

    margin-top: 11px;

    color: #d6232a;
}


.about-page-hero-copy > p {
    max-width: 650px;

    margin-top: clamp(30px, 4vh, 44px);

    color: rgba(255, 255, 255, .68);

    font-size: clamp(.94rem, 1.08vw, 1.08rem);
    line-height: 1.85;

    text-shadow: 0 2px 12px rgba(0, 0, 0, .55);
}


.about-page-primary-button {
    width: min(100%, 330px);
    min-height: 68px;

    margin-top: clamp(34px, 4vh, 48px);
    padding: 0 26px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    color: #fff;

    border: 1px solid rgba(218, 34, 41, .86);

    background: rgba(7, 7, 7, .48);

    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .21em;

    text-transform: uppercase;

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    transition:
        background .35s ease,
        transform .35s ease,
        border-color .35s ease;
}


.about-page-primary-button > span {
    color: #ec3037;

    font-size: 1.2rem;

    transition:
        color .35s ease,
        transform .35s ease;
}


.about-page-primary-button:hover {
    border-color: #e12a31;

    background: #b51b21;

    transform: translateY(-2px);
}


.about-page-primary-button:hover > span {
    color: #fff;

    transform: translateX(5px);
}


.about-page-hero-stats {
    align-self: end;

    margin-bottom: clamp(20px, 5vh, 75px);

    border-top: 1px solid rgba(255, 255, 255, .16);
    border-bottom: 1px solid rgba(255, 255, 255, .12);

    background: rgba(7, 7, 8, .42);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}


.about-page-hero-stats > div {
    min-height: 111px;

    padding: 22px 26px;

    display: grid;
    grid-template-columns: minmax(140px, .8fr) 1.2fr;

    gap: 22px;
    align-items: center;

    border-bottom: 1px solid rgba(255, 255, 255, .1);
}


.about-page-hero-stats > div:last-child {
    border-bottom: 0;
}


.about-page-hero-stats strong {
    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(1.45rem, 2.25vw, 2.45rem);
    font-weight: 300;
    letter-spacing: -.035em;
    line-height: 1;

    overflow-wrap: anywhere;
}


.about-page-hero-stats span {
    color: rgba(255, 255, 255, .58);

    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .18em;
    line-height: 1.6;

    text-transform: uppercase;
}


.about-page-scroll {
    position: absolute;
    bottom: 25px;
    left: 50%;

    z-index: 3;

    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 8px;

    color: rgba(255, 255, 255, .48);

    transform: translateX(-50%);
}


.about-page-scroll span {
    font-size: .52rem;
    font-weight: 600;
    letter-spacing: .22em;

    text-transform: uppercase;
}


.about-page-scroll i {
    color: #dd272e;

    font-size: .9rem;
    font-style: normal;

    animation: aboutScrollHint 1.8s ease-in-out infinite;
}


@keyframes aboutScrollHint {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(6px); }
}


/* PHILOSOPHY */

.about-page-intro {
    position: relative;

    width: min(100%, var(--content-width));

    margin: 0 auto;
    padding:
        clamp(115px, 12vw, 190px)
        var(--page-padding);

    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(430px, .78fr);

    gap: clamp(75px, 10vw, 165px);
    align-items: start;
}


.about-page-intro::before {
    content: "STORY";

    position: absolute;
    top: 40px;
    left: var(--page-padding);

    color: rgba(255, 255, 255, .018);

    font-family: var(--font-heading);
    font-size: clamp(9rem, 18vw, 20rem);
    font-weight: 300;
    letter-spacing: -.08em;
    line-height: .8;

    pointer-events: none;
}


.about-page-intro-heading,
.about-page-intro-copy {
    position: relative;

    z-index: 1;
}


.about-page-intro h2,
.about-page-section-heading h2,
.about-page-values-heading h2,
.about-page-cta h2 {
    margin: 30px 0 0;

    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(4rem, 6.2vw, 7rem);
    font-weight: 300;
    letter-spacing: -.045em;
    line-height: .92;

    text-wrap: balance;
}


.about-page-intro h2 span,
.about-page-section-heading h2 span,
.about-page-values-heading h2 span,
.about-page-cta h2 span {
    display: block;

    margin-top: 9px;

    color: #d52229;
}


.about-page-intro-copy {
    padding-top: 58px;
}


.about-page-intro-copy p {
    color: rgba(255, 255, 255, .55);

    font-size: .96rem;
    line-height: 1.95;
}


.about-page-intro-copy p + p {
    margin-top: 23px;
}


.about-page-intro-copy .about-page-intro-lead {
    color: rgba(255, 255, 255, .88);

    font-family: var(--font-heading);
    font-size: clamp(1.7rem, 2.35vw, 2.55rem);
    font-weight: 300;
    line-height: 1.32;
}


.about-page-intro-copy blockquote {
    position: relative;

    margin-top: 42px;
    padding: 0 0 0 25px;

    color: rgba(255, 255, 255, .78);

    border-left: 1px solid #cf2027;

    font-family: var(--font-heading);
    font-size: clamp(1.35rem, 1.9vw, 2rem);
    font-style: italic;
    line-height: 1.45;
}


/* TEAM */

.about-page-founders {
    padding:
        clamp(105px, 10vw, 165px)
        var(--page-padding)
        clamp(120px, 12vw, 190px);

    background:
        linear-gradient(
            to bottom,
            #0a0a0a,
            #060606
        );

    border-top: 1px solid rgba(255, 255, 255, .07);
}


.about-page-section-heading {
    width: min(100%, 1050px);

    margin: 0 auto clamp(70px, 8vw, 120px);

    text-align: center;
}


.about-page-section-heading .about-page-kicker {
    justify-content: center;
}


.about-page-section-heading h2 {
    font-size: clamp(3.9rem, 6vw, 6.8rem);
}


.about-page-founder {
    width: min(100%, 1500px);
    min-height: clamp(690px, 82svh, 880px);

    margin: 0 auto;

    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(470px, .92fr);

    overflow: hidden;

    border: 1px solid rgba(255, 255, 255, .1);

    background: #080808;

    box-shadow: 0 35px 100px rgba(0, 0, 0, .28);
}


.about-page-founder + .about-page-founder {
    margin-top: clamp(45px, 6vw, 85px);
}


.about-page-founder-visual {
    position: relative;

    min-height: 100%;

    overflow: hidden;
}


.about-page-founder-visual img {
    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;

    filter:
        brightness(.8)
        contrast(1.04)
        saturate(.9);

    transform: scale(1.01);

    transition:
        transform 1.1s cubic-bezier(.22, 1, .36, 1),
        filter .65s ease;
}


.about-page-founder:hover .about-page-founder-visual img {
    filter:
        brightness(.9)
        contrast(1.03)
        saturate(.96);

    transform: scale(1.045);
}


.about-page-founder-reza .about-page-founder-visual img {
    object-position: 42% center;
}


.about-page-founder-andrew .about-page-founder-visual img {
    object-position: 54% center;
}


.about-page-founder-shade {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            to right,
            transparent 58%,
            rgba(8, 8, 8, .8) 100%
        ),
        linear-gradient(
            to top,
            rgba(5, 5, 5, .45),
            transparent 42%
        );
}


.about-page-founder-number {
    position: absolute;
    bottom: 25px;
    left: 28px;

    color: rgba(255, 255, 255, .6);

    font-family: var(--font-heading);
    font-size: 1.35rem;
    letter-spacing: .12em;
}


.about-page-founder-content {
    padding: clamp(58px, 6vw, 98px);

    display: flex;
    flex-direction: column;
    justify-content: center;
}


.about-page-founder-content h3 {
    margin: 29px 0 0;

    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(3.35rem, 4.7vw, 5.8rem);
    font-weight: 300;
    letter-spacing: -.045em;
    line-height: .93;

    text-wrap: balance;
}


.about-page-founder-content h3 span {
    display: block;

    margin-top: 8px;

    color: #d52229;
}


.about-page-founder-content > p {
    max-width: 620px;

    margin-top: 28px;

    color: rgba(255, 255, 255, .57);

    font-size: .91rem;
    line-height: 1.85;
}


.about-page-founder-content > p + p {
    margin-top: 15px;
}


.about-page-founder-stats {
    margin-top: clamp(34px, 4vw, 52px);

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    border-top: 1px solid rgba(255, 255, 255, .11);
    border-bottom: 1px solid rgba(255, 255, 255, .11);
}


.about-page-founder-stats > div {
    min-height: 104px;

    padding: 20px 16px;

    display: flex;
    flex-direction: column;
    justify-content: center;

    border-right: 1px solid rgba(255, 255, 255, .09);
}


.about-page-founder-stats > div:first-child {
    padding-left: 0;
}


.about-page-founder-stats > div:last-child {
    border-right: 0;
}


.about-page-founder-stats strong {
    color: #f4f2ee;

    font-family: var(--font-heading);
    font-size: clamp(1.75rem, 2.25vw, 2.55rem);
    font-weight: 300;
    line-height: 1;
}


.about-page-founder-stats span {
    margin-top: 10px;

    color: rgba(255, 255, 255, .42);

    font-size: .56rem;
    font-weight: 600;
    letter-spacing: .14em;
    line-height: 1.5;

    text-transform: uppercase;
}


.about-page-text-link {
    width: fit-content;

    margin-top: 38px;

    display: flex;
    align-items: center;

    gap: 35px;

    color: rgba(255, 255, 255, .9);

    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .18em;

    text-transform: uppercase;

    transition: color .3s ease;
}


.about-page-text-link::after {
    content: "";

    position: absolute;
}


.about-page-text-link > span {
    color: #e52b32;

    font-size: 1.12rem;

    transition: transform .3s ease;
}


.about-page-text-link:hover {
    color: #e52b32;
}


.about-page-text-link:hover > span {
    transform: translateX(6px);
}


.about-page-founder-andrew {
    grid-template-columns: minmax(470px, .92fr) minmax(0, 1.08fr);
}


.about-page-founder-andrew .about-page-founder-visual {
    grid-column: 2;
    grid-row: 1;
}


.about-page-founder-andrew .about-page-founder-content {
    grid-column: 1;
    grid-row: 1;
}


.about-page-founder-andrew .about-page-founder-shade {
    background:
        linear-gradient(
            to left,
            transparent 58%,
            rgba(8, 8, 8, .8) 100%
        ),
        linear-gradient(
            to top,
            rgba(5, 5, 5, .45),
            transparent 42%
        );
}


/* VALUES */

.about-page-values {
    position: relative;

    padding:
        clamp(110px, 11vw, 175px)
        var(--page-padding)
        clamp(120px, 12vw, 190px);

    overflow: hidden;

    background:
        radial-gradient(
            circle at 8% 25%,
            rgba(164, 22, 26, .11),
            transparent 27%
        ),
        #090909;
}


.about-page-values-heading {
    width: min(100%, 920px);

    margin: 0 auto clamp(65px, 7vw, 105px);

    text-align: center;
}


.about-page-values-heading .about-page-kicker {
    justify-content: center;
}


.about-page-values-heading h2 {
    font-size: clamp(3.8rem, 5.7vw, 6.5rem);
}


.about-page-values-grid {
    width: min(100%, 1380px);

    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 22px;
}


.about-page-value-card {
    position: relative;

    min-height: 360px;

    padding: clamp(38px, 4vw, 58px);

    display: flex;
    flex-direction: column;
    justify-content: flex-end;

    overflow: hidden;

    border: 1px solid rgba(255, 255, 255, .1);

    background:
        linear-gradient(
            145deg,
            rgba(24, 24, 25, .92),
            rgba(9, 9, 9, .98)
        );

    transition:
        border-color .45s ease,
        transform .45s cubic-bezier(.22, 1, .36, 1),
        background .45s ease;
}


.about-page-value-card::before {
    content: "";

    position: absolute;
    top: 0;
    left: 0;

    width: 0;
    height: 2px;

    background: #dc272e;

    transition: width .55s cubic-bezier(.22, 1, .36, 1);
}


.about-page-value-card:hover {
    border-color: rgba(220, 39, 46, .52);

    background:
        linear-gradient(
            145deg,
            rgba(45, 15, 17, .92),
            rgba(9, 9, 9, .98)
        );

    transform: translateY(-8px);
}


.about-page-value-card:hover::before {
    width: 100%;
}


.about-page-value-number {
    position: absolute;
    top: 28px;
    right: 31px;

    color: rgba(255, 255, 255, .1);

    font-family: var(--font-heading);
    font-size: clamp(3.4rem, 5vw, 5.8rem);
    font-weight: 300;
    line-height: 1;
}


.about-page-value-card h3 {
    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(2.6rem, 3.2vw, 3.8rem);
    font-weight: 300;
    letter-spacing: -.035em;
    line-height: 1;
}


.about-page-value-card h3::after {
    content: "";

    display: block;

    width: 45px;
    height: 1px;

    margin: 22px 0;

    background: #cf2027;
}


.about-page-value-card p {
    max-width: 370px;

    color: rgba(255, 255, 255, .52);

    font-size: .86rem;
    line-height: 1.8;
}


/* CTA */

.about-page-cta {
    position: relative;

    min-height: clamp(650px, 82svh, 860px);

    display: grid;
    place-items: center;

    overflow: hidden;

    background: #050505;
}


.about-page-cta-background,
.about-page-cta-overlay {
    position: absolute;
    inset: 0;
}


.about-page-cta-background {
    z-index: 0;

    background:
        url("../images/properties/spanish-revival-estate.webp?v=20260930")
        center center / cover
        no-repeat;

    filter:
        brightness(.62)
        contrast(1.06)
        saturate(.88);

    transform: scale(1.015);

    transition: transform 6s cubic-bezier(.22, 1, .36, 1);
}


.about-page-cta:hover .about-page-cta-background {
    transform: scale(1.045);
}


.about-page-cta-overlay {
    z-index: 1;

    background:
        linear-gradient(
            to bottom,
            rgba(3, 3, 4, .35),
            rgba(3, 3, 4, .42)
        ),
        radial-gradient(
            circle at center,
            transparent 0%,
            rgba(2, 2, 3, .5) 100%
        );
}


.about-page-cta-content {
    position: relative;

    z-index: 2;

    width: min(100%, 1080px);

    padding:
        110px
        var(--page-padding);

    display: flex;
    flex-direction: column;
    align-items: center;

    text-align: center;
}


.about-page-cta .about-page-kicker {
    justify-content: center;
}


.about-page-cta h2 {
    font-size: clamp(4rem, 6.2vw, 7rem);

    text-shadow:
        0 4px 18px rgba(0, 0, 0, .52),
        0 20px 55px rgba(0, 0, 0, .34);
}


.about-page-cta p {
    margin-top: 30px;

    color: rgba(255, 255, 255, .7);

    font-size: .98rem;
    line-height: 1.8;

    text-shadow: 0 2px 12px rgba(0, 0, 0, .65);
}


.about-page-cta .about-page-primary-button {
    margin-top: 40px;
}


/* RESPONSIVE */

@media (max-width: 1180px) {

    .about-page-hero-content {
        grid-template-columns: minmax(0, 1fr) minmax(380px, .72fr);

        gap: 65px;
    }


    .about-page-founder,
    .about-page-founder-andrew {
        grid-template-columns: minmax(0, 1fr) minmax(430px, .92fr);
    }
}


@media (max-width: 960px) {

    .about-page-hero-content {
        grid-template-columns: 1fr;

        align-content: center;
    }


    .about-page-hero-copy {
        max-width: 760px;
    }


    .about-page-hero-stats {
        width: min(100%, 760px);

        margin: 0;

        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }


    .about-page-hero-stats > div {
        min-height: 104px;

        padding: 18px;

        display: flex;
        flex-direction: column;

        gap: 9px;

        border-right: 1px solid rgba(255, 255, 255, .1);
        border-bottom: 0;
    }


    .about-page-hero-stats > div:last-child {
        border-right: 0;
    }


    .about-page-hero-stats strong {
        font-size: 2rem;
    }


    .about-page-intro {
        grid-template-columns: 1fr;

        gap: 25px;
    }


    .about-page-intro-heading {
        max-width: 760px;
    }


    .about-page-intro-copy {
        max-width: 720px;

        padding-top: 15px;
        margin-left: auto;
    }


    .about-page-founder,
    .about-page-founder-andrew {
        min-height: 0;

        grid-template-columns: 1fr;
    }


    .about-page-founder-visual,
    .about-page-founder-andrew .about-page-founder-visual {
        min-height: clamp(480px, 68vw, 660px);

        grid-column: 1;
        grid-row: 1;
    }


    .about-page-founder-content,
    .about-page-founder-andrew .about-page-founder-content {
        grid-column: 1;
        grid-row: 2;
    }


    .about-page-founder-shade,
    .about-page-founder-andrew .about-page-founder-shade {
        background:
            linear-gradient(
                to top,
                rgba(8, 8, 8, .85),
                transparent 38%
            );
    }


    .about-page-values-grid {
        grid-template-columns: 1fr;
    }


    .about-page-value-card {
        min-height: 290px;
    }
}


@media (max-width: 680px) {

    .about-page-kicker {
        gap: 13px;

        font-size: .59rem;
        letter-spacing: .23em;
    }


    .about-page-kicker::before {
        width: 31px;
    }


    .about-page-hero {
        min-height: 100svh;
    }


    .about-page-hero-background {
        background-position: 66% center;
    }


    .about-page-hero-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(3, 3, 4, .58) 0%,
                rgba(3, 3, 4, .37) 38%,
                rgba(3, 3, 4, .88) 100%
            );
    }


    .about-page-hero-content {
        padding:
            125px
            20px
            82px;

        gap: 40px;
    }


    .about-page-hero-copy h1 {
        margin-top: 25px;

        font-size: clamp(3.5rem, 16vw, 5.2rem);
        line-height: .92;
    }


    .about-page-hero-copy > p {
        margin-top: 26px;

        font-size: .9rem;
        line-height: 1.72;
    }


    .about-page-primary-button {
        min-height: 63px;

        margin-top: 30px;

        font-size: .62rem;
    }


    .about-page-hero-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }


    .about-page-hero-stats > div {
        min-height: 82px;

        padding: 13px 8px;

        justify-content: center;

        text-align: center;
    }


    .about-page-hero-stats strong {
        font-size: clamp(1.15rem, 5.4vw, 1.7rem);
    }


    .about-page-hero-stats span {
        font-size: .46rem;
        letter-spacing: .1em;
        line-height: 1.35;
    }


    .about-page-scroll {
        display: none;
    }


    .about-page-intro {
        padding:
            88px
            20px
            100px;
    }


    .about-page-intro::before {
        top: 30px;
        left: 16px;

        font-size: 7.5rem;
    }


    .about-page-intro h2,
    .about-page-section-heading h2,
    .about-page-values-heading h2,
    .about-page-cta h2 {
        margin-top: 24px;

        font-size: clamp(3.1rem, 14vw, 4.6rem);
    }


    .about-page-intro-copy .about-page-intro-lead {
        font-size: 1.6rem;
    }


    .about-page-founders {
        padding:
            86px
            14px
            105px;
    }


    .about-page-section-heading {
        margin-bottom: 56px;
        padding: 0 6px;
    }


    .about-page-founder + .about-page-founder {
        margin-top: 30px;
    }


    .about-page-founder-visual,
    .about-page-founder-andrew .about-page-founder-visual {
        min-height: clamp(360px, 104vw, 515px);
    }


    .about-page-founder-reza .about-page-founder-visual img {
        object-position: 44% center;
    }


    .about-page-founder-andrew .about-page-founder-visual img {
        object-position: 59% center;
    }


    .about-page-founder-content {
        padding: 46px 23px 42px;
    }


    .about-page-founder-content h3 {
        margin-top: 24px;

        font-size: clamp(3rem, 13vw, 4.2rem);
    }


    .about-page-founder-content > p {
        font-size: .86rem;
        line-height: 1.75;
    }


    .about-page-founder-stats {
        grid-template-columns: 1fr;
    }


    .about-page-founder-stats > div {
        min-height: 75px;

        padding: 15px 0;

        border-right: 0;
        border-bottom: 1px solid rgba(255, 255, 255, .08);
    }


    .about-page-founder-stats > div:last-child {
        border-bottom: 0;
    }


    .about-page-founder-stats strong {
        font-size: 1.85rem;
    }


    .about-page-text-link {
        margin-top: 32px;

        gap: 22px;

        font-size: .58rem;
    }


    .about-page-values {
        padding:
            88px
            14px
            104px;
    }


    .about-page-values-heading {
        margin-bottom: 55px;
        padding: 0 6px;
    }


    .about-page-value-card {
        min-height: 285px;

        padding: 34px 28px;
    }


    .about-page-cta {
        min-height: 700px;
    }


    .about-page-cta-background {
        background-position: 56% center;
    }


    .about-page-cta-content {
        padding:
            100px
            20px;
    }


    .about-page-cta p {
        font-size: .9rem;
    }
}


@media (prefers-reduced-motion: reduce) {

    .about-page-hero-background,
    .about-page-cta-background,
    .about-page-founder-visual img,
    .about-page-scroll i {
        animation: none;
        transition: none;
    }
}


/* =========================================================
   CONTACT PAGE — FULL-SCREEN PREMIUM HERO
========================================================= */

.contact-page-hero {
    position: relative;

    min-height: 100vh;
    min-height: 100svh;

    display: grid;
    place-items: center;

    overflow: hidden;

    background: #050505;
}


.contact-page-hero-background {
    position: absolute;
    inset: 0;

    z-index: 0;

    background-image: url("../images/contact-hero-bg-20260929.webp");
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;

    filter:
        brightness(.72)
        contrast(1.06)
        saturate(.92);

    transform: scale(1.015);
}


.contact-page-hero-overlay {
    position: absolute;
    inset: 0;

    z-index: 1;

    background:
        linear-gradient(
            to bottom,
            rgba(2, 3, 5, .3) 0%,
            rgba(2, 3, 5, .12) 38%,
            rgba(2, 3, 5, .4) 100%
        ),
        linear-gradient(
            90deg,
            rgba(1, 2, 3, .35) 0%,
            rgba(1, 2, 3, .06) 50%,
            rgba(1, 2, 3, .26) 100%
        );
}


.contact-page-hero-content {
    position: relative;

    z-index: 2;

    width: min(100%, var(--content-width));

    margin: 0 auto;

    padding:
        clamp(130px, 17vh, 190px)
        var(--page-padding)
        clamp(84px, 12vh, 130px);

    display: flex;
    justify-content: center;

    text-align: center;
}


.contact-page-hero-copy {
    width: min(100%, 960px);
}


.contact-page-hero-copy .section-kicker {
    justify-content: center;

    margin-bottom: clamp(25px, 3vh, 36px);

    color: #ee343a;

    text-shadow: 0 2px 18px rgba(0, 0, 0, .7);
}


.contact-page-hero-copy .section-kicker::before {
    width: 44px;
}


.contact-page-hero-copy h1 {
    margin: 0;

    color: #fff;

    font-family: var(--font-heading);
    font-size: clamp(4.5rem, 7.4vw, 8rem);
    font-weight: 300;
    letter-spacing: -.045em;
    line-height: .91;

    text-wrap: balance;

    text-shadow:
        0 3px 18px rgba(0, 0, 0, .58),
        0 18px 58px rgba(0, 0, 0, .38);
}


.contact-page-hero-copy h1 span {
    display: block;

    margin-top: 10px;

    color: #e62930;
}


.contact-page-hero-line {
    width: 64px;
    height: 1px;

    margin: clamp(30px, 4vh, 44px) auto clamp(25px, 3vh, 34px);

    background: #e62930;

    box-shadow: 0 0 22px rgba(230, 41, 48, .3);
}


.contact-page-hero-copy p {
    width: min(100%, 690px);

    margin: 0 auto;

    color: rgba(255, 255, 255, .83);

    font-size: clamp(.96rem, 1.05vw, 1.1rem);
    line-height: 1.85;

    text-wrap: balance;

    text-shadow: 0 2px 14px rgba(0, 0, 0, .7);
}


@media (max-width: 820px) {

    .contact-page-hero-background {
        background-position: 56% center;

        filter:
            brightness(.63)
            contrast(1.05)
            saturate(.9);
    }


    .contact-page-hero-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(2, 3, 5, .34) 0%,
                rgba(2, 3, 5, .14) 33%,
                rgba(2, 3, 5, .56) 100%
            );
    }


    .contact-page-hero-content {
        padding:
            118px
            22px
            72px;

        align-items: center;
    }


    .contact-page-hero-copy .section-kicker {
        margin-bottom: 24px;
    }


    .contact-page-hero-copy h1 {
        font-size: clamp(3.4rem, 16vw, 5.4rem);
        line-height: .94;
    }


    .contact-page-hero-line {
        margin-top: 30px;
        margin-bottom: 25px;
    }


    .contact-page-hero-copy p {
        max-width: 520px;

        font-size: .93rem;
        line-height: 1.72;
    }
}


@media (max-width: 420px) {

    .contact-page-hero-content {
        padding-right: 18px;
        padding-left: 18px;
    }


    .contact-page-hero-copy h1 {
        font-size: clamp(3rem, 15vw, 4.25rem);
    }
}


/* =========================================================
   CONTACT PAGE — INFORMATION & FORM
========================================================= */

.contact-main-section {
    position: relative;

    padding:
        clamp(100px, 10vw, 165px)
        var(--page-padding)
        clamp(110px, 11vw, 180px);

    overflow: hidden;

    background:
        radial-gradient(
            circle at 8% 18%,
            rgba(164, 22, 26, .1),
            transparent 28%
        ),
        radial-gradient(
            circle at 92% 72%,
            rgba(255, 255, 255, .035),
            transparent 26%
        ),
        #080808;

    border-top: 1px solid rgba(255, 255, 255, .08);
}


.contact-main-section::before {
    content: "CONTACT";

    position: absolute;
    top: clamp(20px, 3vw, 46px);
    left: 50%;

    color: rgba(255, 255, 255, .018);

    font-family: var(--font-heading);
    font-size: clamp(8rem, 19vw, 22rem);
    font-weight: 300;
    letter-spacing: -.06em;
    line-height: .72;

    white-space: nowrap;

    transform: translateX(-50%);

    pointer-events: none;
}


.contact-main-grid {
    position: relative;

    z-index: 1;

    width: min(100%, 1420px);

    margin: 0 auto;

    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(520px, 1.1fr);

    gap: clamp(70px, 9vw, 145px);
    align-items: start;
}


.contact-information {
    padding-top: clamp(12px, 2vw, 32px);
}


.contact-block-kicker {
    display: flex;
    align-items: center;

    gap: 16px;

    margin-bottom: 28px;

    color: #e62930;

    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .28em;
    line-height: 1.4;

    text-transform: uppercase;
}


.contact-block-kicker::before {
    content: "";

    width: 42px;
    height: 1px;

    flex: 0 0 auto;

    background: #e62930;
}


.contact-information > h2,
.contact-form-panel > h2 {
    margin: 0;

    color: #f5f3ef;

    font-family: var(--font-heading);
    font-size: clamp(3rem, 4.25vw, 5.15rem);
    font-weight: 300;
    letter-spacing: -.035em;
    line-height: .96;

    text-wrap: balance;
}


.contact-information > h2 span {
    display: block;

    margin-top: 7px;

    color: #d3232a;
}


.contact-information-intro,
.contact-form-intro {
    max-width: 570px;

    margin: 28px 0 0;

    color: rgba(255, 255, 255, .58);

    font-size: .96rem;
    line-height: 1.85;
}


.contact-info-list {
    margin-top: clamp(48px, 5vw, 72px);

    border-top: 1px solid rgba(255, 255, 255, .11);
}


.contact-info-item {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr);

    gap: 22px;
    align-items: center;

    padding: 25px 0;

    border-bottom: 1px solid rgba(255, 255, 255, .09);
}


.contact-info-icon {
    width: 46px;
    height: 46px;

    display: grid;
    place-items: center;

    color: #e62930;

    border: 1px solid rgba(230, 41, 48, .58);
    border-radius: 50%;

    background: rgba(164, 22, 26, .06);

    transition:
        color .35s ease,
        background .35s ease,
        transform .35s ease;
}


.contact-info-item:hover .contact-info-icon {
    color: #fff;

    background: #b91c22;

    transform: translateY(-2px);
}


.contact-info-icon svg {
    width: 19px;
    height: 19px;

    stroke: currentColor;
    stroke-width: 1.35;
    stroke-linecap: round;
    stroke-linejoin: round;
}


.contact-info-item h3 {
    margin: 0 0 3px;

    color: rgba(255, 255, 255, .94);

    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .14em;

    text-transform: uppercase;
}


.contact-info-item p,
.contact-info-item a {
    margin: 0;

    color: rgba(255, 255, 255, .54);

    font-size: .88rem;
    line-height: 1.65;

    transition: color .25s ease;
}


.contact-info-item a:hover {
    color: #fff;
}


.contact-socials {
    margin-top: 38px;

    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 13px;
}


.contact-socials .contact-block-kicker {
    width: 100%;

    margin-bottom: 4px;
}


.contact-socials a {
    padding: 10px 17px;

    color: rgba(255, 255, 255, .7);

    border: 1px solid rgba(255, 255, 255, .13);

    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .16em;

    text-transform: uppercase;

    transition:
        color .3s ease,
        border-color .3s ease,
        background .3s ease;
}


.contact-socials a:hover {
    color: #fff;

    border-color: rgba(230, 41, 48, .72);

    background: rgba(164, 22, 26, .1);
}


.contact-private {
    position: relative;

    margin-top: 42px;

    padding: 25px 26px 25px 29px;

    border: 1px solid rgba(255, 255, 255, .09);
    border-left: 2px solid #c82027;

    background:
        linear-gradient(
            110deg,
            rgba(164, 22, 26, .1),
            rgba(255, 255, 255, .025)
        );
}


.contact-private > span {
    display: block;

    margin-bottom: 9px;

    color: rgba(255, 255, 255, .9);

    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .18em;

    text-transform: uppercase;
}


.contact-private p {
    margin: 0;

    color: rgba(255, 255, 255, .52);

    font-size: .84rem;
    line-height: 1.75;
}


.contact-form-panel {
    position: relative;

    padding: clamp(42px, 4.4vw, 72px);

    border: 1px solid rgba(255, 255, 255, .12);

    background:
        linear-gradient(
            145deg,
            rgba(25, 25, 26, .96),
            rgba(10, 10, 10, .98)
        );

    box-shadow:
        0 35px 90px rgba(0, 0, 0, .42),
        inset 0 1px 0 rgba(255, 255, 255, .025);
}


.contact-form-panel::before,
.contact-form-panel::after {
    content: "";

    position: absolute;

    width: 54px;
    height: 54px;

    pointer-events: none;
}


.contact-form-panel::before {
    top: -1px;
    left: -1px;

    border-top: 1px solid #e12930;
    border-left: 1px solid #e12930;
}


.contact-form-panel::after {
    right: -1px;
    bottom: -1px;

    border-right: 1px solid #e12930;
    border-bottom: 1px solid #e12930;
}


.contact-form-panel > h2 {
    max-width: 620px;

    font-size: clamp(2.8rem, 3.8vw, 4.55rem);
}


.contact-form-intro {
    margin-top: 18px;
}


.contact-page-form {
    margin-top: clamp(42px, 5vw, 62px);

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    column-gap: 28px;
    row-gap: 31px;
}


.contact-page-form label {
    display: flex;
    flex-direction: column;

    gap: 10px;

    color: rgba(255, 255, 255, .62);

    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .19em;

    text-transform: uppercase;
}


.contact-page-form label:nth-of-type(3),
.contact-page-form label:nth-of-type(4) {
    grid-column: 1 / -1;
}


.contact-page-form input,
.contact-page-form select,
.contact-page-form textarea {
    width: 100%;

    padding: 11px 0 15px;

    color: #f5f3ef;

    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .2);
    border-radius: 0;
    outline: 0;

    background: transparent;

    font-size: .93rem;
    font-weight: 300;
    letter-spacing: 0;

    text-transform: none;

    transition:
        border-color .3s ease,
        box-shadow .3s ease;

    appearance: none;
}

.contact-page-form select {
    padding-right: 28px;
    color: rgba(255, 255, 255, .74);
    background-image:
        linear-gradient(45deg, transparent 50%, #d8232a 50%),
        linear-gradient(135deg, #d8232a 50%, transparent 50%);
    background-position:
        calc(100% - 12px) calc(50% - 1px),
        calc(100% - 7px) calc(50% - 1px);
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}

.contact-page-form select option {
    color: #f5f3ef;
    background: #111113;
}

.contact-service-fields {
    grid-column: 1 / -1;
    display: none;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 31px 28px;
    padding: 28px 0 3px;
    border-top: 1px solid rgba(255, 255, 255, .09);
}

.contact-service-fields.is-active {
    display: grid;
}

.contact-service-fields .contact-service-field,
.contact-service-fields .contact-service-field:nth-of-type(n) {
    grid-column: auto;
}

.contact-service-fields .contact-service-field:first-child:last-child,
.contact-service-fields .contact-service-field:nth-child(3):last-child {
    grid-column: 1 / -1;
}

.contact-service-fields input[type="date"] {
    color-scheme: dark;
}


.contact-page-form textarea {
    min-height: 118px;

    padding-top: 12px;

    line-height: 1.65;

    resize: vertical;
}


.contact-page-form input::placeholder,
.contact-page-form textarea::placeholder {
    color: rgba(255, 255, 255, .28);
}


.contact-page-form input:focus,
.contact-page-form select:focus,
.contact-page-form textarea:focus {
    border-color: #d8232a;

    box-shadow: 0 1px 0 rgba(216, 35, 42, .2);
}


.contact-submit-button {
    grid-column: 1 / -1;

    min-height: 68px;

    margin-top: 9px;
    padding: 0 26px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    color: #fff;

    border: 1px solid #bd1c22;
    border-radius: 0;

    background:
        linear-gradient(
            90deg,
            rgba(164, 22, 26, .18),
            rgba(164, 22, 26, .04)
        );

    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .22em;

    text-transform: uppercase;

    cursor: pointer;

    transition:
        background .35s ease,
        border-color .35s ease,
        transform .35s ease;
}


.contact-submit-button span:last-child {
    color: #e72b32;

    font-size: 1.25rem;
    line-height: 1;

    transition:
        color .35s ease,
        transform .35s ease;
}


.contact-submit-button:hover {
    border-color: #e32930;

    background: #b51b21;

    transform: translateY(-2px);
}


.contact-submit-button:hover span:last-child {
    color: #fff;

    transform: translateX(5px);
}


.contact-privacy {
    grid-column: 1 / -1;

    margin: -11px 0 0;

    color: rgba(255, 255, 255, .32);

    font-size: .67rem;
    letter-spacing: .04em;
    line-height: 1.6;

    text-align: center;
}


@media (max-width: 1080px) {

    .contact-main-grid {
        grid-template-columns: 1fr;

        gap: 74px;
    }


    .contact-information {
        max-width: 760px;
    }


    .contact-form-panel {
        width: 100%;
    }
}


@media (max-width: 680px) {

    .contact-main-section {
        padding:
            82px
            20px
            96px;
    }


    .contact-main-section::before {
        top: 26px;

        font-size: 7.5rem;
    }


    .contact-main-grid {
        gap: 58px;
    }


    .contact-information {
        padding-top: 0;
    }


    .contact-information > h2,
    .contact-form-panel > h2 {
        font-size: clamp(2.75rem, 13vw, 4rem);
    }


    .contact-info-list {
        margin-top: 42px;
    }


    .contact-info-item {
        grid-template-columns: 44px minmax(0, 1fr);

        gap: 17px;
    }


    .contact-info-icon {
        width: 42px;
        height: 42px;
    }


    .contact-form-panel {
        padding: 38px 24px 34px;
    }


    .contact-page-form {
        grid-template-columns: 1fr;

        row-gap: 27px;
    }


    .contact-page-form label,
    .contact-page-form label:nth-of-type(3),
    .contact-page-form label:nth-of-type(4) {
        grid-column: 1;
    }

    .contact-service-fields {
        grid-template-columns: 1fr;
        gap: 27px;
        padding-top: 24px;
    }

    .contact-service-fields .contact-service-field,
    .contact-service-fields .contact-service-field:nth-of-type(n),
    .contact-service-fields .contact-service-field:nth-child(3):last-child {
        grid-column: 1;
    }


    .contact-submit-button,
    .contact-privacy {
        grid-column: 1;
    }


    .contact-submit-button {
        min-height: 64px;
    }
}

/* =========================================================
   MOBILE — PREMIUM RESPONSIVE FINISH
========================================================= */

@media (max-width: 820px) {

    body {
        overflow-x: hidden;
    }

    .site-header {
        min-height: 72px;
        padding: 11px 18px;
    }

    .site-header.is-scrolled {
        min-height: 68px;
        padding-top: 9px;
        padding-bottom: 9px;
    }

    .header-brand {
        gap: 10px;
    }

    .header-brand-icon {
        width: 38px;
        height: 38px;
    }

    .header-brand-name {
        font-size: 0.78rem;
        letter-spacing: 0.13em;
    }

    .header-brand-subtitle {
        font-size: 0.46rem;
        letter-spacing: 0.38em;
    }

    .menu-toggle {
        width: 48px;
        height: 48px;
    }

    .mobile-navigation {
        padding: 105px 28px 48px;
        gap: clamp(20px, 4vh, 34px);
    }

    .mobile-navigation a {
        font-size: clamp(2rem, 10vw, 3.3rem);
    }

    .hero {
        min-height: 100svh;
    }

    .hero-content {
        width: min(100% - 44px, 500px);
        padding-top: 110px;
        padding-bottom: 112px;
    }

    .hero-main-logo {
        width: min(220px, 58vw);
    }

    .hero-title-wrapper h1 {
        font-size: clamp(2.8rem, 12vw, 4rem);
    }

    .hero-title-wrapper p {
        max-width: 310px;
        font-size: 0.78rem;
        line-height: 1.65;
    }

    .hero-agent-information {
        bottom: 28px;
    }

    .hero-agent-information h2 {
        font-size: 1.35rem;
    }

    .featured-properties.section,
    .services-section,
    .legacy-section,
    .home-contact.section {
        min-height: auto;
        padding: 78px 22px;
    }

    .featured-properties-header,
    .services-section .section-heading {
        margin-bottom: 38px;
    }

    .featured-properties-heading h2,
    .services-section .section-heading h2,
    .legacy-copy h2 {
        font-size: clamp(2.7rem, 12vw, 4rem);
    }

    .featured-properties-introduction {
        padding-left: 18px;
    }

    .featured-properties-grid,
    .services-grid {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .property-showcase-image {
        aspect-ratio: 4 / 4.8;
    }

    .featured-properties-action {
        margin-top: 34px;
    }

    .team-story .agent-story,
    .team-story .agent-story-andrew {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .team-story .agent-story-visual,
    .team-story .agent-story-andrew .agent-story-visual {
        order: 1;
        min-height: min(72svh, 500px);
    }

    .team-story .agent-story-content,
    .team-story .agent-story-andrew .agent-story-content {
        order: 2;
        padding: 56px 24px 64px;
    }

    .team-story .agent-story-title {
        font-size: clamp(2.5rem, 11vw, 3.5rem);
    }

    .team-story .agent-story-description p {
        font-size: 0.92rem;
        line-height: 1.7;
    }

    .team-story .agent-story-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .team-story .agent-story-stat {
        padding: 8px 2px;
    }

    .team-story .agent-story-stat > span:last-child {
        font-size: 0.54rem;
        letter-spacing: 0.08em;
    }

    .team-story .agent-story-button {
        min-width: 0;
        width: 100%;
    }

    .service-card,
    .service-card:last-child {
        width: 100%;
        min-height: 410px;
        padding: 30px 26px;
    }

    .legacy-content {
        grid-template-columns: 1fr;
        gap: 42px;
        min-height: auto;
    }

    .legacy-stat {
        min-height: 0;
        padding: 20px;
    }

    .home-contact-content {
        text-align: center;
    }

    .home-contact-logo {
        width: 74px;
        margin-bottom: 24px;
    }

    .home-contact-content h2 {
        margin: 0 auto 20px;
        font-size: clamp(2.5rem, 11vw, 3.7rem);
        line-height: 0.98;
    }

    .properties-filter-inner,
    .property-category-filters {
        flex-wrap: wrap;
    }

    .properties-filter-inner {
        min-height: 0;
        padding: 16px 22px;
        gap: 8px 20px;
    }

    .property-filter {
        min-height: 42px;
        font-size: 0.55rem;
    }

    .property-sort-button {
        min-width: 145px;
    }

    .all-properties {
        padding: 46px 22px 72px;
    }

    .premium-property-grid {
        grid-template-columns: 1fr;
    }

    .listing-showcase-card .listing-showcase-hover {
        left: 22px;
        right: 22px;
        bottom: 20px;
        opacity: 1;
        transform: none;
        pointer-events: auto;
    }

    .listing-showcase-card .listing-showcase-main {
        transform: translateY(-112px);
    }

    .listing-specs {
        gap: 8px;
    }

    .listing-showcase-hover .listing-specs span {
        gap: 5px;
        font-size: 0.48rem;
    }

    .site-footer,
    .footer-inner {
        padding-left: 22px;
        padding-right: 22px;
    }

    .footer-inner {
        grid-template-columns: 1fr;
        gap: 34px;
    }
}

@media (max-width: 650px) {

    .hero-agent-andrew {
        right: -36vw;
        bottom: 0;
        height: 465px;
    }

    .hero-agent-andrew .hero-agent-image {
        bottom: -14%;
    }
}

@media (max-width: 430px) {

    .hero-agent-andrew {
        right: -48vw;
        height: 425px;
    }
}

/* =========================================================
   HOME HEADER + PROPERTY SPECIFICATIONS
========================================================= */

.desktop-navigation a {
    font-size: 0.72rem;
}

.listing-showcase-hover .listing-specs span {
    flex-direction: row;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.listing-showcase-hover .listing-specs .property-spec-icon {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    margin: 0;
}

/* =========================================================
   REZA + ANDREW — BALANCED LARGE COMPOSITION
========================================================= */

@media (min-width: 821px) {

    .team-story.section {
        padding-top: 0;
    }

    .team-story .agent-story-reza,
    .team-story .agent-story-andrew,
    .team-story .agent-story-reza .agent-story-visual,
    .team-story .agent-story-andrew .agent-story-visual {
        min-height: 100svh;
    }

    .team-story .agent-story-reza .agent-story-content,
    .team-story .agent-story-andrew .agent-story-content {
        padding:
            clamp(68px, 5.5vw, 96px)
            clamp(48px, 5.5vw, 92px)
            clamp(68px, 5.5vw, 96px)
            clamp(40px, 4vw, 68px);
    }

    .team-story .agent-story-title {
        margin-bottom: 28px;
        font-size: clamp(2.85rem, 4vw, 4.6rem);
    }

    .team-story .agent-story-description {
        margin-bottom: 36px;
    }

    .team-story .agent-story-description p {
        font-size: clamp(1rem, 1.02vw, 1.08rem);
        line-height: 1.75;
    }

    .team-story .agent-story-stats {
        max-width: 690px;
        margin-bottom: 38px;
    }

    .team-story .agent-story-stat-icon {
        width: 42px;
        height: 42px;
        margin-bottom: 14px;
        font-size: 1.05rem;
    }

    .team-story .agent-story-stat strong {
        margin-bottom: 10px;
        font-size: clamp(1.65rem, 2vw, 2.15rem);
    }

    .team-story .agent-story-stat > span:last-child {
        max-width: 140px;
        font-size: 0.7rem;
    }

    .team-story .agent-story-button {
        min-width: 360px;
        padding: 18px 26px;
        font-size: 0.78rem;
    }
}

/* The section background must cover the viewport, independently
   from the constrained content width inherited from .section. */

.legacy-section .legacy-background,
.legacy-section .legacy-overlay {
    inset: 0;
    width: 100%;
    max-width: none;
    margin: 0;
}

.legacy-section .legacy-content {
    width: min(100%, var(--content-width));
    max-width: var(--content-width);
    margin-inline: auto;
}

/* =========================================================
   PROPERTIES — FULL-SCREEN CINEMATIC HERO
========================================================= */

@media (min-width: 821px) {

    .properties-page-hero {
        min-height: 100svh;
        display: flex;
        align-items: flex-end;
    }

    .properties-page-hero-bg {
        background-position: center 54%;
        filter: brightness(.78) contrast(1.06) saturate(.96);
        transform: scale(1.015);
    }

    .properties-page-hero-overlay {
        background:
            linear-gradient(
                90deg,
                rgba(4,4,5,.84) 0%,
                rgba(4,4,5,.64) 27%,
                rgba(4,4,5,.23) 55%,
                rgba(4,4,5,.04) 100%
            ),
            linear-gradient(
                to top,
                rgba(4,4,5,.58) 0%,
                rgba(4,4,5,.10) 45%,
                rgba(4,4,5,.20) 100%
            );
    }

    .properties-page-hero-content {
        width: 100%;
        max-width: none;
        padding:
            0
            clamp(42px, 8vw, 150px)
            clamp(86px, 13vh, 150px);
    }

    .properties-page-hero-content .section-kicker {
        margin-bottom: 28px;
    }

    .properties-page-hero-content h1 {
        font-size: clamp(5.6rem, 8vw, 8.6rem);
        line-height: .8;
    }

    .properties-page-hero-line {
        margin: 38px 0 28px;
    }

    .properties-page-hero-content p {
        max-width: 650px;
        font-size: clamp(.92rem, 1vw, 1.08rem);
        line-height: 1.8;
    }
}

@media (max-width: 820px) {

    .properties-page-hero {
        min-height: 100svh;
        display: flex;
        align-items: flex-end;
    }

    .properties-page-hero-bg {
        background-position: 64% center;
        filter: brightness(.68) contrast(1.06) saturate(.92);
    }

    .properties-page-hero-overlay {
        background:
            linear-gradient(
                to right,
                rgba(4,4,5,.82) 0%,
                rgba(4,4,5,.42) 64%,
                rgba(4,4,5,.12) 100%
            ),
            linear-gradient(
                to top,
                rgba(4,4,5,.74) 0%,
                transparent 62%
            );
    }

    .properties-page-hero-content {
        width: 100%;
        max-width: none;
        padding: 0 22px clamp(64px, 10vh, 92px);
    }

    .properties-page-hero-content h1 {
        font-size: clamp(4rem, 17vw, 6rem);
        line-height: .84;
    }

    .properties-page-hero-content p {
        max-width: 520px;
        font-size: .86rem;
        line-height: 1.7;
    }
}

/* =========================================================
   HOME — LAPTOP VIEWPORT COMPOSITION
   Each desktop section keeps its complete core content within
   a laptop-height viewport; mobile keeps its natural flow.
========================================================= */

@media (min-width: 821px) {

    .featured-properties.section {
        min-height: 100svh;
        padding-top: clamp(64px, 7vh, 92px);
        padding-bottom: clamp(52px, 6vh, 78px);
    }

    .featured-properties-header {
        margin-bottom: clamp(32px, 4vh, 52px);
    }

    .featured-properties-heading h2 {
        font-size: clamp(3.1rem, 4.8vw, 5.4rem);
    }

    .property-showcase-image {
        aspect-ratio: 4 / 4.35;
    }

    .featured-properties-action {
        margin-top: clamp(28px, 3vh, 42px);
    }

    .services-section {
        min-height: 100svh;
        padding-top: clamp(46px, 5vh, 64px);
        padding-bottom: clamp(46px, 5vh, 64px);
    }

    .services-section .section-heading {
        margin-bottom: clamp(32px, 4vh, 48px);
    }

    .services-section .section-heading h2 {
        font-size: clamp(2.8rem, 4.6vw, 5rem);
    }

    .services-section .section-heading p {
        margin-top: 16px;
        line-height: 1.65;
    }

    .service-card {
        min-height: clamp(560px, 60vh, 660px);
        padding: 0;
    }

    .service-overlay {
        padding: clamp(38px, 3.2vw, 54px);
    }

    .service-icon {
        width: 68px;
        height: 68px;
    }

    .service-overlay h3 {
        margin-bottom: 30px;
        font-size: clamp(2.45rem, 3vw, 3.85rem);
    }

    .legacy-section {
        min-height: 100svh;
        padding-top: clamp(58px, 7vh, 88px);
        padding-bottom: clamp(58px, 7vh, 88px);
    }

    .legacy-content {
        min-height: min(600px, calc(100svh - 116px));
        gap: clamp(42px, 5vw, 80px);
    }

    .legacy-copy h2 {
        margin-bottom: 24px;
        font-size: clamp(3rem, 4.8vw, 5.3rem);
    }

    .legacy-description {
        margin-bottom: 30px;
    }

    .legacy-description p {
        line-height: 1.7;
    }

    .legacy-stat {
        min-height: 100px;
        padding: 18px 24px;
    }

    .home-contact.section {
        min-height: 100svh;
        display: grid;
        align-items: center;
        padding-top: 72px;
        padding-bottom: 72px;
    }
}

/* =========================================================
   HOME CONTACT — PREMIUM CLOSING STATEMENT
========================================================= */

.home-contact.section {
    position: relative;
    isolation: isolate;
    overflow: hidden;

    display: grid;
    place-items: center;

    padding:
        clamp(100px, 12vh, 150px)
        var(--page-padding);

    border-top: 1px solid rgba(255,255,255,.08);
    border-bottom: 1px solid rgba(255,255,255,.06);

    background-image:
        linear-gradient(
            to bottom,
            rgba(4,4,5,.30) 0%,
            rgba(4,4,5,.56) 48%,
            rgba(4,4,5,.78) 100%
        ),
        linear-gradient(
            90deg,
            rgba(4,4,5,.42) 0%,
            rgba(4,4,5,.16) 50%,
            rgba(4,4,5,.34) 100%
        ),
        url("../images/properties/newport-coast-residence.webp?v=20260930");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.home-contact.section::before {
    content: "";

    position: absolute;
    top: 0;
    left: 50%;

    width: min(860px, 78vw);
    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(207,32,39,.78),
            transparent
        );

    transform: translateX(-50%);
}

.home-contact.section::after {
    content: "";

    position: absolute;
    top: 50%;
    left: 50%;
    z-index: -1;

    width: min(980px, 82vw);
    height: min(620px, 68vh);

    background:
        radial-gradient(
            circle,
            rgba(5,5,5,.05) 0%,
            rgba(5,5,5,.30) 56%,
            transparent 74%
        );

    transform: translate(-50%, -50%);
    pointer-events: none;
}

.home-contact-content {
    position: relative;
    z-index: 2;

    display: flex;
    flex-direction: column;
    align-items: center;

    width: min(100%, 1100px);
    max-width: 1100px;

    text-align: center;
}

.home-contact-logo {
    display: none;
}

.home-contact .section-kicker {
    justify-content: center;
    margin-bottom: 30px;
}

.home-contact .section-kicker::after {
    content: "";
    width: 42px;
    height: 1px;
    background: var(--color-red);
}

.home-contact-content h2 {
    max-width: 900px;

    margin: 0;

    color: #fff;

    font-family: var(--font-heading);
    font-size: clamp(4rem, 6.8vw, 7.4rem);
    font-weight: 300;
    line-height: .92;
    letter-spacing: -.045em;
    text-wrap: balance;

    text-shadow: 0 8px 34px rgba(0,0,0,.62);
}

.home-contact-content h2 span {
    display: block;

    margin-top: 8px;

    color: var(--color-red-light);
}

.home-contact-content p {
    max-width: 680px;

    margin: 30px auto 0;

    color: rgba(255,255,255,.76);

    font-size: clamp(.9rem, 1vw, 1.02rem);
    font-weight: 300;
    line-height: 1.8;

    text-shadow: 0 4px 18px rgba(0,0,0,.72);
}

.home-contact-content .primary-button {
    min-width: 270px;

    margin-top: 38px;

    border-color: rgba(207,32,39,.72);
    background: rgba(8,8,8,.48);

    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.home-contact-content .primary-button:hover {
    background: rgba(164,22,26,.18);
}

@media (max-width: 820px) {

    .home-contact.section {
        min-height: auto;
        padding: 100px 22px 92px;

        background-position: 58% center;
    }

    .home-contact.section::after {
        width: 92vw;
        height: 62vh;
        transform: translate(-50%, -50%);
    }

    .home-contact-logo {
        width: 74px;
        margin-bottom: 26px;
    }

    .home-contact .section-kicker {
        margin-bottom: 24px;
        font-size: .59rem;
        letter-spacing: .25em;
    }

    .home-contact-content h2 {
        font-size: clamp(2.8rem, 13vw, 4.2rem);
        line-height: .96;
    }

    .home-contact-content h2 span {
        margin-top: 6px;
    }

    .home-contact-content p {
        margin-top: 24px;
        font-size: .88rem;
        line-height: 1.7;
    }

    .home-contact-content .primary-button {
        width: min(100%, 340px);
        min-width: 0;
        margin-top: 32px;
    }
}


/* =========================================================
   MAIN INFORMATION
========================================================= */

.listing-showcase-main {
    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    z-index: 3;

    padding:
        clamp(26px, 2.4vw, 38px);

    transition:
        transform .65s cubic-bezier(.22,1,.36,1);
}


.listing-showcase-card:hover
.listing-showcase-main {

    transform:
        translateY(-145px);
}


/* STATUS */

.listing-status {
    display: inline-block;

    margin-bottom: 16px;

    color:
        rgba(255,255,255,.65);

    font-size: .56rem;

    font-weight: 600;

    letter-spacing: .20em;

    text-transform: uppercase;
}


.listing-status.active {
    color: #ed343a;
}


.listing-status.pending {
    color: rgba(255,255,255,.68);
}


/* ADDRESS */

.listing-showcase-main h2 {
    margin: 0;

    max-width: 95%;

    color: #fff;

    font-family:
        var(--font-heading);

    font-size:
        clamp(2rem, 2.3vw, 2.8rem);

    font-weight: 400;

    line-height: .98;

    letter-spacing: -.025em;

    text-shadow:
        0 5px 25px rgba(0,0,0,.75);
}


/* LOCATION */

.listing-showcase-main p {
    margin-top: 12px;

    color:
        rgba(255,255,255,.62);

    font-family:
        var(--font-body);

    font-size: .65rem;

    line-height: 1.5;

    letter-spacing: .025em;
}


/* =========================================================
   HOVER INFORMATION
========================================================= */

.listing-showcase-hover {
    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    z-index: 4;

    padding:
        0
        clamp(26px, 2.4vw, 38px)
        clamp(25px, 2.3vw, 34px);

    opacity: 0;

    transform:
        translateY(24px);

    transition:
        opacity .5s ease,
        transform .65s cubic-bezier(.22,1,.36,1);
}


.listing-showcase-card:hover
.listing-showcase-hover {

    opacity: 1;

    transform:
        translateY(0);
}


/* PRICE */

.listing-price {
    display: block;

    margin-bottom: 20px;

    color:
        #ed343a;

    font-family:
        var(--font-heading);

    font-size:
        clamp(1.6rem, 1.9vw, 2.05rem);

    font-weight: 400;

    line-height: 1;

    letter-spacing: -.015em;
}


/* SPECS */

.listing-specs {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0,1fr));

    gap: 12px;

    padding-bottom: 18px;

    border-bottom:
        1px solid rgba(255,255,255,.16);
}


.listing-specs span {
    display: flex;

    flex-direction: column;

    gap: 5px;

    color:
        rgba(255,255,255,.45);

    font-family:
        var(--font-body);

    font-size: .52rem;

    letter-spacing: .12em;

    text-transform: uppercase;
}

.listing-specs .property-spec-icon {
    width: 17px;
    height: 17px;
    margin-bottom: 3px;
}


.listing-specs strong {
    color: #fff;

    font-size: .85rem;

    font-weight: 500;

    letter-spacing: 0;
}


/* VIEW DETAILS */

.listing-view {
    display: flex;

    align-items: center;

    justify-content: space-between;

    margin-top: 18px;

    color:
        rgba(255,255,255,.78);

    font-size: .55rem;

    font-weight: 500;

    letter-spacing: .20em;

    text-transform: uppercase;

    transition:
        color .3s ease;
}


.listing-view span {
    color: #ed343a;

    font-size: 1rem;

    transition:
        transform .35s ease;
}


.listing-view:hover {
    color: #fff;
}


.listing-view:hover span {
    transform:
        translateX(6px);
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 1100px) {

    .premium-property-grid {
        grid-template-columns:
            repeat(2, minmax(0,1fr)) !important;
    }

}


/* =========================================================
   MOBILE / TOUCH
========================================================= */

@media (hover: none), (max-width: 680px) {

    .premium-property-grid {
        grid-template-columns:
            1fr !important;
    }


    .listing-showcase-main {
        transform:
            translateY(-140px);
    }


    .listing-showcase-hover {
        opacity: 1;

        transform:
            translateY(0);
    }

}/* =========================================================
   LISTING CARDS — FINAL REFINEMENT
========================================================= */

.listing-showcase-image {
    aspect-ratio: 5 / 6;
}


/* FOTO PIÙ NATURALE */

.listing-showcase-image img {
    filter:
        brightness(.88)
        contrast(1.04)
        saturate(.92);
}


.listing-showcase-card:hover
.listing-showcase-image img {
    transform: scale(1.045);

    filter:
        brightness(.68)
        contrast(1.06)
        saturate(.94);
}


/* GRADIENTE MENO PESANTE */

.listing-showcase-overlay {
    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.01) 0%,
            rgba(0,0,0,.02) 38%,
            rgba(0,0,0,.24) 62%,
            rgba(0,0,0,.88) 100%
        );
}


.listing-showcase-card:hover
.listing-showcase-overlay {
    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.03) 0%,
            rgba(0,0,0,.09) 38%,
            rgba(0,0,0,.38) 63%,
            rgba(0,0,0,.94) 100%
        );
}


/* CONTENUTO */

.listing-showcase-main {
    padding:
        clamp(22px, 2vw, 31px);
}


/* MOVIMENTO PIÙ ELEGANTE */

.listing-showcase-card:hover
.listing-showcase-main {
    transform: translateY(-92px);
}


/* STATUS */

.listing-status {
    margin-bottom: 12px;

    font-size: .52rem;

    letter-spacing: .22em;
}


/* TITOLO PIÙ RAFFINATO */

.listing-showcase-main h2 {
    max-width: 90%;

    font-size:
        clamp(1.65rem, 2vw, 2.35rem);

    line-height: 1;

    letter-spacing: -.02em;
}


/* LOCATION */

.listing-showcase-main p {
    margin-top: 9px;

    font-size: .61rem;
}


/* HOVER */

.listing-showcase-hover {
    padding:
        0
        clamp(22px, 2vw, 31px)
        25px;
}


/* PREZZO */

.listing-price {
    margin-bottom: 15px;

    font-size:
        clamp(1.45rem, 1.7vw, 1.9rem);
}


/* DATI */

.listing-specs {
    padding-bottom: 14px;
}


/* VIEW */

.listing-view {
    margin-top: 14px;
}/* =========================================================
   LISTING CARDS — PRICE ALWAYS VISIBLE
========================================================= */


/* Il blocco principale sale molto meno */

.listing-showcase-card:hover
.listing-showcase-main {
    transform: translateY(-62px);
}


/* Prezzo visibile sempre */

.listing-price {
    display: block;

    margin-top: 16px;
    margin-bottom: 0;

    color: var(--color-red-light);

    font-family: var(--font-heading);

    font-size:
        clamp(1.45rem, 1.7vw, 1.9rem);

    font-weight: 400;

    line-height: 1;

    letter-spacing: -.015em;
}


/* Il blocco hover contiene solo specs + view details */

.listing-showcase-hover {
    padding:
        0
        clamp(22px, 2vw, 31px)
        24px;

    opacity: 0;

    transform: translateY(18px);

    transition:
        opacity .45s ease,
        transform .55s cubic-bezier(.22,1,.36,1);
}


.listing-showcase-card:hover
.listing-showcase-hover {
    opacity: 1;

    transform: translateY(0);
}


/* Spazio per non sovrapporre i contenuti */

.listing-specs {
    margin-top: 12px;

    padding-bottom: 14px;
}


/* Hover più delicato */

.listing-showcase-card:hover
.listing-showcase-image img {
    transform: scale(1.04);

    filter:
        brightness(.70)
        contrast(1.06)
        saturate(.94);
}/* =========================================================
   PROPERTY CARDS — CLEAN FINAL HOVER
========================================================= */

/* La card rimane pulita */
.listing-showcase-image {
    position: relative;
    overflow: hidden;
}


/* BLOCCO PRINCIPALE */

.listing-showcase-main {
    bottom: 0;

    padding: 28px 30px 30px;

    transition:
        transform .55s cubic-bezier(.22, 1, .36, 1);
}


/* In hover sale abbastanza da creare lo spazio sotto */

.listing-showcase-card:hover .listing-showcase-main {
    transform: translateY(-125px);
}


/* PREZZO */

.listing-price {
    display: block;

    margin-top: 16px;
    margin-bottom: 0;

    color: #ed343a;

    font-size: clamp(1.45rem, 1.7vw, 1.85rem);

    line-height: 1;

    white-space: nowrap;
}


/* =========================================================
   PARTE CHE APPARE IN HOVER
========================================================= */

.listing-showcase-hover {
    position: absolute;

    left: 30px;
    right: 30px;
    bottom: 25px;

    z-index: 5;

    padding: 0;

    opacity: 0;

    transform: translateY(20px);

    pointer-events: none;

    transition:
        opacity .4s ease,
        transform .5s cubic-bezier(.22, 1, .36, 1);
}


.listing-showcase-card:hover .listing-showcase-hover {
    opacity: 1;

    transform: translateY(0);

    pointer-events: auto;
}


/* =========================================================
   BEDS / BATHS / SQ FT
========================================================= */

.listing-specs {
    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 20px;

    margin: 0;

    padding: 0 0 17px;

    border-bottom:
        1px solid rgba(255,255,255,.22);
}


.listing-specs span {
    display: flex;

    flex-direction: column;

    gap: 5px;

    color: rgba(255,255,255,.55);

    font-size: .52rem;

    letter-spacing: .12em;

    text-transform: uppercase;
}


.listing-specs strong {
    color: #fff;

    font-size: .9rem;

    font-weight: 600;

    line-height: 1;
}


/* =========================================================
   VIEW DETAILS
========================================================= */

.listing-view {
    display: flex;

    justify-content: space-between;

    align-items: center;

    margin-top: 17px;

    color: #fff;

    font-size: .55rem;

    font-weight: 600;

    letter-spacing: .18em;

    text-transform: uppercase;
}


.listing-view span {
    color: #ed343a;

    font-size: 1.1rem;
}


/* =========================================================
   IMAGE HOVER
========================================================= */

.listing-showcase-card:hover
.listing-showcase-image img {

    transform: scale(1.035);

    filter:
        brightness(.64)
        contrast(1.05)
        saturate(.92);
}


/* Gradiente più forte SOLO nella parte bassa */

.listing-showcase-card:hover
.listing-showcase-overlay {

    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.02) 0%,
            rgba(0,0,0,.06) 35%,
            rgba(0,0,0,.38) 60%,
            rgba(0,0,0,.96) 100%
        );
}
/* =========================================================
   MOBILE COMPOSITION — FINAL ALIGNMENT PASS
   Navigation, home portrait pairing, agent stories and bios
========================================================= */

[id] {
    scroll-margin-top: 84px;
}


@media (max-width: 1100px) {

    .mobile-navigation {
        width: 100%;
        height: 100vh;
        height: 100dvh;

        padding:
            max(96px, calc(76px + env(safe-area-inset-top)))
            max(24px, env(safe-area-inset-right))
            max(36px, calc(24px + env(safe-area-inset-bottom)))
            max(24px, env(safe-area-inset-left));

        justify-content: flex-start;
        gap: clamp(14px, 3.2vh, 28px);

        overflow-x: hidden;
        overflow-y: auto;

        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;

        background: #070707;
    }


    .mobile-navigation::before {
        height: min(240px, 32dvh);
    }


    .mobile-navigation a {
        flex: 0 0 auto;

        display: flex;
        align-items: center;
        justify-content: center;

        min-height: 48px;
        padding: 3px 16px;

        font-size: clamp(2rem, 7.5vw, 3.55rem);
        line-height: 1;
    }
}


@media (max-height: 600px) and (max-width: 1100px) {

    .site-header {
        min-height: 62px;
        padding-top: max(7px, env(safe-area-inset-top));
        padding-bottom: 7px;
    }


    .header-brand-icon {
        width: 34px;
        height: 34px;
    }


    .menu-toggle {
        width: 44px;
        height: 44px;
    }


    .mobile-navigation {
        padding-top: max(68px, calc(56px + env(safe-area-inset-top)));
        padding-bottom: max(18px, env(safe-area-inset-bottom));

        gap: 5px;
    }


    .mobile-navigation a {
        min-height: 36px;
        padding-block: 1px;

        font-size: clamp(1.45rem, 6.6vh, 2rem);
    }
}


@media (max-width: 820px) {

    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: clip;
    }


    * {
        scrollbar-width: none;
    }


    *::-webkit-scrollbar {
        width: 0;
        height: 0;
    }


    .site-header {
        padding-left: max(18px, env(safe-area-inset-left));
        padding-right: max(18px, env(safe-area-inset-right));
    }


    /* HOME HERO — two intentional, equally sized portraits */

    .hero {
        min-height: max(720px, 100dvh);
    }


    .hero-content {
        top: max(91px, calc(76px + env(safe-area-inset-top)));
        bottom: auto;

        width: min(calc(100% - 36px), 520px);

        padding: 0 4px;

        transform: translateX(-50%);
    }


    .hero-content::before {
        width: 126%;
    }


    .hero-main-logo {
        width: min(190px, 50vw);
        max-height: 105px;

        margin-bottom: 14px;
    }


    .hero-title-line {
        width: 54px;
        margin-bottom: 15px;
    }


    .hero-title-wrapper h1 {
        max-width: 430px;

        font-size: clamp(2.55rem, 11.5vw, 3.65rem);
        line-height: .92;
    }


    .hero-title-wrapper h1 span {
        margin-top: 9px;
    }


    .hero-title-wrapper p {
        display: none;
    }


    .hero-content .primary-button {
        width: min(100%, 360px);
        min-width: 0;
        min-height: 60px;

        margin-top: 22px;
        padding: 0 23px;
    }


    .hero-agent,
    .hero-agent-reza,
    .hero-agent-andrew {
        top: auto;
        bottom: 0;

        width: 50%;
        height: clamp(300px, 42dvh, 520px);
        min-height: 0;

        overflow: hidden;

        background-repeat: no-repeat;
        background-size: cover;
    }


    .hero-agent-reza {
        left: 0;
        right: auto;

        border-right: 1px solid rgba(207, 32, 39, .34);

        background-image: url("../images/agents/reza-home-20260929.webp");
        background-position: 12% center;
    }


    .hero-agent-andrew {
        right: 0;
        left: auto;

        background-image: url("../images/agents/andrew-home-20260929.webp");
        background-position: 82% center;
    }


    .hero-agent .hero-agent-image {
        display: none;
    }


    .hero-agent::after,
    .hero-agent-andrew::after {
        left: 0;
        right: 0;

        height: 48%;

        background:
            linear-gradient(
                to bottom,
                transparent,
                rgba(5, 5, 6, .26) 40%,
                rgba(5, 5, 6, .95) 100%
            );
    }


    .hero-agent-information,
    .hero-agent-reza .hero-agent-information,
    .hero-agent-andrew .hero-agent-information {
        left: 50%;
        bottom: max(15px, env(safe-area-inset-bottom));

        display: flex;

        width: calc(100% - 20px);

        transform: translateX(-50%);
    }


    .hero-agent-information h2 {
        font-family: var(--font-body);
        font-size: clamp(.58rem, 2.4vw, .74rem);
        font-weight: 500;
        letter-spacing: .16em;
    }


    .hero-agent-line {
        width: 34px;
        margin: 8px 0 0;
    }


    .hero-agent-information p {
        display: none;
    }


    .scroll-indicator {
        display: none;
    }


    /* HOME ABOUT — photo first, centered and consistently sized */

    .team-story .agent-story,
    .team-story .agent-story-reza,
    .team-story .agent-story-andrew {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
    }


    .team-story .agent-story-visual,
    .team-story .agent-story-reza .agent-story-visual,
    .team-story .agent-story-andrew .agent-story-visual {
        order: 1;

        width: 100%;
        height: clamp(390px, 112vw, 560px);
        min-height: 0;
    }


    .team-story .agent-story-photo,
    .team-story .agent-story-reza .agent-story-photo,
    .team-story .agent-story-andrew .agent-story-photo {
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;

        width: 100%;
        height: 100%;
        max-width: none;

        object-fit: cover;

        transform: none;
        transform-origin: center;
    }


    .team-story .agent-story-reza .agent-story-photo {
        object-position: 12% center;
    }


    .team-story .agent-story-andrew .agent-story-photo {
        object-position: 82% center;
    }


    .team-story .agent-story-content,
    .team-story .agent-story-reza .agent-story-content,
    .team-story .agent-story-andrew .agent-story-content {
        order: 2;

        padding: 46px 22px 56px;
    }


    .team-story .agent-story-title {
        margin-bottom: 24px;

        font-size: clamp(2.65rem, 11.6vw, 3.7rem);
        line-height: .94;
    }


    .team-story .agent-story-description {
        margin-bottom: 32px;
    }


    .team-story .agent-story-stats {
        margin-bottom: 34px;
    }


    /* ABOUT — consistent editorial order: portrait, then story */

    .about-page-founder,
    .about-page-founder-andrew {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
    }


    .about-page-founder-visual,
    .about-page-founder-andrew .about-page-founder-visual {
        grid-column: 1;
        grid-row: 1;

        height: clamp(390px, 112vw, 550px);
        min-height: 0;
    }


    .about-page-founder-content,
    .about-page-founder-andrew .about-page-founder-content {
        grid-column: 1;
        grid-row: 2;

        padding: 42px 22px 44px;
    }


    .about-page-founder-reza .about-page-founder-visual img {
        object-position: 12% center;
    }


    .about-page-founder-andrew .about-page-founder-visual img {
        object-position: 82% center;
    }


    .about-page-founder-content h3 {
        font-size: clamp(2.75rem, 11.8vw, 3.85rem);
        line-height: .93;
    }


    .about-page-founder-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }


    .about-page-founder-stats > div,
    .about-page-founder-stats > div:first-child,
    .about-page-founder-stats > div:last-child {
        min-height: 84px;
        padding: 14px 6px;

        border-right: 1px solid rgba(255, 255, 255, .09);
        border-bottom: 0;

        text-align: center;
    }


    .about-page-founder-stats > div:last-child {
        border-right: 0;
    }


    .about-page-founder-stats strong {
        font-size: clamp(1.35rem, 5.8vw, 1.8rem);
    }


    .about-page-founder-stats span {
        font-size: .45rem;
        letter-spacing: .08em;
    }


    /* BIOGRAPHIES — keep names and faces inside a safe focal area */

    .biography-hero {
        min-height: max(700px, 100dvh);
    }


    .biography-page-reza .biography-hero-background {
        background-position: 18% center;
    }


    .biography-page-andrew .biography-hero-background {
        background-position: 80% center;
    }


    .biography-page-reza .biography-hero-overlay,
    .biography-page-andrew .biography-hero-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(3, 3, 4, .32) 0%,
                rgba(3, 3, 4, .18) 34%,
                rgba(3, 3, 4, .78) 59%,
                rgba(3, 3, 4, .98) 100%
            );
    }


    .biography-hero-content,
    .biography-page-reza .biography-hero-content,
    .biography-page-andrew .biography-hero-content {
        width: 100%;
        min-width: 0;
        min-height: max(700px, 100dvh);

        padding:
            max(104px, calc(82px + env(safe-area-inset-top)))
            18px
            max(34px, env(safe-area-inset-bottom));

        grid-template-columns: minmax(0, 1fr);
        align-content: end;
    }


    .biography-page-reza .biography-hero-copy,
    .biography-page-reza .biography-hero-stats,
    .biography-page-andrew .biography-hero-copy,
    .biography-page-andrew .biography-hero-stats {
        width: 100%;
        max-width: 100%;
        min-width: 0;

        grid-column: 1;

        margin-right: 0;
        margin-left: 0;

        text-align: left;
    }


    .biography-kicker {
        font-size: .55rem;
        letter-spacing: .17em;
    }


    .biography-hero-copy h1 {
        max-width: 100%;

        margin-top: 20px;

        font-size: clamp(3.75rem, 17.5vw, 5.4rem);
        letter-spacing: -.045em;
        line-height: .81;
    }


    .biography-hero-copy h1 span {
        margin-top: 12px;
    }


    .biography-hero-tagline {
        margin-top: 24px;

        font-size: clamp(1.45rem, 6.7vw, 1.95rem);
    }


    .biography-primary-button {
        width: 100%;
        min-height: 60px;

        margin-top: 26px;
    }


    .biography-hero-stats {
        margin-top: 28px;
    }


    .biography-hero-stats > div,
    .biography-hero-stats > div:first-child {
        min-height: 78px;
        padding: 12px 6px;

        text-align: center;
    }


    .biography-hero-stats strong {
        font-size: clamp(1.35rem, 6.4vw, 1.8rem);
    }


    .biography-hero-stats span {
        font-size: .41rem;
        letter-spacing: .065em;
    }


    /* Larger touch areas in long mobile pages */

    .site-footer .footer-column a,
    .about-page-text-link,
    .biography-secondary-link,
    .listing-view {
        min-height: 44px;
    }
}


@media (max-width: 430px) {

    .header-brand-text {
        display: none;
    }


    .hero {
        min-height: max(700px, 100dvh);
    }


    .hero-content {
        top: max(86px, calc(72px + env(safe-area-inset-top)));
    }


    .hero-main-logo {
        width: min(172px, 48vw);
        margin-bottom: 12px;
    }


    .hero-title-wrapper h1 {
        font-size: clamp(2.35rem, 11.2vw, 3rem);
    }


    .hero-content .primary-button {
        min-height: 58px;
        margin-top: 19px;
    }


    .hero-agent,
    .hero-agent-reza,
    .hero-agent-andrew {
        height: clamp(280px, 40dvh, 350px);
    }


    .team-story .agent-story-visual,
    .team-story .agent-story-reza .agent-story-visual,
    .team-story .agent-story-andrew .agent-story-visual,
    .about-page-founder-visual,
    .about-page-founder-andrew .about-page-founder-visual {
        height: clamp(370px, 112vw, 485px);
    }


    .team-story .agent-story-content,
    .team-story .agent-story-reza .agent-story-content,
    .team-story .agent-story-andrew .agent-story-content,
    .about-page-founder-content,
    .about-page-founder-andrew .about-page-founder-content {
        padding-right: 19px;
        padding-left: 19px;
    }
}


/* =========================================================
   SERVICES — DISTINCT CLIENT JOURNEYS
========================================================= */

.service-card.is-selected {
    border-color: rgba(207, 32, 39, 0.72);
    box-shadow:
        0 24px 70px rgba(0, 0, 0, 0.42),
        0 0 34px rgba(164, 22, 26, 0.10);
}

.service-card.is-selected::before {
    border-color: rgba(207, 32, 39, 0.38);
}

.service-card.is-selected .service-icon {
    color: #ffffff;
    background: rgba(164, 22, 26, 0.72);
}

.service-card.is-selected .service-card-link {
    color: #ffffff;
    border-color: var(--color-red-light);
}

.service-experience {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(250px, 0.8fr) minmax(0, 1.45fr);
    gap: clamp(44px, 6vw, 100px);
    width: min(100%, var(--content-width));
    margin: clamp(34px, 5vw, 72px) auto 0;
    padding: clamp(44px, 5vw, 76px);
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.11);
    background:
        radial-gradient(circle at 8% 12%, rgba(164, 22, 26, 0.16), transparent 34%),
        linear-gradient(135deg, rgba(18, 18, 18, 0.98), rgba(5, 5, 5, 0.99));
    box-shadow: 0 30px 90px rgba(0, 0, 0, 0.36);
    transition:
        opacity 220ms ease,
        transform 500ms cubic-bezier(0.22, 1, 0.36, 1),
        border-color 400ms ease;
}

.service-experience::before {
    content: "";
    position: absolute;
    top: 0;
    left: clamp(44px, 5vw, 76px);
    width: 92px;
    height: 2px;
    background: linear-gradient(90deg, var(--color-red-light), transparent);
}

.service-experience::after {
    content: attr(data-active-service);
    position: absolute;
    right: -0.04em;
    bottom: -0.19em;
    color: rgba(255, 255, 255, 0.018);
    font-family: var(--font-heading);
    font-size: clamp(7rem, 15vw, 15rem);
    line-height: 1;
    text-transform: uppercase;
    pointer-events: none;
}

.service-experience.is-changing {
    opacity: 0.38;
    transform: translateY(8px);
}

.service-experience-intro,
.service-experience-content {
    position: relative;
    z-index: 1;
}

.service-experience-eyebrow {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 24px;
    color: var(--color-red-light);
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0.26em;
    line-height: 1.5;
    text-transform: uppercase;
}

.service-experience-eyebrow::before {
    content: "";
    flex: 0 0 34px;
    height: 1px;
    background: currentColor;
}

.service-experience-intro h3 {
    max-width: 520px;
    color: #ffffff;
    font-size: clamp(2.7rem, 4.5vw, 5.3rem);
    font-weight: 400;
    letter-spacing: -0.045em;
    line-height: 0.96;
}

.service-experience-intro h3 em {
    display: block;
    margin-top: 0.06em;
    color: var(--color-red-light);
    font-weight: 400;
}

.service-experience-intro > p {
    max-width: 510px;
    margin-top: 30px;
    color: rgba(255, 255, 255, 0.58);
    font-size: clamp(0.94rem, 1.15vw, 1.08rem);
    line-height: 1.85;
}

.service-experience-pillars {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(20px, 2.6vw, 42px);
}

.service-experience-pillars article {
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}

.service-experience-pillars article > span {
    display: block;
    margin-bottom: clamp(36px, 5vw, 68px);
    color: var(--color-red-light);
    font-family: var(--font-heading);
    font-size: 1.05rem;
    letter-spacing: 0.12em;
}

.service-experience-pillars h4 {
    margin-bottom: 14px;
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: clamp(1.35rem, 1.8vw, 1.9rem);
    font-weight: 400;
    line-height: 1.08;
}

.service-experience-pillars p {
    color: rgba(255, 255, 255, 0.50);
    font-size: 0.82rem;
    line-height: 1.75;
}

.service-experience-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px 34px;
    margin-top: clamp(42px, 5vw, 68px);
}

.service-experience-primary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 34px;
    min-width: min(100%, 315px);
    padding: 22px 24px;
    border: 1px solid rgba(207, 32, 39, 0.82);
    color: #ffffff;
    font-size: 0.62rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    transition: background-color 300ms ease, border-color 300ms ease;
}

.service-experience-primary span:last-child {
    color: var(--color-red-light);
    font-size: 1rem;
    transition: transform 300ms ease;
}

.service-experience-primary:hover,
.service-experience-primary:focus-visible {
    border-color: var(--color-red-light);
    background: rgba(164, 22, 26, 0.18);
}

.service-experience-primary:hover span:last-child,
.service-experience-primary:focus-visible span:last-child {
    transform: translateX(6px);
}

.service-experience-secondary {
    padding: 12px 0 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.24);
    color: rgba(255, 255, 255, 0.70);
    font-size: 0.61rem;
    font-weight: 600;
    letter-spacing: 0.17em;
    text-transform: uppercase;
    transition: color 300ms ease, border-color 300ms ease;
}

.service-experience-secondary:hover,
.service-experience-secondary:focus-visible {
    color: #ffffff;
    border-color: var(--color-red-light);
}

@media (max-width: 980px) {
    .service-experience {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .service-experience-intro h3,
    .service-experience-intro > p {
        max-width: 720px;
    }
}

@media (max-width: 680px) {
    .service-experience {
        gap: 42px;
        margin-top: 28px;
        padding: 38px 24px 42px;
    }

    .service-experience::before {
        left: 24px;
    }

    .service-experience-eyebrow {
        gap: 12px;
        font-size: 0.55rem;
        letter-spacing: 0.20em;
    }

    .service-experience-intro h3 {
        font-size: clamp(2.55rem, 12vw, 4rem);
    }

    .service-experience-pillars {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .service-experience-pillars article > span {
        margin-bottom: 22px;
    }

    .service-experience-actions {
        align-items: stretch;
        flex-direction: column;
        margin-top: 40px;
    }

    .service-experience-primary {
        width: 100%;
        min-width: 0;
    }

    .service-experience-secondary {
        align-self: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .service-experience {
        transition: none;
    }
}


/* =========================================================
   SERVICE CARDS — EDITORIAL PATHS
========================================================= */

.service-card-note {
    max-width: 320px;
    margin: -8px 0 24px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 0.82rem;
    line-height: 1.65;
}


/* =========================================================
   INDIVIDUAL SERVICE JOURNEYS
========================================================= */

.service-journey-page {
    overflow-x: hidden;
    background: #050505;
}

.service-journey-page .site-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.service-journey-hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: 100svh;
    padding:
        clamp(150px, 17vh, 220px)
        var(--page-padding)
        clamp(94px, 11vh, 140px);
    overflow: hidden;
    isolation: isolate;
}

.service-journey-hero-image,
.service-journey-hero-shade {
    position: absolute;
    inset: 0;
}

.service-journey-hero-image {
    z-index: -3;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    transform: scale(1.025);
    animation: serviceJourneyReveal 1.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.service-journey-hero--buy .service-journey-hero-image {
    background-image: url("../images/services/buying-hero.webp?v=20260930");
    background-position: center 50%;
}

.service-journey-hero--sell .service-journey-hero-image {
    background-image: url("../images/services/selling-hero.webp?v=20260930");
    background-position: center 50%;
}

.service-journey-hero--lease .service-journey-hero-image {
    background-image: url("../images/services/leasing-hero.webp?v=20260930");
    background-position: center 50%;
}

.service-journey-hero-shade {
    z-index: -2;
    background:
        linear-gradient(90deg, rgba(2, 2, 2, 0.94) 0%, rgba(2, 2, 2, 0.72) 38%, rgba(2, 2, 2, 0.20) 72%, rgba(2, 2, 2, 0.34) 100%),
        linear-gradient(0deg, rgba(2, 2, 2, 0.88) 0%, transparent 47%, rgba(2, 2, 2, 0.28) 100%);
}

.service-journey-hero-content {
    width: min(100%, var(--content-width));
    margin-inline: auto;
}

.service-journey-index {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: clamp(24px, 3.5vh, 40px);
    color: var(--color-red-light);
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.28em;
    text-transform: uppercase;
}

.service-journey-index::before {
    content: "";
    width: 54px;
    height: 1px;
    background: currentColor;
}

.service-journey-hero h1 {
    max-width: 930px;
    color: #ffffff;
    font-size: clamp(4rem, 7.3vw, 8.4rem);
    font-weight: 400;
    letter-spacing: -0.052em;
    line-height: 0.89;
    text-wrap: balance;
}

.service-journey-hero h1 em {
    display: block;
    color: var(--color-red-light);
    font-weight: 400;
}

.service-journey-hero-content > p {
    max-width: 620px;
    margin-top: clamp(28px, 4vh, 44px);
    color: rgba(255, 255, 255, 0.66);
    font-size: clamp(0.98rem, 1.25vw, 1.16rem);
    line-height: 1.82;
}

.service-journey-hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px 38px;
    margin-top: clamp(34px, 5vh, 54px);
}

.service-journey-button {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 42px;
    min-width: 285px;
    padding: 23px 25px;
    border: 1px solid rgba(207, 32, 39, 0.88);
    color: #ffffff;
    background: rgba(5, 5, 5, 0.34);
    font-size: 0.64rem;
    font-weight: 600;
    letter-spacing: 0.19em;
    text-transform: uppercase;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: background-color 300ms ease, border-color 300ms ease;
}

.service-journey-button span {
    color: var(--color-red-light);
    font-size: 1rem;
    transition: transform 300ms ease;
}

.service-journey-button:hover,
.service-journey-button:focus-visible {
    border-color: var(--color-red-light);
    background: rgba(164, 22, 26, 0.22);
}

.service-journey-button:hover span,
.service-journey-button:focus-visible span {
    transform: translateX(6px);
}

.service-journey-text-link {
    padding: 13px 0 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.32);
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.61rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    transition: color 300ms ease, border-color 300ms ease;
}

.service-journey-text-link:hover,
.service-journey-text-link:focus-visible {
    color: #ffffff;
    border-color: var(--color-red-light);
}

.service-journey-scroll {
    position: absolute;
    right: var(--page-padding);
    bottom: clamp(42px, 6vh, 72px);
    display: flex;
    align-items: center;
    gap: 18px;
    color: rgba(255, 255, 255, 0.52);
    font-size: 0.55rem;
    font-weight: 600;
    letter-spacing: 0.24em;
    text-transform: uppercase;
}

.service-journey-scroll span {
    color: var(--color-red-light);
    font-size: 1rem;
}

.service-journey-story {
    display: grid;
    grid-template-columns: minmax(280px, 0.85fr) minmax(320px, 1.15fr);
    gap: clamp(50px, 9vw, 150px);
    width: min(calc(100% - (var(--page-padding) * 2)), var(--content-width));
    margin-inline: auto;
    padding: clamp(110px, 13vw, 190px) 0;
}

.service-journey-story-heading h2,
.service-journey-close h2 {
    max-width: 680px;
    margin-top: 24px;
    color: #ffffff;
    font-size: clamp(3.5rem, 6.3vw, 7rem);
    font-weight: 400;
    letter-spacing: -0.05em;
    line-height: 0.93;
}

.service-journey-story-heading h2 em,
.service-journey-close h2 em {
    display: block;
    color: var(--color-red-light);
    font-weight: 400;
}

.service-journey-story-copy {
    align-self: end;
    max-width: 670px;
    padding-bottom: 8px;
}

.service-journey-story-copy .service-journey-lead {
    margin-bottom: 28px;
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: clamp(1.8rem, 2.75vw, 3.2rem);
    line-height: 1.12;
}

.service-journey-story-copy > p:last-child {
    color: rgba(255, 255, 255, 0.54);
    font-size: clamp(0.94rem, 1.12vw, 1.08rem);
    line-height: 1.9;
}

.service-journey-signatures {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(26px, 4vw, 70px);
    margin-top: clamp(38px, 7vw, 96px);
}

.service-journey-signatures article {
    position: relative;
    padding: 34px 0 4px;
    border-top: 1px solid rgba(255, 255, 255, 0.17);
}

.service-journey-signatures article::before {
    content: "";
    position: absolute;
    top: -1px;
    left: 0;
    width: 38px;
    height: 1px;
    background: var(--color-red-light);
}

.service-journey-signatures span {
    color: var(--color-red-light);
    font-size: 0.58rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.service-journey-signatures h3 {
    margin: 36px 0 15px;
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: clamp(1.65rem, 2.35vw, 2.7rem);
    font-weight: 400;
    line-height: 1.04;
}

.service-journey-signatures p {
    max-width: 370px;
    color: rgba(255, 255, 255, 0.48);
    font-size: 0.84rem;
    line-height: 1.8;
}

.service-journey-statement {
    display: grid;
    place-items: center;
    min-height: clamp(520px, 70vh, 780px);
    padding: 100px var(--page-padding);
    border-block: 1px solid rgba(255, 255, 255, 0.08);
    background:
        radial-gradient(circle at 50% 50%, rgba(164, 22, 26, 0.16), transparent 43%),
        #080808;
}

.service-journey-statement p {
    max-width: 1230px;
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: clamp(3.1rem, 6.2vw, 7.3rem);
    letter-spacing: -0.045em;
    line-height: 0.98;
    text-align: center;
    text-wrap: balance;
}

.service-journey-statement em {
    color: var(--color-red-light);
    font-weight: 400;
}

.service-journey-close {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.65fr);
    gap: clamp(50px, 9vw, 150px);
    align-items: end;
    width: min(calc(100% - (var(--page-padding) * 2)), var(--content-width));
    margin-inline: auto;
    padding: clamp(110px, 13vw, 190px) 0;
}

.service-journey-close > div:last-child p {
    max-width: 500px;
    margin-bottom: 34px;
    color: rgba(255, 255, 255, 0.54);
    font-size: 0.96rem;
    line-height: 1.85;
}

.service-journey-switcher {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid rgba(255, 255, 255, 0.10);
}

.service-journey-switcher a {
    display: flex;
    flex-direction: column;
    gap: 13px;
    min-height: 210px;
    padding: clamp(44px, 5vw, 76px) var(--page-padding);
    color: #ffffff;
    font-family: var(--font-heading);
    font-size: clamp(1.8rem, 3vw, 3.5rem);
    transition: background-color 400ms ease, color 300ms ease;
}

.service-journey-switcher a + a {
    border-left: 1px solid rgba(255, 255, 255, 0.10);
}

.service-journey-switcher a span {
    color: var(--color-red-light);
    font-family: var(--font-body);
    font-size: 0.57rem;
    font-weight: 600;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.service-journey-switcher a:hover,
.service-journey-switcher a:focus-visible {
    background: rgba(164, 22, 26, 0.13);
}

.service-journey-footer {
    padding-top: 0;
}

.service-journey-footer .footer-bottom a {
    color: inherit;
}

@keyframes serviceJourneyReveal {
    from { opacity: 0.42; transform: scale(1.095); }
    to { opacity: 1; transform: scale(1.025); }
}

@media (max-width: 900px) {
    .service-journey-hero {
        align-items: flex-end;
    }

    .service-journey-hero-shade {
        background:
            linear-gradient(0deg, rgba(2, 2, 2, 0.96) 0%, rgba(2, 2, 2, 0.56) 61%, rgba(2, 2, 2, 0.32) 100%);
    }

    .service-journey-story,
    .service-journey-close {
        grid-template-columns: 1fr;
        gap: 52px;
    }

    .service-journey-signatures {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .service-journey-signatures article {
        display: grid;
        grid-template-columns: minmax(120px, 0.42fr) minmax(220px, 0.7fr) 1fr;
        gap: 28px;
        align-items: start;
    }

    .service-journey-signatures h3 {
        margin: 0;
    }
}

@media (max-width: 680px) {
    .service-card-note {
        margin-bottom: 22px;
        font-size: 0.78rem;
    }

    .service-journey-hero {
        min-height: 100svh;
        padding: 132px 24px 76px;
    }

    .service-journey-hero-image,
    .service-journey-hero--sell .service-journey-hero-image,
    .service-journey-hero--lease .service-journey-hero-image {
        background-position: 70% center;
    }

    .service-journey-index {
        gap: 13px;
        font-size: 0.54rem;
        letter-spacing: 0.21em;
    }

    .service-journey-index::before {
        width: 34px;
    }

    .service-journey-hero h1 {
        font-size: clamp(3.25rem, 15vw, 5.15rem);
        line-height: 0.92;
    }

    .service-journey-hero-content > p {
        margin-top: 26px;
        font-size: 0.91rem;
        line-height: 1.7;
    }

    .service-journey-hero-actions {
        align-items: stretch;
        flex-direction: column;
        margin-top: 32px;
    }

    .service-journey-button {
        width: 100%;
        min-width: 0;
    }

    .service-journey-text-link {
        align-self: flex-start;
    }

    .service-journey-scroll {
        display: none;
    }

    .service-journey-story,
    .service-journey-close {
        width: calc(100% - 44px);
        padding: 92px 0;
    }

    .service-journey-story-heading h2,
    .service-journey-close h2 {
        font-size: clamp(3rem, 14vw, 4.5rem);
    }

    .service-journey-signatures {
        margin-top: 24px;
    }

    .service-journey-signatures article {
        display: block;
    }

    .service-journey-signatures h3 {
        margin: 26px 0 12px;
    }

    .service-journey-statement {
        min-height: 520px;
        padding: 80px 22px;
    }

    .service-journey-statement p {
        font-size: clamp(2.7rem, 12vw, 4.2rem);
    }

    .service-journey-switcher {
        grid-template-columns: 1fr;
    }

    .service-journey-switcher a {
        min-height: 165px;
        padding: 42px 24px;
    }

    .service-journey-switcher a + a {
        border-top: 1px solid rgba(255, 255, 255, 0.10);
        border-left: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .service-journey-hero-image {
        animation: none;
    }
}


/* =========================================================
   CONTACT — PRIVATE CONSULTATION BOOKING
========================================================= */

.contact-hero-booking-link {
    width: min(330px, 100%);
    min-height: 62px;
    margin: 35px auto 0;
    padding: 0 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid rgba(230, 41, 48, .85);
    background: rgba(5, 5, 6, .38);
    color: #fff;
    font-size: .63rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-align: left;
    text-transform: uppercase;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    transition:
        border-color .3s ease,
        background .3s ease,
        transform .3s ease;
}

.contact-hero-booking-link span:last-child {
    color: #ef3037;
    font-size: 1rem;
    animation: bookingArrowFloat 1.8s ease-in-out infinite;
}

.contact-hero-booking-link:hover,
.contact-hero-booking-link:focus-visible {
    border-color: #ef3037;
    background: rgba(164, 22, 26, .28);
    transform: translateY(-2px);
    outline: none;
}

@keyframes bookingArrowFloat {
    0%, 100% { transform: translateY(-2px); }
    50% { transform: translateY(3px); }
}

.booking-section {
    position: relative;
    overflow: hidden;
    padding:
        clamp(105px, 10vw, 170px)
        var(--page-padding)
        clamp(115px, 11vw, 185px);
    border-top: 1px solid rgba(255, 255, 255, .08);
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    background:
        radial-gradient(circle at 10% 20%, rgba(145, 16, 22, .14), transparent 29%),
        radial-gradient(circle at 88% 75%, rgba(112, 88, 66, .08), transparent 27%),
        linear-gradient(145deg, #09090a, #050506 66%);
}

.booking-section::before {
    content: "APPOINTMENT";
    position: absolute;
    top: clamp(20px, 3.5vw, 54px);
    left: 50%;
    color: rgba(255, 255, 255, .018);
    font-family: var(--font-heading);
    font-size: clamp(7rem, 15vw, 17rem);
    font-weight: 300;
    letter-spacing: -.055em;
    line-height: .75;
    white-space: nowrap;
    transform: translateX(-50%);
    pointer-events: none;
}

.booking-inner {
    position: relative;
    z-index: 1;
    width: min(100%, 1480px);
    margin: 0 auto;
}

.booking-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .7fr);
    gap: clamp(55px, 9vw, 145px);
    align-items: end;
    margin-bottom: clamp(58px, 7vw, 96px);
}

.booking-heading .section-kicker {
    margin-bottom: 25px;
    color: #e32930;
}

.booking-heading h2 {
    max-width: 890px;
    color: #f7f3ed;
    font-size: clamp(3.6rem, 6.2vw, 7.3rem);
    font-weight: 300;
    letter-spacing: -.045em;
    line-height: .89;
    text-wrap: balance;
}

.booking-heading h2 em {
    display: block;
    margin-top: 10px;
    color: #d52229;
    font-weight: 300;
}

.booking-heading-intro {
    padding-bottom: 8px;
}

.booking-heading-intro > p {
    max-width: 500px;
    color: rgba(255, 255, 255, .59);
    font-size: .95rem;
    line-height: 1.85;
}

.booking-assurances {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin-top: 27px;
}

.booking-assurances span {
    position: relative;
    padding-left: 14px;
    color: rgba(255, 255, 255, .68);
    font-size: .57rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.booking-assurances span::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #d8232a;
    transform: translateY(-50%);
    box-shadow: 0 0 10px rgba(216, 35, 42, .6);
}

.booking-experience {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, .37fr);
    border: 1px solid rgba(255, 255, 255, .11);
    background: rgba(12, 12, 13, .84);
    box-shadow: 0 45px 110px rgba(0, 0, 0, .38);
}

.booking-form-area {
    padding: clamp(38px, 4.8vw, 72px);
}

.booking-step {
    padding-bottom: clamp(36px, 4.2vw, 58px);
    border-bottom: 1px solid rgba(255, 255, 255, .085);
}

.booking-step + .booking-step {
    padding-top: clamp(36px, 4.2vw, 58px);
}

.booking-step:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.booking-step-heading {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    margin-bottom: 28px;
}

.booking-step-heading > span {
    padding-top: 2px;
    color: #d7232a;
    font-family: var(--font-heading);
    font-size: 1.35rem;
    line-height: 1;
}

.booking-step-heading strong {
    display: block;
    color: rgba(255, 255, 255, .93);
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1.1;
}

.booking-step-heading small {
    display: block;
    margin-top: 6px;
    color: rgba(255, 255, 255, .38);
    font-size: .68rem;
    letter-spacing: .035em;
    line-height: 1.5;
}

.booking-advisor-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.booking-advisor-option {
    position: relative;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 12px;
    gap: 13px;
    align-items: center;
    min-height: 92px;
    padding: 16px;
    border: 1px solid rgba(255, 255, 255, .105);
    background: rgba(255, 255, 255, .018);
    text-align: left;
    transition:
        border-color .35s ease,
        background .35s ease,
        transform .35s ease;
}

.booking-advisor-option:hover,
.booking-advisor-option:focus-visible {
    border-color: rgba(216, 35, 42, .55);
    background: rgba(164, 22, 26, .065);
    transform: translateY(-2px);
    outline: none;
}

.booking-advisor-option.is-selected {
    border-color: rgba(216, 35, 42, .82);
    background:
        linear-gradient(120deg, rgba(164, 22, 26, .15), rgba(255, 255, 255, .02));
}

.booking-advisor-monogram {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 50%;
    color: rgba(255, 255, 255, .8);
    font-family: var(--font-heading);
    font-size: .9rem;
    letter-spacing: .06em;
}

.booking-advisor-option.is-selected .booking-advisor-monogram {
    border-color: #cf2027;
    color: #fff;
    box-shadow: 0 0 20px rgba(164, 22, 26, .15);
}

.booking-advisor-option strong,
.booking-advisor-option small {
    display: block;
}

.booking-advisor-option strong {
    color: rgba(255, 255, 255, .87);
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .08em;
    line-height: 1.35;
    text-transform: uppercase;
}

.booking-advisor-option small {
    margin-top: 5px;
    color: rgba(255, 255, 255, .34);
    font-size: .54rem;
    line-height: 1.45;
}

.booking-advisor-option i {
    width: 9px;
    height: 9px;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 50%;
}

.booking-advisor-option.is-selected i {
    border-color: #d8232a;
    background: #d8232a;
    box-shadow: 0 0 10px rgba(216, 35, 42, .6);
}

.booking-calendar {
    margin-left: 56px;
}

.booking-calendar-navigation {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    align-items: center;
    margin-bottom: 14px;
}

.booking-calendar-navigation strong {
    color: rgba(255, 255, 255, .77);
    font-size: .64rem;
    font-weight: 600;
    letter-spacing: .18em;
    text-align: center;
    text-transform: uppercase;
}

.booking-calendar-navigation button {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .1);
    background: rgba(255, 255, 255, .015);
    color: rgba(255, 255, 255, .66);
    font-size: .9rem;
    transition:
        color .25s ease,
        border-color .25s ease,
        background .25s ease;
}

.booking-calendar-navigation button:hover:not(:disabled),
.booking-calendar-navigation button:focus-visible:not(:disabled) {
    border-color: rgba(216, 35, 42, .65);
    background: rgba(164, 22, 26, .1);
    color: #fff;
    outline: none;
}

.booking-calendar-navigation button:disabled {
    opacity: .24;
    cursor: default;
}

.booking-date-row {
    display: grid;
    grid-template-columns: repeat(7, minmax(64px, 1fr));
    gap: 8px;
}

.booking-date-row > button {
    min-height: 102px;
    padding: 13px 7px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .095);
    background: rgba(255, 255, 255, .015);
    transition:
        border-color .3s ease,
        background .3s ease,
        transform .3s ease;
}

.booking-date-row > button:hover,
.booking-date-row > button:focus-visible {
    border-color: rgba(216, 35, 42, .5);
    background: rgba(164, 22, 26, .07);
    transform: translateY(-2px);
    outline: none;
}

.booking-date-row > button.is-selected {
    border-color: #d8232a;
    background:
        linear-gradient(155deg, rgba(164, 22, 26, .28), rgba(164, 22, 26, .06));
    box-shadow: inset 0 0 22px rgba(164, 22, 26, .08);
}

.booking-date-row span,
.booking-date-row small {
    color: rgba(255, 255, 255, .38);
    font-size: .5rem;
    font-weight: 600;
    letter-spacing: .13em;
    line-height: 1;
    text-transform: uppercase;
}

.booking-date-row strong {
    margin: 9px 0 8px;
    color: rgba(255, 255, 255, .85);
    font-family: var(--font-heading);
    font-size: 1.55rem;
    font-weight: 400;
    line-height: .8;
}

.booking-date-row > button.is-selected span,
.booking-date-row > button.is-selected small,
.booking-date-row > button.is-selected strong {
    color: #fff;
}

.booking-calendar-loading {
    grid-column: 1 / -1;
    padding: 35px 0;
    text-align: center;
}

.booking-time-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-left: 56px;
}

.booking-time-options button {
    min-height: 74px;
    padding: 14px 16px;
    border: 1px solid rgba(255, 255, 255, .095);
    background: rgba(255, 255, 255, .015);
    text-align: left;
    transition:
        border-color .3s ease,
        background .3s ease,
        transform .3s ease;
}

.booking-time-options button:hover,
.booking-time-options button:focus-visible {
    border-color: rgba(216, 35, 42, .5);
    background: rgba(164, 22, 26, .07);
    transform: translateY(-2px);
    outline: none;
}

.booking-time-options button.is-selected {
    border-color: #d8232a;
    background:
        linear-gradient(130deg, rgba(164, 22, 26, .23), rgba(164, 22, 26, .04));
}

.booking-time-options button:disabled {
    cursor: not-allowed;
    opacity: .35;
}

.booking-time-options button:disabled:hover {
    border-color: rgba(255, 255, 255, .095);
    background: rgba(255, 255, 255, .015);
    transform: none;
}

.booking-time-options span,
.booking-time-options small {
    display: block;
}

.booking-time-options span {
    color: rgba(255, 255, 255, .86);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.booking-time-options small {
    margin-top: 5px;
    color: rgba(255, 255, 255, .36);
    font-size: .55rem;
}

.booking-summary {
    position: relative;
    padding: clamp(38px, 4vw, 58px) clamp(28px, 3.2vw, 46px);
    border-left: 1px solid rgba(255, 255, 255, .1);
    background:
        radial-gradient(circle at 50% 18%, rgba(164, 22, 26, .13), transparent 28%),
        linear-gradient(160deg, rgba(24, 24, 25, .98), rgba(7, 7, 8, .99));
    text-align: center;
}

.booking-summary::before,
.booking-summary::after {
    content: "";
    position: absolute;
    width: 42px;
    height: 42px;
    pointer-events: none;
}

.booking-summary::before {
    top: -1px;
    right: -1px;
    border-top: 1px solid #d8232a;
    border-right: 1px solid #d8232a;
}

.booking-summary::after {
    right: -1px;
    bottom: -1px;
    border-right: 1px solid #d8232a;
    border-bottom: 1px solid #d8232a;
}

.booking-summary-topline {
    display: flex;
    justify-content: space-between;
    padding-bottom: 17px;
    border-bottom: 1px solid rgba(255, 255, 255, .085);
    color: rgba(255, 255, 255, .5);
    font-size: .54rem;
    font-weight: 600;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.booking-summary-logo {
    width: 70px;
    margin: 37px auto 20px;
    filter: drop-shadow(0 0 22px rgba(164, 22, 26, .28));
}

.booking-summary-kicker {
    color: #d8232a;
    font-size: .55rem;
    font-weight: 600;
    letter-spacing: .25em;
    text-transform: uppercase;
}

.booking-summary h3 {
    margin-top: 13px;
    color: #f7f3ed;
    font-size: clamp(2.2rem, 3vw, 3.4rem);
    font-weight: 300;
    letter-spacing: -.025em;
    line-height: .95;
}

.booking-summary dl {
    margin-top: 38px;
    border-top: 1px solid rgba(255, 255, 255, .085);
    text-align: left;
}

.booking-summary dl > div {
    padding: 18px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .075);
}

.booking-summary dt {
    color: rgba(255, 255, 255, .32);
    font-size: .5rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.booking-summary dd {
    margin-top: 5px;
    color: rgba(255, 255, 255, .78);
    font-size: .71rem;
    line-height: 1.5;
}

.booking-continue-button {
    width: 100%;
    min-height: 64px;
    margin-top: 30px;
    padding: 0 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid #bd1c22;
    background:
        linear-gradient(90deg, rgba(164, 22, 26, .18), rgba(164, 22, 26, .035));
    color: #fff;
    font-size: .59rem;
    font-weight: 600;
    letter-spacing: .17em;
    text-align: left;
    text-transform: uppercase;
    transition:
        border-color .3s ease,
        background .3s ease,
        transform .3s ease,
        opacity .3s ease;
}

.booking-continue-button span:last-child {
    color: #e72b32;
    font-size: 1.1rem;
    transition: transform .3s ease;
}

.booking-continue-button:hover:not(:disabled),
.booking-continue-button:focus-visible:not(:disabled) {
    border-color: #e32930;
    background: #ad191f;
    transform: translateY(-2px);
    outline: none;
}

.booking-continue-button:hover:not(:disabled) span:last-child,
.booking-continue-button:focus-visible:not(:disabled) span:last-child {
    color: #fff;
    transform: translateX(4px);
}

.booking-continue-button:disabled {
    opacity: .34;
    cursor: not-allowed;
}

.booking-continue-button.is-complete {
    border-color: rgba(255, 255, 255, .25);
    background: rgba(255, 255, 255, .055);
}

.booking-confirmation-note {
    margin: 19px 0 0;
    color: rgba(255, 255, 255, .3);
    font-size: .58rem;
    line-height: 1.7;
}

@media (max-width: 1180px) {
    .booking-heading {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .booking-heading-intro > p {
        max-width: 680px;
    }

    .booking-experience {
        grid-template-columns: 1fr;
    }

    .booking-summary {
        border-top: 1px solid rgba(255, 255, 255, .1);
        border-left: 0;
    }

    .booking-summary dl {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .booking-summary dl > div {
        padding: 20px;
        border-right: 1px solid rgba(255, 255, 255, .075);
    }

    .booking-summary dl > div:last-child {
        border-right: 0;
    }

    .booking-continue-button {
        max-width: 420px;
        margin-right: auto;
        margin-left: auto;
    }

    .booking-confirmation-note {
        max-width: 500px;
        margin-right: auto;
        margin-left: auto;
    }
}

@media (max-width: 820px) {
    .booking-section {
        padding: 88px 20px 100px;
    }

    .booking-section::before {
        top: 26px;
        font-size: 6.6rem;
    }

    .booking-heading {
        margin-bottom: 48px;
    }

    .booking-heading h2 {
        font-size: clamp(3.1rem, 13.5vw, 4.8rem);
    }

    .booking-heading-intro > p {
        font-size: .88rem;
        line-height: 1.75;
    }

    .booking-form-area {
        padding: 34px 22px 42px;
    }

    .booking-advisor-options {
        grid-template-columns: 1fr;
    }

    .booking-advisor-option {
        min-height: 82px;
    }

    .booking-calendar,
    .booking-time-options {
        margin-left: 0;
    }

    .booking-date-row {
        grid-template-columns: repeat(7, minmax(72px, 1fr));
        padding-bottom: 9px;
        overflow-x: auto;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
        scrollbar-color: #b91c22 rgba(255, 255, 255, .04);
    }

    .booking-date-row > button {
        min-height: 94px;
        scroll-snap-align: start;
    }

    .booking-time-options {
        grid-template-columns: 1fr;
    }

    .booking-summary {
        padding: 37px 24px 34px;
    }

    .booking-summary-logo {
        margin-top: 29px;
    }

    .booking-summary dl {
        grid-template-columns: 1fr;
    }

    .booking-summary dl > div {
        padding: 15px 0;
        border-right: 0;
    }
}

@media (max-width: 430px) {
    .booking-section {
        padding-right: 14px;
        padding-left: 14px;
    }

    .booking-heading {
        padding: 0 6px;
    }

    .booking-heading h2 {
        font-size: clamp(2.8rem, 13vw, 3.65rem);
    }

    .booking-assurances {
        gap: 10px 15px;
    }

    .booking-form-area {
        padding-right: 17px;
        padding-left: 17px;
    }

    .booking-step-heading {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 9px;
    }

    .booking-advisor-option {
        grid-template-columns: 44px minmax(0, 1fr) 10px;
        padding: 13px;
    }

    .booking-advisor-monogram {
        width: 42px;
        height: 42px;
    }

    .booking-calendar-navigation {
        grid-template-columns: 38px minmax(0, 1fr) 38px;
    }

    .booking-calendar-navigation button {
        width: 38px;
        height: 38px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .booking-advisor-option,
    .booking-date-row > button,
    .booking-time-options button,
    .booking-continue-button,
    .booking-continue-button span {
        transition-duration: .01ms !important;
    }
}

/* =========================================================
   FINAL RESPONSIVE NAVIGATION SAFEGUARDS
========================================================= */

@media (min-width: 1101px) and (max-width: 1300px) {
    .site-header {
        padding-right: 30px;
        padding-left: 30px;
    }

    .header-brand {
        gap: 11px;
    }

    .header-brand-icon {
        width: 38px;
        height: 38px;
    }

    .header-brand-name {
        font-size: .76rem;
        letter-spacing: .13em;
    }

    .header-brand-subtitle {
        font-size: .44rem;
        letter-spacing: .4em;
    }

    .desktop-navigation {
        gap: clamp(16px, 2vw, 26px);
    }

    .desktop-navigation a {
        font-size: .61rem;
        letter-spacing: .17em;
    }
}

@media (max-width: 1380px) {
    .desktop-navigation {
        display: none;
    }

    .menu-toggle {
        display: block;
    }
}

@media (max-width: 820px) {
    .mobile-navigation {
        justify-content: flex-start;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }

    .mobile-navigation a:first-of-type {
        margin-top: auto;
    }

    .mobile-navigation a:last-of-type {
        margin-bottom: auto;
    }
}

/* =========================================================
   ACCESSIBILITY — KEYBOARD ENTRY POINT
========================================================= */

.skip-link {
    position: fixed;
    top: 14px;
    left: 14px;
    z-index: 20000;
    padding: 13px 18px;
    border: 1px solid var(--color-red-light);
    background: #080808;
    color: #ffffff;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    transform: translateY(calc(-100% - 30px));
    transition: transform 180ms ease;
}

.skip-link:focus {
    outline: 2px solid #ffffff;
    outline-offset: 3px;
    transform: translateY(0);
}

/* =========================================================
   PRIVACY NOTICE
========================================================= */

.footer-legal-links {
    display: flex;
    align-items: center;
    gap: 10px;
}

.site-footer .footer-maker {
    position: relative;
    z-index: 1;
    width: min(100%, var(--content-width));
    margin: 14px auto 0;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    column-gap: 16px;
    row-gap: 4px;
    color: rgba(255, 255, 255, .4);
    font-size: .66rem;
    letter-spacing: .055em;
    line-height: 1.5;
}

.footer-maker strong {
    color: rgba(255, 255, 255, .72);
    font-weight: 500;
}

.footer-maker a {
    color: rgba(255, 255, 255, .52);
    text-decoration: none;
    white-space: nowrap;
    transition: color 180ms ease;
}

.footer-maker a:hover,
.footer-maker a:focus-visible {
    color: #e12a31;
}

.footer-maker a:focus-visible {
    outline: 1px solid currentColor;
    outline-offset: 4px;
}

.footer-bottom a {
    color: inherit;
    text-decoration: none;
    transition: color 180ms ease;
}

.footer-bottom a:hover,
.footer-bottom a:focus-visible {
    color: rgba(255, 255, 255, .86);
}

.contact-privacy a {
    color: rgba(255, 255, 255, .7);
    text-underline-offset: 3px;
}

.contact-form-status {
    grid-column: 1 / -1;

    margin: 0;
    padding: 14px 16px;
    border: 1px solid rgba(198, 31, 39, .42);
    color: rgba(255, 255, 255, .78);
    font-size: .72rem;
    letter-spacing: .04em;
    line-height: 1.6;
}

.contact-form-status.is-success {
    border-color: rgba(99, 184, 126, .48);
    background: rgba(62, 132, 84, .1);
    color: rgba(231, 255, 238, .86);
}

.contact-form-status.is-error {
    border-color: rgba(224, 48, 57, .68);
    background: rgba(164, 22, 26, .12);
    color: rgba(255, 232, 233, .88);
}

.contact-form-status.is-preview {
    border-color: rgba(198, 31, 39, .42);
    background: rgba(255, 255, 255, .025);
}

.contact-form-trap {
    position: absolute !important;

    width: 1px !important;
    height: 1px !important;

    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;

    white-space: nowrap !important;
}

.contact-submit-button:disabled {
    cursor: wait;
    opacity: .58;
    transform: none;
}

.contact-form-panel,
.privacy-content section {
    scroll-margin-top: 118px;
}

.privacy-page {
    background: #050505;
    color: #f5f3ef;
}

.privacy-main {
    min-height: 100vh;
    padding-top: clamp(118px, 12vw, 170px);
    overflow: hidden;
}

.privacy-hero {
    position: relative;
    width: min(100% - 48px, var(--content-width));
    margin: 0 auto;
    padding: clamp(60px, 8vw, 112px) 0 clamp(64px, 8vw, 108px);
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.privacy-hero::before {
    content: "PRIVACY";
    position: absolute;
    right: -.04em;
    bottom: -.2em;
    color: rgba(255, 255, 255, .018);
    font-family: var(--font-heading);
    font-size: clamp(7rem, 18vw, 17rem);
    line-height: 1;
    pointer-events: none;
}

.privacy-kicker,
.privacy-updated,
.privacy-index > span {
    color: var(--color-red-light);
    font-size: .62rem;
    font-weight: 600;
    letter-spacing: .22em;
    text-transform: uppercase;
}

.privacy-hero h1 {
    position: relative;
    z-index: 1;
    max-width: 900px;
    margin: 20px 0 22px;
    font-family: var(--font-heading);
    font-size: clamp(4rem, 8vw, 8rem);
    font-weight: 300;
    letter-spacing: -.045em;
    line-height: .88;
}

.privacy-hero h1 em {
    display: block;
    color: var(--color-red-light);
    font-weight: 300;
}

.privacy-hero > p {
    position: relative;
    z-index: 1;
    max-width: 710px;
    margin: 0 0 26px;
    color: rgba(255, 255, 255, .62);
    font-size: clamp(.9rem, 1.25vw, 1.05rem);
    line-height: 1.85;
}

.privacy-updated {
    position: relative;
    z-index: 1;
    color: rgba(255, 255, 255, .36);
    letter-spacing: .14em;
}

.privacy-layout {
    width: min(100% - 48px, var(--content-width));
    margin: 0 auto;
    padding: clamp(72px, 9vw, 130px) 0;
    display: grid;
    grid-template-columns: minmax(190px, 260px) minmax(0, 1fr);
    gap: clamp(56px, 8vw, 130px);
    align-items: start;
}

.privacy-index {
    position: sticky;
    top: 120px;
    display: grid;
    gap: 16px;
    padding-left: 22px;
    border-left: 1px solid rgba(198, 31, 39, .55);
}

.privacy-index > span {
    margin-bottom: 10px;
}

.privacy-index a {
    color: rgba(255, 255, 255, .48);
    font-size: .68rem;
    letter-spacing: .08em;
    line-height: 1.5;
    text-decoration: none;
    text-transform: uppercase;
    transition: color 180ms ease, transform 180ms ease;
}

.privacy-index a:hover,
.privacy-index a:focus-visible {
    color: #ffffff;
    transform: translateX(5px);
}

.privacy-content section {
    position: relative;
    padding: 0 0 clamp(54px, 6vw, 86px) 62px;
    margin-bottom: clamp(52px, 6vw, 82px);
    border-bottom: 1px solid rgba(255, 255, 255, .09);
}

.privacy-content section:last-child {
    margin-bottom: 0;
    border-bottom: 0;
}

.privacy-content section > span:first-child {
    position: absolute;
    top: 8px;
    left: 0;
    color: var(--color-red-light);
    font-family: var(--font-heading);
    font-size: 1.15rem;
}

.privacy-content h2 {
    margin: 0 0 22px;
    font-family: var(--font-heading);
    font-size: clamp(2.2rem, 4vw, 4rem);
    font-weight: 300;
    letter-spacing: -.025em;
    line-height: 1;
}

.privacy-content p {
    max-width: 820px;
    margin: 0 0 18px;
    color: rgba(255, 255, 255, .58);
    font-size: .9rem;
    line-height: 1.9;
}

.privacy-contact-link {
    width: min(100%, 360px);
    min-height: 62px;
    margin-top: 30px;
    padding: 0 22px;
    border: 1px solid rgba(198, 31, 39, .7);
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #ffffff;
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-decoration: none;
    text-transform: uppercase;
    transition: background 220ms ease, border-color 220ms ease;
}

.privacy-contact-link:hover,
.privacy-contact-link:focus-visible {
    background: rgba(198, 31, 39, .14);
    border-color: var(--color-red-light);
}

@media (max-width: 800px) {
    .privacy-hero,
    .privacy-layout {
        width: min(100% - 40px, var(--content-width));
    }

    .privacy-layout {
        grid-template-columns: 1fr;
        gap: 58px;
    }

    .privacy-index {
        position: static;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .privacy-index > span {
        grid-column: 1 / -1;
    }

    .privacy-content section {
        padding-left: 42px;
    }
}

@media (max-width: 520px) {
    .privacy-main {
        padding-top: 90px;
    }

    .privacy-hero {
        padding-top: 48px;
    }

    .privacy-hero h1 {
        font-size: clamp(3.35rem, 18vw, 5rem);
    }

    .privacy-index {
        grid-template-columns: 1fr;
    }

    .privacy-index a {
        min-height: 44px;

        display: flex;
        align-items: center;
    }

    .privacy-content h2 {
        font-size: clamp(2rem, 11vw, 3rem);
    }

    .footer-legal-links {
        flex-wrap: wrap;
    }
}

/* =========================================================
   FINAL MOBILE USABILITY SAFEGUARDS
========================================================= */

@media (max-width: 820px) {
    .booking-experience,
    .booking-form-area,
    .booking-step,
    .booking-calendar,
    .booking-date-row,
    .booking-time-options {
        min-width: 0;
        max-width: 100%;
    }

    .booking-date-row {
        width: 100%;
        grid-template-columns: repeat(7, 72px);
    }
}

@media (max-width: 680px) {
    .site-footer .footer-maker {
        justify-content: flex-start;
        margin-top: 18px;
        column-gap: 14px;
    }

    .footer-maker > span {
        flex-basis: 100%;
    }

    .footer-maker a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }

    .header-brand {
        min-width: 44px;
        min-height: 44px;
    }

    .property-detail-back,
    .biography-back-home,
    .property-detail-official,
    .property-detail-section-heading > a,
    .contact-info-item a,
    .contact-socials a,
    .footer-bottom a {
        min-height: 44px;

        display: inline-flex;
        align-items: center;
    }

    .contact-privacy a {
        min-height: 38px;

        display: inline-flex;
        align-items: center;
    }
}

@media (max-width: 430px) {
    .booking-calendar-navigation {
        grid-template-columns: 44px minmax(0, 1fr) 44px;
    }

    .booking-calendar-navigation button {
        width: 44px;
        height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto !important;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}


/* =========================================================
   FINAL COMPLIANCE & LISTING LEGIBILITY
========================================================= */

.hero-agent-license {
    order: 2;
    margin-top: 8px;
    color: rgba(255, 255, 255, .82);
    font-size: .54rem;
    font-weight: 600;
    letter-spacing: .22em;
    line-height: 1;
    text-transform: uppercase;
    text-shadow: 0 4px 18px rgba(0, 0, 0, .95);
}

.hero-agent-line {
    order: 3;
}

.hero-agent-information p {
    order: 4;
}

.about-page-license {
    display: block;
    margin: 10px 0 2px 60px;
    color: rgba(255, 255, 255, .58);
    font-size: .61rem;
    font-weight: 600;
    letter-spacing: .2em;
    line-height: 1.4;
    text-transform: uppercase;
}

.site-footer .footer-brand h3 {
    margin-top: 0;
}

.property-badge,
.listing-status,
.property-detail-status {
    display: inline-flex;
    align-items: center;
    width: max-content;
    padding: 9px 13px;
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(4, 4, 5, .8);
    box-shadow:
        0 8px 26px rgba(0, 0, 0, .3),
        inset 0 1px 0 rgba(255, 255, 255, .06);
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

.listing-status {
    gap: 8px;
}

.listing-status::before {
    content: "";
    width: 7px;
    height: 7px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #e12631;
    box-shadow: 0 0 12px rgba(225, 38, 49, .72);
}

.listing-status.pending::before {
    background: #d2aa61;
    box-shadow: 0 0 12px rgba(210, 170, 97, .62);
}

.property-badge::before,
.property-detail-status span {
    width: 7px;
    height: 7px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #e12631;
    box-shadow: 0 0 12px rgba(225, 38, 49, .72);
}

.property-badge-pending::before {
    background: #d2aa61;
    box-shadow: 0 0 12px rgba(210, 170, 97, .62);
}

.services-grid.services-grid-two {
    width: min(100%, 1160px);
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.services-grid.services-grid-two .service-card:last-child {
    grid-column: auto;
    width: auto;
    margin-inline: 0;
}

.listing-status.closed::before,
.property-badge-closed::before,
.property-detail-status.closed span {
    background: #aeb3ba;
    box-shadow: 0 0 12px rgba(174, 179, 186, .5);
}

/* Properties: location and budget controls */
.property-filter-panel.is-open {
    max-height: 1200px;
}

.property-filter-panel-inner {
    grid-template-columns: .75fr 1.15fr 1.55fr auto;
    gap: clamp(28px, 3.6vw, 62px);
}

.property-location-filter,
.property-price-filter,
.property-price-scale {
    width: 100%;
}

.property-search-field {
    width: 100%;
}

.property-search-field input {
    padding: 0 0 12px;
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .24);
    background: transparent;
    font-size: .7rem;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
}

.property-search-field input:focus {
    border-color: #d41f2b;
    background: transparent;
}

.property-price-values {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 28px;
    color: rgba(255, 255, 255, .76);
    font-size: .88rem;
    font-weight: 500;
    letter-spacing: .06em;
}

.property-price-slider {
    position: relative;
    height: 30px;
    margin-top: -48px;
}

.property-price-track {
    position: absolute;
    top: 14px;
    right: 0;
    left: 0;
    height: 1px;
    background: rgba(255, 255, 255, .25);
}

.property-price-track span {
    position: absolute;
    inset: 0;
    background: #bd2633;
    transform-origin: left center;
}

.property-price-slider input[type="range"] {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    width: 100%;
    height: 30px;
    margin: 0;
    padding: 0;
    border: 0;
    outline: none;
    background: transparent;
    pointer-events: none;
    appearance: none;
    -webkit-appearance: none;
}

.property-price-slider input[type="range"]::-webkit-slider-runnable-track {
    height: 1px;
    background: transparent;
}

.property-price-slider input[type="range"]::-webkit-slider-thumb {
    width: 15px;
    height: 15px;
    margin-top: -7px;
    border: 0;
    border-radius: 50%;
    background: #bd2633;
    box-shadow: 0 0 0 5px rgba(189, 38, 51, .12);
    cursor: grab;
    pointer-events: auto;
    appearance: none;
    -webkit-appearance: none;
}

.property-price-slider input[type="range"]::-moz-range-track {
    height: 1px;
    background: transparent;
}

.property-price-slider input[type="range"]::-moz-range-thumb {
    width: 15px;
    height: 15px;
    border: 0;
    border-radius: 50%;
    background: #bd2633;
    box-shadow: 0 0 0 5px rgba(189, 38, 51, .12);
    cursor: grab;
    pointer-events: auto;
}

.property-price-slider input[type="range"]:focus-visible::-webkit-slider-thumb {
    box-shadow: 0 0 0 6px rgba(189, 38, 51, .3);
}

@media (max-width: 1050px) {
    .property-filter-panel-inner {
        grid-template-columns: 1fr 1fr;
    }

    .property-filter-reset {
        grid-column: 1 / -1;
        width: 100%;
    }
}

@media (max-width: 700px) {
    .hero-agent-license {
        margin-top: 5px;
        font-size: .46rem;
        letter-spacing: .16em;
    }

    .about-page-license {
        margin-left: 0;
    }

    .property-badge,
    .listing-status,
    .property-detail-status {
        padding: 8px 11px;
    }

    .services-grid.services-grid-two {
        grid-template-columns: 1fr;
    }

    .property-filter-panel-inner {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .property-filter-reset {
        grid-column: auto;
    }
}

/* =========================================================
   PROPERTY MOBILE CLARITY PASS — 2026-09-29
   Keep photography and information in separate, readable layers.
========================================================= */

.listing-showcase-main .listing-price {
    color: #fff;
    text-shadow: 0 3px 20px rgba(0, 0, 0, .9);
}

.listing-showcase-main .listing-price::before {
    content: "";
    display: block;
    width: 30px;
    height: 2px;
    margin: 0 0 12px;
    background: #d7202c;
    box-shadow: 0 0 12px rgba(215, 32, 44, .35);
}

.property-detail-mobile-gallery,
.property-detail-mobile-summary {
    display: none;
}

@media (max-width: 760px) {
    .listing-showcase-overlay,
    .listing-showcase-card:hover .listing-showcase-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(0, 0, 0, .02) 0%,
                rgba(0, 0, 0, .07) 35%,
                rgba(0, 0, 0, .50) 64%,
                rgba(0, 0, 0, .97) 100%
            );
    }

    .listing-showcase-main .listing-price {
        font-size: clamp(1.48rem, 7vw, 1.9rem);
        letter-spacing: -.01em;
    }

    .property-detail-hero {
        min-height: 68svh;
        height: 68svh;
        align-items: stretch;
        border-bottom: 1px solid rgba(255, 255, 255, .1);
    }

    .property-detail-hero-copy,
    .property-detail-index {
        display: none;
    }

    .property-detail-hero::after {
        top: 21%;
        right: 19px;
        height: 27%;
    }

    .property-detail-hero-image {
        object-position: center center;
    }

    .property-detail-hero-shade {
        background:
            linear-gradient(180deg, rgba(2, 3, 4, .4) 0%, rgba(2, 3, 4, .04) 27%, rgba(2, 3, 4, .1) 66%, rgba(2, 3, 4, .74) 100%);
    }

    .property-detail-back {
        top: 94px;
        left: 18px;
        gap: 10px;
        padding: 8px 0;
        font-size: .55rem;
        letter-spacing: .17em;
    }

    .property-detail-mobile-gallery {
        position: absolute;
        z-index: 6;
        left: 18px;
        bottom: 20px;
        min-width: 148px;
        min-height: 52px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 26px;
        padding: 0 18px;
        border: 1px solid rgba(255, 255, 255, .62);
        background: rgba(7, 7, 8, .7);
        color: #fff;
        font: 700 .62rem/1 var(--font-body);
        letter-spacing: .2em;
        text-transform: uppercase;
        cursor: pointer;
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .property-detail-mobile-gallery span {
        color: #ed2632;
        font-size: 1.4rem;
        font-weight: 300;
        line-height: 1;
    }

    .property-detail-slider-arrow {
        top: 50%;
        width: 48px;
        height: 48px;
        background: rgba(5, 5, 6, .5);
    }

    .property-detail-slider-prev {
        left: 10px;
    }

    .property-detail-slider-next {
        right: 10px;
    }

    .property-detail-slider-status {
        right: 18px;
        bottom: 20px;
        min-height: 42px;
        padding: 8px 12px;
        background: rgba(5, 5, 6, .68);
    }

    .property-detail-mobile-summary {
        display: block;
        padding: 42px 20px 52px;
        background:
            linear-gradient(145deg, rgba(100, 10, 17, .12), transparent 48%),
            #070707;
        border-bottom: 1px solid rgba(255, 255, 255, .1);
    }

    .property-detail-mobile-summary .property-detail-status {
        margin: 0 0 22px;
    }

    .property-detail-mobile-location {
        margin: 0 0 13px;
        color: rgba(255, 255, 255, .62);
        font-size: .65rem;
        line-height: 1.55;
        letter-spacing: .16em;
        text-transform: uppercase;
    }

    .property-detail-mobile-summary h1 {
        max-width: 100%;
        margin: 0;
        color: #fff;
        font-family: var(--font-display, Georgia, serif);
        font-size: clamp(2.65rem, 13vw, 4.25rem);
        font-weight: 400;
        line-height: .94;
        letter-spacing: -.04em;
        text-wrap: balance;
    }

    .property-detail-mobile-price {
        display: block;
        margin-top: 30px;
        padding-top: 22px;
        border-top: 1px solid rgba(255, 255, 255, .18);
        color: #fff;
        font-family: var(--font-display, Georgia, serif);
        font-size: clamp(1.8rem, 9vw, 2.65rem);
        font-weight: 400;
        line-height: 1;
    }

    .property-detail-mobile-facts {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        margin-top: 32px;
        padding: 22px 0;
        border-top: 1px solid rgba(255, 255, 255, .1);
        border-bottom: 1px solid rgba(255, 255, 255, .1);
    }

    .property-detail-mobile-facts > div {
        min-width: 0;
        padding: 0 14px;
        display: flex;
        flex-direction: column;
        border-right: 1px solid rgba(255, 255, 255, .1);
    }

    .property-detail-mobile-facts > div:first-child {
        padding-left: 0;
    }

    .property-detail-mobile-facts > div:last-child {
        padding-right: 0;
        border-right: 0;
    }

    .property-detail-mobile-facts strong {
        overflow-wrap: anywhere;
        color: #fff;
        font-family: var(--font-display, Georgia, serif);
        font-size: clamp(1.25rem, 6vw, 1.85rem);
        font-weight: 400;
        line-height: 1;
    }

    .property-detail-mobile-facts span {
        margin-top: 9px;
        color: rgba(255, 255, 255, .46);
        font-size: .47rem;
        font-weight: 700;
        letter-spacing: .14em;
        text-transform: uppercase;
    }

    .property-detail-mobile-facts .property-detail-spec-private {
        grid-column: 1 / -1;
        padding: 0;
        border: 0;
    }

    .property-detail-mobile-learn {
        min-height: 58px;
        margin-top: 28px;
        padding: 0 18px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        border: 1px solid #bc1e29;
        color: #fff;
        font-size: .6rem;
        font-weight: 700;
        letter-spacing: .19em;
        text-transform: uppercase;
    }

    .property-detail-mobile-learn span {
        color: #ed2632;
        font-size: 1rem;
    }

    .property-detail-overview {
        padding-top: 74px;
        padding-bottom: 74px;
    }

    .property-detail-facts {
        display: none;
    }
}

@media (max-width: 420px) {
    .property-detail-slider-progress {
        display: none;
    }

    .property-detail-slider-status {
        gap: 0;
    }
}

/* =========================================================
   PROPERTY CARDS + DETAIL HERO — FINAL MOBILE REVISION
   Technical specs remain a true hover detail; the residence
   identity returns to the photography with clearer spacing.
========================================================= */

@media (hover: none), (max-width: 680px) {
    .listing-showcase-card .listing-showcase-main,
    .listing-showcase-card:hover .listing-showcase-main {
        bottom: 0;
        padding-bottom: 88px;
        transform: none;
    }

    .listing-showcase-hover,
    .listing-showcase-card:hover .listing-showcase-hover {
        right: 28px;
        bottom: 27px;
        left: 28px;
        opacity: 1;
        transform: none;
        pointer-events: auto;
    }

    .listing-showcase-hover .listing-specs {
        display: none;
    }

    .listing-showcase-hover .listing-view {
        margin-top: 0;
        padding-top: 17px;
        border-top: 1px solid rgba(255, 255, 255, .2);
    }
}

@media (max-width: 760px) {
    .property-detail-hero {
        min-height: max(720px, 100svh);
        height: auto;
        align-items: flex-end;
    }

    .property-detail-hero-copy {
        position: absolute;
        z-index: 3;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        display: block;
        margin: 0;
        padding: 0 20px 30px;
    }

    .property-detail-mobile-summary,
    .property-detail-mobile-gallery {
        display: none;
    }

    .property-detail-hero-shade {
        background:
            linear-gradient(180deg, rgba(2, 3, 4, .34) 0%, rgba(2, 3, 4, .04) 26%, rgba(2, 3, 4, .16) 48%, rgba(2, 3, 4, .76) 72%, rgba(2, 3, 4, .98) 100%),
            linear-gradient(90deg, rgba(2, 3, 4, .22), transparent 72%);
    }

    .property-detail-back {
        top: 98px;
        left: 20px;
        gap: 11px;
        padding: 9px 0;
        color: rgba(255, 255, 255, .9);
        font-size: .58rem;
        letter-spacing: .18em;
        text-shadow: 0 2px 12px rgba(0, 0, 0, .8);
    }

    .property-detail-slider-arrow {
        top: 42%;
        width: 52px;
        height: 52px;
        border-color: rgba(255, 255, 255, .5);
        background: rgba(4, 5, 6, .48);
    }

    .property-detail-slider-prev {
        left: 12px;
    }

    .property-detail-slider-next {
        right: 12px;
    }

    .property-detail-status {
        margin: 0 0 18px;
    }

    .property-detail-location {
        max-width: calc(100% - 34px);
        margin: 0 0 10px;
        color: rgba(255, 255, 255, .76);
        font-size: .64rem;
        line-height: 1.55;
        letter-spacing: .16em;
        text-shadow: 0 2px 13px rgba(0, 0, 0, .82);
    }

    .property-detail-hero h1 {
        max-width: 94%;
        margin: 0;
        font-size: clamp(2.7rem, 12.6vw, 4.15rem);
        line-height: .9;
        letter-spacing: -.04em;
        text-shadow: 0 4px 24px rgba(0, 0, 0, .72);
    }

    .property-detail-hero-bottom {
        min-height: 68px;
        margin-top: 20px;
        padding: 18px 112px 0 0;
        align-items: flex-start;
        border-top: 1px solid rgba(255, 255, 255, .28);
    }

    .property-detail-hero-bottom > strong {
        max-width: 100%;
        color: #fff;
        font-size: clamp(1.65rem, 8.1vw, 2.25rem);
        line-height: 1;
        white-space: nowrap;
        text-shadow: 0 3px 20px rgba(0, 0, 0, .86);
    }

    .property-detail-hero-bottom > a {
        display: none;
    }

    .property-detail-slider-status {
        right: 18px;
        bottom: 30px;
        min-width: 86px;
        min-height: 46px;
        justify-content: center;
        gap: 8px;
        padding: 8px 13px;
        border-color: rgba(255, 255, 255, .24);
        background: rgba(5, 5, 6, .64);
    }

    .property-detail-slider-count strong {
        font-size: 1.32rem;
    }

    .property-detail-slider-progress {
        width: 24px;
    }

    .property-detail-facts {
        display: grid;
    }
}

@media (max-width: 420px) {
    .property-detail-facts-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .property-detail-facts-grid > div,
    .property-detail-facts-grid > div:first-child {
        min-height: 92px;
        padding: 18px 10px;
        border-right: 1px solid rgba(255, 255, 255, .1);
        border-bottom: 0;
    }

    .property-detail-facts-grid > div:first-child {
        padding-left: 0;
    }

    .property-detail-facts-grid > div:last-child {
        padding-right: 0;
        border-right: 0;
    }

    .property-detail-hero-bottom > strong {
        font-size: clamp(1.55rem, 7.65vw, 2rem);
    }

    .property-detail-slider-status {
        min-width: 78px;
    }
}

/* Properties on touch screens: neutralize sticky :hover while scrolling. */
@media (hover: none), (pointer: coarse), (max-width: 680px) {
    .listing-showcase-card,
    .listing-showcase-card:hover {
        transform: none;
        border-color: rgba(255, 255, 255, .16);
    }

    .listing-showcase-image img,
    .listing-showcase-card:hover .listing-showcase-image img {
        transform: scale(1.01);
        filter:
            brightness(.88)
            contrast(1.04)
            saturate(.92);
    }

    .listing-showcase-card .listing-showcase-main,
    .listing-showcase-card:hover .listing-showcase-main {
        transform: none;
    }

    .listing-showcase-overlay,
    .listing-showcase-card:hover .listing-showcase-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(0, 0, 0, .02) 0%,
                rgba(0, 0, 0, .06) 35%,
                rgba(0, 0, 0, .44) 62%,
                rgba(0, 0, 0, .96) 100%
            );
    }

    .listing-showcase-hover,
    .listing-showcase-card:hover .listing-showcase-hover {
        opacity: 1;
        transform: none;
    }

    .listing-showcase-card:active {
        transform: scale(.995);
    }
}

/* =========================================================
   PROPERTY COLLECTION — LUXURY ATTENTION STATES
   Desktop: true pointer hover. Touch: the centered card opens.
========================================================= */

.listing-card-status {
    position: absolute;
    z-index: 6;
    top: clamp(24px, 2.2vw, 34px);
    left: clamp(24px, 2.2vw, 34px);
    margin: 0;
    padding: 11px 17px;
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    background: rgba(7, 8, 10, .78);
    box-shadow: 0 12px 30px rgba(0, 0, 0, .22);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.listing-card-status::before {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: 10px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 4px rgba(237, 52, 58, .08);
    vertical-align: 1px;
}

.listing-showcase-card .listing-showcase-main {
    right: 0;
    bottom: 0;
    left: 0;
    padding: 0 clamp(26px, 2.4vw, 38px) clamp(29px, 2.4vw, 38px);
    transform: none;
}

.listing-showcase-card .listing-showcase-hover {
    right: clamp(26px, 2.4vw, 38px);
    bottom: clamp(25px, 2.2vw, 34px);
    left: clamp(26px, 2.4vw, 38px);
}

@media (hover: hover) and (pointer: fine) and (min-width: 681px) {
    .listing-showcase-card:hover .listing-showcase-main {
        transform: translateY(-116px);
    }

    .listing-showcase-card:hover .listing-showcase-hover {
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }
}

@media (hover: none), (pointer: coarse), (max-width: 680px) {
    .listing-card-status {
        top: 27px;
        left: 27px;
        padding: 10px 15px;
    }

    .listing-showcase-card,
    .listing-showcase-card:hover,
    .listing-showcase-card.is-in-focus {
        transform: none;
    }

    .listing-showcase-card .listing-showcase-main,
    .listing-showcase-card:hover .listing-showcase-main {
        bottom: 0;
        padding: 0 28px 82px;
        transform: none;
        transition: transform .62s cubic-bezier(.22, 1, .36, 1);
    }

    .listing-showcase-card .listing-showcase-main h2 {
        max-width: 96%;
        font-size: clamp(1.75rem, 8vw, 2.2rem);
        line-height: .98;
    }

    .listing-showcase-card .listing-showcase-main p {
        max-width: 92%;
        margin-top: 10px;
        color: rgba(255, 255, 255, .7);
        font-size: .59rem;
        line-height: 1.55;
        letter-spacing: .055em;
    }

    .listing-showcase-main .listing-price {
        margin-top: 18px;
        color: #fff;
        font-size: clamp(1.65rem, 7.6vw, 2rem);
    }

    .listing-showcase-main .listing-price::before {
        width: 46px;
        margin-bottom: 14px;
    }

    .listing-showcase-card .listing-showcase-hover,
    .listing-showcase-card:hover .listing-showcase-hover {
        right: 28px;
        bottom: 26px;
        left: 28px;
        opacity: 1;
        transform: none;
        pointer-events: auto;
    }

    .listing-showcase-hover .listing-specs {
        display: grid;
        max-height: 0;
        margin: 0;
        padding: 0;
        border-bottom-color: transparent;
        opacity: 0;
        overflow: hidden;
        transform: translateY(14px);
        transition:
            max-height .55s cubic-bezier(.22, 1, .36, 1),
            opacity .35s ease,
            transform .55s cubic-bezier(.22, 1, .36, 1),
            padding .45s ease,
            border-color .45s ease;
    }

    .listing-showcase-hover .listing-view {
        margin-top: 0;
        padding-top: 17px;
        border-top: 1px solid rgba(255, 255, 255, .2);
    }

    .listing-showcase-image img,
    .listing-showcase-card:hover .listing-showcase-image img {
        transform: scale(1.01);
        filter: brightness(.88) contrast(1.04) saturate(.92);
        transition: transform .8s cubic-bezier(.22, 1, .36, 1), filter .65s ease;
    }

    .listing-showcase-overlay,
    .listing-showcase-card:hover .listing-showcase-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(0, 0, 0, .01) 0%,
                rgba(0, 0, 0, .03) 38%,
                rgba(0, 0, 0, .24) 62%,
                rgba(0, 0, 0, .9) 100%
            );
        transition: background .55s ease;
    }

    .listing-showcase-card.is-in-focus .listing-showcase-main {
        transform: translateY(-104px);
    }

    .listing-showcase-card.is-in-focus .listing-specs {
        max-height: 86px;
        padding: 0 0 16px;
        border-bottom-color: rgba(255, 255, 255, .22);
        opacity: 1;
        transform: translateY(0);
    }

    .listing-showcase-card.is-in-focus .listing-showcase-image img {
        transform: scale(1.04);
        filter: brightness(.67) contrast(1.06) saturate(.94);
    }

    .listing-showcase-card.is-in-focus .listing-showcase-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(0, 0, 0, .02) 0%,
                rgba(0, 0, 0, .08) 34%,
                rgba(0, 0, 0, .42) 60%,
                rgba(0, 0, 0, .97) 100%
            );
    }
}

/* =========================================================
   FINAL CARD BEHAVIOUR CORRECTION
   Preserve the original badges; reveal technical data only
   when the card owns the user's attention.
========================================================= */

@media (hover: none), (pointer: coarse), (max-width: 680px) {
    .listing-showcase-card .listing-showcase-main,
    .listing-showcase-card:hover .listing-showcase-main {
        padding: 0 28px 82px;
    }

    .listing-showcase-main > .listing-status {
        margin-bottom: 16px;
    }
}

@media (hover: none), (pointer: coarse), (max-width: 820px) {
    .property-showcase-card,
    .property-showcase-card:hover,
    .property-showcase-card.is-in-focus {
        transform: none;
        border-top-color: rgba(255, 255, 255, .14);
    }

    .property-showcase-card::before,
    .property-showcase-card:hover::before,
    .property-showcase-card.is-in-focus::before {
        width: 0;
    }

    .property-showcase-top,
    .property-showcase-card:hover .property-showcase-top {
        min-height: 62%;
        padding: 25px 22px 82px;
        transform: none;
        transition: transform .62s cubic-bezier(.22, 1, .36, 1);
    }

    .property-hover-content,
    .property-showcase-card:hover .property-hover-content {
        padding: 0 22px 25px;
        opacity: 1;
        transform: none;
        pointer-events: auto;
    }

    .property-specifications {
        max-height: 0;
        margin: 0;
        padding: 0;
        border-bottom-color: transparent;
        opacity: 0;
        overflow: hidden;
        transform: translateY(14px);
        transition:
            max-height .55s cubic-bezier(.22, 1, .36, 1),
            opacity .35s ease,
            transform .55s cubic-bezier(.22, 1, .36, 1),
            padding .45s ease,
            border-color .45s ease;
    }

    .property-view-link {
        margin-top: 0;
        padding-top: 17px;
        border-top: 1px solid rgba(255, 255, 255, .2);
    }

    .property-showcase-image img,
    .property-showcase-card:hover .property-showcase-image img {
        transform: scale(1.01);
        filter: brightness(.82) contrast(1.06) saturate(.88);
    }

    .property-showcase-overlay,
    .property-showcase-card:hover .property-showcase-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(0, 0, 0, .02) 0%,
                rgba(0, 0, 0, .06) 36%,
                rgba(0, 0, 0, .37) 66%,
                rgba(0, 0, 0, .94) 100%
            );
    }

    .property-showcase-card.is-in-focus .property-showcase-top {
        transform: translateY(-104px);
    }

    .property-showcase-card.is-in-focus .property-specifications {
        max-height: 82px;
        padding: 0 0 17px;
        border-bottom-color: rgba(255, 255, 255, .23);
        opacity: 1;
        transform: translateY(0);
    }

    .property-showcase-card.is-in-focus .property-showcase-image img {
        transform: scale(1.055);
        filter: brightness(.68) contrast(1.08) saturate(.91);
    }

    .property-showcase-card.is-in-focus .property-showcase-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(0, 0, 0, .05) 0%,
                rgba(0, 0, 0, .14) 36%,
                rgba(0, 0, 0, .5) 66%,
                rgba(0, 0, 0, .97) 100%
            );
    }
}

/* =========================================================
   MOBILE BIOGRAPHY HERO
   Preserve the cinematic portrait behind the copy while
   reserving a clear focal area for each agent's face.
========================================================= */

@media (max-width: 680px) {
    .biography-hero {
        min-height: max(720px, 100svh);
        overflow: hidden;
        background: #070707;
    }

    .biography-hero-background,
    .biography-hero-overlay {
        inset: 0;
        height: auto;
        min-height: 0;
        max-height: none;
    }

    .biography-hero-background,
    .biography-hero:hover .biography-hero-background {
        transform: none;
    }

    .biography-page-reza .biography-hero-background {
        background-position: 5% center;
    }

    .biography-page-andrew .biography-hero-background {
        background-position: 68% center;
    }

    .biography-page-reza .biography-hero-overlay,
    .biography-page-andrew .biography-hero-overlay {
        background:
            linear-gradient(
                to bottom,
                rgba(3, 3, 4, .18) 0%,
                rgba(3, 3, 4, .04) 38%,
                rgba(3, 3, 4, .48) 65%,
                #070707 100%
            ),
            linear-gradient(
                90deg,
                rgba(3, 3, 4, .78) 0%,
                rgba(3, 3, 4, .58) 38%,
                rgba(3, 3, 4, .12) 68%,
                rgba(3, 3, 4, .18) 100%
            );
    }

    .biography-back-home {
        top: max(94px, calc(76px + env(safe-area-inset-top)));
    }

    .biography-hero-content,
    .biography-page-reza .biography-hero-content,
    .biography-page-andrew .biography-hero-content {
        width: 100%;
        min-height: max(720px, 100svh);
        display: grid;
        padding:
            max(118px, calc(90px + env(safe-area-inset-top)))
            20px
            0;
        grid-template-columns: minmax(0, 1fr);
        align-content: end;
    }

    .biography-page-reza .biography-hero-copy,
    .biography-page-andrew .biography-hero-copy {
        position: relative;
        width: 60%;
        max-width: 230px;
        min-width: 0;
        padding-top: 0;
    }

    .biography-kicker {
        gap: 10px;
        align-items: flex-start;
        font-size: .49rem;
        line-height: 1.35;
        letter-spacing: .13em;
    }

    .biography-kicker::before {
        width: 30px;
        flex: 0 0 30px;
        margin-top: .45em;
    }

    .biography-hero-copy h1 {
        max-width: 100%;
        margin-top: 15px;
        font-size: clamp(3rem, 14.4vw, 4rem);
        line-height: .83;
        letter-spacing: -.04em;
        text-wrap: balance;
    }

    .biography-hero-copy h1 span {
        margin-top: 8px;
    }

    .biography-license {
        margin-top: 11px;
        font-size: .54rem;
        letter-spacing: .14em;
    }

    .biography-hero-tagline {
        width: calc(100vw - 40px);
        max-width: 355px;
        margin-top: 22px;
        font-size: clamp(1.38rem, 6.1vw, 1.72rem);
        line-height: 1.08;
    }

    .biography-primary-button {
        width: calc(100vw - 40px);
        min-height: 56px;
        margin-top: 22px;
        padding: 0 22px;
    }

    .biography-hero-stats,
    .biography-page-reza .biography-hero-stats,
    .biography-page-andrew .biography-hero-stats {
        width: 100vw;
        max-width: none;
        margin: 24px 0 0 -20px;
        background: rgba(255, 255, 255, .012);
    }

    .biography-hero-stats > div,
    .biography-hero-stats > div:first-child {
        min-height: 88px;
        padding: 14px 7px;
        justify-content: center;
        text-align: center;
    }

    .biography-hero-stats strong {
        font-size: clamp(1.45rem, 6.6vw, 1.8rem);
    }

    .biography-hero-stats span {
        max-width: 100px;
        margin-right: auto;
        margin-left: auto;
        font-size: .43rem;
        line-height: 1.35;
        letter-spacing: .07em;
    }
}

@media (max-width: 380px) {
    .biography-page-reza .biography-hero-background {
        background-position: 2% center;
    }

    .biography-page-andrew .biography-hero-background {
        background-position: 64% center;
    }

    .biography-hero-content,
    .biography-page-reza .biography-hero-content,
    .biography-page-andrew .biography-hero-content {
        padding-right: 17px;
        padding-left: 17px;
    }

    .biography-page-reza .biography-hero-copy,
    .biography-page-andrew .biography-hero-copy {
        width: 62%;
    }

    .biography-kicker {
        gap: 8px;
        font-size: .44rem;
        letter-spacing: .08em;
    }

    .biography-kicker::before {
        width: 24px;
        flex-basis: 24px;
    }

    .biography-hero-copy h1 {
        font-size: clamp(2.85rem, 14vw, 3.45rem);
    }

    .biography-hero-tagline,
    .biography-primary-button {
        width: calc(100vw - 34px);
    }

    .biography-hero-stats,
    .biography-page-reza .biography-hero-stats,
    .biography-page-andrew .biography-hero-stats {
        margin-left: -17px;
    }
}

/* =========================================================
   PROPERTY CARDS — MOBILE PHOTO CLARITY
   Give landscape photography a wider frame, keep the status
   fixed and preserve the centered-card information reveal.
========================================================= */

@media (max-width: 680px) {
    .listing-showcase-image,
    .property-showcase-image {
        aspect-ratio: 1 / 1.06;
    }

    .listing-showcase-image img,
    .listing-showcase-card:hover .listing-showcase-image img,
    .property-showcase-image img,
    .property-showcase-card:hover .property-showcase-image img {
        object-position: center center;
        transform: scale(1);
    }

    .listing-showcase-card.is-in-focus .listing-showcase-image img,
    .property-showcase-card.is-in-focus .property-showcase-image img {
        transform: scale(1.01);
    }

    .listing-showcase-card .listing-showcase-main,
    .listing-showcase-card:hover .listing-showcase-main {
        top: 0;
        bottom: 0;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding: 27px 28px 82px;
        transform: none;
        transition: padding-bottom .62s cubic-bezier(.22, 1, .36, 1);
    }

    .listing-showcase-main > .listing-status {
        position: absolute;
        top: 27px;
        left: 28px;
        margin: 0;
    }

    .listing-showcase-card.is-in-focus .listing-showcase-main {
        padding-bottom: 116px;
        transform: none;
    }

    .listing-showcase-card .listing-showcase-main h2,
    .property-heading h3 {
        font-size: clamp(1.6rem, 7.5vw, 1.9rem);
    }

    .listing-showcase-hover .listing-specs,
    .property-specifications {
        column-gap: 4px;
    }

    .listing-showcase-hover .listing-specs span,
    .property-specifications > span {
        gap: 5px;
        letter-spacing: .03em;
    }

    .property-showcase-top,
    .property-showcase-card:hover .property-showcase-top {
        top: 0;
        bottom: 0;
        min-height: 0;
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding: 25px 22px 82px;
        transform: none;
        transition: padding-bottom .62s cubic-bezier(.22, 1, .36, 1);
    }

    .property-showcase-top > .property-badge {
        position: absolute;
        top: 25px;
        left: 22px;
        margin: 0;
    }

    .property-showcase-card.is-in-focus .property-showcase-top {
        padding-bottom: 116px;
        transform: none;
    }
}

@media (max-width: 370px) {
    .listing-showcase-image,
    .property-showcase-image {
        aspect-ratio: 1 / 1.12;
    }

    .listing-showcase-card.is-in-focus .listing-showcase-main,
    .property-showcase-card.is-in-focus .property-showcase-top {
        padding-bottom: 110px;
    }

    .listing-showcase-main > .listing-status {
        top: 24px;
        left: 24px;
    }

    .listing-showcase-card .listing-showcase-main,
    .listing-showcase-card:hover .listing-showcase-main {
        padding-right: 24px;
        padding-left: 24px;
    }

    .listing-showcase-card .listing-showcase-hover,
    .listing-showcase-card:hover .listing-showcase-hover {
        right: 24px;
        left: 24px;
    }

    .property-showcase-top > .property-badge {
        top: 22px;
        left: 20px;
    }

    .property-showcase-top,
    .property-showcase-card:hover .property-showcase-top,
    .property-hover-content,
    .property-showcase-card:hover .property-hover-content {
        padding-right: 20px;
        padding-left: 20px;
    }

    .listing-showcase-card .listing-showcase-main h2,
    .property-heading h3 {
        font-size: clamp(1.5rem, 7.4vw, 1.72rem);
    }

    .listing-showcase-hover .listing-specs,
    .property-specifications {
        column-gap: 2px;
    }

    .listing-showcase-hover .listing-specs span,
    .property-specifications > span {
        gap: 3px;
        font-size: .43rem;
        letter-spacing: .02em;
    }

    .listing-showcase-hover .listing-specs strong,
    .property-specifications strong {
        font-size: .78rem;
    }
}

@media (max-width: 340px) {
    .listing-showcase-image,
    .property-showcase-image {
        aspect-ratio: 1 / 1.24;
    }

    .listing-showcase-card.is-in-focus .listing-showcase-main,
    .property-showcase-card.is-in-focus .property-showcase-top {
        padding-bottom: 104px;
    }
}

/* =========================================================
   DIRECT CONTACT — EMAIL + PHONE
========================================================= */

.direct-contact-actions {
    position: fixed;
    right: clamp(18px, 2.4vw, 36px);
    bottom: max(22px, env(safe-area-inset-bottom));
    z-index: 980;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
    transition: opacity .25s ease, transform .25s ease;
}

.direct-contact-action {
    position: relative;
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .22);
    border-radius: 50%;
    background: rgba(8, 8, 9, .88);
    color: #fff;
    text-decoration: none;
    box-shadow: 0 12px 34px rgba(0, 0, 0, .34);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    transition: border-color .28s ease, background-color .28s ease, color .28s ease, transform .28s ease;
}

.direct-contact-action::after {
    content: "";
    position: absolute;
    right: 8px;
    bottom: 7px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #d51c2d;
    box-shadow: 0 0 0 3px rgba(213, 28, 45, .12);
}

.direct-contact-action svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.55;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.direct-contact-action:hover,
.direct-contact-action:focus-visible {
    border-color: rgba(213, 28, 45, .92);
    background: rgba(143, 13, 27, .92);
    transform: translateY(-2px);
}

.direct-contact-action:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 4px;
}

body.menu-open .direct-contact-actions {
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
}

@media (max-width: 680px) {
    .direct-contact-actions {
        top: 50%;
        right: 15px;
        bottom: auto;
        gap: 8px;
        transform: translateY(-50%);
    }

    .direct-contact-action {
        width: 46px;
        height: 46px;
    }

    .property-detail-page .direct-contact-actions {
        top: 58%;
    }

    body.menu-open .direct-contact-actions {
        transform: translateY(calc(-50% + 8px));
    }
}
