/*
Theme Name:  Luxury Heaven
Theme URI:   https://greativesoft.com
Author:      Suman Khadka
Author URI:  https://sumankhadka.net
Description: A clean, elegant luxury WordPress theme.
Version:     1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 8.0
License:     GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: luxury-heaven
Tags:        one-column, two-columns, right-sidebar, custom-colors, custom-logo, custom-menu, featured-images, footer-widgets, full-width-template, sticky-post, threaded-comments, translation-ready, blog, e-commerce, luxury
*/


@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&amp;family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&amp;display=swap");
:root {
            --forest: #16191B;
            --gold: #F9B545;
            --cream: #F8F6F0;
        }
@font-face {
    font-family: "Sitka";
    src: url("./assets/fonts/sitka-small-599.ttf") format("truetype");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Sitka";
    src: url("./assets/fonts/sitka-small-652.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Sitka";
    src: url("./assets/fonts/sitka-small-815.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
        html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
        body { font-family: 'Poppins', system-ui, sans-serif; background: #fff; color: #1A1A1A; }
        ::selection { background: rgba(22, 25, 27, 0.15); }

        ::-webkit-scrollbar { width: 8px; }
        ::-webkit-scrollbar-track { background: #F8F6F0; }
        ::-webkit-scrollbar-thumb { background: #C8C4B8; border-radius: 4px; }
        ::-webkit-scrollbar-thumb:hover { background: #16191B; }

        .hero-title {
    font-family: "Sitka", serif;
    font-weight: 700;
}

.section-title {
    font-family: "Sitka", serif;
    font-weight: 400;
}

.small-heading {
    font-family: "Sitka", serif;
    font-weight: 300;
}
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Sitka", serif;
}
        /* Navbar */
        .navbar { transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); }
        .navbar.scrolled {
            background: rgba(255,255,255,0.95);
            backdrop-filter: blur(20px);
            box-shadow: 0 1px 20px rgba(0,0,0,0.05);
            padding-top: 0.75rem;
            padding-bottom: 0.75rem;
        }
        .navbar.scrolled .nav-text { color: #16191B; }
        .navbar.scrolled .nav-sub { color: #F9B545; }

        /* Hero */
        .hero-title span {
            display: inline-block; opacity: 0; transform: translateY(30px);
            animation: fadeInUp 0.8s ease forwards;
        }
        @keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } }

        .scroll-indicator { animation: bounceDown 2s infinite; }
        @keyframes bounceDown {
            0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
            40% { transform: translateY(8px); }
            60% { transform: translateY(4px); }
        }

        /* Cloud Separator */
        .cloud-separator {
            position: relative;
            height: 120px;
            margin-top: -60px;
            z-index: 10;
            overflow: hidden;
        }
        .cloud-separator svg {
            width: 100%;
            height: 100%;
            display: block;
        }

        /* Buttons */
        .btn-primary { position: relative; overflow: hidden; transition: all 0.4s ease; }
        .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(22, 25, 27, 0.25); }

        .btn-outline-gold {
            transition: all 0.4s ease; position: relative;
        }
        .btn-outline-gold::after {
            content: ''; position: absolute; bottom: -2px; left: 0;
            width: 0; height: 1px; background: var(--gold);
            transition: width 0.3s ease;
        }
        .btn-outline-gold:hover::after { width: 100%; }

        /* Room Cards - Full Width Alternating */
        .room-section { position: relative; overflow: hidden; }
        .room-section .room-img {
            transition: transform 0.8s cubic-bezier(0.4,0,0.2,1);
        }
        .room-section:hover .room-img {
            transform: scale(1.03);
        }

        /* Frosted Panel */
        .frosted-panel {
            background: rgba(255,255,255,0.92);
            backdrop-filter: blur(24px) saturate(150%);
            -webkit-backdrop-filter: blur(24px) saturate(150%);
        }

        /* Experience Separator Lines */
        .exp-separator {
            display: flex;
            align-items: center;
            gap: 12px;
            margin-bottom: 1.5rem;
        }
        .exp-separator .line {
            width: 40px;
            height: 1px;
            background: #F9B545;
        }
        .exp-separator .dot {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: #F9B545;
        }

        /* Attraction Cards */
        .attraction-card { transition: all 0.5s ease; }
        .attraction-card:hover { transform: translateY(-6px); }
        .attraction-card .attraction-img { transition: transform 0.7s ease; }
        .attraction-card:hover .attraction-img { transform: scale(1.08); }

        /* Gallery */
        .gallery-item { overflow: hidden; border-radius: 12px; cursor: pointer; }
        .gallery-item img { transition: transform 0.6s ease; }
        .gallery-item:hover img { transform: scale(1.08); }

        /* Lightbox */
        .lightbox {
            position: fixed; inset: 0; z-index: 9999;
            background: rgba(26,26,26,0.95);
            display: flex; align-items: center; justify-content: center;
            opacity: 0; visibility: hidden;
            transition: all 0.4s ease;
        }
        .lightbox.active { opacity: 1; visibility: visible; }
        .lightbox img { max-width: 90vw; max-height: 85vh; border-radius: 8px; }

        /* Swiper */
        .testimonial-swiper .swiper-pagination-bullet {
            background: rgba(22, 25, 27, 0.2); width: 10px; height: 10px;
        }
        .testimonial-swiper .swiper-pagination-bullet-active {
            background: #16191B; width: 28px; border-radius: 5px;
        }

        /* Mobile Menu */
        .mobile-menu { transform: translateX(100%); transition: transform 0.5s ease; }
        .mobile-menu.active { transform: translateX(0); }

        .hamburger span { display: block; width: 24px; height: 2px; background: currentColor; transition: all 0.3s ease; }
        .hamburger.active span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
        .hamburger.active span:nth-child(2) { opacity: 0; }
        .hamburger.active span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }

        /* Footer mountain */
        .footer-top-shape {
            position: absolute; top: -80px; left: 0; right: 0; height: 80px;
            background: #16191B;
            clip-path: polygon(0% 100%, 5% 60%, 10% 80%, 15% 40%, 20% 70%, 25% 30%, 30% 60%, 35% 20%, 40% 50%, 45% 35%, 50% 55%, 55% 25%, 60% 45%, 65% 30%, 70% 50%, 75% 35%, 80% 55%, 85% 40%, 90% 60%, 95% 45%, 100% 70%, 100% 100%);
        }

        /* Toast */
        #toast {
            position: fixed; bottom: 24px; right: 24px; z-index: 50;
            background: #16191B; color: white;
            padding: 14px 24px; border-radius: 12px;
            transform: translateY(100px); opacity: 0;
            transition: all 0.4s ease;
        }
        #toast.show { transform: translateY(0); opacity: 1; }

        .gold-line { width: 40px; height: 1px; background: #F9B545; }

        .nav-link-item { position: relative; }
        .nav-link-item::after {
            content: ''; position: absolute; bottom: -4px; left: 0;
            width: 0; height: 1.5px; background: #16191B;
            transition: width 0.3s ease;
        }
        .nav-link-item:hover::after { width: 100%; }

        /* Rooms Redesign - Snap Slider, Liquid Glass Overlay, and mobile-first styles */
        .rooms-slider-wrapper {
            position: relative;
            width: 100%;
            overflow: hidden;
        }

        .rooms-slider {
            display: flex;
            overflow-x: auto;
            scroll-snap-type: x mandatory;
            scroll-behavior: smooth;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none; /* Firefox */
        }
        .rooms-slider::-webkit-scrollbar {
            display: none; /* Safari and Chrome */
        }

        .room-slide {
            flex: 0 0 100%;
            width: 100%;
            min-height: 90vh;
            min-height: 90dvh;
            scroll-snap-align: start;
            scroll-snap-stop: always;
            position: relative;
            display: flex;
            align-items: center;
        }

        @media (min-width: 1024px) {
            .room-slide {
                height: 100vh;
                min-height: 700px;
            }
        }

        /* Liquid Glass Card Effect */
        .liquid-glass {
            background: rgba(220, 218, 205, 0.58);
            backdrop-filter: blur(28px) saturate(140%);
            -webkit-backdrop-filter: blur(28px) saturate(140%);
            box-shadow: 0 12px 40px 0 rgba(0, 0, 0, 0.12);
            border: 1px solid rgba(255, 255, 255, 0.25);
            transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        }

        @media (min-width: 1024px) {
            .liquid-glass {
                background: rgba(218, 215, 201, 0.55);
                border: none;
                border-right: 1px solid rgba(255, 255, 255, 0.2);
                border-radius: 0;
            }
        }

        /* Custom details link with dotted border underneath */
        .dotted-underline {
            border-bottom: 2px dotted #16191B;
            padding-bottom: 2px;
            transition: all 0.3s ease;
        }
        .dotted-underline:hover {
            border-bottom-color: #F9B545;
            color: #F9B545 !important;
        }

        /* Nav controls */
        .slider-arrow {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            width: 56px;
            height: 56px;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.18);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border: 1px solid rgba(255, 255, 255, 0.25);
            color: #ffffff;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            z-index: 20;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
        }
        .slider-arrow:hover {
            background: rgba(255, 255, 255, 0.32);
            transform: translateY(-50%) scale(1.06);
            color: #ffffff;
            border-color: rgba(255, 255, 255, 0.45);
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
        }
        .slider-arrow.prev { left: 24px; }
        .slider-arrow.next { right: 24px; }

        @media (max-width: 1023px) {
            .slider-arrow {
                display: none; /* Swiping handles it on mobile */
            }
        }

        .slider-dots {
            position: absolute;
            bottom: 32px;
            left: 50%;
            transform: translateX(-50%);
            display: flex;
            gap: 12px;
            z-index: 20;
            background: rgba(255, 255, 255, 0.15);
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
            padding: 8px 16px;
            border-radius: 99px;
            border: 1px solid rgba(255, 255, 255, 0.15);
        }
        .slider-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.45);
            cursor: pointer;
            transition: all 0.3s ease;
        }
        .slider-dot.active {
            background: #16191B;
            transform: scale(1.25);
        }

        /* ==========================================================================
   LUXURY CONTENT WRAPPER (For WP the_content outputs)
   ========================================================================== */

.luxury-content {
    color: rgba(22, 25, 27, 0.8); /* #16191B at 80% */
    font-size: 1.05rem;
    line-height: 1.8;
}

/* Headings */
.luxury-content h1, 
.luxury-content h2, 
.luxury-content h3, 
.luxury-content h4, 
.luxury-content h5, 
.luxury-content h6 {
    font-family: 'Playfair Display', serif; /* Or whatever your font-display is */
    color: #16191B;
    font-weight: 300;
    margin-top: 2.5em;
    margin-bottom: 1em;
    line-height: 1.3;
}

.luxury-content h2 { font-size: 2.25rem; }
.luxury-content h3 { font-size: 1.75rem; }

/* Paragraphs & Links */
.luxury-content p {
    margin-bottom: 1.5em;
}

.luxury-content a {
    color: #16191B;
    border-bottom: 1px dotted #F9B545;
    transition: color 0.3s ease;
}

.luxury-content a:hover {
    color: #F9B545;
}

/* Lists */
.luxury-content ul, 
.luxury-content ol {
    margin-bottom: 1.5em;
    padding-left: 1.5em;
}

.luxury-content ul { list-style-type: none; }
.luxury-content ul li { position: relative; margin-bottom: 0.5em; }
.luxury-content ul li::before {
    content: "•";
    color: #F9B545;
    position: absolute;
    left: -1em;
    font-size: 1.2em;
}

.luxury-content ol { list-style-type: decimal; }

/* Blockquotes (Editorial Style) */
.luxury-content blockquote {
    font-family: 'Playfair Display', serif;
    font-size: 1.5rem;
    font-style: italic;
    color: #16191B;
    border-left: 3px solid #F9B545;
    padding-left: 1.5rem;
    margin: 2.5rem 0;
    line-height: 1.6;
}

/* Images & Figures */
.luxury-content img {
    max-width: 100%;
    height: auto;
    border-radius: 2px;
    margin: 2rem 0;
}

.luxury-content figcaption {
    text-align: center;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: rgba(22, 25, 27, 0.5);
    margin-top: -1rem;
    margin-bottom: 2rem;
}

/* Drop-cap for single post */
.luxury-content.drop-cap > p:first-of-type::first-letter {
    font-family: 'Playfair Display', serif;
    float: left;
    font-size: 4.5rem;
    line-height: 0.8;
    margin-right: 0.15em;
    margin-bottom: -0.1em;
    color: #F9B545;
}

/* Pagination Styling for Archive */
.luxury-pagination .nav-links {
    display: flex;
    gap: 1rem;
    align-items: center;
}
.luxury-pagination .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid rgba(22, 25, 27, 0.1);
    color: #16191B;
    font-size: 0.875rem;
    font-weight: bold;
    transition: all 0.3s ease;
}
.luxury-pagination .page-numbers.current,
.luxury-pagination .page-numbers:hover {
    background: #F9B545;
    border-color: #F9B545;
    color: #16191B;
}