/* ==========================================================
   06-landing.css
   Ruby Station landing blocks (registry #52–#61) + Ruby footer
   Values matched to the VEXOS landing (rubystationnash.com/3d).
   All selectors scoped to .rs-* classes; .rs-page is the page wrapper
   (front-page.php / page.php).
   ========================================================== */

:root {
  --rs-ui-brand-light: #b18e8a;
}

/* Scoped reset — VEXOS resets every element; the master theme does not.
   :where() keeps specificity at one class so block rules below still win. */
.rs-page :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li, blockquote, cite, figure) {
  margin: 0;
  padding: 0;
  font-size: 100%;
  font-style: normal;
  line-height: inherit;
  letter-spacing: normal;
  text-transform: none;
}
/* VEXOS base line-height is 1; block rules set their own where needed */
.rs-page { line-height: 1; }
.rs-page :where(ul, ol) { list-style: none; }
.rs-page :where(a) { text-decoration: none; color: inherit; }
.rs-page :where(button) { border: 0; background: none; padding: 0; }
.rs-page .rs-sr-only {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

select.rs-input {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%23c4a882' stroke-width='1.5'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-color: #ffffff0d;
    padding-right: 32px
}

body:has(.rs-modal-backdrop--open) .rs-header,
body:has(.rs-disclaimer--open) .rs-header,
body:has(.rs-map-modal-backdrop--open) .rs-header {
    transform: translateY(-150%);
    transition: transform .3s ease
}

.rs-page {
    font-family: var(--font-sans);
    background: var(--rs-cream-3);
    color: var(--rs-brown);
    overflow-x: hidden
}

.rs-page *,
.rs-page *:before,
.rs-page *:after {
    box-sizing: border-box
}

.rs-page img {
    display: block
}

.rs-page button {
    font-family: var(--font-sans);
    cursor: pointer
}

.rs-page h1,
.rs-page h2,
.rs-page h3,
.rs-page h4 {
    font-family: var(--font-serif);
    font-weight: 300;
    color: #9b7d5c
}

@keyframes rs-fadeUp {
    0% {
        opacity: 0;
        transform: translateY(24px)
    }

    to {
        opacity: 1;
        transform: none
    }
}

@keyframes rs-fadeIn {
    0% {
        opacity: 0
    }

    to {
        opacity: 1
    }
}

@keyframes rs-scrollDown {
    0% {
        transform: translateY(0);
        opacity: 1
    }

    to {
        transform: translateY(12px);
        opacity: 0
    }
}

@keyframes rs-tourSpin {
    to {
        transform: rotate(360deg)
    }
}

.rs-reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity .85s ease, transform .85s ease
}

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

.rs-label {
    font-size: 12px;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--rs-tan);
    display: flex;
    align-items: center;
    gap: 10px
}

.rs-label:before {
    content: "";
    width: 20px;
    height: 1px;
    background: var(--rs-tan);
    flex-shrink: 0
}

.rs-label--center {
    justify-content: center
}

.rs-label--tan2 {
    color: var(--rs-tan-2)
}

.rs-label--tan2:before {
    background: var(--rs-tan-2)
}

.rs-btn-dark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
    line-height: 1.4;
    text-decoration: none;
    background: var(--rs-brown);
    color: var(--rs-cream-2);
    border: none;
    font-family: var(--font-sans);
    font-weight: 500;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 15px 36px;
    cursor: pointer;
    transition: background .3s, transform .3s;
    border-radius: 100px
}

.rs-btn-dark:hover {
    color: var(--rs-cream-2);
    background: var(--rs-brown-2);
    transform: translateY(-1px)
}

.rs-btn-scene {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center
}

.rs-btn-glow {
    position: absolute;
    width: 90%;
    height: 60px;
    border-radius: 100px;
    background: radial-gradient(ellipse at center, color-mix(in srgb, var(--rs-ui-brand-light) 55%, transparent) 39%, color-mix(in srgb, var(--rs-ui-brand-dark) 20%, transparent) 64%, transparent 95%);
    filter: blur(4px);
    opacity: 0;
    transition: opacity .3s ease;
    pointer-events: none
}

.rs-btn-scene:hover .rs-btn-glow {
    opacity: 1
}

.rs-btn-outline {
    background: transparent;
    color: var(--rs-ui-light);
    border: 1px solid rgba(28, 20, 16, .35);
    font-family: var(--font-sans);
    font-weight: 400;
    font-size: clamp(10px, 0.9vw, 12px);
    letter-spacing: 2px;
    text-align: center;
    text-transform: uppercase;
    padding: clamp(10px, 1.6vh, 14px) clamp(16px, 1.6vw, 22px);
    transition: border-color .3s;
    border-radius: 0px;
    cursor: pointer
}

.rs-btn-outline:hover {
    border-color: var(--rs-brown)
}

.rs-btn-outline--light {
    color: #fdfaf6cc;
    border-color: #fdfaf64d
}

.rs-btn-outline--light:hover {
    border-color: #fdfaf6b3
}

.rs-btn-outline--accent {
    color: var(--rs-ui-light);
    border: none;
    outline: none;
    text-decoration: none;
    background: linear-gradient(to right, var(--rs-ui-brand-dark) 0%, var(--rs-ui-brand-light) 45%, var(--rs-ui-brand-light) 55%, var(--rs-ui-brand) 100%);
    filter: brightness(1.1);
    box-shadow: inset 0 1px 1px #fff6, inset 0 -1px 2px #0000004d, 0 2px 4px #0000004d;
    transition: all .3s ease, box-shadow .15s ease
}

.rs-btn-outline--accent:hover {
    color: var(--rs-ui-light);
    transform: translateY(-1px)
}

.rs-page .rs-btn-outline::after {
    display: none
}

/* Hero CTA: same diagonal sweep as the header Inquire Now */
.rs-page .rs-btn-outline--accent {
    overflow: hidden;
    isolation: isolate
}

.rs-page .rs-btn-outline--accent::before {
    content: "";
    position: absolute;
    top: -20%;
    left: -215%;
    z-index: -1;
    width: 209%;
    height: 200%;
    background: var(--rs-ui-brand-dark);
    transform: skew(30deg);
    transition: transform .4s cubic-bezier(.3, 1, .8, 1)
}

.rs-page .rs-btn-outline--accent:hover::before {
    transform: translate3d(100%, 0, 0) skew(25deg)
}

.rs-btn-light {
    background: var(--rs-cream-2);
    color: var(--rs-brown);
    border: none;
    font-family: var(--font-sans);
    font-weight: 500;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 15px 36px;
    cursor: pointer;
    transition: background .3s, transform .3s;
    border-radius: 100px
}

.rs-btn-light:hover {
    background: var(--rs-white);
    transform: translateY(-1px)
}

.rs-btn-ghost {
    background: transparent;
    color: var(--rs-tan-2);
    border: 1px solid rgba(196, 168, 130, .3);
    font-family: var(--font-sans);
    font-weight: 500;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 9px 18px;
    cursor: pointer;
    transition: border-color .2s, background .2s
}

.rs-btn-ghost:hover {
    border-color: #c4a88299;
    background: #c4a8820d
}

.rs-urgency {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 950;
    background: var(--rs-brown);
    border-bottom: 1px solid rgba(196, 168, 130, .2);
    padding: 9px 24px;
    text-align: center;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--rs-tan-2);
    pointer-events: none
}

.rs-nav {
    position: fixed;
    top: 38px;
    left: 0;
    right: 0;
    z-index: 900;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 clamp(20px, 4vw, 72px);
    height: 72px;
    transition: background .4s, box-shadow .4s
}

.rs-nav--scrolled {
    background: #fdfaf6f7;
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    box-shadow: 0 1px #9b7d5c26
}

.rs-nav__logo {
    height: 56px;
    width: auto
}

.rs-nav__links {
    display: flex;
    gap: 32px;
    list-style: none;
    margin: 0;
    padding: 0
}

.rs-nav__links a {
    font-size: 10px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--rs-brown-3);
    text-decoration: none;
    transition: color .2s
}

.rs-nav__links a:hover {
    color: var(--rs-brown)
}

.rs-nav__cta-wrap {
    display: flex;
    gap: 10px;
    align-items: center
}

.rs-hero {
    position: relative;
    height: 90vh;
    min-height: 680px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: var(--rs-brown)
}

.rs-hero__bg {
    position: absolute;
    inset: 0
}

.rs-hero__bg img,
.rs-hero__bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .88
}

.rs-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(26, 15, 10, .7) 100%, rgba(28, 20, 16, .1) 100%, transparent 100%)
}

.rs-hero__content {
    position: relative;
    z-index: 10;
    padding: 0 clamp(20px, 5vw, 60px) 0px;
    max-width: 820px;
    animation: rs-fadeUp .9s ease .1s both;
    margin: auto
}

.rs-hero__address {
    font-size: clamp(12.5px, 1vw, 14px);
    letter-spacing: clamp(2.5px, 0.2vw, 3px);
    text-transform: uppercase;
    color: #fff;    
    font-weight: 500;
    margin-bottom: 35px;
    text-align: center
}

.rs-hero__title {
    font-size: clamp(56px, 8vw, 110px);
    line-height: .92;
    letter-spacing: -1px;
    color: var(--rs-white) !important;
    margin-bottom: 25px;
    text-align: center
}

.rs-hero__title em {
    font-style: italic;
    color: #fff
}

.rs-hero__title img {
    height: clamp(21vh, 18vw, 27vh);
    margin: 0 auto
}

.rs-page .rs-hero__description {
    font-family: var(--font-serif);
    font-size: clamp(26px, 3vw, 34px);
    line-height: 1.2;
    color: #fff;
    font-style: italic;
    margin: auto auto 50px;
    font-weight: 400;
    text-align: center;
}

.rs-hero__btns {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center
}

.rs-hero__scroll-hint {
    position: absolute;
    bottom: 36px;
    right: 48%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    opacity: .5;
    z-index: 10;
    animation: rs-fadeIn 1.4s ease .6s both
}

@media screen and (max-width:600px) {
    .rs-hero__scroll-hint {
        bottom: 1vh;
        left: 0;
        right: 0
    }
    .rs-hero__scroll-hint .rs-hero__scroll-line {
        height: 3.5vh
    }
}

.rs-hero__scroll-hint span {
    font-size: 10px;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--rs-white)
}

.rs-hero__scroll-line {
    width: 1px;
    height: 42px;
    background: linear-gradient(180deg, var(--rs-white), transparent);
    animation: rs-scrollDown 2s ease-in-out infinite
}

.rs-intro {
    background: var(--rs-cream-2)
}

.rs-intro__inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 100px clamp(20px, 7vw, 100px);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(32px, 5.5vw, 85px);
    align-items: center
}

@media screen and (max-width:1023px) {
    .rs-intro__inner {
        padding-top: 4vh
    }
}

.rs-intro__text .rs-label {
    margin-bottom: 22px
}

@media screen and (max-width:1023px) {
    .rs-intro__text .rs-label {
        justify-content: left
    }
}

.rs-intro__text h2 {
    font-size: clamp(32px, 3vw, 44px);
    line-height: .95;
    margin-bottom: 24px
}

.rs-intro__text h2 em {
    font-style: italic;
    color: var(--rs-tan)
}

@media screen and (max-width:1023px) {
    .rs-intro__text h2 {
        text-align: left
    }
}

.rs-intro__text p {
    font-size: 14px;
    line-height: 1.9;
    color: var(--rs-brown-3);
    font-weight: 300;
    margin-bottom: 12px
}

.rs-intro__text .rs-btn-scene {
    margin-top: 28px
}

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

.rs-intro__images img {
    width: 100%;
    object-fit: cover
}

.rs-intro__images img:first-child {
    height: 480px;
    grid-column: span 2
}

.rs-intro__images img:nth-child(2) {
    height: 240px
}

.rs-intro__images img:last-child {
    height: 240px
}

.rs-stats {
    background: var(--rs-brown);
    color: var(--rs-cream-2);
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr))
}

.rs-stats__item {
    padding: 48px 20px;
    text-align: center;
    border-right: 1px solid rgba(237, 229, 216, .1)
}

@media screen and (max-width:600px) {
    .rs-stats__item {
        padding: 20px
    }
}

 .rs-stats__num {
      font-family: var(--font-serif);
      font-size: clamp(28px, 3.6vw, 52px);
      color: var(--rs-tan-2);
      line-height: 1;
      font-weight: 300
 }

.rs-stats__label {
    font-size: clamp(9px, 0.7vw, 11px);
    letter-spacing: 3px;
    text-transform: uppercase;
    color: #ede5d880;
    margin-top: 8px
}

.rs-residences {
    padding: 50px clamp(20px, 4vw, 72px);
    background: var(--rs-cream-2)
}

.rs-residences__inner {
    max-width: 1320px;
    margin: 0 auto;
    position: relative
}

.rs-residences__inner:before {
    content: "";
    display: block;
    height: 1px;
    background: #4b535b1a;
    margin: 0 clamp(24px, 6vw, 100px) 60px
}

@media screen and (max-width:600px) {
    .rs-residences__inner:before {
        margin: 0 clamp(24px, 6vw, 100px) 20px
    }
}

/* Section dividers (match live VEXOS: Features, Amenities, T-Squared) */
.rs-features:before,
.rs-amenities:before,
.rs-register:before {
    content: "";
    display: block;
    height: 1px;
    background: #4b535b1a;
    width: calc(min(100%, 1320px) - 2 * clamp(24px, 6vw, 100px));
    margin: 0 auto 60px
}

@media screen and (max-width:600px) {
    .rs-features:before,
    .rs-amenities:before,
    .rs-register:before {
        margin-bottom: 20px
    }
}

.rs-residences__inner .rs-label {
    margin-bottom: 16px;
    justify-content: center
}

.rs-residences__inner>h2 {
    font-size: clamp(34px, 3.2vw, 56px);
    margin: 0 auto 8px;
    text-align: center;
    width: 70vw;
    padding-bottom: 30px;
    padding-top: 10px;
    max-width: 100%;
}

@media (max-width: 1024px) {
    .rs-residences__inner>h2 {
        width: 80vw;
    }
}

@media (max-width: 440px) {
    .rs-residences__inner>h2 {
        width: 85vw;
    }
}

.rs-residences__inner>p {
    font-size: 13px;
    color: var(--rs-brown-3);
    margin: auto auto 52px;
    text-align: center;
    max-width: 480px
}

.rs-residences__grid {
    display: flex;
    flex-direction: column;
    gap: 0
}

.rs-residences__card {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    width: 100%
}

.rs-residences__card img {
    width: 100%;
    height: 70vh;
    object-fit: cover;
    transition: transform .7s ease, filter .7s ease;
    filter: brightness(.72);
    will-change: transform
}

.rs-residences__card:hover img {
    transform: scale(1.03);
    filter: brightness(.55)
}

.rs-residences__card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(28, 20, 16, .9) 0%, rgba(28, 20, 16, .15) 50%, transparent 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(28px, 5vw, 56px) clamp(28px, 5vw, 72px);
    transition: background .3s
}

.rs-residences__card-overlay .rs-label {
    margin-bottom: 10px;
    color: var(--rs-tan-2);
    font-size: 9px;
    justify-content: start
}

.rs-residences__card-overlay .rs-label:before {
    background: var(--rs-tan-2)
}

.rs-residences__card-overlay h3 {
    font-family: var(--font-serif);
    font-size: clamp(32px, 4vw, 52px);
    color: var(--rs-white);
    margin-bottom: 8px;
    font-weight: 300
}

.rs-residences__card-detail {
    font-size: 11px;
    color: #fdfaf68c;
    letter-spacing: 1.5px;
    margin-bottom: 12px
}

.rs-residences__card-price {
    font-size: clamp(18px, 2.5vw, 24px);
    color: var(--rs-tan-2);
    font-weight: 500;
    font-family: var(--font-serif)
}

.rs-residences__badge {
    position: absolute;
    top: 24px;
    right: 28px;
    background: #fdfaf6eb;
    color: var(--rs-brown);
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 6px 14px;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px)
}

.rs-residences__badge--limited {
    background: #b4643ce0;
    color: var(--rs-white)
}

.rs-residences__badge--none {
    display: none
}

.rs-residences__cta {
    text-align: center;
    margin-top: 48px
}

.rs-features {
    background: var(--rs-cream-3);
    padding: 100px 0
}

.rs-features__header {
    max-width: 1320px;
    margin: 0 auto 48px;
    padding: 0 clamp(20px, 4vw, 72px)
}

.rs-features__header .rs-label {
    margin-bottom: 16px;
    justify-content: center
}

.rs-features__header h2 {
    font-size: clamp(34px, 3.2vw, 56px);
    margin: 0 auto 8px;
    text-align: center;
    width: 70vw;
    padding-bottom: 20px;
    padding-top: 10px;
    max-width: 100%;
}

@media (max-width: 1024px) {
    .rs-features__header h2 {
        width: 80vw;
    }
}

@media (max-width: 440px) {
    .rs-features__header h2 {
        width: 85vw;
    }
}

.rs-features__carousel {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3px;
    margin-bottom: 48px
}

.rs-features__cell {
    position: relative;
    overflow: hidden
}

.rs-features__cell img {
    width: 100%;
    height: 520px;
    object-fit: cover;
    transition: transform .8s ease
}

.rs-features__cell:hover img {
    transform: scale(1.04)
}

.rs-features__cell-label {
    position: absolute;
    bottom: 20px;
    left: 20px;
    background: #fdfaf6e6;
    color: var(--rs-brown);
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 6px 14px;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px)
}

.rs-features__list {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 clamp(20px, 4vw, 72px);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 48px
}

.rs-features__item {
    border-top: 1px solid var(--rs-tan-3);
    padding-top: 24px
}

.rs-features__item h4 {
    font-family: var(--font-serif);
    font-size: 22px;
    color: var(--rs-brown);
    margin-bottom: 10px;
    font-weight: 400
}

.rs-features__item p {
    font-size: 13px;
    color: var(--rs-brown-3);
    line-height: 1.8;
    font-weight: 300
}

.rs-design-quote {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: var(--rs-cream-2);
    padding: 100px 0 0
}

.rs-design-quote:before {
    display: none !important
}

.rs-design-quote__image {
    overflow: hidden
}

.rs-design-quote__image img {
    width: 100%;
    height: 100%;
    min-height: 560px;
    object-fit: cover
}

.rs-design-quote__text {
    display: flex;
    flex-direction: column;
    padding: clamp(40px, 6vw, 100px)
}

@media screen and (max-width:600px) {
    .rs-design-quote__text {
        position: relative;
        padding: 100px clamp(20px, 4vw, 72px);
        padding-bottom: 0
    }

    .rs-design-quote__text:before {
        content: "";
        display: block;
        height: 1px;
        background: #4b535b1a;
        margin: 0 clamp(24px, 6vw, 100px) 60px
    }
}

@media screen and (max-width:600px)and (max-width:600px) {
    .rs-design-quote__text:before {
        margin: 0 6px 20px
    }
}

.rs-design-quote__text .rs-label {
    margin-bottom: 24px
}

@media screen and (max-width:1023px) {
    .rs-design-quote__text .rs-label {
        justify-content: center
    }
}

.rs-design-quote__text h2 {
    font-size: clamp(32px, 3.5vw, 50px);
    margin-bottom: 36px
}

@media screen and (max-width:1023px) {
    .rs-design-quote__text h2 {
        text-align: center
    }
}

.rs-design-quote__text blockquote {
    font-family: var(--font-serif);
    font-size: clamp(18px, 2vw, 26px);
    font-style: italic;
    line-height: 1.65;
    color: var(--rs-brown-2);
    border-left: 2px solid var(--rs-tan-3);
    padding-left: 28px;
    margin-bottom: 24px
}

.rs-design-quote__text cite {
    font-size: 10px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--rs-tan);
    font-style: normal
}

.rs-amenities {
    background: var(--rs-cream-2);
    border-top: none !important;
    padding-top: 100px
}

.rs-amenities__hero {
    position: relative;
    overflow: hidden;
    height: 220px;
    background: var(--rs-cream-2)
}

@media screen and (max-width:600px) {
    .rs-amenities__hero {
        height: 160px
    }
}

.rs-amenities__hero img {
    display: none;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(1.05) sepia(.15) hue-rotate(-5deg) saturate(.7);
    opacity: .55
}

.rs-amenities__hero:after {
    display: none;
    content: "";
    position: absolute;
    inset: 0;
    background: #ede5d873;
    pointer-events: none
}

.rs-amenities__hero-text {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center
}

@media screen and (max-width:600px) {
    .rs-amenities__hero-text {
        padding: 0px clamp(20px, 4vw, 72px)
    }
}

.rs-amenities__hero-text h2 {
    font-size: clamp(38px, 5vw, 72px);
    color: var(--rs-brown);
    margin-bottom: 8px
}

.rs-amenities__hero-text p {
    font-size: 13px;
    color: var(--rs-brown-3);
    margin: 0 auto 52px;
    text-align: center;
    max-width: 500px
}

.rs-amenities__hero-text .rs-label {
    justify-content: center;
    color: var(--rs-brown-3);
    margin-bottom: 16px
}

.rs-amenities__hero-text .rs-label:before {
    background: var(--rs-tan-2)
}

.rs-amenities__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3px
}

.rs-amenities__card {
    position: relative;
    overflow: hidden
}

.rs-amenities__card img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    filter: brightness(.9);
    transition: filter .6s ease, transform .6s ease
}

.rs-amenities__card:hover img {
    filter: brightness(.8);
    transform: scale(1.04)
}

.rs-amenities__card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(28, 20, 16, .75) 0%, transparent 35%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 24px 22px
}

.rs-amenities__card-overlay h4 {
    font-family: var(--font-serif);
    font-size: 22px;
    color: var(--rs-white);
    margin-bottom: 6px;
    font-weight: 500
}

.rs-amenities__card-overlay p {
    font-size: 12px;
    color: #fdfaf699;
    line-height: 1.6
}

.rs-amenities__grid {
    max-width: 1320px;
    margin: 0 auto;
    padding: 80px clamp(20px, 4vw, 72px) 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 48px
}

.rs-amenities__item h4 {
    font-family: var(--font-serif);
    font-size: 24px;
    color: var(--rs-brown);
    margin-bottom: 10px;
    font-weight: 400
}

.rs-amenities__item p {
    font-size: 13px;
    color: var(--rs-brown-3);
    line-height: 1.8;
    font-weight: 300
}

.rs-amenities__divider {
    width: 30px;
    height: 1px;
    background: var(--rs-tan-2);
    margin: 14px 0
}

.rs-explore {
    padding: 100px clamp(20px, 4vw, 72px);
    background: var(--rs-cream-2)
}

.rs-explore__inner {
    max-width: 1320px;
    margin: 0 auto
}

.rs-explore__header {
    text-align: center;
    margin-bottom: 64px
}

.rs-explore__header .rs-label {
    justify-content: center;
    margin-bottom: 16px
}

.rs-explore__header h2 {
    font-family: var(--font-serif);
    font-size: clamp(34px, 4vw, 56px);
    font-weight: 300
}

.rs-explore__header p {
    font-size: 14px;
    color: var(--rs-brown-3);
    line-height: 1.8;
    max-width: 520px;
    margin: 16px auto 0
}

.rs-explore__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px
}

.rs-explore__card {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    background: var(--rs-brown);
    aspect-ratio: 16/10
}

.rs-explore__card:hover .rs-explore__thumb {
    filter: brightness(.42) !important;
    transform: scale(1.04) !important
}

.rs-explore__card:hover .rs-explore__play-btn {
    background: #c4a88259 !important;
    border-color: #c4a882b3 !important;
    transform: scale(1.1)
}

.rs-explore__thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(.6);
    transition: filter .6s, transform .6s
}

.rs-explore__card-body {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 24px
}

.rs-explore__play-btn {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #fdfaf626;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    border: 1px solid rgba(253, 250, 246, .25);
    transition: background .3s, border-color .3s, transform .3s
}

.rs-explore__card-title {
    font-family: var(--font-serif);
    font-size: 20px;
    color: var(--rs-white);
    font-weight: 300
}

.rs-explore__card-type {
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #fdfaf6;
    margin-top: 6px
}

.rs-explore__cta {
    text-align: center;
    margin-top: 48px
}

.rs-location {
    padding: 100px clamp(20px, 4vw, 72px);
    background: var(--rs-cream-3)
}

@media screen and (max-width:600px) {
    .rs-location {
        padding: 100px clamp(20px, 4vw, 72px) 0
    }
}

.rs-location__inner {
    max-width: 1320px;
    margin: 0 auto
}

.rs-location__header {
    text-align: center;
    margin-bottom: 64px
}

.rs-location__header .rs-label {
    justify-content: center;
    margin-bottom: 16px
}

.rs-location__header h2 {
    font-size: clamp(38px, 5vw, 72px);
    color: var(--rs-brown);
    margin-bottom: 8px;
    font-family: var(--font-serif);
    font-weight: 300
}

.rs-location__header p {
    font-size: 14px !important;
    line-height: 1.8;
    color: var(--rs-brown-3);
    margin: auto auto 52px;
    text-align: center;
    max-width: 480px;
    font-weight: 300
}

.rs-location__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px
}

.rs-location__card {
    position: relative;
    overflow: hidden
}

.rs-location__card img {
    width: 100%;
    height: 320px;
    object-fit: cover;
    transition: transform .7s ease, filter .7s ease;
    filter: brightness(.85)
}

.rs-location__card:hover img {
    transform: scale(1.04);
    filter: brightness(.75)
}

.rs-location__card-label {
    position: absolute;
    bottom: 20px;
    left: 20px;
    font-family: var(--font-serif);
    font-size: 26px;
    color: var(--rs-white);
    font-weight: 300;
    text-shadow: 0 2px 16px rgba(0, 0, 0, .3)
}

.rs-location__desc {
    margin-top: 64px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center
}

.rs-location__desc p {
    font-size: 14px;
    line-height: 1.9;
    color: var(--rs-brown-3);
    font-weight: 300
}

.rs-location__distances {
    list-style: none;
    margin: 0;
    padding: 0
}

.rs-location__distance-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 0;
    border-bottom: 1px solid var(--rs-tan-3);
    font-size: 12px
}

.rs-location__place {
    color: var(--rs-brown-2)
}

.rs-location__dist {
    font-family: var(--font-serif);
    font-size: 20px;
    color: var(--rs-tan)
}

.rs-team {
    padding: 100px clamp(20px, 4vw, 72px);
    background: var(--rs-brown);
    color: var(--rs-cream-2)
}

.rs-team__inner {
    max-width: 1320px;
    margin: 0 auto
}

.rs-team h2 {
    color: var(--rs-white);
    text-align: center
}

.rs-team .rs-label {
    margin-bottom: 16px;
    color: var(--rs-tan-2);
    justify-content: center
}

.rs-team .rs-label:before {
    background: var(--rs-tan-2)
}

.rs-team__title {
    font-size: clamp(34px, 4vw, 56px);
    color: var(--rs-cream-2);
    margin-bottom: 12px
}

.rs-team__subtitle {
    font-size: 14px;
    color: #ede5d899;
    max-width: 600px;
    text-align: center;
    margin: auto auto 64px;
    font-weight: 300;
    line-height: 1.8
}

.rs-team__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px
}

.rs-team__card {
    padding: 32px 24px;
    border: 1px solid rgba(196, 168, 130, .15);
    background: #ffffff0a;
    transition: background .3s, border-color .3s
}

.rs-team__card:hover {
    background: #c4a88212;
    border-color: #c4a8824d
}

.rs-team__role {
    font-size: 9px;
    letter-spacing: 3px;
    color: var(--rs-tan-2);
    text-transform: uppercase;
    margin-bottom: 12px;
    text-align: center
}

.rs-team__firm {
    font-family: var(--font-serif);
    font-size: 22px;
    color: var(--rs-cream-2);
    margin-bottom: 10px;
    font-weight: 300;
    text-align: center
}

.rs-team__desc {
    font-size: 12px;
    color: #ede5d88c;
    line-height: 1.75
}

.rs-register {
    padding: 120px clamp(20px, 4vw, 72px);
    background: var(--rs-cream-2)
}

.rs-register__inner {
    max-width: 680px;
    margin: 0 auto;
    text-align: center
}

.rs-register__inner img {
    margin: 20px auto
}

.rs-register__inner .rs-label {
    justify-content: center;
    margin-bottom: 18px
}

.rs-register__inner h2 {
    font-size: clamp(38px, 5vw, 66px);
    margin-bottom: 16px
}

.rs-register__inner h2 em {
    font-style: italic;
    color: var(--rs-tan)
}

.rs-register__inner p {
    font-size: 14px;
    color: var(--rs-brown-3);
    line-height: 1.8
}

.rs-register__cta {
    margin-top: 32px
}

.rs-register__divider {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 28px
}

.rs-register__divider-line {
    flex: 1;
    height: 1px;
    background: var(--rs-tan-3);
    opacity: .3
}

.rs-register__divider span {
    font-size: 10px;
    color: var(--rs-brown-3);
    letter-spacing: 2px;
    text-transform: uppercase
}

.rs-register__phone {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
    font-family: var(--font-sans);
    font-size: 14px;
    color: var(--rs-brown-2);
    text-decoration: none;
    letter-spacing: 1px;
    transition: color .2s
}

.rs-register__phone:hover {
    color: var(--rs-tan)
}

.rs-register__fine {
    font-size: 10px;
    color: var(--rs-brown-3);
    margin-top: 28px;
    line-height: 1.6
}

.rs-sticky-cta {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 800;
    background: #fdfaf6f7;
    border-top: 1px solid var(--rs-tan-3);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px clamp(16px, 4vw, 72px);
    transform: translateY(100%);
    transition: transform .4s
}

@media screen and (max-width:480px) {
    .rs-sticky-cta {
        padding: 10px
    }

    .rs-sticky-cta .rs-sticky-cta__btn {
        font-size: 8px;
        padding: 8px 12px;
        line-height: 1
    }
}

.rs-sticky-cta--visible {
    transform: none
}

.rs-sticky-cta__text {
    font-size: 10px;
    letter-spacing: 1.5px;
    color: var(--rs-brown-3);
    text-transform: uppercase
}

@media screen and (max-width:480px) {
    .rs-sticky-cta__text {
        font-size: 9px;
        letter-spacing: 1px;
        padding-left: 15px;
    }
}

.rs-sticky-cta__text strong {
    color: var(--rs-brown)
}

.rs-sticky-cta__btns {
    display: flex;
    gap: 10px
}

.rs-footer {
    background: var(--rs-brown);
    color: var(--rs-cream-2);
    padding-bottom: 100px
}

.rs-footer .rs-footer__top {
    grid-area: 1/1/1/3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-bottom: 12px
}

@media screen and (max-width:600px) {
    .rs-footer .rs-footer__top {
        grid-area: 1
    }
}

.rs-footer__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    max-width: 1320px;
    margin: 0 auto;
    padding: 64px clamp(20px, 4vw, 72px)
}

@media screen and (min-width:767px)and (max-width:1023px) {
    .rs-footer__inner {
        padding: 64px clamp(20px, 4vw, 72px) 120px
    }
}

.rs-footer__left {
    padding-right: clamp(24px, 4vw, 64px);
    border-right: 1px solid rgba(196, 168, 130, .1)
}

.rs-footer__right {
    padding-left: clamp(22px, 4vw, 64px)
}

.rs-footer h3 {
    font-family: var(--font-sans);
    font-size: clamp(22px, 3vw, 32px);
    font-weight: 400;
    color: var(--rs-white);
    letter-spacing: 4px;
    text-transform: uppercase;
    line-height: 1.3;
    margin-bottom: 32px
}

.rs-footer__logo {
    height: clamp(100px, 14vh, 150px);
    width: auto;
    margin-bottom: 30px;
    display: block
}

.rs-footer__tagline {
    font-size: 13px;
    color: #ebebd3;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 36px
}

.rs-footer__block {
    margin-bottom: 28px
}

.rs-footer__block-label {
    font-size: 9px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--rs-tan-2);
    margin-bottom: 10px
}

.rs-footer__block-line {
    font-size: 12px;
    color: #ede5d8a6;
    line-height: 1.7
}

.rs-footer__block-line--muted {
    font-size: 11px;
    color: #ede5d859;
    margin-top: 4px
}

.rs-footer__contacts {
    display: flex;
    flex-direction: column;
    gap: 18px
}

.rs-footer__contact {
    display: flex;
    flex-direction: column;
    gap: 10px
}

.rs-footer__contact-name {
    font-size: 12px;
    color: var(--rs-white);
    font-weight: 500
}

.rs-footer__contact-title {
    font-size: 10px;
    color: #ede5d866;
    letter-spacing: .5px
}

.rs-footer__contact-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: #ede5d899;
    text-decoration: none;
    transition: color .2s
}

.rs-footer__contact-link:hover {
    color: var(--rs-tan-2)
}

.rs-footer__nav {
    display: flex;
    flex-direction: column;
    margin-bottom: 32px
}

.rs-footer__nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 0;
    border-bottom: 1px solid rgba(196, 168, 130, .1);
    text-decoration: none;
    color: inherit;
    font-family: var(--font-sans);
    font-size: 12px;
    letter-spacing: 3px;
    text-transform: uppercase;
    font-weight: 500;
    transition: color .2s
}

.rs-footer__nav-link:first-child {
    border-top: 1px solid rgba(196, 168, 130, .1)
}

.rs-footer__nav-link:hover {
    color: var(--rs-tan-2)
}

.rs-footer__nav-link .rs-fnl-arrow {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff14;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .3s
}

.rs-footer__cta {
    width: 100%;
    text-align: center;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: #9b7d5c26;
    border: 1px solid rgba(155, 125, 92, .3);
    padding: 14px 28px 14px 24px;
    cursor: pointer;
    transition: all .3s;
    text-decoration: none;
    color: var(--rs-tan-2);
    font-family: var(--font-sans);
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 500;
    border-radius: 0;
    width: max-content
}

.rs-footer__cta .rs-cta-arrow {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #9b7d5c33;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .3s
}

.rs-footer .rs-disclaimer-btn {
    background-color: transparent;
    border: none;
    padding: 0;
    margin: 0
}

.rs-footer .rs-footer__left a.rs-footer__privacy {
    display: inline-flex;
    margin-top: 16px;
    background: none;
    border: none;
    padding: 0;
    color: var(--rs-cream-2);
    font-weight: 500;
}

.rs-footer .rs-footer__left a.rs-footer__privacy:hover {
    color: var(--rs-tan-2);
}

.rs-footer .rs-footer__left a.rs-footer__privacy::after {
    display: none;
}

.rs-footer__disclaimer {
    padding: 24px clamp(20px, 4vw, 72px);
    border-top: 1px solid rgba(196, 168, 130, .08);
    max-width: 1320px;
    margin: 0 auto
}

.rs-footer__disclaimer p {
    font-size: 10px;
    color: #ede5d840;
    line-height: 1.7
}

.rs-footer__divider {
    height: 1px;
    background: #c4a88214;
    margin: 0 clamp(20px, 4vw, 72px)
}

.rs-footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px clamp(20px, 4vw, 72px);
    max-width: 1320px;
    margin: 0 auto;
    gap: 16px;
    flex-wrap: wrap
}

.rs-footer__copyright {
    text-transform: uppercase;
    font-size: 10px;
    color: #ede5d84d;
    letter-spacing: .5px
}

.rs-footer__legal {
    display: flex;
    gap: 20px;
    flex-wrap: wrap
}

.rs-footer__legal-link {
    font-size: 10px;
    color: #ede5d84d;
    text-decoration: none;
    letter-spacing: 1px;
    text-transform: uppercase;
    transition: color .2s
}

.rs-footer__legal-link:hover {
    color: var(--rs-tan-2)
}

.rs-btn-sm {
    padding: 8px 16px !important;
    font-size: 10px !important;
    letter-spacing: 1.5px !important
}

.rs-modal-close {
    position: absolute;
    right: 10px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #ffffff14;
    border: 1px solid rgba(255, 255, 255, .12);
    color: var(--rs-white);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background .2s
}

.rs-modal-close:hover {
    background: #ffffff29
}

.rs-modal-close svg {
    flex-shrink: 0
}

.rs-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1100;
    background: #1c1410b8;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .35s ease
}

.rs-modal-backdrop--open {
    opacity: 1;
    pointer-events: all
}

.rs-presentation-modal {
    background: #0f0b08;
    color: var(--rs-white);
    width: min(680px, 95vw);
    max-height: 85vh;
    overflow-y: auto;
    padding: clamp(24px, 3.5vw, 40px);
    position: relative;
    transform: translateY(20px);
    transition: transform .35s ease;
    scrollbar-width: none
}

.rs-presentation-modal::-webkit-scrollbar {
    display: none
}

.rs-modal-backdrop--open .rs-presentation-modal {
    transform: none
}

.rs-presentation-modal .rs-pm-title {
    color: var(--rs-white)
}

.rs-pm-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #ffffff1a;
    border: none;
    color: var(--rs-white);
    font-size: 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .2s
}

.rs-pm-close svg {
    flex-shrink: 0
}

.rs-pm-close:hover {
    background: #fff3
}

.rs-pm-back {
    display: flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: none;
    color: #fdfaf680;
    font-family: var(--font-sans);
    font-weight: 500;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 0;
    cursor: pointer;
    transition: color .2s;
    margin-bottom: 14px
}

.rs-pm-back:hover {
    color: var(--rs-tan-2)
}

.rs-pm-title {
    font-family: var(--font-serif);
    font-size: clamp(28px, 4vw, 42px);
    font-weight: 300;
    line-height: 1;
    color: var(--rs-white);
    margin-bottom: 8px
}

.rs-pm-sub {
    font-size: 11px;
    color: #fdfaf673;
    margin-bottom: 20px;
    line-height: 1.5
}

.rs-section-label {
    font-size: 9px;
    letter-spacing: 3.5px;
    text-transform: uppercase;
    color: var(--rs-tan-2);
    margin-bottom: 10px
}

.rs-pm-steps {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px
}

.rs-pm-step-line {
    flex: 1;
    height: 1px;
    background: #c4a88233
}

.rs-pm-page,
.rs-pm-page--confirm {
    display: block
}

.rs-pm-hint {
    font-size: 11px;
    color: #fdfaf666;
    margin-bottom: 12px;
    line-height: 1.5
}

.rs-pm-field {
    margin-bottom: 10px
}

.rs-pm-label {
    display: block;
    font-size: 10px;
    color: #fdfaf68c;
    letter-spacing: 1px;
    margin-bottom: 4px
}

.rs-pm-label span {
    color: var(--rs-tan-2)
}

.rs-pm-rule {
    height: 1px;
    background: #fdfaf61a;
    margin: 16px 0
}

.rs-pm-next-wrap {
    display: flex;
    justify-content: flex-end;
    margin-top: 18px
}

.rs-pm-btn-primary {
    background: var(--rs-tan-2);
    color: var(--rs-brown);
    border: none;
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    padding: 12px 36px;
    cursor: pointer;
    transition: all .2s
}

.rs-pm-btn-primary:hover {
    background: var(--rs-tan-3)
}

.rs-pm-gallery-note {
    font-size: 10px;
    color: #fdfaf659;
    margin-top: 8px;
    line-height: 1.4
}

.rs-pm-map-btn {
    background: transparent;
    border: 1px solid rgba(196, 168, 130, .3);
    color: var(--rs-tan-2);
    font-family: var(--font-sans);
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 7px 14px;
    cursor: pointer;
    margin-top: 6px;
    transition: border-color .2s;
    display: inline-flex;
    align-items: center;
    gap: 6px
}

.rs-pm-map-btn:hover {
    border-color: #c4a88299
}

.rs-pm-field-err {
    font-size: 10px;
    color: #dc6446e6;
    position: absolute;
    bottom: -12px;
    left: 0
}

.rs-pm-guest-section {
    margin-top: 0
}

.rs-pm-guest-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 1px solid rgba(196, 168, 130, .25);
    color: var(--rs-tan-2);
    font-family: var(--font-sans);
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 8px 16px;
    cursor: pointer;
    transition: border-color .2s
}

.rs-pm-guest-btn:hover {
    border-color: #c4a88280
}

.rs-pm-guest-fields {
    margin-top: 12px
}

.rs-pm-guest-list {
    margin-bottom: 8px
}

.rs-pm-guest-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 10px;
    background: #c4a8820f;
    border: 1px solid rgba(196, 168, 130, .12);
    margin-bottom: 4px;
    font-size: 11px
}

.rs-pm-guest-item button {
    background: none;
    border: none;
    color: #fdfaf64d;
    cursor: pointer;
    font-size: 11px;
    transition: color .2s
}

.rs-pm-guest-item button:hover {
    color: var(--rs-white)
}

.rs-pm-guest-name {
    font-size: 11px;
    color: var(--rs-white);
    margin-right: 6px
}

.rs-pm-guest-email {
    font-size: 10px;
    color: #fdfaf666
}

.rs-pm-guest-inputs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-bottom: 16px
}

.rs-pm-add-btn {
    background: #c4a8821a;
    border: 1px solid rgba(196, 168, 130, .25);
    color: var(--rs-tan-2);
    font-family: var(--font-sans);
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 9px 18px;
    cursor: pointer;
    transition: all .2s
}

.rs-pm-book-btn {
    width: 100%;
    background: var(--rs-tan-2);
    color: var(--rs-brown);
    border: none;
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    padding: 14px 36px;
    cursor: pointer;
    transition: all .2s
}

.rs-pm-book-btn:hover {
    background: var(--rs-tan-3)
}

.rs-pm-confirm-top {
    text-align: center;
    padding: 12px 0 8px
}

.rs-pm-confirm-top h3 {
    font-family: var(--font-serif);
    font-size: 26px;
    color: var(--rs-white);
    margin-bottom: 4px
}

.rs-pm-confirm-top p {
    font-size: 12px;
    color: #fdfaf680;
    line-height: 1.6;
    margin-bottom: 20px
}

.rs-pm-checkmark {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: #4ecb941f;
    border: 1px solid rgba(78, 203, 148, .3);
    margin: 0 auto 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: #4ecb94cc
}

.rs-pm-sum-box {
    background: #ffffff0a;
    border: 1px solid rgba(255, 255, 255, .08);
    padding: 18px;
    margin-bottom: 18px
}

.rs-pm-sum-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px
}

.rs-pm-sum-item {
    display: flex;
    flex-direction: column;
    gap: 2px
}

.rs-pm-sum-label {
    font-size: 9px;
    color: #fdfaf666;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 3px
}

.rs-pm-sum-value {
    font-size: 13px;
    color: var(--rs-white)
}

.rs-pm-confirm-fine {
    font-size: 10px;
    color: #fdfaf64d;
    line-height: 1.5;
    margin-bottom: 16px
}

.rs-pm-page-actions {
    display: flex;
    gap: 10px;
    margin-bottom: 14px
}

.rs-pm-cal-btn {
    flex: 1;
    background: var(--rs-tan-2);
    color: var(--rs-brown);
    border: none;
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 13px 16px;
    cursor: pointer;
    transition: all .2s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px
}

.rs-pm-explore-btn {
    flex: 1;
    background: transparent;
    color: #fdfaf680;
    border: 1px solid rgba(255, 255, 255, .12);
    font-family: var(--font-sans);
    font-weight: 500;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 13px 16px;
    cursor: pointer;
    transition: all .2s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px
}

.rs-pm-call-section {
    border-top: 1px solid rgba(255, 255, 255, .08);
    padding-top: 14px;
    text-align: center
}

.rs-pm-call-section p {
    font-size: 11px;
    color: #fdfaf673;
    margin-bottom: 10px
}

.rs-pm-call-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: transparent;
    border: 1px solid rgba(196, 168, 130, .3);
    color: var(--rs-tan-2);
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 12px 28px;
    cursor: pointer;
    transition: all .2s;
    text-decoration: none
}

.rs-pm-call-link:hover {
    border-color: #c4a88299;
    background: #c4a88214
}

.rs-step-dots {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 24px
}

.rs-step-dot {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, .15);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    color: #fdfaf659;
    font-weight: 500;
    transition: border-color .3s, background .3s, color .3s;
    flex-shrink: 0
}

.rs-step-dot--active {
    border-color: var(--rs-tan-2);
    color: var(--rs-tan-2);
    background: #c4a8821f
}

.rs-step-dot--done {
    border-color: var(--rs-tan-2);
    color: var(--rs-brown);
    background: var(--rs-tan-2)
}

.rs-step-dot--done svg {
    stroke: var(--rs-brown)
}

.rs-form-step__hint {
    font-size: 12px;
    color: #fdfaf673;
    margin-bottom: 20px;
    line-height: 1.6
}

.rs-form-step__fine {
    font-size: 10px;
    color: #fdfaf64d;
    margin-top: 16px;
    line-height: 1.6
}

.rs-broker-toggle {
    display: flex;
    gap: 0;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, .12)
}

.rs-broker-toggle__btn {
    flex: 1;
    padding: 10px;
    background: transparent;
    border: none;
    color: #fdfaf666;
    font-family: var(--font-sans);
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s, color .2s
}

.rs-broker-toggle__btn+.rs-broker-toggle__btn {
    border-left: 1px solid rgba(255, 255, 255, .12)
}

.rs-broker-toggle__btn--active {
    background: #c4a8821f;
    color: var(--rs-tan-2)
}

.rs-broker-toggle__btn:hover:not(.rs-broker-toggle__btn--active) {
    background: #ffffff0a;
    color: #fdfaf6b3
}

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

@media(max-width:500px) {
    .rs-form-row {
        grid-template-columns: 1fr
    }
}

.rs-field {
    margin-bottom: 12px
}

.rs-field label {
    display: block;
    font-size: 10px;
    color: #fdfaf680;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 5px
}

.rs-field label span {
    color: var(--rs-tan-2)
}

.rs-field__err {
    font-size: 10px;
    color: #dc6446e6;
    margin-top: 4px
}

.rs-input {
    background: #ffffff0d;
    border: 1px solid rgba(255, 255, 255, .12);
    padding: 10px 14px;
    font-family: var(--font-sans);
    font-size: 12px;
    color: var(--rs-white);
    outline: none;
    transition: border-color .2s;
    width: 100%;
    appearance: none
}

.rs-input::placeholder {
    color: #fdfaf64d
}

.rs-input:focus {
    border-color: #c4a88280
}

.rs-input--error {
    border-color: #c86446b3 !important
}

.rs-input--textarea {
    resize: vertical;
    min-height: 72px
}

select.rs-input {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%23c4a882' stroke-width='1.5'%3E%3Cpath d='M1 1l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    background-color: #ffffff0d;
    padding-right: 32px
}

select.rs-input option {
    background: #1a1208;
    color: var(--rs-white)
}

.rs-mtype-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px
}

.rs-mtype-grid--error .rs-mtype {
    border-color: #c8644666
}

.rs-mtype {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 14px 12px;
    background: #ffffff08;
    border: 1px solid rgba(255, 255, 255, .1);
    cursor: pointer;
    text-align: center;
    border-radius: 2px;
    transition: border-color .2s, background .2s
}

.rs-mtype__icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 auto 8px;
    background: #c4a8821f;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px
}

.rs-mtype__name {
    font-size: 12px;
    color: var(--rs-white);
    font-weight: 500;
    margin-bottom: 2px;
    font-family: var(--font-sans)
}

.rs-mtype__detail {
    font-size: 9px;
    color: #fdfaf666;
    letter-spacing: .5px;
    line-height: 1.4;
    font-family: var(--font-sans)
}

.rs-mtype:hover {
    border-color: #c4a88266;
    background: #c4a8820d
}

.rs-mtype--selected {
    border-color: var(--rs-tan-2);
    background: #c4a8821a
}

.rs-mtype--selected .rs-mtype__icon {
    background: #c4a88238
}

.rs-mtype--selected .rs-mtype__name {
    color: var(--rs-tan-2)
}

.rs-date-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px
}

.rs-date-grid--error .rs-date {
    border-color: #c8644666
}

.rs-date {
    padding: 8px 10px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: #ffffff08;
    cursor: pointer;
    transition: border-color .2s, background .2s;
    text-align: center;
    min-width: 54px;
    border-radius: 2px;
    display: flex;
    flex-direction: column;
    align-items: center
}

.rs-date__day {
    font-size: 9px;
    letter-spacing: 1px;
    color: #fdfaf666;
    text-transform: uppercase;
    font-family: var(--font-sans)
}

.rs-date__num {
    font-family: var(--font-serif);
    font-size: 22px;
    color: var(--rs-white);
    line-height: 1;
    margin: 1px 0
}

.rs-date__mon {
    font-size: 9px;
    color: #fdfaf666;
    letter-spacing: 1px;
    text-transform: uppercase;
    font-family: var(--font-sans)
}

.rs-date:hover {
    border-color: #c4a88266
}

.rs-date--selected {
    border-color: var(--rs-tan-2);
    background: #c4a8821a
}

.rs-date--selected .rs-date__day,
.rs-date--selected .rs-date__num,
.rs-date--selected .rs-date__mon {
    color: var(--rs-tan-2)
}

.rs-time-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px
}

.rs-time-grid--error .rs-time {
    border-color: #c8644666
}

.rs-time {
    padding: 9px 14px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: #ffffff08;
    cursor: pointer;
    font-family: var(--font-sans);
    font-size: 11px;
    color: #fdfaf699;
    letter-spacing: .5px;
    transition: border-color .2s, background .2s, color .2s
}

.rs-time:hover {
    border-color: #c4a88266;
    color: var(--rs-white)
}

.rs-time--selected {
    border-color: var(--rs-tan-2);
    background: #c4a8821a;
    color: var(--rs-tan-2)
}

.rs-guest-row {
    display: flex;
    gap: 8px;
    margin-bottom: 8px
}

.rs-guest-row .rs-input {
    flex: 1
}

.rs-guest-add {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #c4a8821a;
    border: 1px solid rgba(196, 168, 130, .25);
    color: var(--rs-tan-2);
    font-family: var(--font-sans);
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 9px 16px;
    cursor: pointer;
    white-space: nowrap;
    transition: background .2s
}

.rs-guest-add:hover {
    background: #c4a8822e
}

.rs-guest-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px
}

.rs-guest-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 7px 12px;
    background: #c4a8820f;
    border: 1px solid rgba(196, 168, 130, .15);
    font-size: 11px;
    color: #fdfaf6b3
}

.rs-guest-item button {
    background: none;
    border: none;
    color: #fdfaf64d;
    cursor: pointer;
    padding: 2px;
    display: flex;
    align-items: center;
    margin-left: 8px;
    transition: color .2s
}

.rs-guest-item button:hover {
    color: #fdfaf6b3
}

.rs-gallery-card {
    margin-top: 20px;
    padding: 16px;
    background: #c4a8820f;
    border: 1px solid rgba(196, 168, 130, .15)
}

.rs-gallery-card__label {
    font-size: 9px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--rs-tan-2);
    margin-bottom: 6px
}

.rs-gallery-card__address {
    font-size: 12px;
    color: #fdfaf6b3;
    line-height: 1.5;
    margin-bottom: 10px
}

.rs-gallery-card__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap
}

.rs-summary {
    background: #ffffff08;
    border: 1px solid rgba(255, 255, 255, .08);
    margin-bottom: 12px
}

.rs-summary__row {
    display: flex;
    justify-content: space-between;
    padding: 10px 16px;
    font-size: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, .06)
}

.rs-summary__row span:first-child {
    color: #fdfaf666;
    text-transform: uppercase;
    letter-spacing: .5px;
    font-size: 10px
}

.rs-summary__row span:last-child,
.rs-summary__row a {
    color: var(--rs-white);
    text-align: right;
    text-decoration: none
}

.rs-summary__row span:last-child:hover,
.rs-summary__row a:hover {
    color: var(--rs-tan-2)
}

.rs-summary__row--top {
    align-items: flex-start
}

.rs-summary__row:last-child {
    border-bottom: none
}

.rs-summary__divider {
    height: 1px;
    background: #c4a88226;
    margin: 0
}

.rs-confirm-screen {
    text-align: center;
    padding: 12px 0
}

.rs-confirm-screen__icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #4ecb941a;
    border: 1px solid rgba(78, 203, 148, .3);
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    color: #4ecb94cc
}

.rs-confirm-screen h3 {
    font-family: var(--font-serif);
    font-size: clamp(22px, 3vw, 30px);
    font-weight: 300;
    color: var(--rs-white);
    margin-bottom: 10px
}

.rs-confirm-screen>p {
    font-size: 12px;
    color: #fdfaf680;
    line-height: 1.7;
    max-width: 400px;
    margin: 0 auto 24px
}

.rs-confirm-screen__details {
    background: #c4a88212;
    border: 1px solid rgba(196, 168, 130, .15);
    margin: 0 auto 24px;
    max-width: 360px;
    text-align: left
}

.rs-confirm-screen__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 16px;
    font-size: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, .06)
}

.rs-confirm-screen__row:last-child {
    border-bottom: none
}

.rs-confirm-screen__row span:first-child {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #fdfaf666
}

.rs-confirm-screen__row span:last-child,
.rs-confirm-screen__row a {
    color: var(--rs-white);
    text-decoration: none
}

.rs-confirm-screen__row span:last-child:hover,
.rs-confirm-screen__row a:hover {
    color: var(--rs-tan-2)
}

.rs-tour-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1200;
    background: #0a0806f2;
    display: flex;
    flex-direction: column;
    opacity: 0;
    pointer-events: none;
    transition: opacity .35s ease
}

.rs-tour-modal-backdrop--open {
    opacity: 1;
    pointer-events: all
}

.rs-tour-modal {
    display: flex;
    flex-direction: column;
    height: 100%
}

.rs-tour-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    border-bottom: 1px solid rgba(196, 168, 130, .12);
    flex-shrink: 0;
    gap: 12px
}

.rs-tour-modal__title {
    font-family: var(--font-serif);
    font-size: 18px;
    color: var(--rs-white);
    font-weight: 300;
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

.rs-tour-modal__header-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0
}

.rs-tour-modal__frame-wrap {
    flex: 1;
    position: relative;
    overflow: hidden
}

.rs-tour-modal__loader {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    z-index: 2;
    background: #0a0806f2;
    transition: opacity .4s
}

.rs-tour-modal__loader--hidden {
    opacity: 0;
    pointer-events: none
}

.rs-tour-modal__loader span {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #c4a88280
}

.rs-tour-modal__spinner {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 2px solid rgba(196, 168, 130, .15);
    border-top-color: #c4a882b3;
    animation: rs-tourSpin 1s linear infinite
}

.rs-tour-modal__iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block
}

.rs-factsheet-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1150;
    background: #1c1410b8;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .35s ease
}

.rs-factsheet-modal-backdrop--open {
    opacity: 1;
    pointer-events: all
}

.rs-factsheet-modal {
    background: #0f0b08;
    color: var(--rs-white);
    width: min(420px, 90vw);
    padding: clamp(28px, 4vw, 44px);
    position: relative;
    text-align: center;
    transform: translateY(16px);
    transition: transform .35s ease
}

.rs-factsheet-modal-backdrop--open .rs-factsheet-modal {
    transform: none
}

.rs-factsheet-modal__close {
    position: absolute;
    top: 14px;
    right: 14px
}

.rs-factsheet-modal__close svg {
    flex-shrink: 0
}

.rs-factsheet-modal__icon {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: #c4a88214;
    border: 1px solid rgba(196, 168, 130, .2);
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rs-tan-2)
}

.rs-factsheet-modal__title {
    font-family: var(--font-serif);
    font-size: clamp(22px, 4vw, 30px);
    font-weight: 300;
    color: var(--rs-white) !important;
    margin-bottom: 10px;
    line-height: 1.2
}

.rs-factsheet-modal__desc {
    font-size: 12px;
    color: #fdfaf680;
    line-height: 1.7;
    margin-bottom: 24px
}

.rs-factsheet-modal__cta {
    width: 100%;
    margin-bottom: 0
}

.rs-factsheet-modal__fine {
    font-size: 10px;
    color: #fdfaf640;
    margin-top: 14px;
    line-height: 1.6
}

.rs-map-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1200;
    background: #1c1410cc;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity .35s ease
}

.rs-map-modal-backdrop--open {
    opacity: 1;
    pointer-events: all
}

.rs-map-modal {
    background: #0f0b08;
    width: min(720px, 95vw);
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    position: relative;
    transform: translateY(16px);
    transition: transform .35s ease
}

.rs-map-modal-backdrop--open .rs-map-modal {
    transform: none
}

.rs-map-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 50px 16px 20px;
    border-bottom: 1px solid rgba(196, 168, 130, .1);
    flex-shrink: 0;
    gap: 10px
}

@media screen and (max-width:600px) {
    .rs-map-modal__header {
        padding: 16px 0
    }
}

.rs-map-modal__title {
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 300;
    color: var(--rs-white);
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis
}

@media screen and (max-width:600px) {
    .rs-map-modal__title {
        display: none
    }
}

.rs-map-modal__header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
    flex-wrap: wrap
}

@media screen and (max-width:600px) {
    .rs-map-modal__header-actions {
        gap: 0
    }
}

.rs-map-modal__canvas {
    flex: 1;
    min-height: 400px
}

.rs-dir-dropdown {
    position: relative
}

.rs-dir-dropdown__menu {
    position: absolute;
    top: calc(100% + 6px);
    left: 10px;
    background: #1a1410;
    border: 1px solid rgba(196, 168, 130, .2);
    min-width: 260px;
    z-index: 10;
    list-style: none;
    padding: 0;
    margin: 0;
    box-shadow: 0 8px 32px #00000080
}

.rs-dir-dropdown__menu a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    text-decoration: none;
    border-bottom: 1px solid rgba(196, 168, 130, .08);
    transition: background .2s
}

.rs-dir-dropdown__menu a:last-child {
    border-bottom: none
}

.rs-dir-dropdown__menu a:hover {
    background: #c4a88214
}

.rs-dir-dropdown__icon {
    flex-shrink: 0;
    color: var(--rs-tan-2);
    display: flex;
    align-items: center
}

.rs-dir-dropdown__label {
    flex: 1;
    font-size: 11px;
    color: #fdfaf6b3;
    line-height: 1.3
}

.rs-dir-dropdown__duration {
    font-size: 10px;
    color: #fdfaf659;
    white-space: nowrap;
    margin-left: auto
}

.rs-music-btn {
    position: fixed;
    bottom: 160px;
    right: 80px;
    z-index: 1000;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #00000073;
    border: 1px solid rgba(255, 255, 255, .2);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    transition: background .2s
}

@media screen and (max-width:1023px) {
    .rs-music-btn {
        left: 20px;
        bottom: 85px
    }
}

.rs-music-btn:hover {
    background: #000000a6
}

.rs-music-btn svg {
    flex-shrink: 0
}

@media(max-width:900px) {

    .rs-intro__inner,
    .rs-design-quote,
    .rs-location__desc {
        grid-template-columns: 1fr
    }

    .rs-design-quote__image {
        order: -1
    }

    .rs-stats {
        grid-template-columns: repeat(2, 1fr)
    }

    .rs-stats__item {
        padding: 28px 20px;
    }

    .rs-features__carousel {
        grid-template-columns: 1fr
    }

    .rs-features__cell img {
        height: 360px
    }

    .rs-features__list,
    .rs-amenities__grid {
        grid-template-columns: 1fr
    }

    .rs-residences__card img {
        height: 50vh
    }

    .rs-amenities__cards,
    .rs-explore__grid,
    .rs-location__grid,
    .rs-team__grid,
    .rs-footer__inner {
        grid-template-columns: 1fr
    }

    .rs-footer__left {
        border-right: none;
        padding-right: 0;
        padding-bottom: 32px;
        border-bottom: 1px solid rgba(196, 168, 130, .1)
    }

    .rs-footer__right {
        padding-left: 0;
        padding-top: 32px
    }

    .rs-footer__bottom {
        flex-direction: column;
        gap: 12px;
        text-align: center
    }

    .rs-nav__links {
        display: none
    }
}

.rs-highlights {
    margin: 0;
    padding-left: 24px;
    list-style: disc
}

.rs-highlights li {
    margin-bottom: 7px;
    line-height: 1.25;
    font-size: clamp(13.75px, 1vw, 15.5px);
}

.rs-highlights strong {
    font-weight: 700
}

ul.rs-highlights {
    list-style-type: disc;
    list-style-position: outside;
    padding-left: 24px
}

ul.rs-highlights>li {
    display: list-item;
    list-style-type: disc
}

ul.rs-highlights>li::marker {
    color: currentColor;
    font-size: 1em
}

/* ==========================================================
   Ruby footer extras (values from the VEXOS inline styles)
   ========================================================== */
.rs-footer__directions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  font-size: 11px;
  letter-spacing: 1px;
  color: var(--rs-tan-2);
  text-decoration: none;
  transition: opacity .2s;
}
.rs-footer__directions:hover { opacity: .7; color: var(--rs-tan-2); }
.rs-footer__legal a { color: inherit; opacity: .6; font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; }


/* Legal disclaimer modal */
.rs-disclaimer {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4vh 4vw;
  background: rgba(28, 20, 16, .6);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}
.rs-disclaimer.rs-disclaimer--open { opacity: 1; visibility: visible; }
.rs-disclaimer__panel {
  position: relative;
  width: 100%;
  max-width: 1120px;
  max-height: 88vh;
  overflow-y: auto;
  padding: 7vh clamp(24px, 4vw, 64px) 5vh;
  background: var(--rs-cream-3);
  color: var(--rs-brown-3);
  font-family: var(--font-sans);
  text-align: center;
}
.rs-disclaimer__panel h3 {
  margin: 0 0 3vh;
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(24px, 2.4vw, 36px);
  line-height: 1.1;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--rs-brown);
}
.rs-disclaimer__logo {
  display: block;
  width: clamp(40px, 3vw, 56px);
  height: auto;
  margin: 0 auto 3vh;
}
.rs-disclaimer__body p {
  margin: 0 0 1vh;
  font-size: clamp(13px, 1vw, 15px);
  line-height: 1.8;
}
.rs-disclaimer__body p:first-child {
  margin-bottom: 3vh;
  font-family: var(--font-serif);
  font-size: clamp(20px, 2.2vw, 32px);
  line-height: 1.05;
  text-transform: uppercase;
  color: var(--rs-brown);
}
.rs-disclaimer__close {
  position: absolute;
  top: 12px;
  right: 16px;
  border: 0;
  background: none;
  font-size: 28px;
  line-height: 1;
  color: var(--rs-brown);
  cursor: pointer;
}

/* Footer: residences lines uppercase (matches VEXOS) */
.rs-footer__block-line--caps {
    text-transform: uppercase
}

@media screen and (max-width:600px) {
    .rs-residences__grid {
        margin-top: 4.5vh
    }
    .rs-footer__contact-name {
        margin-bottom: 1vh
    }
}

/* ==========================================================
   FAQ (ACF layout "faq" → blocks/faq.php) — Ruby Station styling
   Behavior, numbering and FAQPage schema come from the master block;
   these rules only restyle it with Ruby fonts and colors.
   ========================================================== */
.rs-page .faq-block .row {
    max-width: 900px;
    margin: 0 auto;
    padding: 5vh clamp(20px, 4vw, 72px) 10vh
}

.rs-page .faq-block .faq-title {
    display: block;
    margin-bottom: 2vh;
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: clamp(34px, 3vw, 44px);
    line-height: 1.1;
    color: #9b7d5c;
}

.rs-page .faq-block .faq-subtitle,
.rs-page .faq-block .faq-section-heading {
    font-family: var(--font-sans);
    font-weight: 400;
    font-size: 13px;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--rs-tan-2)
}

.rs-page .faq-block .faq-subtitle {
    margin: 0 0 2vh;
    padding: 0
}

.rs-page .faq-block .faq-intro {
    margin-bottom: 4vh
}

.rs-page .faq-block .faq-intro p {
    font-family: var(--font-sans);
    font-weight: 300;
    font-size: clamp(17px, 1.5vw, 19px);
    line-height: 1.4;
    color: var(--rs-brown)
}

.rs-page .faq-block .faq-section-heading {
    margin: 6vh 0 1.5vh;
    padding-bottom: 0;
    line-height: 1.4
}

.rs-page .faq-block .row > .faq-section-heading:first-of-type {
    margin-top: 2vh
}

.rs-page .faq-block .item {
    border-bottom: 1px solid color-mix(in srgb, var(--rs-brown) 20%, transparent)
}

.rs-page .faq-block .number {
    padding: 3vh 0 0;
    font-family: var(--font-serif);
    font-size: clamp(20px, 1.8vw, 26px);
    line-height: 1.3;
    color: var(--rs-ui-brand);
    border-right-color: color-mix(in srgb, var(--rs-brown) 15%, transparent)
}

.rs-page .faq-block .question {
    padding: 3vh 10px 3vh clamp(16px, 2.5vw, 40px);
    font-family: var(--font-serif);
    font-weight: 400;
    font-size: clamp(20px, 1.8vw, 26px);
    line-height: 1.3;
    color: var(--rs-brown)
}

.rs-page .faq-block .question .plus::before,
.rs-page .faq-block .question .plus::after {
    background: var(--rs-ui-brand)
}

.rs-page .faq-block .question:hover .title {
    color: var(--rs-ui-brand)
}

.rs-page .faq-block .question:hover .plus::before,
.rs-page .faq-block .question:hover .plus::after {
    background: var(--rs-brown)
}

.rs-page .faq-block .answer .text {
    max-width: 680px;
    padding: 0 clamp(16px, 2.5vw, 40px) 3vh
}

.rs-page .faq-block .answer p {
    padding-bottom: 1em;
    font-family: var(--font-sans);
    font-weight: 300;
    font-size: clamp(16px, 1.3vw, 17px);
    line-height: 1.2;
    color: var(--rs-brown)
}

/* Master caps open answers at 500px, which clips long answers */
.rs-page .faq-block .item.active .answer {
    max-height: 1500px
}

/* Floor Plans page intro — matches the FAQ intro */
.rs-page .rs-plans__lead {
    max-width: 760px;
    margin: 0 auto 4vh;
    text-align: center;
    font-family: var(--font-sans);
    font-weight: 300;
    font-size: clamp(17px, 1.5vw, 19px);
    line-height: 1.4;
    color: var(--rs-brown)
}
@media (max-width: 767px) {
    .rs-hero {
        height: 80vh;
        min-height: 0;
    }
}
/* iPhones */
@media (max-width: 440px) {
    .rs-hero {
        height: 75vh;
        min-height: 0;
    }
}

/* ==========================================================
   rs_intro_studio — .rs-studio
   Oversized editorial intro. 12-column grid at 1024px+,
   single column below. Ghost word behind everything.
   ========================================================== */
.rs-studio {
    --rs-studio-pad: clamp(20px, 5vw, 72px);
    position: relative;
    overflow: hidden;
    background: var(--rs-cream-2);
    color: var(--rs-brown);
    padding: clamp(64px, 12vh, 128px) var(--rs-studio-pad) clamp(72px, 14vh, 150px);
}

.rs-studio__ghost {
    position: absolute;
    z-index: 0;
    left: -0.04em;
    bottom: -0.2em;
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: clamp(110px, 27.8vw, 400px);
    line-height: 1;
    white-space: nowrap;
    color: var(--rs-brown);
    opacity: 0.05;
    pointer-events: none;
    user-select: none;
}

.rs-studio__grid {
    position: relative;
    z-index: 1;
    max-width: 1296px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: clamp(16px, 2.2vw, 32px);
}

/* Head */
.rs-studio__head {
    grid-column: 1 / 13;
}

.rs-studio__label {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: clamp(20px, 2.5vw, 36px);
    font-family: var(--font-sans);
    font-size: clamp(12px, 0.9vw, 13px);
    font-weight: 500;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--rs-brown-3);
}

.rs-studio__label-line {
    width: 48px;
    height: 1px;
    background: var(--rs-brown-3);
}

.rs-page .rs-studio__title {
    font-family: var(--font-serif);
    font-weight: 300;
    line-height: 0.9;
    color: var(--rs-brown);
}

.rs-studio__line-1,
.rs-studio__line-2 {
    display: block;
    font-size: clamp(52px, 8.33vw, 120px);
    letter-spacing: -0.01em;
}

.rs-studio__line-2 {
    margin-left: clamp(0px, 7.7vw, 111px);
    font-style: italic;
    color: var(--rs-tan);
}

.rs-studio__connector {
    font-size: clamp(20px, 3.05vw, 44px);
    letter-spacing: 0;
    font-style: italic;
    color: var(--rs-brown-3);
}

/* Callouts */
.rs-studio__kicker {
    margin-bottom: 16px;
    font-family: var(--font-sans);
    font-size: clamp(12px, 0.9vw, 13px);
    font-weight: 500;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--rs-brown-3);
}

.rs-page .rs-studio__statement {
    margin-bottom: 16px;
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: clamp(32px, 3.33vw, 48px);
    line-height: 1.02;
    color: var(--rs-brown);
}

.rs-page .rs-studio__statement--sm {
    font-size: clamp(28px, 2.64vw, 38px);
    line-height: 1.05;
}

.rs-studio__statement em,
.rs-studio__h-statement em {
    font-style: italic;
    color: var(--rs-tan);
}

.rs-studio__text {
    font-family: var(--font-sans);
    font-size: clamp(16px, 1.18vw, 17px);
    line-height: 1.6;
    font-weight: 300;
    color: var(--rs-brown-3);
}

.rs-studio__rule {
    height: 1px;
    background: var(--rs-brown);
    margin: clamp(32px, 3vw, 44px) 0;
}

/* Desktop placement */
.rs-studio__primary {
    grid-column: 1 / 5;
    grid-row: 2;
    margin-top: clamp(56px, 7.2vw, 104px);
}

.rs-studio__image {
    grid-column: 5 / 13;
    grid-row: 2;
    margin: clamp(56px, 7.2vw, 104px) calc(-1 * var(--rs-studio-pad)) 0 0;
}

.rs-studio__image img {
    width: 100%;
    height: clamp(480px, 90vh, 880px);
    object-fit: cover;
    object-position: 40% 50%;
}

.rs-studio__secondary--1 {
    grid-column: 5 / 10;
    grid-row: 3;
    position: relative;
    margin-top: calc(-1 * clamp(80px, 11.8vw, 170px));
    margin-left: calc(-1 * clamp(24px, 3vw, 44px));
    padding: clamp(28px, 3.3vw, 48px) clamp(32px, 3.9vw, 56px) 0 clamp(24px, 3vw, 44px);
    background: var(--rs-cream-2);
}

.rs-studio__secondary--2 {
    grid-column: 10 / 13;
    grid-row: 3;
    padding-top: clamp(28px, 3.3vw, 48px);
}

/* Hospitality */
.rs-studio__h-label {
    grid-column: 1 / 4;
    grid-row: 4;
    align-self: start;
    max-width: 14em;
    margin-top: clamp(72px, 9.4vw, 136px);
    padding-top: 18px;
    border-top: 1px solid var(--rs-brown);
    font-family: var(--font-sans);
    font-size: clamp(12px, 0.9vw, 13px);
    font-weight: 500;
    letter-spacing: 0.25em;
    line-height: 1.7;
    text-transform: uppercase;
    color: var(--rs-brown-3);
}

.rs-studio__h-body {
    grid-column: 4 / 13;
    grid-row: 4;
    margin-top: clamp(72px, 9.4vw, 136px);
}

.rs-studio__h-statement {
    margin-bottom: clamp(40px, 4.4vw, 64px);
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: clamp(26px, 3.2vw, 46px);
    line-height: 1.18;
    color: var(--rs-brown);
}

.rs-studio__index {
    max-width: 940px;
    border-bottom: 1px solid var(--rs-tan-3);
}

.rs-studio__index-row {
    display: flex;
    gap: clamp(24px, 3.9vw, 56px);
    margin: 0;
    padding: clamp(24px, 2.2vw, 32px) 0;
    border-top: 1px solid var(--rs-tan-3);
}

.rs-studio__index-name {
    flex: 0 0 clamp(170px, 16vw, 230px);
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.2em;
    line-height: 1.6;
    text-transform: uppercase;
    color: var(--rs-brown);
}

.rs-studio__index-text {
    flex: 1 1 auto;
    font-family: var(--font-sans);
    font-size: clamp(17px, 1.32vw, 19px);
    line-height: 1.65;
    font-weight: 300;
    color: var(--rs-brown-3);
}

/* Tablet + phone: single column — head, image, primary, secondary, hospitality */
@media (max-width: 1023px) {
    .rs-studio {
        padding-top: clamp(56px, 8vh, 80px);
        padding-bottom: clamp(64px, 10vh, 96px);
    }

    .rs-studio__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .rs-studio__head,
    .rs-studio__primary,
    .rs-studio__image,
    .rs-studio__secondary--1,
    .rs-studio__secondary--2,
    .rs-studio__h-label,
    .rs-studio__h-body {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .rs-studio__head { order: 1; }
    .rs-studio__image { order: 2; }
    .rs-studio__primary { order: 3; }
    .rs-studio__secondary--1 { order: 4; }
    .rs-studio__secondary--2 { order: 5; }
    .rs-studio__h-label { order: 6; }
    .rs-studio__h-body { order: 7; }

    .rs-studio__line-2 {
        margin-left: 0;
    }

    .rs-studio__image {
        margin: clamp(32px, 5vh, 48px) calc(-1 * var(--rs-studio-pad)) 0;
    }

    .rs-studio__image img {
        height: clamp(280px, 50vh, 520px);
    }

    .rs-studio__primary {
        margin-top: clamp(40px, 6vh, 56px);
    }

    .rs-studio__secondary--1,
    .rs-studio__secondary--2 {
        margin: clamp(32px, 5vh, 44px) 0 0;
        padding: clamp(32px, 5vh, 44px) 0 0;
        border-top: 1px solid var(--rs-brown);
        background: none;
    }

    .rs-studio__h-label {
        max-width: none;
        margin-top: clamp(56px, 8vh, 72px);
    }

    .rs-studio__h-body {
        margin-top: 24px;
    }
}

@media (max-width: 600px) {
    .rs-studio__index-row {
        flex-direction: column;
        gap: 6px;
    }

    .rs-studio__index-name {
        flex: none;
    }
}
/* ==========================================================
   Legal / text pages — editor content via page.php (.rs-legal)
   ========================================================== */
.rs-legal {
    max-width: 860px;
    margin: 0 auto;
    padding: clamp(120px, 18vh, 180px) clamp(20px, 5vw, 40px) clamp(64px, 12vh, 120px);
}

.rs-page .rs-legal__title {
    margin-bottom: clamp(32px, 4vh, 48px);
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: clamp(40px, 4.4vw, 64px);
    line-height: 1.05;
    color: var(--rs-brown);
}

.rs-page .rs-legal__body h2 {
    margin: clamp(32px, 5vh, 48px) 0 12px;
    font-family: var(--font-serif);
    font-weight: 400;
    font-size: clamp(24px, 2.2vw, 32px);
    line-height: 1.2;
    color: var(--rs-brown);
}

.rs-page .rs-legal__body h3 {
    margin: clamp(24px, 4vh, 36px) 0 10px;
    font-family: var(--font-serif);
    font-weight: 400;
    font-size: clamp(20px, 1.7vw, 24px);
    line-height: 1.25;
    color: var(--rs-brown);
}

.rs-page .rs-legal__body p,
.rs-page .rs-legal__body li {
    margin-bottom: 16px;
    font-family: var(--font-sans);
    font-size: clamp(16px, 1.18vw, 17px);
    line-height: 1.7;
    font-weight: 300;
    color: var(--rs-brown-3);
}

.rs-page .rs-legal__body ul,
.rs-page .rs-legal__body ol {
    margin-bottom: 16px;
    padding-left: 1.2em;
}

.rs-page .rs-legal__body ul li { list-style: disc; }
.rs-page .rs-legal__body ol li { list-style: decimal; }

.rs-page .rs-legal__body a {
    color: var(--rs-tan);
    text-decoration: underline;
}