/**
 * Holden Villa — Global Site Background
 * Uses compressed main-bg.jpg for faster first paint
 */

html.holdan-v2,
body.holdan-v2 {
    background-color: #0a1628;
}

body.holdan-v2 {
    background-image:
        linear-gradient(180deg, rgba(8, 6, 24, 0.28) 0%, rgba(10, 14, 32, 0.42) 45%, rgba(8, 6, 24, 0.34) 100%),
        url('../img/bg/main-bg.jpg');
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    background-attachment: scroll;
    color: #c8d0e0;
}

/* Inner pages — let body background show through */
body.holdan-v2:not(.page-home) .hv-page-hero,
body.holdan-v2:not(.page-home) .hv-about,
body.holdan-v2:not(.page-home) .hv-gallery,
body.holdan-v2:not(.page-home) .hv-reviews-page,
body.holdan-v2:not(.page-home) .hv-availability,
body.holdan-v2:not(.page-home) .hv-contact,
body.holdan-v2:not(.page-home) .hv-contact-page,
body.holdan-v2:not(.page-home) .hc-page-hero,
body.holdan-v2:not(.page-home) .ha-page-hero,
body.holdan-v2:not(.page-home) .hg-page-hero,
body.holdan-v2:not(.page-home) .hav-page-hero,
body.holdan-v2:not(.page-home) .hc-contact,
body.holdan-v2:not(.page-home) .hc-map,
body.holdan-v2:not(.page-home) .contact_us,
body.holdan-v2:not(.page-home) .map_sec {
    background: transparent !important;
}

/* Page hero — blend with site bg */
body.holdan-v2:not(.page-home) .hv-page-hero {
    background:
        linear-gradient(180deg, rgba(6, 4, 20, 0.72) 0%, rgba(10, 14, 32, 0.45) 70%, transparent 100%) !important;
    position: relative;
    overflow: visible;
}

body.holdan-v2:not(.page-home) .hv-page-hero::after {
    display: none;
}

body.holdan-v2:not(.page-home) .hv-page-hero .hv-display {
    color: #fff;
    text-shadow: 0 4px 24px rgba(0, 0, 0, 0.45);
}

body.holdan-v2:not(.page-home) .hv-page-hero .hv-kicker {
    color: #ffd54f;
}

body.holdan-v2:not(.page-home) .hv-page-hero p {
    color: rgba(200, 208, 224, 0.78);
}

/* Gallery board — glass panel on dark bg */
body.holdan-v2:not(.page-home) .hv-gallery__board {
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 20px;
    padding: 24px;
}

/* Availability frame */
body.holdan-v2:not(.page-home) .hv-availability__frame {
    background: rgba(15, 23, 42, 0.55);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(245, 197, 24, 0.22);
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}

/* Availability — rates table & policy cards (dark glass) */
body.holdan-v2:not(.page-home) .hv-rates-table-wrap {
    background: rgba(15, 23, 42, 0.58);
    backdrop-filter: blur(18px) saturate(1.3);
    -webkit-backdrop-filter: blur(18px) saturate(1.3);
    border: 1px solid rgba(245, 197, 24, 0.28);
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}

body.holdan-v2:not(.page-home) .hv-rates-table thead th {
    background: rgba(8, 12, 28, 0.85);
    color: #f5c518;
    border-bottom: 1px solid rgba(245, 197, 24, 0.25);
}

body.holdan-v2:not(.page-home) .hv-rates-table tbody td {
    color: rgba(210, 218, 235, 0.88);
    border-bottom-color: rgba(255, 255, 255, 0.07);
}

body.holdan-v2:not(.page-home) .hv-rates-table tbody tr:nth-child(even) {
    background: rgba(255, 255, 255, 0.03);
}

body.holdan-v2:not(.page-home) .hv-rates-table tbody tr:hover {
    background: rgba(245, 197, 24, 0.08);
}

body.holdan-v2:not(.page-home) .hv-rates-table .season-name {
    color: #ffd54f;
}

body.holdan-v2:not(.page-home) .hv-rates-table .price {
    color: rgba(220, 228, 245, 0.92);
}

body.holdan-v2:not(.page-home) .hv-policy-card {
    background: rgba(15, 23, 42, 0.58);
    backdrop-filter: blur(18px) saturate(1.3);
    -webkit-backdrop-filter: blur(18px) saturate(1.3);
    border: 1px solid rgba(245, 197, 24, 0.28);
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}

body.holdan-v2:not(.page-home) .hv-policy-card h2 {
    color: #fff;
    border-bottom-color: rgba(245, 197, 24, 0.45);
}

body.holdan-v2:not(.page-home) .hv-policy-card ul,
body.holdan-v2:not(.page-home) .hv-policy-card li,
body.holdan-v2:not(.page-home) .hv-policy-card p {
    color: rgba(200, 208, 224, 0.85);
}

body.holdan-v2:not(.page-home) .hv-availability .hv-section-head .hv-display {
    color: #fff;
}

body.holdan-v2:not(.page-home) .hv-availability .hv-section-head .hv-kicker {
    color: #ffd54f;
}

body.holdan-v2:not(.page-home) .hv-availability .hv-section-head .hv-kicker::before {
    background: #f5c518;
}

/* Reviews page — dark glass cards */
body.holdan-v2:not(.page-home) .hv-reviews-page .single-testimonial,
body.holdan-v2:not(.page-home) .hv-reviews-page .hv-review-card {
    background: rgba(15, 23, 42, 0.58) !important;
    backdrop-filter: blur(18px) saturate(1.3);
    -webkit-backdrop-filter: blur(18px) saturate(1.3);
    border: 1px solid rgba(245, 197, 24, 0.28) !important;
    border-left: 4px solid #f5c518 !important;
    border-radius: 16px !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35) !important;
    transition: transform 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease;
}

body.holdan-v2:not(.page-home) .hv-reviews-page .single-testimonial:hover,
body.holdan-v2:not(.page-home) .hv-reviews-page .hv-review-card:hover {
    transform: translateY(-4px);
    border-color: rgba(245, 197, 24, 0.45) !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(245, 197, 24, 0.12) !important;
}

body.holdan-v2:not(.page-home) .hv-reviews-page .single-testimonial p,
body.holdan-v2:not(.page-home) .hv-reviews-page .hv-review-card p {
    color: rgba(200, 208, 224, 0.88) !important;
}

body.holdan-v2:not(.page-home) .hv-reviews-page .hv-review-card__stars {
    color: #f5c518;
}

body.holdan-v2:not(.page-home) .hv-reviews-page .client-info {
    border-top-color: rgba(245, 197, 24, 0.22) !important;
}

body.holdan-v2:not(.page-home) .hv-reviews-page .client-details h6 {
    color: #fff !important;
}

body.holdan-v2:not(.page-home) .hv-reviews-page .client-details span {
    color: rgba(200, 208, 224, 0.65) !important;
}

body.holdan-v2:not(.page-home) .hv-reviews-page__block + .hv-reviews-page__block {
    margin-top: 56px;
}

body.holdan-v2:not(.page-home) .hv-reviews-page__section-head {
    text-align: center;
    max-width: 760px;
    margin: 0 auto 32px;
}

body.holdan-v2:not(.page-home) .hv-reviews-page__section-head .hv-kicker {
    color: #f5c518;
    margin-bottom: 10px;
}

body.holdan-v2:not(.page-home) .hv-reviews-page__section-head .hv-display {
    color: #fff;
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin: 0 0 12px;
}

body.holdan-v2:not(.page-home) .hv-reviews-page__section-head p {
    color: rgba(200, 208, 224, 0.75);
    margin: 0;
    line-height: 1.7;
}

body.holdan-v2:not(.page-home) .hv-reviews-page__diary-board {
    background: rgba(15, 23, 42, 0.58);
    backdrop-filter: blur(18px) saturate(1.3);
    -webkit-backdrop-filter: blur(18px) saturate(1.3);
    border: 1px solid rgba(245, 197, 24, 0.28);
    border-radius: 20px;
    padding: 24px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
}

body.holdan-v2:not(.page-home) .hv-reviews-page__diary-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
    list-style: none;
    margin: 0;
    padding: 0;
}

body.holdan-v2:not(.page-home) .hv-reviews-page__diary-item {
    margin: 0;
}

body.holdan-v2:not(.page-home) .hv-reviews-page__diary-link {
    position: relative;
    display: block;
    background: linear-gradient(180deg, #fffdf5 0%, #fff8e7 100%);
    border: 1px solid rgba(245, 197, 24, 0.35);
    border-radius: 14px;
    overflow: hidden;
    padding: 10px;
    text-decoration: none;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

body.holdan-v2:not(.page-home) .hv-reviews-page__diary-link:hover {
    transform: translateY(-4px);
    border-color: rgba(245, 197, 24, 0.65);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.28);
}

body.holdan-v2:not(.page-home) .hv-reviews-page__diary-link img {
    width: 100%;
    height: 220px;
    object-fit: contain;
    display: block;
    background: #fff;
    border-radius: 8px;
}

body.holdan-v2:not(.page-home) .hv-reviews-page__diary-zoom {
    position: absolute;
    right: 14px;
    bottom: 14px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.82);
    color: #f5c518;
    font-size: 20px;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25);
}

body.holdan-v2:not(.page-home) .hv-reviews-page__avatar {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid rgba(245, 197, 24, 0.45);
}

body.holdan-v2:not(.page-home) .hv-reviews-page__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 991.98px) {
    body.holdan-v2:not(.page-home) .hv-reviews-page__diary-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 767.98px) {
    body.holdan-v2:not(.page-home) .hv-reviews-page__diary-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }

    body.holdan-v2:not(.page-home) .hv-reviews-page__diary-board {
        padding: 16px;
    }

    body.holdan-v2:not(.page-home) .hv-reviews-page__diary-link img {
        height: 180px;
    }

    body.holdan-v2:not(.page-home) .hv-reviews-page__block + .hv-reviews-page__block {
        margin-top: 44px;
    }
}

@media (max-width: 479.98px) {
    body.holdan-v2:not(.page-home) .hv-reviews-page__diary-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991.98px) {
    body.holdan-v2 {
        background-attachment: scroll;
    }
}

@media (max-width: 767.98px) {
    /* Mobile: hide banner images only — keep page headings */
    body.page-about .ha-page-hero__bg,
    body.page-gallery .hg-page-hero__bg {
        display: none !important;
    }

    body.page-about .ha-page-hero,
    body.page-gallery .hg-page-hero,
    body.page-reviews .hv-page-hero {
        min-height: 0 !important;
        padding: calc(var(--hv-header-h, 72px) + 20px) 0 24px !important;
        overflow: visible;
        display: flex !important;
        align-items: center;
        justify-content: center;
        text-align: center;
        background: transparent !important;
    }

    body.page-reviews .hv-page-hero::after {
        display: none !important;
    }

    /* Availability hero is image-only */
    body.page-availability .hav-page-hero {
        display: none !important;
    }

    body.page-about .ha-story {
        padding-top: 0;
    }

    body.holdan-v2:not(.page-home) .hv-gallery,
    body.holdan-v2:not(.page-home) .hv-reviews-page {
        padding-top: 28px;
    }

    body.page-gallery .hv-gallery__board,
    body.page-gallery .hv-gallery__board.hv-reveal {
        opacity: 1 !important;
        transform: none !important;
    }

    /* Reviews: force testimonials visible (hv-reveal can stay at opacity 0 on mobile) */
    body.page-reviews .hv-reviews-page__block,
    body.page-reviews .hv-reviews-page__block.hv-reveal,
    body.page-reviews .hv-reveal {
        opacity: 1 !important;
        transform: none !important;
        visibility: visible !important;
    }

    body.page-reviews .hv-reviews-page__grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 14px;
    }

    body.page-reviews .hv-reviews-page .single-testimonial,
    body.page-reviews .hv-reviews-page .hv-review-card {
        display: block !important;
        opacity: 1 !important;
        visibility: visible !important;
        height: auto !important;
        min-height: 0 !important;
    }

    body.holdan-v2:not(.page-home) .hv-availability {
        padding-top: calc(var(--hv-header-h, 72px) + 16px);
    }

    body.page-availability .hv-rates-table-wrap,
    body.page-availability .hv-rates-table-wrap.hv-reveal,
    body.page-availability .hv-section-head,
    body.page-availability .hv-section-head.hv-reveal,
    body.page-availability .hv-policy-grid,
    body.page-availability .hv-policy-grid.hv-reveal {
        opacity: 1 !important;
        transform: none !important;
    }

    body.page-availability .hv-rates-table tbody td::before {
        color: #ffd54f !important;
    }
}
