/* ============================================
   OM Notes — Custom Styles
   Extracted from inline <style> block
   ============================================ */

/* Noise grain overlay — DISABLED per user request */

@media (max-width: 1023px) {
    html, body {
        width: 100% !important;
        max-width: 100vw !important;
        overflow-x: hidden !important;
        position: relative !important;
    }
}

/* Emerald glow — used on hero card */
.emerald-glow {
    box-shadow: 0 0 40px -10px rgba(7, 115, 49, 0.2);
}

/* Document box — hover glow intensification */
.doc-card {
    transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.doc-card:hover {
    box-shadow: 0 0 50px -8px rgba(7, 115, 49, 0.35);
}

/* Orange glow — used on pricing card and CTA */
.orange-glow {
    box-shadow: 0 0 60px -15px rgba(255, 118, 19, 0.3);
}

/* Glassmorphism card */
.glass-card {
    background: #1a1c1b;
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

/* FAQ Accordion styles */
.faq-item .faq-answer {
    max-height: 0;
    overflow: hidden;
    padding: 0 2rem; /* Side padding only */
    transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                padding 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.open .faq-answer {
    max-height: 300px;
    padding-bottom: 1.5rem; /* Bottom padding only when open */
}

/* FAQ Accordion Styles (Cherish Stays Style) */
.faq-item { 
    transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); 
    border-width: 1px;
    border-top-color: transparent !important;
    border-left-color: transparent !important;
    border-right-color: transparent !important;
    border-bottom-color: rgba(255, 255, 255, 0.1) !important;
}

.faq-item.open {
    background: #222423;
    border-color: rgba(255, 255, 255, 0.15) !important;
    border-radius: 1.5rem !important;
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.5);
}

.faq-toggle span {
    transition: color 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.open .faq-toggle span {
    color: #FFAC1C; /* Refined vibrant orange for FAQ active state */
}

.faq-item .faq-icon-wrapper {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #6abf78; /* Muted professional green */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
    margin-left: 1rem; /* Reduced buffer for mobile */
}

@media (min-width: 768px) {
    .faq-item .faq-icon-wrapper {
        margin-left: 2rem;
    }
}

.faq-item.open .faq-icon-wrapper {
    transform: rotate(180deg);
    background: #6abf78;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4);
}

.faq-item .faq-icon {
    width: 20px;
    height: 20px;
    background-color: #000000;
    display: block;
    transition: none;
}

/* Icon System */
.icon {
    display: inline-block;
    width: 24px;
    height: 24px;
    background-color: currentColor;
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
}

.faq-toggle {
    transition: padding 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.faq-item.open .faq-toggle {
    padding-top: 1.5rem !important;
    padding-bottom: 0.5rem !important;
    padding-left: 2rem !important;
    padding-right: 2rem !important; /* Back to original to keep icon stable */
}

.faq-content {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    visibility: hidden;
    padding-left: 2rem !important;
    padding-right: 5rem !important; /* Wide buffer for the icon area */
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1), 
                opacity 0.3s ease,
                visibility 0.3s ease;
}

.faq-item.open .faq-content {
    grid-template-rows: 1fr;
    opacity: 1;
    visibility: visible;
    margin-top: 0;
}

.faq-answer-wrapper {
    overflow: hidden;
    min-height: 0; /* Critical for smooth grid-rows transition */
}

.faq-answer-wrapper p {
    padding-bottom: 1.5rem;
}

/* ── Mobile Menu Custom Styles ── */
.menu-dash {
    display: block;
    width: 22px;
    height: 2px;
    background-color: #077331;
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
#menu-toggle.active .menu-dash:nth-child(1) { transform: translateY(4px) rotate(45deg); }
#menu-toggle.active .menu-dash:nth-child(2) { transform: translateY(-4px) rotate(-45deg); }

/* ── Mobile Navbar: always bar mode ── */
@media (max-width: 1023px) {
    #navbar {
        top: 0 !important;
        left: 0 !important;
        transform: none !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 64px !important;
        border-radius: 0 !important;
        border-top: 0 !important;
        border-left: 0 !important;
        border-right: 0 !important;
        background-color: rgba(14, 16, 15, 0.65) !important;
        backdrop-filter: blur(8px) !important;
        -webkit-backdrop-filter: blur(8px) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
}

#mobile-menu-overlay {
    opacity: 0;
    visibility: hidden;
    transition: all 0.4s ease;
    backdrop-filter: blur(8px);
}
#mobile-menu-overlay.active {
    opacity: 1;
    visibility: visible;
}
#mobile-menu-drawer {
    transform: translateY(-10px);
    opacity: 0;
    transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
#mobile-menu-overlay.active #mobile-menu-drawer {
    transform: translateY(0);
    opacity: 1;
}
#mobile-menu-overlay.is-stuck .mobile-menu-container {
    padding-top: 5rem;
}

/* ── Mobile Carousel Styles (Ported from Cherish Stays) ── */
@media (min-width: 1024px) {
    .carousel-card {
        transition: none !important;
    }
}

@media (max-width: 1023px) {
    .carousel-container {
        cursor: grab;
        touch-action: pan-y;
        position: relative;
        overflow: hidden !important;
        width: 100% !important;
    }
    .carousel-container:active {
        cursor: grabbing;
    }

    /* Keep content headings in a single line on mobile to prevent stretching */
    .carousel-card h4,
    #whats-inside h4 {
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        display: block !important;
        width: 100% !important;
    }

    .carousel-track {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: flex-start; /* Fixes padding above the cards */
        overflow: visible;
        padding: 0;
        gap: 0;
        box-sizing: border-box;
    }
    #listings-track {
        height: 580px; /* Snug fit for OM cards on mobile */
    }
    #reviews-track {
        height: 500px; /* Snug fit for 2 stacked review cards on mobile */
    }
    .carousel-card {
        position: absolute;
        width: 90%; /* Balanced width for mobile */
        flex-shrink: 0;
        will-change: transform, opacity, filter;
    }
    .carousel-track::-webkit-scrollbar {
        display: none;
    }
    .carousel-dot {
        transition: all 0.3s ease;
    }
    .carousel-dot.active {
        width: 24px !important;
        background-color: #7ddb8b !important;
        opacity: 1 !important;
    }
}

/* --- Pricing Carousel Styles --- */
@media (max-width: 1023px) {
    .pricing-carousel-container,
    .pricing-carousel-container-11 {
        cursor: grab;
        touch-action: pan-y;
        position: relative;
        overflow: hidden;
        width: 100%;
        padding: 1.25rem 0 1rem 0; /* Reduced top & bottom padding to tighten layout */
    }
    .pricing-carousel-container:active,
    .pricing-carousel-container-11:active {
        cursor: grabbing;
    }
    .pricing-carousel-track {
        position: relative;
        width: 100%;
        height: auto;
        min-height: 540px;
        display: block;
        transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    }
    .pricing-carousel-card {
        position: absolute !important;
        top: 0 !important;
        left: 50% !important;
        width: 100% !important; /* Absolute full-width edge-to-edge */
        max-width: 400px;
        flex-shrink: 0;
        will-change: transform, opacity, filter;
        transform-origin: center center;
    }
    .pricing-carousel-dot.active {
        width: 24px !important;
        background-color: #7ddb8b !important;
        opacity: 1 !important;
    }
    .pricing-carousel-dot.active.orange-dot,
    .pricing-carousel-dot-11.active.orange-dot {
        background-color: #f08000 !important;
    }
    .pricing-carousel-dot-11.active {
        width: 24px !important;
        background-color: #7ddb8b !important;
        opacity: 1 !important;
    }
}
@media (max-width: 1023px) {
    .marquee-container {
        width: 100%;
        overflow: hidden;
        -webkit-mask-image: linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
        mask-image: linear-gradient(to right, transparent 0%, black 15%, black 85%, transparent 100%);
        padding: 0.5rem 0;
    }
    
    .marquee-track {
        display: flex;
        width: max-content;
        animation: marqueeScroll 20s linear infinite;
    }
    
    .marquee-item {
        margin-right: 1.5rem; /* Reduced from 3rem for a tighter flow */
        flex-shrink: 0;
    }

    @keyframes marqueeScroll {
        0% { transform: translateX(0); }
        100% { transform: translateX(-50%); }
    }
}
