/* Silver Rock Website V1.23 — circular brand navigation, welcome slider, reviews and editorial footer */

/* Circular navigation logo inspired by the supplied hotel references. */
.ober-nav,
.ober-nav-inner { overflow: visible; }

.ober-logo-circle {
    position: relative;
    width: 154px !important;
    height: 154px;
    align-self: start;
    margin-top: 8px;
    padding: 14px !important;
    border: 1px solid rgba(116, 78, 49, .18);
    border-radius: 50%;
    background: linear-gradient(145deg, #fffdf9, #f1e8dc);
    box-shadow: 0 16px 38px rgba(58, 38, 25, .16), inset 0 0 0 7px rgba(255,255,255,.66);
    transition: width .25s ease, height .25s ease, margin .25s ease, box-shadow .25s ease;
}

.ober-logo-circle::after {
    content: '';
    position: absolute;
    inset: 8px;
    border: 1px solid rgba(171, 124, 65, .26);
    border-radius: inherit;
    pointer-events: none;
}

.ober-logo-circle img,
.ober-nav.scrolled .ober-logo-circle img {
    width: 100%;
    height: 100%;
    max-height: none !important;
    object-fit: contain;
    position: relative;
    z-index: 1;
}

.ober-nav.scrolled .ober-logo-circle {
    width: 124px !important;
    height: 124px;
    margin-top: 5px;
    padding: 12px !important;
    box-shadow: 0 12px 28px rgba(58, 38, 25, .14), inset 0 0 0 6px rgba(255,255,255,.7);
}

/* Welcome photo carousel */
.welcome-photo-slider {
    position: relative;
    isolation: isolate;
}

.welcome-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 1s ease, visibility 1s ease;
}

.welcome-slide.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 1;
}

.welcome-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1.01);
    transition: transform 6s ease;
}

.welcome-slide.is-active img { transform: scale(1.055); }

.welcome-slide-caption {
    position: absolute;
    left: 1.2rem;
    bottom: 1.2rem;
    z-index: 3;
    padding: .58rem .85rem;
    border-radius: 999px;
    background: rgba(27,19,14,.77);
    color: #fff;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .13em;
    text-transform: uppercase;
    backdrop-filter: blur(7px);
}

.welcome-slider-arrow {
    position: absolute;
    top: 50%;
    z-index: 5;
    width: 46px;
    height: 46px;
    margin-top: -23px;
    border: 1px solid rgba(255,255,255,.62);
    border-radius: 50%;
    background: rgba(255,255,255,.88);
    color: #35241b;
    font-family: Georgia, serif;
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 9px 26px rgba(35,24,17,.16);
    transition: transform .2s ease, background .2s ease;
}
.welcome-slider-arrow:hover { transform: scale(1.06); background: #fff; }
.welcome-slider-prev { left: 1rem; }
.welcome-slider-next { right: 1rem; }

.welcome-slider-dots {
    position: absolute;
    right: 1.1rem;
    bottom: 1.15rem;
    z-index: 5;
    display: flex;
    gap: .48rem;
}
.welcome-slider-dots button {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 1px solid rgba(255,255,255,.86);
    border-radius: 50%;
    background: rgba(255,255,255,.42);
    cursor: pointer;
    transition: width .25s ease, border-radius .25s ease, background .25s ease;
}
.welcome-slider-dots button.is-active {
    width: 28px;
    border-radius: 999px;
    background: #fff;
}

/* Guest reviews styled after the supplied resort reference, without copying its content. */
.guest-reviews-section {
    position: relative;
    overflow: hidden;
    padding: clamp(5rem, 8vw, 8rem) 5%;
    background:
        radial-gradient(circle at 8% 16%, rgba(195,143,77,.09), transparent 24rem),
        radial-gradient(circle at 94% 86%, rgba(93,123,107,.08), transparent 28rem),
        #fffdf9;
    color: #302019;
}
.guest-reviews-section::before {
    content: '“';
    position: absolute;
    top: -4.5rem;
    left: 2.5%;
    color: rgba(194,139,70,.06);
    font-family: 'Cormorant Garamond', serif;
    font-size: 28rem;
    line-height: 1;
    pointer-events: none;
}
.guest-reviews-shell { position: relative; z-index: 1; max-width: 1380px; margin: 0 auto; }
.guest-reviews-header { max-width: 770px; margin: 0 auto 3.2rem; text-align: center; }
.guest-reviews-eyebrow { color: #9a6c35; font-size: .76rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }
.guest-reviews-header h2 { margin: .7rem 0 1rem; font-family: 'Cormorant Garamond', serif; font-size: clamp(2.8rem, 5vw, 4.8rem); font-weight: 500; line-height: 1; }
.guest-reviews-header > p:last-child { color: #75665d; font-size: .96rem; line-height: 1.8; }
.guest-review-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.4rem; }
.guest-review-card {
    position: relative;
    min-height: 390px;
    padding: 3.8rem 2rem 2rem;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(86,61,45,.13);
    border-radius: 1.3rem 1.3rem 4rem 1.3rem;
    background: rgba(255,255,255,.88);
    box-shadow: 0 18px 42px rgba(66,45,30,.08);
}
.guest-review-quote { position: absolute; top: -1.25rem; left: 1.8rem; color: #dfac6d; font-family: Georgia, serif; font-size: 5.8rem; line-height: 1; }
.guest-review-card h3 { margin: 0 0 1.25rem; font-family: 'Cormorant Garamond', serif; font-size: 1.65rem; font-weight: 600; text-align: center; }
.guest-review-card > p { margin: 0; color: #695d55; font-size: .94rem; line-height: 1.9; text-align: center; }
.guest-review-author { margin: auto 0 1.3rem; padding-top: 1.6rem; text-align: center; }
.guest-review-author strong { display: block; color: #302019; font-size: .92rem; letter-spacing: .06em; text-transform: uppercase; }
.guest-review-author span { display: block; margin-top: .35rem; color: #97877b; font-size: .75rem; }
.guest-review-card > a { display: inline-flex; align-self: center; gap: .45rem; color: #7c5530; font-size: .72rem; font-weight: 600; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.guest-review-card > a:hover { color: #3d281d; }
.review-platforms { margin-top: 3.1rem; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; align-items: stretch; }
.review-platform {
    min-height: 138px;
    padding: 1.25rem 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .7rem;
    border: 1px solid rgba(86,61,45,.11);
    border-radius: 1rem;
    background: #fff;
    text-decoration: none;
    box-shadow: 0 10px 25px rgba(66,45,30,.05);
    transition: transform .25s ease, box-shadow .25s ease;
}
.review-platform:hover { transform: translateY(-5px); box-shadow: 0 20px 38px rgba(66,45,30,.10); }
.review-platform img { display: block; width: auto; max-width: 230px; height: 56px; object-fit: contain; }
.review-platform span { color: #6e6158; font-size: .74rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }

/* Pale botanical footer with a branded brown lower band. */
.page-footer {
    position: relative;
    overflow: hidden;
    padding-bottom: 0 !important;
    background: #f4eee8 url('../images/footer-botanical-pattern.svg') center top / cover no-repeat !important;
    color: #4a3328;
}
.footer-plan {
    position: relative;
    z-index: 1;
    background: linear-gradient(110deg,#5d4032,#74503e) !important;
    border-bottom: 0 !important;
}
.footer-columns {
    position: relative;
    z-index: 1;
    padding-top: 4.3rem !important;
    padding-bottom: 4rem !important;
}
.footer-col-brand img.footer-silver-logo { height: 110px !important; width: auto; }
.footer-mokawa-logo { width: 116px !important; height: 116px !important; }
.footer-col-brand p,
.footer-col p,
.footer-col a { color: #5f4c42 !important; }
.footer-col h4 { color: #684735 !important; }
.footer-col a:hover { color: #a36c34 !important; }
.footer-col p i { color: #4d7568 !important; }
.footer-social a {
    width: 44px !important;
    height: 44px !important;
    background: #684735 !important;
    border: 1px solid rgba(104,71,53,.12);
}
.footer-social a:hover { background: #4f382e !important; transform: translateY(-2px); }
.footer-social a img { width: 18px !important; height: 18px !important; filter: brightness(0) invert(1); }
.footer-brand-band {
    position: relative;
    z-index: 1;
    min-height: 170px;
    padding: 2.4rem 5%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(2rem,5vw,5rem);
    background: #684735;
    border-top: 1px solid rgba(255,255,255,.14);
}
.footer-band-silver,
.footer-band-mokawa { display: flex; align-items: center; justify-content: center; text-decoration: none; }
.footer-band-silver { width: 225px; height: 112px; padding: .65rem 1rem; border-radius: .9rem; background: rgba(255,255,255,.94); }
.footer-band-silver img { width: 100%; height: 100%; object-fit: contain; }
.footer-band-mokawa { gap: 1.2rem; color: #fff; }
.footer-band-mokawa img { width: 94px; height: 94px; object-fit: contain; filter: brightness(0) invert(1); }
.footer-band-mokawa span { max-width: 240px; color: rgba(255,255,255,.84); font-size: .82rem; letter-spacing: .13em; line-height: 1.6; text-transform: uppercase; }
.footer-band-divider { width: 1px; height: 74px; background: rgba(255,255,255,.22); }
.footer-bottom {
    max-width: none !important;
    margin: 0 !important;
    padding: 1.35rem 5% !important;
    border-top: 1px solid rgba(255,255,255,.13) !important;
    background: #4f382e;
    color: rgba(255,255,255,.68) !important;
}

@media (max-width: 1120px) {
    .ober-logo-circle { width: 136px !important; height: 136px; }
    .ober-nav.scrolled .ober-logo-circle { width: 112px !important; height: 112px; }
}
@media (max-width: 900px) {
    .ober-logo-circle,
    .ober-nav.scrolled .ober-logo-circle { width: 94px !important; height: 94px; margin-top: 4px; padding: 9px !important; }
    .guest-review-grid { grid-template-columns: 1fr; }
    .guest-review-card { min-height: 330px; }
    .review-platforms { grid-template-columns: 1fr; }
    .footer-brand-band { flex-direction: column; gap: 1.5rem; }
    .footer-band-divider { width: 100px; height: 1px; }
}
@media (max-width: 600px) {
    .ober-logo-circle,
    .ober-nav.scrolled .ober-logo-circle { width: 82px !important; height: 82px; padding: 8px !important; }
    .welcome-slider-arrow { width: 40px; height: 40px; margin-top: -20px; }
    .welcome-slide-caption { left: .8rem; bottom: .8rem; font-size: .62rem; }
    .welcome-slider-dots { right: .8rem; bottom: .85rem; }
    .guest-reviews-section { padding-inline: 1.15rem; }
    .guest-review-card { padding-inline: 1.35rem; }
    .review-platform img { max-width: 190px; height: 48px; }
    .footer-band-mokawa { flex-direction: column; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
    .welcome-slide,
    .welcome-slide img,
    .ober-logo-circle { transition: none !important; }
}

/* Keep anchored sections clear of the larger circular navigation mark. */
html { scroll-padding-top: 176px !important; }
section[id] { scroll-margin-top: 176px; }

/* Keep the in-column MOKAWA lockup visible on the pale botanical background. */
.footer-managed-label { color: #7b665a !important; }
.footer-col-brand .footer-mokawa-logo {
    filter: none !important;
    opacity: .78;
    width: 92px !important;
    height: 92px !important;
}
.footer-col-brand .footer-mokawa-link { background: rgba(255,255,255,.58); border-radius: .75rem; padding: .45rem .7rem; }

@media (max-width: 900px) {
    html { scroll-padding-top: 112px !important; }
    section[id] { scroll-margin-top: 112px; }
}
