@import url('https://fonts.googleapis.com/css2?family=Great+Vibes&display=swap');
/* Film Labs — HTML version */
:root{
  --bg:#fdfaf3; --fg:#2b2218; --muted:#7a6f5f; --card:#ffffff;
  --border:#e8dfce; --gold:#c8a35a; --gold-soft:#e8cf94; --cream:#f7efde;
  --shadow-card:0 6px 24px -10px rgba(80,60,30,.14);
  --shadow-soft:0 18px 50px -20px rgba(180,140,70,.28);
  --shadow-gold:0 10px 30px -10px rgba(200,163,90,.45);
  --gradient-gold:linear-gradient(135deg,#e2c180,#b88a3d);
  --gradient-cream:linear-gradient(180deg,#fffaf0,#f3e7c8);
}
.fl-cookie-footer-link{display:none !important;}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;width:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;width:100%}
h1,h2,h3,h4,.font-display{font-family:'Outfit',Georgia,serif;letter-spacing:-.01em;margin:0}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

.container-x{max-width:1200px;margin:0 auto;padding:0 1.25rem}
.gold-text{background:var(--gradient-gold);-webkit-background-clip:text;background-clip:text;color:transparent}
.gold-divider{height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);width:8rem;margin:1.25rem auto}
.eyebrow{text-transform:uppercase;letter-spacing:.3em;font-size:.7rem;color:var(--gold);margin-bottom:.6rem;display:block}

/* Buttons */
.btn-gold{display:inline-flex;align-items:center;gap:.5rem;background:var(--gradient-gold);color:#fff;border:0;padding:.85rem 1.6rem;border-radius:999px;font-weight:500;box-shadow:var(--shadow-gold);transition:transform .3s ease}
.btn-gold:hover{transform:scale(1.05);color:#fff}
.btn-outline-gold{display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.85);backdrop-filter:blur(8px);border:1px solid rgba(200,163,90,.4);padding:.8rem 1.55rem;border-radius:999px;font-weight:500;color:var(--fg);transition:.3s}
.btn-outline-gold:hover{background:#fff;color:var(--gold)}

/* Navbar */
.nav-wrap{position:fixed;top:0;left:0;right:0;z-index:50;transition:.4s}
.nav-wrap.scrolled{background:rgba(253,250,243,.9);backdrop-filter:blur(10px);box-shadow:var(--shadow-card);border-bottom:1px solid var(--border)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:80px}
.brand{display:flex;align-items:center;gap:.6rem;font-family:'Outfit',serif;font-size:1.5rem}
.brand-mark{width:40px;height:40px;border-radius:50%;background:var(--gradient-gold);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:var(--shadow-gold)}
.nav-links{display:flex;gap:2rem;list-style:none;margin:0;padding:0}
.nav-links a{font-size:.9rem;font-weight:500;color:rgba(43,34,24,.8);position:relative}
.nav-links a:hover,.nav-links a.active{color:var(--gold)}
.nav-links a::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--gradient-gold);transition:.3s}
.nav-links a:hover::after,.nav-links a.active::after{width:100%}
.menu-btn{display:none;background:none;border:0;font-size:1.5rem;color:var(--fg)}
.mobile-menu-header { display: none; }
.menu-icon, .mobile-cta-li, .mobile-socials { display: none; }
@media(max-width:991px){
  .nav-cta{display:none}
  .menu-btn{display:block}
  /* Mobile Menu Styles */
  .nav-links{display:flex; flex-direction:column; gap:0.25rem; position:fixed; top:0; right:-360px; width:360px; max-width:100%; height:100vh; background:#ffffff; border-left:1px solid var(--border); padding:2rem 1.75rem; box-shadow:-10px 0 40px rgba(0,0,0,0.1); transition:right 0.4s cubic-bezier(0.16, 1, 0.3, 1); z-index:10000; overflow-y:auto;}
  .nav-links.open{right:0;}
  /* Overlay Effect */
  .nav-links::before { content: ''; position: fixed; inset: 0; background: rgba(255, 255, 255, 0.85); z-index: -1; opacity: 0; visibility: hidden; transition: 0.4s ease; pointer-events: none; }
  .nav-links.open::before { opacity: 1; visibility: visible; pointer-events: auto; }
  
  .menu-icon { display: inline-block; margin-right: 14px; font-size: 1.15em; color: var(--gold); }
  .mobile-cta-li { display: block; margin-top: 1.5rem; }
  .nav-links .mobile-cta-li a { color: #ffffff !important; font-weight: 600; padding: 1rem; border-radius: 999px; }
  .mobile-socials { display: flex; justify-content: space-around; gap: 1rem; margin-top: auto; padding-top: 2rem; border-top: 1px dashed var(--border); }
  .mobile-socials a { font-size: 1.35rem; color: var(--muted); padding: 0 !important; background: transparent !important; box-shadow: none !important; border: none !important; transition: 0.3s; }
  .mobile-socials a:hover { color: var(--gold) !important; transform: translateY(-3px); }
  
  .nav-links > li:not(.mobile-cta-li):not(.mobile-socials):not(.mobile-menu-header) > a {
    font-weight: 500;
    font-size: 1.1rem;
    padding: 1rem 0.5rem;
    display: flex;
    align-items: center;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(0,0,0,0.04);
    border-radius: 0;
    color: var(--fg);
    transition: all 0.3s ease;
  }
  .nav-links > li:not(.mobile-cta-li):not(.mobile-socials):not(.mobile-menu-header):last-of-type > a {
    border-bottom: none;
  }
  .nav-links > li:not(.mobile-cta-li):not(.mobile-socials):not(.mobile-menu-header) > a:hover, 
  .nav-links > li:not(.mobile-cta-li):not(.mobile-socials):not(.mobile-menu-header) > a.active {
    background: transparent;
    box-shadow: none;
    color: var(--gold);
    padding-left: 12px;
  }
  .nav-links > li:not(.mobile-cta-li):not(.mobile-socials):not(.mobile-menu-header) > a.active {
    color: var(--gold);
    font-weight: 600;
  }
  .nav-links > li.has-dropdown > a .bi-chevron-down {
    transition: 0.4s ease;
  }
  .nav-links > li.has-dropdown.open-dropdown > a .bi-chevron-down {
    transform: rotate(180deg);
    color: var(--gold);
  }
  
  .nav-links a::after { display: none !important; }
  
  .nav-links .mobile-menu-header { display: flex !important; justify-content: space-between; align-items: center; padding-bottom: 1.5rem; margin-bottom: 1rem; border-bottom: 1px solid rgba(0,0,0,0.06); }
  .close-menu-btn { background: #faf8f5; border: 1px solid var(--border); font-size: 1.1rem; color: var(--fg); cursor: pointer; padding: 0; width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: 0.3s; }
  .close-menu-btn:hover { background: var(--gradient-gold); color: #fff; transform: rotate(90deg); border-color: transparent; }
  .menu-title { display: block; font-family: 'Outfit', serif; font-size: 1.6rem; font-weight: 600; color: var(--fg); }
  
  /* Dropdown Accordion */
  .nav-links .dropdown-menu-custom {
    background: #faf8f5; border: 1px solid transparent; border-radius: 12px; box-shadow: inset 0 2px 10px rgba(0,0,0,0.02); max-height: 0; padding: 0; margin-top: 0; overflow: hidden; transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); position: static; opacity: 0;
  }
  .nav-links li.has-dropdown { padding-bottom: 0; margin-bottom: 0; }
  .nav-links li.has-dropdown.open-dropdown .dropdown-menu-custom { max-height: 600px; padding: 0.5rem 0; margin-top: 0.5rem; opacity: 1; border-color: var(--border); }
  .nav-links .dropdown-menu-custom li a {
    padding: 0.75rem 1.5rem;
    font-size: 0.95rem;
    background: transparent; border: none; box-shadow: none;
    border-radius: 0;
    display: block;
    color: var(--muted);
    transition: 0.2s ease;
  }
  .nav-links .dropdown-menu-custom li a:hover {
    color: var(--gold);
    background: rgba(200,163,90,0.08);
    padding-left: 2rem;
  }
}


/* Hero Full Image */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.05)}
.hero .veil{position:absolute;inset:0;background:linear-gradient(to bottom, rgba(247,239,222,0.6) 0%, rgba(247,239,222,0.3) 60%, var(--bg) 100%);}
.hero .content{position:relative;text-align:center;padding:0 1.25rem;max-width:60rem;animation:fadeUp .8s ease both;color:var(--fg); z-index:2;}
.hero h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(3.5rem,7vw,6rem);line-height:1.05;color:var(--fg); margin-bottom:1rem;}
.hero h1 em.gold-text{color:var(--gold) !important;}
.hero p.lead{margin-top:1.25rem;font-size:1.15rem;color:var(--fg);max-width:38rem;margin-left:auto;margin-right:auto;font-weight:500;line-height:1.6;}
.hero .eyebrow{color:var(--gold);letter-spacing:0.2em;text-transform:uppercase;font-size:0.85rem;font-weight:700;display:block;margin-bottom:1.5rem;}
.hero .ctas{margin-top:2.5rem;display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}

@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.fade-in{animation:fadeUp .8s ease both}

/* Sections */
section:not(.page-header):not(.hero-slider-wrap):not(.pt-0):not(.pb-0) { 
    padding-top: clamp(2.5rem, 5vw, 4rem) !important; 
    padding-bottom: clamp(2.5rem, 5vw, 4rem) !important; 
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
@media (max-width: 579px) {
    section:not(.page-header):not(.hero-slider-wrap):not(.pt-0):not(.pb-0) { 
        padding-top: clamp(1.5rem, 8vw, 2.5rem) !important; 
        padding-bottom: clamp(1.5rem, 8vw, 2.5rem) !important; 
    }
}
.section-cream{background:var(--gradient-cream)}
.center{text-align:center}
.title, .page-header h1, .premium-cta h2, .policy-section h2, section h2:not(.hero h2):not(.hero-slide-content h2):not(.blog-card h2):not(.single-post-content h2):not(.single-post-content-v2 h2):not(.post-content-inner h2) {
    font-size: clamp(2rem, 4vw, 3rem) !important;
}
.title{text-align:center;margin-top:.25rem}

/* Stats */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}
@media(min-width:768px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--card);border:1px solid var(--border);border-radius:1.25rem;padding:2rem;text-align:center;box-shadow:var(--shadow-card);transition:.4s}
.stat:hover{transform:translateY(-6px);box-shadow:var(--shadow-soft)}
.stat .num{font-family:'Outfit',serif;font-size:3rem;background:var(--gradient-gold);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat .lbl{margin-top:.5rem;color:var(--muted);font-size:.85rem;letter-spacing:.05em}

/* Cards */
.cards-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card-x{background:var(--card);border:1px solid var(--border);border-radius:1.5rem;padding:2rem;transition:.4s}
.card-x:hover{transform:translateY(-6px);box-shadow:var(--shadow-soft)}
.icon-badge{width:3.5rem;height:3.5rem;border-radius:1rem;background:var(--gradient-gold);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow-gold)}

/* Why Us - Side-by-Side */
.why-us-img { position: relative; border-radius: 2rem; box-shadow: var(--shadow-card); }
.why-us-img img { width: 100%; height: auto; object-fit: cover; aspect-ratio: 1/1; border-radius: 2rem; display: block; transition: transform 1s ease; }
.why-us-img:hover img { transform: scale(1.02); }
.img-badge { position: absolute; bottom: 2rem; right: -2rem; background: var(--gradient-gold); color: #fff; padding: 1.5rem 2rem; border-radius: 1.5rem; text-align: center; box-shadow: var(--shadow-gold); z-index: 2; }
@media(max-width: 991px) { .img-badge { right: 1rem; } }
.feature-list { display: flex; flex-direction: column; gap: 2rem; }
.feat-item { display: flex; gap: 1.25rem; align-items: flex-start; }
.feat-icon { width: 3.5rem; height: 3.5rem; border-radius: 50%; background: rgba(200,163,90,0.1); color: var(--gold); display: flex; align-items: center; justify-content: center; font-size: 1.5rem; flex-shrink: 0; transition: .4s; }
.feat-item:hover .feat-icon { background: var(--gradient-gold); color: #fff; box-shadow: var(--shadow-gold); transform: scale(1.1); }
.feat-text h4 { font-size: 1.25rem; margin-bottom: .25rem; transition: .3s; }
.feat-item:hover .feat-text h4 { color: var(--gold); }
.feat-text p { margin: 0; color: var(--muted); font-size: 0.95rem; }

/* Service Cards */
.service-card{display:block;position:relative;border-radius:1.5rem;overflow:hidden;transition:.4s;aspect-ratio:3/4;box-shadow:var(--shadow-card);text-decoration:none}
.service-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-soft)}
.service-card::after{content:'';position:absolute;inset:0;background:linear-gradient(to top, rgba(20,15,10,0.95) 0%, rgba(20,15,10,0.4) 45%, transparent 85%);z-index:2;opacity:0.85;transition:.4s}
.service-card:hover::after{opacity:1}
.service-card .img-wrap{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.service-card img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.service-card:hover img{transform:scale(1.08)}
.service-card .content{position:absolute;bottom:0;left:0;right:0;padding:2rem 1.5rem;z-index:3;text-align:center;transform:translateY(16px);transition:transform .4s ease}
.service-card:hover .content{transform:translateY(0)}
.service-card h3{font-size:1.4rem;margin-bottom:.5rem;color:#fff}
.service-card p{color:rgba(255,255,255,.85);font-size:.95rem;margin:0;opacity:0;transition:.4s ease;transform:translateY(10px)}
.service-card:hover p{opacity:1;transform:translateY(0)}

@media (max-width: 991px) {
    .service-card p { opacity: 1; transform: translateY(0); }
    .service-card .content { transform: translateY(0); }
    .service-card::after { opacity: 1; }
}


/* Gallery */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:2rem}
.filters button{padding:.5rem 1.2rem;border-radius:999px;border:1px solid var(--border);background:var(--card);font-size:.85rem;color:rgba(43,34,24,.85);cursor:pointer;transition:.3s}
.filters button.active{background:var(--gradient-gold);color:#fff;border-color:transparent;box-shadow:var(--shadow-gold)}

@media (max-width: 991px) {
    .filters {
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        padding-bottom: 0.75rem;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        scrollbar-color: var(--gold) transparent;
    }
    .filters::-webkit-scrollbar {
        height: 3px;
    }
    .filters::-webkit-scrollbar-track {
        background: transparent;
    }
    .filters::-webkit-scrollbar-thumb {
        background: var(--gold);
        border-radius: 3px;
    }
    .filters button {
        flex-shrink: 0;
    }
}
.masonry{display:grid;grid-template-columns:1fr;gap:1.25rem;align-items:start}
@media(min-width:640px){.masonry{grid-template-columns:repeat(2,1fr)}}
@media(min-width:992px){.masonry{grid-template-columns:repeat(3,1fr)}}
.masonry .item{border-radius:1rem;overflow:hidden;box-shadow:var(--shadow-card);position:relative;cursor:zoom-in}
.masonry .item img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .8s ease}
.masonry .item:hover img{transform:scale(1.08)}
.masonry .label{position:absolute;left:0;right:0;bottom:0;padding:1rem;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.4),transparent);text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;opacity:0;transition:.3s}
.masonry .item:hover .label{opacity:1}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(20,15,8,.9);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:1.5rem;z-index:90}
.lightbox.open{display:flex;animation:fadeUp .3s ease}
.lightbox img{max-width:90%;max-height:90vh;border-radius:1rem;box-shadow:var(--shadow-soft);user-select:none}
.lightbox button{position:absolute;background:rgba(255,255,255,0.1);color:#fff;border:1px solid rgba(255,255,255,0.2);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.3s;backdrop-filter:blur(4px);z-index:91}
.lightbox button:hover{background:#fff;color:var(--fg)}
.lb-close{top:1.5rem;right:1.5rem;width:3rem;height:3rem;font-size:1.25rem}
.lb-prev{left:2rem;top:50%;transform:translateY(-50%);width:3.5rem;height:3.5rem;font-size:1.5rem}
.lb-next{right:2rem;top:50%;transform:translateY(-50%);width:3.5rem;height:3.5rem;font-size:1.5rem}
@media(max-width:768px){.lb-prev{left:.5rem;width:2.5rem;height:2.5rem}.lb-next{right:.5rem;width:2.5rem;height:2.5rem}}

/* Process */
.steps{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.step{position:relative;background:var(--card);border:1px solid var(--border);border-radius:1.25rem;padding:1.5rem;text-align:center}
.step-num{position:absolute;top:-1rem;left:50%;transform:translateX(-50%);width:2rem;height:2rem;border-radius:50%;background:var(--gradient-gold);color:#fff;font-size:.85rem;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-gold)}

/* Testimonials */
.testimonial-carousel { position: relative; width: 100%; margin-right: -2rem; padding-right: 2rem; }
.carousel-track { display: flex; gap: 1.5rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding: 1rem 1rem 3rem 1rem; margin: -1rem; -ms-overflow-style: none; scrollbar-width: none; }
.carousel-track::-webkit-scrollbar { display: none; }
.testi-card { position: relative; min-width: 320px; max-width: 380px; flex: 0 0 auto; scroll-snap-align: start; background: var(--card); border: 1px solid var(--border); border-radius: 1.5rem; padding: 2.5rem; box-shadow: var(--shadow-card); transition: .4s; display: flex; flex-direction: column; }
.testi-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-soft); border-color: var(--gold-soft); }
.quote-icon { position: absolute; top: 1.5rem; right: 1.5rem; font-size: 3rem; color: rgba(200, 163, 90, 0.15); line-height: 1; }
.testi-card p { flex-grow: 1; font-size: 1.05rem; line-height: 1.6; color: var(--fg); margin-bottom: 2rem; }
.author-info { border-top: 1px solid var(--border); padding-top: 1.25rem; }
.carousel-dot { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--gold); background: transparent; padding: 0; cursor: pointer; transition: .3s; }
.carousel-dot.active { background: var(--gold); transform: scale(1.2); }
.stars{color:var(--gold);margin-bottom:1rem;letter-spacing:.2em}

/* FAQ */
.faq-item{background:var(--card);border:1px solid var(--border);border-radius:1rem;margin-bottom:.75rem;overflow:hidden}
.faq-q{padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-family:'Outfit',serif;font-size:1.1rem}
.faq-q .plus{color:var(--gold);transition:.3s;font-size:1.5rem}
.faq-item.open .plus{transform:rotate(45deg)}
.faq-a{padding:0 1.5rem;max-height:0;overflow:hidden;color:var(--muted);font-size:.9rem;transition:.4s ease;line-height:1.6}
.faq-item.open .faq-a{max-height:240px;padding:0 1.5rem 1.25rem}

/* Forms */
.form-card{background:var(--card);border:1px solid var(--border);border-radius:1.5rem;padding:2rem;box-shadow:var(--shadow-card)}
.field{margin-bottom:1rem}
.field label{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.4rem}
.field input,.field textarea{width:100%;padding:.85rem 1rem;border-radius:.75rem;border:1px solid var(--border);background:#fff;font-family:inherit;font-size:.95rem;transition:all 0.3s ease}
.field input:focus,.field textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(200,163,90,.15)}

/* Native Date/Time Pickers */
input[type="date"], input[type="time"], input[type="month"] {
    accent-color: var(--gold);
    color: var(--fg);
    cursor: pointer;
}
::-webkit-calendar-picker-indicator {
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.3s ease;
}
::-webkit-calendar-picker-indicator:hover {
    opacity: 1;
}

/* Custom Flatpickr Theme (Gold/Cream) */
.flatpickr-calendar {
    background: var(--card) !important;
    border: 1px solid var(--border) !important;
    box-shadow: var(--shadow-soft) !important;
    border-radius: 1.25rem !important;
    padding: 10px !important;
    font-family: 'Inter', system-ui, sans-serif !important;
    width: auto !important;
    box-sizing: border-box !important;
}
/* Ensure inner containers don't clip the tooltip */
.flatpickr-calendar,
.flatpickr-innerContainer,
.flatpickr-rContainer,
.flatpickr-days,
.dayContainer {
    overflow: visible !important;
}
.flatpickr-day.is-booked {
    color: rgba(43, 34, 24, 0.4) !important;
    position: relative;
}
.flatpickr-day[data-tooltip] {
    position: relative;
    overflow: visible !important;
}
.flatpickr-day[data-tooltip]:hover::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(-6px);
    background: var(--gold);
    color: #fff;
    padding: 5px 10px;
    border-radius: 6px;
    font-size: 0.75rem;
    font-family: 'Inter', sans-serif;
    white-space: nowrap;
    z-index: 1000;
    box-shadow: 0 4px 15px rgba(200, 163, 90, 0.4);
    pointer-events: none;
    font-weight: 600;
    line-height: 1.2;
}
.flatpickr-day[data-tooltip]:hover::before {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    border-width: 6px;
    border-style: solid;
    border-color: var(--gold) transparent transparent transparent;
    z-index: 1000;
}
.booked-dot {
    display: block;
    width: 4px;
    height: 4px;
    background-color: var(--gold);
    border-radius: 50%;
    position: absolute;
    bottom: 4px;
    left: 50%;
    transform: translateX(-50%);
}
.flatpickr-months .flatpickr-month {
    background: transparent !important;
    color: var(--fg) !important;
    height: 34px !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
    background: var(--card) !important;
    font-weight: 600 !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
    background: var(--cream) !important;
}
span.flatpickr-weekday {
    color: var(--muted) !important;
    font-weight: 600 !important;
}
.flatpickr-day {
    color: var(--fg) !important;
    border-radius: 8px !important;
    transition: all 0.2s ease !important;
}
.flatpickr-day:hover, .flatpickr-day.prevMonthDay:hover, .flatpickr-day.nextMonthDay:hover, .flatpickr-day:focus, .flatpickr-day.prevMonthDay:focus, .flatpickr-day.nextMonthDay:focus {
    background: var(--cream) !important;
    border-color: var(--cream) !important;
    color: var(--gold) !important;
}
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay {
    background: var(--gradient-gold) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 4px 10px rgba(200,163,90,0.3) !important;
    font-weight: bold !important;
}
.flatpickr-day.today:not(.selected) {
    border-color: var(--gold) !important;
    background: rgba(200, 163, 90, 0.15) !important;
    color: var(--gold) !important;
}
.flatpickr-day.today:not(.selected):hover {
    background: rgba(200, 163, 90, 0.25) !important;
}
.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover {
    color: rgba(43, 34, 24, 0.25) !important;
    background: transparent !important;
    border-color: transparent !important;
    cursor: not-allowed !important;
}
.flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month {
    color: var(--fg) !important;
    fill: var(--fg) !important;
}
.flatpickr-months .flatpickr-prev-month:hover svg, .flatpickr-months .flatpickr-next-month:hover svg {
    fill: var(--gold) !important;
}

/* Contact info */
.info-card{background:var(--card);border:1px solid var(--border);border-radius:1rem;padding:1.25rem;display:flex;gap:1rem;align-items:center}
.info-card .ic{width:2.75rem;height:2.75rem;border-radius:.75rem;background:var(--gradient-gold);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}

.map-ph{height:10rem;background:var(--cream);border:1px solid var(--border);border-radius:1.25rem;display:flex;align-items:center;justify-content:center;color:var(--muted)}

/* CTA banner */
.premium-cta { position: relative; border-radius: 2rem; overflow: hidden; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25); min-height: 500px; display: flex; align-items: center; justify-content: center; }
.premium-cta .parallax-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: brightness(0.8); transition: transform 0.5s ease-out; }
.premium-cta:hover .parallax-bg { transform: scale(1.05); }
.premium-cta .ov-gradient { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(20,15,10,0.9) 0%, rgba(20,15,10,0.4) 50%, rgba(43,34,24,0.8) 100%); }
.premium-cta .inner { position: relative; z-index: 2; padding: 5rem 2rem; text-align: center; }
.hover-white:hover { background: #fff !important; color: var(--fg) !important; border-color: #fff !important; }

/* Fix Final CTA Background on inner pages */
section[style*="cta_"] {
    background-color: var(--card) !important;
    background-size: cover !important;
    background-position: center !important;
    border-radius: 2rem !important;
    overflow: hidden !important;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25) !important;
    max-width: 1200px !important;
    margin: 4rem auto !important;
    min-height: 500px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 2rem !important;
}
@media (max-width: 1240px) {
    section[style*="cta_"] {
        max-width: calc(100% - 2.5rem) !important;
    }
}
section[style*="cta_"] > div:first-child {
    background: linear-gradient(135deg, rgba(20,15,10,0.9) 0%, rgba(20,15,10,0.4) 50%, rgba(43,34,24,0.8) 100%) !important;
}

section[style*="cta_magic.webp"] { background-image: url('../images/cta_magic.webp') !important; }
section[style*="cta_prewedding.webp"] { background-image: url('../images/cta_prewedding.webp') !important; }
section[style*="cta_baby.webp"] { background-image: url('../images/cta_baby.webp') !important; }
section[style*="cta_portrait.webp"] { background-image: url('../images/cta_portrait.webp') !important; }
section[style*="cta_product.webp"] { background-image: url('../images/cta_product.webp') !important; }
section[style*="cta_birthday.webp"] { background-image: url('../images/cta_birthday.webp') !important; }
section[style*="cta_event.webp"] { background-image: url('../images/cta_event.webp') !important; }
section[style*="cta_cinematic.webp"] { background-image: url('../images/cta_cinematic.webp') !important; }
section[style*="cta_album.webp"] { background-image: url('../images/cta_album.webp') !important; }

/* Footer */
footer{background:var(--gradient-cream)}
.footer-grid{display:grid;gap:2.5rem;grid-template-columns:1fr;padding-top:4rem;padding-bottom:4rem}
@media (min-width: 576px) { .footer-grid{grid-template-columns: 1.3fr 1fr} }
@media (min-width: 992px) { .footer-grid{grid-template-columns: 1.5fr 1fr 1fr 1.2fr} }
.footer-grid h4{font-family:'Outfit',serif;margin-bottom:1rem;font-size:1.15rem}
.footer-grid ul{list-style:none;padding:0;margin:0;color:var(--muted);font-size:.9rem;line-height:2}
.socials{display:flex;gap:.6rem;margin-top:1rem}
.socials a{width:2.25rem;height:2.25rem;border-radius:50%;border:1px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;color:rgba(43,34,24,.7);transition:.3s}
.socials a:hover{color:var(--gold);border-color:var(--gold)}

.socials-mobile { display: none; }
@media (max-width: 579px) {
    .socials-desktop { display: none; }
    .copy {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 1.25rem;
    }
    .copy .socials-mobile { display: flex; justify-content: center; margin-top: 0; order: 1; margin-bottom: 0.5rem; }
    .copy .menu-links { order: 2; margin-bottom: 0.25rem; }
    .copy .copyright-text { order: 3; }
}
.copy{border-top:1px solid var(--border);padding-top:1.25rem;padding-bottom:1.25rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.75rem;font-size:.8rem;color:var(--muted)}
.copy a{margin-left:1rem}

/* WhatsApp */
.wa{position:fixed;bottom:1.5rem;right:1.5rem;width:3.5rem;height:3.5rem;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-gold);z-index:40;font-size:1.5rem;animation:fadeUp .8s ease both}
.wa:hover{transform:scale(1.1);color:#fff}

/* Page header */
.page-header{padding:8rem 0 3.5rem;background:var(--gradient-cream);border-bottom:1px solid var(--border);text-align:center}
.crumb{font-size:.75rem;color:var(--muted);margin-bottom:.75rem}
.crumb a:hover{color:var(--gold)}
.crumb .sep{margin:0 .4rem}
.page-header h1{font-size:clamp(2.5rem,5vw,4rem)}
.page-header p{color:var(--muted);max-width:36rem;margin:1rem auto 0}

/* Service blocks */
.svc-block{display:grid;grid-template-columns:1fr;gap:3rem;align-items:center;margin-bottom:8rem}
@media(min-width:768px){.svc-block{grid-template-columns:1fr 1fr; gap:5rem}.svc-block.rev .svc-img{order:2}}
@media(min-width:1200px){.svc-block{gap:8rem}}
.svc-img{border-radius:1.5rem;overflow:hidden;box-shadow:var(--shadow-soft)}
.svc-img img{height:420px;object-fit:cover;width:100%;transition:transform .8s ease}
.svc-img:hover img{transform:scale(1.05)}
.feat-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0;padding:0;list-style:none;font-size:1rem;color:var(--muted)}
.feat-list li{display:flex;align-items:center}
.feat-list li::before{content:'✔';color:var(--bg);background:var(--gold);border-radius:50%;width:1.4rem;height:1.4rem;display:inline-flex;align-items:center;justify-content:center;margin-right:.6rem;font-size:.8rem;flex-shrink:0}

@media (max-width: 579px) {
    .eyebrow,
    .title,
    .mb-5 .eyebrow,
    .mb-5 .title,
    section h2:not(.hero h2):not(.hero-slide-content h2):not(.blog-card h2):not(.single-post-content h2):not(.single-post-content-v2 h2):not(.post-content-inner h2),
    section h3:not(.blog-card h3):not(.single-post-content h3):not(.single-post-content-v2 h3):not(.post-content-inner h3),
    section .wp-block-heading:not(.hero .wp-block-heading):not(.hero-slide-content .wp-block-heading):not(.blog-card .wp-block-heading):not(.single-post-content .wp-block-heading):not(.single-post-content-v2 .wp-block-heading):not(.post-content-inner .wp-block-heading) {
        text-align: center !important;
    }
    .btn-gold, .btn-outline-gold {
        padding: 0.75rem 1rem !important;
        font-size: clamp(0.85rem, 4vw, 1rem) !important;
        white-space: nowrap !important;
        line-height: 1.4;
    }
}


/* Blog */
.blog-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.blog-card {
    background: var(--card);
    border: none;
    border-radius: 1.5rem;
    overflow: hidden;
    transition: all 0.4s ease;
    box-shadow: 0 5px 15px rgba(0,0,0,0.03);
    position: relative;
    display: flex;
    flex-direction: column;
}
.blog-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.08);
}
.blog-card-img-wrapper {
    position: relative;
    overflow: hidden;
    width: 100%;
}
.blog-card img {
    height: 250px;
    width: 100%;
    object-fit: cover;
    transition: transform 0.8s ease;
    display: block;
}
.blog-card:hover img {
    transform: scale(1.08);
}
.blog-card .cat {
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: var(--gradient-gold);
    color: #fff;
    padding: 0.4rem 1rem;
    border-radius: 999px;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 600;
    box-shadow: var(--shadow-gold);
    z-index: 2;
}
.blog-card .body {
    padding: 2rem 1.5rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.blog-card h3 {
    font-family: var(--font-display);
    font-size: 1.35rem;
    margin-bottom: 0.75rem;
    line-height: 1.4;
    color: var(--fg);
    transition: color 0.3s ease;
}
.blog-card:hover h3 {
    color: var(--gold);
}
.blog-card .btn-read {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    color: var(--gold);
    font-weight: 600;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    text-decoration: none;
    transition: 0.3s;
}
.blog-card .btn-read i {
    margin-left: 0.5rem;
    transition: transform 0.3s;
}
.blog-card .btn-read:hover i {
    transform: translateX(5px);
}
.search-bar{position:relative;max-width:24rem}
.search-bar input{width:100%;padding:.8rem 1rem .8rem 3rem;border-radius:999px;border:1px solid var(--border);background:#fff}
.search-bar::before{content:'⌕';position:absolute;left:1.2rem;top:50%;transform:translateY(-50%);color:var(--muted);font-size:1.4rem;}

.policy-section{margin-bottom:2rem}
.policy-section h2{font-size:1.5rem;background:var(--gradient-gold);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.5rem}



/* Footer Menu Hover Effects */
.footer-grid ul li a {
    display: inline-block;
    color: var(--muted);
    transition: all 0.3s ease;
    text-decoration: none;
}
.footer-grid ul li a:hover {
    color: var(--gold);
    transform: translateX(4px);
}

/* Blog Redesign Layout */
.blog-page-layout {
    display: flex;
    flex-direction: column;
    gap: 3rem;
}
.blog-main {
    flex: 1;
    min-width: 0;
}
.sidebar {
    width: 100%;
}
@media(min-width: 768px) {
    .blog-page-layout {
        flex-direction: row;
    }
    .sidebar {
        width: 320px;
        flex-shrink: 0;
    }
}
.sidebar-widget {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 1.5rem;
    padding: 2rem;
    margin-bottom: 2rem;
    box-shadow: var(--shadow-card);
}
.sidebar-widget h4 {
    font-size: 1.25rem;
    margin-bottom: 1.25rem;
    font-family: var(--font-display);
    color: var(--fg);
}
.category-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.category-list li {
    border-bottom: 1px solid var(--border);
}
.category-list li:last-child {
    border-bottom: none;
}
.category-list a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.8rem 0;
    color: var(--muted);
    text-decoration: none;
    transition: 0.3s;
}
.category-list a:hover {
    color: var(--gold);
    padding-left: 5px;
}
.cta-widget {
    background: linear-gradient(135deg, rgba(200,163,90,0.1) 0%, rgba(200,163,90,0.05) 100%);
    border-color: var(--gold-soft);
    text-align: center;
    padding: 2.5rem 2rem;
}
.cta-widget h4 {
    background: var(--gradient-gold);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    margin-bottom: 1rem;
    font-size: 1.5rem;
}
.cta-widget p {
    color: var(--muted);
    font-size: 0.95rem;
    margin-bottom: 1.5rem;
}
/* Single Post Layout V2 */
.single-hero-v2 { position: relative; height: 75vh; min-height: 500px; background-size: cover; background-position: center; background-attachment: fixed; color: #fff; margin-bottom: -5rem; z-index: 1; }
.single-hero-overlay-v2 { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,15,10,0) 0%, rgba(20,15,10,0.2) 40%, rgba(20,15,10,0.9) 100%); z-index: 1; }
.single-hero-glass-card { position: relative; z-index: 2; padding: 2rem 1rem; max-width: 900px; margin: 0 auto; width: 100%; text-align: center; }
.single-cat-badge-v2 { display: inline-block; background: var(--gradient-gold); color: #fff; padding: 0.4rem 1.25rem; border-radius: 999px; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.15em; font-weight: 600; text-decoration: none; margin-bottom: 1.5rem; box-shadow: var(--shadow-gold); }
.single-title-v2 { font-family: var(--font-display); font-size: clamp(2.2rem, 5vw, 3.8rem); margin-bottom: 1.5rem; line-height: 1.15; text-shadow: 0 4px 12px rgba(0,0,0,0.2); }
.single-meta-v2 { display: flex; justify-content: center; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.meta-item { display: flex; align-items: center; gap: 0.75rem; text-align: left; }
.meta-avatar { width: 44px; height: 44px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.5); object-fit: cover; }
.meta-icon { font-size: 1.8rem; color: var(--gold-soft); opacity: 0.9; }
.meta-text { display: flex; flex-direction: column; line-height: 1.2; }
.meta-lbl { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.1em; color: rgba(255,255,255,0.7); margin-bottom: 0.2rem; }
.meta-text strong { font-size: 0.9rem; font-weight: 600; color: #fff; }
.meta-divider { width: 1px; height: 35px; background: rgba(255,255,255,0.2); }

@media(max-width:768px) {
    .single-hero-v2 { height: auto; padding-top: 10rem; }
    .single-hero-glass-card { padding: 1.5rem; border-radius: 1rem; }
    .single-meta-v2 { gap: 1rem; justify-content: flex-start; }
    .meta-divider { display: none !important; }
}

.bg-light-cream { background-color: var(--bg); position: relative; z-index: 2; }
.blog-page-layout-v2 { display: flex; flex-direction: column; gap: 3rem; }
.blog-main-v2 { flex: 1; min-width: 0; }
.sidebar-v2 { width: 100%; }
@media(min-width: 992px) {
    .blog-page-layout-v2 { flex-direction: row; gap: 4rem; }
    .sidebar-v2 { width: 340px; flex-shrink: 0; }
}

.single-post-content-v2 { font-size: 1.15rem; line-height: 1.85; color: rgba(43,34,24,0.85); }
.single-post-content-v2 p { margin-bottom: 1.5rem; }
/* Drop cap for first paragraph */
.single-post-content-v2 .post-content-inner > p:first-of-type::first-letter { font-family: var(--font-display); float: left; font-size: 4rem; line-height: 0.8; margin: 0.1em 0.15em 0 0; color: var(--gold); font-weight: 700; text-shadow: 2px 2px 0 rgba(200,163,90,0.15); }
.single-post-content-v2 h2, .single-post-content-v2 h3 { font-family: var(--font-display); color: var(--fg); margin: 2.5rem 0 1rem; line-height: 1.3; }
.single-post-content-v2 img { max-width: 100%; height: auto; border-radius: 1rem; margin: 2rem 0; box-shadow: 0 10px 30px rgba(0,0,0,0.05); }
.single-post-content-v2 blockquote { border: none; padding: 2.5rem 3rem; background: var(--cream); font-family: var(--font-display); font-size: 1.5rem; line-height: 1.5; color: var(--gold); border-radius: 1.5rem; margin: 3rem 0; position: relative; text-align: center; }
.single-post-content-v2 blockquote::before { content: '“'; position: absolute; top: -10px; left: 20px; font-size: 6rem; color: rgba(200,163,90,0.15); font-family: Georgia, serif; line-height: 1; }
.single-post-content-v2 blockquote p { margin: 0; position: relative; z-index: 2; }

.tag-pill { display: inline-block; padding: 0.4rem 1rem; background: #f5f0e6; border-radius: 999px; color: var(--muted); font-size: 0.85rem; text-decoration: none; transition: 0.3s; font-weight: 500; }
.tag-pill:hover { background: var(--gold); color: #fff; }

.social-share-box { background: rgba(200,163,90,0.05); border: 1px solid rgba(200,163,90,0.2); }
.share-btn { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; text-decoration: none; transition: 0.3s; font-size: 1.1rem; }
.share-btn:hover { transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0,0,0,0.15); color: #fff; }
.share-btn.fb { background: #1877F2; }
.share-btn.tw { background: #000000; }
.share-btn.pi { background: #E60023; }

.author-bio-box { position: relative; overflow: hidden; }
.author-bio-box::before { content: ''; position: absolute; top: 0; left: 0; width: 6px; height: 100%; background: var(--gradient-gold); }

.cat-link:hover { padding-left: 8px; color: var(--gold) !important; }
.cta-hover-fx:hover .cta-bg-icon { transform: scale(1.2) rotate(15deg); opacity: 0.2; }



/* TOP BAR */
.top-bar {
    background: #111;
    color: #a3a3a3;
    font-size: 0.8rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}
.top-contact span {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}
.top-contact i {
    color: var(--gold);
}
.top-socials a {
    color: #a3a3a3;
    transition: 0.3s;
}
.top-socials a:hover {
    color: var(--gold);
}
.nav-wrap {
    background: #fff;
    border-bottom: 1px solid var(--border);
}
.nav-wrap.scrolled {
    top: 0;
}

/* HERO SLIDER */
.hero-slider-wrap {
    position: relative;
    width: 100%;
    min-height: 100svh;
    overflow: hidden;
    background: var(--bg);
}
.hero-slider {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}
.hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.2s ease-in-out;
    z-index: 1;
    display: flex;
    align-items: center;
}
.hero-slide.active {
    opacity: 1;
    z-index: 2;
}
.hero-slide img.bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 80% center; /* Keeps subjects on the right visible */
    transform: scale(1.05);
    transition: transform 6s ease-out;
}
.hero-slide.active img.bg {
    transform: scale(1);
}
.hero-slider-wrap > .veil { display: none !important; }
.hero-slide::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(20,15,10,0.65) 0%, rgba(20,15,10,0.4) 45%, transparent 75%);
    z-index: 1;
    pointer-events: none;
}
@media (max-width: 991px) {
    .hero-slide::before { background: linear-gradient(90deg, rgba(20,15,10,0.75) 0%, rgba(20,15,10,0.6) 55%, rgba(20,15,10,0.1) 100%); }
}
@media (max-width: 575px) {
    .hero-slide::before { background: linear-gradient(90deg, rgba(20,15,10,0.8) 0%, rgba(20,15,10,0.7) 70%, rgba(20,15,10,0.3) 100%); }
}
.hero-slide-content {
    position: relative;
    z-index: 4;
    max-width: 900px;
    padding: 0 5%;
    margin-top: 40px;
    transform: translateY(30px);
    opacity: 0;
    transition: all 1s ease 0.4s;
}
.hero-slide.active .hero-slide-content {
    transform: translateY(0);
    opacity: 1;
}
.hero-slide-content h1,
.hero-slide-content h2 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: clamp(3rem, 5vw, 4.5rem) !important;
    line-height: 1.1;
    color: #ffffff;
    margin-bottom: 1.5rem;
    margin-left: 0;
}
.hero-slide-content h1 em.gold-text,
.hero-slide-content h2 em.gold-text {
    font-family: 'Great Vibes', cursive;
    font-style: normal;
    font-weight: 400;
    font-size: 1.25em;
    color: var(--gold) !important;
}
.hero-slide-content p.lead {
    font-size: 1.1rem;
    color: rgba(255,255,255,0.85);
    line-height: 1.6;
    margin-bottom: 2.5rem;
    max-width: 620px;
}
.hero-slide-content .eyebrow {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}
.hero-slide-content .eyebrow::before,
.hero-slide-content .eyebrow::after {
    content: '';
    height: 1px;
    width: 40px;
    background: var(--gold);
}

/* SLIDER DOTS */
.hero-dots {
    position: absolute;
    bottom: 50px;
    right: 50px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 10;
}
.hero-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255,255,255,0.4);
    border: 2px solid transparent;
    cursor: pointer;
    transition: 0.3s;
}
.hero-dot.active {
    background: #fff;
    border-color: var(--gold);
    transform: scale(1.3);
}

/* HERO STATS OVERLAY (Glassmorphism) */
.hero-stats-overlay {
    position: absolute;
    bottom: 40px;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
    max-width: 1000px;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 20px;
    padding: 1.5rem 2rem;
    display: flex;
    justify-content: space-between;
    z-index: 10;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}
.hero-stat-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
    position: relative;
}
.hero-stat-item:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 15px;
    top: 10%;
    height: 80%;
    width: 1px;
    background: rgba(0,0,0,0.1);
}
.hero-stat-item .ic {
    font-size: 2rem;
    color: var(--gold);
}
.hero-stat-item .text h4 {
    font-size: 1.1rem;
    margin: 0;
    font-weight: 700;
    font-family: 'Outfit', serif;
}
.hero-stat-item .text p {
    margin: 0;
    font-size: 0.85rem;
    color: var(--muted);
}
@media (max-width: 991px) {
    .hero-stats-overlay {
        flex-wrap: wrap;
        gap: 1rem;
        bottom: 20px;
    }
    .hero-stat-item {
        flex: 1 1 45%;
    }
    .hero-stat-item:not(:last-child)::after { display: none; }
    .hero-dots { bottom: 30px; right: 20px; }
}

/* Remove focus outline from links and buttons */
a:focus, button:focus, a:focus-visible, button:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}

/* Fix opacity for the paragraph in premium CTA sections */
.premium-cta p.text-white-50 {
    color: #ffffff !important;
    opacity: 1 !important;
}

/* Custom Header Dropdown - Desktop Only */
@media (min-width: 992px) {
    .nav-links li.has-dropdown {
        position: relative;
    }
    .nav-links .dropdown-menu-custom {
        position: absolute;
        top: 100%;
        left: -20px;
        background: rgba(253, 250, 243, 0.95);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        min-width: 260px;
        box-shadow: 0 20px 40px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.05);
        border-radius: 16px;
        padding: 0.5rem 0;
        overflow: hidden;
        opacity: 0;
        visibility: hidden;
        transform: translateY(15px);
        transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
        list-style: none;
        z-index: 100;
        margin: 0;
        border: 1px solid rgba(220, 198, 156, 0.3);
    }
    .nav-links .dropdown-menu-custom::before {
        content: '';
        position: absolute;
        top: -6px;
        left: 40px;
        width: 12px;
        height: 12px;
        background: #fdfaf3; /* match background */
        transform: rotate(45deg);
        border-top: 1px solid rgba(220, 198, 156, 0.3);
        border-left: 1px solid rgba(220, 198, 156, 0.3);
        border-radius: 2px;
    }
    .nav-links li.has-dropdown:hover .dropdown-menu-custom {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
    .nav-links .dropdown-menu-custom li {
        display: block;
        margin: 0;
        padding: 0;
    }
    .nav-links .dropdown-menu-custom li a {
        display: flex;
        align-items: center;
        padding: 0.75rem 1.5rem;
        color: var(--fg);
        font-size: 0.95rem;
        font-weight: 500;
        border-radius: 0;
        transition: all 0.3s ease;
        text-align: left;
    }
    .nav-links .dropdown-menu-custom li a::after {
        display: none;
    }
    .nav-links .dropdown-menu-custom li a::before {
        content: '';
        display: inline-block;
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--gold);
        margin-right: 12px;
        opacity: 0;
        transform: scale(0);
        transition: all 0.3s ease;
    }
    .nav-links .dropdown-menu-custom li a:hover {
        background: rgba(220, 198, 156, 0.15);
        color: var(--gold);
        transform: translateX(4px);
    }
    .nav-links .dropdown-menu-custom li a:hover::before {
        opacity: 1;
        transform: scale(1);
    }
}


@media (max-width: 991px) {
    div#leadModal, div#discountModal, div#vipModal, div#availabilityModal { 
        align-items: center !important; 
        padding: 1rem !important; 
    }
    div#leadModal .lead-modal, 
    div#discountModal .discount-modal, 
    div#vipModal .vip-modal-content, 
    div#availabilityModal .availability-modal-content { 
        margin: auto !important; 
        max-width: 95vw !important;
        width: 100% !important;
        max-height: 90vh !important;
        overflow-y: auto !important;
        display: block !important;
        -webkit-overflow-scrolling: touch;
    }
    .lead-modal-form-wrap { 
        padding: 1.5rem 1.25rem; 
        display: block !important;
    }
    .lead-modal-form-wrap h3 { font-size: 1.5rem; }
    .discount-modal { padding: 1.5rem 1rem; }
    .discount-modal h3 { font-size: 1.4rem; }
    .discount-modal h3 span { font-size: 2rem; }
    .availability-modal-content { padding: 2rem 1.5rem; }
}

    /* Premium CTA */
    .premium-cta { min-height: 400px; }
    .premium-cta .inner { padding: 3rem 1.5rem; }

    /* Testimonial Carousel Width */
    .testi-card { 
        min-width: 280px; 
        max-width: 320px; 
        padding: 1.5rem; 
    }
    .carousel-track {
        gap: 1rem;
        padding-bottom: 2rem;
    }

    /* Process steps gap */
    .steps { gap: 2rem; }
    
    /* Service Blocks */
    .svc-block { gap: 2.5rem; margin-bottom: 5rem; }
}

@media (max-width: 575px) {
    /* Stack stats on very small screens */
    .stats {
        grid-template-columns: 1fr;
    }
    .stat {
        padding: 1.5rem;
    }
    
    /* Card grids */
    .cards-grid, .blog-grid {
        grid-template-columns: 1fr;
    }
    
    /* Buttons in CTA */
    .premium-cta .d-flex {
        flex-direction: column;
        width: 100%;
    }
    .premium-cta .btn-gold, .premium-cta .btn-outline-gold {
        width: 100%;
        text-align: center;
    }
    
    /* Hero Section */
    .hero h1 { font-size: clamp(2.5rem, 8vw, 3.5rem); }
    .hero .ctas { flex-direction: column; width: 100%; align-items: stretch; }
    .hero .ctas a { text-align: center; }
    
    /* Hero Slider content */
    .hero-slide-content h1,
    .hero-slide-content h2 { 
        font-size: clamp(2.1rem, 9vw, 2.6rem) !important; 
        line-height: 1.15;
    }
    /* .hero-slide-content .eyebrow { display: none !important; } */
    .hero-dots { bottom: 20px; right: 20px; }
    
    /* Contact Section info cards */
    .info-card { flex-direction: column; text-align: center; gap: 0.5rem; }
    
    /* Copyright Mobile Layout */
    .copy {
        flex-direction: column-reverse;
        justify-content: center;
        text-align: center;
        gap: 1rem;
    }
    .copy span {
        width: 100%;
    }
    .copy a {
        margin: 0 0.5rem;
    }
}

/* Hero Slide Buttons Mobile Fix */
@media (max-width: 579px) {
    .hero-slide-content .ctas {
        display: flex;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 0.5rem;
    }
    .hero-slide-content .ctas a {
        padding: 0.8rem 0.6rem !important;
        font-size: 0.88rem !important;
        flex: 1;
        white-space: nowrap;
        display: flex !important;
        justify-content: center;
        align-items: center;
    }
    .hero-slide-content .ctas a i {
        display: none !important; /* Hide icons to save space */
    }
}

@media (max-width: 479px) {
    .hero-slide-content .ctas {
        flex-direction: column !important; /* Stack them below 480px to manage well */
    }
    .hero-slide-content .ctas a {
        width: 100%;
        padding: 0.85rem 1rem !important;
        font-size: 0.95rem !important;
    }
    
    /* Heading responsive fix: max 2 lines down to 350px */
    .hero-slide-content h1,
    .hero-slide-content h2 { 
        font-size: clamp(2rem, 10vw, 2.5rem) !important;
        line-height: 1.15;
    }
}

@media (max-width: 400px) {
    .hero-slide-content .eyebrow::before,
    .hero-slide-content .eyebrow::after {
        display: none !important;
    }
    .hero-slide-content h1,
    .hero-slide-content h2 { 
        font-size: 1.95rem !important;
        margin-left: 0 !important;
    }
}

@media (max-width: 360px) {
    .hero-slide-content h1,
    .hero-slide-content h2 { 
        font-size: 1.85rem !important;
    }
}

/* Hide slider dots on screens below 992px */
@media (max-width: 991px) {
    .hero-dots {
        display: none !important;
    }
}

/* Fix for discount modal countdown wrapping on small screens */
@media (max-width: 480px) {
    .lead-modal-discount-banner > div:first-child {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 8px !important;
    }
    .lead-modal-discount-banner > div:first-child > div {
        white-space: normal !important;
    }
    div#leadModal {
        padding: 0.5rem !important;
    }
    .lead-modal-form-wrap {
        padding: 1.25rem 0.75rem !important;
    }
    .btn-gold, .btn-outline-gold {
        padding: 0.75rem 0.5rem !important;
        font-size: clamp(0.75rem, 3.5vw, 0.95rem) !important;
    }
}

/* --- Premium Special Offer Banner Design --- */
/* The Discount Banner */
.lead-modal-discount-banner {
    background: linear-gradient(135deg, rgba(220, 198, 156, 0.15) 0%, rgba(220, 198, 156, 0.05) 100%) !important;
    border: 1px solid #dcc69c !important;
    box-shadow: 0 0 20px rgba(220, 198, 156, 0.25) !important;
    animation: pulseGlow 2.5s infinite alternate;
}
@keyframes pulseGlow {
    0% { box-shadow: 0 0 10px rgba(220, 198, 156, 0.1); }
    100% { box-shadow: 0 0 30px rgba(220, 198, 156, 0.5); }
}

.lead-modal-discount-banner span {
    color: #a47b2c !important;
    text-shadow: none;
    font-weight: bold;
}
.lead-modal-discount-banner p {
    color: #4a3818 !important;
}


/* VIP Highlight Styles for Special Offer Modal */
.vip-highlight {
    color: #ffeb99 !important;
    font-size: 1.15em !important;
    font-weight: 800 !important;
    font-style: normal !important;
    text-shadow: 0 0 10px rgba(255, 235, 153, 0.4) !important;
    display: inline-block;
    padding: 0 2px;
}
.exclusive-text {
    color: #dcc69c !important;
    font-weight: 800 !important;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    text-shadow: 0 0 10px rgba(220, 198, 156, 0.3);
}

/* Fix for Testimonials Carousel width to show exactly 3 items */
@media (min-width: 992px) {
    .testi-card {
        min-width: unset !important;
        max-width: unset !important;
        flex: 0 0 calc((100% - 3rem) / 3) !important;
    }
}
@media (min-width: 768px) and (max-width: 991px) {
    .testi-card {
        min-width: unset !important;
        max-width: unset !important;
        flex: 0 0 calc((100% - 1.5rem) / 2) !important;
    }
}
@media (max-width: 767px) {
    .testi-card {
        min-width: unset !important;
        max-width: unset !important;
        flex: 0 0 100% !important;
    }
}

/* Second fix for Testimonials Carousel width to fit exactly 3 items without peeking */
.testimonial-carousel {
    margin-right: 0 !important;
    padding-right: 0 !important;
}

@media (min-width: 992px) {
    .testi-card {
        min-width: unset !important;
        max-width: unset !important;
        /* (100% of track - 2rem padding compensation - 3rem total gaps) / 3 */
        flex: 0 0 calc((100% - 5rem) / 3) !important;
    }
}
@media (min-width: 768px) and (max-width: 991px) {
    .testi-card {
        min-width: unset !important;
        max-width: unset !important;
        /* (100% of track - 2rem padding compensation - 1.5rem total gaps) / 2 */
        flex: 0 0 calc((100% - 3.5rem) / 2) !important;
    }
}
@media (max-width: 767px) {
    .testi-card {
        min-width: unset !important;
        max-width: unset !important;
        /* (100% of track - 2rem padding compensation) / 1 */
        flex: 0 0 calc(100% - 2rem) !important;
    }
}

/* Final fix to prevent peeking of the 4th testimonial card */
.testimonial-carousel {
    margin-right: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    padding-left: 0 !important;
    overflow: hidden !important; /* Hide anything bleeding out */
}

.carousel-track {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    padding-bottom: 3rem !important;
    /* Ensure track fits exactly */
    width: 100% !important;
}

@media (min-width: 992px) {
    .testi-card {
        min-width: 0 !important;
        max-width: none !important;
        /* Subtract total gap (2 * 1.5rem = 3rem) */
        flex: 0 0 calc((100% - 3rem) / 3) !important;
        width: calc((100% - 3rem) / 3) !important;
    }
}
@media (min-width: 768px) and (max-width: 991px) {
    .testi-card {
        min-width: 0 !important;
        max-width: none !important;
        flex: 0 0 calc((100% - 1.5rem) / 2) !important;
        width: calc((100% - 1.5rem) / 2) !important;
    }
}
@media (max-width: 767px) {
    .testi-card {
        min-width: 0 !important;
        max-width: none !important;
        flex: 0 0 100% !important;
        width: 100% !important;
    }
}

/* Ultimate fix for Testimonials Carousel snapping and exact width */
.testimonial-carousel {
    overflow: hidden !important; 
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
}

.carousel-track {
    margin: 0 !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    padding-bottom: 3rem !important;
    padding-top: 1rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
    gap: 24px !important;
    scroll-padding-left: 1rem !important;
    scroll-padding-right: 1rem !important;
}

@media (min-width: 992px) {
    .testi-card {
        min-width: 0 !important;
        max-width: none !important;
        /* (100% - 2rem padding - 48px gaps) / 3 */
        flex: 0 0 calc((100% - 32px - 48px) / 3) !important;
        width: calc((100% - 32px - 48px) / 3) !important;
    }
}
@media (min-width: 768px) and (max-width: 991px) {
    .testi-card {
        min-width: 0 !important;
        max-width: none !important;
        flex: 0 0 calc((100% - 32px - 24px) / 2) !important;
        width: calc((100% - 32px - 24px) / 2) !important;
    }
}
@media (max-width: 767px) {
    .testi-card {
        min-width: 0 !important;
        max-width: none !important;
        flex: 0 0 calc(100% - 32px) !important;
        width: calc(100% - 32px) !important;
    }
}
