﻿:root{
    --cream:#f5efe5;
    --paper:#fffaf3;
    --ink:#171915;
    --dark:#10140f;
    --muted:#717771;
    --purple:#65347b;
    --purple-soft:#8a5a9d;
    --gold:#b58b47;
    --gold-light:#ddb76d;
    --green:#19714d;
    --green-soft:#65a77f;
    --line:rgba(23,25,21,.12);
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    background:var(--cream);
    color:var(--ink);
    font-family:Inter,Arial,Helvetica,sans-serif;
    overflow-x:hidden;
}

body.locked{
    overflow:hidden;
}

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

button,
input,
select{
    font:inherit;
}

button{
    cursor:pointer;
}

.loader{
    position:fixed;
    z-index:9999;
    inset:0;
    display:grid;
    place-items:center;
    background:#10140f;
    transition:opacity .6s ease,visibility .6s ease;
}

.loader.done{
    opacity:0;
    visibility:hidden;
}

.loader-mark{
    position:relative;
    width:62px;
    height:62px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.27);
    border-radius:50%;
    color:white;
    font:italic 29px Georgia,serif;
    animation:loaderPulse 1.25s ease-in-out infinite;
}

.loader-mark:before,
.loader-mark:after{
    content:"";
    position:absolute;
    border-radius:50%;
    border:1px solid transparent;
}

.loader-mark:before{
    inset:-8px;
    border-top-color:var(--gold-light);
    border-right-color:var(--purple-soft);
    animation:rotateRing 2.5s linear infinite;
}

.loader-mark:after{
    inset:-15px;
    border-bottom-color:var(--green-soft);
    animation:rotateRing 4s linear infinite reverse;
}

@keyframes loaderPulse{
    50%{
        transform:scale(1.07);
        box-shadow:0 0 32px rgba(221,183,109,.18);
    }
}

@keyframes rotateRing{
    to{
        transform:rotate(360deg);
    }
}

.site-header{
    height:76px;
    padding:0 5.5vw;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    background:#f7f1e7;
    border-bottom:1px solid rgba(23,25,21,.07);
}

.brand{
    display:flex;
    align-items:center;
    gap:13px;
}

.brand-orbit{
    position:relative;
    width:50px;
    height:32px;
}

.brand-orbit i{
    position:absolute;
    left:0;
    width:46px;
    height:18px;
    border-top:2px solid var(--gold);
    border-radius:50%;
    transform:rotate(-11deg);
}

.brand-orbit i:nth-child(1){
    top:1px;
}

.brand-orbit i:nth-child(2){
    top:7px;
    left:4px;
    border-top-color:var(--purple);
    opacity:.75;
}

.brand-orbit i:nth-child(3){
    top:13px;
    left:8px;
    border-top-color:var(--green);
    opacity:.68;
}

.brand-name{
    font-size:10px;
    font-weight:800;
    line-height:1.06;
    letter-spacing:.17em;
}

.main-nav{
    display:flex;
    gap:32px;
    color:#4b504b;
    font-size:11px;
}

.main-nav a{
    position:relative;
}

.main-nav a:after{
    content:"";
    position:absolute;
    left:0;
    right:100%;
    bottom:-7px;
    height:2px;
    border-radius:10px;
    background:linear-gradient(
        90deg,
        var(--purple),
        var(--gold),
        var(--green)
    );
    transition:right .25s ease;
}

.main-nav a:hover:after{
    right:0;
}

.header-cta{
    justify-self:end;
    display:flex;
    align-items:center;
    gap:15px;
    padding:11px 18px;
    border-radius:999px;
    background:linear-gradient(
        110deg,
        var(--purple),
        var(--gold) 50%,
        var(--green)
    );
    background-size:200% 100%;
    color:white;
    box-shadow:0 10px 26px rgba(87,66,41,.16);
    font-size:9px;
    font-weight:800;
    letter-spacing:.07em;
    text-transform:uppercase;
    animation:gradientTravel 8s ease-in-out infinite;
}

@keyframes gradientTravel{
    0%,100%{
        background-position:0% 50%;
    }

    50%{
        background-position:100% 50%;
    }
}

.hero{
    position:relative;
    min-height:720px;
    overflow:hidden;
    color:white;
    background:#2e342f;
}

.hero-city{
    position:absolute;
    inset:0;
    background:
        radial-gradient(
            circle at 72% 20%,
            rgba(222,183,111,.22),
            transparent 20%
        ),
        linear-gradient(
            135deg,
            #566158,
            #252a25
        );
    background-size:cover;
    background-position:center;
    animation:heroBreathing 16s ease-in-out infinite alternate;
}

@keyframes heroBreathing{
    to{
        transform:scale(1.045) translateX(-.8%);
    }
}

.hero-overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            90deg,
            rgba(12,16,12,.78),
            rgba(12,16,12,.57) 38%,
            rgba(12,16,12,.20) 68%,
            rgba(12,16,12,.30)
        ),
        linear-gradient(
            180deg,
            rgba(0,0,0,.04),
            rgba(0,0,0,.28)
        );
}

.hero-mg-glow{
    position:absolute;
    border-radius:50%;
    pointer-events:none;
    filter:blur(35px);
    animation:glowDrift 9s ease-in-out infinite alternate;
}

.purple-glow{
    width:360px;
    height:360px;
    left:-130px;
    top:12%;
    background:rgba(101,52,123,.23);
}

.gold-glow{
    width:390px;
    height:390px;
    right:18%;
    top:-100px;
    background:rgba(221,183,109,.17);
    animation-delay:1.2s;
}

.green-glow{
    width:340px;
    height:340px;
    right:-100px;
    bottom:-50px;
    background:rgba(25,113,77,.20);
    animation-delay:2s;
}

@keyframes glowDrift{
    0%{
        transform:translate3d(0,0,0) scale(1);
    }

    100%{
        transform:translate3d(25px,-15px,0) scale(1.08);
    }
}

.mg-orbit{
    position:absolute;
    pointer-events:none;
    border-radius:50%;
    border:1px solid rgba(221,183,109,.45);
}

.orbit-one{
    width:690px;
    height:690px;
    right:-350px;
    top:-320px;
    animation:orbitFloat 8s ease-in-out infinite;
}

.orbit-two{
    width:440px;
    height:440px;
    right:11%;
    bottom:-360px;
    border-color:rgba(103,175,132,.25);
    animation:orbitFloat 10s ease-in-out infinite reverse;
}

@keyframes orbitFloat{
    50%{
        transform:translateY(18px) scale(1.035);
    }
}

.hero-ribbons,
.city-ribbons{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    pointer-events:none;
}

.hero-ribbons{
    opacity:.70;
}

.hero-ribbons path,
.city-ribbons path{
    fill:none;
    stroke-width:2;
    stroke-dasharray:11 14;
    animation:ribbonDash 18s linear infinite;
}

.ribbon-purple{
    stroke:rgba(143,82,165,.72);
}

.ribbon-gold{
    stroke:rgba(232,193,117,.78);
    animation-duration:21s !important;
}

.ribbon-green{
    stroke:rgba(80,166,118,.62);
    animation-duration:24s !important;
}

@keyframes ribbonDash{
    to{
        stroke-dashoffset:-320;
    }
}

.spark-field{
    position:absolute;
    inset:0;
    pointer-events:none;
}

.spark-field span{
    position:absolute;
    width:4px;
    height:4px;
    border-radius:50%;
    background:var(--gold-light);
    opacity:.6;
    animation:sparkle 5s ease-in-out infinite;
}

.spark-field span:nth-child(1){
    left:12%;
    top:22%;
}

.spark-field span:nth-child(2){
    left:29%;
    top:68%;
    background:var(--purple-soft);
    animation-delay:.8s;
}

.spark-field span:nth-child(3){
    left:58%;
    top:19%;
    background:var(--green-soft);
    animation-delay:1.4s;
}

.spark-field span:nth-child(4){
    left:76%;
    top:61%;
    animation-delay:2s;
}

.spark-field span:nth-child(5){
    left:89%;
    top:34%;
    background:var(--purple-soft);
    animation-delay:2.6s;
}

.spark-field span:nth-child(6){
    left:44%;
    top:45%;
    background:var(--green-soft);
    animation-delay:3.1s;
}

@keyframes sparkle{
    0%,100%{
        opacity:.15;
        transform:scale(.7);
    }

    50%{
        opacity:1;
        transform:scale(1.7);
    }
}

.hero-content{
    position:relative;
    z-index:4;
    width:min(1380px,89vw);
    min-height:615px;
    margin:auto;
    display:flex;
    align-items:center;
}

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

.hero-kicker{
    display:flex;
    align-items:center;
    gap:7px;
    color:rgba(255,255,255,.78);
    font-size:8px;
    font-weight:800;
    letter-spacing:.19em;
}

.mg-line{
    width:22px;
    height:3px;
    display:inline-block;
    border-radius:20px;
}

.mg-line.purple{
    background:var(--purple-soft);
}

.mg-line.gold{
    background:var(--gold-light);
}

.mg-line.green{
    background:var(--green-soft);
}

.hero h1{
    margin:21px 0 18px;
    font:400 clamp(50px,5vw,76px)/.93 Georgia,"Times New Roman",serif;
    letter-spacing:-.052em;
}

.hero h1 em{
    color:#e0ba70;
    font-weight:400;
}

.hero-lede{
    max-width:520px;
    margin:0;
    color:rgba(255,255,255,.78);
    font-size:15px;
    line-height:1.65;
}

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

.btn{
    min-height:45px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:0 19px;
    border:0;
    border-radius:999px;
    font-size:9px;
    font-weight:800;
    letter-spacing:.07em;
    text-transform:uppercase;
    transition:transform .24s ease,box-shadow .24s ease;
}

.btn:hover{
    transform:translateY(-2px);
}

.btn.primary{
    background:linear-gradient(
        110deg,
        var(--purple),
        var(--gold) 50%,
        var(--green)
    );
    background-size:200% 100%;
    color:white;
    box-shadow:0 13px 34px rgba(0,0,0,.20);
    animation:gradientTravel 7s ease-in-out infinite;
}

.btn.glass{
    border:1px solid rgba(255,255,255,.30);
    background:rgba(255,255,255,.08);
    color:white;
    backdrop-filter:blur(14px);
}

.btn.outline{
    border:1px solid rgba(255,255,255,.22);
    color:white;
    background:transparent;
}

.btn.dark{
    background:#191c17;
    color:white;
}

.hero-proof{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
    max-width:580px;
    margin-top:55px;
    padding-top:17px;
    border-top:1px solid rgba(255,255,255,.20);
}

.hero-proof div{
    display:grid;
    gap:4px;
}

.hero-proof strong{
    font:400 17px Georgia,serif;
}

.hero-proof span{
    color:rgba(255,255,255,.60);
    font-size:7px;
    letter-spacing:.09em;
    text-transform:uppercase;
}

.hero-in{
    opacity:0;
    transform:translateY(22px);
    animation:heroEnter .8s cubic-bezier(.2,.8,.2,1) forwards;
}

.delay-1{
    animation-delay:.10s;
}

.delay-2{
    animation-delay:.20s;
}

.delay-3{
    animation-delay:.30s;
}

.delay-4{
    animation-delay:.42s;
}

@keyframes heroEnter{
    to{
        opacity:1;
        transform:none;
    }
}

.mardi-ribbon{
    position:absolute;
    z-index:7;
    left:0;
    right:0;
    bottom:98px;
    overflow:hidden;
    padding:10px 0;
    border-top:1px solid rgba(255,255,255,.11);
    border-bottom:1px solid rgba(255,255,255,.11);
    background:rgba(12,15,12,.36);
    backdrop-filter:blur(10px);
}

.ribbon-track{
    width:max-content;
    display:flex;
    align-items:center;
    gap:24px;
    animation:ribbonMove 28s linear infinite;
}

.ribbon-track span{
    color:rgba(255,255,255,.84);
    font-size:8px;
    font-weight:700;
    letter-spacing:.17em;
    white-space:nowrap;
}

.ribbon-track i{
    width:7px;
    height:7px;
    border-radius:50%;
}

.purple-dot{
    background:var(--purple-soft);
}

.gold-dot{
    background:var(--gold-light);
}

.green-dot{
    background:var(--green-soft);
}

@keyframes ribbonMove{
    from{
        transform:translateX(0);
    }

    to{
        transform:translateX(-50%);
    }
}

.availability{
    position:absolute;
    z-index:9;
    left:50%;
    bottom:18px;
    transform:translateX(-50%);
    width:min(1110px,89vw);
    min-height:70px;
    display:grid;
    grid-template-columns:1fr 1fr 1fr .72fr 200px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.58);
    border-radius:19px;
    background:rgba(250,247,241,.95);
    color:#242622;
    backdrop-filter:blur(18px);
    box-shadow:0 20px 55px rgba(0,0,0,.20);
    animation:searchFloat 5.5s ease-in-out infinite;
}

@keyframes searchFloat{
    50%{
        transform:translateX(-50%) translateY(-4px);
    }
}

.availability label{
    padding:14px 18px;
    border-right:1px solid rgba(23,25,21,.10);
}

.availability small{
    display:block;
    margin-bottom:5px;
    color:#7a7e79;
    font-size:7px;
    font-weight:800;
    letter-spacing:.13em;
}

.availability strong{
    font-size:11px;
}

.availability input,
.availability select{
    width:100%;
    border:0;
    outline:0;
    background:transparent;
    color:#272a26;
    font-size:11px;
}

.availability>button{
    border:0;
    color:white;
    background:linear-gradient(
        110deg,
        var(--purple),
        var(--gold) 50%,
        var(--green)
    );
    background-size:200% 100%;
    font-size:9px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    animation:gradientTravel 7s ease-in-out infinite reverse;
}

.collection{
    padding:105px 5.5vw 100px;
}

.section-heading{
    display:grid;
    grid-template-columns:1.2fr .55fr;
    gap:80px;
    align-items:end;
    margin-bottom:42px;
}

.micro-label{
    color:#9a7544;
    font-size:8px;
    font-weight:800;
    letter-spacing:.18em;
}

.micro-label.light{
    color:#adb7b0;
}

.section-heading h2,
.extended h2,
.experience h2,
.city-section h2{
    margin:13px 0 0;
    font:400 clamp(40px,4.3vw,63px)/.95 Georgia,"Times New Roman",serif;
    letter-spacing:-.047em;
}

.section-heading h2 em{
    color:#8f7142;
    font-weight:400;
}

.section-heading>p{
    margin:0;
    max-width:430px;
    color:#6d726d;
    font-size:13px;
    line-height:1.65;
}

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

.property-card{
    position:relative;
    overflow:hidden;
    border-radius:17px;
    background:white;
    box-shadow:0 12px 34px rgba(52,43,30,.08);
    transition:transform .30s ease,box-shadow .30s ease;
}

.property-card:before{
    content:"";
    position:absolute;
    z-index:4;
    left:0;
    right:0;
    top:0;
    height:3px;
    background:linear-gradient(
        90deg,
        var(--purple),
        var(--gold),
        var(--green)
    );
}

.property-card:hover{
    transform:translateY(-7px);
    box-shadow:0 24px 55px rgba(52,43,30,.15);
}

.property-photo{
    position:relative;
    aspect-ratio:1.33;
    overflow:hidden;
    background:
        radial-gradient(
            circle at 70% 20%,
            rgba(255,255,255,.14),
            transparent 15%
        ),
        linear-gradient(
            135deg,
            #69736c,
            #2f352f
        );
    background-size:cover;
    background-position:center;
    transition:transform .5s ease;
}

.property-card:hover .property-photo{
    transform:scale(1.015);
}

.property-photo:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(
        180deg,
        rgba(0,0,0,.04),
        transparent 58%,
        rgba(0,0,0,.25)
    );
}

.card-number{
    position:absolute;
    z-index:3;
    left:11px;
    top:10px;
    width:29px;
    height:29px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.88);
    color:#252722;
    font-size:8px;
    font-weight:800;
}

.property-open{
    position:absolute;
    z-index:3;
    right:11px;
    bottom:10px;
    width:39px;
    height:39px;
    border:1px solid rgba(255,255,255,.60);
    border-radius:50%;
    background:rgba(19,22,18,.26);
    color:white;
    backdrop-filter:blur(9px);
    transition:transform .25s ease,background .25s ease,color .25s ease;
}

.property-open:hover{
    transform:rotate(-12deg) scale(1.05);
    background:white;
    color:#1b1d19;
}

.property-copy{
    padding:14px 14px 16px;
}

.property-type{
    color:#9a7544;
    font-size:6px;
    font-weight:800;
    letter-spacing:.15em;
}

.property-copy h3{
    margin:5px 0 0;
    min-height:40px;
    font:400 19px/1.08 Georgia,serif;
}

.property-meta{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    margin-top:10px;
    color:#737773;
    font-size:8px;
}

.mardi-divider{
    height:6px;
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
}

.divider-purple{
    background:var(--purple);
}

.divider-gold{
    background:var(--gold-light);
}

.divider-green{
    background:var(--green);
}

.extended{
    padding:100px 5.5vw;
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:70px;
    align-items:center;
    overflow:hidden;
    color:white;
    background:
        radial-gradient(
            circle at 86% 20%,
            rgba(101,52,123,.16),
            transparent 24%
        ),
        radial-gradient(
            circle at 91% 80%,
            rgba(25,113,77,.16),
            transparent 22%
        ),
        linear-gradient(
            135deg,
            #121610,
            #0d100c
        );
}

.extended-copy p{
    max-width:520px;
    color:#929b95;
    font-size:13px;
    line-height:1.7;
}

.extended-copy .btn{
    margin-top:17px;
}

.extended-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    border-top:1px solid rgba(255,255,255,.14);
    border-left:1px solid rgba(255,255,255,.14);
}

.extended-grid article{
    min-height:185px;
    padding:19px;
    border-right:1px solid rgba(255,255,255,.14);
    border-bottom:1px solid rgba(255,255,255,.14);
    transition:transform .24s ease,background .24s ease;
}

.extended-grid article:hover{
    transform:translateY(-4px);
    background:linear-gradient(
        135deg,
        rgba(101,52,123,.07),
        rgba(181,139,71,.05),
        rgba(25,113,77,.07)
    );
}

.extended-grid article>span{
    color:var(--gold-light);
    font-size:8px;
}

.extended-grid h3{
    margin:48px 0 8px;
    font:400 24px Georgia,serif;
}

.extended-grid p{
    margin:0;
    color:#828b85;
    font-size:10px;
    line-height:1.6;
}

.experience{
    padding:100px 5.5vw;
    display:grid;
    grid-template-columns:.78fr 1.22fr;
    gap:70px;
    align-items:center;
    background:#ddd5c8;
}

.experience-copy p{
    max-width:480px;
    color:#656b66;
    font-size:13px;
    line-height:1.7;
}

.experience-copy .btn{
    margin-top:17px;
}

.tour-card{
    position:relative;
    min-height:430px;
    overflow:hidden;
    border-radius:24px;
    box-shadow:0 27px 72px rgba(52,43,30,.18);
}

.tour-photo{
    position:absolute;
    inset:0;
    background:
        radial-gradient(
            circle at 70% 20%,
            rgba(255,255,255,.14),
            transparent 15%
        ),
        linear-gradient(
            135deg,
            #69736c,
            #2f352f
        );
    background-size:cover;
    background-position:center;
    animation:tourDrift 9s ease-in-out infinite alternate;
}

@keyframes tourDrift{
    to{
        transform:scale(1.045) translateX(-1%);
    }
}

.tour-shade{
    position:absolute;
    inset:0;
    background:linear-gradient(
        180deg,
        rgba(0,0,0,.03),
        rgba(0,0,0,.10) 48%,
        rgba(0,0,0,.58)
    );
}

.scan-line{
    position:absolute;
    z-index:2;
    left:0;
    right:0;
    top:12%;
    height:1px;
    background:linear-gradient(
        90deg,
        transparent,
        rgba(198,239,216,.95),
        transparent
    );
    box-shadow:0 0 14px rgba(198,239,216,.50);
    animation:scan 4.6s ease-in-out infinite;
}

@keyframes scan{
    0%,100%{
        top:12%;
        opacity:.18;
    }

    50%{
        top:84%;
        opacity:1;
    }
}

.tour-orbit{
    position:absolute;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.34);
}

.tour-orbit-a{
    width:160px;
    height:160px;
    right:50px;
    top:45px;
    animation:tourOrbit 5s ease-in-out infinite;
}

.tour-orbit-b{
    width:90px;
    height:90px;
    right:85px;
    top:80px;
    border-color:rgba(221,183,109,.58);
    animation:tourOrbit 4s ease-in-out infinite reverse;
}

@keyframes tourOrbit{
    50%{
        transform:scale(1.10);
        opacity:.65;
    }
}

.tour-badge{
    position:absolute;
    z-index:3;
    right:89px;
    top:84px;
    display:grid;
    text-align:center;
    color:white;
}

.tour-badge strong{
    font:400 25px Georgia,serif;
}

.tour-badge span{
    font-size:5px;
    letter-spacing:.13em;
}

.tour-caption{
    position:absolute;
    z-index:3;
    left:22px;
    bottom:20px;
    display:grid;
    color:white;
}

.tour-caption small{
    color:#d2d8d4;
    font-size:7px;
    letter-spacing:.15em;
}

.tour-caption strong{
    margin-top:4px;
    font:400 24px Georgia,serif;
}

.city-section{
    position:relative;
    min-height:340px;
    overflow:hidden;
    color:white;
}

.city-photo{
    position:absolute;
    inset:0;
    background:linear-gradient(
        135deg,
        #555c53,
        #252a24
    );
    background-size:cover;
    background-position:center 60%;
    animation:cityDrift 15s ease-in-out infinite alternate;
}

@keyframes cityDrift{
    to{
        transform:scale(1.04);
    }
}

.city-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        90deg,
        rgba(13,16,13,.84),
        rgba(13,16,13,.50),
        rgba(13,16,13,.70)
    );
}

.city-ribbons{
    z-index:2;
    opacity:.62;
}

.city-content{
    position:relative;
    z-index:3;
    min-height:340px;
    padding:70px 5.5vw;
    display:grid;
    grid-template-columns:1fr .85fr;
    gap:60px;
    align-items:center;
}

.city-features{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    border-top:1px solid rgba(255,255,255,.16);
}

.city-features article{
    min-height:115px;
    padding:18px 17px 0 0;
    border-right:1px solid rgba(255,255,255,.14);
}

.city-features article+article{
    padding-left:17px;
}

.city-features strong{
    display:block;
    font:400 18px Georgia,serif;
}

.city-features span{
    display:block;
    margin-top:8px;
    color:#bbc2bd;
    font-size:9px;
    line-height:1.5;
}

.gina{
    position:fixed;
    z-index:100;
    right:18px;
    bottom:18px;
    display:flex;
    align-items:center;
    gap:9px;
    padding:7px 14px 7px 7px;
    border:1px solid rgba(255,255,255,.20);
    border-radius:999px;
    background:rgba(17,21,16,.94);
    color:white;
    backdrop-filter:blur(16px);
    box-shadow:0 18px 50px rgba(0,0,0,.25);
}

.gina:before{
    content:"";
    position:absolute;
    inset:-1px;
    z-index:-1;
    border-radius:inherit;
    background:linear-gradient(
        110deg,
        rgba(101,52,123,.35),
        rgba(221,183,109,.35),
        rgba(25,113,77,.35)
    );
    filter:blur(10px);
    opacity:.55;
}

.gina-orb{
    position:relative;
    width:39px;
    height:39px;
    border-radius:50%;
    background:radial-gradient(
        circle at 34% 28%,
        #f4fff7 0 5%,
        #d7efd9 11%,
        var(--gold-light) 22%,
        var(--purple) 46%,
        var(--green) 72%,
        #243629 88%
    );
    box-shadow:0 0 22px rgba(143,204,164,.24);
}

.gina-orb:after{
    content:"";
    position:absolute;
    inset:-5px;
    border:1px solid rgba(221,183,109,.35);
    border-radius:50%;
    animation:ginaPulse 2.3s ease-out infinite;
}

@keyframes ginaPulse{
    0%{
        transform:scale(.84);
        opacity:0;
    }

    28%{
        opacity:1;
    }

    100%{
        transform:scale(1.42);
        opacity:0;
    }
}

.gina>span:last-child{
    display:grid;
    text-align:left;
}

.gina small{
    color:#98a69d;
    font-size:6px;
    letter-spacing:.14em;
}

.gina strong{
    font-size:10px;
}

.gina-panel{
    position:fixed;
    z-index:99;
    right:18px;
    bottom:82px;
    width:min(350px,calc(100vw - 36px));
    padding:23px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:18px;
    background:rgba(17,21,16,.97);
    color:white;
    box-shadow:0 28px 80px rgba(0,0,0,.35);
    backdrop-filter:blur(18px);
    opacity:0;
    transform:translateY(12px) scale(.98);
    pointer-events:none;
    transition:.22s ease;
}

.gina-panel.open{
    opacity:1;
    transform:none;
    pointer-events:auto;
}

.gina-panel h3{
    margin:10px 0;
    font:400 27px Georgia,serif;
}

.gina-panel p{
    color:#929b95;
    font-size:11px;
    line-height:1.6;
}

.gina-panel>button:not(.gina-close){
    width:100%;
    margin-top:7px;
    padding:11px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:9px;
    background:rgba(255,255,255,.035);
    color:white;
    text-align:left;
    font-size:10px;
}

.gina-close{
    position:absolute;
    right:11px;
    top:9px;
    border:0;
    background:none;
    color:white;
    font-size:16px;
}

.modal{
    position:fixed;
    z-index:160;
    inset:0;
    display:none;
}

.modal.open{
    display:block;
}

.modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(8,10,8,.80);
    backdrop-filter:blur(15px);
}

.modal-shell{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:min(1120px,calc(100% - 30px));
    max-height:calc(100vh - 30px);
    display:grid;
    grid-template-columns:1.18fr .82fr;
    overflow:hidden;
    border-radius:22px;
    background:#f7f2e9;
    box-shadow:0 40px 120px rgba(0,0,0,.44);
}

.modal-close{
    position:absolute;
    z-index:10;
    right:15px;
    top:15px;
    width:38px;
    height:38px;
    border:1px solid rgba(255,255,255,.45);
    border-radius:50%;
    background:rgba(0,0,0,.23);
    color:white;
}

.modal-media{
    position:relative;
    min-height:590px;
    overflow:hidden;
    background:#343a34;
}

.modal-photo{
    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center;
    transition:.35s ease;
}

.modal-photo.changing{
    opacity:.45;
    transform:scale(1.03);
}

.modal-nav{
    position:absolute;
    z-index:4;
    top:50%;
    transform:translateY(-50%);
    width:42px;
    height:42px;
    border:1px solid rgba(255,255,255,.54);
    border-radius:50%;
    background:rgba(0,0,0,.22);
    color:white;
}

.modal-nav.prev{
    left:15px;
}

.modal-nav.next{
    right:15px;
}

.modal-room{
    position:absolute;
    z-index:4;
    left:21px;
    right:21px;
    bottom:18px;
    display:flex;
    justify-content:space-between;
    align-items:end;
    color:white;
}

.modal-room strong{
    font:400 21px Georgia,serif;
}

.modal-room span{
    font-size:8px;
}

.modal-info{
    align-self:center;
    padding:55px 44px;
}

.modal-info h3{
    margin:12px 0 5px;
    font:400 43px/.96 Georgia,serif;
    letter-spacing:-.04em;
}

.modal-subtitle{
    color:#747974;
    font-size:11px;
}

.modal-meta{
    margin:20px 0;
    padding:11px 0;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    color:#666b66;
    font-size:9px;
}

.modal-actions{
    display:flex;
    gap:17px;
    align-items:center;
}

.modal-actions>a:last-child{
    color:#706246;
    font-size:8px;
    font-weight:800;
    text-transform:uppercase;
}

.reveal{
    opacity:0;
    transform:translateY(25px);
    transition:opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1);
}

.reveal.visible{
    opacity:1;
    transform:none;
}

@media(max-width:1050px){
    .property-grid{
        grid-template-columns:repeat(2,1fr);
    }

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

@media(max-width:760px){
    .site-header{
        padding:0 20px;
        grid-template-columns:1fr auto;
    }

    .main-nav{
        display:none;
    }

    .hero{
        min-height:1050px;
    }

    .hero-content{
        width:calc(100% - 40px);
        min-height:auto;
        padding:85px 0 310px;
    }

    .hero h1{
        font-size:49px;
    }

    .hero-proof{
        grid-template-columns:1fr 1fr;
        gap:15px;
    }

    .hero-proof div:last-child{
        grid-column:1 / -1;
    }

    .mardi-ribbon{
        bottom:216px;
    }

    .availability{
        bottom:16px;
        width:calc(100% - 40px);
        grid-template-columns:1fr;
    }

    .availability label{
        padding:10px 15px;
        border-right:0;
        border-bottom:1px solid rgba(23,25,21,.09);
    }

    .availability>button{
        min-height:46px;
    }

    .collection,
    .extended,
    .experience{
        padding:75px 20px;
    }

    .section-heading{
        grid-template-columns:1fr;
        gap:20px;
    }

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

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

    .tour-card{
        min-height:360px;
    }

    .city-content{
        padding:55px 20px;
        grid-template-columns:1fr;
    }

    .modal-shell{
        grid-template-columns:1fr;
        overflow:auto;
    }

    .modal-media{
        min-height:340px;
    }

    .modal-info{
        padding:36px 22px;
    }
}

@media(max-width:520px){
    .header-cta{
        display:none;
    }

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

    .city-features{
        grid-template-columns:1fr;
    }

    .city-features article{
        border-right:0;
        border-bottom:1px solid rgba(255,255,255,.14);
        padding-left:0 !important;
    }
}

@media(prefers-reduced-motion:reduce){
    *,
    *:before,
    *:after{
        animation-duration:.001ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.001ms !important;
        scroll-behavior:auto !important;
    }
}
/* ============================================================
   R11.2 - REMOVE DEAD SPACE BETWEEN HERO AND COLLECTION
   ============================================================ */

@media(min-width:761px){

    .hero{
        min-height:650px !important;
        height:650px !important;
    }

    .hero-content{
        min-height:530px !important;
        height:530px !important;
        padding-bottom:80px !important;
    }

    .hero-copy{
        transform:translateY(-8px);
    }

    .mardi-ribbon{
        bottom:91px !important;
    }

    .availability{
        bottom:14px !important;
    }

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

    .collection{
        margin:0 !important;
        padding-top:82px !important;
    }
}

/* remove any accidental spacer / empty visual block */
.hero + main,
main > .collection:first-child{
    margin-top:0 !important;
}

/* ============================================================
   R11.2 AVAILABILITY CLICK FIX
   Prevent anchor jump into bottom of hero.
   ============================================================ */

.availability{
    scroll-margin-top:90px;
}

.availability.availability-attention{
    animation:
        availabilityAttention .85s cubic-bezier(.2,.8,.2,1),
        searchFloat 5.5s ease-in-out .85s infinite;
}

@keyframes availabilityAttention{

    0%{
        box-shadow:
            0 20px 55px rgba(0,0,0,.20);
    }

    35%{
        transform:
            translateX(-50%)
            translateY(-7px)
            scale(1.012);

        box-shadow:
            0 24px 70px rgba(0,0,0,.25),
            0 0 0 3px rgba(221,183,109,.26),
            0 0 32px rgba(101,52,123,.18),
            0 0 38px rgba(25,113,77,.15);
    }

    100%{
        transform:
            translateX(-50%)
            translateY(0)
            scale(1);

        box-shadow:
            0 20px 55px rgba(0,0,0,.20);
    }
}

/* ============================================================
   R11.3 HERO CLEANUP
   ============================================================ */

.hero-actions{
    gap:0 !important;
}

/* only two proof items remain */
.hero-proof{
    grid-template-columns:auto auto !important;
    justify-content:start !important;
    gap:62px !important;
    max-width:520px !important;
}

/* cleaner horizontal rhythm */
.hero-proof div{
    min-width:170px;
}

/* remove unnecessary extra visual weight */
.hero-actions .btn.primary{
    padding-left:22px;
    padding-right:22px;
}

@media(max-width:760px){

    .hero-proof{
        grid-template-columns:1fr 1fr !important;
        gap:18px !important;
    }

    .hero-proof div{
        min-width:0;
    }
}

/* ============================================================
   R11.4 SMALL TYPOGRAPHY SCALE-UP
   Increase secondary text across the entire page
   ============================================================ */

/* HEADER */

.brand-name{
    font-size:12px !important;
}

.main-nav{
    font-size:13px !important;
}

.header-cta{
    font-size:11px !important;
}


/* HERO */

.hero-kicker{
    font-size:11px !important;
    letter-spacing:.15em !important;
}

.hero-lede{
    font-size:17px !important;
    line-height:1.65 !important;
}

.btn{
    font-size:11px !important;
}

.hero-proof strong{
    font-size:20px !important;
}

.hero-proof span{
    font-size:10px !important;
    line-height:1.4 !important;
}


/* ANIMATED MARDI GRAS STRIP */

.ribbon-track span{
    font-size:10px !important;
    letter-spacing:.14em !important;
}


/* AVAILABILITY BAR */

.availability small{
    font-size:9px !important;
}

.availability strong{
    font-size:14px !important;
}

.availability input,
.availability select{
    font-size:14px !important;
}

.availability > button{
    font-size:11px !important;
}


/* SECTION LABELS */

.micro-label{
    font-size:10px !important;
}

.section-heading > p{
    font-size:15px !important;
}


/* PROPERTY CARDS */

.property-type{
    font-size:9px !important;
}

.property-copy h3{
    font-size:22px !important;
}

.property-meta{
    font-size:11px !important;
    gap:10px !important;
}


/* EXTENDED STAY */

.extended-copy p{
    font-size:15px !important;
}

.extended-grid article > span{
    font-size:10px !important;
}

.extended-grid h3{
    font-size:26px !important;
}

.extended-grid p{
    font-size:13px !important;
    line-height:1.55 !important;
}


/* EXPERIENCE */

.experience-copy p{
    font-size:15px !important;
}

.tour-badge span{
    font-size:8px !important;
}

.tour-caption small{
    font-size:9px !important;
}

.tour-caption strong{
    font-size:27px !important;
}


/* SHREVEPORT SECTION */

.city-features strong{
    font-size:21px !important;
}

.city-features span{
    font-size:12px !important;
    line-height:1.55 !important;
}


/* GINA */

.gina small{
    font-size:8px !important;
}

.gina strong{
    font-size:12px !important;
}

.gina-panel p{
    font-size:13px !important;
}

.gina-panel > button:not(.gina-close){
    font-size:12px !important;
}


/* PROPERTY MODAL */

.modal-room strong{
    font-size:24px !important;
}

.modal-room span{
    font-size:10px !important;
}

.modal-subtitle{
    font-size:13px !important;
}

.modal-meta{
    font-size:11px !important;
}

.modal-actions > a:last-child{
    font-size:10px !important;
}


/* MOBILE */

@media(max-width:760px){

    .brand-name{
        font-size:11px !important;
    }

    .hero-kicker{
        font-size:9px !important;
    }

    .hero-lede{
        font-size:16px !important;
    }

    .hero-proof strong{
        font-size:18px !important;
    }

    .hero-proof span{
        font-size:9px !important;
    }

    .property-type{
        font-size:9px !important;
    }

    .property-meta{
        font-size:11px !important;
    }

    .availability small{
        font-size:9px !important;
    }

    .availability input,
    .availability select,
    .availability strong{
        font-size:13px !important;
    }
}

/* ============================================================
   R11.5 - TRUE CONTINUOUS MARDI GRAS TICKER
   ============================================================ */

.mardi-ribbon{
    overflow:hidden !important;
    white-space:nowrap !important;
}

/* remove any edge fade/cutoff */
.mardi-ribbon:before,
.mardi-ribbon:after{
    display:none !important;
}

/*
   Three identical sets move together.
   One full set leaves exactly as the next replaces it.
*/
.ribbon-track{
    display:flex !important;
    width:max-content !important;
    gap:0 !important;
    align-items:center !important;
    will-change:transform;
    animation:
        ribbonContinuous
        32s
        linear
        infinite !important;
}

.ribbon-set{
    flex:none;
    display:flex;
    align-items:center;
    gap:26px;
    padding-right:26px;
}

.ribbon-set span{
    flex:none;
    color:rgba(255,255,255,.88) !important;
    font-size:11px !important;
    font-weight:700 !important;
    letter-spacing:.14em !important;
    white-space:nowrap !important;
}

.ribbon-set i{
    flex:none;
    width:8px !important;
    height:8px !important;
    border-radius:50%;
}

/*
   Because all ribbon sets are identical, translating exactly
   one set width creates an invisible/seamless restart.
*/
@keyframes ribbonContinuous{
    from{
        transform:translate3d(0,0,0);
    }

    to{
        transform:translate3d(-33.333333%,0,0);
    }
}

/* Keep animation alive on hover */
.mardi-ribbon:hover .ribbon-track{
    animation-play-state:running !important;
}

/* ============================================================
   R11.6 - EXTENDED STAY WOW / MOTION
   ============================================================ */

.extended{
    position:relative !important;
    isolation:isolate;
    overflow:hidden !important;

    min-height:650px;

    background:
        radial-gradient(
            circle at var(--mx,78%) var(--my,32%),
            rgba(102,61,126,.18),
            transparent 24%
        ),
        radial-gradient(
            circle at 88% 79%,
            rgba(27,126,82,.16),
            transparent 26%
        ),
        radial-gradient(
            circle at 22% 15%,
            rgba(219,177,100,.08),
            transparent 28%
        ),
        linear-gradient(
            120deg,
            #090d09 0%,
            #111710 46%,
            #0d120d 100%
        ) !important;
}


/* moving architectural grid */

.extended:before{
    content:"";

    position:absolute;

    inset:-25%;

    z-index:-3;

    pointer-events:none;

    opacity:.20;

    background-image:
        linear-gradient(
            rgba(255,255,255,.045) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.045) 1px,
            transparent 1px
        );

    background-size:
        72px
        72px;

    transform:
        perspective(700px)
        rotateX(58deg)
        translateY(26%);

    transform-origin:center bottom;

    animation:
        extendedGridMove
        18s
        linear
        infinite;
}


@keyframes extendedGridMove{

    from{
        background-position:
            0
            0;
    }

    to{
        background-position:
            72px
            72px;
    }
}


/* large animated ambient glow */

.extended:after{
    content:"";

    position:absolute;

    z-index:-2;

    width:740px;

    height:740px;

    right:-280px;

    top:-220px;

    border-radius:50%;

    pointer-events:none;

    border:
        1px solid
        rgba(80,161,111,.20);

    box-shadow:
        0 0 0 110px rgba(101,52,123,.025),
        0 0 0 220px rgba(219,177,100,.018);

    animation:
        extendedOrb
        11s
        ease-in-out
        infinite
        alternate;
}


@keyframes extendedOrb{

    from{
        transform:
            translate3d(
                0,
                0,
                0
            )
            scale(1);
    }

    to{
        transform:
            translate3d(
                -55px,
                40px,
                0
            )
            scale(1.07);
    }
}


/* LEFT COPY */

.extended-copy{
    position:relative;

    z-index:3;

    max-width:720px;
}


.extended-copy:before{
    content:"";

    position:absolute;

    left:-28px;

    top:4px;

    width:3px;

    height:86px;

    border-radius:10px;

    background:
        linear-gradient(
            180deg,
            var(--purple),
            var(--gold-light),
            var(--green)
        );

    box-shadow:
        0 0 20px
        rgba(221,183,109,.18);

    animation:
        extendedAccentPulse
        4s
        ease-in-out
        infinite;
}


@keyframes extendedAccentPulse{

    50%{
        height:112px;

        box-shadow:
            0 0 28px
            rgba(221,183,109,.30);
    }
}


.extended .micro-label{
    position:relative;

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:
        7px
        12px;

    border:
        1px solid
        rgba(255,255,255,.10);

    border-radius:999px;

    background:
        rgba(255,255,255,.035);

    backdrop-filter:
        blur(12px);

    font-size:10px !important;

    letter-spacing:.17em;
}


.extended .micro-label:before{
    content:"";

    width:7px;

    height:7px;

    border-radius:50%;

    background:
        var(--gold-light);

    box-shadow:
        0 0 15px
        rgba(221,183,109,.75);

    animation:
        labelPulse
        2.2s
        ease-in-out
        infinite;
}


@keyframes labelPulse{

    50%{
        transform:scale(1.4);

        opacity:.55;
    }
}


.extended h2{
    position:relative;

    margin-top:22px !important;

    max-width:760px;

    font-size:
        clamp(
            52px,
            5.2vw,
            82px
        ) !important;

    line-height:.92 !important;

    text-wrap:balance;
}


.extended h2:after{
    content:"";

    display:block;

    width:115px;

    height:3px;

    margin-top:23px;

    border-radius:999px;

    background:
        linear-gradient(
            90deg,
            var(--purple),
            var(--gold-light),
            var(--green)
        );

    background-size:
        200%
        100%;

    animation:
        gradientTravel
        5s
        linear
        infinite;
}


.extended-copy p{
    max-width:670px !important;

    margin-top:24px !important;

    color:
        rgba(210,218,212,.72) !important;

    font-size:17px !important;

    line-height:1.75 !important;
}


/* CTA */

.extended-copy .btn{
    position:relative;

    overflow:hidden;

    margin-top:28px !important;

    min-height:54px;

    padding:
        0
        26px;

    border:
        1px solid
        rgba(255,255,255,.24) !important;

    background:
        rgba(255,255,255,.045) !important;

    backdrop-filter:
        blur(16px);

    font-size:11px !important;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.025),
        0 12px 35px rgba(0,0,0,.18);

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


.extended-copy .btn:before{
    content:"";

    position:absolute;

    inset:0;

    transform:
        translateX(-110%);

    background:
        linear-gradient(
            100deg,
            transparent 15%,
            rgba(101,52,123,.32),
            rgba(221,183,109,.32),
            rgba(25,113,77,.32),
            transparent 85%
        );

    transition:
        transform
        .65s
        cubic-bezier(.2,.8,.2,1);
}


.extended-copy .btn:hover{
    transform:
        translateY(-4px)
        scale(1.015);

    border-color:
        rgba(221,183,109,.50) !important;

    box-shadow:
        0 18px 45px rgba(0,0,0,.28),
        0 0 28px rgba(101,52,123,.12),
        0 0 30px rgba(25,113,77,.10);
}


.extended-copy .btn:hover:before{
    transform:
        translateX(110%);
}


/* ============================================================
   4 FEATURE CARDS
   ============================================================ */

.extended-grid{
    position:relative;

    z-index:3;

    border:
        1px solid
        rgba(255,255,255,.12) !important;

    border-radius:20px;

    overflow:hidden;

    background:
        rgba(255,255,255,.018);

    backdrop-filter:
        blur(16px);

    box-shadow:
        0 30px 85px rgba(0,0,0,.22),
        inset 0 0 0 1px rgba(255,255,255,.018);

    transform:
        perspective(1400px)
        rotateY(-1.8deg);

    transition:
        transform .4s ease,
        box-shadow .4s ease;
}


.extended-grid:hover{
    transform:
        perspective(1400px)
        rotateY(0deg)
        translateY(-4px);

    box-shadow:
        0 38px 95px rgba(0,0,0,.29),
        0 0 42px rgba(101,52,123,.055),
        0 0 48px rgba(25,113,77,.045);
}


.extended-grid article{
    position:relative;

    overflow:hidden;

    min-height:245px !important;

    padding:
        30px
        30px
        26px !important;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.020),
            rgba(255,255,255,.005)
        );

    transition:
        transform .36s cubic-bezier(.2,.8,.2,1),
        background .36s ease,
        box-shadow .36s ease !important;

    transform-style:
        preserve-3d;
}


.extended-grid article:before{
    content:"";

    position:absolute;

    inset:0;

    pointer-events:none;

    opacity:0;

    background:
        radial-gradient(
            circle at var(--card-x,50%) var(--card-y,50%),
            rgba(221,183,109,.15),
            rgba(101,52,123,.07) 32%,
            transparent 67%
        );

    transition:
        opacity
        .25s
        ease;
}


.extended-grid article:hover:before{
    opacity:1;
}


.extended-grid article:after{
    content:"";

    position:absolute;

    width:150px;

    height:150px;

    right:-72px;

    bottom:-72px;

    border-radius:50%;

    border:
        1px solid
        rgba(255,255,255,.08);

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


.extended-grid article:hover:after{
    transform:
        scale(1.30);

    border-color:
        rgba(221,183,109,.24);
}


.extended-grid article:hover{
    z-index:2;

    transform:
        translateY(-7px)
        scale(1.018);

    background:
        linear-gradient(
            145deg,
            rgba(101,52,123,.075),
            rgba(221,183,109,.035) 50%,
            rgba(25,113,77,.070)
        ) !important;

    box-shadow:
        0 20px 50px rgba(0,0,0,.20);
}


/* number */

.extended-grid article > span{
    position:relative;

    z-index:2;

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:36px;

    height:36px;

    border:
        1px solid
        rgba(221,183,109,.28);

    border-radius:50%;

    color:
        var(--gold-light) !important;

    background:
        rgba(221,183,109,.045);

    font-size:11px !important;

    box-shadow:
        0 0 0 0
        rgba(221,183,109,0);

    transition:
        transform .3s ease,
        box-shadow .3s ease,
        background .3s ease;
}


.extended-grid article:hover > span{
    transform:
        rotate(-8deg)
        scale(1.12);

    background:
        rgba(221,183,109,.12);

    box-shadow:
        0 0 24px
        rgba(221,183,109,.17);
}


/* heading */

.extended-grid h3{
    position:relative;

    z-index:2;

    margin:
        47px
        0
        11px !important;

    font:
        400
        31px
        Georgia,
        serif !important;

    letter-spacing:
        -.02em;

    transition:
        transform .30s ease,
        color .30s ease;
}


.extended-grid article:hover h3{
    transform:
        translateX(5px);

    color:#fff7e8;
}


/* description */

.extended-grid p{
    position:relative;

    z-index:2;

    max-width:290px;

    color:
        rgba(185,195,188,.70) !important;

    font-size:14px !important;

    line-height:1.58 !important;

    transition:
        color .3s ease,
        transform .3s ease;
}


.extended-grid article:hover p{
    color:
        rgba(225,231,226,.83) !important;

    transform:
        translateX(5px);
}


/* animated bottom accent on each card */

.extended-grid article .wow-card-line{
    position:absolute;

    left:30px;

    right:30px;

    bottom:19px;

    height:2px;

    overflow:hidden;

    border-radius:10px;

    background:
        rgba(255,255,255,.055);

    pointer-events:none;
}


.extended-grid article .wow-card-line:after{
    content:"";

    position:absolute;

    width:42%;

    height:100%;

    left:-50%;

    background:
        linear-gradient(
            90deg,
            var(--purple),
            var(--gold-light),
            var(--green)
        );

    animation:
        cardLineTravel
        5s
        ease-in-out
        infinite;
}


.extended-grid article:nth-child(2) .wow-card-line:after{
    animation-delay:-1.1s;
}


.extended-grid article:nth-child(3) .wow-card-line:after{
    animation-delay:-2.2s;
}


.extended-grid article:nth-child(4) .wow-card-line:after{
    animation-delay:-3.3s;
}


@keyframes cardLineTravel{

    0%,
    100%{
        left:-50%;
    }

    55%{
        left:110%;
    }
}


/* stagger the original reveal */

.extended-grid article:nth-child(1){
    transition-delay:.04s;
}

.extended-grid article:nth-child(2){
    transition-delay:.10s;
}

.extended-grid article:nth-child(3){
    transition-delay:.16s;
}

.extended-grid article:nth-child(4){
    transition-delay:.22s;
}


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

@media(max-width:1050px){

    .extended{
        min-height:auto;
    }

    .extended-grid{
        transform:none;
    }
}


@media(max-width:760px){

    .extended-copy:before{
        display:none;
    }

    .extended h2{
        font-size:
            clamp(
                44px,
                12vw,
                60px
            ) !important;
    }

    .extended-grid article{
        min-height:205px !important;
    }
}


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

    .extended:before,
    .extended:after,
    .extended-copy:before,
    .extended-grid article .wow-card-line:after{
        animation:none !important;
    }
}

/* ============================================================
   R11.7 - HERO 2050 FX REPLACEMENT
   ============================================================ */

/* remove the old circled line/orbit treatment */
.hero-ribbons,
.mg-orbit{
    display:none !important;
}

/* base hero future setup */
.hero{
    position:relative;
    isolation:isolate;
    --hx:72%;
    --hy:36%;
    overflow:hidden;
}

/* big ambient aurora field */
.hero::before{
    content:"";
    position:absolute;
    inset:-14%;
    z-index:1;
    pointer-events:none;
    background:
        radial-gradient(circle at 18% 24%, rgba(112,74,160,.26), transparent 20%),
        radial-gradient(circle at 80% 18%, rgba(221,183,109,.18), transparent 18%),
        radial-gradient(circle at 88% 80%, rgba(50,170,110,.18), transparent 18%),
        radial-gradient(circle at 55% 36%, rgba(255,255,255,.08), transparent 22%),
        conic-gradient(
            from 180deg at 68% 34%,
            rgba(112,74,160,.08),
            rgba(221,183,109,.05),
            rgba(50,170,110,.08),
            rgba(112,74,160,.08)
        );
    filter:blur(50px) saturate(120%);
    opacity:.95;
    animation:heroAuroraFloat 14s ease-in-out infinite alternate;
}

/* subtle 2050 scan / light sweep */
.hero::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    background:
        linear-gradient(
            115deg,
            transparent 0 34%,
            rgba(255,255,255,.04) 41%,
            rgba(255,255,255,.07) 43%,
            transparent 46%
        ),
        repeating-linear-gradient(
            115deg,
            rgba(255,255,255,.03) 0 1px,
            transparent 1px 64px
        );
    opacity:.20;
    mix-blend-mode:screen;
    animation:heroSweepShift 12s linear infinite;
}

/* mouse-reactive glow living on the skyline */
.hero-city{
    position:absolute;
    inset:0;
    z-index:0;
}

.hero-city::before{
    content:"";
    position:absolute;
    inset:-6%;
    pointer-events:none;
    background:
        radial-gradient(circle at var(--hx) var(--hy), rgba(255,255,255,.18), transparent 14%),
        radial-gradient(circle at calc(var(--hx) + 10%) calc(var(--hy) + 12%), rgba(221,183,109,.12), transparent 16%),
        radial-gradient(circle at calc(var(--hx) - 12%) calc(var(--hy) - 8%), rgba(112,74,160,.12), transparent 16%),
        radial-gradient(circle at calc(var(--hx) + 18%) calc(var(--hy) + 25%), rgba(50,170,110,.10), transparent 18%);
    filter:blur(10px);
    mix-blend-mode:screen;
    opacity:.95;
    transition:all .14s linear;
}

/* small floating particles instead of the old lines */
.hero-city::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(circle at 12% 18%, rgba(255,255,255,.85) 0 2px, transparent 3px),
        radial-gradient(circle at 26% 68%, rgba(221,183,109,.85) 0 2px, transparent 3px),
        radial-gradient(circle at 41% 36%, rgba(112,74,160,.80) 0 2px, transparent 3px),
        radial-gradient(circle at 58% 28%, rgba(90,210,150,.80) 0 2px, transparent 3px),
        radial-gradient(circle at 72% 62%, rgba(255,255,255,.75) 0 2px, transparent 3px),
        radial-gradient(circle at 86% 42%, rgba(221,183,109,.75) 0 2px, transparent 3px),
        radial-gradient(circle at 92% 74%, rgba(90,210,150,.70) 0 2px, transparent 3px);
    opacity:.50;
    animation:heroParticleFloat 9s ease-in-out infinite alternate;
}

/* give the copy area more premium depth */
.hero-copy{
    position:relative;
    z-index:5;
    padding:30px 32px 26px;
    border:1px solid rgba(255,255,255,.09);
    border-radius:28px;
    background:
        linear-gradient(
            135deg,
            rgba(10,14,10,.28),
            rgba(10,14,10,.12)
        );
    backdrop-filter:blur(16px);
    box-shadow:
        0 26px 70px rgba(0,0,0,.18),
        inset 0 0 0 1px rgba(255,255,255,.03);
    transition:transform .22s ease;
}

/* stronger futuristic kicker */
.hero-kicker{
    text-shadow:0 0 16px rgba(255,255,255,.08);
}

/* animate main CTA a little more */
.hero-actions .btn.primary{
    box-shadow:
        0 16px 38px rgba(0,0,0,.22),
        0 0 22px rgba(112,74,160,.10),
        0 0 24px rgba(50,170,110,.08);
}

.hero-actions .btn.primary:hover{
    box-shadow:
        0 20px 46px rgba(0,0,0,.28),
        0 0 28px rgba(112,74,160,.18),
        0 0 32px rgba(50,170,110,.14);
}

/* keep proof row clean */
.hero-proof{
    position:relative;
    z-index:4;
}

/* 2050 animations */

@keyframes heroAuroraFloat{
    0%{
        transform:translate3d(0,0,0) scale(1);
    }
    100%{
        transform:translate3d(-18px,14px,0) scale(1.06);
    }
}

@keyframes heroSweepShift{
    0%{
        background-position:
            -240px 0,
            0 0;
    }
    100%{
        background-position:
            1280px 0,
            120px 0;
    }
}

@keyframes heroParticleFloat{
    0%{
        transform:translateY(0px);
        opacity:.42;
    }
    100%{
        transform:translateY(-10px);
        opacity:.62;
    }
}

@media(max-width:760px){

    .hero-copy{
        padding:22px 22px 20px;
        border-radius:22px;
    }

    .hero::after{
        opacity:.12;
    }
}

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

    .hero::before,
    .hero::after,
    .hero-city::after{
        animation:none !important;
    }
}

/* ============================================================
   R11.8 - OPEN HERO / RESTORE SKYLINE
   Remove large glass panel covering Shreveport
   ============================================================ */

.hero-copy{
    width:auto !important;
    max-width:700px !important;

    padding:0 !important;

    border:0 !important;
    border-radius:0 !important;

    background:transparent !important;

    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;

    box-shadow:none !important;

    transform:none;
}

/* remove any pseudo glass layer */
.hero-copy:before,
.hero-copy:after{
    display:none !important;
}

/* text remains readable without blocking the city */
.hero h1{
    text-shadow:
        0 4px 26px rgba(0,0,0,.35),
        0 1px 4px rgba(0,0,0,.28);
}

.hero-lede{
    text-shadow:
        0 2px 15px rgba(0,0,0,.40);
}

/* lighten the global dark overlay */
.hero-overlay{
    background:
        linear-gradient(
            90deg,
            rgba(8,12,9,.58) 0%,
            rgba(8,12,9,.42) 31%,
            rgba(8,12,9,.15) 58%,
            rgba(8,12,9,.08) 100%
        ),
        linear-gradient(
            180deg,
            rgba(0,0,0,.02),
            rgba(0,0,0,.20)
        ) !important;
}

/* keep futuristic lighting but make it atmospheric */
.hero::before{
    opacity:.56 !important;
    mix-blend-mode:screen;
}

.hero::after{
    opacity:.10 !important;
}

/* keep the animated skyline visible */
.hero-city{
    filter:
        saturate(1.06)
        contrast(1.06);
}

/* subtle localized shadow only behind headline area */
.hero-content:before{
    content:"";
    position:absolute;

    z-index:-1;

    left:-10vw;
    top:7%;

    width:720px;
    height:520px;

    pointer-events:none;

    background:
        radial-gradient(
            ellipse at 38% 48%,
            rgba(5,8,6,.38) 0%,
            rgba(5,8,6,.20) 43%,
            transparent 72%
        );

    filter:blur(16px);
}

/* futuristic light shimmer across skyline */
.hero-city:after{
    opacity:.42 !important;

    animation:
        heroParticleFloat 9s ease-in-out infinite alternate,
        skylinePulse 6s ease-in-out infinite;
}

@keyframes skylinePulse{
    0%,100%{
        filter:brightness(1);
    }

    50%{
        filter:brightness(1.22);
    }
}

/* keep CTA floating cleanly */
.hero-actions .btn.primary{
    backdrop-filter:none !important;
}

/* proof stats no panel */
.hero-proof{
    background:transparent !important;
    backdrop-filter:none !important;
}

@media(max-width:760px){

    .hero-copy{
        max-width:100% !important;
        padding:0 !important;
    }

    .hero-content:before{
        width:115%;
        height:480px;
        left:-15%;
    }
}

/* ============================================================
   R11.9 - HERO WOW BOOST
   ============================================================ */

/* keep skyline open, add premium atmospheric layer */
.hero{
    --cta-tilt-x: 0deg;
    --cta-tilt-y: 0deg;
}

.hero-wow-layer{
    position:absolute;
    inset:0;
    z-index:1;
    pointer-events:none;
    overflow:hidden;
    mix-blend-mode:screen;
}

.hero-wow-layer::before{
    content:"";
    position:absolute;
    inset:-8%;
    background:
        radial-gradient(circle at 16% 24%, rgba(122,74,168,.18), transparent 18%),
        radial-gradient(circle at 74% 18%, rgba(228,190,111,.12), transparent 15%),
        radial-gradient(circle at 88% 74%, rgba(61,173,118,.12), transparent 15%),
        radial-gradient(circle at 57% 34%, rgba(255,255,255,.05), transparent 20%);
    filter:blur(34px);
    opacity:.9;
    animation:heroWowAurora 10s ease-in-out infinite alternate;
}

.hero-wow-layer::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 18% 18%, rgba(255,255,255,.75) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 31% 71%, rgba(228,190,111,.9) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 43% 26%, rgba(130,88,182,.8) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 59% 34%, rgba(78,190,131,.9) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 71% 61%, rgba(255,255,255,.7) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 84% 43%, rgba(228,190,111,.75) 0 1.5px, transparent 2.5px),
        radial-gradient(circle at 91% 76%, rgba(78,190,131,.7) 0 1.5px, transparent 2.5px);
    opacity:.34;
    animation:heroWowSparkles 8s ease-in-out infinite alternate;
}

.hero-wow-sheen{
    position:absolute;
    right:-6%;
    top:10%;
    width:42%;
    height:78%;
    pointer-events:none;
    opacity:.35;
    background:
        linear-gradient(
            115deg,
            transparent 0%,
            rgba(255,255,255,.02) 36%,
            rgba(255,255,255,.12) 47%,
            rgba(228,190,111,.08) 49%,
            transparent 56%
        );
    filter:blur(1px);
    transform:translateX(-8%);
    animation:heroWowSheen 9s linear infinite;
}

.hero-wow-horizon{
    position:absolute;
    left:44%;
    bottom:21%;
    width:34%;
    height:2px;
    border-radius:999px;
    pointer-events:none;
    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.16),
            rgba(228,190,111,.48),
            rgba(78,190,131,.34),
            transparent
        );
    box-shadow:
        0 0 20px rgba(228,190,111,.15),
        0 0 28px rgba(78,190,131,.10);
    opacity:.65;
    animation:heroWowHorizon 5.8s ease-in-out infinite;
}

.hero-wow-orb{
    position:absolute;
    width:12px;
    height:12px;
    border-radius:50%;
    pointer-events:none;
    background:radial-gradient(circle, rgba(255,255,255,.95), rgba(255,255,255,.05) 70%, transparent 72%);
    box-shadow:
        0 0 18px rgba(255,255,255,.28),
        0 0 26px rgba(228,190,111,.16);
    opacity:.55;
}

.hero-wow-orb.orb-a{
    left:58%;
    top:27%;
    animation:heroWowOrbA 7s ease-in-out infinite;
}

.hero-wow-orb.orb-b{
    left:73%;
    top:64%;
    width:10px;
    height:10px;
    animation:heroWowOrbB 8.2s ease-in-out infinite;
}

.hero-wow-orb.orb-c{
    left:35%;
    top:81%;
    width:9px;
    height:9px;
    animation:heroWowOrbC 7.6s ease-in-out infinite;
}

/* headline / copy cinematic reveal */
.hero .hero-kicker,
.hero h1,
.hero .hero-lede,
.hero .hero-actions,
.hero .hero-proof{
    opacity:0;
    transform:translateY(22px);
    filter:blur(10px);
}

.hero.hero-reveal .hero-kicker{
    animation:heroReveal .9s cubic-bezier(.2,.8,.2,1) .05s forwards;
}

.hero.hero-reveal h1{
    animation:heroReveal 1s cubic-bezier(.2,.8,.2,1) .18s forwards;
}

.hero.hero-reveal .hero-lede{
    animation:heroReveal 1s cubic-bezier(.2,.8,.2,1) .34s forwards;
}

.hero.hero-reveal .hero-actions{
    animation:heroReveal .9s cubic-bezier(.2,.8,.2,1) .48s forwards;
}

.hero.hero-reveal .hero-proof{
    animation:heroReveal .9s cubic-bezier(.2,.8,.2,1) .62s forwards;
}

@keyframes heroReveal{
    from{
        opacity:0;
        transform:translateY(22px);
        filter:blur(10px);
    }
    to{
        opacity:1;
        transform:translateY(0);
        filter:blur(0);
    }
}

/* gold word shimmer */
.hero h1 em,
.hero h1 i{
    position:relative;
    background:
        linear-gradient(
            90deg,
            #caa253 0%,
            #f2d486 18%,
            #ddb76d 36%,
            #fff1be 50%,
            #ddb76d 64%,
            #caa253 100%
        );
    background-size:220% 100%;
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent !important;
    animation:goldWordShimmer 6s linear infinite;
    text-shadow:none !important;
}

@keyframes goldWordShimmer{
    0%{
        background-position:0% 50%;
    }
    100%{
        background-position:220% 50%;
    }
}

/* richer CTA */
.hero-actions .btn.primary{
    position:relative;
    overflow:hidden;
    transform:
        perspective(900px)
        rotateX(var(--cta-tilt-x))
        rotateY(var(--cta-tilt-y))
        translateY(0);
    transition:
        transform .18s ease,
        box-shadow .25s ease,
        filter .25s ease;
}

.hero-actions .btn.primary::before{
    content:"";
    position:absolute;
    inset:0;
    transform:translateX(-120%);
    background:
        linear-gradient(
            105deg,
            transparent 18%,
            rgba(255,255,255,.10) 34%,
            rgba(255,255,255,.28) 48%,
            rgba(255,255,255,.10) 62%,
            transparent 80%
        );
    transition:transform .7s cubic-bezier(.2,.8,.2,1);
}

.hero-actions .btn.primary:hover{
    transform:
        perspective(900px)
        rotateX(var(--cta-tilt-x))
        rotateY(var(--cta-tilt-y))
        translateY(-4px)
        scale(1.015);
    filter:saturate(1.08);
    box-shadow:
        0 24px 48px rgba(0,0,0,.28),
        0 0 26px rgba(130,88,182,.14),
        0 0 32px rgba(78,190,131,.12),
        0 0 30px rgba(228,190,111,.10);
}

.hero-actions .btn.primary:hover::before{
    transform:translateX(120%);
}

/* make proof row feel more premium */
.hero-proof{
    column-gap:56px !important;
}

.hero-proof div{
    position:relative;
}

.hero-proof div::before{
    content:"";
    position:absolute;
    left:0;
    top:-14px;
    width:28px;
    height:2px;
    border-radius:999px;
    background:
        linear-gradient(
            90deg,
            rgba(130,88,182,.92),
            rgba(228,190,111,.92),
            rgba(78,190,131,.92)
        );
    opacity:.75;
}

/* animations */
@keyframes heroWowAurora{
    0%{
        transform:translate3d(0,0,0) scale(1);
    }
    100%{
        transform:translate3d(-20px,12px,0) scale(1.05);
    }
}

@keyframes heroWowSparkles{
    0%{
        transform:translateY(0px);
        opacity:.26;
    }
    100%{
        transform:translateY(-10px);
        opacity:.42;
    }
}

@keyframes heroWowSheen{
    0%{
        transform:translateX(-14%);
        opacity:.16;
    }
    35%{
        opacity:.32;
    }
    100%{
        transform:translateX(12%);
        opacity:.10;
    }
}

@keyframes heroWowHorizon{
    0%,100%{
        transform:scaleX(.82);
        opacity:.42;
    }
    50%{
        transform:scaleX(1);
        opacity:.78;
    }
}

@keyframes heroWowOrbA{
    0%,100%{
        transform:translate3d(0,0,0) scale(1);
        opacity:.48;
    }
    50%{
        transform:translate3d(18px,-12px,0) scale(1.15);
        opacity:.75;
    }
}

@keyframes heroWowOrbB{
    0%,100%{
        transform:translate3d(0,0,0) scale(1);
        opacity:.38;
    }
    50%{
        transform:translate3d(-14px,10px,0) scale(1.2);
        opacity:.68;
    }
}

@keyframes heroWowOrbC{
    0%,100%{
        transform:translate3d(0,0,0);
        opacity:.36;
    }
    50%{
        transform:translate3d(10px,-8px,0);
        opacity:.62;
    }
}

@media(max-width:760px){

    .hero-wow-sheen{
        width:58%;
        right:-16%;
        opacity:.22;
    }

    .hero-wow-horizon{
        left:40%;
        width:42%;
        bottom:17%;
    }

    .hero-proof{
        column-gap:18px !important;
    }
}

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

    .hero-wow-layer::before,
    .hero-wow-layer::after,
    .hero-wow-sheen,
    .hero-wow-horizon,
    .hero-wow-orb,
    .hero h1 em,
    .hero h1 i{
        animation:none !important;
    }

    .hero .hero-kicker,
    .hero h1,
    .hero .hero-lede,
    .hero .hero-actions,
    .hero .hero-proof{
        opacity:1 !important;
        transform:none !important;
        filter:none !important;
    }
}

/* ============================================================
   R11.10 - REMOVE HERO DIVIDER LINE
   ============================================================ */

/* remove the long horizontal line above the proof row */
.hero-proof{
    border-top: none !important;
    background-image: none !important;
    box-shadow: none !important;
    padding-top: 0 !important;
    margin-top: 26px !important;
}

/* if the line is drawn by a pseudo-element, kill it */
.hero-proof::before,
.hero-proof::after{
    display: none !important;
    content: none !important;
    border: 0 !important;
    background: none !important;
}

/* tighten spacing a little after line removal */
.hero-proof div{
    padding-top: 0 !important;
}

/* ============================================================
   R11.12 VRBO LISTING SYNC
   ============================================================ */

.property-summary{
    margin:8px 0 0;
    min-height:48px;
    color:#747974;
    font-size:11px;
    line-height:1.48;
}

.modal-info{
    overflow-y:auto;
    max-height:calc(100vh - 60px);
}

.modal-description{
    margin:18px 0 0;
    max-width:480px;
    color:#626862;
    font-size:14px;
    line-height:1.65;
}

.modal-highlights{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:18px 0 23px;
}

.modal-highlights span{
    position:relative;
    min-height:43px;
    display:flex;
    align-items:center;
    padding:9px 11px 9px 27px;
    border:1px solid rgba(23,25,21,.09);
    border-radius:10px;
    background:rgba(255,255,255,.44);
    color:#555b55;
    font-size:10px;
    line-height:1.35;
}

.modal-highlights span:before{
    content:"";
    position:absolute;
    left:10px;
    width:7px;
    height:7px;
    border-radius:50%;
    background:linear-gradient(
        135deg,
        var(--purple),
        var(--gold-light),
        var(--green)
    );
    box-shadow:0 0 11px rgba(181,139,71,.17);
}

.modal-room strong{
    max-width:74%;
}

@media(max-width:760px){
    .property-summary{
        min-height:0;
        font-size:12px;
    }

    .modal-description{
        font-size:13px;
    }

    .modal-highlights{
        grid-template-columns:1fr;
    }
}

/* ============================================================
   R11.13 VRBO HARD SYNC
   ============================================================ */

.modal-info{
    overflow-y:auto;
    max-height:calc(100vh - 50px);
}

.modal-description{
    margin:18px 0 0;
    color:#626862;
    font-size:14px;
    line-height:1.62;
}

.modal-highlights{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:17px 0 23px;
}

.modal-highlights span{
    position:relative;
    display:flex;
    align-items:center;
    min-height:42px;
    padding:9px 10px 9px 26px;
    border:1px solid rgba(23,25,21,.09);
    border-radius:10px;
    background:rgba(255,255,255,.42);
    color:#545a54;
    font-size:10px;
    line-height:1.35;
}

.modal-highlights span:before{
    content:"";
    position:absolute;
    left:10px;
    width:7px;
    height:7px;
    border-radius:50%;
    background:linear-gradient(
        135deg,
        var(--purple),
        var(--gold-light),
        var(--green)
    );
}

.modal-room strong{
    max-width:72%;
    font-size:17px !important;
}

.property-meta{
    line-height:1.45;
}

@media(max-width:760px){
    .modal-description{
        font-size:13px;
    }

    .modal-highlights{
        grid-template-columns:1fr;
    }
}

/* ============================================================
   R11.15 VIRTUAL TOUR COMING SOON
   ============================================================ */

#tourComingSoon{
    pointer-events:none !important;
    cursor:default !important;
    opacity:.88;
    position:relative;
    overflow:hidden;
}

#tourComingSoon::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(
            115deg,
            transparent 20%,
            rgba(255,255,255,.18) 45%,
            transparent 68%
        );
    transform:translateX(-140%);
    animation:virtualComingSoonShimmer 4.8s ease-in-out infinite;
}

@keyframes virtualComingSoonShimmer{
    0%,65%{
        transform:translateX(-140%);
    }

    100%{
        transform:translateX(140%);
    }
}

/* Soften the old 360 visual language */
.tour-orbit,
.tour-360,
.photo-tour-360{
    border-style:solid !important;
    border-color:rgba(181,139,71,.36) !important;
}

/* Coming-soon overlay typography */
.tour-orbit strong,
.tour-360 strong,
.photo-tour-360 strong{
    font-size:20px !important;
    letter-spacing:.06em !important;
}

.tour-orbit span,
.tour-360 span,
.photo-tour-360 span{
    font-size:8px !important;
    letter-spacing:.16em !important;
}

/* Keep the section intentional, not disabled-looking */
.experience{
    position:relative;
}

.experience-copy .micro-label{
    color:#9c7133 !important;
}

@media(max-width:760px){
    #tourComingSoon{
        width:100%;
        justify-content:center;
    }
}

@media(prefers-reduced-motion:reduce){
    #tourComingSoon::after{
        animation:none !important;
    }
}

/* ============================================================
   R11.16 VIRTUAL TOUR AMBIENT
   Replace scanner line with premium atmospheric motion
   ============================================================ */

.virtual-tour-card-r116{
    position:relative !important;
    overflow:hidden !important;
    isolation:isolate;
}

/* ------------------------------------------------------------
   KILL OLD MOVING / SCANNER LINE
   ------------------------------------------------------------ */

.virtual-tour-card-r116 .scan-line,
.virtual-tour-card-r116 .scanner-line,
.virtual-tour-card-r116 .tour-line,
.virtual-tour-card-r116 .experience-line,
.virtual-tour-card-r116 .tour-scan,
.virtual-tour-card-r116 .scan,
.virtual-tour-card-r116 .sweep-line,
.virtual-tour-card-r116 .light-line,
.virtual-tour-card-r116 .motion-line{
    display:none !important;
    animation:none !important;
}

/* ------------------------------------------------------------
   NEW AMBIENT EFFECT
   ------------------------------------------------------------ */

.virtual-tour-ambient{
    position:absolute;
    inset:0;
    z-index:2;
    pointer-events:none;
    overflow:hidden;
    border-radius:inherit;
}

.ambient-orb{
    position:absolute;
    display:block;
    border-radius:50%;
    filter:blur(42px);
    opacity:.22;
    will-change:transform, opacity;
}

.ambient-purple{
    width:240px;
    height:240px;
    right:8%;
    top:16%;

    background:
        radial-gradient(
            circle,
            rgba(107,55,141,.72) 0%,
            rgba(107,55,141,.22) 42%,
            transparent 72%
        );

    animation:
        ambientPurpleFloat 10s ease-in-out infinite alternate;
}

.ambient-gold{
    width:210px;
    height:210px;
    right:24%;
    bottom:6%;

    background:
        radial-gradient(
            circle,
            rgba(214,167,72,.70) 0%,
            rgba(214,167,72,.18) 46%,
            transparent 72%
        );

    animation:
        ambientGoldFloat 12s ease-in-out infinite alternate;
}

.ambient-green{
    width:190px;
    height:190px;
    left:28%;
    bottom:8%;

    background:
        radial-gradient(
            circle,
            rgba(48,126,74,.55) 0%,
            rgba(48,126,74,.14) 44%,
            transparent 74%
        );

    animation:
        ambientGreenFloat 14s ease-in-out infinite alternate;
}

@keyframes ambientPurpleFloat{

    0%{
        transform:
            translate3d(0,0,0)
            scale(.92);
        opacity:.16;
    }

    100%{
        transform:
            translate3d(-42px,28px,0)
            scale(1.14);
        opacity:.27;
    }
}

@keyframes ambientGoldFloat{

    0%{
        transform:
            translate3d(0,0,0)
            scale(.9);
        opacity:.13;
    }

    100%{
        transform:
            translate3d(36px,-32px,0)
            scale(1.12);
        opacity:.24;
    }
}

@keyframes ambientGreenFloat{

    0%{
        transform:
            translate3d(0,0,0)
            scale(.88);
        opacity:.10;
    }

    100%{
        transform:
            translate3d(34px,-24px,0)
            scale(1.08);
        opacity:.20;
    }
}

/* Keep existing content over the ambient effect */
.virtual-tour-card-r116 > *:not(.virtual-tour-ambient){
    position:relative;
    z-index:3;
}

/* Keep photo readable */
.virtual-tour-card-r116 img{
    z-index:0 !important;
}

/* Coming-soon content stays crisp */
.virtual-tour-card-r116 .tour-orbit,
.virtual-tour-card-r116 .tour-360,
.virtual-tour-card-r116 .photo-tour-360{
    z-index:4 !important;
}

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

    .ambient-purple,
    .ambient-gold,
    .ambient-green{
        animation:none !important;
    }
}

/* ============================================================
   R11.17 REMOVE VRBO LINK + PHOTO CAPTION
   ============================================================ */

/* Remove external VRBO link from every property modal */
#modalAirbnb{
    display:none !important;
    visibility:hidden !important;
}

/* Remove bottom-left property/photo wording */
#modalRoom,
.modal-room{
    display:none !important;
    visibility:hidden !important;
}

/* Keep the photo number/count visible */
#modalCount{
    display:block !important;
    visibility:visible !important;
}

/* ============================================================
   R11.20 CUSTOM BOOKING CALENDAR
   ============================================================ */

html.stay-calendar-open,
html.stay-calendar-open body{
    overflow:hidden;
}

.stay-custom-date{
    cursor:pointer !important;
}

/* Hide browser calendar icon */
.stay-custom-date::-webkit-calendar-picker-indicator{
    opacity:0 !important;
    width:0 !important;
    height:0 !important;
    pointer-events:none !important;
}

.stay-calendar{
    position:fixed;
    inset:0;
    z-index:999999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:30px;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:
        opacity .22s ease,
        visibility .22s ease;
}

.stay-calendar.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.stay-calendar-backdrop{
    position:absolute;
    inset:0;
    background:
        rgba(8,11,9,.52);
    backdrop-filter:
        blur(10px);
    -webkit-backdrop-filter:
        blur(10px);
}

.stay-calendar-panel{
    position:relative;
    z-index:2;

    width:min(
        880px,
        calc(100vw - 48px)
    );

    max-height:
        calc(100vh - 54px);

    overflow:auto;

    padding:
        30px 32px 22px;

    border:
        1px solid
        rgba(255,255,255,.72);

    border-radius:
        28px;

    background:
        linear-gradient(
            145deg,
            #fbf7ef,
            #f3ede2
        );

    box-shadow:
        0 40px 120px
        rgba(0,0,0,.32);

    color:#191c18;
}

.stay-calendar-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:25px;
    margin-bottom:20px;
}

.stay-calendar-label{
    display:block;
    margin-bottom:7px;

    color:#9a7135;

    font-size:10px;
    font-weight:800;
    letter-spacing:.18em;
}

.stay-calendar-top h3{
    margin:0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:36px;
    font-weight:400;
    line-height:1;
}

.stay-calendar-top p{
    margin:8px 0 0;
    color:#747973;
    font-size:13px;
}

.stay-calendar-close{
    width:43px;
    height:43px;
    flex:none;

    border:0;
    border-radius:50%;

    background:#dfdbd3;
    color:#646963;

    font-size:24px;

    cursor:pointer;
}

.stay-calendar-selected{
    display:grid;

    grid-template-columns:
        1fr auto 1fr;

    align-items:center;

    gap:10px;

    margin-bottom:20px;
}

.stay-date-box{
    padding:13px 15px;

    border:
        1px solid
        rgba(25,28,24,.10);

    border-radius:14px;

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

    text-align:left;

    cursor:pointer;

    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease;
}

.stay-date-box:hover{
    transform:
        translateY(-1px);
}

.stay-date-box.active{
    border-color:
        rgba(174,126,52,.55);

    box-shadow:
        0 0 0 3px
        rgba(184,137,59,.08);
}

.stay-date-box small{
    display:block;

    margin-bottom:5px;

    color:#858a83;

    font-size:8px;
    font-weight:800;
    letter-spacing:.16em;
}

.stay-date-box strong{
    color:#1e211d;
    font-size:13px;
}

.stay-date-arrow{
    color:#a67c40;
    font-size:18px;
}

.stay-calendar-nav{
    display:grid;

    grid-template-columns:
        42px 1fr 42px;

    align-items:center;

    margin-bottom:12px;
}

.stay-calendar-nav button{
    width:38px;
    height:38px;

    border:
        1px solid
        rgba(25,28,24,.10);

    border-radius:50%;

    background:
        rgba(255,255,255,.62);

    cursor:pointer;
}

.stay-calendar-nav button:disabled{
    opacity:.28;
    cursor:not-allowed;
}

#calendarNavText{
    color:#71766f;

    font-size:10px;
    font-weight:800;

    letter-spacing:.12em;
    text-align:center;

    text-transform:uppercase;
}

.stay-calendar-months{
    display:grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap:34px;
}

.stay-calendar-month h4{
    margin:
        0 0 12px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:21px;
    font-weight:400;

    text-align:center;
}

.stay-calendar-weekdays,
.stay-calendar-grid{
    display:grid;

    grid-template-columns:
        repeat(7,1fr);
}

.stay-calendar-weekdays{
    margin-bottom:4px;
}

.stay-calendar-weekdays span{
    display:flex;

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

    height:29px;

    color:#949992;

    font-size:8px;
    font-weight:800;
}

.stay-calendar-day{
    position:relative;

    aspect-ratio:1;

    border:0;
    border-radius:50%;

    background:
        transparent;

    color:#252824;

    font-size:11px;

    cursor:pointer;

    transition:
        transform .14s ease,
        background .14s ease,
        color .14s ease;
}

.stay-calendar-day:hover:not(:disabled){
    transform:
        scale(1.06);

    background:
        rgba(181,137,62,.13);
}

.stay-calendar-day.outside{
    color:#b9bcb7;
}

.stay-calendar-day.disabled,
.stay-calendar-day.checkout-disabled{
    color:#d0d2ce;
}

.stay-calendar-day.today:not(.selected)::after{
    content:"";

    position:absolute;

    left:50%;
    bottom:6px;

    width:4px;
    height:4px;

    border-radius:50%;

    background:#b98a40;

    transform:
        translateX(-50%);
}

.stay-calendar-day.range{
    border-radius:9px;

    background:
        rgba(182,137,61,.11);
}

.stay-calendar-day.selected{
    color:#fff;

    font-weight:800;

    background:
        linear-gradient(
            135deg,
            #704080 0%,
            #b88a43 50%,
            #287b58 100%
        );

    box-shadow:
        0 8px 20px
        rgba(63,53,39,.18);
}

.stay-calendar-bottom{
    display:flex;

    align-items:center;
    justify-content:space-between;

    gap:15px;

    margin-top:20px;
    padding-top:17px;

    border-top:
        1px solid
        rgba(27,30,26,.08);
}

.stay-calendar-clear{
    border:0;
    padding:0;

    background:none;

    color:#696e68;

    font-size:10px;
    font-weight:800;

    text-decoration:
        underline;

    text-underline-offset:
        3px;

    cursor:pointer;
}

#calendarStatus{
    color:#6a7069;

    font-size:11px;
    font-weight:700;
}

/* Mobile */
@media(max-width:759px){

    .stay-calendar{
        align-items:flex-end;
        padding:0;
    }

    .stay-calendar-panel{
        width:100%;
        max-height:90vh;

        padding:
            23px 18px 20px;

        border-radius:
            27px 27px 0 0;
    }

    .stay-calendar-top h3{
        font-size:30px;
    }

    .stay-calendar-months{
        grid-template-columns:
            1fr;

        gap:0;
    }

    .stay-calendar-day{
        font-size:12px;
    }

    .stay-date-box{
        padding:11px;
    }
}

/* ============================================================
   R11.21 CALENDAR NO SCROLL
   Entire booking calendar fits inside viewport
   ============================================================ */

html.stay-calendar-open,
html.stay-calendar-open body{
    overflow:hidden !important;
}

/* ------------------------------------------------------------
   MODAL SHELL
   ------------------------------------------------------------ */

.stay-calendar{
    padding:16px !important;
    overflow:hidden !important;
}

.stay-calendar-panel{
    width:min(940px,calc(100vw - 32px)) !important;

    max-height:calc(100vh - 32px) !important;
    height:auto !important;

    overflow:hidden !important;

    padding:
        22px 26px 18px !important;

    border-radius:
        26px !important;
}

/* ------------------------------------------------------------
   TOP HEADER
   ------------------------------------------------------------ */

.stay-calendar-top{
    margin-bottom:
        12px !important;
}

.stay-calendar-label{
    margin-bottom:
        4px !important;
}

.stay-calendar-top h3{
    font-size:
        clamp(28px,3vw,36px) !important;

    line-height:
        .98 !important;
}

.stay-calendar-top p{
    margin-top:
        5px !important;

    font-size:
        12px !important;
}

.stay-calendar-close{
    width:
        38px !important;

    height:
        38px !important;

    font-size:
        21px !important;
}

/* ------------------------------------------------------------
   CHECK-IN / CHECK-OUT BOXES
   ------------------------------------------------------------ */

.stay-calendar-selected{
    margin-bottom:
        12px !important;

    gap:
        8px !important;
}

.stay-date-box{
    padding:
        9px 13px !important;

    min-height:
        56px !important;
}

.stay-date-box small{
    margin-bottom:
        3px !important;
}

.stay-date-box strong{
    font-size:
        12px !important;
}

/* ------------------------------------------------------------
   MONTH NAVIGATION
   ------------------------------------------------------------ */

.stay-calendar-nav{
    margin-bottom:
        5px !important;

    min-height:
        34px !important;
}

.stay-calendar-nav button{
    width:
        34px !important;

    height:
        34px !important;
}

#calendarNavText{
    font-size:
        9px !important;
}

/* ------------------------------------------------------------
   TWO-MONTH CALENDAR
   ------------------------------------------------------------ */

.stay-calendar-months{
    gap:
        30px !important;
}

.stay-calendar-month h4{
    margin:
        0 0 5px !important;

    font-size:
        19px !important;

    line-height:
        1 !important;
}

.stay-calendar-weekdays{
    margin-bottom:
        1px !important;
}

.stay-calendar-weekdays span{
    height:
        20px !important;

    font-size:
        8px !important;
}

/*
   CRITICAL FIX:
   remove square aspect ratio that was creating
   giant calendar rows.
*/
.stay-calendar-day{
    aspect-ratio:
        auto !important;

    width:
        100% !important;

    height:
        36px !important;

    min-height:
        36px !important;

    border-radius:
        10px !important;

    font-size:
        11px !important;
}

.stay-calendar-day.selected{
    border-radius:
        12px !important;
}

.stay-calendar-day.range{
    border-radius:
        8px !important;
}

.stay-calendar-day.today:not(.selected)::after{
    bottom:
        3px !important;
}

/* ------------------------------------------------------------
   FOOTER
   ------------------------------------------------------------ */

.stay-calendar-bottom{
    margin-top:
        9px !important;

    padding-top:
        10px !important;
}

.stay-calendar-clear,
#calendarStatus{
    font-size:
        9px !important;
}

/* ------------------------------------------------------------
   SHORTER DESKTOP VIEWPORTS
   ------------------------------------------------------------ */

@media(
    min-width:760px
) and (
    max-height:800px
){

    .stay-calendar{
        padding:
            8px !important;
    }

    .stay-calendar-panel{
        max-height:
            calc(100vh - 16px) !important;

        padding:
            15px 22px 12px !important;
    }

    .stay-calendar-top{
        margin-bottom:
            7px !important;
    }

    .stay-calendar-top h3{
        font-size:
            28px !important;
    }

    .stay-calendar-top p{
        display:none !important;
    }

    .stay-calendar-selected{
        margin-bottom:
            7px !important;
    }

    .stay-date-box{
        min-height:
            48px !important;

        padding:
            7px 11px !important;
    }

    .stay-calendar-nav{
        margin-bottom:
            2px !important;
    }

    .stay-calendar-month h4{
        font-size:
            17px !important;
    }

    .stay-calendar-weekdays span{
        height:
            18px !important;
    }

    .stay-calendar-day{
        height:
            30px !important;

        min-height:
            30px !important;
    }

    .stay-calendar-bottom{
        margin-top:
            5px !important;

        padding-top:
            7px !important;
    }
}

/* ------------------------------------------------------------
   MOBILE
   One month, also no internal scroll
   ------------------------------------------------------------ */

@media(max-width:759px){

    .stay-calendar{
        padding:
            0 !important;

        align-items:
            flex-end !important;
    }

    .stay-calendar-panel{
        width:
            100% !important;

        max-height:
            100vh !important;

        overflow:
            hidden !important;

        padding:
            18px 16px 14px !important;

        border-radius:
            24px 24px 0 0 !important;
    }

    .stay-calendar-top{
        margin-bottom:
            9px !important;
    }

    .stay-calendar-top h3{
        font-size:
            27px !important;
    }

    .stay-calendar-top p{
        font-size:
            11px !important;
    }

    .stay-calendar-selected{
        margin-bottom:
            9px !important;
    }

    .stay-date-box{
        min-height:
            51px !important;

        padding:
            8px 9px !important;
    }

    .stay-calendar-months{
        grid-template-columns:
            1fr !important;
    }

    .stay-calendar-day{
        height:
            39px !important;

        min-height:
            39px !important;
    }

    .stay-calendar-bottom{
        margin-top:
            7px !important;
    }
}

/* ============================================================
   R11.22 PROPERTY BOOKING FLOW
   ============================================================ */

html.stay-property-selector-open,
html.stay-property-selector-open body{
    overflow:hidden;
}

.stay-property-selector{
    position:fixed;
    inset:0;

    z-index:1000000;

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

    padding:24px;

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

    transition:
        opacity .22s ease,
        visibility .22s ease;
}

.stay-property-selector.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.stay-property-backdrop{
    position:absolute;
    inset:0;

    background:
        rgba(7,10,8,.56);

    backdrop-filter:
        blur(10px);

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

.stay-property-panel{
    position:relative;
    z-index:2;

    width:min(
        1100px,
        calc(100vw - 48px)
    );

    max-height:
        calc(100vh - 48px);

    overflow:auto;

    padding:
        28px 30px 22px;

    border:
        1px solid
        rgba(255,255,255,.7);

    border-radius:
        28px;

    background:
        linear-gradient(
            145deg,
            #faf6ee,
            #f3ede2
        );

    box-shadow:
        0 40px 120px
        rgba(0,0,0,.34);

    color:#191c18;
}

/* ------------------------------------------------------------
   HEADER
   ------------------------------------------------------------ */

.stay-property-header{
    display:flex;

    align-items:flex-start;
    justify-content:space-between;

    gap:24px;

    margin-bottom:17px;
}

.stay-property-kicker{
    display:block;

    margin-bottom:7px;

    color:#a47736;

    font-size:10px;
    font-weight:800;

    letter-spacing:.18em;
}

.stay-property-header h2{
    margin:0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            31px,
            4vw,
            48px
        );

    font-weight:400;
    line-height:.98;
}

.stay-property-header p{
    margin:
        9px 0 0;

    color:#6e746d;

    font-size:13px;
}

.stay-property-close{
    width:42px;
    height:42px;

    flex:none;

    border:0;
    border-radius:50%;

    background:#dfdbd2;

    color:#5f655f;

    font-size:25px;
    line-height:1;

    cursor:pointer;
}

/* ------------------------------------------------------------
   PROPERTY CONTEXT
   ------------------------------------------------------------ */

.stay-property-context{
    display:none;

    align-items:center;

    gap:10px;

    margin-bottom:16px;

    padding:
        10px 13px;

    border:
        1px solid
        rgba(25,28,24,.08);

    border-radius:
        12px;

    background:
        rgba(255,255,255,.45);

    color:#686e67;

    font-size:11px;
}

.stay-property-context.visible{
    display:flex;
}

.stay-property-context strong{
    color:#20231f;
}

.stay-property-context button{
    margin-left:auto;

    border:0;

    background:none;

    color:#835697;

    font-size:9px;
    font-weight:800;

    letter-spacing:.05em;

    cursor:pointer;
}

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

.stay-property-grid{
    display:grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap:14px;
}

.stay-property-option{
    display:grid;

    grid-template-columns:
        180px 1fr;

    min-height:180px;

    overflow:hidden;

    border:
        1px solid
        rgba(25,28,24,.10);

    border-radius:
        18px;

    background:
        rgba(255,255,255,.52);

    cursor:pointer;

    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.stay-property-option:hover{
    transform:
        translateY(-2px);

    border-color:
        rgba(170,126,57,.28);

    box-shadow:
        0 13px 30px
        rgba(48,42,30,.07);
}

.stay-property-option.selected{
    border-color:
        rgba(164,117,47,.55);

    box-shadow:
        0 0 0 3px
        rgba(183,137,62,.08),
        0 16px 34px
        rgba(48,42,30,.08);
}

.stay-property-option-photo{
    position:relative;

    min-height:180px;

    background:
        #dedbd2
        center /
        cover
        no-repeat;
}

.stay-property-option-check{
    position:absolute;

    top:11px;
    right:11px;

    display:flex;

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

    width:29px;
    height:29px;

    border-radius:50%;

    background:
        rgba(19,23,19,.84);

    color:#fff;

    font-size:12px;

    backdrop-filter:
        blur(7px);
}

.stay-property-option:not(.selected)
.stay-property-option-check{
    opacity:0;
}

.stay-property-option-body{
    display:flex;
    flex-direction:column;

    padding:
        17px 18px 15px;
}

.stay-property-option-type{
    margin-bottom:5px;

    color:#a17639;

    font-size:8px;
    font-weight:800;

    letter-spacing:.16em;
}

.stay-property-option-body h3{
    margin:
        0 0 7px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        22px;

    font-weight:400;
    line-height:1.02;
}

.stay-property-option-body p{
    margin:
        0 0 7px;

    color:#717670;

    font-size:10px;
    line-height:1.45;
}

.stay-property-option-capacity{
    color:#6c716b;

    font-size:9px;
    font-weight:700;
}

.stay-property-select{
    align-self:flex-start;

    margin-top:auto;
    padding:
        9px 13px;

    border:0;
    border-radius:999px;

    background:#181d18;

    color:#fff;

    font-size:8px;
    font-weight:800;

    letter-spacing:.07em;

    cursor:pointer;
}

.stay-property-option.selected
.stay-property-select{
    background:
        linear-gradient(
            105deg,
            #704083,
            #b88944,
            #287a57
        );
}

/* ------------------------------------------------------------
   EMPTY STATE
   ------------------------------------------------------------ */

.stay-property-empty{
    grid-column:
        1 / -1;

    display:flex;
    flex-direction:column;

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

    min-height:220px;

    padding:30px;

    border:
        1px dashed
        rgba(25,28,24,.14);

    border-radius:
        18px;

    text-align:center;
}

.stay-property-empty strong{
    margin-bottom:6px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:24px;
    font-weight:400;
}

.stay-property-empty span{
    color:#747a73;
    font-size:11px;
}

/* ------------------------------------------------------------
   FOOTER
   ------------------------------------------------------------ */

.stay-property-footer{
    display:flex;

    align-items:center;
    justify-content:space-between;

    gap:18px;

    margin-top:17px;

    padding-top:15px;

    border-top:
        1px solid
        rgba(24,27,23,.08);
}

.stay-property-selection-summary{
    display:flex;
    flex-direction:column;

    gap:2px;

    color:#747972;

    font-size:10px;
}

.stay-property-selection-summary span{
    color:#9a7135;

    font-size:8px;
    font-weight:800;

    letter-spacing:.14em;
}

.stay-property-selection-summary strong{
    color:#242723;

    font-size:13px;
}

.stay-property-continue{
    padding:
        14px 20px;

    border:0;
    border-radius:999px;

    background:
        linear-gradient(
            105deg,
            #704083,
            #b88944,
            #287a57
        );

    color:#fff;

    font-size:9px;
    font-weight:800;

    letter-spacing:.08em;

    cursor:pointer;
}

.stay-property-continue:disabled{
    opacity:.34;
    cursor:not-allowed;
    filter:grayscale(.4);
}

/* ------------------------------------------------------------
   BOOKING BAR SELECTED STATE
   ------------------------------------------------------------ */

.availability.has-selected-property{
    box-shadow:
        0 0 0 2px
        rgba(181,137,62,.20),
        0 16px 50px
        rgba(0,0,0,.12);
}

/* ------------------------------------------------------------
   CONFIRMATION TOAST
   ------------------------------------------------------------ */

.stay-booking-toast{
    position:fixed;

    right:26px;
    bottom:26px;

    z-index:1000001;

    display:flex;
    flex-direction:column;

    min-width:260px;

    padding:
        14px 17px;

    border:
        1px solid
        rgba(255,255,255,.25);

    border-radius:
        16px;

    background:
        rgba(20,25,20,.94);

    color:#fff;

    box-shadow:
        0 20px 60px
        rgba(0,0,0,.26);

    backdrop-filter:
        blur(12px);

    transform:
        translateY(25px);

    opacity:0;
    visibility:hidden;

    transition:
        transform .22s ease,
        opacity .22s ease,
        visibility .22s ease;
}

.stay-booking-toast.show{
    transform:
        translateY(0);

    opacity:1;
    visibility:visible;
}

.stay-booking-toast span{
    margin-bottom:3px;

    color:#d3ae64;

    font-size:7px;
    font-weight:800;

    letter-spacing:.16em;
}

.stay-booking-toast strong{
    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:17px;
    font-weight:400;
}

.stay-booking-toast small{
    margin-top:3px;

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

    font-size:9px;
}

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

@media(max-width:760px){

    .stay-property-selector{
        align-items:flex-end;
        padding:0;
    }

    .stay-property-panel{
        width:100%;
        max-height:92vh;

        padding:
            21px 16px 18px;

        border-radius:
            26px 26px 0 0;
    }

    .stay-property-header h2{
        font-size:31px;
    }

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

    .stay-property-option{
        grid-template-columns:
            120px 1fr;

        min-height:150px;
    }

    .stay-property-option-photo{
        min-height:150px;
    }

    .stay-property-option-body{
        padding:
            14px 13px;
    }

    .stay-property-option-body h3{
        font-size:19px;
    }

    .stay-property-footer{
        align-items:stretch;
        flex-direction:column;
    }

    .stay-property-continue{
        width:100%;
    }

    .stay-booking-toast{
        right:15px;
        bottom:15px;
        left:15px;

        min-width:0;
    }
}

/* ============================================================
   R11.23 BOOKING REVIEW + GUEST DETAILS
   ============================================================ */

html.stay-booking-review-open,
html.stay-booking-review-open body{
    overflow:hidden;
}

.stay-booking-review{
    position:fixed;
    inset:0;

    z-index:1000002;

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

    padding:22px;

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

    transition:
        opacity .2s ease,
        visibility .2s ease;
}

.stay-booking-review.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.stay-booking-review-backdrop{
    position:absolute;
    inset:0;

    background:
        rgba(8,11,9,.58);

    backdrop-filter:
        blur(10px);

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

.stay-booking-review-panel{
    position:relative;
    z-index:2;

    width:min(
        1080px,
        calc(100vw - 44px)
    );

    max-height:
        calc(100vh - 44px);

    overflow:auto;

    padding:
        30px;

    border:
        1px solid
        rgba(255,255,255,.7);

    border-radius:
        28px;

    background:
        linear-gradient(
            145deg,
            #fbf7ef,
            #f2ecdf
        );

    box-shadow:
        0 40px 120px
        rgba(0,0,0,.34);
}

.stay-booking-review-close{
    position:absolute;

    top:18px;
    right:18px;

    z-index:4;

    width:42px;
    height:42px;

    border:0;
    border-radius:50%;

    background:#dfdbd2;
    color:#606660;

    font-size:24px;

    cursor:pointer;
}

.stay-booking-review-layout{
    display:grid;

    grid-template-columns:
        minmax(0,1fr)
        minmax(360px,.82fr);

    gap:38px;
}

.stay-review-kicker{
    display:block;

    margin-bottom:8px;

    color:#9b7135;

    font-size:9px;
    font-weight:800;

    letter-spacing:.18em;
}

.stay-booking-review-left h2{
    margin:0;

    max-width:520px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            37px,
            5vw,
            58px
        );

    font-weight:400;
    line-height:.96;
}

.stay-review-intro{
    max-width:500px;

    margin:
        13px 0 23px;

    color:#6d736c;

    font-size:13px;
    line-height:1.55;
}

/* PROPERTY */

.stay-review-property{
    display:grid;

    grid-template-columns:
        145px 1fr;

    gap:17px;

    align-items:center;

    margin-bottom:15px;

    padding:12px;

    border:
        1px solid
        rgba(25,28,24,.09);

    border-radius:17px;

    background:
        rgba(255,255,255,.48);
}

.stay-review-property-photo{
    height:106px;

    border-radius:12px;

    background:
        #dedbd2
        center /
        cover
        no-repeat;
}

.stay-review-property small{
    display:block;

    margin-bottom:5px;

    color:#9a7135;

    font-size:7px;
    font-weight:800;

    letter-spacing:.16em;
}

.stay-review-property strong{
    display:block;

    margin-bottom:6px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:21px;
    font-weight:400;
}

.stay-review-property span{
    color:#71766f;

    font-size:10px;
}

/* TRIP */

.stay-review-trip{
    display:grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0,1fr)
        );

    gap:9px;
}

.stay-review-trip > div{
    padding:12px;

    border:
        1px solid
        rgba(25,28,24,.08);

    border-radius:13px;

    background:
        rgba(255,255,255,.38);
}

.stay-review-trip small{
    display:block;

    margin-bottom:4px;

    color:#898e87;

    font-size:7px;
    font-weight:800;

    letter-spacing:.14em;
}

.stay-review-trip strong{
    font-size:12px;
}

/* RIGHT */

.stay-booking-review-right{
    padding-top:40px;
}

.stay-review-price{
    margin-bottom:18px;

    padding:18px;

    border-radius:18px;

    background:
        #191e19;

    color:#fff;
}

.stay-review-price-head{
    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:20px;

    padding-bottom:13px;

    border-bottom:
        1px solid
        rgba(255,255,255,.12);
}

.stay-review-price-head span{
    color:#d5b066;

    font-size:7px;
    font-weight:800;

    letter-spacing:.15em;
}

.stay-review-price-head strong{
    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:18px;
    font-weight:400;
}

.stay-review-price-pending{
    display:flex;
    flex-direction:column;

    gap:5px;

    padding-top:15px;
}

.stay-review-price-pending span{
    color:
        rgba(255,255,255,.55);

    font-size:8px;
    font-weight:800;

    letter-spacing:.12em;
}

.stay-review-price-pending strong{
    font-size:13px;
}

.stay-review-price-pending small{
    max-width:330px;

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

    font-size:9px;
    line-height:1.5;
}

/* GUEST FORM */

.stay-guest-form h3{
    margin:
        0 0 13px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:23px;
    font-weight:400;
}

.stay-form-row{
    display:grid;

    grid-template-columns:
        1fr 1fr;

    gap:10px;
}

.stay-guest-form label{
    display:block;

    margin-bottom:10px;
}

.stay-guest-form label > span{
    display:block;

    margin:
        0 0 5px;

    color:#858a83;

    font-size:7px;
    font-weight:800;

    letter-spacing:.14em;
}

.stay-guest-form input,
.stay-guest-form textarea{
    width:100%;

    box-sizing:border-box;

    border:
        1px solid
        rgba(25,28,24,.12);

    border-radius:11px;

    outline:none;

    background:
        rgba(255,255,255,.64);

    color:#20231f;

    font:inherit;

    font-size:12px;

    transition:
        border-color .15s ease,
        box-shadow .15s ease;
}

.stay-guest-form input{
    height:43px;

    padding:
        0 12px;
}

.stay-guest-form textarea{
    resize:vertical;

    min-height:72px;

    padding:
        10px 12px;
}

.stay-guest-form input:focus,
.stay-guest-form textarea:focus{
    border-color:
        rgba(171,124,51,.52);

    box-shadow:
        0 0 0 3px
        rgba(180,135,60,.08);
}

.stay-form-error{
    min-height:18px;

    margin:
        0 0 6px;

    color:#9f3d36;

    font-size:9px;
    font-weight:700;
}

.stay-payment-next{
    width:100%;

    min-height:48px;

    border:0;
    border-radius:999px;

    background:
        linear-gradient(
            105deg,
            #704083,
            #b88a43,
            #287c57
        );

    color:#fff;

    font-size:9px;
    font-weight:800;

    letter-spacing:.08em;

    cursor:pointer;

    transition:
        transform .18s ease,
        filter .18s ease;
}

.stay-payment-next:hover{
    transform:
        translateY(-1px);

    filter:
        brightness(1.05);
}

.stay-payment-next.saved{
    background:#247652;
}

.stay-payment-note{
    margin:
        8px 0 0;

    color:#838881;

    font-size:8px;

    text-align:center;
}

/* MOBILE */

@media(max-width:760px){

    .stay-booking-review{
        align-items:flex-end;
        padding:0;
    }

    .stay-booking-review-panel{
        width:100%;

        max-height:92vh;

        padding:
            23px 17px 19px;

        border-radius:
            26px 26px 0 0;
    }

    .stay-booking-review-layout{
        grid-template-columns:
            1fr;

        gap:20px;
    }

    .stay-booking-review-right{
        padding-top:0;
    }

    .stay-booking-review-left h2{
        font-size:36px;
    }

    .stay-review-property{
        grid-template-columns:
            110px 1fr;
    }

    .stay-review-property-photo{
        height:90px;
    }

    .stay-form-row{
        grid-template-columns:
            1fr;
    }
}

/* ============================================================
   R11.24 DIRECT QUOTE + HELCIM PAYMENT
   ============================================================ */

.stay-price-lines{
    display:flex;
    flex-direction:column;
    gap:9px;

    padding:
        14px 0 11px;
}

.stay-price-lines > div{
    display:flex;

    align-items:center;
    justify-content:space-between;

    gap:20px;

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

    font-size:10px;
}

.stay-price-lines strong{
    color:#fff;

    font-size:11px;
    font-weight:700;
}

.stay-price-total{
    display:flex;

    align-items:center;
    justify-content:space-between;

    gap:20px;

    padding-top:12px;

    border-top:
        1px solid
        rgba(255,255,255,.12);
}

.stay-price-total span{
    color:#d8b46c;

    font-size:8px;
    font-weight:800;

    letter-spacing:.14em;
}

.stay-price-total strong{
    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:25px;
    font-weight:400;
}

.stay-price-direct-note{
    display:block;

    margin-top:10px;

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

    font-size:8px;
    line-height:1.45;
}

.stay-payment-next:disabled{
    cursor:wait;
    opacity:.7;
}

.stay-payment-success{
    margin-top:14px;

    padding:16px;

    border:
        1px solid
        rgba(39,124,87,.22);

    border-radius:15px;

    background:
        rgba(39,124,87,.09);
}

.stay-payment-success > span{
    display:block;

    margin-bottom:5px;

    color:#287b57;

    font-size:8px;
    font-weight:800;

    letter-spacing:.15em;
}

.stay-payment-success > strong{
    display:block;

    margin-bottom:7px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:20px;
    font-weight:400;
}

.stay-payment-success p{
    margin:
        4px 0;

    color:#5f665f;

    font-size:10px;
}

.stay-payment-success small{
    color:#787e77;
    font-size:8px;
}

.stay-payment-confirmation-note{
    margin-top:
        10px !important;

    padding-top:
        9px;

    border-top:
        1px solid
        rgba(39,124,87,.15);
}

/* ============================================================
   R11.25 BOOKING REVIEW NO SCROLL
   Fit complete review + pricing + guest form in viewport
   ============================================================ */

html.stay-booking-review-open,
html.stay-booking-review-open body{
    overflow:hidden !important;
}

/* ------------------------------------------------------------
   MODAL SHELL
   ------------------------------------------------------------ */

.stay-booking-review{
    padding:10px !important;
    overflow:hidden !important;
    align-items:center !important;
}

.stay-booking-review-panel{
    width:min(
        1180px,
        calc(100vw - 20px)
    ) !important;

    height:auto !important;

    max-height:
        calc(100vh - 20px) !important;

    overflow:hidden !important;

    padding:
        20px 24px 18px !important;

    border-radius:
        25px !important;
}

/* ------------------------------------------------------------
   CLOSE BUTTON
   ------------------------------------------------------------ */

.stay-booking-review-close{
    top:14px !important;
    right:14px !important;

    width:38px !important;
    height:38px !important;

    font-size:21px !important;
}

/* ------------------------------------------------------------
   MAIN TWO-COLUMN LAYOUT
   ------------------------------------------------------------ */

.stay-booking-review-layout{
    grid-template-columns:
        minmax(0,1.03fr)
        minmax(390px,.82fr) !important;

    gap:28px !important;

    align-items:start !important;
}

/* ------------------------------------------------------------
   LEFT SIDE
   ------------------------------------------------------------ */

.stay-review-kicker{
    margin-bottom:
        4px !important;

    font-size:
        8px !important;
}

.stay-booking-review-left h2{
    font-size:
        clamp(
            38px,
            4vw,
            54px
        ) !important;

    line-height:
        .92 !important;
}

.stay-review-intro{
    margin:
        8px 0 14px !important;

    font-size:
        11px !important;

    line-height:
        1.35 !important;
}

/* PROPERTY CARD */

.stay-review-property{
    grid-template-columns:
        120px 1fr !important;

    gap:
        14px !important;

    margin-bottom:
        10px !important;

    padding:
        10px !important;
}

.stay-review-property-photo{
    height:
        88px !important;
}

.stay-review-property small{
    margin-bottom:
        3px !important;
}

.stay-review-property strong{
    margin-bottom:
        4px !important;

    font-size:
        19px !important;
}

.stay-review-property span{
    font-size:
        9px !important;
}

/* TRIP DETAILS */

.stay-review-trip{
    gap:
        7px !important;
}

.stay-review-trip > div{
    padding:
        9px 11px !important;

    min-height:
        54px !important;
}

.stay-review-trip small{
    margin-bottom:
        3px !important;
}

.stay-review-trip strong{
    font-size:
        11px !important;
}

/* ------------------------------------------------------------
   RIGHT SIDE
   ------------------------------------------------------------ */

.stay-booking-review-right{
    padding-top:
        18px !important;
}

/* PRICE CARD */

.stay-review-price{
    margin-bottom:
        12px !important;

    padding:
        14px 16px !important;

    border-radius:
        17px !important;
}

.stay-review-price-head{
    padding-bottom:
        9px !important;
}

.stay-review-price-head strong{
    font-size:
        20px !important;
}

.stay-price-lines{
    gap:
        6px !important;

    padding:
        9px 0 8px !important;
}

.stay-price-lines > div{
    font-size:
        9px !important;
}

.stay-price-lines strong{
    font-size:
        10px !important;
}

.stay-price-total{
    padding-top:
        8px !important;
}

.stay-price-total strong{
    font-size:
        22px !important;
}

.stay-price-direct-note{
    margin-top:
        6px !important;

    font-size:
        7px !important;

    line-height:
        1.3 !important;
}

/* ------------------------------------------------------------
   GUEST DETAILS
   ------------------------------------------------------------ */

.stay-guest-form h3{
    margin:
        0 0 8px !important;

    font-size:
        21px !important;
}

.stay-form-row{
    gap:
        8px !important;
}

.stay-guest-form label{
    margin-bottom:
        7px !important;
}

.stay-guest-form label > span{
    margin-bottom:
        3px !important;

    font-size:
        7px !important;
}

.stay-guest-form input{
    height:
        37px !important;

    padding:
        0 11px !important;

    font-size:
        11px !important;
}

.stay-guest-form textarea{
    min-height:
        54px !important;

    height:
        54px !important;

    max-height:
        54px !important;

    resize:none !important;

    padding:
        8px 11px !important;

    font-size:
        11px !important;
}

.stay-form-error{
    min-height:
        14px !important;

    margin:
        0 0 3px !important;

    font-size:
        8px !important;
}

.stay-payment-next{
    min-height:
        42px !important;

    font-size:
        8px !important;
}

.stay-payment-note{
    margin-top:
        5px !important;

    font-size:
        7px !important;
}

/* ------------------------------------------------------------
   PAYMENT SUCCESS
   ------------------------------------------------------------ */

.stay-payment-success{
    margin-top:
        8px !important;

    padding:
        10px 12px !important;
}

/* ------------------------------------------------------------
   SHORTER DESKTOP SCREENS
   ------------------------------------------------------------ */

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

    .stay-booking-review{
        padding:
            6px !important;
    }

    .stay-booking-review-panel{
        max-height:
            calc(100vh - 12px) !important;

        padding:
            14px 20px 12px !important;
    }

    .stay-booking-review-layout{
        gap:
            22px !important;
    }

    .stay-booking-review-left h2{
        font-size:
            43px !important;
    }

    .stay-review-intro{
        margin:
            5px 0 10px !important;
    }

    .stay-review-property{
        grid-template-columns:
            100px 1fr !important;

        margin-bottom:
            7px !important;

        padding:
            8px !important;
    }

    .stay-review-property-photo{
        height:
            72px !important;
    }

    .stay-review-property strong{
        font-size:
            17px !important;
    }

    .stay-review-trip > div{
        min-height:
            46px !important;

        padding:
            7px 9px !important;
    }

    .stay-booking-review-right{
        padding-top:
            12px !important;
    }

    .stay-review-price{
        margin-bottom:
            8px !important;

        padding:
            11px 14px !important;
    }

    .stay-price-lines{
        padding:
            6px 0 !important;

        gap:
            4px !important;
    }

    .stay-guest-form h3{
        margin-bottom:
            5px !important;

        font-size:
            19px !important;
    }

    .stay-guest-form label{
        margin-bottom:
            5px !important;
    }

    .stay-guest-form input{
        height:
            33px !important;
    }

    .stay-guest-form textarea{
        height:
            43px !important;

        min-height:
            43px !important;

        max-height:
            43px !important;
    }

    .stay-payment-next{
        min-height:
            38px !important;
    }

    .stay-payment-note{
        margin-top:
            3px !important;
    }
}

/* ------------------------------------------------------------
   VERY SHORT DESKTOP SCREENS
   ------------------------------------------------------------ */

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

    .stay-review-intro{
        display:none !important;
    }

    .stay-review-property-photo{
        height:
            60px !important;
    }

    .stay-review-property{
        grid-template-columns:
            88px 1fr !important;
    }

    .stay-booking-review-left h2{
        font-size:
            37px !important;
    }

    .stay-review-trip > div{
        min-height:
            40px !important;
    }

    .stay-review-price-direct-note{
        display:none !important;
    }

    .stay-payment-note{
        display:none !important;
    }
}

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

@media(max-width:760px){

    .stay-booking-review{
        padding:
            0 !important;

        align-items:flex-end !important;
    }

    .stay-booking-review-panel{
        width:
            100% !important;

        max-height:
            100vh !important;

        overflow:hidden !important;

        padding:
            17px 15px 14px !important;

        border-radius:
            24px 24px 0 0 !important;
    }

    .stay-booking-review-layout{
        grid-template-columns:
            1fr !important;

        gap:
            12px !important;
    }

    .stay-booking-review-left h2{
        font-size:
            32px !important;
    }

    .stay-review-property{
        grid-template-columns:
            85px 1fr !important;
    }

    .stay-review-property-photo{
        height:
            62px !important;
    }

    .stay-review-trip{
        grid-template-columns:
            repeat(4,1fr) !important;
    }

    .stay-review-trip > div{
        min-height:
            47px !important;

        padding:
            7px !important;
    }

    .stay-review-trip strong{
        font-size:
            9px !important;
    }

    .stay-booking-review-right{
        padding-top:
            0 !important;
    }
}

/* ============================================================
   R11.26 BOOKING REVIEW SCALE UP
   Larger modal + substantially larger readable typography
   while preserving no-scroll desktop layout
   ============================================================ */

/* ------------------------------------------------------------
   USE MORE OF THE SCREEN
   ------------------------------------------------------------ */

.stay-booking-review{
    padding:8px !important;
}

.stay-booking-review-panel{
    width:calc(100vw - 24px) !important;
    max-width:1500px !important;

    max-height:calc(100vh - 20px) !important;

    padding:
        24px 28px 20px !important;

    border-radius:
        30px !important;

    overflow:hidden !important;
}

.stay-booking-review-layout{
    grid-template-columns:
        minmax(0,1.18fr)
        minmax(500px,.92fr) !important;

    gap:
        32px !important;
}

/* ------------------------------------------------------------
   CLOSE BUTTON
   ------------------------------------------------------------ */

.stay-booking-review-close{
    top:18px !important;
    right:18px !important;

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

    font-size:26px !important;
    font-weight:500 !important;
}

/* ------------------------------------------------------------
   LEFT TITLE AREA
   ------------------------------------------------------------ */

.stay-review-kicker{
    margin-bottom:
        6px !important;

    font-size:
        10px !important;

    letter-spacing:
        .19em !important;
}

.stay-booking-review-left h2{
    font-size:
        clamp(
            52px,
            5.2vw,
            76px
        ) !important;

    line-height:
        .92 !important;
}

.stay-review-intro{
    margin:
        10px 0 16px !important;

    font-size:
        15px !important;

    line-height:
        1.4 !important;
}

/* ------------------------------------------------------------
   PROPERTY CARD
   ------------------------------------------------------------ */

.stay-review-property{
    grid-template-columns:
        145px 1fr !important;

    gap:
        18px !important;

    margin-bottom:
        12px !important;

    padding:
        12px !important;

    border-radius:
        18px !important;
}

.stay-review-property-photo{
    height:
        106px !important;

    border-radius:
        13px !important;
}

.stay-review-property small{
    margin-bottom:
        5px !important;

    font-size:
        9px !important;

    letter-spacing:
        .16em !important;
}

.stay-review-property strong{
    margin-bottom:
        6px !important;

    font-size:
        25px !important;

    line-height:
        1.05 !important;
}

.stay-review-property span{
    font-size:
        12px !important;

    line-height:
        1.4 !important;
}

/* ------------------------------------------------------------
   CHECK-IN / CHECK-OUT / GUESTS / NIGHTS
   ------------------------------------------------------------ */

.stay-review-trip{
    gap:
        10px !important;
}

.stay-review-trip > div{
    min-height:
        62px !important;

    padding:
        11px 13px !important;

    border-radius:
        14px !important;
}

.stay-review-trip small{
    margin-bottom:
        5px !important;

    font-size:
        8px !important;

    letter-spacing:
        .15em !important;
}

.stay-review-trip strong{
    font-size:
        14px !important;

    line-height:
        1.15 !important;
}

/* ------------------------------------------------------------
   RIGHT COLUMN
   ------------------------------------------------------------ */

.stay-booking-review-right{
    padding-top:
        28px !important;
}

/* ------------------------------------------------------------
   PRICE CARD
   ------------------------------------------------------------ */

.stay-review-price{
    margin-bottom:
        16px !important;

    padding:
        17px 19px !important;

    border-radius:
        19px !important;
}

.stay-review-price-head{
    padding-bottom:
        11px !important;
}

.stay-review-price-head span{
    font-size:
        9px !important;

    letter-spacing:
        .16em !important;
}

.stay-review-price-head strong{
    font-size:
        25px !important;
}

.stay-price-lines{
    gap:
        7px !important;

    padding:
        11px 0 10px !important;
}

.stay-price-lines > div{
    font-size:
        12px !important;
}

.stay-price-lines strong{
    font-size:
        13px !important;
}

.stay-price-total{
    padding-top:
        10px !important;
}

.stay-price-total span{
    font-size:
        9px !important;

    letter-spacing:
        .15em !important;
}

.stay-price-total strong{
    font-size:
        31px !important;
}

.stay-price-direct-note{
    margin-top:
        8px !important;

    font-size:
        9px !important;

    line-height:
        1.35 !important;
}

/* ------------------------------------------------------------
   GUEST DETAILS TITLE
   ------------------------------------------------------------ */

.stay-guest-form h3{
    margin:
        0 0 10px !important;

    font-size:
        30px !important;

    line-height:
        1 !important;
}

/* ------------------------------------------------------------
   FORM LABELS
   ------------------------------------------------------------ */

.stay-guest-form label{
    margin-bottom:
        8px !important;
}

.stay-guest-form label > span{
    margin-bottom:
        4px !important;

    font-size:
        8px !important;

    letter-spacing:
        .15em !important;
}

/* ------------------------------------------------------------
   FORM INPUTS
   ------------------------------------------------------------ */

.stay-form-row{
    gap:
        11px !important;
}

.stay-guest-form input{
    height:
        43px !important;

    padding:
        0 13px !important;

    font-size:
        14px !important;

    border-radius:
        12px !important;
}

.stay-guest-form textarea{
    height:
        58px !important;

    min-height:
        58px !important;

    max-height:
        58px !important;

    padding:
        10px 13px !important;

    font-size:
        14px !important;

    line-height:
        1.35 !important;

    border-radius:
        12px !important;

    resize:none !important;
}

/* ------------------------------------------------------------
   VALIDATION MESSAGE
   ------------------------------------------------------------ */

.stay-form-error{
    min-height:
        16px !important;

    margin:
        0 0 5px !important;

    font-size:
        10px !important;

    line-height:
        1.25 !important;
}

/* ------------------------------------------------------------
   PAYMENT BUTTON
   ------------------------------------------------------------ */

.stay-payment-next{
    min-height:
        49px !important;

    font-size:
        10px !important;

    letter-spacing:
        .09em !important;

    border-radius:
        999px !important;
}

.stay-payment-note{
    margin-top:
        6px !important;

    font-size:
        9px !important;
}

/* ------------------------------------------------------------
   SHORT DESKTOPS
   Still large, but intelligently tightened
   ------------------------------------------------------------ */

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

    .stay-booking-review-panel{
        padding:
            16px 24px 14px !important;
    }

    .stay-booking-review-layout{
        gap:
            28px !important;
    }

    .stay-booking-review-left h2{
        font-size:
            55px !important;
    }

    .stay-review-intro{
        margin:
            6px 0 10px !important;

        font-size:
            13px !important;
    }

    .stay-review-property{
        grid-template-columns:
            120px 1fr !important;

        padding:
            9px !important;

        margin-bottom:
            8px !important;
    }

    .stay-review-property-photo{
        height:
            82px !important;
    }

    .stay-review-property strong{
        font-size:
            21px !important;
    }

    .stay-review-property span{
        font-size:
            10px !important;
    }

    .stay-review-trip > div{
        min-height:
            51px !important;

        padding:
            8px 10px !important;
    }

    .stay-review-trip strong{
        font-size:
            12px !important;
    }

    .stay-booking-review-right{
        padding-top:
            20px !important;
    }

    .stay-review-price{
        margin-bottom:
            10px !important;

        padding:
            12px 16px !important;
    }

    .stay-review-price-head strong{
        font-size:
            22px !important;
    }

    .stay-price-lines{
        gap:
            4px !important;

        padding:
            7px 0 !important;
    }

    .stay-price-lines > div{
        font-size:
            10px !important;
    }

    .stay-price-total strong{
        font-size:
            27px !important;
    }

    .stay-guest-form h3{
        margin-bottom:
            6px !important;

        font-size:
            25px !important;
    }

    .stay-guest-form label{
        margin-bottom:
            5px !important;
    }

    .stay-guest-form input{
        height:
            36px !important;

        font-size:
            12px !important;
    }

    .stay-guest-form textarea{
        height:
            44px !important;

        min-height:
            44px !important;

        max-height:
            44px !important;

        font-size:
            12px !important;
    }

    .stay-payment-next{
        min-height:
            41px !important;

        font-size:
            9px !important;
    }
}

/* ------------------------------------------------------------
   LARGE DESKTOPS
   Let the experience breathe
   ------------------------------------------------------------ */

@media(
    min-width:1400px
) and (
    min-height:850px
){

    .stay-booking-review-panel{
        max-width:
            1560px !important;

        padding:
            30px 34px 24px !important;
    }

    .stay-booking-review-layout{
        gap:
            40px !important;
    }

    .stay-booking-review-left h2{
        font-size:
            78px !important;
    }

    .stay-review-intro{
        font-size:
            16px !important;
    }

    .stay-review-property strong{
        font-size:
            27px !important;
    }

    .stay-review-property span{
        font-size:
            13px !important;
    }

    .stay-review-trip strong{
        font-size:
            15px !important;
    }

    .stay-review-price-head strong{
        font-size:
            27px !important;
    }

    .stay-price-lines > div{
        font-size:
            13px !important;
    }

    .stay-price-lines strong{
        font-size:
            14px !important;
    }

    .stay-price-total strong{
        font-size:
            34px !important;
    }

    .stay-guest-form h3{
        font-size:
            32px !important;
    }

    .stay-guest-form input,
    .stay-guest-form textarea{
        font-size:
            15px !important;
    }

    .stay-payment-next{
        font-size:
            11px !important;
    }
}

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

@media(max-width:760px){

    .stay-booking-review-panel{
        padding:
            18px 16px 15px !important;
    }

    .stay-booking-review-left h2{
        font-size:
            38px !important;
    }

    .stay-review-intro{
        font-size:
            12px !important;
    }

    .stay-review-property strong{
        font-size:
            19px !important;
    }

    .stay-review-property span{
        font-size:
            10px !important;
    }

    .stay-review-trip strong{
        font-size:
            10px !important;
    }

    .stay-guest-form h3{
        font-size:
            25px !important;
    }

    .stay-guest-form input,
    .stay-guest-form textarea{
        font-size:
            13px !important;
    }
}

/* ============================================================
   R11.27 LARGE CHECKOUT TYPE + DIRECT DISCOUNT
   ============================================================ */

.stay-review-kicker{
    font-size:11px !important;
}

.stay-booking-review-left h2{
    font-size:clamp(62px,5.6vw,88px) !important;
}

.stay-review-intro{
    font-size:17px !important;
}

.stay-review-property small{
    font-size:10px !important;
}

.stay-review-property strong{
    font-size:29px !important;
}

.stay-review-property span{
    font-size:14px !important;
}

.stay-review-trip small{
    font-size:10px !important;
}

.stay-review-trip strong{
    font-size:16px !important;
}

.stay-review-price-head span{
    font-size:11px !important;
}

.stay-review-price-head strong{
    font-size:29px !important;
}

.stay-price-lines > div{
    font-size:14px !important;
}

.stay-price-lines strong{
    font-size:15px !important;
}

.stay-price-total span{
    font-size:11px !important;
}

.stay-price-total strong{
    font-size:38px !important;
}

.stay-price-direct-note{
    font-size:10px !important;
}

.stay-discount-line{
    color:#e7c16d !important;
}

.stay-discount-line span,
.stay-discount-line strong{
    color:#e7c16d !important;
    font-weight:800 !important;
}

.stay-guest-form h3{
    font-size:36px !important;
}

.stay-guest-form label > span{
    font-size:10px !important;
}

.stay-guest-form input,
.stay-guest-form textarea{
    font-size:17px !important;
}

.stay-form-error{
    font-size:11px !important;
}

.stay-payment-next{
    font-size:12px !important;
}

.stay-payment-note{
    font-size:10px !important;
}

.stay-payment-success > span{
    font-size:10px !important;
}

.stay-payment-success > strong{
    font-size:24px !important;
}

.stay-payment-success p{
    font-size:12px !important;
}

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

    .stay-booking-review-left h2{
        font-size:58px !important;
    }

    .stay-review-intro{
        font-size:14px !important;
    }

    .stay-review-property strong{
        font-size:24px !important;
    }

    .stay-review-property span{
        font-size:12px !important;
    }

    .stay-review-trip strong{
        font-size:14px !important;
    }

    .stay-review-price-head strong{
        font-size:25px !important;
    }

    .stay-price-lines > div{
        font-size:11px !important;
    }

    .stay-price-lines strong{
        font-size:12px !important;
    }

    .stay-price-total strong{
        font-size:31px !important;
    }

    .stay-guest-form h3{
        font-size:29px !important;
    }

    .stay-guest-form input,
    .stay-guest-form textarea{
        font-size:14px !important;
    }

    .stay-payment-next{
        font-size:10px !important;
    }
}

/* ============================================================
   R11.27.5 BOOKING BAR PROPERTY LABEL
   ============================================================ */

.availability
.property-selected{
    position:relative;
}

.availability
.property-selected strong{
    font-size:15px !important;
    line-height:1.15 !important;
}

@media(max-width:760px){

    .availability
    .property-selected strong{
        font-size:13px !important;
    }
}

/* ============================================================
   R11.28 CANONICAL RESERVATION COMPLETION
   ============================================================ */

.stay-booking-gate-message{
    display:none;
    margin:0 0 9px;
    padding:11px 13px;
    border-radius:12px;
    font-size:11px;
    line-height:1.35;
}

.stay-booking-gate-message.blocked{
    display:flex;
    flex-direction:column;
    gap:4px;
    border:1px solid rgba(160,104,43,.18);
    background:rgba(184,137,68,.08);
    color:#64523a;
}

.stay-booking-gate-message strong{
    color:#9a7135;
    font-size:8px;
    font-weight:800;
    letter-spacing:.14em;
}

.stay-payment-next:disabled{
    cursor:not-allowed !important;
    opacity:.58 !important;
}
/* ============================================================
   R11.29 DIRECT BOOKING TERMS
   ============================================================ */

.stay-booking-agreement{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;

    margin-top:14px;
    margin-bottom:10px;

    padding:14px 16px;

    border:1px solid rgba(165,118,54,.24);
    border-radius:14px;

    background:
        rgba(255,250,241,.72);
}

.stay-booking-agreement-row{
    display:flex;
    align-items:center;
    gap:11px;

    min-width:0;

    cursor:pointer;
}

.stay-booking-agreement-row input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.stay-booking-agreement-check{
    position:relative;

    flex:0 0 22px;

    width:22px;
    height:22px;

    border:1.5px solid #a97838;
    border-radius:6px;

    background:#fff;
}

.stay-booking-agreement-row input:checked +
.stay-booking-agreement-check{
    background:
        linear-gradient(
            135deg,
            #704083,
            #2d8b61
        );

    border-color:transparent;
}

.stay-booking-agreement-row input:checked +
.stay-booking-agreement-check::after{
    content:"";

    position:absolute;

    left:7px;
    top:3px;

    width:5px;
    height:10px;

    border-right:2px solid white;
    border-bottom:2px solid white;

    transform:rotate(45deg);
}

.stay-booking-agreement-wording{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.stay-booking-agreement-wording strong{
    color:#20241f;

    font-size:13px;
    line-height:1.25;
}

.stay-booking-agreement-wording > span{
    color:#777d76;

    font-size:11px;
    line-height:1.3;
}

.stay-booking-terms-view{
    flex:0 0 auto;

    padding:8px 12px;

    border:0;
    border-radius:999px;

    background:#181e19;

    color:#fff;

    font-size:9px;
    font-weight:800;

    letter-spacing:.09em;

    cursor:pointer;
}

.stay-booking-terms-modal{
    position:fixed;
    inset:0;

    z-index:2147483645;

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

    padding:24px;

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

    transition:
        opacity .18s ease,
        visibility .18s ease;
}

.stay-booking-terms-modal.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.stay-booking-terms-backdrop{
    position:absolute;
    inset:0;

    width:100%;
    height:100%;

    padding:0;
    border:0;

    background:rgba(10,14,11,.72);

    backdrop-filter:blur(11px);
    -webkit-backdrop-filter:blur(11px);
}

.stay-booking-terms-card{
    position:relative;
    z-index:2;

    width:min(720px,calc(100vw - 48px));
    max-height:min(760px,calc(100vh - 48px));

    display:flex;
    flex-direction:column;

    overflow:hidden;

    border-radius:24px;

    background:#f8f3e9;

    color:#171b17;

    box-shadow:
        0 36px 110px rgba(0,0,0,.35);
}

.stay-booking-terms-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:24px;

    padding:26px 28px 18px;

    border-bottom:1px solid rgba(20,25,20,.1);
}

.stay-booking-terms-head span{
    display:block;

    margin-bottom:5px;

    color:#9a6d2e;

    font-size:9px;
    font-weight:800;

    letter-spacing:.16em;
}

.stay-booking-terms-head h3{
    margin:0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:30px;
    font-weight:400;
}

.stay-booking-terms-head p{
    margin:5px 0 0;

    color:#747a73;

    font-size:11px;
}

.stay-booking-terms-close{
    flex:0 0 38px;

    width:38px;
    height:38px;

    border:0;
    border-radius:999px;

    background:#e4e0d7;

    color:#5f655f;

    font-size:20px;
    font-weight:700;

    cursor:pointer;
}

.stay-booking-terms-copy{
    overflow:auto;

    padding:24px 28px;

    white-space:pre-wrap;

    font-size:13px;
    line-height:1.62;

    color:#424841;
}

.stay-booking-terms-footer{
    padding:13px 28px 16px;

    border-top:1px solid rgba(20,25,20,.1);

    color:#858a84;

    font-size:9px;
    letter-spacing:.04em;
}

@media(max-width:640px){

    .stay-booking-agreement{
        align-items:flex-start;
        flex-direction:column;
    }

    .stay-booking-terms-view{
        margin-left:33px;
    }

    .stay-booking-terms-modal{
        padding:12px;
    }

    .stay-booking-terms-card{
        width:calc(100vw - 24px);
        max-height:calc(100vh - 24px);
    }

    .stay-booking-terms-head{
        padding:20px 18px 15px;
    }

    .stay-booking-terms-head h3{
        font-size:25px;
    }

    .stay-booking-terms-copy{
        padding:18px;
    }
}

/* ============================================================
   R11.29.1 COMPACT BOOKING TERMS ROW
   ============================================================ */

.stay-booking-agreement{
    min-height:46px !important;

    margin-top:8px !important;
    margin-bottom:8px !important;

    padding:8px 12px !important;

    gap:10px !important;

    border-radius:12px !important;
}

.stay-booking-agreement-row{
    flex:1 1 auto !important;

    min-width:0 !important;

    gap:9px !important;

    align-items:center !important;
}

.stay-booking-agreement-check{
    flex:0 0 20px !important;

    width:20px !important;
    height:20px !important;
}

.stay-booking-agreement-row input:checked +
.stay-booking-agreement-check::after{
    left:6px !important;
    top:2px !important;
}

.stay-booking-agreement-wording{
    display:block !important;

    min-width:0 !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    line-height:1.15 !important;

    letter-spacing:0 !important;
}

.stay-booking-agreement-wording strong{
    display:inline !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    color:#20241f !important;

    font-size:12px !important;
    font-weight:700 !important;

    line-height:1.15 !important;

    letter-spacing:0 !important;

    white-space:normal !important;
}

.stay-booking-agreement-wording > span{
    display:inline !important;

    margin-left:6px !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    color:#777d76 !important;

    font-size:10px !important;
    font-weight:500 !important;

    line-height:1.15 !important;

    letter-spacing:0 !important;
}

.stay-booking-terms-view{
    flex:0 0 auto !important;

    min-height:32px !important;

    padding:7px 12px !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size:9px !important;
    font-weight:800 !important;

    line-height:1 !important;

    letter-spacing:.06em !important;
}

@media(max-width:640px){

    .stay-booking-agreement{
        flex-direction:row !important;
        align-items:center !important;

        padding:8px 10px !important;
    }

    .stay-booking-terms-view{
        margin-left:0 !important;
    }

    .stay-booking-agreement-wording > span{
        display:none !important;
    }
}

/* ============================================================
   R11.29.2 INCIDENTAL AUTHORIZATION ENGINE
   ============================================================ */

.stay-incidental-panel{
    margin:14px 0;

    padding:15px 16px;

    border:
        1px solid
        rgba(165,118,54,.26);

    border-radius:14px;

    background:
        rgba(247,238,220,.72);

    text-align:left;
}

.stay-incidental-kicker{
    display:block;

    margin-bottom:5px;

    color:#9a6d2e;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:9px;
    font-weight:800;

    letter-spacing:.14em;
}

.stay-incidental-panel strong{
    display:block;

    color:#20241f;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:15px;
    font-weight:700;

    line-height:1.25;
}

.stay-incidental-panel p{
    margin:6px 0 0;

    color:#6f756e;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:11px;
    line-height:1.45;
}

#stayAuthorizeIncidentals{
    width:100%;

    min-height:42px;

    margin-top:12px;

    padding:10px 16px;

    border:0;
    border-radius:999px;

    background:
        linear-gradient(
            105deg,
            #704083,
            #b88944,
            #287a57
        );

    color:#fff;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:10px;
    font-weight:800;

    letter-spacing:.07em;

    cursor:pointer;
}

#stayAuthorizeIncidentals:disabled{
    opacity:.62;
    cursor:wait;
}

#stayIncidentalError{
    margin-top:8px;

    color:#9a4037;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size:10px;
    line-height:1.4;
}

/* ============================================================
   R11.29.2.1 REVIEW SCREEN FIT + TERMS ROW FIX
   ============================================================ */

/*
 * Keep the review panel compact enough that:
 *
 * safeguard
 * agreement
 * payment button
 *
 * remain visible on a normal desktop viewport.
 */

/* ------------------------------------------------------------
   Guest-detail area
   ------------------------------------------------------------ */

.stay-booking-review-modal input,
.stay-booking-review-modal textarea{
    min-height:42px !important;
}

.stay-booking-review-modal textarea{
    height:52px !important;
    min-height:52px !important;
    max-height:52px !important;
}

.stay-booking-review-modal .stay-review-field,
.stay-booking-review-modal .stay-booking-field{
    margin-bottom:8px !important;
}

.stay-booking-review-modal label{
    margin-bottom:4px !important;
}

/* ------------------------------------------------------------
   Safeguard
   ------------------------------------------------------------ */

.stay-booking-safeguard,
.stay-payment-safeguard,
[data-booking-safeguard]{
    margin-top:10px !important;
    margin-bottom:8px !important;

    padding:11px 14px !important;

    min-height:auto !important;
}

.stay-booking-safeguard p,
.stay-payment-safeguard p,
[data-booking-safeguard] p{
    margin:3px 0 0 !important;

    line-height:1.3 !important;
}

/* ------------------------------------------------------------
   Agreement panel
   ------------------------------------------------------------ */

#stayBookingAgreement.stay-booking-agreement{
    display:flex !important;

    align-items:center !important;
    justify-content:space-between !important;

    width:100% !important;

    min-height:50px !important;
    height:auto !important;

    margin:8px 0 !important;

    padding:9px 12px !important;

    gap:12px !important;

    overflow:visible !important;

    border-radius:13px !important;
}

#stayBookingAgreement .stay-booking-agreement-row{
    display:flex !important;

    flex:1 1 auto !important;

    align-items:center !important;

    min-width:0 !important;

    gap:9px !important;

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

#stayBookingAgreement .stay-booking-agreement-check{
    flex:0 0 20px !important;

    width:20px !important;
    height:20px !important;

    margin:0 !important;
}

/*
 * Critical fix:
 * Use flex + gap instead of inline text/margin behavior.
 * This prevents:
 *
 *   Terms.Required
 *
 * and produces:
 *
 *   Terms.  Required before secure payment.
 */

#stayBookingAgreement .stay-booking-agreement-wording{
    display:flex !important;

    flex:1 1 auto !important;

    flex-direction:row !important;
    flex-wrap:wrap !important;

    align-items:baseline !important;

    column-gap:6px !important;
    row-gap:1px !important;

    min-width:0 !important;

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

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    line-height:1.2 !important;

    letter-spacing:0 !important;
}

#stayBookingAgreement .stay-booking-agreement-wording strong{
    display:block !important;

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

    color:#20241f !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size:12px !important;
    font-weight:700 !important;

    line-height:1.2 !important;

    letter-spacing:0 !important;

    white-space:normal !important;
}

#stayBookingAgreement .stay-booking-agreement-wording > span{
    display:block !important;

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

    color:#7b807a !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size:10px !important;
    font-weight:500 !important;

    line-height:1.2 !important;

    letter-spacing:0 !important;

    white-space:normal !important;
}

#stayBookingAgreement .stay-booking-terms-view{
    flex:0 0 auto !important;

    height:34px !important;
    min-height:34px !important;

    margin:0 !important;

    padding:0 14px !important;

    display:flex !important;

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

    border-radius:999px !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size:9px !important;
    font-weight:800 !important;

    line-height:1 !important;

    letter-spacing:.05em !important;

    white-space:nowrap !important;
}

/* ------------------------------------------------------------
   Payment CTA
   ------------------------------------------------------------ */

.stay-payment-next{
    min-height:48px !important;

    margin-top:7px !important;
    margin-bottom:0 !important;
}

/* ------------------------------------------------------------
   Review right column vertical fit
   ------------------------------------------------------------ */

.stay-booking-review-modal .stay-review-right,
.stay-booking-review-modal .stay-review-payment,
.stay-booking-review-modal .stay-review-details{
    padding-bottom:12px !important;
}

/* ------------------------------------------------------------
   Short desktop viewport
   ------------------------------------------------------------ */

@media(
    min-width:900px
) and (
    max-height:900px
){

    #stayBookingAgreement.stay-booking-agreement{
        min-height:46px !important;

        padding-top:7px !important;
        padding-bottom:7px !important;
    }

    .stay-payment-next{
        min-height:46px !important;
    }

    .stay-booking-review-modal input{
        min-height:40px !important;
        height:40px !important;
    }

    .stay-booking-review-modal textarea{
        height:48px !important;
        min-height:48px !important;
        max-height:48px !important;
    }
}

/* ------------------------------------------------------------
   Mobile
   ------------------------------------------------------------ */

@media(max-width:640px){

    #stayBookingAgreement.stay-booking-agreement{
        align-items:center !important;

        gap:8px !important;

        padding:9px 10px !important;
    }

    #stayBookingAgreement .stay-booking-agreement-wording{
        flex-direction:column !important;

        gap:1px !important;
    }

    #stayBookingAgreement .stay-booking-agreement-wording > span{
        display:none !important;
    }

    #stayBookingAgreement .stay-booking-terms-view{
        height:32px !important;
        min-height:32px !important;

        padding:0 11px !important;
    }
}


/* ============================================================
   R11.29.2.2 REVIEW CTA VISIBILITY FIX
   ============================================================ */

/*
 * Desktop review viewport:
 * reserve enough vertical room for the entire payment CTA.
 */

@media(
    min-width:900px
) and (
    max-height:950px
){

    /* --------------------------------------------------------
       Booking-price summary
       -------------------------------------------------------- */

    .stay-booking-review-modal .stay-review-price-card,
    .stay-booking-review-modal .stay-review-summary-card,
    .stay-booking-review-modal .stay-price-summary,
    .stay-booking-review-modal [data-review-summary]{
        padding-top:15px !important;
        padding-bottom:14px !important;
    }

    .stay-booking-review-modal .stay-review-price-card > *,
    .stay-booking-review-modal .stay-review-summary-card > *,
    .stay-booking-review-modal .stay-price-summary > *{
        margin-top:0 !important;
        margin-bottom:5px !important;
    }

    /* --------------------------------------------------------
       Guest details heading
       -------------------------------------------------------- */

    .stay-booking-review-modal h2,
    .stay-booking-review-modal .stay-review-details h2,
    .stay-booking-review-modal .stay-review-right h2{
        margin-top:8px !important;
        margin-bottom:7px !important;

        line-height:1.05 !important;
    }

    /* --------------------------------------------------------
       Guest form vertical density
       -------------------------------------------------------- */

    .stay-booking-review-modal input{
        height:40px !important;
        min-height:40px !important;

        padding-top:7px !important;
        padding-bottom:7px !important;
    }

    .stay-booking-review-modal textarea{
        height:46px !important;
        min-height:46px !important;
        max-height:46px !important;

        padding-top:8px !important;
        padding-bottom:8px !important;
    }

    .stay-booking-review-modal label{
        margin-top:0 !important;
        margin-bottom:3px !important;

        line-height:1.05 !important;
    }

    .stay-booking-review-modal .stay-review-field,
    .stay-booking-review-modal .stay-booking-field,
    .stay-booking-review-modal .stay-field{
        margin-top:0 !important;
        margin-bottom:6px !important;
    }

    /* --------------------------------------------------------
       Safeguard
       -------------------------------------------------------- */

    .stay-booking-safeguard,
    .stay-payment-safeguard,
    [data-booking-safeguard]{
        min-height:0 !important;

        margin-top:7px !important;
        margin-bottom:7px !important;

        padding:9px 13px !important;
    }

    .stay-booking-safeguard p,
    .stay-payment-safeguard p,
    [data-booking-safeguard] p{
        margin-top:2px !important;
        margin-bottom:0 !important;

        line-height:1.2 !important;
    }

    /* --------------------------------------------------------
       Agreement
       -------------------------------------------------------- */

    #stayBookingAgreement.stay-booking-agreement{
        min-height:46px !important;

        margin-top:6px !important;
        margin-bottom:6px !important;

        padding-top:7px !important;
        padding-bottom:7px !important;
    }

    /* --------------------------------------------------------
       Payment CTA
       -------------------------------------------------------- */

    .stay-payment-next{
        display:flex !important;

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

        width:100% !important;

        min-height:46px !important;
        height:46px !important;

        margin-top:6px !important;
        margin-bottom:10px !important;

        flex:0 0 46px !important;

        line-height:1 !important;
    }

    /* --------------------------------------------------------
       Right-side container
       -------------------------------------------------------- */

    .stay-booking-review-modal .stay-review-right,
    .stay-booking-review-modal .stay-review-payment,
    .stay-booking-review-modal .stay-review-details{
        padding-bottom:8px !important;
    }
}

/*
 * Extra-short laptop/browser viewport.
 */

@media(
    min-width:900px
) and (
    max-height:860px
){

    .stay-booking-review-modal input{
        height:37px !important;
        min-height:37px !important;
    }

    .stay-booking-review-modal textarea{
        height:42px !important;
        min-height:42px !important;
        max-height:42px !important;
    }

    .stay-booking-review-modal h2{
        margin-top:5px !important;
        margin-bottom:5px !important;
    }

    .stay-booking-safeguard,
    .stay-payment-safeguard,
    [data-booking-safeguard]{
        padding-top:7px !important;
        padding-bottom:7px !important;
    }

    #stayBookingAgreement.stay-booking-agreement{
        min-height:43px !important;

        padding-top:6px !important;
        padding-bottom:6px !important;
    }

    .stay-payment-next{
        min-height:44px !important;
        height:44px !important;

        flex-basis:44px !important;
    }
}


/* ============================================================
   R11.29.2.3 FINAL REVIEW BOTTOM CLEARANCE
   ============================================================ */

@media(
    min-width:900px
) and (
    max-height:950px
){

    /*
     * Recover final vertical pixels without changing
     * the now-correct agreement row.
     */

    .stay-booking-review-modal .stay-review-right h2,
    .stay-booking-review-modal .stay-review-details h2{
        margin-top:5px !important;
        margin-bottom:5px !important;
    }

    .stay-booking-review-modal input{
        height:38px !important;
        min-height:38px !important;
    }

    .stay-booking-review-modal textarea{
        height:42px !important;
        min-height:42px !important;
        max-height:42px !important;
    }

    .stay-booking-safeguard,
    .stay-payment-safeguard,
    [data-booking-safeguard]{
        margin-top:6px !important;
        margin-bottom:6px !important;

        padding-top:8px !important;
        padding-bottom:8px !important;
    }

    /*
     * Keep the agreement exactly compact and readable.
     */

    #stayBookingAgreement.stay-booking-agreement{
        margin-top:5px !important;
        margin-bottom:5px !important;
    }

    /*
     * Entire CTA must remain inside viewport with
     * visible rounded bottom edge.
     */

    .stay-payment-next{
        height:42px !important;
        min-height:42px !important;

        flex:0 0 42px !important;

        margin-top:5px !important;
        margin-bottom:18px !important;
    }

    /*
     * Bottom breathing room for payment/security note.
     */

    .stay-review-payment,
    .stay-review-right,
    .stay-review-details{
        padding-bottom:16px !important;
    }
}

@media(
    min-width:900px
) and (
    max-height:860px
){

    .stay-booking-review-modal input{
        height:36px !important;
        min-height:36px !important;
    }

    .stay-booking-review-modal textarea{
        height:40px !important;
        min-height:40px !important;
        max-height:40px !important;
    }

    .stay-payment-next{
        height:40px !important;
        min-height:40px !important;

        flex-basis:40px !important;

        margin-bottom:14px !important;
    }
}


/* ============================================================
   R11.29.2.4 TRUE REVIEW VIEWPORT FIT
   ============================================================ */

@media(
    min-width:900px
) and (
    max-height:960px
){

    /*
     * Guest title
     */

    .stay-booking-review-modal h2{
        margin-top:3px !important;
        margin-bottom:5px !important;

        line-height:1 !important;
    }

    /*
     * Form controls
     */

    .stay-booking-review-modal input{
        height:36px !important;
        min-height:36px !important;

        padding-top:5px !important;
        padding-bottom:5px !important;
    }

    .stay-booking-review-modal textarea,
    .stay-booking-review-modal textarea[
        placeholder*="Arrival time"
    ]{
        height:40px !important;
        min-height:40px !important;
        max-height:40px !important;

        padding-top:6px !important;
        padding-bottom:6px !important;
    }

    .stay-booking-review-modal label{
        margin-bottom:2px !important;

        line-height:1 !important;
    }

    .stay-booking-review-modal .stay-review-field,
    .stay-booking-review-modal .stay-booking-field,
    .stay-booking-review-modal .stay-field{
        margin-bottom:4px !important;
    }

    /*
     * We now tag the ACTUAL safeguard rather than guessing
     * its source class.
     */

    .stay-review-safeguard-fit{
        min-height:0 !important;

        height:auto !important;

        margin-top:4px !important;
        margin-bottom:5px !important;

        padding:7px 13px !important;

        line-height:1.15 !important;
    }

    .stay-review-safeguard-fit > *{
        margin-top:0 !important;
        margin-bottom:2px !important;
    }

    .stay-review-safeguard-fit > *:last-child{
        margin-bottom:0 !important;
    }

    /*
     * Keep the already-correct agreement presentation.
     */

    #stayBookingAgreement.stay-review-agreement-fit{
        min-height:44px !important;

        margin-top:4px !important;
        margin-bottom:4px !important;

        padding-top:6px !important;
        padding-bottom:6px !important;
    }

    /*
     * Entire CTA MUST fit inside viewport.
     */

    .stay-payment-next.stay-review-cta-fit{
        display:flex !important;

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

        width:100% !important;

        height:40px !important;
        min-height:40px !important;

        flex:0 0 40px !important;

        margin-top:4px !important;
        margin-bottom:8px !important;

        line-height:1 !important;
    }

    /*
     * Prevent inherited bottom spacing from consuming the
     * final visible pixels.
     */

    .stay-booking-review-modal .stay-review-right,
    .stay-booking-review-modal .stay-review-payment,
    .stay-booking-review-modal .stay-review-details{
        padding-bottom:6px !important;
        margin-bottom:0 !important;
    }
}

/*
 * Extra-short browser/laptop viewport.
 */

@media(
    min-width:900px
) and (
    max-height:850px
){

    .stay-booking-review-modal input{
        height:34px !important;
        min-height:34px !important;
    }

    .stay-booking-review-modal textarea,
    .stay-booking-review-modal textarea[
        placeholder*="Arrival time"
    ]{
        height:37px !important;
        min-height:37px !important;
        max-height:37px !important;
    }

    .stay-review-safeguard-fit{
        padding-top:6px !important;
        padding-bottom:6px !important;
    }

    #stayBookingAgreement.stay-review-agreement-fit{
        min-height:42px !important;
    }

    .stay-payment-next.stay-review-cta-fit{
        height:38px !important;
        min-height:38px !important;

        flex-basis:38px !important;
    }
}


/* ============================================================
   R11.29.2.6 SMALLER REVIEW CLOSE BUTTON
   ============================================================ */

.stay-booking-review-modal .stay-modal-close,
.stay-booking-review-modal .stay-review-close,
.stay-booking-review-modal .stay-booking-close,
.stay-booking-review-modal button[aria-label="Close"],
.stay-booking-review-modal .modal-close {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    border-radius: 999px !important;
    top: 14px !important;
    right: 14px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
}

.stay-booking-review-modal .stay-modal-close *,
.stay-booking-review-modal .stay-review-close *,
.stay-booking-review-modal .stay-booking-close *,
.stay-booking-review-modal button[aria-label="Close"] *,
.stay-booking-review-modal .modal-close * {
    line-height: 1 !important;
}

.stay-booking-review-modal .stay-modal-close::before,
.stay-booking-review-modal .stay-review-close::before,
.stay-booking-review-modal .stay-booking-close::before,
.stay-booking-review-modal button[aria-label="Close"]::before,
.stay-booking-review-modal .modal-close::before {
    font-size: 18px !important;
}

.stay-booking-review-modal .stay-modal-close,
.stay-booking-review-modal .stay-review-close,
.stay-booking-review-modal .stay-booking-close,
.stay-booking-review-modal button[aria-label="Close"],
.stay-booking-review-modal .modal-close {
    font-size: 18px !important;
}


/* ============================================================
   R11.29.2.7 EXACT REVIEW CLOSE BUTTON
   ============================================================ */

button.stay-exact-review-close{
    width:40px !important;
    height:40px !important;

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

    max-width:40px !important;
    max-height:40px !important;

    padding:0 !important;

    font-size:16px !important;
    line-height:1 !important;

    display:flex !important;

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

    border-radius:999px !important;
}

button.stay-exact-review-close svg{
    width:16px !important;
    height:16px !important;
}


/* ============================================================
   R11.29.2.8 CLOSE BUTTON / PRICE CARD CLEARANCE
   ============================================================ */

button.stay-exact-review-close{
    width:34px !important;
    height:34px !important;

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

    max-width:34px !important;
    max-height:34px !important;

    top:6px !important;
    right:10px !important;

    padding:0 !important;

    font-size:14px !important;
    line-height:1 !important;

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

    border-radius:999px !important;
}

button.stay-exact-review-close svg{
    width:14px !important;
    height:14px !important;
}


/* ============================================================
   R11.29.2.9 TRUE CLOSE CIRCLE FIX
   ============================================================ */

/*
 * Remove any oversized decorative pseudo-circle.
 */

button.stay-exact-review-close::before,
button.stay-exact-review-close::after{
    content:none !important;

    display:none !important;

    width:0 !important;
    height:0 !important;

    background:none !important;

    border:0 !important;
    box-shadow:none !important;

    transform:none !important;
}

/*
 * Actual button becomes the visible circle.
 */

button.stay-exact-review-close{
    position:fixed !important;

    top:10px !important;
    right:12px !important;

    width:34px !important;
    height:34px !important;

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

    max-width:34px !important;
    max-height:34px !important;

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

    overflow:hidden !important;

    transform:none !important;

    border:0 !important;
    border-radius:50% !important;

    background:#e3e0d8 !important;

    box-shadow:none !important;

    color:#626862 !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size:14px !important;
    font-weight:700 !important;

    line-height:34px !important;

    display:flex !important;

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

    z-index:2147483646 !important;
}

/*
 * Remove any oversized child wrapper around icon.
 */

button.stay-exact-review-close > *{
    width:auto !important;
    height:auto !important;

    min-width:0 !important;
    min-height:0 !important;

    max-width:16px !important;
    max-height:16px !important;

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

    background:transparent !important;

    border:0 !important;
    border-radius:0 !important;

    box-shadow:none !important;

    transform:none !important;
}

button.stay-exact-review-close svg{
    width:14px !important;
    height:14px !important;
}

/*
 * If the generated modal places a decorative wrapper
 * directly around the close button, strip its visual styling.
 */

button.stay-exact-review-close.parent-circle-fix{
    background:#e3e0d8 !important;
}


/* ============================================================
   R11.29.2.10 BOOKING SUMMARY HIERARCHY
   ============================================================ */

/*
 * BIGGER breakdown rows.
 */

.stay-summary-hierarchy-card
.stay-summary-detail-row{
    font-size:17px !important;
    line-height:1.35 !important;
}

.stay-summary-hierarchy-card
.stay-summary-detail-row *{
    font-size:inherit !important;
    line-height:inherit !important;
}

.stay-summary-hierarchy-card
.stay-summary-discount-row{
    font-size:18px !important;
    font-weight:800 !important;
}

/*
 * Keep adequate spacing between the enlarged rows.
 */

.stay-summary-hierarchy-card
.stay-summary-detail-row{
    margin-top:3px !important;
    margin-bottom:3px !important;
}

/*
 * SMALLER grand total.
 *
 * The previous amount was visually overpowering the breakdown.
 */

.stay-summary-hierarchy-card
.stay-summary-total-amount{
    font-size:39px !important;
    line-height:1 !important;
    font-weight:400 !important;
}

.stay-summary-hierarchy-card
.stay-summary-total-label{
    font-size:15px !important;
    line-height:1 !important;
}

/* ============================================================
   TRUE 30x30 REVIEW CLOSE CONTROL
   ============================================================ */

/*
 * Hide the original button visually, but leave it in the DOM
 * so its existing close behavior can still be invoked.
 */

.stay-original-review-close-hidden{
    opacity:0 !important;

    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;

    pointer-events:none !important;
}

/*
 * This is the only visible close control.
 */

#stayTrueReviewClose{
    position:fixed !important;

    top:14px !important;
    right:14px !important;

    z-index:2147483647 !important;

    width:30px !important;
    height:30px !important;

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

    max-width:30px !important;
    max-height:30px !important;

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

    display:flex !important;

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

    border:0 !important;
    border-radius:50% !important;

    background:#e1ded6 !important;

    box-shadow:none !important;

    color:#616762 !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size:14px !important;
    font-weight:700 !important;

    line-height:1 !important;

    cursor:pointer !important;
}

#stayTrueReviewClose:hover{
    background:#d7d3ca !important;
}


/* ============================================================
   R11.29.2.11 CANONICAL REVIEW CLOSE CONTROL
   ============================================================ */

/*
 * Neutralize original close button completely.
 */

.stay-original-close-neutralized{
    opacity:0 !important;

    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;

    pointer-events:none !important;
}

/*
 * Neutralize any giant surrounding circle/wrapper.
 */

.stay-old-close-wrapper-neutralized{
    background:transparent !important;
    border-color:transparent !important;
    box-shadow:none !important;
}

.stay-old-close-wrapper-neutralized::before,
.stay-old-close-wrapper-neutralized::after{
    content:none !important;

    display:none !important;

    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
}

/*
 * ONLY visible close button.
 */

#stayCanonicalReviewClose{
    position:fixed !important;

    top:12px !important;
    right:12px !important;

    z-index:2147483647 !important;

    width:32px !important;
    height:32px !important;

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

    max-width:32px !important;
    max-height:32px !important;

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

    border:0 !important;
    border-radius:50% !important;

    background:#e1ded6 !important;

    box-shadow:none !important;

    color:#626862 !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size:15px !important;
    font-weight:700 !important;

    line-height:1 !important;

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

    cursor:pointer !important;
}

#stayCanonicalReviewClose:hover{
    background:#d5d1c7 !important;
}


/* ============================================================
   R11.29.2.12 PRICING DENSITY + VIEWPORT RESTORE
   ============================================================ */

/*
 * Keep the new larger pricing hierarchy, but remove excess
 * vertical space from the black summary card.
 */

.stay-summary-hierarchy-card{
    padding-top:14px !important;
    padding-bottom:12px !important;
}

/*
 * Larger breakdown remains, but line-height becomes tighter.
 */

.stay-summary-hierarchy-card
.stay-summary-detail-row{
    font-size:17px !important;

    line-height:1.12 !important;

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

/*
 * Discount remains visually important.
 */

.stay-summary-hierarchy-card
.stay-summary-discount-row{
    font-size:18px !important;
    font-weight:800 !important;

    line-height:1.12 !important;
}

/*
 * Remove inherited paragraph/div spacing inside the
 * runtime-tagged summary card.
 */

.stay-summary-hierarchy-card p,
.stay-summary-hierarchy-card > div{
    margin-top:0 !important;
    margin-bottom:0 !important;
}

/*
 * Keep the smaller grand total from .10/.11.
 */

.stay-summary-hierarchy-card
.stay-summary-total-amount{
    font-size:38px !important;

    line-height:.95 !important;
}

.stay-summary-hierarchy-card
.stay-summary-total-label{
    line-height:1 !important;
}

/*
 * Short desktop viewport.
 *
 * Recover additional vertical pixels below the summary
 * without making the pricing text small again.
 */

@media(
    min-width:900px
) and (
    max-height:950px
){

    .stay-summary-hierarchy-card{
        padding-top:11px !important;
        padding-bottom:10px !important;
    }

    .stay-summary-hierarchy-card
    .stay-summary-detail-row{
        line-height:1.05 !important;
    }

    /*
     * Compact Guest Details slightly.
     */

    .stay-booking-review-modal h2{
        margin-top:4px !important;
        margin-bottom:4px !important;
    }

    .stay-booking-review-modal input{
        height:35px !important;
        min-height:35px !important;
    }

    .stay-booking-review-modal textarea{
        height:39px !important;
        min-height:39px !important;
        max-height:39px !important;
    }

    .stay-booking-review-modal label{
        margin-bottom:2px !important;
    }

    /*
     * Preserve the safeguard + terms + CTA stack.
     */

    .stay-review-safeguard-fit{
        margin-top:4px !important;
        margin-bottom:4px !important;

        padding-top:6px !important;
        padding-bottom:6px !important;
    }

    #stayBookingAgreement{
        margin-top:4px !important;
        margin-bottom:4px !important;
    }

    .stay-payment-next{
        margin-top:4px !important;
    }
}

/*
 * Extra-short desktop.
 */

@media(
    min-width:900px
) and (
    max-height:850px
){

    .stay-summary-hierarchy-card
    .stay-summary-detail-row{
        font-size:16px !important;
    }

    .stay-summary-hierarchy-card
    .stay-summary-discount-row{
        font-size:17px !important;
    }

    .stay-summary-hierarchy-card
    .stay-summary-total-amount{
        font-size:36px !important;
    }
}


/* ============================================================
   R11.29.2.13 PRICING FONT + SIZE FINALIZATION
   ============================================================ */

/*
 * Same clean font style as the rest of the pricing card.
 */

.stay-summary-hierarchy-card
.stay-summary-top-amount,

.stay-summary-hierarchy-card
.stay-summary-total-amount{

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-style:normal !important;
    font-weight:500 !important;

    letter-spacing:-0.02em !important;
}

/*
 * TOP amount
 * Previously oversized serif.
 */

.stay-summary-hierarchy-card
.stay-summary-top-amount{

    font-size:30px !important;

    line-height:1 !important;
}

/*
 * BOTTOM grand total
 * Still prominent, but no longer giant.
 */

.stay-summary-hierarchy-card
.stay-summary-total-amount{

    font-size:34px !important;

    line-height:1 !important;
}

/*
 * Keep breakdown rows exactly in the stronger hierarchy
 * already established.
 */

.stay-summary-hierarchy-card
.stay-summary-detail-row{

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;
}

/*
 * Final close control:
 * smaller and visually secondary.
 */

#stayCanonicalReviewClose{

    width:26px !important;
    height:26px !important;

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

    max-width:26px !important;
    max-height:26px !important;

    font-size:12px !important;

    top:10px !important;
    right:10px !important;
}

/*
 * Short desktop viewport.
 */

@media(
    min-width:900px
) and (
    max-height:900px
){

    .stay-summary-hierarchy-card
    .stay-summary-top-amount{

        font-size:28px !important;
    }

    .stay-summary-hierarchy-card
    .stay-summary-total-amount{

        font-size:32px !important;
    }
}


/* ============================================================
   R11.29.2.14 SMALLER TOTALS + SMALLER X
   ============================================================ */

/*
 * Use the SAME sans-serif typography already inherited
 * by the Direct Booking pricing card.
 */

.stay-summary-hierarchy-card
.stay-summary-top-amount,

.stay-summary-hierarchy-card
.stay-summary-total-amount{
    font-family:inherit !important;
    font-style:normal !important;
    font-weight:600 !important;
    letter-spacing:-0.01em !important;
}

/*
 * Top-right booking total.
 */

.stay-summary-hierarchy-card
.stay-summary-top-amount{
    font-size:24px !important;
    line-height:1 !important;
}

/*
 * Bottom GRAND TOTAL.
 * Slightly larger than the top value, but no longer dominant.
 */

.stay-summary-hierarchy-card
.stay-summary-total-amount{
    font-size:28px !important;
    line-height:1 !important;
}

/*
 * Final close control.
 */

#stayCanonicalReviewClose{
    width:24px !important;
    height:24px !important;

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

    max-width:24px !important;
    max-height:24px !important;

    top:8px !important;
    right:8px !important;

    padding:0 !important;

    font-size:11px !important;
    font-weight:700 !important;
    line-height:1 !important;
}

/*
 * Extra-short desktop keeps same hierarchy.
 */

@media(
    min-width:900px
) and (
    max-height:850px
){

    .stay-summary-hierarchy-card
    .stay-summary-top-amount{
        font-size:22px !important;
    }

    .stay-summary-hierarchy-card
    .stay-summary-total-amount{
        font-size:26px !important;
    }
}


/* ============================================================
   R11.29.2.16 TOTAL SIZE HARD LOCK
   ============================================================ */

/*
 * TOP booking amount.
 * Lock both wrapper AND anything nested inside it.
 */

.stay-exact-top-total,
.stay-exact-top-total *,
.stay-summary-top-amount,
.stay-summary-top-amount * {
    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size:22px !important;
    font-style:normal !important;
    font-weight:600 !important;

    line-height:1 !important;
    letter-spacing:0 !important;

    white-space:nowrap !important;

    transform:none !important;
}

/*
 * BOTTOM grand total.
 */

.stay-exact-grand-total,
.stay-exact-grand-total *,
.stay-summary-total-amount,
.stay-summary-total-amount * {
    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size:26px !important;
    font-style:normal !important;
    font-weight:600 !important;

    line-height:1 !important;
    letter-spacing:0 !important;

    white-space:nowrap !important;

    transform:none !important;
}

/*
 * Keep TOTAL label untouched.
 */

.stay-summary-total-label,
.stay-summary-total-label * {
    font-size:inherit !important;
}

/* ============================================================
   R11.36F PROPERTY MODAL â€” NO DESKTOP SCROLL
   Applies to ALL StayShreveport property modals
   ============================================================ */

@media (min-width: 761px) {

    .modal-shell {
        width: min(1120px, calc(100vw - 30px)) !important;

        height: min(
            760px,
            calc(100dvh - 30px)
        ) !important;

        max-height: calc(100dvh - 30px) !important;

        grid-template-columns:
            minmax(0, 1.18fr)
            minmax(0, .82fr) !important;

        overflow: hidden !important;
    }

    .modal-media {
        min-height: 0 !important;
        height: 100% !important;
        overflow: hidden !important;
    }

    .modal-photo {
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        background-size: cover !important;
        background-position: center !important;
    }

    .modal-info {
        align-self: stretch !important;

        height: 100% !important;
        max-height: none !important;

        overflow: hidden !important;
        overflow-y: hidden !important;

        padding:
            clamp(26px, 4vh, 46px)
            clamp(28px, 3vw, 44px)
            !important;

        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
    }

    .modal-info h3 {
        margin:
            8px
            0
            4px
            !important;

        font-size:
            clamp(
                34px,
                3vw,
                43px
            )
            !important;

        line-height: .96 !important;
    }

    .modal-subtitle {
        margin: 0 !important;
    }

    .modal-meta {
        margin:
            clamp(12px, 2vh, 18px)
            0
            !important;

        padding:
            9px
            0
            !important;
    }

    .modal-description {
        margin:
            clamp(12px, 1.8vh, 16px)
            0
            0
            !important;

        font-size:
            clamp(
                12px,
                1.15vw,
                14px
            )
            !important;

        line-height:
            1.5
            !important;
    }

    .modal-highlights {
        margin:
            clamp(12px, 1.8vh, 16px)
            0
            clamp(14px, 2vh, 20px)
            !important;

        gap:
            7px
            !important;
    }

    .modal-highlights span {
        min-height:
            38px
            !important;

        padding:
            7px
            9px
            7px
            25px
            !important;

        font-size:
            10px
            !important;

        line-height:
            1.25
            !important;
    }

    .modal-actions {
        flex: 0 0 auto !important;
        margin-top: 0 !important;
    }
}

/*
 * Short desktop / laptop screens.
 * Compress vertically rather than introducing scroll.
 */
@media (
    min-width: 761px
)
and (
    max-height: 760px
) {

    .modal-shell {
        height:
            calc(100dvh - 20px)
            !important;

        max-height:
            calc(100dvh - 20px)
            !important;
    }

    .modal-info {
        padding:
            22px
            30px
            !important;
    }

    .modal-info h3 {
        font-size:
            34px
            !important;
    }

    .modal-meta {
        margin:
            10px
            0
            !important;

        padding:
            7px
            0
            !important;
    }

    .modal-description {
        margin-top:
            10px
            !important;

        font-size:
            12px
            !important;

        line-height:
            1.4
            !important;
    }

    .modal-highlights {
        margin:
            10px
            0
            12px
            !important;

        gap:
            6px
            !important;
    }

    .modal-highlights span {
        min-height:
            34px
            !important;

        padding-top:
            6px
            !important;

        padding-bottom:
            6px
            !important;
    }
}

/*
 * Mobile remains vertically scrollable because forcing an entire
 * two-section property presentation into a phone viewport would
 * make the content unusably small.
 */
@media (max-width: 760px) {

    .modal-shell {
        overflow-y: auto !important;
        max-height:
            calc(100dvh - 20px)
            !important;
    }

    .modal-info {
        overflow: visible !important;
        max-height: none !important;
    }
}


/* ============================================================
   R11.36 REVIEW â€” SINGLE CANONICAL CLOSE CONTROL
   booking-review.js owns the only visible close button.
   Legacy synthetic close is permanently suppressed.
   ============================================================ */

#stayCanonicalReviewClose {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/*
 * The real Review close control remains visible.
 */
#stayBookingReview .stay-booking-review-close {
    display: flex !important;
    visibility: visible !important;
    pointer-events: auto !important;
}


/* ============================================================
   R11.36 FINAL REVIEW CLOSE AUTHORITY
   ONE AND ONLY ONE REVIEW CLOSE BUTTON
   ============================================================ */

/* Kill obsolete synthetic global close button */
#stayCanonicalReviewClose {
    display:none !important;
    visibility:hidden !important;
    opacity:0 !important;
    pointer-events:none !important;
}

/* Undo legacy neutralization if old runtime touched the button */
#stayBookingReview .stay-booking-review-close,
#stayBookingReview .stay-booking-review-close.stay-original-close-neutralized {
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;

    position:absolute !important;

    top:14px !important;
    right:14px !important;

    left:auto !important;

    width:42px !important;
    height:42px !important;

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

    max-width:42px !important;
    max-height:42px !important;

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

    border:0 !important;
    border-radius:50% !important;

    background:#e3e0d8 !important;
    color:#626862 !important;

    font-size:20px !important;
    line-height:1 !important;

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

    z-index:100 !important;
}

/* Never allow legacy wrapper styling to create another circle */
.stay-old-close-wrapper-neutralized {
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
}


/* ============================================================
   R11.36 REVIEW CLOSE â€” FINAL POSITION
   One close control, clear of pricing card
   ============================================================ */

#stayBookingReview .stay-booking-review-panel {
    position: relative !important;

    /*
     * Reserve top-right breathing room for X.
     */
    padding-top: 28px !important;
    padding-right: 34px !important;
}

#stayBookingReview .stay-booking-review-close {
    position: absolute !important;

    top: 10px !important;
    right: 10px !important;

    left: auto !important;
    bottom: auto !important;

    width: 32px !important;
    height: 32px !important;

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

    max-width: 32px !important;
    max-height: 32px !important;

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

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

    border: 0 !important;
    border-radius: 50% !important;

    background: #e3e0d8 !important;
    color: #626862 !important;

    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;

    z-index: 50 !important;

    box-shadow: none !important;
    transform: none !important;
}

/*
 * Give the right column enough top clearance that the
 * price card never overlaps the close button.
 */
#stayBookingReview .stay-booking-review-right {
    padding-top: 38px !important;
}

/*
 * Short desktop viewports: keep the X compact but still clear.
 */
@media (min-width: 761px) and (max-height: 800px) {

    #stayBookingReview .stay-booking-review-panel {
        padding-top: 24px !important;
        padding-right: 30px !important;
    }

    #stayBookingReview .stay-booking-review-close {
        top: 7px !important;
        right: 8px !important;

        width: 28px !important;
        height: 28px !important;

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

        max-width: 28px !important;
        max-height: 28px !important;

        font-size: 14px !important;
    }

    #stayBookingReview .stay-booking-review-right {
        padding-top: 32px !important;
    }
}


/* ============================================================
   R11.36 REVIEW â€” FINAL VIEWPORT FIT
   Keep one X, keep full CTA visible, no clipping
   ============================================================ */

@media (min-width: 761px) {

    #stayBookingReview {
        padding: 6px !important;
        align-items: center !important;
        overflow: hidden !important;
    }

    #stayBookingReview .stay-booking-review-panel {
        width: calc(100vw - 12px) !important;
        max-width: 1500px !important;

        height: auto !important;
        max-height: calc(100dvh - 12px) !important;

        padding:
            18px
            26px
            14px
            !important;

        overflow: hidden !important;
    }

    /*
     * Do NOT waste 38px above the entire right column.
     * Only a small safe area is needed for the X.
     */
    #stayBookingReview .stay-booking-review-right {
        padding-top: 20px !important;
    }

    #stayBookingReview .stay-booking-review-close {
        top: 7px !important;
        right: 9px !important;

        width: 28px !important;
        height: 28px !important;

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

        max-width: 28px !important;
        max-height: 28px !important;

        font-size: 14px !important;
    }

    /*
     * Pricing card
     */
    #stayBookingReview .stay-review-price {
        margin-bottom: 7px !important;
        padding-top: 10px !important;
        padding-bottom: 9px !important;
    }

    /*
     * Guest Details
     */
    #stayBookingReview .stay-guest-form h3 {
        margin:
            0
            0
            4px
            !important;
    }

    #stayBookingReview .stay-guest-form label {
        margin-bottom: 4px !important;
    }

    #stayBookingReview .stay-guest-form input {
        height: 34px !important;
        min-height: 34px !important;
    }

    #stayBookingReview .stay-guest-form textarea {
        height: 40px !important;
        min-height: 40px !important;
        max-height: 40px !important;

        resize: none !important;
    }

    /*
     * Remove empty error-region height when no error exists.
     */
    #stayBookingReview #guestFormError:empty {
        min-height: 0 !important;
        height: 0 !important;
        margin: 0 !important;
    }

    /*
     * Agreement row
     */
    #stayBookingReview #stayBookingAgreement {
        min-height: 44px !important;

        margin-top: 5px !important;
        margin-bottom: 5px !important;

        padding-top: 6px !important;
        padding-bottom: 6px !important;
    }

    /*
     * CTA MUST remain completely inside cream panel.
     */
    #stayBookingReview .stay-payment-next {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        height: 40px !important;
        min-height: 40px !important;

        margin:
            0
            0
            4px
            !important;

        flex: 0 0 40px !important;
    }

    #stayBookingReview .stay-payment-note {
        margin-top: 2px !important;
        margin-bottom: 0 !important;
    }
}

/* ------------------------------------------------------------
   SHORT LAPTOP / BROWSER HEIGHT
   ------------------------------------------------------------ */

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

    #stayBookingReview .stay-booking-review-panel {
        padding:
            12px
            22px
            10px
            !important;
    }

    #stayBookingReview .stay-booking-review-right {
        padding-top: 15px !important;
    }

    #stayBookingReview .stay-review-price {
        margin-bottom: 5px !important;
        padding-top: 8px !important;
        padding-bottom: 7px !important;
    }

    #stayBookingReview .stay-guest-form input {
        height: 31px !important;
        min-height: 31px !important;
    }

    #stayBookingReview .stay-guest-form textarea {
        height: 34px !important;
        min-height: 34px !important;
        max-height: 34px !important;
    }

    #stayBookingReview #stayBookingAgreement {
        min-height: 40px !important;
        margin-top: 3px !important;
        margin-bottom: 4px !important;
    }

    #stayBookingReview .stay-payment-next {
        height: 38px !important;
        min-height: 38px !important;
        flex-basis: 38px !important;
    }
}


/* ============================================================
   FINAL HERO BOTTOM BAR FIX
   Clean ticker + clear separation from availability bar
   ============================================================ */

@media (min-width:761px) {

    .hero {
        overflow: hidden !important;
    }

    /*
     * Clean black ticker band.
     */
    .mardi-ribbon {
        bottom: 96px !important;

        height: 42px !important;
        min-height: 42px !important;

        padding: 0 !important;

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

        background: rgba(12,15,12,.88) !important;

        border-top:
            1px solid
            rgba(255,255,255,.10) !important;

        border-bottom:
            1px solid
            rgba(255,255,255,.10) !important;

        backdrop-filter: blur(12px) !important;
        -webkit-backdrop-filter: blur(12px) !important;

        overflow: hidden !important;

        /*
         * Fade the extreme edges so partial moving words
         * do not look chopped.
         */
        -webkit-mask-image:
            linear-gradient(
                90deg,
                transparent 0,
                #000 3.5%,
                #000 96.5%,
                transparent 100%
            ) !important;

        mask-image:
            linear-gradient(
                90deg,
                transparent 0,
                #000 3.5%,
                #000 96.5%,
                transparent 100%
            ) !important;
    }

    .ribbon-track {
        height: 42px !important;

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

        gap: 0 !important;
    }

    .ribbon-set {
        height: 42px !important;

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

        gap: 34px !important;

        padding-right: 34px !important;
    }

    .ribbon-set span {
        font-size: 10px !important;
        line-height: 1 !important;

        letter-spacing: .15em !important;

        white-space: nowrap !important;
    }

    .ribbon-set i {
        width: 7px !important;
        height: 7px !important;

        flex: 0 0 7px !important;
    }

    /*
     * Booking bar gets its own clear space below ticker.
     */
    .availability {
        bottom: 12px !important;

        min-height: 70px !important;

        z-index: 10 !important;
    }
}

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

@media (max-width:760px) {

    .mardi-ribbon {
        bottom: 218px !important;

        height: 38px !important;
        min-height: 38px !important;

        padding: 0 !important;

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

        background: rgba(12,15,12,.90) !important;

        -webkit-mask-image:
            linear-gradient(
                90deg,
                transparent,
                #000 6%,
                #000 94%,
                transparent
            ) !important;

        mask-image:
            linear-gradient(
                90deg,
                transparent,
                #000 6%,
                #000 94%,
                transparent
            ) !important;
    }

    .ribbon-track,
    .ribbon-set {
        height: 38px !important;
    }

    .ribbon-set span {
        font-size: 9px !important;
    }
}


/* ============================================================
   R11.36 HERO BOTTOM STACK â€” BOOKING BAR FULLY VISIBLE
   FINAL AUTHORITY
   ============================================================ */

@media (min-width:761px) {

    /*
     * Bottom order:
     *
     * [ BOOKING BAR ]
     *       gap
     * [ MARDI GRAS TICKER ]
     * hero bottom
     */

    .mardi-ribbon {
        bottom: 0 !important;

        height: 42px !important;
        min-height: 42px !important;

        z-index: 8 !important;
    }

    .availability {
        bottom: 54px !important;

        width: min(1110px, 89vw) !important;

        min-height: 70px !important;
        height: 70px !important;

        z-index: 12 !important;

        overflow: hidden !important;

        transform: translateX(-50%) !important;
    }

    /*
     * Make sure hero reserves enough physical room
     * for both bars.
     */
    .hero {
        min-height: 650px !important;
        height: 650px !important;
        padding-bottom: 0 !important;
        overflow: hidden !important;
    }

    /*
     * Keep hero text clear of the booking stack.
     */
    .hero-content {
        min-height: 500px !important;
        height: 500px !important;
        padding-bottom: 110px !important;
    }

    /*
     * Stop the float animation from vertically moving
     * the booking bar and causing partial clipping.
     */
    .availability {
        animation: none !important;
    }

    .availability.availability-attention {
        animation: none !important;
    }
}

/* ============================================================
   SHORT DESKTOP / LAPTOP VIEWPORTS
   ============================================================ */

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

    .hero {
        min-height: 610px !important;
        height: 610px !important;
    }

    .hero-content {
        min-height: 465px !important;
        height: 465px !important;
        padding-bottom: 100px !important;
    }

    .availability {
        bottom: 52px !important;

        height: 68px !important;
        min-height: 68px !important;
    }

    .mardi-ribbon {
        bottom: 0 !important;
        height: 40px !important;
        min-height: 40px !important;
    }
}

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

@media (max-width:760px) {

    .mardi-ribbon {
        bottom: 0 !important;
    }

    .availability {
        bottom: 48px !important;

        width: calc(100% - 40px) !important;

        height: auto !important;
        min-height: 0 !important;

        animation: none !important;
    }
}


/* ============================================================
   R11.36 HERO VIEWPORT FIT
   Keep BOTH booking bar and ticker fully visible
   ============================================================ */

@media (min-width:761px) {

    /*
     * Header is ~76px.
     * Hero must consume only the remaining visible viewport.
     */
    .hero {
        height: min(650px, calc(100dvh - 76px)) !important;
        min-height: 560px !important;
        max-height: 650px !important;

        overflow: hidden !important;
    }

    /*
     * Booking bar remains immediately above ticker.
     */
    .availability {
        bottom: 52px !important;

        height: 68px !important;
        min-height: 68px !important;

        z-index: 12 !important;

        animation: none !important;
    }

    /*
     * Full ticker stays INSIDE hero.
     */
    .mardi-ribbon {
        bottom: 0 !important;

        height: 40px !important;
        min-height: 40px !important;

        z-index: 11 !important;

        overflow: hidden !important;
    }

    .ribbon-track,
    .ribbon-set {
        height: 40px !important;
    }

    /*
     * Let the copy area adapt to shorter screens.
     */
    .hero-content {
        height: calc(100% - 120px) !important;
        min-height: 0 !important;

        padding-top: 18px !important;
        padding-bottom: 92px !important;

        align-items: center !important;
    }
}

/* ============================================================
   SHORT LAPTOP / BROWSER VIEWPORT
   This matches the height in your screenshot.
   ============================================================ */

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

    .hero {
        height: calc(100dvh - 76px) !important;
        min-height: 540px !important;
    }

    .hero-content {
        height: calc(100% - 112px) !important;

        padding-top: 8px !important;
        padding-bottom: 82px !important;
    }

    .hero h1 {
        margin-top: 14px !important;
        margin-bottom: 12px !important;
    }

    .hero-lede {
        line-height: 1.5 !important;
    }

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

    .hero-proof {
        margin-top: 28px !important;
        padding-top: 12px !important;
    }

    .availability {
        bottom: 48px !important;
        height: 66px !important;
        min-height: 66px !important;
    }

    .mardi-ribbon {
        height: 38px !important;
        min-height: 38px !important;
    }

    .ribbon-track,
    .ribbon-set {
        height: 38px !important;
    }
}


/* ============================================================
   R11.36D CALENDAR UNAVAILABLE NIGHT UX
   ============================================================ */

.stay-calendar-day.unavailable,
.stay-calendar-day.checkout-unavailable{
    color:
        #b9bcb7 !important;

    background:
        rgba(
            120,
            125,
            120,
            .055
        ) !important;

    opacity:
        .42 !important;

    cursor:
        not-allowed !important;

    text-decoration:
        line-through;

    text-decoration-thickness:
        1px;

    text-decoration-color:
        rgba(
            75,
            80,
            75,
            .48
        );

    box-shadow:
        none !important;

    transform:
        none !important;
}

.stay-calendar-day.unavailable:hover,
.stay-calendar-day.checkout-unavailable:hover{
    transform:
        none !important;

    background:
        rgba(
            120,
            125,
            120,
            .055
        ) !important;
}

.stay-calendar-day.unavailable::before{
    content:"";

    position:absolute;

    inset:
        18%;

    border-radius:
        50%;

    border:
        1px solid
        rgba(
            70,
            75,
            70,
            .10
        );

    pointer-events:none;
}

/*
 * Inline availability notice.
 * Replaces the unnecessary second zero-result modal.
 */
.stay-calendar-availability-notice{
    margin:
        14px
        0
        4px;

    padding:
        11px
        14px;

    border:
        1px solid
        rgba(
            161,
            93,
            74,
            .18
        );

    border-radius:
        12px;

    background:
        rgba(
            161,
            93,
            74,
            .065
        );

    color:
        #8d4d40;

    font-size:
        12px;

    line-height:
        1.45;

    text-align:
        center;
}

.stay-calendar-availability-notice[hidden]{
    display:none !important;
}

/*
 * Prevent selection during authoritative inventory refresh.
 */
html.stay-calendar-loading
.stay-calendar-months{
    opacity:
        .58;

    pointer-events:
        none;

    transition:
        opacity
        .18s ease;
}

/*
 * Past dates remain visually distinct from inventory blocks.
 */
.stay-calendar-day.disabled:not(.unavailable){
    text-decoration:
        none;
}

/* ============================================================
   R11.36D ZERO RESULT INLINE NOTICE
   ============================================================ */

.stay-calendar-availability-notice {
    margin: 12px 0 2px;
    padding: 10px 14px;

    border:
        1px solid
        rgba(151, 84, 68, .18);

    border-radius: 12px;

    background:
        rgba(151, 84, 68, .065);

    color: #8f4e42;

    font-size: 12px;
    line-height: 1.45;
    text-align: center;
}

.stay-calendar-availability-notice[hidden] {
    display: none !important;
}


/* === R11.36E BOOKING BAR / GINA POSITION PATCH START === */

/* Core layout variables */
:root {
  --stay2050-ticker-height: 44px;
  --stay2050-bookingbar-height: 92px;
  --stay2050-bookingbar-bottom: 18px;
  --stay2050-gina-bottom: 150px;
  --stay2050-gina-right: 18px;
}

/* Ticker remains visible */
.stay2050Ticker,
.stay2050-ticker,
[data-stay-ticker] {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: var(--stay2050-ticker-height) !important;
  z-index: 140 !important;
}

/* Booking bar sits above ticker and is shorter */
.stay2050BookingBar,
.stay2050-booking-bar,
[data-booking-bar],
.stay2050StickyBookingBar {
  position: fixed !important;
  left: 44px !important;
  right: 44px !important;
  bottom: calc(var(--stay2050-ticker-height) + var(--stay2050-bookingbar-bottom)) !important;
  min-height: var(--stay2050-bookingbar-height) !important;
  height: var(--stay2050-bookingbar-height) !important;
  max-height: var(--stay2050-bookingbar-height) !important;
  border-radius: 28px !important;
  overflow: hidden !important;
  z-index: 220 !important;
}

/* Compact the inside of the booking bar */
.stay2050BookingBar .bookingField,
.stay2050-booking-bar .bookingField,
[data-booking-bar] .bookingField,
.stay2050StickyBookingBar .bookingField,
.stay2050BookingBar .bookingCell,
.stay2050-booking-bar .bookingCell,
[data-booking-bar] .bookingCell,
.stay2050StickyBookingBar .bookingCell {
  min-height: 92px !important;
  padding-top: 14px !important;
  padding-bottom: 14px !important;
}

.stay2050BookingBar .bookingLabel,
.stay2050-booking-bar .bookingLabel,
[data-booking-bar] .bookingLabel,
.stay2050StickyBookingBar .bookingLabel {
  font-size: 14px !important;
  letter-spacing: 0.12em !important;
  margin-bottom: 6px !important;
}

.stay2050BookingBar .bookingValue,
.stay2050-booking-bar .bookingValue,
[data-booking-bar] .bookingValue,
.stay2050StickyBookingBar .bookingValue {
  font-size: 18px !important;
  line-height: 1.15 !important;
}

.stay2050BookingBar .bookingSubmit,
.stay2050-booking-bar .bookingSubmit,
[data-booking-bar] .bookingSubmit,
.stay2050StickyBookingBar .bookingSubmit,
.stay2050BookingBar .bookingAction,
.stay2050-booking-bar .bookingAction,
[data-booking-bar] .bookingAction,
.stay2050StickyBookingBar .bookingAction {
  min-height: 92px !important;
  font-size: 18px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Ask GINA pill lifted so it does not cover booking bar or ticker */
.askGinaPill,
.stay2050AskGina,
.aiConciergePill,
[data-ask-gina],
[data-ai-concierge] {
  position: fixed !important;
  right: var(--stay2050-gina-right) !important;
  bottom: var(--stay2050-gina-bottom) !important;
  z-index: 260 !important;
}

/* Safe mobile/tablet adjustments */
@media (max-width: 1200px) {
  :root {
    --stay2050-bookingbar-height: 86px;
    --stay2050-gina-bottom: 142px;
  }

  .stay2050BookingBar,
  .stay2050-booking-bar,
  [data-booking-bar],
  .stay2050StickyBookingBar {
    left: 20px !important;
    right: 20px !important;
  }
}

@media (max-width: 768px) {
  :root {
    --stay2050-ticker-height: 40px;
    --stay2050-bookingbar-height: 82px;
    --stay2050-gina-bottom: 136px;
  }

  .stay2050BookingBar,
  .stay2050-booking-bar,
  [data-booking-bar],
  .stay2050StickyBookingBar {
    left: 12px !important;
    right: 12px !important;
    bottom: calc(var(--stay2050-ticker-height) + 12px) !important;
    border-radius: 22px !important;
  }

  .askGinaPill,
  .stay2050AskGina,
  .aiConciergePill,
  [data-ask-gina],
  [data-ai-concierge] {
    right: 12px !important;
  }
}

/* === R11.36E BOOKING BAR / GINA POSITION PATCH END === */


/* === R11.36F ULTRA-SHORT BOOKING BAR START === */

:root {
  --stay2050-ticker-height: 40px;
  --stay2050-bookingbar-height: 72px;
  --stay2050-bookingbar-bottom: 10px;
  --stay2050-gina-bottom: 132px;
  --stay2050-gina-right: 16px;
}

/* ticker */
.stay2050Ticker,
.stay2050-ticker,
[data-stay-ticker] {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: var(--stay2050-ticker-height) !important;
  min-height: var(--stay2050-ticker-height) !important;
  max-height: var(--stay2050-ticker-height) !important;
  z-index: 140 !important;
}

/* booking bar */
.stay2050BookingBar,
.stay2050-booking-bar,
[data-booking-bar],
.stay2050StickyBookingBar {
  position: fixed !important;
  left: 36px !important;
  right: 36px !important;
  bottom: calc(var(--stay2050-ticker-height) + var(--stay2050-bookingbar-bottom)) !important;
  height: var(--stay2050-bookingbar-height) !important;
  min-height: var(--stay2050-bookingbar-height) !important;
  max-height: var(--stay2050-bookingbar-height) !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  z-index: 220 !important;
}

/* inner cells */
.stay2050BookingBar .bookingField,
.stay2050-booking-bar .bookingField,
[data-booking-bar] .bookingField,
.stay2050StickyBookingBar .bookingField,
.stay2050BookingBar .bookingCell,
.stay2050-booking-bar .bookingCell,
[data-booking-bar] .bookingCell,
.stay2050StickyBookingBar .bookingCell {
  min-height: 72px !important;
  max-height: 72px !important;
  padding: 8px 18px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
}

/* labels */
.stay2050BookingBar .bookingLabel,
.stay2050-booking-bar .bookingLabel,
[data-booking-bar] .bookingLabel,
.stay2050StickyBookingBar .bookingLabel {
  font-size: 11px !important;
  line-height: 1 !important;
  letter-spacing: 0.14em !important;
  margin: 0 0 4px 0 !important;
}

/* values */
.stay2050BookingBar .bookingValue,
.stay2050-booking-bar .bookingValue,
[data-booking-bar] .bookingValue,
.stay2050StickyBookingBar .bookingValue {
  font-size: 16px !important;
  line-height: 1.1 !important;
  margin: 0 !important;
}

/* CTA section */
.stay2050BookingBar .bookingSubmit,
.stay2050-booking-bar .bookingSubmit,
[data-booking-bar] .bookingSubmit,
.stay2050StickyBookingBar .bookingSubmit,
.stay2050BookingBar .bookingAction,
.stay2050-booking-bar .bookingAction,
[data-booking-bar] .bookingAction,
.stay2050StickyBookingBar .bookingAction {
  min-height: 72px !important;
  max-height: 72px !important;
  font-size: 16px !important;
  padding: 0 22px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Ask GINA higher */
.askGinaPill,
.stay2050AskGina,
.aiConciergePill,
[data-ask-gina],
[data-ai-concierge] {
  position: fixed !important;
  right: var(--stay2050-gina-right) !important;
  bottom: var(--stay2050-gina-bottom) !important;
  z-index: 260 !important;
}

/* mobile */
@media (max-width: 768px) {
  :root {
    --stay2050-ticker-height: 38px;
    --stay2050-bookingbar-height: 66px;
    --stay2050-bookingbar-bottom: 8px;
    --stay2050-gina-bottom: 122px;
  }

  .stay2050BookingBar,
  .stay2050-booking-bar,
  [data-booking-bar],
  .stay2050StickyBookingBar {
    left: 10px !important;
    right: 10px !important;
    border-radius: 18px !important;
  }

  .stay2050BookingBar .bookingField,
  .stay2050-booking-bar .bookingField,
  [data-booking-bar] .bookingField,
  .stay2050StickyBookingBar .bookingField,
  .stay2050BookingBar .bookingCell,
  .stay2050-booking-bar .bookingCell,
  [data-booking-bar] .bookingCell,
  .stay2050StickyBookingBar .bookingCell {
    min-height: 66px !important;
    max-height: 66px !important;
    padding: 6px 12px !important;
  }

  .stay2050BookingBar .bookingLabel,
  .stay2050-booking-bar .bookingLabel,
  [data-booking-bar] .bookingLabel,
  .stay2050StickyBookingBar .bookingLabel {
    font-size: 10px !important;
  }

  .stay2050BookingBar .bookingValue,
  .stay2050-booking-bar .bookingValue,
  [data-booking-bar] .bookingValue,
  .stay2050StickyBookingBar .bookingValue {
    font-size: 14px !important;
  }

  .stay2050BookingBar .bookingSubmit,
  .stay2050-booking-bar .bookingSubmit,
  [data-booking-bar] .bookingSubmit,
  .stay2050StickyBookingBar .bookingSubmit,
  .stay2050BookingBar .bookingAction,
  .stay2050-booking-bar .bookingAction,
  [data-booking-bar] .bookingAction,
  .stay2050StickyBookingBar .bookingAction {
    min-height: 66px !important;
    max-height: 66px !important;
    font-size: 14px !important;
  }
}

/* === R11.36F ULTRA-SHORT BOOKING BAR END === */


/* === R11.36G REAL AVAILABILITY BAR FIX START === */

/*
 * ACTUAL LIVE SELECTORS:
 * booking bar = .availability
 * ticker      = .mardi-ribbon
 * GINA        = .gina
 */

@media(min-width:761px){

    /* MUCH SHORTER BOOKING BAR */
    .availability{
        width:min(1110px,89vw) !important;

        min-height:52px !important;
        height:52px !important;

        bottom:12px !important;

        grid-template-columns:
            1fr
            1fr
            1fr
            .72fr
            180px !important;

        border-radius:16px !important;
    }

    .availability label{
        min-height:52px !important;

        padding:
            7px
            16px !important;

        display:flex !important;
        flex-direction:column !important;
        justify-content:center !important;
    }

    .availability small{
        margin-bottom:3px !important;

        font-size:7px !important;
        line-height:1 !important;
    }

    .availability strong{
        font-size:12px !important;
        line-height:1.05 !important;
    }

    .availability input,
    .availability select{
        font-size:12px !important;
        line-height:1.05 !important;
    }

    .availability > button{
        min-height:52px !important;
        height:52px !important;

        padding:
            0
            18px !important;

        font-size:10px !important;
    }

    /*
     * Lift ticker just enough above the bar.
     */
    .mardi-ribbon{
        bottom:70px !important;

        padding:
            7px
            0 !important;
    }

    /*
     * Lift GINA clearly above both booking bar + ticker.
     */
    .gina{
        right:20px !important;
        bottom:116px !important;

        z-index:50 !important;
    }
}

/* === R11.36G REAL AVAILABILITY BAR FIX END === */

