:root {
    --sb-text:#293c45;
    --sb-muted:#667c86;
    --sb-line:#dfe6e9;
    --sb-bg:#f5f7f8;
    --sb-card:#ffffff;
    --sb-dark:#17333f;
    --sb-accent:#2e718c;
    --sb-soft:#eaf2f5;
    --sb-star:#c79320;

    /*
     * ResortSentry readable-type standard:
     * normal readable text never below ~11pt.
     */
    --sb-body:16px;
    --sb-small:15px;
}


* {
    box-sizing:border-box;
}


html {
    scroll-behavior:smooth;
}


body {
    margin:0;

    background:
        var(--sb-bg);

    color:
        var(--sb-text);

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif;

    font-size:
        var(--sb-body);

    line-height:1.55;
}


a {
    color:inherit;
}


img {
    max-width:100%;
}


.sb-shell {
    width:min(
        1180px,
        calc(100% - 32px)
    );

    margin:0 auto;
}


.sb-header {
    position:sticky;
    top:0;
    z-index:100;

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

    border-bottom:
        1px solid
        var(--sb-line);

    backdrop-filter:
        blur(10px);
}


.sb-header-inner {
    display:flex;

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

    min-height:72px;

    gap:24px;
}


.sb-brand {
    text-decoration:none;
}


.sb-brand strong {
    display:block;

    color:
        var(--sb-dark);

    font-size:20px;
}


.sb-brand span {
    display:block;

    color:
        var(--sb-muted);

    font-size:
        var(--sb-small);
}


.sb-nav {
    display:flex;

    align-items:center;

    gap:22px;
}


.sb-nav a {
    color:
        var(--sb-text);

    font-size:
        var(--sb-small);

    font-weight:600;

    text-decoration:none;
}


.sb-nav-cta,
.sb-button {
    display:inline-flex;

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

    min-height:44px;

    padding:
        10px 18px;

    background:
        var(--sb-accent);

    border:0;
    border-radius:7px;

    color:#fff !important;

    cursor:pointer;

    font-size:
        var(--sb-small);

    font-weight:700;

    text-decoration:none;
}


.sb-hero {
    position:relative;

    min-height:520px;

    display:flex;

    align-items:flex-end;

    overflow:hidden;

    background:
        var(--sb-dark);
}


.sb-hero img {
    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;
}


.sb-hero::after {
    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            to top,
            rgba(12,32,42,.80),
            rgba(12,32,42,.12) 70%
        );
}


.sb-hero-content {
    position:relative;
    z-index:2;

    width:min(
        1180px,
        calc(100% - 32px)
    );

    margin:0 auto;

    padding:
        70px 0 48px;

    color:#fff;
}


.sb-kicker {
    margin-bottom:8px;

    font-size:
        var(--sb-small);

    font-weight:700;

    letter-spacing:.06em;

    text-transform:uppercase;
}


.sb-hero h1 {
    max-width:760px;

    margin:0;

    font-size:
        clamp(
            36px,
            5vw,
            64px
        );

    line-height:1.04;
}


.sb-hero p {
    max-width:700px;

    margin:
        18px 0 0;

    font-size:18px;
}


.sb-search {
    position:relative;

    z-index:5;

    margin-top:-26px;
}


.sb-search-card {
    display:grid;

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

    gap:12px;

    padding:18px;

    background:#fff;

    border:
        1px solid
        var(--sb-line);

    border-radius:12px;

    box-shadow:
        0 12px 30px
        rgba(25,50,61,.12);
}


.sb-field label {
    display:block;

    margin-bottom:5px;

    color:
        var(--sb-muted);

    font-size:
        var(--sb-small);

    font-weight:600;
}


.sb-field input,
.sb-field select {
    width:100%;
    min-height:44px;

    padding:
        9px 10px;

    border:
        1px solid
        #cfd9dd;

    border-radius:6px;

    background:#fff;

    color:
        var(--sb-text);

    font:inherit;

    font-size:
        var(--sb-small);
}


.sb-section {
    padding:
        54px 0;
}


.sb-section-head {
    display:flex;

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

    gap:24px;

    margin-bottom:22px;
}


.sb-section-head h2 {
    margin:0;

    color:
        var(--sb-dark);

    font-size:30px;
}


.sb-section-head p {
    max-width:680px;

    margin:
        6px 0 0;

    color:
        var(--sb-muted);
}


.sb-unit-grid {
    display:grid;

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

    gap:20px;
}


.sb-unit-card {
    overflow:hidden;

    background:
        var(--sb-card);

    border:
        1px solid
        var(--sb-line);

    border-radius:12px;

    box-shadow:
        0 2px 8px
        rgba(32,53,63,.05);
}


.sb-unit-card-photo {
    position:relative;

    aspect-ratio:
        4 / 3;

    background:#dde5e8;
}


.sb-unit-card-photo img {
    width:100%;
    height:100%;

    object-fit:cover;
}


.sb-unit-card-tag {
    position:absolute;

    top:12px;
    left:12px;

    padding:
        6px 9px;

    background:
        rgba(19,49,62,.85);

    border-radius:20px;

    color:#fff;

    font-size:
        var(--sb-small);

    font-weight:700;
}


.sb-unit-card-body {
    padding:16px;
}


.sb-unit-card h3 {
    margin:0;

    font-size:21px;
}


.sb-unit-card-location {
    margin-top:3px;

    color:
        var(--sb-muted);

    font-size:
        var(--sb-small);
}


.sb-unit-meta {
    display:flex;

    gap:8px 15px;

    flex-wrap:wrap;

    margin:
        13px 0;

    color:
        var(--sb-text);

    font-size:
        var(--sb-small);
}


.sb-unit-card-link {
    display:inline-flex;

    margin-top:3px;

    color:
        var(--sb-accent);

    font-size:
        var(--sb-small);

    font-weight:700;

    text-decoration:none;
}


.sb-property-info {
    display:grid;

    grid-template-columns:
        1.2fr .8fr;

    gap:28px;
}


.sb-info-card {
    padding:24px;

    background:#fff;

    border:
        1px solid
        var(--sb-line);

    border-radius:12px;
}


.sb-info-card h2,
.sb-info-card h3 {
    margin-top:0;

    color:
        var(--sb-dark);
}


.sb-check-list {
    display:grid;

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

    gap:10px;

    padding:0;

    list-style:none;
}


.sb-check-list li {
    padding:
        10px 12px;

    background:
        var(--sb-soft);

    border-radius:7px;

    font-size:
        var(--sb-small);
}


.sb-footer {
    margin-top:40px;

    padding:
        40px 0;

    background:
        var(--sb-dark);

    color:
        rgba(
            255,
            255,
            255,
            .84
        );
}


.sb-footer-inner {
    display:flex;

    justify-content:space-between;

    gap:30px;
}


.sb-footer strong {
    color:#fff;
}


.sb-footer p {
    margin:
        5px 0;

    font-size:
        var(--sb-small);
}


/* =========================================================
   UNIT PAGE
   ========================================================= */


.sb-unit-page {
    padding:
        30px 0 60px;
}


.sb-breadcrumbs {
    margin-bottom:16px;

    color:
        var(--sb-muted);

    font-size:
        var(--sb-small);
}


.sb-breadcrumbs a {
    color:
        var(--sb-accent);

    text-decoration:none;
}


.sb-unit-heading {
    display:flex;

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

    gap:20px;

    margin-bottom:20px;
}


.sb-unit-heading h1 {
    margin:0;

    color:
        var(--sb-dark);

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


.sb-unit-heading p {
    margin:
        5px 0 0;

    color:
        var(--sb-muted);

    font-size:17px;
}


.sb-unit-gallery {
    display:grid;

    grid-template-columns:
        2fr 1fr;

    gap:8px;

    overflow:hidden;

    border-radius:13px;
}


.sb-gallery-main {
    position:relative;

    min-height:470px;

    background:#dce5e8;
}


.sb-gallery-main img {
    width:100%;
    height:100%;

    object-fit:cover;
}


.sb-gallery-side {
    display:grid;

    grid-template-columns:
        1fr 1fr;

    gap:8px;
}


.sb-gallery-thumb {
    min-height:225px;

    padding:0;

    overflow:hidden;

    border:0;

    background:#dce5e8;

    cursor:pointer;
}


.sb-gallery-thumb img {
    width:100%;
    height:100%;

    object-fit:cover;
}


.sb-gallery-count {
    position:absolute;

    right:15px;
    bottom:15px;

    padding:
        8px 11px;

    background:
        rgba(17,43,54,.85);

    border-radius:6px;

    color:#fff;

    font-size:
        var(--sb-small);

    font-weight:700;
}


.sb-unit-facts {
    display:grid;

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

    margin-top:16px;

    overflow:hidden;

    background:#fff;

    border:
        1px solid
        var(--sb-line);

    border-radius:10px;
}


.sb-unit-fact {
    padding:16px;

    border-right:
        1px solid
        var(--sb-line);
}


.sb-unit-fact:last-child {
    border-right:0;
}


.sb-unit-fact span {
    display:block;

    color:
        var(--sb-muted);

    font-size:
        var(--sb-small);
}


.sb-unit-fact strong {
    display:block;

    margin-top:3px;

    font-size:17px;
}


.sb-unit-layout {
    display:grid;

    grid-template-columns:
        minmax(0,1fr)
        330px;

    gap:32px;

    margin-top:30px;
}


.sb-unit-content section {
    margin-bottom:34px;

    padding-bottom:30px;

    border-bottom:
        1px solid
        var(--sb-line);
}


.sb-unit-content h2 {
    margin:
        0 0 13px;

    color:
        var(--sb-dark);

    font-size:25px;
}


.sb-unit-content p {
    font-size:16px;
}


.sb-book-card {
    position:sticky;

    top:96px;

    padding:20px;

    background:#fff;

    border:
        1px solid
        var(--sb-line);

    border-radius:12px;

    box-shadow:
        0 5px 18px
        rgba(28,52,62,.08);
}


.sb-book-card h2 {
    margin:
        0 0 14px;

    font-size:23px;
}


.sb-book-card .sb-field {
    margin-bottom:12px;
}


.sb-book-card .sb-button {
    width:100%;

    margin-top:5px;
}


.sb-book-note {
    margin-top:12px;

    color:
        var(--sb-muted);

    font-size:
        var(--sb-small);
}


.sb-bed-grid {
    display:grid;

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

    gap:12px;
}


.sb-bed-card {
    padding:16px;

    background:#fff;

    border:
        1px solid
        var(--sb-line);

    border-radius:9px;
}


.sb-bed-card strong {
    display:block;

    font-size:17px;
}


.sb-bed-card span {
    display:block;

    margin-top:4px;

    color:
        var(--sb-muted);

    font-size:
        var(--sb-small);
}


.sb-amenity-group {
    margin-bottom:22px;
}


.sb-amenity-group h3 {
    margin:
        0 0 8px;

    color:
        var(--sb-muted);

    font-size:17px;
}


.sb-amenity-grid {
    display:grid;

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

    gap:0 28px;
}


.sb-amenity {
    display:flex;

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

    gap:18px;

    padding:
        10px 0;

    border-bottom:
        1px solid
        #edf1f2;

    font-size:
        var(--sb-small);
}


.sb-amenity strong {
    text-align:right;
}


.sb-review {
    margin-bottom:15px;

    padding:18px;

    background:#fff;

    border:
        1px solid
        var(--sb-line);

    border-radius:9px;
}


.sb-stars {
    color:
        var(--sb-star);

    font-size:18px;
}


.sb-review h3 {
    margin:
        5px 0 8px;

    font-size:18px;
}


.sb-review-meta {
    color:
        var(--sb-muted);

    font-size:
        var(--sb-small);
}


.sb-response {
    margin-top:15px;

    padding:13px;

    background:
        var(--sb-soft);

    border-radius:7px;

    font-size:
        var(--sb-small);
}


@media(max-width:900px) {

    .sb-nav a:not(.sb-nav-cta) {
        display:none;
    }


    .sb-search-card {
        grid-template-columns:
            1fr 1fr;
    }


    .sb-unit-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );
    }


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


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


    .sb-unit-layout {
        grid-template-columns:1fr;
    }


    .sb-book-card {
        position:static;
    }

}


@media(max-width:640px) {

    .sb-shell {
        width:
            min(
                100% - 22px,
                1180px
            );
    }


    .sb-header-inner {
        min-height:62px;
    }


    .sb-brand strong {
        font-size:18px;
    }


    .sb-brand span {
        display:none;
    }


    .sb-nav-cta {
        padding:
            9px 12px;
    }


    .sb-hero {
        min-height:430px;
    }


    .sb-hero-content {
        width:
            calc(100% - 24px);

        padding-bottom:44px;
    }


    .sb-hero h1 {
        font-size:38px;
    }


    .sb-search {
        margin-top:-18px;
    }


    .sb-search-card {
        grid-template-columns:1fr;

        padding:14px;
    }


    .sb-section {
        padding:
            38px 0;
    }


    .sb-section-head {
        display:block;
    }


    .sb-section-head h2 {
        font-size:26px;
    }


    .sb-unit-grid {
        grid-template-columns:1fr;
    }


    .sb-check-list {
        grid-template-columns:1fr;
    }


    .sb-footer-inner {
        display:block;
    }


    .sb-unit-heading {
        display:block;
    }


    .sb-unit-gallery {
        display:block;
    }


    .sb-gallery-main {
        min-height:330px;
    }


    .sb-gallery-side {
        display:flex;

        overflow-x:auto;

        margin-top:7px;
    }


    .sb-gallery-thumb {
        flex:
            0 0 95px;

        min-height:72px;
    }


    .sb-unit-facts {
        grid-template-columns:
            repeat(
                2,
                1fr
            );
    }


    .sb-unit-fact {
        border-bottom:
            1px solid
            var(--sb-line);
    }


    .sb-bed-grid {
        grid-template-columns:1fr;
    }


    .sb-amenity-grid {
        grid-template-columns:1fr;
    }

}
