/* ============================================================
   IQ CONNECT — RESORTS SIGNATURE V1
   Luxury Resort Experience OS
============================================================ */

.rs{
    --ink:#102b31;
    --deep:#032b31;
    --deep2:#06434a;
    --aqua:#29c7c1;
    --aqua2:#72e5db;
    --gold:#d7b06c;
    --gold2:#f1d79d;
    --cream:#f8f5ed;
    --sand:#eee6d6;
    --white:#fff;
    --muted:#708285;
    --line:#dde8e6;

    position:relative;
    overflow:hidden;
    color:var(--ink);
    background:#fff;
}

.rs *,
.rs *::before,
.rs *::after{
    box-sizing:border-box;
}

.rs a{
    color:inherit;
}

.rs button,
.rs a{
    font:inherit;
}

.rs button{
    cursor:pointer;
}

.rs-container{
    width:min(1320px,calc(100% - 44px));
    margin-inline:auto;
}


/* ============================================================
   HERO
============================================================ */

.rs-hero{
    position:relative;
    min-height:1000px;
    overflow:hidden;
    color:#fff;
    background:#03262c;
}

.rs-hero-image{
    position:absolute;
    inset:0;

    background:
        url("https://images.unsplash.com/photo-1582719478250-c89cae4dc85b?auto=format&fit=crop&w=2200&q=90")
        center/cover no-repeat;

    transform:scale(1.04);
}

.rs-hero-overlay{
    position:absolute;
    inset:0;

    background:
        radial-gradient(
            circle at 77% 28%,
            rgba(61,218,205,.15),
            transparent 27%
        ),
        linear-gradient(
            90deg,
            rgba(2,28,32,.97) 0%,
            rgba(3,42,47,.91) 38%,
            rgba(4,48,53,.62) 68%,
            rgba(3,39,43,.35) 100%
        ),
        linear-gradient(
            180deg,
            rgba(2,25,29,.08),
            rgba(2,25,29,.16) 68%,
            #03282e 100%
        );
}

.rs-hero::after{
    content:"";

    position:absolute;
    inset:0;

    opacity:.12;

    background-image:
        linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
        linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);

    background-size:68px 68px;

    mask-image:
        linear-gradient(to bottom,#000,transparent 88%);
}


/* ============================================================
   BREADCRUMB
============================================================ */

.rs-breadcrumb{
    position:relative;
    z-index:5;

    display:flex;
    align-items:center;
    gap:9px;

    padding-top:24px;

    color:rgba(255,255,255,.43);
    font-size:11px;
}

.rs-breadcrumb a{
    text-decoration:none;
    transition:color .2s ease;
}

.rs-breadcrumb a:hover{
    color:#fff;
}

.rs-breadcrumb strong{
    color:rgba(255,255,255,.82);
}


/* ============================================================
   HERO GRID
============================================================ */

.rs-hero-grid{
    position:relative;
    z-index:4;

    display:grid;
    grid-template-columns:.86fr 1.14fr;
    gap:72px;
    align-items:center;

    padding:82px 0 150px;
}

.rs-eyebrow{
    width:max-content;

    display:flex;
    align-items:center;
    gap:10px;

    color:#76e5da;

    font-size:9px;
    font-weight:900;
    letter-spacing:.17em;
}

.rs-eyebrow span{
    width:38px;
    height:2px;

    background:
        linear-gradient(
            90deg,
            var(--gold),
            var(--aqua)
        );
}

.rs-hero-copy h1{
    max-width:690px;

    margin:23px 0 22px;

    font-size:clamp(57px,5.5vw,86px);
    line-height:.91;
    letter-spacing:-.06em;
}

.rs-hero-copy h1 > span{
    display:block;
}

.rs-hero-copy h1 strong{
    display:block;

    margin-top:8px;

    color:transparent;

    background:
        linear-gradient(
            90deg,
            #f3dca8,
            #d7ae69 36%,
            #73e3d8 82%
        );

    -webkit-background-clip:text;
    background-clip:text;
}

.rs-hero-copy > p{
    max-width:610px;

    margin:0;

    color:rgba(255,255,255,.63);

    font-size:14px;
    line-height:1.8;
}


/* ============================================================
   BUTTONS
============================================================ */

.rs-actions{
    display:flex;
    flex-wrap:wrap;
    gap:11px;

    margin-top:31px;
}

.rs-primary,
.rs-secondary{
    min-height:55px;

    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:11px;

    padding:0 25px;

    border-radius:11px;

    text-decoration:none;

    font-size:10px;
    font-weight:900;

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease,
        background .25s ease;
}

.rs-primary{
    position:relative;
    overflow:hidden;

    color:#092e31;

    background:
        linear-gradient(
            110deg,
            #f0d69b,
            #d6ad69 43%,
            #73ddd3
        );

    box-shadow:
        0 20px 50px rgba(203,168,100,.22);
}

.rs-primary::before{
    content:"";

    position:absolute;
    top:-20%;
    left:-90px;

    width:55px;
    height:140%;

    transform:skewX(-22deg);

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.48),
            transparent
        );

    transition:left .7s ease;
}

.rs-primary:hover{
    transform:translateY(-3px);

    box-shadow:
        0 28px 65px rgba(203,168,100,.31);
}

.rs-primary:hover::before{
    left:130%;
}

.rs-primary span{
    font-size:17px;
}

.rs-secondary{
    color:#fff;

    border:1px solid rgba(255,255,255,.15);

    background:rgba(3,47,52,.45);

    backdrop-filter:blur(15px);
}

.rs-secondary:hover{
    transform:translateY(-3px);

    border-color:rgba(111,224,214,.34);
    background:rgba(7,68,73,.56);
}


/* ============================================================
   HERO PROOF
============================================================ */

.rs-hero-proof{
    display:flex;
    align-items:center;
    gap:12px;

    margin-top:42px;
}

.rs-hero-proof > div{
    min-width:85px;
}

.rs-hero-proof strong,
.rs-hero-proof span{
    display:block;
}

.rs-hero-proof strong{
    color:#f0d49a;

    font-size:7px;
    letter-spacing:.09em;
}

.rs-hero-proof span{
    margin-top:3px;

    color:rgba(255,255,255,.4);
    font-size:5px;
}

.rs-hero-proof > i{
    width:1px;
    height:30px;

    background:rgba(255,255,255,.12);
}


/* ============================================================
   CONCIERGE
============================================================ */

.rs-concierge{
    position:relative;

    padding:14px;

    border:1px solid rgba(116,229,219,.15);
    border-radius:24px;

    background:
        linear-gradient(
            145deg,
            rgba(4,42,47,.92),
            rgba(4,60,64,.78)
        );

    backdrop-filter:blur(22px);

    box-shadow:
        0 65px 140px rgba(0,0,0,.43),
        0 0 100px rgba(53,211,198,.07);
}

.rs-concierge-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;

    padding:6px 7px 17px;
}

.rs-concierge-top > div:first-child{
    display:flex;
    align-items:center;
    gap:10px;
}

.rs-concierge-top > div:first-child > span{
    width:39px;
    height:39px;

    display:grid;
    place-items:center;

    border-radius:10px;

    color:#0a3134;

    background:
        linear-gradient(
            135deg,
            #f1d89d,
            #d5ad68,
            #6fded4
        );

    font-size:10px;
    font-weight:900;
}

.rs-concierge-top small,
.rs-concierge-top strong{
    display:block;
}

.rs-concierge-top small{
    color:rgba(255,255,255,.37);

    font-size:5px;
    letter-spacing:.1em;
}

.rs-concierge-top strong{
    margin-top:2px;
    font-size:9px;
}

.rs-live{
    display:flex;
    align-items:center;
    gap:6px;

    color:#76e4d7;

    font-size:5px;
    font-weight:900;
}

.rs-live i{
    width:6px;
    height:6px;

    border-radius:50%;
    background:#65dfae;

    box-shadow:
        0 0 0 5px rgba(101,223,174,.07);
}


/* ============================================================
   BOOKING CARD
============================================================ */

.rs-booking-card{
    overflow:hidden;

    padding:21px;

    border-radius:17px;

    color:#153337;

    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.98),
            rgba(246,250,248,.96)
        );

    box-shadow:
        0 30px 80px rgba(0,0,0,.19);
}

.rs-booking-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:12px;
}

.rs-booking-head small,
.rs-booking-head strong{
    display:block;
}

.rs-booking-head small{
    color:#b08748;

    font-size:5px;
    font-weight:900;
    letter-spacing:.1em;
}

.rs-booking-head strong{
    margin-top:4px;
    font-size:18px;
}

.rs-booking-head > span{
    padding:6px 9px;

    border-radius:20px;

    color:#5b7779;
    background:#edf4f2;

    font-size:5px;
    font-weight:900;
}


/* ============================================================
   STAY FIELDS
============================================================ */

.rs-stay-fields{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;

    margin-top:17px;
}

.rs-stay-fields button{
    min-height:67px;

    padding:12px;

    border:1px solid #dce7e4;
    border-radius:10px;

    color:#17373a;
    background:#fff;

    text-align:left;

    transition:
        transform .22s ease,
        border-color .22s ease,
        box-shadow .22s ease;
}

.rs-stay-fields button:hover{
    transform:translateY(-2px);

    border-color:#9ddbd4;

    box-shadow:
        0 10px 25px rgba(24,97,96,.08);
}

.rs-stay-fields small,
.rs-stay-fields strong{
    display:block;
}

.rs-stay-fields small{
    color:#899b9b;

    font-size:5px;
    font-weight:900;
}

.rs-stay-fields strong{
    margin-top:7px;
    font-size:9px;
}

.rs-stay-fields strong span{
    margin:0 4px;
    color:#b38b4c;
}


/* ============================================================
   PACKAGE LIST
============================================================ */

.rs-package-title{
    margin-top:18px;
}

.rs-package-title small{
    color:#789092;

    font-size:5px;
    font-weight:900;
    letter-spacing:.1em;
}

.rs-package-list{
    display:grid;
    gap:7px;

    margin-top:8px;
}

.rs-package-list button{
    width:100%;

    display:grid;
    grid-template-columns:68px 1fr auto;
    gap:11px;
    align-items:center;

    min-height:78px;

    padding:7px;

    border:1px solid #e0e8e6;
    border-radius:11px;

    color:#183639;
    background:#fff;

    text-align:left;

    transition:
        transform .22s ease,
        border-color .22s ease,
        background .22s ease,
        box-shadow .22s ease;
}

.rs-package-list button:hover,
.rs-package-list button.active{
    transform:translateX(4px);

    border-color:#8bd5cd;

    background:#f4fbfa;

    box-shadow:
        0 10px 25px rgba(23,111,106,.07);
}

.rs-package-image{
    width:68px;
    height:61px;

    display:block;

    border-radius:8px;

    background-position:center;
    background-size:cover;
}

.rs-package-image.escape{
    background-image:
        url("https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=600&q=85");
}

.rs-package-image.wellness{
    background-image:
        url("https://images.unsplash.com/photo-1540555700478-4be289fbecef?auto=format&fit=crop&w=600&q=85");
}

.rs-package-image.family{
    background-image:
        url("https://images.unsplash.com/photo-1540541338287-41700207dee6?auto=format&fit=crop&w=600&q=85");
}

.rs-package-list small,
.rs-package-list strong,
.rs-package-list p{
    display:block;
}

.rs-package-list small{
    color:#b1884a;

    font-size:4px;
    font-weight:900;
}

.rs-package-list strong{
    margin-top:3px;
    font-size:9px;
}

.rs-package-list p{
    margin:3px 0 0;

    color:#8a9a9b;
    font-size:5px;
}

.rs-package-list button > b{
    width:22px;
    height:22px;

    display:grid;
    place-items:center;

    border:1px solid #dce7e4;
    border-radius:50%;

    color:transparent;

    font-size:8px;
}

.rs-package-list button.active > b{
    color:#fff;
    border-color:#2dbeb6;
    background:#2dbeb6;
}


/* ============================================================
   SELECTED PACKAGE
============================================================ */

.rs-selected-package{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;

    margin-top:15px;
    padding-top:15px;

    border-top:1px solid #e2e9e7;
}

.rs-selected-package small,
.rs-selected-package strong,
.rs-selected-package span{
    display:block;
}

.rs-selected-package small{
    color:#9a7b48;

    font-size:4px;
    font-weight:900;
}

.rs-selected-package strong{
    margin-top:3px;
    font-size:10px;
}

.rs-selected-package > div > span{
    max-width:300px;

    margin-top:3px;

    color:#829294;
    font-size:5px;
    line-height:1.45;
}

.rs-selected-package button{
    min-height:40px;

    display:flex;
    align-items:center;
    gap:8px;

    padding:0 14px;

    border:0;
    border-radius:8px;

    color:#fff;

    background:
        linear-gradient(
            110deg,
            #0c8f8a,
            #25bdb5
        );

    font-size:6px;
    font-weight:900;
}


/* ============================================================
   FLOATING CARDS
============================================================ */

.rs-floating-card{
    position:absolute;
    z-index:7;

    min-width:190px;

    padding:13px;

    border:1px solid rgba(255,255,255,.13);
    border-radius:11px;

    color:#fff;

    background:
        linear-gradient(
            145deg,
            rgba(3,35,40,.97),
            rgba(5,67,70,.95)
        );

    box-shadow:
        0 24px 55px rgba(0,0,0,.29);

    backdrop-filter:blur(15px);
}

.rs-floating-card small,
.rs-floating-card strong,
.rs-floating-card span{
    display:block;
}

.rs-floating-card small{
    color:#e0bd7c;

    font-size:5px;
    font-weight:900;
}

.rs-floating-card strong{
    margin-top:4px;
    font-size:9px;
}

.rs-floating-card span{
    margin-top:3px;

    color:rgba(255,255,255,.4);
    font-size:5px;
}

.rs-floating-one{
    right:-38px;
    top:150px;
}

.rs-floating-two{
    left:-42px;
    bottom:35px;
}


/* ============================================================
   STRIP
============================================================ */

.rs-strip{
    position:relative;
    z-index:7;

    margin-top:-48px;
}

.rs-strip-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);

    overflow:hidden;

    border:1px solid #dce8e5;
    border-radius:18px;

    background:#fff;

    box-shadow:
        0 30px 80px rgba(18,64,67,.13);
}

.rs-strip article{
    position:relative;

    min-height:110px;

    display:flex;
    align-items:center;
    gap:13px;

    padding:20px;

    border-right:1px solid #e3ece9;

    transition:background .25s ease;
}

.rs-strip article:last-child{
    border-right:0;
}

.rs-strip article::after{
    content:"";

    position:absolute;
    left:0;
    bottom:0;

    width:0;
    height:3px;

    background:
        linear-gradient(
            90deg,
            var(--gold),
            var(--aqua)
        );

    transition:width .35s ease;
}

.rs-strip article:hover{
    background:#f8fcfb;
}

.rs-strip article:hover::after{
    width:100%;
}

.rs-strip article > span{
    color:#b78d4e;

    font-size:22px;
    font-weight:900;
}

.rs-strip strong,
.rs-strip small{
    display:block;
}

.rs-strip strong{
    font-size:11px;
}

.rs-strip small{
    margin-top:4px;

    color:#879798;
    font-size:7px;
}


/* ============================================================
   HEADINGS
============================================================ */

.rs-heading{
    max-width:850px;

    margin:0 auto 58px;

    text-align:center;
}

.rs-heading > span{
    color:#a97e3e;

    font-size:8px;
    font-weight:900;
    letter-spacing:.17em;
}

.rs-heading h2{
    margin:12px 0 0;

    font-size:clamp(42px,4.4vw,65px);
    line-height:1;
    letter-spacing:-.052em;
}

.rs-heading h2 strong{
    display:block;

    color:transparent;

    background:
        linear-gradient(
            90deg,
            #b58b4d,
            #1baaa5
        );

    -webkit-background-clip:text;
    background-clip:text;
}

.rs-heading p{
    max-width:680px;

    margin:17px auto 0;

    color:#758587;

    font-size:13px;
    line-height:1.75;
}

.rs-heading-left{
    max-width:760px;

    margin-left:0;
    text-align:left;
}

.rs-heading-light > span{
    color:#e2bf7c;
}

.rs-heading-light h2{
    color:#fff;
}

.rs-heading-light p{
    color:rgba(255,255,255,.48);
}


/* ============================================================
   JOURNEY
============================================================ */

.rs-journey{
    padding:145px 0 130px;

    background:
        radial-gradient(
            circle at 20% 30%,
            rgba(38,190,181,.06),
            transparent 28%
        ),
        #fff;
}

.rs-journey-stage{
    display:grid;
    grid-template-columns:1.45fr .55fr;

    min-height:600px;

    overflow:hidden;

    border:1px solid #dce8e5;
    border-radius:24px;

    background:#f5f8f6;

    box-shadow:
        0 35px 85px rgba(17,68,70,.1);
}

.rs-journey-photo{
    position:relative;

    min-height:600px;

    background:
        linear-gradient(
            180deg,
            transparent 42%,
            rgba(2,33,36,.85)
        ),
        url("https://images.unsplash.com/photo-1564501049412-61c2a3083791?auto=format&fit=crop&w=1600&q=90")
        center/cover no-repeat;
}

.rs-photo-caption{
    position:absolute;
    left:38px;
    right:38px;
    bottom:38px;

    max-width:590px;

    color:#fff;
}

.rs-photo-caption small{
    color:#f0cf8f;

    font-size:7px;
    font-weight:900;
    letter-spacing:.12em;
}

.rs-photo-caption h3{
    margin:9px 0 8px;

    font-size:38px;
    letter-spacing:-.04em;
}

.rs-photo-caption p{
    margin:0;

    color:rgba(255,255,255,.63);

    font-size:11px;
    line-height:1.7;
}


/* ============================================================
   JOURNEY NAV
============================================================ */

.rs-journey-nav{
    display:flex;
    flex-direction:column;

    padding:20px;

    background:
        linear-gradient(
            180deg,
            #f9fbfa,
            #eff5f2
        );
}

.rs-journey-nav button{
    flex:1;

    display:grid;
    grid-template-columns:auto 1fr;
    gap:12px;
    align-items:center;

    padding:16px;

    border:0;
    border-bottom:1px solid #dfe8e5;

    color:#17373a;
    background:transparent;

    text-align:left;

    transition:
        transform .25s ease,
        background .25s ease,
        box-shadow .25s ease;
}

.rs-journey-nav button:last-child{
    border-bottom:0;
}

.rs-journey-nav button:hover,
.rs-journey-nav button.active{
    transform:translateX(-8px);

    border-radius:11px;

    background:#fff;

    box-shadow:
        0 14px 35px rgba(19,75,75,.08);
}

.rs-journey-nav button > span{
    width:38px;
    height:38px;

    display:grid;
    place-items:center;

    border-radius:50%;

    color:#a37a3d;
    background:#f4ead7;

    font-size:6px;
    font-weight:900;
}

.rs-journey-nav button.active > span{
    color:#fff;

    background:
        linear-gradient(
            135deg,
            #b98f4f,
            #2bb7af
        );
}

.rs-journey-nav strong,
.rs-journey-nav small{
    display:block;
}

.rs-journey-nav strong{
    font-size:10px;
}

.rs-journey-nav small{
    margin-top:3px;

    color:#879798;
    font-size:6px;
}


/* ============================================================
   EXPERIENCES
============================================================ */

.rs-experiences{
    padding:130px 0;

    background:
        linear-gradient(
            180deg,
            #f8f5ed,
            #f4f8f5
        );
}

.rs-experience-grid{
    display:grid;
    grid-template-columns:1.3fr .7fr .7fr;
    gap:14px;
}

.rs-exp-card{
    position:relative;

    min-height:500px;

    overflow:hidden;

    border-radius:20px;

    background:#17383a;

    box-shadow:
        0 25px 65px rgba(18,67,68,.12);
}

.rs-exp-photo{
    position:absolute;
    inset:0;

    background-position:center;
    background-size:cover;

    transition:transform .7s ease;
}

.rs-exp-card:hover .rs-exp-photo{
    transform:scale(1.055);
}

.rs-exp-photo::after{
    content:"";

    position:absolute;
    inset:0;

    background:
        linear-gradient(
            180deg,
            rgba(2,28,31,.03),
            rgba(2,28,31,.82) 80%
        );
}

.rs-exp-photo.dining{
    background-image:
        url("https://images.unsplash.com/photo-1414235077428-338989a2e8c0?auto=format&fit=crop&w=1400&q=90");
}

.rs-exp-photo.wellness{
    background-image:
        url("https://images.unsplash.com/photo-1540555700478-4be289fbecef?auto=format&fit=crop&w=1100&q=90");
}

.rs-exp-photo.family{
    background-image:
        url("https://images.unsplash.com/photo-1540541338287-41700207dee6?auto=format&fit=crop&w=1100&q=90");
}

.rs-exp-content{
    position:absolute;
    z-index:3;

    left:24px;
    right:24px;
    bottom:25px;

    color:#fff;
}

.rs-exp-content small{
    color:#e8c789;

    font-size:6px;
    font-weight:900;
    letter-spacing:.1em;
}

.rs-exp-content h3{
    margin:8px 0 8px;

    font-size:25px;
    letter-spacing:-.035em;
}

.rs-exp-content p{
    max-width:430px;

    margin:0;

    color:rgba(255,255,255,.58);

    font-size:9px;
    line-height:1.65;
}

.rs-exp-content > span{
    display:inline-block;

    margin-top:15px;

    color:#7ae2d8;

    font-size:8px;
    font-weight:900;
}


/* ============================================================
   RESORT CONTROL CENTER
============================================================ */

.rs-control{
    padding:135px 0;

    color:#fff;

    background:
        radial-gradient(
            circle at 15% 15%,
            rgba(211,171,101,.12),
            transparent 27%
        ),
        radial-gradient(
            circle at 86% 45%,
            rgba(43,200,191,.12),
            transparent 28%
        ),
        linear-gradient(
            145deg,
            #02252a,
            #043a40 55%,
            #075259
        );
}

.rs-dashboard{
    overflow:hidden;

    border:1px solid rgba(119,228,217,.13);
    border-radius:22px;

    background:#f3f7f5;

    box-shadow:
        0 40px 100px rgba(0,0,0,.25);
}

.rs-dashboard-top{
    min-height:74px;

    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;

    padding:0 22px;

    background:
        linear-gradient(
            90deg,
            #03282e,
            #075158
        );
}

.rs-dashboard-top > div:first-child{
    display:flex;
    align-items:center;
    gap:11px;
}

.rs-dashboard-top > div:first-child > span{
    width:42px;
    height:42px;

    display:grid;
    place-items:center;

    border-radius:11px;

    color:#173639;

    background:
        linear-gradient(
            135deg,
            #f0d394,
            #60d8cf
        );

    font-size:10px;
    font-weight:900;
}

.rs-dashboard-top small,
.rs-dashboard-top strong{
    display:block;
}

.rs-dashboard-top small{
    color:rgba(255,255,255,.4);

    font-size:5px;
    letter-spacing:.1em;
}

.rs-dashboard-top strong{
    margin-top:3px;
    font-size:10px;
}

.rs-dashboard-live{
    display:flex;
    align-items:center;
    gap:7px;

    color:#72e2d5;

    font-size:6px;
    font-weight:900;
}

.rs-dashboard-live i{
    width:7px;
    height:7px;

    border-radius:50%;
    background:#5edda9;

    box-shadow:
        0 0 0 6px rgba(94,221,169,.07);
}

.rs-dashboard-body{
    display:grid;
    grid-template-columns:180px 1fr;

    color:#173639;
}

.rs-dashboard-body aside{
    padding:16px 10px;

    background:
        linear-gradient(
            180deg,
            #052d32,
            #06434a
        );
}

.rs-dashboard-body aside button{
    width:100%;

    padding:12px;

    border:1px solid transparent;
    border-radius:8px;

    color:rgba(255,255,255,.48);
    background:transparent;

    text-align:left;

    font-size:7px;
    font-weight:800;

    transition:
        color .2s ease,
        background .2s ease,
        border-color .2s ease;
}

.rs-dashboard-body aside button:hover,
.rs-dashboard-body aside button.active{
    color:#fff;

    border-color:rgba(111,224,213,.12);

    background:
        linear-gradient(
            90deg,
            rgba(43,194,185,.14),
            rgba(214,173,105,.05)
        );
}

.rs-dashboard-body main{
    padding:18px;
}


/* ============================================================
   KPIS
============================================================ */

.rs-kpis{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:8px;
}

.rs-kpis article{
    min-height:105px;

    padding:14px;

    border:1px solid #dce7e4;
    border-radius:10px;

    background:#fff;
}

.rs-kpis small,
.rs-kpis strong,
.rs-kpis span{
    display:block;
}

.rs-kpis small{
    color:#8a9b9b;

    font-size:5px;
    font-weight:900;
}

.rs-kpis strong{
    margin-top:7px;

    color:#17373a;
    font-size:21px;
}

.rs-kpis span{
    margin-top:4px;

    color:#9aa7a7;
    font-size:5px;
}

.rs-kpis article.highlight{
    border-color:transparent;

    background:
        linear-gradient(
            135deg,
            #e8f8f5,
            #f8eedb
        );
}


/* ============================================================
   DASHBOARD GRID
============================================================ */

.rs-dashboard-grid{
    display:grid;
    grid-template-columns:1.4fr .6fr;
    gap:8px;

    margin-top:8px;
}

.rs-demand,
.rs-signal,
.rs-package-performance{
    padding:14px;

    border:1px solid #dce7e4;
    border-radius:10px;

    background:#fff;
}

.rs-panel-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:10px;
}

.rs-panel-head small,
.rs-panel-head strong{
    display:block;
}

.rs-panel-head small{
    color:#a27b3f;

    font-size:5px;
    font-weight:900;
}

.rs-panel-head strong{
    margin-top:3px;
    font-size:9px;
}

.rs-panel-head > span{
    padding:5px 7px;

    border-radius:5px;

    color:#7e9090;
    background:#eff4f2;

    font-size:4px;
}


/* ============================================================
   DEMAND CHART
============================================================ */

.rs-demand-chart{
    height:160px;

    display:flex;
    align-items:flex-end;
    gap:12px;

    padding:20px 12px 0;

    border-bottom:1px solid #dce7e4;
}

.rs-demand-chart > div{
    position:relative;

    flex:1;
    height:100%;
}

.rs-demand-chart i{
    position:absolute;
    left:15%;
    right:15%;
    bottom:0;

    height:var(--rs-bar);

    border-radius:5px 5px 0 0;

    background:
        linear-gradient(
            180deg,
            #68ddd2,
            #179e9b
        );

    box-shadow:
        0 -8px 20px rgba(34,185,177,.08);
}

.rs-chart-labels{
    display:flex;
    justify-content:space-around;

    padding-top:7px;

    color:#9aa6a6;
    font-size:4px;
}


/* ============================================================
   SIGNAL
============================================================ */

.rs-signal{
    position:relative;
    overflow:hidden;

    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(48,200,190,.13),
            transparent 35%
        ),
        linear-gradient(
            145deg,
            #f9fbfa,
            #edf6f3
        );
}

.rs-signal-score{
    width:105px;
    height:105px;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    margin:20px auto 12px;

    border:1px solid #b8dfda;
    border-radius:50%;

    background:#fff;

    box-shadow:
        0 0 0 10px rgba(43,190,181,.045);
}

.rs-signal-score span{
    color:#148f8b;

    font-size:27px;
    font-weight:900;
}

.rs-signal-score small{
    margin-top:2px;

    color:#a07a41;
    font-size:4px;
    font-weight:900;
}

.rs-signal > p{
    color:#788989;

    font-size:6px;
    line-height:1.55;
    text-align:center;
}

.rs-signal > button{
    width:100%;
    min-height:34px;

    margin-top:9px;

    border:0;
    border-radius:7px;

    color:#fff;
    background:#159e99;

    font-size:5px;
    font-weight:900;
}


/* ============================================================
   PACKAGE PERFORMANCE
============================================================ */

.rs-package-performance{
    margin-top:8px;
}

.rs-package-row{
    display:grid;
    grid-template-columns:1.3fr .35fr 1fr .5fr;
    gap:10px;
    align-items:center;

    min-height:58px;

    border-bottom:1px solid #edf2f0;
}

.rs-package-row:last-child{
    border-bottom:0;
}

.rs-package-row > div:first-child{
    display:flex;
    align-items:center;
    gap:8px;
}

.rs-package-row > div:first-child > b{
    width:28px;
    height:28px;

    display:grid;
    place-items:center;

    border-radius:7px;

    color:#a37b40;
    background:#f6ecd9;

    font-size:5px;
}

.rs-package-row strong,
.rs-package-row small{
    display:block;
}

.rs-package-row > div:first-child strong{
    font-size:6px;
}

.rs-package-row > div:first-child small{
    margin-top:2px;

    color:#98a5a5;
    font-size:4px;
}

.rs-package-row > strong{
    font-size:7px;
}

.rs-package-row > div:nth-child(3){
    height:5px;

    overflow:hidden;

    border-radius:10px;
    background:#e9efed;
}

.rs-package-row > div:nth-child(3) i{
    display:block;
    height:100%;

    border-radius:inherit;

    background:
        linear-gradient(
            90deg,
            #c89d5b,
            #2ab9b1
        );
}

.rs-package-row > span{
    color:#218e89;
    font-size:5px;
}


/* ============================================================
   CHALLENGES
============================================================ */

.rs-challenges{
    padding:130px 0;

    background:#fff;
}

.rs-challenge-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:14px;
}

.rs-challenge-grid article{
    position:relative;

    min-height:330px;

    padding:30px;

    overflow:hidden;

    border:1px solid #dfe9e6;
    border-radius:18px;

    background:
        linear-gradient(
            145deg,
            #fff,
            #f6faf8
        );

    transition:
        transform .3s ease,
        border-color .3s ease,
        box-shadow .3s ease;
}

.rs-challenge-grid article:hover{
    transform:translateY(-8px);

    border-color:#addbd5;

    box-shadow:
        0 28px 65px rgba(18,76,76,.09);
}

.rs-challenge-grid article::after{
    content:"";

    position:absolute;
    right:-75px;
    bottom:-75px;

    width:180px;
    height:180px;

    border-radius:50%;

    background:
        radial-gradient(
            circle,
            rgba(45,190,181,.09),
            transparent 68%
        );
}

.rs-challenge-grid article > span{
    color:#e6ddd0;

    font-size:48px;
    font-weight:900;
}

.rs-challenge-grid article > small{
    display:block;

    margin-top:35px;

    color:#a27b40;

    font-size:7px;
    font-weight:900;
    letter-spacing:.13em;
}

.rs-challenge-grid h3{
    max-width:330px;

    margin:9px 0 10px;

    font-size:25px;
    line-height:1.08;
}

.rs-challenge-grid p{
    max-width:340px;

    margin:0;

    color:#788889;

    font-size:10px;
    line-height:1.7;
}


/* ============================================================
   PLATFORM
============================================================ */

.rs-platform{
    padding:130px 0;

    background:
        linear-gradient(
            180deg,
            #f7f4ec,
            #f2f8f5
        );
}

.rs-product-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:13px;
}

.rs-product{
    position:relative;

    min-height:350px;

    display:block;
    overflow:hidden;

    padding:27px;

    border:1px solid #dce7e4;
    border-radius:18px;

    color:#173639;
    background:#fff;

    text-decoration:none;

    transition:
        transform .3s ease,
        border-color .3s ease,
        box-shadow .3s ease;
}

.rs-product:hover{
    transform:translateY(-8px);

    border-color:#a9d9d3;

    box-shadow:
        0 28px 65px rgba(17,74,75,.11);
}

.rs-product > small{
    color:#a17a40;

    font-size:6px;
    font-weight:900;
    letter-spacing:.1em;
}

.rs-product > span{
    width:52px;
    height:52px;

    display:grid;
    place-items:center;

    margin-top:22px;

    border-radius:13px;

    color:#9b753b;
    background:#f5ead5;

    font-size:8px;
    font-weight:900;
}

.rs-product h3{
    margin:18px 0 10px;

    font-size:21px;
}

.rs-product p{
    margin:0;

    color:#788889;

    font-size:10px;
    line-height:1.68;
}

.rs-product > b{
    position:absolute;
    left:27px;
    bottom:27px;

    color:#188f8b;

    font-size:8px;
}

.rs-product.featured,
.rs-product.reputation{
    color:#fff;
    border-color:transparent;

    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(224,185,112,.19),
            transparent 35%
        ),
        linear-gradient(
            145deg,
            #032b31,
            #075158
        );
}

.rs-product.reputation{
    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(92,225,214,.18),
            transparent 35%
        ),
        linear-gradient(
            145deg,
            #073438,
            #116762
        );
}

.rs-product.featured > small,
.rs-product.reputation > small{
    color:#e7c889;
}

.rs-product.featured > span,
.rs-product.reputation > span{
    color:#153639;

    background:
        linear-gradient(
            135deg,
            #f0d496,
            #69ddd3
        );
}

.rs-product.featured p,
.rs-product.reputation p{
    color:rgba(255,255,255,.5);
}

.rs-product.featured > b,
.rs-product.reputation > b{
    color:#78e2d7;
}


/* ============================================================
   FINAL CTA
============================================================ */

.rs-final{
    position:relative;

    min-height:650px;

    display:flex;
    align-items:center;

    overflow:hidden;

    color:#fff;
    background:#03262b;
}

.rs-final-image{
    position:absolute;
    inset:0;

    background:
        url("https://images.unsplash.com/photo-1571896349842-33c89424de2d?auto=format&fit=crop&w=2200&q=90")
        center/cover no-repeat;
}

.rs-final-overlay{
    position:absolute;
    inset:0;

    background:
        linear-gradient(
            90deg,
            rgba(2,29,33,.97) 0%,
            rgba(3,45,49,.9) 48%,
            rgba(3,45,49,.35) 100%
        );
}

.rs-final .rs-container{
    position:relative;
    z-index:3;
}

.rs-final-copy{
    max-width:760px;
}

.rs-final-copy > span{
    color:#e6c584;

    font-size:8px;
    font-weight:900;
    letter-spacing:.16em;
}

.rs-final-copy h2{
    margin:13px 0 19px;

    font-size:clamp(50px,5vw,77px);
    line-height:.96;
    letter-spacing:-.055em;
}

.rs-final-copy h2 strong{
    display:block;
    color:#74dfd4;
}

.rs-final-copy p{
    max-width:600px;

    margin:0;

    color:rgba(255,255,255,.57);

    font-size:13px;
    line-height:1.75;
}

.rs-final-copy > div{
    display:flex;
    flex-wrap:wrap;
    gap:10px;

    margin-top:31px;
}


/* ============================================================
   TOAST
============================================================ */

.rs-toast{
    position:fixed;
    z-index:99999;

    right:24px;
    bottom:24px;

    max-width:340px;

    padding:14px 17px;

    border:1px solid rgba(113,225,214,.16);
    border-radius:11px;

    color:#fff;

    background:
        linear-gradient(
            145deg,
            #032b31,
            #075158
        );

    box-shadow:
        0 22px 60px rgba(0,0,0,.3);

    font-size:10px;
    font-weight:800;
}


/* ============================================================
   RESPONSIVE
============================================================ */

@media(max-width:1200px){

    .rs-hero-grid{
        grid-template-columns:1fr;
    }

    .rs-hero-copy{
        max-width:820px;
    }

    .rs-concierge{
        max-width:900px;
    }

    .rs-experience-grid{
        grid-template-columns:1.2fr .8fr;
    }

    .rs-exp-card:last-child{
        grid-column:1 / -1;
        min-height:430px;
    }

    .rs-product-grid{
        grid-template-columns:1fr 1fr;
    }

}


@media(max-width:960px){

    .rs-hero{
        min-height:auto;
    }

    .rs-hero-grid{
        padding:65px 0 125px;
    }

    .rs-floating-card{
        display:none;
    }

    .rs-strip{
        margin-top:0;
    }

    .rs-strip-grid{
        grid-template-columns:1fr 1fr;
        border-radius:0;
    }

    .rs-journey-stage{
        grid-template-columns:1fr;
    }

    .rs-journey-nav{
        display:grid;
        grid-template-columns:1fr 1fr;
    }

    .rs-journey-nav button:hover,
    .rs-journey-nav button.active{
        transform:translateY(-3px);
    }

    .rs-dashboard-body{
        grid-template-columns:1fr;
    }

    .rs-dashboard-body aside{
        display:flex;
        overflow-x:auto;
    }

    .rs-dashboard-body aside button{
        width:auto;
        min-width:115px;
    }

}


@media(max-width:720px){

    .rs-container{
        width:min(100% - 26px,1320px);
    }

    .rs-hero-copy h1{
        font-size:44px;
    }

    .rs-hero-copy > p{
        font-size:12px;
    }

    .rs-actions{
        display:grid;
    }

    .rs-primary,
    .rs-secondary{
        width:100%;
    }

    .rs-hero-proof{
        display:grid;
        grid-template-columns:1fr 1fr;
    }

    .rs-hero-proof > i{
        display:none;
    }

    .rs-stay-fields{
        grid-template-columns:1fr;
    }

    .rs-selected-package{
        display:block;
    }

    .rs-selected-package button{
        width:100%;
        justify-content:center;
        margin-top:12px;
    }

    .rs-strip-grid{
        grid-template-columns:1fr;
    }

    .rs-strip article{
        border-right:0;
        border-bottom:1px solid #e3ece9;
    }

    .rs-journey{
        padding:95px 0;
    }

    .rs-journey-photo{
        min-height:500px;
    }

    .rs-photo-caption{
        left:22px;
        right:22px;
        bottom:25px;
    }

    .rs-photo-caption h3{
        font-size:30px;
    }

    .rs-journey-nav{
        grid-template-columns:1fr;
    }

    .rs-experiences{
        padding:95px 0;
    }

    .rs-experience-grid{
        grid-template-columns:1fr;
    }

    .rs-exp-card,
    .rs-exp-card:last-child{
        grid-column:auto;
        min-height:450px;
    }

    .rs-control{
        padding:95px 0;
    }

    .rs-kpis{
        grid-template-columns:1fr 1fr;
    }

    .rs-dashboard-grid{
        grid-template-columns:1fr;
    }

    .rs-package-row{
        grid-template-columns:1fr .4fr;
        padding:10px 0;
    }

    .rs-package-row > div:nth-child(3){
        grid-column:1 / -1;
    }

    .rs-challenge-grid{
        grid-template-columns:1fr;
    }

    .rs-product-grid{
        grid-template-columns:1fr;
    }

    .rs-heading h2{
        font-size:37px;
    }

    .rs-final{
        min-height:580px;
    }

    .rs-final-copy h2{
        font-size:44px;
    }

}


@media(max-width:480px){

    .rs-breadcrumb{
        font-size:9px;
    }

    .rs-eyebrow{
        font-size:7px;
    }

    .rs-hero-copy h1{
        font-size:38px;
    }

    .rs-package-list button{
        grid-template-columns:56px 1fr auto;
    }

    .rs-package-image{
        width:56px;
        height:55px;
    }

    .rs-concierge{
        padding:9px;
    }

    .rs-booking-card{
        padding:15px;
    }

    .rs-kpis{
        grid-template-columns:1fr;
    }

    .rs-dashboard-top{
        padding:12px;
    }

    .rs-dashboard-live{
        display:none;
    }

    .rs-dashboard-body main{
        padding:10px;
    }

    .rs-demand-chart{
        gap:5px;
    }

}


/* ============================================================
   REDUCED MOTION
============================================================ */

@media(prefers-reduced-motion:reduce){

    .rs *,
    .rs *::before,
    .rs *::after{
        animation:none !important;
        transition:none !important;
        scroll-behavior:auto !important;
    }

}