:root{
    --bg:#0b0b0b;
    --panel:#171717;
    --text:#f6f1e5;
    --muted:#c7c0b3;
    --gold:#d7b56d;
    --gold2:#f1d58f;
    --line:rgba(215,181,109,.28);
    --max:1180px;
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    background:
        radial-gradient(
            circle at 80% 0%,
            #25211a 0,
            #111 28%,
            #090909 62%
        );
    color:var(--text);
    font-family:
        Inter,
        ui-sans-serif,
        system-ui,
        -apple-system,
        "Segoe UI",
        sans-serif;
    line-height:1.55;
}

body.gallery-open{
    overflow:hidden;
}

a{
    color:inherit;
    text-decoration:none;
}

button{
    font:inherit;
}

.wrap{
    width:min(
        calc(100% - 36px),
        var(--max)
    );
    margin:auto;
}


/* =====================================================
   NAVIGATION
===================================================== */

.nav{
    position:sticky;
    top:0;
    z-index:50;
    background:rgba(9,9,9,.88);
    backdrop-filter:blur(16px);
    border-bottom:
        1px solid
        rgba(255,255,255,.06);
}

.navin{
    height:76px;
    display:flex;
    align-items:center;
    gap:18px;
}

.brand{
    display:flex;
    align-items:center;
    flex-shrink:0;
}

.mobile-greeting{
    display:none;
}

.brand-logo{
    display:block;
    width:150px;
    height:auto;
    max-height:58px;
    object-fit:contain;
}

.brand span,
.gold{
    color:var(--gold);
}

.links{
    margin-left:auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:12px;
    min-width:0;
}

.links a{
    max-width:180px;
    text-align:center;
    line-height:1.15;
    font-size:.78rem;
    font-weight:700;
}

.lang{
    display:flex;
    gap:4px;
}

.lang a{
    padding:6px 8px;
    border:1px solid var(--line);
    border-radius:999px;
    font-size:.75rem;
}


/* =====================================================
   BUTTONS
===================================================== */

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:12px 20px;
    border-radius:999px;
    border:1px solid var(--gold);
    background:
        linear-gradient(
            135deg,
            var(--gold2),
            #bd9551
        );
    color:#17120a;
    font-weight:850;
    cursor:pointer;
}

.btn.ghost{
    background:transparent;
    color:var(--gold2);
}


/* =====================================================
   HERO
===================================================== */

.hero{
    padding:90px 0 70px;
    min-height:70vh;
    display:grid;
    align-items:center;
}

.hero-grid{
    display:grid;
    grid-template-columns:
        minmax(0,1.35fr)
        minmax(280px,.65fr);
    gap:48px;
    align-items:center;
}

.hero-copy{
    min-width:0;
}

.hero-logo-wrap{
    display:flex;
    justify-content:flex-end;
    align-items:center;
}

.hero-logo{
    display:block;
    width:min(100%,390px);
    height:auto;
    object-fit:contain;
}

.hero h1{
    font-size:
        clamp(
            3rem,
            7vw,
            6.4rem
        );
    line-height:.93;
    letter-spacing:-.055em;
    margin:12px 0 20px;
}

.lead{
    max-width:760px;
    font-size:1.15rem;
    color:#d5cec3;
}

.hero-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:28px;
}


/* =====================================================
   SECTIONS
===================================================== */

section{
    padding:82px 0;
}

.section-head{
    display:flex;
    justify-content:space-between;
    gap:24px;
    align-items:end;
    margin-bottom:28px;
}

.section-head h2{
    font-size:
        clamp(
            2rem,
            4vw,
            3.6rem
        );
    margin:0;
}

.section-head p{
    max-width:630px;
    color:var(--muted);
}


/* =====================================================
   CARDS
===================================================== */

.property-grid,
.service-grid{
    display:grid;
    grid-template-columns:
        repeat(3,1fr);
    gap:18px;
}

.card{
    background:
        linear-gradient(
            180deg,
            #1a1a1a,
            #111
        );
    border:
        1px solid
        var(--line);
    border-radius:24px;
    overflow:hidden;
}

.photo{
    width:100%;
    aspect-ratio:16/10;
    background:#202020;
    display:grid;
    place-items:center;
    color:#8e8577;
    overflow:hidden;
}

.photo img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.property-photo-button{
    position:relative;
    padding:0;
    border:0;
    border-radius:0;
    appearance:none;
    cursor:pointer;
}

.property-photo-button img{
    transition:
        transform .3s ease;
}

.property-photo-button:hover img{
    transform:scale(1.025);
}

.property-photo-button:focus-visible{
    outline:
        2px solid
        var(--gold2);
    outline-offset:-4px;
}

.photo-count{
    position:absolute;
    right:12px;
    bottom:12px;
    z-index:2;
    padding:7px 11px;
    border:
        1px solid
        rgba(255,255,255,.18);
    border-radius:999px;
    background:
        rgba(8,8,8,.8);
    color:#fff;
    font-size:.78rem;
    font-weight:800;
}

.card-body{
    padding:22px;
}

.card h3{
    margin:0 0 4px;
    font-size:1.45rem;
}

.meta{
    color:#b8ad9b;
}

.price{
    font-weight:900;
    color:var(--gold2);
    font-size:1.25rem;
    margin-top:14px;
}


/* =====================================================
   GALERIA
===================================================== */

[data-property-gallery][hidden]{
    display:none !important;
}

[data-property-gallery]{
    position:fixed;
    inset:0;
    z-index:9999;
    align-items:center;
    justify-content:center;
    padding:24px;
}

[data-property-gallery].is-open{
    display:flex;
}

.gallery-backdrop{
    position:absolute;
    inset:0;
    background:
        rgba(0,0,0,.92);
    backdrop-filter:
        blur(10px);
}

.gallery-window{
    position:relative;
    z-index:2;
    width:min(
        1180px,
        100%
    );
    max-height:
        calc(100vh - 48px);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:#0b0b0b;
    border:
        1px solid
        rgba(215,181,109,.35);
    border-radius:22px;
    box-shadow:
        0 30px 100px
        rgba(0,0,0,.7);
}

.gallery-header{
    min-height:62px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:
        12px 16px
        12px 20px;
    border-bottom:
        1px solid
        rgba(255,255,255,.08);
}

.gallery-heading{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.gallery-title{
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
}

.gallery-counter{
    color:var(--muted);
    flex-shrink:0;
}

.gallery-close{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    flex:0 0 42px;
    padding:0;
    border:
        1px solid
        var(--line);
    border-radius:50%;
    background:#171717;
    color:#fff;
    font-size:1.8rem;
    cursor:pointer;
}

.gallery-close:hover{
    color:var(--gold2);
    border-color:var(--gold);
}

.gallery-stage{
    position:relative;
    height:
        min(
            68vh,
            760px
        );
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    background:#050505;
}

.gallery-main-image{
    width:100%;
    height:100%;
    display:block;
    object-fit:contain;
    user-select:none;
    -webkit-user-drag:none;
}

.gallery-arrow{
    position:absolute;
    z-index:4;
    top:50%;
    transform:
        translateY(-50%);
    width:52px;
    height:52px;
    display:grid;
    place-items:center;
    padding:
        0 0 5px;
    border:
        1px solid
        rgba(255,255,255,.25);
    border-radius:50%;
    background:
        rgba(10,10,10,.76);
    color:#fff;
    font-size:2.35rem;
    cursor:pointer;
}

.gallery-arrow:hover{
    color:var(--gold2);
    border-color:var(--gold);
}

.gallery-prev{
    left:18px;
}

.gallery-next{
    right:18px;
}

.gallery-thumbs{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:
        12px 16px
        14px;
    border-top:
        1px solid
        rgba(255,255,255,.08);
}

.gallery-thumb{
    width:82px;
    height:58px;
    flex:0 0 82px;
    overflow:hidden;
    padding:0;
    border:
        2px solid
        transparent;
    border-radius:9px;
    background:#171717;
    opacity:.62;
    cursor:pointer;
}

.gallery-thumb:hover{
    opacity:1;
}

.gallery-thumb.is-active{
    opacity:1;
    border-color:var(--gold);
}

.gallery-thumb img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}


/* =====================================================
   BOOKING
===================================================== */

.booking{
    display:grid;
    grid-template-columns:
        1fr 1fr;
    gap:24px;
    background:#111;
    border:
        1px solid
        var(--line);
    padding:26px;
    border-radius:26px;
}


/* =====================================================
   FORMS
===================================================== */

.form-grid{
    display:grid;
    grid-template-columns:
        1fr 1fr;
    gap:12px;
}

.form-grid .full{
    grid-column:1/-1;
}

label{
    display:grid;
    gap:6px;
    font-size:.84rem;
    color:#c7bcaa;
}

input,
select,
textarea{
    width:100%;
    background:#171717;
    border:
        1px solid
        rgba(255,255,255,.12);
    color:#fff;
    border-radius:12px;
    padding:12px;
    font:inherit;
}

textarea{
    min-height:120px;
}


/* =====================================================
   NOTICES
===================================================== */

.notice{
    padding:12px 14px;
    border-radius:12px;
    margin-bottom:14px;
}

.success{
    background:#17301f;
    color:#a9dfb9;
}

.error{
    background:#321c1c;
    color:#efb2b2;
}


/* =====================================================
   CALENDAR
===================================================== */

.calendar{
    display:grid;
    grid-template-columns:
        repeat(7,1fr);
    gap:4px;
}

.cal-day{
    aspect-ratio:1;
    border:
        1px solid
        rgba(255,255,255,.07);
    border-radius:9px;
    display:grid;
    place-items:center;
    font-size:.8rem;
}

.cal-day.blocked{
    background:#3b1e1e;
    color:#e5a9a9;
}

.cal-day.free{
    background:#162619;
    color:#b7dfc0;
}


/* =====================================================
   FOOTER
===================================================== */

.footer{
    padding:38px 0;
    border-top:
        1px solid
        rgba(255,255,255,.07);
    color:#aaa296;
}

.admin-link{
    opacity:.45;
}


/* =====================================================
   HELPERS
===================================================== */

.hp{
    position:absolute!important;
    left:-9999px!important;
}

.privacy{
    max-width:850px;
    margin:auto;
    padding:60px 18px;
}

.privacy h1{
    font-size:2.7rem;
}


/* =====================================================
   TABLET
===================================================== */

@media(max-width:900px){

    .property-grid,
    .service-grid{
        grid-template-columns:
            1fr 1fr;
    }

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

    .links{
        display:none;
    }

    .hero-grid{
        grid-template-columns:1fr;
    }

    .hero-logo-wrap{
        display:none;
    }
}


/* =====================================================
   MOBILE
===================================================== */

@media(max-width:620px){

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

    body.gallery-open{
        overflow:hidden;
    }

    .wrap{
        width:100%;
        padding:0 14px;
    }

    .navin{
        height:66px;
        gap:10px;
    }

    .brand{
        display:none;
    }

    .mobile-greeting{
        display:flex;
        flex-direction:column;
        justify-content:center;
        min-width:0;
        line-height:1.08;
    }

    .mobile-greeting strong{
        color:var(--gold2);
        font-size:.98rem;
        font-weight:800;
    }

    .mobile-greeting span{
        margin-top:3px;
        color:var(--text);
        font-size:.9rem;
        font-weight:500;
    }

    .brand-logo{
        width:112px;
        max-height:46px;
    }

    .lang{
        margin-left:auto;
        flex-shrink:0;
    }

    .lang a{
        padding:5px 7px;
        font-size:.7rem;
    }

    .hero{
        min-height:auto;
        padding:50px 0;
    }

    .hero-grid{
        position:relative;
        display:flex;
        flex-direction:column;
        gap:26px;
    }

    .hero-copy{
        position:relative;
        z-index:2;
        order:2;
    }

    .hero-logo-wrap{
        display:flex;
        position:static;
        width:100%;
        min-height:82px;
        justify-content:center;
        align-items:center;
        order:1;
        z-index:1;
        pointer-events:none;
    }

    .hero-logo{
        width:112px;
        max-width:100%;
        filter:drop-shadow(0 10px 24px rgba(0,0,0,.32));
    }

    .hero-copy > .gold{
        max-width:100%;
    }

    .hero h1{
        font-size:
            clamp(
                2.6rem,
                12vw,
                3.6rem
            );
    }

    .lead{
        font-size:1rem;
    }

    section{
        padding:58px 0;
    }

    .section-head{
        align-items:start;
        flex-direction:column;
    }

    .property-grid,
    .service-grid,
    .form-grid{
        grid-template-columns:1fr;
    }

    .form-grid .full{
        grid-column:auto;
    }

    .booking{
        padding:16px;
    }

    .hero-actions{
        display:grid;
    }

    .hero-actions .btn{
        width:100%;
    }

    .calendar{
        gap:2px;
    }

    .cal-day{
        font-size:.7rem;
        border-radius:6px;
    }


    /* Galeria mobile */

    [data-property-gallery]{
        padding:0;
    }

    .gallery-window{
        width:100%;
        height:100dvh;
        max-height:none;
        border:0;
        border-radius:0;
    }

    .gallery-header{
        padding:
            9px 10px
            9px 14px;
    }

    .gallery-title{
        max-width:55vw;
    }

    .gallery-stage{
        flex:1 1 auto;
        height:auto;
    }

    .gallery-arrow{
        width:44px;
        height:44px;
        font-size:2rem;
    }

    .gallery-prev{
        left:8px;
    }

    .gallery-next{
        right:8px;
    }

    .gallery-thumbs{
        padding:
            9px 10px
            12px;
    }

    .gallery-thumb{
        width:70px;
        height:50px;
        flex-basis:70px;
    }
}

/* =====================================================
   PROPERTY DETAIL / INDIVIDUAL BOOKING
===================================================== */

.property-card-link{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    margin-top:18px;
    min-height:50px;
    padding:13px 18px;
    border:1px solid rgba(226,184,95,.55);
    border-radius:14px;
    background:linear-gradient(135deg, rgba(196,145,52,.98), rgba(224,180,88,.92));
    color:#111;
    font-weight:900;
    font-size:1rem;
    letter-spacing:.01em;
    box-shadow:0 10px 24px rgba(0,0,0,.18);
    transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.property-card-link:hover{
    transform:translateY(-1px);
    box-shadow:0 14px 30px rgba(0,0,0,.24);
    filter:brightness(1.04);
}

.property-detail-page{
    min-height:100vh;
}

.property-detail-hero{
    padding:34px 0 70px;
}

.property-back{
    position:relative;
    z-index:20;
    display:inline-flex;
    margin-bottom:18px;
    color:var(--gold2);
    font-weight:750;
    cursor:pointer;
    pointer-events:auto;
    touch-action:manipulation;
}

.property-detail-grid{
    display:grid;
    grid-template-columns:minmax(0,1.6fr) minmax(330px,.75fr);
    gap:26px;
    align-items:start;
}

.property-detail-cover{
    width:100%;
    aspect-ratio:16/9;
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:24px;
    background:#111;
}

.property-detail-cover img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.property-detail-placeholder{
    display:grid;
    place-items:center;
    color:var(--gold);
    font-size:2rem;
    font-weight:850;
}

.property-detail-thumbs{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-top:10px;
}

.property-detail-thumbs a,
.property-detail-thumbs .property-detail-thumb{
    aspect-ratio:4/3;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.08);
    border-radius:12px;
    background:#111;
}

.property-detail-thumbs img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .2s ease;
}

.property-detail-thumbs a:hover img,
.property-detail-thumbs .property-detail-thumb:hover img{
    transform:scale(1.035);
}

.property-detail-copy{
    padding:28px 4px 0;
}

.property-detail-copy h1{
    margin:6px 0 10px;
    font-size:clamp(2.3rem,5vw,4.5rem);
    line-height:1;
    letter-spacing:-.035em;
}

.property-detail-meta{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
    color:var(--muted);
}

.property-detail-price{
    margin-top:18px;
    color:var(--gold2);
    font-size:1.35rem;
    font-weight:900;
}

.property-detail-description{
    margin-top:28px;
    padding-top:24px;
    border-top:1px solid rgba(255,255,255,.08);
}

.property-detail-description h2{
    margin:0 0 8px;
    font-size:1.35rem;
}

.property-detail-description p{
    margin:0;
    color:#d5cec3;
    white-space:pre-line;
}

.property-booking-card{
    position:sticky;
    top:94px;
    padding:22px;
    border:1px solid var(--line);
    border-radius:24px;
    background:
        linear-gradient(
            180deg,
            rgba(25,25,25,.98),
            rgba(13,13,13,.98)
        );
    box-shadow:0 24px 80px rgba(0,0,0,.28);
}

.property-booking-price{
    display:flex;
    align-items:baseline;
    gap:8px;
    padding-bottom:16px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.property-booking-price strong{
    font-size:2rem;
    color:#fff;
}

.property-booking-price span{
    color:var(--muted);
}

.property-booking-card h2{
    margin:20px 0 12px;
    font-size:1.15rem;
}

.property-calendar-card{
    padding:14px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:16px;
    background:#0d0d0d;
}

.property-calendar-head{
    display:grid;
    grid-template-columns:38px 1fr 38px;
    align-items:center;
    gap:8px;
    margin-bottom:12px;
    text-align:center;
}

.calendar-nav-button{
    width:38px;
    height:38px;
    padding:0;
    border:1px solid var(--line);
    border-radius:50%;
    background:#151515;
    color:var(--gold2);
    cursor:pointer;
    font-size:1.35rem;
}

.calendar-legend{
    display:flex;
    gap:15px;
    flex-wrap:wrap;
    margin-top:12px;
    color:var(--muted);
    font-size:.76rem;
}

.calendar-legend span{
    display:flex;
    align-items:center;
    gap:6px;
}

.legend-dot{
    width:10px;
    height:10px;
    border-radius:50%;
}

.free-dot{
    background:#245c31;
}

.blocked-dot{
    background:#8f3535;
}

.property-booking-form{
    margin-top:18px;
}

.property-booking-submit{
    width:100%;
    margin-top:14px;
}

.property-booking-note{
    margin:12px 0 6px;
    color:#d6c9b4;
    font-size:.8rem;
}

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

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

    .property-booking-card{
        position:static;
    }
}

@media(max-width:620px){
    .property-detail-hero{
        padding:18px 0 44px;
    }

    .property-detail-cover{
        border-radius:16px;
        aspect-ratio:4/3;
    }

    .property-detail-thumbs{
        grid-template-columns:repeat(4,minmax(0,1fr));
        gap:7px;
    }

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

    .property-detail-copy h1{
        font-size:2.45rem;
    }

    .property-booking-card{
        padding:16px;
        border-radius:18px;
    }

    .property-booking-price strong{
        font-size:1.65rem;
    }
}


.cal-day.selectable{
    width:100%;
    padding:0;
    cursor:pointer;
    font:inherit;
}

.cal-day.selectable:hover{
    border-color:rgba(215,181,109,.65);
    transform:translateY(-1px);
}

.cal-day.selected{
    background:linear-gradient(135deg,var(--gold2),#c49a50);
    color:#17120a;
    border-color:var(--gold);
    font-weight:900;
}


.cal-day.selectable,
.cal-day.priced{
    grid-template-rows:auto auto;
    gap:1px;
}

.cal-date-number{
    font-weight:800;
    line-height:1;
}

.cal-price{
    font-size:.56rem;
    line-height:1;
    opacity:.82;
    white-space:nowrap;
}

.cal-day.selected .cal-price{
    opacity:1;
}

@media(max-width:620px){
    .cal-price{
        font-size:.5rem;
    }
}


/* =====================================================
   OWNER MANAGEMENT SECTION
===================================================== */

.owner-management{
    padding-top:64px;
}

.owner-management .service-grid .card{
    min-height:100%;
}

.owner-management .card-body{
    height:100%;
}

.owner-management .card h3{
    color:var(--gold2);
}

.owner-management .card p{
    color:var(--muted);
}

@media(max-width:1100px){
    .links a{
        max-width:155px;
        font-size:.74rem;
    }
}


/* =====================================================
   LIVE BOOKING SUMMARY
===================================================== */

.booking-summary{
    margin:16px 0 18px;
    padding:16px;
    border:1px solid rgba(215,181,109,.28);
    border-radius:16px;
    background:
        linear-gradient(135deg,rgba(215,181,109,.08),rgba(255,255,255,.02));
}

.booking-summary-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    padding-bottom:13px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.booking-summary-kicker{
    display:block;
    margin-bottom:4px;
    color:var(--gold);
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.booking-summary-head > div:first-child > strong{
    display:block;
    font-size:.95rem;
    line-height:1.35;
}

.booking-summary-nights{
    min-width:64px;
    text-align:right;
}

.booking-summary-nights strong{
    display:block;
    color:var(--gold2);
    font-size:1.5rem;
    line-height:1;
}

.booking-summary-nights span{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:.72rem;
}

.booking-rate-breakdown{
    display:grid;
    gap:8px;
    padding:13px 0;
}

.booking-rate-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    font-size:.8rem;
    color:var(--muted);
}

.booking-rate-row strong{
    color:var(--text);
    text-align:right;
    font-size:.8rem;
}

.booking-summary-total{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding-top:13px;
    border-top:1px solid rgba(255,255,255,.08);
    font-weight:800;
}

.booking-summary-total strong{
    color:var(--gold2);
    font-size:1.35rem;
}

.booking-summary-placeholder{
    margin:14px 0 18px;
    padding:12px 14px;
    border:1px dashed rgba(255,255,255,.12);
    border-radius:12px;
    color:var(--muted);
    font-size:.82rem;
}

.booking-summary-warning{
    padding:10px 12px;
    border:1px solid rgba(239,120,120,.24);
    border-radius:10px;
    background:rgba(110,25,25,.12);
    color:#e7a5a5;
    font-size:.82rem;
}

.property-booking-submit:disabled{
    opacity:.45;
    cursor:not-allowed;
}

@media(max-width:620px){
    .booking-rate-row{
        align-items:flex-start;
        flex-direction:column;
        gap:3px;
    }

    .booking-rate-row strong{
        text-align:left;
    }

    .booking-summary-total strong{
        font-size:1.2rem;
    }
}


/* =====================================================
   HOMEPAGE PROPERTY CAROUSEL
===================================================== */

.property-carousel{
    display:flex;
    align-items:stretch;
    gap:18px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:2px;
    padding:2px 2px 14px;
    scrollbar-width:none;
    -ms-overflow-style:none;
}

.property-carousel::-webkit-scrollbar{
    display:none;
}

.property-carousel > .card{
    position:relative;
    flex:0 0 calc((100% - 36px) / 3);
    min-width:0;
    display:flex;
    flex-direction:column;
    align-self:stretch;
    scroll-snap-align:start;
    border-color:rgba(214,166,76,.48);
    box-shadow:0 16px 36px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.02);
}

.property-carousel > .card .card-body{
    display:grid;
    grid-template-rows:auto auto minmax(5.6em,auto) auto auto auto;
    flex:1;
}

.property-carousel > .card .property-card-heading{
    min-height:2.9em;
}

.property-carousel > .card .meta{
    min-height:1.4em;
}

.property-carousel > .card .card-body > p{
    margin-bottom:0;
}

.property-carousel > .card .price{
    margin-top:18px;
}

.property-carousel > .card .property-card-link{
    align-self:end;
}

#alojamento{
    overflow:hidden;
}

#alojamento .section-head{
    margin-bottom:22px;
}

@media(max-width:900px){
    .property-carousel > .card{
        flex-basis:calc((100% - 18px) / 2);
    }
}

@media(max-width:620px){
    #alojamento{
        padding-top:42px;
    }

    #alojamento .section-head{
        margin-bottom:18px;
    }

    .property-carousel{
        gap:12px;
        margin-right:-14px;
        padding-right:14px;
        scroll-padding-left:0;
    }

    .property-carousel > .card{
        flex-basis:84%;
        border-radius:20px;
    }

    .property-carousel .card-body{
        padding:18px;
        grid-template-rows:auto auto minmax(6.8em,auto) auto auto auto;
    }

    .property-carousel .photo{
        aspect-ratio:4/3;
    }

    .property-carousel .card h3{
        font-size:1.3rem;
    }
}


/* =====================================================
   PROPERTY ROOM STATS
===================================================== */

.property-card-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
}

.property-card-heading h3{
    min-width:0;
}

.property-room-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-top:20px;
}

.property-room-stat{
    display:grid;
    grid-template-columns:auto 1fr;
    grid-template-areas:
        "icon value"
        "label label";
    align-items:center;
    min-width:0;
    min-height:84px;
    padding:14px 12px;
    border:1px solid rgba(214,166,76,.62);
    border-radius:16px;
    background:
        linear-gradient(180deg,rgba(214,166,76,.06),rgba(255,255,255,.018)),
        #151515;
    color:var(--gold2);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.025),
        0 8px 18px rgba(0,0,0,.12);
}

.property-room-icon{
    grid-area:icon;
    width:24px;
    height:24px;
    display:inline-flex;
}

.property-room-icon svg{
    width:100%;
    height:100%;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.property-room-stat strong{
    grid-area:value;
    margin-left:7px;
    color:#fff;
    font-size:1.05rem;
    line-height:1;
}

.property-room-stat small{
    grid-area:label;
    margin-top:7px;
    color:var(--muted);
    font-size:.64rem;
    font-weight:700;
    line-height:1.15;
    white-space:normal;
}

@media(max-width:620px){
    .property-room-stats{
        gap:9px;
    }

    .property-room-stat{
        min-height:76px;
        padding:12px 9px;
        border-radius:14px;
    }

    .property-room-icon{
        width:21px;
        height:21px;
    }

    .property-room-stat strong{
        margin-left:5px;
        font-size:.95rem;
    }

    .property-room-stat small{
        font-size:.56rem;
    }

    .property-card-link{
        min-height:48px;
        border-radius:13px;
        font-size:.96rem;
    }
}


/* =====================================================
   PROPERTY FEATURE SECTIONS
===================================================== */

.property-feature-section{
    margin-top:28px;
    padding-top:24px;
    border-top:1px solid rgba(255,255,255,.08);
}

.property-feature-section h2{
    margin:0 0 14px;
    font-size:1.35rem;
}

.sleeping-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}

.sleeping-card{
    display:flex;
    align-items:center;
    gap:11px;
    padding:16px;
    border:1px solid rgba(215,181,109,.22);
    border-radius:16px;
    background:rgba(255,255,255,.025);
}

.sleeping-icon{
    font-size:1.25rem;
}

.sleeping-card strong{
    font-size:.95rem;
}

.amenities-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px 14px;
}

.amenity-item{
    display:flex;
    align-items:center;
    gap:9px;
    min-height:42px;
    color:#ddd5c8;
}

.amenity-check{
    width:24px;
    height:24px;
    display:grid;
    place-items:center;
    flex:0 0 24px;
    border:1px solid var(--line);
    border-radius:50%;
    color:var(--gold2);
    font-weight:900;
}

@media(max-width:620px){
    .sleeping-grid,
    .amenities-grid{
        grid-template-columns:1fr;
    }

    .property-feature-section{
        margin-top:24px;
        padding-top:20px;
    }
}


.property-featured-badge{
    position:absolute;
    z-index:4;
    top:14px;
    left:14px;
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:8px 12px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    background:linear-gradient(135deg,rgba(190,137,43,.96),rgba(226,184,95,.94));
    color:#111;
    font-size:.76rem;
    font-weight:900;
    box-shadow:0 8px 20px rgba(0,0,0,.22);
}


.mobile-label,
.mobile-discover,
.property-section-head-mobile{
    display:none;
}

@media (max-width:720px){
    .desktop-label,
    .property-section-head-desktop,
    .property-section-intro{
        display:none;
    }

    .mobile-label,
    .property-section-head-mobile{
        display:inline;
    }

    .hero{
        padding:28px 0 22px;
    }

    .hero-grid{
        gap:14px;
    }

    .hero-logo-wrap{
        min-height:58px;
        margin-bottom:2px;
    }

    .hero-logo{
        width:96px;
    }

    .hero h1{
        margin:0 0 14px;
        line-height:.94;
    }

    .hero-copy .lead{
        margin-top:0;
        line-height:1.55;
    }

    .hero-actions{
        display:flex;
        flex-wrap:wrap;
        gap:10px;
        margin-top:20px;
    }

    .hero-actions .btn{
        width:auto;
        min-height:48px;
        padding:12px 18px;
        font-size:.92rem;
        flex:0 1 auto;
    }

    .hero-btn-primary{
        min-width:230px;
    }

    .hero-btn-secondary{
        min-width:170px;
    }

    .mobile-discover{
        display:flex;
        flex-direction:column;
        align-items:center;
        gap:3px;
        margin:22px auto 0;
        color:#d9d2c8;
        font-size:.68rem;
        font-weight:700;
        letter-spacing:.22em;
        text-transform:uppercase;
    }

    .mobile-discover-arrow{
        color:var(--gold2);
        font-size:1.1rem;
        line-height:1;
    }

    #alojamento{
        padding-top:24px;
    }

    .property-section-head{
        margin-bottom:14px !important;
    }

    .property-section-head-mobile{
        display:block;
    }

    .property-section-head-mobile .gold{
        display:block;
        margin-bottom:6px;
        font-size:.78rem;
        letter-spacing:.16em;
    }

    .property-section-head-mobile h2{
        margin:0;
        font-size:1.55rem;
        line-height:1.1;
    }

    .property-carousel{
        margin-top:10px;
    }
}


.avyena-credit{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:6px;
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid rgba(255,255,255,.06);
    color:rgba(255,255,255,.46);
    font-size:.72rem;
    letter-spacing:.03em;
}

.avyena-credit a{
    color:var(--gold2);
    font-weight:800;
    text-decoration:none;
}

.avyena-credit a:hover{
    text-decoration:underline;
}


/* =====================================================
   MOBILE HERO V3 — approved compact composition
   ===================================================== */
@media (max-width:720px){

    /* Header becomes part of the hero instead of a separate banner */
    .nav{
        position:absolute !important;
        top:0;
        left:0;
        right:0;
        width:100%;
        background:transparent !important;
        backdrop-filter:none !important;
        border-bottom:0 !important;
        box-shadow:none !important;
    }

    .navin{
        height:64px !important;
        padding-top:4px;
    }

    /* Compact hero so the first property image is already visible */
    .hero{
        min-height:0 !important;
        padding:82px 0 14px !important;
    }

    .hero-grid{
        display:flex !important;
        flex-direction:column !important;
        gap:8px !important;
    }

    .hero-logo-wrap{
        order:1 !important;
        min-height:0 !important;
        margin:0 0 2px !important;
    }

    .hero-logo{
        width:82px !important;
        max-height:118px !important;
    }

    .hero-copy{
        order:2 !important;
    }

    .hero h1{
        margin:0 0 10px !important;
        font-size:clamp(2.35rem,10.6vw,3.15rem) !important;
        line-height:.91 !important;
        letter-spacing:-.05em !important;
    }

    .hero-copy .lead{
        margin:0 !important;
        font-size:.91rem !important;
        line-height:1.42 !important;
        max-width:100% !important;
    }

    /* Approved: buttons side by side */
    .hero-actions{
        display:grid !important;
        grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) !important;
        gap:8px !important;
        margin-top:15px !important;
        align-items:stretch !important;
    }

    .hero-actions .btn{
        width:100% !important;
        min-width:0 !important;
        min-height:44px !important;
        padding:9px 10px !important;
        border-radius:999px !important;
        font-size:.74rem !important;
        line-height:1.12 !important;
        text-align:center !important;
        white-space:normal !important;
    }

    .mobile-discover{
        margin:12px auto 0 !important;
        gap:1px !important;
        font-size:.59rem !important;
    }

    .mobile-discover-arrow{
        font-size:.95rem !important;
    }

    /* Bring listings up; reveal top of first card on initial viewport */
    #alojamento{
        padding-top:14px !important;
    }

    .property-section-head{
        margin-bottom:9px !important;
    }

    .property-section-head-mobile .gold{
        margin-bottom:4px !important;
        font-size:.66rem !important;
        letter-spacing:.14em !important;
    }

    .property-section-head-mobile h2{
        font-size:1.28rem !important;
        line-height:1.05 !important;
        max-width:92%;
    }

    .property-carousel{
        margin-top:6px !important;
    }
}


/* =====================================================
   MOBILE V4 — clean approved Sun House concept
   Desktop intentionally unchanged
===================================================== */
.mobile-service-strip{display:none}

@media (max-width:720px){
    body{
        background:#0b0b0a;
    }

    .wrap{
        padding-left:16px !important;
        padding-right:16px !important;
    }

    /* Quiet, integrated header */
    .nav{
        position:absolute !important;
        background:transparent !important;
        border:0 !important;
    }

    .navin{
        height:74px !important;
        padding-top:8px !important;
        align-items:flex-start !important;
    }

    .mobile-greeting{
        padding-top:8px;
    }

    .mobile-greeting strong{
        font-size:.88rem !important;
    }

    .mobile-greeting span{
        font-size:.78rem !important;
    }

    .lang{
        padding-top:8px;
        gap:2px !important;
    }

    .lang a{
        border:0 !important;
        padding:4px 5px !important;
        font-size:.68rem !important;
    }

    /* Clean hero: brand + typography, no decorative/stock photography */
    .hero{
        padding:82px 0 16px !important;
        background:
            radial-gradient(circle at 50% 8%,rgba(215,181,109,.055),transparent 30%),
            #0b0b0a !important;
    }

    .hero-grid{
        gap:8px !important;
    }

    .hero-logo-wrap{
        min-height:0 !important;
        margin:0 auto 8px !important;
    }

    .hero-logo{
        width:86px !important;
        max-height:120px !important;
        filter:drop-shadow(0 8px 20px rgba(0,0,0,.26)) !important;
    }

    .hero h1{
        margin:0 0 12px !important;
        font-size:clamp(2.45rem,11vw,3.25rem) !important;
        line-height:.94 !important;
        letter-spacing:-.045em !important;
    }

    .hero-copy .lead{
        max-width:34rem !important;
        font-size:.88rem !important;
        line-height:1.48 !important;
        color:#ded8cf !important;
    }

    .hero-actions{
        grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr) !important;
        gap:9px !important;
        margin-top:17px !important;
    }

    .hero-actions .btn{
        min-height:50px !important;
        padding:9px 12px !important;
        font-size:.73rem !important;
        border-radius:20px !important;
    }

    .mobile-discover{
        display:none !important;
    }

    /* Three clear Sun House pillars, like the approved mockup */
    .mobile-service-strip{
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        margin-top:20px;
        padding:0 1px;
    }

    .mobile-service-strip a{
        min-width:0;
        min-height:68px;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:flex-start;
        gap:6px;
        padding:0 8px;
        color:#e9e4dc;
        text-align:center;
        font-size:.62rem;
        line-height:1.22;
    }

    .mobile-service-strip a+a{
        border-left:1px solid rgba(255,255,255,.1);
    }

    .mobile-service-icon{
        display:grid;
        place-items:center;
        width:27px;
        height:27px;
        color:var(--gold2);
        font-size:1.45rem;
        line-height:1;
    }

    /* Properties become the photographic hero */
    #alojamento{
        padding:18px 0 42px !important;
        background:#0b0b0a;
    }

    #alojamento .section-head{
        margin-bottom:10px !important;
    }

    .property-section-head-mobile{
        width:100%;
    }

    .mobile-featured-title-row{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:14px;
        width:100%;
    }

    .property-section-head-mobile h2{
        margin:0 !important;
        max-width:none !important;
        color:#f5f1ea;
        font-size:1.25rem !important;
        line-height:1.05 !important;
        letter-spacing:-.025em;
    }

    .mobile-view-all{
        flex:0 0 auto;
        color:#ddd6cc;
        font-size:.7rem;
        white-space:nowrap;
    }

    .property-carousel{
        gap:10px !important;
        margin-top:8px !important;
        margin-right:-16px !important;
        padding:2px 16px 12px 0 !important;
    }

    .property-carousel > .card{
        flex-basis:88% !important;
        border:0 !important;
        border-radius:17px !important;
        background:#f4f2ee !important;
        color:#141414 !important;
        box-shadow:0 14px 32px rgba(0,0,0,.3) !important;
    }

    .property-featured-badge{
        display:none !important;
    }

    .property-carousel .photo{
        aspect-ratio:16/10 !important;
        background:#171717;
    }

    .property-carousel .card-body{
        display:grid !important;
        grid-template-columns:1fr auto !important;
        grid-template-rows:auto auto auto !important;
        column-gap:12px !important;
        row-gap:3px !important;
        padding:12px 13px 13px !important;
    }

    .property-carousel .property-card-heading{
        grid-column:1;
        grid-row:1;
        min-height:0 !important;
    }

    .property-carousel .card h3{
        margin:0 !important;
        color:#111 !important;
        font-size:1rem !important;
        line-height:1.12;
    }

    .property-carousel .meta{
        grid-column:1;
        grid-row:2;
        min-height:0 !important;
        color:#6c6861 !important;
        font-size:.7rem;
    }

    .property-carousel .meta::before{
        content:"⌖ ";
        color:#111;
    }

    .property-carousel .card-body > p{
        display:none !important;
    }

    .property-carousel .price{
        grid-column:2;
        grid-row:1 / span 2;
        align-self:center;
        max-width:110px;
        margin:0 !important;
        color:#111 !important;
        text-align:right;
        font-size:.88rem !important;
        line-height:1.15;
    }

    .property-carousel .property-room-stats{
        grid-column:1 / -1;
        grid-row:3;
        display:flex !important;
        gap:15px !important;
        margin-top:8px !important;
        padding-top:9px;
        border-top:1px solid rgba(0,0,0,.08);
    }

    .property-carousel .property-room-stat{
        min-height:0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        color:#2c2925 !important;
        box-shadow:none !important;
    }

    .property-carousel .property-room-icon{
        width:18px !important;
        height:18px !important;
        color:#292622 !important;
    }

    .property-carousel .property-room-stat strong{
        margin-left:3px !important;
        color:#171717 !important;
        font-size:.72rem !important;
    }

    .property-carousel .property-room-stat small{
        display:none !important;
    }

    .property-carousel .property-card-link{
        position:absolute;
        inset:0;
        min-height:0 !important;
        border:0 !important;
        background:transparent !important;
        color:transparent !important;
        z-index:2;
    }

    .property-carousel .photo-count{
        z-index:3;
    }

    /* Keep lower sections clean and secondary */
    .owner-management,
    #obras,
    #orcamento{
        padding-top:44px !important;
        padding-bottom:44px !important;
    }

    .service-grid{
        gap:10px !important;
    }

    .service-grid .card{
        border-radius:18px !important;
    }

    .service-grid .card-body{
        padding:18px !important;
    }
}


/* =====================================================
   MOBILE V4.1 — approved header composition
   Greeting left · languages centre · original logo right
===================================================== */
.mobile-header-logo{display:none}

@media (max-width:720px){
    .navin{
        position:relative !important;
        display:grid !important;
        grid-template-columns:minmax(92px,1fr) auto minmax(108px,1fr) !important;
        align-items:start !important;
        gap:8px !important;
        height:104px !important;
        padding-top:12px !important;
    }

    .mobile-greeting{
        grid-column:1;
        justify-self:start;
        padding-top:5px !important;
        z-index:2;
    }

    .lang{
        grid-column:2;
        justify-self:center;
        align-self:start;
        display:flex !important;
        padding-top:7px !important;
        gap:5px !important;
        z-index:3;
    }

    .lang a{
        padding:4px 4px !important;
        font-size:.72rem !important;
    }

    .lang a[aria-current="page"]{
        color:var(--gold2) !important;
    }

    .mobile-header-logo{
        grid-column:3;
        justify-self:end;
        align-self:start;
        display:block;
        width:112px;
        height:88px;
        margin-top:-3px;
        overflow:visible;
        z-index:2;
    }

    .mobile-header-logo img{
        display:block;
        width:100%;
        height:100%;
        object-fit:contain;
        object-position:center top;
        filter:drop-shadow(0 7px 16px rgba(0,0,0,.28));
    }

    /* Desktop brand/navigation stay hidden by the existing mobile rules */
    .brand{
        display:none !important;
    }

    .links{
        display:none !important;
    }

    /* Logo leaves the hero completely: use that space to expose the homes */
    .hero{
        padding-top:104px !important;
        padding-bottom:8px !important;
    }

    .hero-grid{
        display:block !important;
    }

    .hero-logo-wrap{
        display:none !important;
    }

    .hero h1{
        margin-top:0 !important;
        margin-bottom:9px !important;
        font-size:clamp(2.35rem,10.5vw,3.1rem) !important;
    }

    .hero-copy .lead{
        margin-bottom:0 !important;
        font-size:.82rem !important;
        line-height:1.43 !important;
    }

    .hero-actions{
        margin-top:14px !important;
    }

    .mobile-service-strip{
        margin-top:16px !important;
    }

    #alojamento{
        padding-top:10px !important;
    }
}

@media (max-width:390px){
    .navin{
        grid-template-columns:minmax(82px,1fr) auto minmax(98px,1fr) !important;
    }
    .mobile-header-logo{
        width:102px;
    }
    .lang{
        gap:1px !important;
    }
}


/* =====================================================
   MOBILE V4.2 — larger original logo, tighter top-right placement
===================================================== */
@media (max-width:720px){
    .navin{
        grid-template-columns:minmax(92px,1fr) auto minmax(142px,1fr) !important;
        height:126px !important;
        padding-top:10px !important;
    }

    .mobile-greeting{
        padding-top:8px !important;
    }

    .lang{
        padding-top:12px !important;
    }

    .mobile-header-logo{
        width:148px !important;
        height:118px !important;
        margin-top:-8px !important;
        margin-right:-10px !important;
    }

    .mobile-header-logo img{
        width:100% !important;
        height:100% !important;
        object-fit:contain !important;
        object-position:right top !important;
    }

    .hero{
        padding-top:112px !important;
    }
}

@media (max-width:390px){
    .navin{
        grid-template-columns:minmax(82px,1fr) auto minmax(128px,1fr) !important;
    }

    .mobile-header-logo{
        width:136px !important;
        height:108px !important;
        margin-right:-8px !important;
    }

    .hero{
        padding-top:106px !important;
    }
}


/* Fix header grid auto-placement: keep greeting, languages and logo on the same row */
@media (max-width:720px){
    .mobile-greeting{
        grid-row:1 !important;
    }

    .lang{
        grid-row:1 !important;
        align-self:start !important;
    }

    .mobile-header-logo{
        grid-row:1 !important;
    }
}


/* =====================================================
   DESKTOP V4.3 — compact single-logo layout
   Keeps mobile rules intact and removes wasted vertical space.
===================================================== */
@media (min-width:721px){
    .mobile-header-logo{
        display:none !important;
    }

    .brand{
        display:flex !important;
    }

    .brand-logo{
        display:block !important;
        width:118px !important;
        max-width:118px !important;
        height:52px !important;
        max-height:52px !important;
        object-fit:contain !important;
    }

    .hero-logo-wrap{
        display:none !important;
    }

    .navin{
        height:68px;
    }

    .hero{
        min-height:0;
        padding:54px 0 34px;
    }

    .hero-grid{
        grid-template-columns:minmax(0,1fr) !important;
        max-width:920px;
        margin-left:0;
        margin-right:auto;
        gap:0;
    }

    .hero-copy{
        max-width:860px;
    }

    .hero h1{
        margin-top:0;
        margin-bottom:16px;
    }

    .hero-actions{
        margin-top:22px;
    }

    section{
        padding:58px 0;
    }

    #alojamento{
        padding-top:34px;
    }

    .section-head{
        margin-bottom:22px;
    }
}


/* =====================================================
   DESKTOP V4.4 — accommodation heading balance
   Intro text stays centered in the section; Sun House logo anchors right.
===================================================== */
@media (min-width:721px){
    .property-section-head{
        display:grid !important;
        grid-template-columns:minmax(0,1fr) minmax(320px,.9fr) auto;
        align-items:end !important;
        gap:28px !important;
    }

    .property-section-intro{
        margin:0 !important;
        align-self:end;
        max-width:520px !important;
    }

    .property-section-logo{
        display:flex;
        align-items:flex-end;
        justify-content:flex-end;
        min-width:120px;
    }

    .property-section-logo img{
        display:block;
        width:126px;
        height:92px;
        object-fit:contain;
        object-position:right bottom;
    }
}

@media (max-width:720px){
    .property-section-logo{
        display:none !important;
    }
}


/* =====================================================
   DESKTOP V5 — mirror approved mobile homepage layout
   Same visual hierarchy as mobile, scaled for desktop.
===================================================== */
@media (min-width:721px){

    /* Header: greeting left · languages centre · original logo right */
    .nav{
        position:absolute !important;
        top:0;
        left:0;
        right:0;
        width:100%;
        background:transparent !important;
        backdrop-filter:none !important;
        border-bottom:0 !important;
        box-shadow:none !important;
    }

    .navin{
        position:relative !important;
        display:grid !important;
        grid-template-columns:minmax(260px,1fr) auto minmax(260px,1fr) !important;
        align-items:start !important;
        gap:24px !important;
        height:132px !important;
        padding-top:18px !important;
    }

    .mobile-greeting{
        display:flex !important;
        grid-column:1;
        grid-row:1;
        justify-self:start;
        flex-direction:column;
        padding-top:14px;
        line-height:1.08;
    }

    .mobile-greeting strong{
        color:var(--gold2);
        font-size:1rem;
        font-weight:800;
    }

    .mobile-greeting span{
        margin-top:4px;
        color:var(--text);
        font-size:.9rem;
        font-weight:500;
    }

    .lang{
        grid-column:2;
        grid-row:1;
        justify-self:center;
        align-self:start;
        display:flex !important;
        padding-top:16px !important;
        gap:7px !important;
    }

    .lang a{
        border:0 !important;
        padding:5px 6px !important;
        font-size:.78rem !important;
    }

    .lang a[aria-current="page"]{
        color:var(--gold2) !important;
    }

    .mobile-header-logo{
        display:block !important;
        grid-column:3;
        grid-row:1;
        justify-self:end;
        align-self:start;
        width:176px !important;
        height:122px !important;
        margin-top:-6px !important;
        margin-right:-8px !important;
        overflow:visible;
    }

    .mobile-header-logo img{
        display:block;
        width:100% !important;
        height:100% !important;
        object-fit:contain !important;
        object-position:right top !important;
        filter:drop-shadow(0 8px 20px rgba(0,0,0,.28));
    }

    .brand,
    .links{
        display:none !important;
    }

    /* Hero follows mobile composition */
    .hero{
        min-height:0 !important;
        padding:132px 0 24px !important;
        background:
            radial-gradient(circle at 50% 8%,rgba(215,181,109,.055),transparent 32%),
            #0b0b0a !important;
    }

    .hero-grid{
        display:block !important;
        max-width:none !important;
        margin:0 auto !important;
    }

    .hero-logo-wrap{
        display:none !important;
    }

    .hero-copy{
        max-width:900px !important;
    }

    .hero h1{
        margin:0 0 14px !important;
        max-width:720px;
        font-size:clamp(3.8rem,6vw,5.8rem) !important;
        line-height:.92 !important;
        letter-spacing:-.05em !important;
    }

    .hero-copy .lead{
        max-width:760px !important;
        margin:0 !important;
        font-size:1.02rem !important;
        line-height:1.48 !important;
        color:#ded8cf !important;
    }

    .hero-actions{
        display:grid !important;
        grid-template-columns:minmax(240px,1.15fr) minmax(210px,.9fr) !important;
        width:min(560px,100%);
        gap:10px !important;
        margin-top:20px !important;
    }

    .hero-actions .btn{
        width:100% !important;
        min-width:0 !important;
        min-height:52px !important;
        padding:10px 14px !important;
        border-radius:20px !important;
        font-size:.82rem !important;
        text-align:center !important;
    }

    .desktop-label{
        display:none !important;
    }

    .mobile-label{
        display:inline !important;
    }

    .mobile-service-strip{
        display:grid !important;
        grid-template-columns:repeat(3,minmax(0,1fr));
        width:min(680px,100%);
        margin-top:24px !important;
        padding:0 1px;
    }

    .mobile-service-strip a{
        min-height:76px;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:flex-start;
        gap:8px;
        padding:0 18px;
        color:#e9e4dc;
        text-align:center;
        font-size:.72rem;
        line-height:1.22;
    }

    .mobile-service-strip a+a{
        border-left:1px solid rgba(255,255,255,.1);
    }

    .mobile-service-icon{
        display:grid;
        place-items:center;
        width:30px;
        height:30px;
        color:var(--gold2);
        font-size:1.55rem;
        line-height:1;
    }

    /* Properties: same mobile visual language */
    #alojamento{
        padding:22px 0 54px !important;
        background:#0b0b0a;
    }

    .property-section-head{
        display:block !important;
        margin-bottom:12px !important;
    }

    .property-section-head-desktop,
    .property-section-intro,
    .property-section-logo{
        display:none !important;
    }

    .property-section-head-mobile{
        display:block !important;
        width:100%;
    }

    .mobile-featured-title-row{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:18px;
        width:100%;
    }

    .property-section-head-mobile h2{
        margin:0 !important;
        max-width:none !important;
        color:#f5f1ea;
        font-size:1.6rem !important;
        line-height:1.05 !important;
        letter-spacing:-.025em;
    }

    .mobile-view-all{
        flex:0 0 auto;
        color:#ddd6cc;
        font-size:.78rem;
        white-space:nowrap;
    }

    .property-carousel{
        gap:14px !important;
        margin-top:10px !important;
        margin-right:0 !important;
        padding:2px 2px 14px !important;
    }

    .property-carousel > .card{
        flex:0 0 calc((100% - 28px)/3) !important;
        border:0 !important;
        border-radius:18px !important;
        background:#f4f2ee !important;
        color:#141414 !important;
        box-shadow:0 16px 36px rgba(0,0,0,.3) !important;
    }

    .property-featured-badge{
        display:none !important;
    }

    .property-carousel .photo{
        aspect-ratio:16/10 !important;
        background:#171717;
    }

    .property-carousel .card-body{
        display:grid !important;
        grid-template-columns:1fr auto !important;
        grid-template-rows:auto auto auto !important;
        column-gap:14px !important;
        row-gap:4px !important;
        padding:14px 15px 15px !important;
    }

    .property-carousel .property-card-heading{
        grid-column:1;
        grid-row:1;
        min-height:0 !important;
    }

    .property-carousel .card h3{
        margin:0 !important;
        color:#111 !important;
        font-size:1.08rem !important;
        line-height:1.12;
    }

    .property-carousel .meta{
        grid-column:1;
        grid-row:2;
        min-height:0 !important;
        color:#6c6861 !important;
        font-size:.72rem;
    }

    .property-carousel .meta::before{
        content:"⌖ ";
        color:#111;
    }

    .property-carousel .card-body > p{
        display:none !important;
    }

    .property-carousel .price{
        grid-column:2;
        grid-row:1 / span 2;
        align-self:center;
        max-width:120px;
        margin:0 !important;
        color:#111 !important;
        text-align:right;
        font-size:.92rem !important;
        line-height:1.15;
    }

    .property-carousel .property-room-stats{
        grid-column:1 / -1;
        grid-row:3;
        display:flex !important;
        gap:18px !important;
        margin-top:9px !important;
        padding-top:10px;
        border-top:1px solid rgba(0,0,0,.08);
    }

    .property-carousel .property-room-stat{
        min-height:0 !important;
        padding:0 !important;
        border:0 !important;
        background:transparent !important;
        color:#2c2925 !important;
        box-shadow:none !important;
    }

    .property-carousel .property-room-icon{
        width:19px !important;
        height:19px !important;
        color:#292622 !important;
    }

    .property-carousel .property-room-stat strong{
        margin-left:4px !important;
        color:#171717 !important;
        font-size:.76rem !important;
    }

    .property-carousel .property-room-stat small{
        display:none !important;
    }

    .property-carousel .property-card-link{
        position:absolute;
        inset:0;
        min-height:0 !important;
        border:0 !important;
        background:transparent !important;
        color:transparent !important;
        z-index:2;
    }

    .property-carousel .photo-count{
        z-index:3;
    }

    /* Secondary sections remain compact, like mobile */
    .owner-management,
    #obras,
    #orcamento{
        padding-top:48px !important;
        padding-bottom:48px !important;
    }
}


/* =====================================================
   HOMEPAGE V6 — single responsive composition
   One logo only. Mobile layout is the source of truth.
===================================================== */

.nav{
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    background:transparent !important;
    backdrop-filter:none !important;
    border-bottom:0 !important;
    box-shadow:none !important;
}

.navin{
    position:relative !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) !important;
    align-items:start !important;
}

.mobile-greeting{
    display:flex !important;
    grid-column:1 !important;
    grid-row:1 !important;
    justify-self:start !important;
    flex-direction:column !important;
    min-width:0 !important;
    color:var(--text) !important;
    line-height:1.08 !important;
}

.mobile-greeting strong{
    color:var(--gold2) !important;
    font-weight:800 !important;
}

.mobile-greeting span{
    color:var(--text) !important;
    font-weight:500 !important;
}

.lang{
    display:flex !important;
    grid-column:2 !important;
    grid-row:1 !important;
    justify-self:center !important;
    align-self:start !important;
    margin:0 !important;
}

.lang a{
    border:0 !important;
    background:transparent !important;
}

.lang a[aria-current="page"]{
    color:var(--gold2) !important;
}

.mobile-header-logo{
    display:block !important;
    grid-column:3 !important;
    grid-row:1 !important;
    justify-self:end !important;
    align-self:start !important;
    overflow:visible !important;
    z-index:2 !important;
}

.mobile-header-logo img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    object-position:right top !important;
    filter:drop-shadow(0 8px 20px rgba(0,0,0,.28)) !important;
}

/* Old desktop header elements are intentionally disabled. */
.brand,
.links,
.hero-logo-wrap,
.property-section-head-desktop,
.property-section-intro,
.property-section-logo{
    display:none !important;
}

.hero{
    min-height:0 !important;
    background:
        radial-gradient(circle at 50% 8%,rgba(215,181,109,.055),transparent 32%),
        #0b0b0a !important;
}

.hero-grid{
    display:block !important;
    max-width:none !important;
    margin-left:auto !important;
    margin-right:auto !important;
}

.hero-copy .lead{
    color:#ded8cf !important;
}

.mobile-label{
    display:inline !important;
}

.desktop-label{
    display:none !important;
}

.mobile-service-strip{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

.mobile-service-strip a{
    min-width:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:flex-start !important;
    color:#e9e4dc !important;
    text-align:center !important;
}

.mobile-service-strip a+a{
    border-left:1px solid rgba(255,255,255,.1) !important;
}

.mobile-service-icon{
    display:grid !important;
    place-items:center !important;
    color:var(--gold2) !important;
    line-height:1 !important;
}

#alojamento{
    background:#0b0b0a !important;
}

.property-section-head{
    display:block !important;
}

.property-section-head-mobile{
    display:block !important;
    width:100% !important;
}

.mobile-featured-title-row{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    width:100% !important;
}

.property-section-head-mobile h2{
    margin:0 !important;
    max-width:none !important;
    color:#f5f1ea !important;
    line-height:1.05 !important;
    letter-spacing:-.025em !important;
}

.mobile-view-all{
    flex:0 0 auto !important;
    color:#ddd6cc !important;
    white-space:nowrap !important;
}

.property-carousel > .card{
    border:0 !important;
    background:#f4f2ee !important;
    color:#141414 !important;
    box-shadow:0 16px 36px rgba(0,0,0,.3) !important;
}

.property-featured-badge{
    display:none !important;
}

.property-carousel .photo{
    background:#171717 !important;
}

.property-carousel .card-body{
    display:grid !important;
    grid-template-columns:1fr auto !important;
    grid-template-rows:auto auto auto !important;
}

.property-carousel .property-card-heading{
    grid-column:1 !important;
    grid-row:1 !important;
    min-height:0 !important;
}

.property-carousel .card h3{
    margin:0 !important;
    color:#111 !important;
    line-height:1.12 !important;
}

.property-carousel .meta{
    grid-column:1 !important;
    grid-row:2 !important;
    min-height:0 !important;
    color:#6c6861 !important;
}

.property-carousel .meta::before{
    content:"⌖ " !important;
    color:#111 !important;
}

.property-carousel .card-body > p{
    display:none !important;
}

.property-carousel .price{
    grid-column:2 !important;
    grid-row:1 / span 2 !important;
    align-self:center !important;
    margin:0 !important;
    color:#111 !important;
    text-align:right !important;
    line-height:1.15 !important;
}

.property-carousel .property-room-stats{
    grid-column:1 / -1 !important;
    grid-row:3 !important;
    display:flex !important;
    border-top:1px solid rgba(0,0,0,.08) !important;
}

.property-carousel .property-room-stat{
    min-height:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    color:#2c2925 !important;
    box-shadow:none !important;
}

.property-carousel .property-room-icon{
    color:#292622 !important;
}

.property-carousel .property-room-stat strong{
    color:#171717 !important;
}

.property-carousel .property-room-stat small{
    display:none !important;
}

.property-carousel .property-card-link{
    position:absolute !important;
    inset:0 !important;
    min-height:0 !important;
    border:0 !important;
    background:transparent !important;
    color:transparent !important;
    z-index:2 !important;
}

.property-carousel .photo-count{
    z-index:3 !important;
}

/* Desktop/tablet: enlarged version of the approved mobile composition. */
@media (min-width:721px){
    .navin{
        height:132px !important;
        padding-top:18px !important;
        gap:24px !important;
    }

    .mobile-greeting{
        padding-top:14px !important;
    }

    .mobile-greeting strong{
        font-size:1rem !important;
    }

    .mobile-greeting span{
        margin-top:4px !important;
        font-size:.9rem !important;
    }

    .lang{
        padding-top:16px !important;
        gap:7px !important;
    }

    .lang a{
        padding:5px 6px !important;
        font-size:.78rem !important;
    }

    .mobile-header-logo{
        width:176px !important;
        height:122px !important;
        margin-top:-6px !important;
        margin-right:-8px !important;
    }

    .hero{
        padding:132px 0 24px !important;
    }

    .hero-copy{
        max-width:900px !important;
    }

    .hero h1{
        max-width:720px !important;
        margin:0 0 14px !important;
        font-size:clamp(3.8rem,6vw,5.8rem) !important;
        line-height:.92 !important;
        letter-spacing:-.05em !important;
    }

    .hero-copy .lead{
        max-width:760px !important;
        margin:0 !important;
        font-size:1.02rem !important;
        line-height:1.48 !important;
    }

    .hero-actions{
        display:grid !important;
        grid-template-columns:minmax(240px,1.15fr) minmax(210px,.9fr) !important;
        width:min(560px,100%) !important;
        gap:10px !important;
        margin-top:20px !important;
    }

    .hero-actions .btn{
        width:100% !important;
        min-width:0 !important;
        min-height:52px !important;
        padding:10px 14px !important;
        border-radius:20px !important;
        font-size:.82rem !important;
        text-align:center !important;
    }

    .mobile-service-strip{
        width:min(680px,100%) !important;
        margin-top:24px !important;
        padding:0 1px !important;
    }

    .mobile-service-strip a{
        min-height:76px !important;
        gap:8px !important;
        padding:0 18px !important;
        font-size:.72rem !important;
        line-height:1.22 !important;
    }

    .mobile-service-icon{
        width:30px !important;
        height:30px !important;
        font-size:1.55rem !important;
    }

    #alojamento{
        padding:22px 0 54px !important;
    }

    .property-section-head{
        margin-bottom:12px !important;
    }

    .mobile-featured-title-row{
        gap:18px !important;
    }

    .property-section-head-mobile h2{
        font-size:1.6rem !important;
    }

    .mobile-view-all{
        font-size:.78rem !important;
    }

    .property-carousel{
        gap:14px !important;
        margin-top:10px !important;
        margin-right:0 !important;
        padding:2px 2px 14px !important;
    }

    .property-carousel > .card{
        flex:0 0 calc((100% - 28px)/3) !important;
        border-radius:18px !important;
    }

    .property-carousel .photo{
        aspect-ratio:16/10 !important;
    }

    .property-carousel .card-body{
        column-gap:14px !important;
        row-gap:4px !important;
        padding:14px 15px 15px !important;
    }

    .property-carousel .card h3{
        font-size:1.08rem !important;
    }

    .property-carousel .meta{
        font-size:.72rem !important;
    }

    .property-carousel .price{
        max-width:120px !important;
        font-size:.92rem !important;
    }

    .property-carousel .property-room-stats{
        gap:18px !important;
        margin-top:9px !important;
        padding-top:10px !important;
    }

    .property-carousel .property-room-icon{
        width:19px !important;
        height:19px !important;
    }

    .property-carousel .property-room-stat strong{
        margin-left:4px !important;
        font-size:.76rem !important;
    }

    .owner-management,
    #obras,
    #orcamento{
        padding-top:48px !important;
        padding-bottom:48px !important;
    }
}

/* Mobile keeps the approved compact composition. */
@media (max-width:720px){
    .navin{
        height:126px !important;
        padding-top:10px !important;
        gap:8px !important;
        grid-template-columns:minmax(92px,1fr) auto minmax(142px,1fr) !important;
    }

    .mobile-greeting{
        padding-top:8px !important;
    }

    .mobile-greeting strong{
        font-size:.88rem !important;
    }

    .mobile-greeting span{
        margin-top:3px !important;
        font-size:.78rem !important;
    }

    .lang{
        padding-top:12px !important;
        gap:2px !important;
    }

    .lang a{
        padding:4px 5px !important;
        font-size:.68rem !important;
    }

    .mobile-header-logo{
        width:148px !important;
        height:118px !important;
        margin-top:-8px !important;
        margin-right:-10px !important;
    }

    .hero{
        padding:112px 0 8px !important;
    }

    .hero h1{
        margin:0 0 9px !important;
        font-size:clamp(2.35rem,10.5vw,3.1rem) !important;
        line-height:.94 !important;
    }

    .hero-copy .lead{
        margin:0 !important;
        font-size:.82rem !important;
        line-height:1.43 !important;
    }

    .hero-actions{
        margin-top:14px !important;
    }

    .mobile-service-strip{
        margin-top:16px !important;
    }

    #alojamento{
        padding-top:10px !important;
    }
}

@media (max-width:390px){
    .navin{
        grid-template-columns:minmax(82px,1fr) auto minmax(128px,1fr) !important;
    }

    .mobile-header-logo{
        width:136px !important;
        height:108px !important;
        margin-right:-8px !important;
    }

    .hero{
        padding-top:106px !important;
    }
}


/* DESKTOP V6.1 — make the single Sun House logo deliberately prominent */
@media (min-width:721px){
    .navin{
        grid-template-columns:minmax(260px,1fr) auto minmax(360px,1fr) !important;
        height:190px !important;
    }

    .mobile-header-logo{
        width:300px !important;
        height:190px !important;
        margin-top:-16px !important;
        margin-right:-24px !important;
    }

    .mobile-header-logo img{
        object-position:right top !important;
    }

    .hero{
        padding-top:176px !important;
    }
}

@media (min-width:1200px){
    .mobile-header-logo{
        width:350px !important;
        height:215px !important;
        margin-right:-34px !important;
    }
}


/* DESKTOP V6.2 — approved large-logo scale */
@media (min-width:721px){
    .navin{
        grid-template-columns:minmax(260px,1fr) auto minmax(440px,1fr) !important;
        height:250px !important;
    }

    .mobile-header-logo{
        width:430px !important;
        height:250px !important;
        margin-top:-22px !important;
        margin-right:-34px !important;
    }

    .hero{
        padding-top:218px !important;
    }
}

@media (min-width:1200px){
    .mobile-header-logo{
        width:480px !important;
        height:280px !important;
        margin-right:-42px !important;
    }
}


.property-detail-thumbs .property-detail-thumb{
    appearance:none;
    padding:0;
    cursor:pointer;
    font:inherit;
}

.property-detail-thumbs .property-detail-thumb.is-active{
    border-color:var(--gold);
    box-shadow:0 0 0 1px var(--gold);
}


/* DESKTOP V6.3 — enlarge the Sun House mark in the top-right area */
@media (min-width:721px){
    .navin{
        grid-template-columns:minmax(250px,1fr) auto minmax(520px,1fr) !important;
        height:300px !important;
    }

    .mobile-header-logo{
        width:520px !important;
        height:310px !important;
        margin-top:-30px !important;
        margin-right:-48px !important;
    }

    .hero{
        padding-top:258px !important;
    }
}

@media (min-width:1200px){
    .mobile-header-logo{
        width:600px !important;
        height:350px !important;
        margin-top:-38px !important;
        margin-right:-60px !important;
    }
}


/* DESKTOP V6.4 — close the gap between mark and hero copy */
@media (min-width:721px){
    .navin{
        grid-template-columns:minmax(250px,1fr) auto minmax(560px,1fr) !important;
        height:190px !important;
    }

    .mobile-header-logo{
        width:650px !important;
        height:360px !important;
        margin-top:-48px !important;
        margin-right:0 !important;
        transform:translateX(-54px) !important;
        transform-origin:right top !important;
    }

    .hero{
        padding-top:112px !important;
    }
}

@media (min-width:1200px){
    .mobile-header-logo{
        width:720px !important;
        height:400px !important;
        transform:translateX(-72px) !important;
    }

    .hero{
        padding-top:98px !important;
    }
}


/* PROPERTY CARDS V6.5 — Sun House gold identity */
.property-carousel > .card{
    background:var(--gold) !important;
    color:#111 !important;
    border:1px solid rgba(255,255,255,.12) !important;
}

.property-carousel .card h3,
.property-carousel .price,
.property-carousel .meta,
.property-carousel .meta::before,
.property-carousel .property-room-stat,
.property-carousel .property-room-icon{
    color:#111 !important;
}

.property-carousel .property-room-stats{
    border-top-color:rgba(17,17,17,.18) !important;
}


/* HEADER V6.6 — keep the enlarged transparent logo canvas from covering language links */
.mobile-header-logo{
    pointer-events:none !important;
}

.lang{
    position:relative !important;
    z-index:10 !important;
}


/* =====================================================
   CINEMATIC PRIVATE PREVIEW — September 2026
===================================================== */

.cinematic-nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:26px;
    grid-column:2;
    grid-row:1;
    justify-self:center;
    align-self:start;
    padding-top:18px;
    z-index:12;
}
.cinematic-nav a{
    color:#f5f1e8;
    font-size:.72rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
    text-shadow:0 2px 14px rgba(0,0,0,.45);
}
.cinematic-nav a:hover{color:var(--gold2)}

.cinematic-hero{
    position:relative;
    min-height:78vh !important;
    display:flex !important;
    align-items:center !important;
    overflow:hidden;
    padding-top:150px !important;
    background:#0b0b0a !important;
    isolation:isolate;
}
.cinematic-hero::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-2;
    background:
        linear-gradient(90deg,rgba(5,8,10,.82) 0%,rgba(5,8,10,.52) 37%,rgba(5,8,10,.18) 68%,rgba(5,8,10,.35) 100%),
        var(--hero-image,radial-gradient(circle at 70% 30%,#5e4327,#151515 48%,#090909));
    background-size:cover;
    background-position:center;
    transform:scale(1.01);
}
.cinematic-hero::after{
    content:"";
    position:absolute;
    inset:auto 0 0;
    height:170px;
    z-index:-1;
    background:linear-gradient(180deg,transparent,#0b0b0a);
}
.cinematic-hero .hero-grid{
    width:min(calc(100% - 72px),1400px) !important;
}
.cinematic-hero .hero-copy{
    max-width:760px !important;
}
.cinematic-hero h1{
    max-width:720px !important;
    font-size:clamp(4.4rem,7vw,7rem) !important;
    line-height:.88 !important;
    text-transform:uppercase;
    letter-spacing:-.055em !important;
    text-shadow:0 8px 40px rgba(0,0,0,.32);
}
.cinematic-hero .lead{
    max-width:650px !important;
    font-size:1rem !important;
    color:#f1ece4 !important;
    text-shadow:0 2px 16px rgba(0,0,0,.5);
}
.cinematic-hero .hero-actions .btn{
    border-radius:0 !important;
    min-height:50px !important;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.cinematic-hero .mobile-service-strip{
    display:none !important;
}

#alojamento{
    position:relative;
    z-index:3;
    margin-top:-34px;
    padding-top:0 !important;
    background:transparent !important;
}
#alojamento > .wrap{
    width:min(calc(100% - 48px),1450px) !important;
    padding:18px 18px 22px !important;
    background:rgba(5,10,13,.91);
    border:1px solid rgba(255,255,255,.06);
    box-shadow:0 24px 70px rgba(0,0,0,.34);
    backdrop-filter:blur(12px);
}
.property-section-head-mobile h2{
    text-transform:uppercase;
    letter-spacing:.12em !important;
    font-size:1rem !important;
}
.property-carousel{
    overflow-x:auto;
    scroll-snap-type:x mandatory;
}
.property-carousel > .card{
    scroll-snap-align:start;
    border-radius:0 !important;
    background:#111 !important;
    color:#fff !important;
    box-shadow:none !important;
}
.property-carousel .card h3,
.property-carousel .price,
.property-carousel .meta,
.property-carousel .property-room-stat,
.property-carousel .property-room-icon,
.property-carousel .property-room-stat strong{
    color:#f6f0e7 !important;
}
.property-carousel .property-room-stats{
    border-top-color:rgba(255,255,255,.10) !important;
}
.property-carousel .photo img{
    transition:transform .45s ease;
}
.property-carousel .card:hover .photo img{transform:scale(1.035)}

.cinematic-services{
    padding:0 !important;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    min-height:300px;
    border-top:1px solid rgba(255,255,255,.06);
    border-bottom:1px solid rgba(255,255,255,.06);
}
.cinematic-service{
    position:relative;
    display:flex;
    min-height:300px;
    flex-direction:column;
    justify-content:flex-end;
    gap:8px;
    padding:38px 34px;
    overflow:hidden;
    background:
        radial-gradient(circle at 80% 20%,rgba(227,189,103,.12),transparent 28%),
        linear-gradient(160deg,#1b1b19,#0b0b0b 70%);
}
.cinematic-service + .cinematic-service{border-left:1px solid rgba(255,255,255,.08)}
.cinematic-service::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 20%,rgba(0,0,0,.30));
    pointer-events:none;
}
.cinematic-service > *{position:relative;z-index:1}
.cinematic-service-title{
    color:var(--gold2);
    font-size:clamp(2.7rem,4vw,4.5rem);
    line-height:.9;
    font-weight:950;
    letter-spacing:-.04em;
}
.cinematic-service > span:not(.cinematic-service-title){
    max-width:340px;
    font-size:1rem;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.cinematic-service strong{
    margin-top:12px;
    color:var(--gold2);
    font-size:.86rem;
    font-weight:750;
}
.cinematic-service:hover{
    background:
        radial-gradient(circle at 78% 18%,rgba(227,189,103,.22),transparent 32%),
        linear-gradient(160deg,#25231f,#0c0c0c 70%);
}

@media(min-width:721px){
    .navin{
        width:min(calc(100% - 56px),1450px) !important;
        height:96px !important;
        grid-template-columns:minmax(180px,.65fr) minmax(540px,2fr) minmax(250px,.8fr) !important;
        align-items:start !important;
        padding-top:0 !important;
    }
    .mobile-greeting{padding-top:18px !important}
    .lang{
        grid-column:3 !important;
        justify-self:end !important;
        padding-top:16px !important;
        margin-right:0 !important;
    }
    .mobile-header-logo{
        position:absolute !important;
        right:8px !important;
        top:58px !important;
        width:250px !important;
        height:180px !important;
        transform:none !important;
        margin:0 !important;
        opacity:.98;
    }
    .hero{padding-top:120px !important}
}

@media(max-width:900px){
    .cinematic-nav{display:none}
    .cinematic-services{grid-template-columns:1fr}
    .cinematic-service{min-height:220px}
    .cinematic-service+.cinematic-service{border-left:0;border-top:1px solid rgba(255,255,255,.08)}
}

@media(max-width:720px){
    .cinematic-hero{
        min-height:68vh !important;
        padding-top:116px !important;
        align-items:flex-end !important;
        padding-bottom:34px !important;
    }
    .cinematic-hero::before{
        background:
            linear-gradient(180deg,rgba(5,8,10,.20) 0%,rgba(5,8,10,.30) 36%,rgba(5,8,10,.90) 88%),
            var(--hero-image,radial-gradient(circle at 70% 30%,#5e4327,#151515 48%,#090909));
        background-position:center;
    }
    .cinematic-hero .hero-grid{width:100% !important}
    .cinematic-hero h1{
        font-size:clamp(2.8rem,12vw,4.3rem) !important;
        max-width:92% !important;
    }
    .cinematic-hero .lead{
        max-width:94% !important;
        font-size:.84rem !important;
    }
    #alojamento{
        margin-top:0;
        padding-top:0 !important;
    }
    #alojamento>.wrap{
        width:100% !important;
        padding:14px !important;
        border-left:0;border-right:0;
    }
    .cinematic-services{
        grid-template-columns:1fr;
    }
    .cinematic-service{min-height:190px;padding:28px 22px}
    .cinematic-service-title{font-size:2.7rem}
}


/* =====================================================
   HOMEPAGE V7 — CINEMATIC BRUTAL LUXURY
===================================================== */
.v7-nav{position:absolute;inset:0 0 auto;z-index:80;color:#fff}
.v7-nav-inner{width:min(calc(100% - 48px),1480px);margin:auto;min-height:74px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;font-size:.72rem;font-weight:750;letter-spacing:.02em;text-transform:uppercase}
.v7-greeting{justify-self:start;text-transform:none;font-size:.78rem;font-weight:600}
.v7-links{display:flex;gap:28px;align-items:center;justify-content:center}
.v7-links a{position:relative;white-space:nowrap}
.v7-links a:first-child{color:var(--gold2)}
.v7-links a:first-child:after{content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;background:var(--gold)}
.v7-lang{justify-self:end;display:flex;gap:8px;align-items:center}
.v7-lang a[aria-current="page"]{color:var(--gold2)}
.v7-lang span{opacity:.5}
.v7-hero{--v7-hero:none;position:relative;min-height:760px;padding:0!important;display:flex!important;align-items:stretch!important;background-image:var(--v7-hero)!important;background-size:cover!important;background-position:center!important;overflow:hidden}
.v7-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.4) 42%,rgba(0,0,0,.12) 67%,rgba(0,0,0,.28) 100%);z-index:0}
.v7-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,9,13,.2) 0%,transparent 58%,rgba(3,8,10,.46) 100%);z-index:1}
.v7-hero-inner{position:relative;z-index:2;width:min(calc(100% - 48px),1480px);margin:auto;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.75fr);gap:54px;align-items:center;padding:126px 0 140px}
.v7-copy{align-self:center;max-width:790px}
.v7-kicker{font-family:Georgia,serif;letter-spacing:.32em;font-size:1.05rem;margin-bottom:10px}
.v7-copy h1{margin:0;max-width:860px;font-size:clamp(4.3rem,6.6vw,7.7rem);line-height:.87;letter-spacing:-.055em;text-transform:uppercase;font-weight:950;text-shadow:0 8px 30px rgba(0,0,0,.28)}
.v7-copy h1 span{color:#e4bb62}
.v7-copy p{max-width:650px;margin:20px 0 0;font-size:1.07rem;line-height:1.48;color:#f0ece5;text-shadow:0 3px 12px rgba(0,0,0,.55)}
.v7-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}
.v7-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-width:200px;padding:15px 22px;border:1px solid rgba(231,190,105,.75);color:#fff;font-weight:850;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;background:rgba(4,8,10,.4);backdrop-filter:blur(6px)}
.v7-btn.primary{background:linear-gradient(135deg,#f0cb73,#c99438);color:#15110a;border-color:transparent}
.v7-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}
.v7-logo-panel{align-self:start;justify-self:end;width:min(100%,410px);padding-top:4px;text-align:center}
.v7-logo-panel img{width:100%;max-height:370px;object-fit:contain;filter:drop-shadow(0 20px 40px rgba(0,0,0,.4))}
.v7-words{margin-top:6px;padding-right:4px;text-align:right;color:#e8c97f;letter-spacing:.22em;line-height:1.65;font-size:.92rem}
#alojamento{position:relative!important;z-index:5!important;margin-top:-98px!important;padding:0 0 18px!important;background:transparent!important}
#alojamento>.wrap{width:min(calc(100% - 48px),1480px)!important;max-width:none!important;padding:20px 26px 28px!important;background:rgba(6,10,12,.9)!important;backdrop-filter:blur(16px)!important;border:1px solid rgba(255,255,255,.06)!important}
.property-section-head-mobile h2{font-size:1.05rem!important;letter-spacing:.18em!important;text-transform:uppercase!important}
.property-carousel{display:flex!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;gap:16px!important}
.property-carousel>.card{flex:0 0 calc((100% - 32px)/3)!important;scroll-snap-align:start!important;border-radius:0!important;background:#111!important;color:#fff!important;box-shadow:none!important}
.property-carousel .photo{aspect-ratio:16/9!important}
.property-carousel .card-body{background:#121416!important;color:#fff!important}
.property-carousel .card h3,.property-carousel .price,.property-carousel .meta,.property-carousel .property-room-stat,.property-carousel .property-room-icon{color:#fff!important}
.property-carousel .price{color:#f0cc77!important}
.property-carousel .meta{color:#b8b2a8!important}
.property-carousel .property-room-stats{border-top-color:rgba(255,255,255,.1)!important}
.v7-services{display:grid;grid-template-columns:repeat(3,1fr);padding:0!important;background:#090b0c}
.v7-service-card{min-height:310px;position:relative;display:flex;align-items:flex-end;padding:34px;border-right:1px solid rgba(255,255,255,.08);overflow:hidden;background:
linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.72)),
radial-gradient(circle at 80% 15%,rgba(225,183,96,.18),transparent 32%),
#161718}
.v7-service-card:nth-child(2){background:
linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.76)),
radial-gradient(circle at 55% 15%,rgba(225,183,96,.12),transparent 34%),
#252019}
.v7-service-card:nth-child(3){background:
linear-gradient(180deg,rgba(0,0,0,.03),rgba(0,0,0,.68)),
radial-gradient(circle at 75% 15%,rgba(225,183,96,.16),transparent 30%),
#5b4c39}
.v7-service-card h2{margin:0;color:#e8c46f;font-size:clamp(2.7rem,4vw,4.7rem);line-height:.9;letter-spacing:-.04em}
.v7-service-card h3{margin:12px 0 0;font-size:1.05rem;max-width:360px;text-transform:uppercase;letter-spacing:.08em}
.v7-service-card p{max-width:360px;color:#eee8df;margin:10px 0 16px}
.v7-service-card span{color:#f0cb73;font-weight:800}
.owner-management,#obras,#orcamento{background:#0a0b0c!important}
.footer{background:#060708!important}
@media(max-width:1050px){
.v7-links{display:none}
.v7-nav-inner{grid-template-columns:1fr auto}
.v7-lang{grid-column:2}
.v7-hero-inner{grid-template-columns:1fr minmax(250px,.45fr)}
.v7-copy h1{font-size:clamp(3.8rem,8vw,6rem)}
.v7-logo-panel{width:310px}
}
@media(max-width:720px){
.v7-nav-inner{width:calc(100% - 28px);min-height:64px;grid-template-columns:1fr auto;gap:12px}
.v7-greeting{font-size:.72rem}
.v7-lang{font-size:.68rem;gap:5px}
.v7-hero{min-height:670px}
.v7-hero:before{background:linear-gradient(180deg,rgba(0,0,0,.28),rgba(0,0,0,.56) 70%,rgba(0,0,0,.72))}
.v7-hero-inner{width:calc(100% - 28px);grid-template-columns:1fr;padding:88px 0 132px;align-content:center}
.v7-copy{order:2;margin-top:6px}
.v7-kicker{font-size:.8rem}
.v7-copy h1{font-size:clamp(3rem,14vw,4.7rem);line-height:.88}
.v7-copy p{font-size:.9rem;max-width:92%}
.v7-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}
.v7-btn{min-width:0;padding:12px 13px;font-size:.66rem;gap:8px}
.v7-logo-panel{order:1;width:190px;justify-self:end;margin-bottom:-24px}
.v7-logo-panel img{max-height:190px}
.v7-words{display:none}
#alojamento{margin-top:-74px!important}
#alojamento>.wrap{width:calc(100% - 18px)!important;padding:14px 10px 18px!important}
.property-carousel>.card{flex:0 0 84%!important}
.v7-services{grid-template-columns:1fr}
.v7-service-card{min-height:250px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08);padding:28px 22px}
.v7-service-card h2{font-size:3.2rem}
}
