/* ============================================================
   MARINA WEDDING HALL — LUXURY DARK THEME
   Dark Elegance with Gold Accents
   ============================================================ */

/* --- Variables -------------------------------------------- */
:root {
    --bg:        #080808;
    --bg-2:      #0f0f0f;
    --bg-3:      #161616;
    --bg-4:      #1e1e1e;
    --gold:      #c9a84c;
    --gold-light:#e8c97a;
    --gold-dark: #9a7830;
    --cream:     #f0ead6;
    --text:      #c8bfa8;
    --text-muted:#7a7060;
    --border:    rgba(201,168,76,0.2);
    --border-dk: rgba(255,255,255,0.05);
    --shadow:    0 10px 40px rgba(0,0,0,0.55);
    --shadow-g:  0 5px 30px rgba(201,168,76,0.15);
    --ease:      all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
    --fh:        'Cormorant Garamond', serif;
    --fb:        'Montserrat', sans-serif;
}

/* --- Reset ------------------------------------------------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{
    font-family:var(--fb);
    background:var(--bg);
    color:var(--text);
    line-height:1.7;
    overflow-x:hidden;
    padding-top:80px;
}
h1,h2,h3,h4,h5,h6{
    font-family:var(--fh);
    color:var(--cream);
    font-weight:400;
    line-height:1.2;
}
a{color:var(--gold);text-decoration:none;transition:var(--ease)}
a:hover{color:var(--gold-light)}
img{max-width:100%;height:auto}

/* Scrollbar */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:var(--bg-2)}
::-webkit-scrollbar-thumb{background:var(--gold-dark)}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}

/* ============================================================
   NAVBAR
   ============================================================ */
.navbar{
    background:rgba(8,8,8,0.97);
    backdrop-filter:blur(12px);
    padding:18px 0;
    position:fixed;
    top:0;width:100%;
    z-index:1050;
    transition:var(--ease);
    border-bottom:1px solid var(--border);
}
.navbar.scrolled{
    padding:11px 0;
    background:rgba(8,8,8,0.99);
    box-shadow:0 4px 30px rgba(0,0,0,0.6);
}
.navbar-brand{
    font-family:var(--fh) !important;
    font-size:24px !important;
    font-weight:500 !important;
    color:var(--gold) !important;
    letter-spacing:2px;
    display:flex;align-items:center;gap:10px;
}
.navbar-brand i{color:var(--gold);font-size:18px}
.nav-link{
    font-family:var(--fb);
    color:var(--text) !important;
    font-weight:500;
    font-size:11px;
    letter-spacing:2px;
    text-transform:uppercase;
    margin:0 14px;
    padding:8px 0 !important;
    position:relative;
    transition:var(--ease);
}
.nav-link::after{
    content:'';
    position:absolute;bottom:0;left:0;
    width:0;height:1px;
    background:var(--gold);
    transition:width 0.35s ease;
}
.nav-link:hover,.nav-link.active{color:var(--gold) !important}
.nav-link:hover::after,.nav-link.active::after{width:100%}

/* Book Now button in nav */
.nav-cta{
    display:inline-block;
    padding:9px 22px;
    border:1px solid var(--gold);
    color:var(--gold) !important;
    font-family:var(--fb);
    font-size:11px;
    font-weight:600;
    letter-spacing:2px;
    text-transform:uppercase;
    transition:var(--ease);
    white-space:nowrap;
}
.nav-cta:hover{background:var(--gold);color:var(--bg) !important}

/* Admin login icon button */
.admin-login-btn{
    display:inline-flex;align-items:center;justify-content:center;
    width:34px;height:34px;border-radius:50%;
    border:1px solid rgba(201,168,76,0.3);
    color:rgba(255,255,255,0.35);
    font-size:12px;
    text-decoration:none;
    transition:all .25s ease;
}
.admin-login-btn:hover{
    border-color:var(--gold);
    color:var(--gold);
    background:rgba(201,168,76,0.08);
}

/* Mobile toggler */
.navbar-toggler{
    border:1px solid var(--border);
    padding:6px 10px;
    background:transparent;
}
.navbar-toggler-icon{
    background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(201,168,76,0.8)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
@media(max-width:991px){
    .navbar-collapse{
        background:rgba(8,8,8,0.99);
        padding:20px 15px;
        border-top:1px solid var(--border);
        margin-top:10px;
    }
    .nav-link{margin:8px 0}
    .nav-cta{margin-top:10px;display:inline-block}
}

/* ============================================================
   HERO
   ============================================================ */
.hero{
    min-height:100vh;
    background:linear-gradient(rgba(0,0,0,0.58),rgba(0,0,0,0.58)),#0c0c0c;
    background-size:cover;
    background-position:center;
    background-attachment:fixed;
    display:flex;align-items:center;justify-content:center;
    text-align:center;
    padding:80px 20px 60px;
    position:relative;
    margin-top:-80px;
}
.hero-ornament{
    display:flex;align-items:center;justify-content:center;
    gap:14px;margin-bottom:28px;
}
.hero-ornament .line{width:55px;height:1px;background:var(--gold)}
.hero-ornament .diamond{
    width:7px;height:7px;
    background:var(--gold);
    transform:rotate(45deg);
}
.hero-label{
    display:block;
    font-family:var(--fb);
    font-size:11px;font-weight:600;
    letter-spacing:6px;text-transform:uppercase;
    color:var(--gold);margin-bottom:18px;
}
.hero h1{
    font-size:70px;font-weight:300;
    color:var(--cream);
    line-height:1.08;margin-bottom:22px;
}
.hero h1 em{font-style:italic;color:var(--gold-light)}
.hero-sub{
    font-size:15px;color:rgba(240,234,214,0.68);
    max-width:520px;margin:0 auto 40px;
    line-height:1.85;font-weight:300;letter-spacing:.4px;
}
.hero-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.hero-scroll{
    position:absolute;bottom:28px;left:50%;
    transform:translateX(-50%);
    display:flex;flex-direction:column;align-items:center;gap:7px;
    color:var(--gold);font-size:10px;letter-spacing:3px;text-transform:uppercase;
    animation:scrollBounce 2.2s infinite;
}
.hero-scroll i{font-size:14px}
@keyframes scrollBounce{
    0%,100%{transform:translateX(-50%) translateY(0)}
    50%{transform:translateX(-50%) translateY(8px)}
}
@keyframes fadeUp{
    from{opacity:0;transform:translateY(30px)}
    to{opacity:1;transform:translateY(0)}
}

/* ============================================================
   PAGE HERO (inner pages)
   ============================================================ */
.page-hero{
    background:linear-gradient(rgba(0,0,0,0.72),rgba(0,0,0,0.72)),#0a0a0a;
    background-size:cover;background-position:center;background-attachment:fixed;
    padding:120px 0 80px;
    text-align:center;
    margin-top:-80px;
}
.page-hero h1{
    font-size:52px;font-weight:300;
    letter-spacing:3px;margin-bottom:22px;
}
.page-hero .breadcrumb{
    background:transparent;justify-content:center;padding:0;margin:0;
}
.page-hero .breadcrumb-item a{
    color:var(--gold);font-size:11px;
    letter-spacing:2px;text-transform:uppercase;
}
.page-hero .breadcrumb-item.active{
    color:var(--text-muted);font-size:11px;
    letter-spacing:2px;text-transform:uppercase;
}
.page-hero .breadcrumb-item+.breadcrumb-item::before{color:var(--text-muted)}

/* ============================================================
   SECTION HEADER
   ============================================================ */
section{padding:100px 0}
.section-header{text-align:center;margin-bottom:60px}
.section-label{
    display:block;
    font-family:var(--fb);
    font-size:10px;font-weight:700;
    letter-spacing:5px;text-transform:uppercase;
    color:var(--gold);margin-bottom:14px;
}
.section-header h2{
    font-size:46px;font-weight:300;
    color:var(--cream);margin-bottom:18px;letter-spacing:1px;
}
.section-divider{
    display:flex;align-items:center;justify-content:center;
    gap:11px;margin-bottom:14px;
}
.section-divider .line{width:45px;height:1px;background:var(--gold)}
.section-divider .diamond{
    width:5px;height:5px;
    background:var(--gold);transform:rotate(45deg);flex-shrink:0;
}
.section-header p{
    color:var(--text-muted);font-size:13px;
    max-width:520px;margin:0 auto;
    line-height:1.85;font-weight:300;letter-spacing:.3px;
}

/* Alternate bg sections */
.section-alt{background:var(--bg-2)}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-luxury{
    display:inline-block;
    padding:13px 38px;
    border:1px solid var(--gold);
    color:var(--gold);
    font-family:var(--fb);font-size:11px;
    font-weight:600;letter-spacing:3px;text-transform:uppercase;
    background:transparent;transition:var(--ease);cursor:pointer;
}
.btn-luxury:hover{
    background:var(--gold);color:var(--bg);
    box-shadow:var(--shadow-g);
}
.btn-luxury-fill{
    display:inline-block;
    padding:13px 38px;
    border:1px solid var(--gold);
    color:var(--bg);background:var(--gold);
    font-family:var(--fb);font-size:11px;
    font-weight:600;letter-spacing:3px;text-transform:uppercase;
    transition:var(--ease);cursor:pointer;
}
.btn-luxury-fill:hover{background:transparent;color:var(--gold)}

/* Override Bootstrap btn within luxury theme */
.btn-primary{
    background:var(--gold) !important;
    border-color:var(--gold) !important;
    color:var(--bg) !important;
    font-family:var(--fb);font-size:11px;
    font-weight:600;letter-spacing:2px;text-transform:uppercase;
    border-radius:0;padding:12px 28px;
}
.btn-primary:hover{
    background:transparent !important;
    color:var(--gold) !important;
    border-color:var(--gold) !important;
}
.btn-secondary{
    background:transparent !important;
    border-color:var(--border) !important;
    color:var(--text-muted) !important;
    font-family:var(--fb);font-size:11px;
    font-weight:600;letter-spacing:2px;text-transform:uppercase;
    border-radius:0;
}
.btn-secondary:hover{border-color:var(--gold) !important;color:var(--gold) !important}

/* ============================================================
   FEATURE CARDS
   ============================================================ */
.feature-card{
    background:var(--bg-3);
    border:1px solid var(--border);
    padding:42px 32px;
    text-align:center;
    transition:var(--ease);
    position:relative;overflow:hidden;
    height:100%;
}
.feature-card::before{
    content:'';
    position:absolute;top:0;left:0;right:0;
    height:2px;background:var(--gold);
    transform:scaleX(0);
    transition:transform 0.4s ease;
}
.feature-card:hover{
    transform:translateY(-8px);
    box-shadow:var(--shadow-g);
    border-color:var(--gold);
}
.feature-card:hover::before{transform:scaleX(1)}
.feature-icon{
    width:68px;height:68px;
    border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;
    margin:0 auto 24px;transition:var(--ease);
}
.feature-card:hover .feature-icon{
    border-color:var(--gold);
    background:rgba(201,168,76,0.08);
}
.feature-icon i{font-size:26px;color:var(--gold)}
.feature-card h3{font-size:21px;margin-bottom:12px;font-weight:500}
.feature-card p{
    color:var(--text-muted);font-size:13px;
    line-height:1.85;font-weight:300;margin:0;
}

/* ============================================================
   GALLERY GRID (home preview)
   ============================================================ */
.gallery-preview-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;margin-top:10px;
}
@media(max-width:991px){.gallery-preview-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:575px){.gallery-preview-grid{grid-template-columns:1fr}}

/* ============================================================
   GALLERY ITEMS (gallery page & home)
   ============================================================ */
.gallery-item{
    overflow:hidden;position:relative;
    margin-bottom:22px;
}
.gallery-image{
    aspect-ratio:4/3;overflow:hidden;position:relative;
}
.gallery-image img{
    width:100%;height:100%;object-fit:cover;
    transition:transform 0.6s ease;
    filter:brightness(0.82);
}
.gallery-item:hover .gallery-image img{
    transform:scale(1.08);filter:brightness(0.65);
}
.gallery-overlay{
    position:absolute;inset:0;
    background:linear-gradient(to top,rgba(0,0,0,0.82) 0%,transparent 60%);
    opacity:0;transition:opacity 0.4s ease;
    display:flex;flex-direction:column;
    justify-content:flex-end;padding:22px;
}
.gallery-item:hover .gallery-overlay{opacity:1}
.gallery-overlay h4{
    font-size:17px;font-weight:400;
    color:var(--cream);
    transform:translateY(10px);
    transition:transform 0.4s ease;
    margin-bottom:4px;
}
.gallery-overlay p{
    font-size:10px;letter-spacing:2px;
    color:var(--gold);text-transform:uppercase;
    transform:translateY(10px);
    transition:transform 0.4s ease 0.05s;
    margin:0;
}
.gallery-item:hover .gallery-overlay h4,
.gallery-item:hover .gallery-overlay p{transform:translateY(0)}
.gallery-zoom{
    position:absolute;top:18px;right:18px;
    width:38px;height:38px;
    border:1px solid var(--gold);
    color:var(--gold);
    display:flex;align-items:center;justify-content:center;
    opacity:0;transition:opacity 0.4s ease;
    font-size:13px;
}
.gallery-item:hover .gallery-zoom{opacity:1}
.gallery-zoom:hover{background:var(--gold);color:var(--bg)}
.category-badge{
    position:absolute;top:14px;left:14px;
    background:rgba(0,0,0,0.72);
    border:1px solid var(--border);
    color:var(--gold);
    font-size:9px;font-weight:700;
    letter-spacing:2px;text-transform:uppercase;
    padding:4px 11px;backdrop-filter:blur(4px);
    z-index:2;
}
/* Gallery filter */
.gallery-filter{
    display:flex;flex-wrap:wrap;
    justify-content:center;gap:10px;
    margin-bottom:50px;
}
.filter-btn{
    background:transparent;
    border:1px solid var(--border);
    color:var(--text-muted);
    font-family:var(--fb);font-size:10px;
    font-weight:700;letter-spacing:2px;text-transform:uppercase;
    padding:10px 24px;cursor:pointer;transition:var(--ease);
}
.filter-btn:hover,.filter-btn.active{
    border-color:var(--gold);color:var(--gold);
    background:rgba(201,168,76,0.07);
}

/* ============================================================
   STATS
   ============================================================ */
.stats-section{
    background:var(--bg-2);
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
    padding:80px 0;
}
.stat-item{text-align:center;padding:20px}
.stat-number{
    font-family:var(--fh);font-size:62px;font-weight:300;
    color:var(--gold);line-height:1;margin-bottom:10px;display:block;
}
.stat-label{
    font-family:var(--fb);font-size:10px;font-weight:700;
    letter-spacing:3px;text-transform:uppercase;color:var(--text-muted);
}

/* ============================================================
   PACKAGE CARDS
   ============================================================ */
.package-card{
    background:var(--bg-3);
    border:1px solid var(--border);
    transition:var(--ease);
    height:100%;position:relative;overflow:hidden;
}
.package-card.featured{border-color:rgba(201,168,76,0.5)}
.package-card:hover{
    transform:translateY(-8px);
    border-color:var(--gold);
    box-shadow:var(--shadow-g);
}
.pkg-header{
    background:linear-gradient(135deg,rgba(201,168,76,0.14),rgba(201,168,76,0.04));
    padding:33px 28px;text-align:center;
    border-bottom:1px solid var(--border);
    position:relative;
}
.package-card.featured .pkg-header{
    background:linear-gradient(135deg,rgba(201,168,76,0.28),rgba(201,168,76,0.08));
}
.pkg-badge{
    position:absolute;top:14px;right:14px;
    background:var(--gold);color:var(--bg);
    font-size:9px;font-weight:700;
    letter-spacing:2px;text-transform:uppercase;
    padding:4px 11px;
}
.pkg-header h2{
    font-size:28px;font-weight:400;
    margin-bottom:14px;letter-spacing:2px;
}
.pkg-price{
    font-family:var(--fh);font-size:40px;
    color:var(--gold);font-weight:300;line-height:1;
}
.pkg-price small{
    font-family:var(--fb);font-size:12px;
    color:var(--text-muted);font-weight:300;
    display:block;margin-top:7px;letter-spacing:1px;
}
.pkg-body{padding:28px}
.pkg-body h5{
    font-size:11px;font-family:var(--fb);
    font-weight:700;letter-spacing:2px;text-transform:uppercase;
    color:var(--gold);margin-bottom:18px;
    padding-bottom:9px;border-bottom:1px solid var(--border);
}
.pkg-body ul{
    list-style:none;padding:0;
    max-height:280px;overflow-y:auto;
    scrollbar-width:thin;
    scrollbar-color:var(--gold-dark) var(--bg-2);
}
.pkg-body ul::-webkit-scrollbar{width:3px}
.pkg-body ul::-webkit-scrollbar-track{background:var(--bg-2)}
.pkg-body ul::-webkit-scrollbar-thumb{background:var(--gold-dark)}
.pkg-body li{
    padding:7px 0;
    border-bottom:1px solid var(--border-dk);
    color:var(--text);font-size:13px;
    display:flex;align-items:center;gap:9px;
    font-weight:300;
}
.pkg-body li i{color:var(--gold);font-size:9px;flex-shrink:0}
.pkg-footer{
    padding:22px 28px;
    border-top:1px solid var(--border);
    text-align:center;
}
/* Additional charges */
.charge-card{
    background:var(--bg-3);border:1px solid var(--border);
    padding:32px 22px;text-align:center;
    transition:var(--ease);height:100%;
}
.charge-card:hover{border-color:var(--gold);box-shadow:var(--shadow-g)}
.charge-card h5{font-size:15px;font-weight:500;margin-bottom:12px}
.charge-amount{
    font-family:var(--fh);font-size:34px;
    color:var(--gold);font-weight:300;
    display:block;margin-bottom:8px;
}
.charge-card small{
    font-size:11px;color:var(--text-muted);
    letter-spacing:.4px;font-weight:300;
}

/* ============================================================
   FORMS (luxury style)
   ============================================================ */
.luxury-form .form-label{
    font-family:var(--fb);font-size:10px;
    font-weight:700;letter-spacing:2px;text-transform:uppercase;
    color:var(--text-muted);margin-bottom:7px;display:block;
}
.luxury-form .form-control,
.luxury-form .form-select{
    background:var(--bg-3);
    border:1px solid var(--border);
    color:var(--cream);
    font-family:var(--fb);font-size:13px;font-weight:300;
    padding:13px 16px;border-radius:0;
    transition:var(--ease);height:auto;
}
.luxury-form .form-control:focus,
.luxury-form .form-select:focus{
    background:var(--bg-3);
    border-color:var(--gold);
    color:var(--cream);
    box-shadow:0 0 0 2px rgba(201,168,76,0.1);
    outline:none;
}
.luxury-form .form-control::placeholder{color:var(--text-muted);font-size:12px}
.luxury-form .form-select option{background:var(--bg-3);color:var(--cream)}
.luxury-form textarea.form-control{resize:none;min-height:120px}
.luxury-form .form-check-input{
    background-color:var(--bg-3);border-color:var(--border);border-radius:0;
}
.luxury-form .form-check-input:checked{
    background-color:var(--gold);border-color:var(--gold);
}
/* Section groups inside form */
.form-section-luxury{
    background:var(--bg-3);
    border:1px solid var(--border);
    border-left:2px solid var(--gold);
    padding:28px;margin-bottom:24px;
}
.form-section-luxury:last-of-type{margin-bottom:0}
.form-section-title{
    display:flex;align-items:center;gap:14px;
    margin-bottom:22px;
}
.form-section-icon{
    width:40px;height:40px;
    border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
}
.form-section-icon i{color:var(--gold);font-size:16px}
.form-section-title h3{
    font-size:18px;font-weight:500;margin:0;
}

/* Booking summary sidebar */
.booking-summary{
    background:var(--bg-3);
    border:1px solid var(--border);
    padding:28px;position:sticky;top:100px;
}
.booking-summary h3{
    font-size:18px;font-weight:500;
    margin-bottom:22px;padding-bottom:14px;
    border-bottom:1px solid var(--border);
    display:flex;align-items:center;gap:10px;
}
.price-item{
    display:flex;justify-content:space-between;
    padding:10px 0;
    border-bottom:1px solid var(--border-dk);
    font-size:13px;color:var(--text-muted);
}
.price-item:last-child{border-bottom:none}
.price-item span:last-child{color:var(--text)}
.price-item.total{
    font-size:15px;font-weight:600;
    color:var(--cream);
    margin-top:12px;padding-top:14px;
    border-top:1px solid var(--border);border-bottom:none;
}
.price-item.total span:last-child{color:var(--gold);font-size:18px}
.selected-items{
    margin-top:18px;padding-top:16px;
    border-top:1px solid var(--border);
}
.selected-items h4{
    font-size:11px;font-family:var(--fb);
    font-weight:700;letter-spacing:2px;text-transform:uppercase;
    color:var(--gold);margin-bottom:12px;
}

/* Modal dark */
.modal-content{
    background:var(--bg-3);
    border:1px solid var(--border);
    border-radius:0;
}
.modal-header{
    background:var(--bg-2);
    border-bottom:1px solid var(--border);
    padding:18px 24px;
}
.modal-title{font-family:var(--fh);font-size:22px;color:var(--cream)}
.btn-close{filter:invert(1) sepia(1) saturate(2) hue-rotate(5deg)}
.modal-footer{background:var(--bg-2);border-top:1px solid var(--border)}
.modal-category-title{
    font-size:11px;font-family:var(--fb);
    font-weight:700;letter-spacing:2px;text-transform:uppercase;
    color:var(--gold);margin:18px 0 10px;
    padding-bottom:8px;border-bottom:1px solid var(--border);
}

/* Menu item cards in modal */
.menu-item-card{
    background:var(--bg-2);
    border:1px solid var(--border);
    transition:var(--ease);overflow:hidden;
}
.menu-item-card:hover{border-color:var(--gold);transform:translateY(-3px)}
.menu-item-card .card-body{padding:14px}
.menu-item-card .item-name{
    font-weight:500;font-size:14px;
    margin-bottom:3px;color:var(--cream);
}
.menu-item-card .item-category{
    font-size:10px;color:var(--text-muted);
    margin-bottom:7px;text-transform:uppercase;letter-spacing:1px;
}
.menu-item-card .item-price{
    font-weight:600;color:var(--gold);
    font-size:14px;margin-bottom:10px;
}
.menu-item-card .btn-add{
    background:var(--gold);color:var(--bg);
    border:none;padding:6px 14px;
    font-size:11px;font-weight:700;
    letter-spacing:1px;width:100%;
    transition:var(--ease);border-radius:0;
}
.menu-item-card .btn-add:hover{background:var(--gold-light)}

/* Selected item cards */
.selected-item-card{
    background:var(--bg-2);
    border:1px solid var(--border);
    padding:14px;margin-bottom:12px;
    display:flex;flex-wrap:wrap;align-items:center;gap:12px;
    transition:var(--ease);
}
.selected-item-card:hover{border-color:var(--gold)}
.selected-item-info{flex:2;min-width:160px}
.selected-item-name{
    font-weight:500;color:var(--cream);
    margin-bottom:3px;font-size:13px;
}
.selected-item-category{font-size:11px;color:var(--text-muted)}
.selected-item-price{font-weight:600;color:var(--gold);min-width:75px;font-size:13px}
.selected-item-qty{display:flex;align-items:center;gap:8px}
.selected-item-qty input{
    width:65px;height:36px;text-align:center;
    border:1px solid var(--border);
    background:var(--bg-3);color:var(--cream);
    font-weight:500;border-radius:0;
}
.selected-item-qty input:focus{border-color:var(--gold);outline:none}
.selected-item-line-total{
    font-weight:700;color:var(--gold);
    min-width:90px;text-align:right;font-size:13px;
}
/* Package prefill card */
.package-prefill-card{
    background:rgba(201,168,76,0.06);
    border:1px solid var(--border);
    border-left:2px solid var(--gold);
    padding:20px;margin-bottom:24px;
}
.package-prefill-header{
    display:flex;justify-content:space-between;
    align-items:flex-start;gap:16px;margin-bottom:14px;
}
.package-prefill-header h4{
    font-size:17px;font-weight:500;margin-bottom:5px;
}
.package-prefill-note{
    font-size:12px;color:var(--text-muted);font-weight:300;
}
.package-prefill-price{
    font-family:var(--fh);font-size:24px;
    color:var(--gold);white-space:nowrap;flex-shrink:0;
}
.package-prefill-items{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.package-prefill-chip{
    display:inline-flex;align-items:center;gap:5px;
    padding:5px 10px;
    background:rgba(201,168,76,0.1);
    border:1px solid var(--border);
    font-size:11px;color:var(--text);
}
.package-prefill-chip i{color:var(--gold);font-size:9px}
.package-prefill-status{
    font-size:12px;color:var(--text-muted);font-style:italic;
}
.package-prefill-status.is-success{color:var(--gold)}
.package-prefill-status.is-warning{color:#e8c97a}

/* Booking notice */
.booking-notice{
    display:none;padding:14px 18px;
    border:1px solid var(--border);
    font-size:13px;margin-bottom:20px;
}
.booking-notice.success{
    background:rgba(201,168,76,0.08);
    border-color:var(--gold);color:var(--gold-light);
    display:block;
}
.booking-notice.error{
    background:rgba(220,53,69,0.08);
    border-color:rgba(220,53,69,0.4);color:#f07080;
    display:block;
}
.booking-notice.info{
    background:rgba(100,149,237,0.07);
    border-color:rgba(100,149,237,0.3);color:#90b4e8;
    display:block;
}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-card{
    background:var(--bg-3);border:1px solid var(--border);
    padding:38px 26px;text-align:center;
    transition:var(--ease);height:100%;
}
.contact-card:hover{
    border-color:var(--gold);box-shadow:var(--shadow-g);
    transform:translateY(-5px);
}
.contact-card .contact-icon{
    width:62px;height:62px;
    border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;
    margin:0 auto 18px;transition:var(--ease);
}
.contact-card:hover .contact-icon{
    border-color:var(--gold);background:rgba(201,168,76,0.08);
}
.contact-card .contact-icon i{font-size:22px;color:var(--gold)}
.contact-card h4{font-size:18px;font-weight:500;margin-bottom:8px}
.contact-card p{color:var(--text-muted);font-size:13px;line-height:1.7;font-weight:300;margin:0}
.contact-card a.info-link{
    display:inline-flex;align-items:center;gap:6px;
    margin-top:12px;color:var(--gold);
    font-size:11px;font-weight:600;letter-spacing:1px;
    text-transform:uppercase;
}
.contact-card a.info-link:hover{color:var(--gold-light)}
/* Contact form container */
.contact-form-container{
    background:var(--bg-3);border:1px solid var(--border);padding:38px;
}
.contact-form-container h2{
    font-size:32px;font-weight:300;margin-bottom:6px;
}
.contact-form-container p.form-subtitle{
    color:var(--text-muted);font-size:13px;margin-bottom:28px;
}
/* Business hours */
.hours-container{
    background:var(--bg-3);border:1px solid var(--border);
    padding:32px;margin-top:28px;
}
.hours-title{
    font-size:20px;font-weight:500;
    margin-bottom:22px;color:var(--cream);
    display:flex;align-items:center;gap:10px;
}
.hours-title i{color:var(--gold)}
.hours-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.hours-item{
    display:flex;justify-content:space-between;
    padding:10px 0;
    border-bottom:1px solid var(--border-dk);
    font-size:13px;
}
.hours-day{color:var(--text);font-weight:400}
.hours-time{color:var(--gold);font-weight:400}
.hours-note{
    margin-top:18px;padding:12px 16px;
    background:rgba(201,168,76,0.06);
    border:1px solid var(--border);
    font-size:12px;text-align:center;color:var(--text-muted);
}
/* Social links in contact card */
.social-mini{display:flex;justify-content:center;gap:8px;margin-top:10px}
.social-mini a{
    width:33px;height:33px;border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;
    color:var(--text-muted);font-size:12px;transition:var(--ease);
}
.social-mini a:hover{border-color:var(--gold);color:var(--gold)}

/* ============================================================
   RULES / TERMS
   ============================================================ */
.rule-item{
    background:var(--bg-3);border:1px solid var(--border);
    padding:28px;margin-bottom:18px;
    display:flex;gap:22px;align-items:flex-start;
    transition:var(--ease);
}
.rule-item:hover{border-color:var(--gold)}
.rule-number{
    width:48px;height:48px;flex-shrink:0;
    border:1px solid var(--gold);
    display:flex;align-items:center;justify-content:center;
    font-family:var(--fh);font-size:20px;color:var(--gold);
}
.rule-content p{
    color:var(--text);font-size:13px;
    line-height:1.85;font-weight:300;margin:0;
}

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.about-image-wrapper{position:relative;margin-bottom:40px}
.about-image-wrapper img{
    width:100%;filter:brightness(0.82);
    border:1px solid var(--border);
}
.about-accent{
    position:absolute;bottom:-16px;right:-16px;
    width:90px;height:90px;
    border:2px solid var(--gold);pointer-events:none;z-index:-1;
}
.team-card{
    background:var(--bg-3);border:1px solid var(--border);
    overflow:hidden;transition:var(--ease);height:100%;
}
.team-card:hover{border-color:var(--gold);box-shadow:var(--shadow-g);transform:translateY(-5px)}
.team-card img{
    width:100%;aspect-ratio:4/5;object-fit:cover;
    filter:brightness(0.82) grayscale(20%);transition:var(--ease);
}
.team-card:hover img{filter:brightness(0.9) grayscale(0%)}
.team-card-body{padding:22px}
.team-card-body h4{font-size:19px;font-weight:500;margin-bottom:4px}
.team-card-body p{
    font-size:10px;letter-spacing:2px;
    text-transform:uppercase;color:var(--gold);font-weight:600;
    margin:0;
}
.testimonial-card{
    background:var(--bg-3);border:1px solid var(--border);
    padding:32px;height:100%;transition:var(--ease);
}
.testimonial-card:hover{border-color:var(--gold)}
.testimonial-card .quote-mark{
    font-family:var(--fh);font-size:58px;
    color:var(--gold);line-height:.4;
    margin-bottom:18px;display:block;font-weight:300;
}
.testimonial-card blockquote{
    color:var(--text);font-size:13px;line-height:1.9;
    font-weight:300;font-style:italic;margin-bottom:22px;
}
.stars{color:var(--gold);font-size:11px;margin-bottom:8px}
.testimonial-author{
    display:flex;align-items:center;gap:13px;
    padding-top:18px;border-top:1px solid var(--border);
}
.testimonial-author img{
    width:46px;height:46px;border-radius:50%;
    object-fit:cover;border:1px solid var(--border);
    filter:grayscale(20%);
}
.testimonial-author-info h5{font-size:15px;font-weight:500;margin-bottom:2px}
.testimonial-author-info span{
    font-size:10px;letter-spacing:1px;
    color:var(--gold);text-transform:uppercase;
}

/* ============================================================
   CTA SECTION
   ============================================================ */
.cta-section{
    background:linear-gradient(rgba(0,0,0,0.78),rgba(0,0,0,0.78)),#0a0a0a;
    background-size:cover;background-position:center;background-attachment:fixed;
    text-align:center;padding:120px 0;
}
.cta-section h2{
    font-size:50px;font-weight:300;margin-bottom:18px;letter-spacing:2px;
}
.cta-section p{
    color:rgba(240,234,214,.68);font-size:14px;
    max-width:520px;margin:0 auto 38px;
    line-height:1.85;font-weight:300;
}

/* ============================================================
   VIDEO SECTION
   ============================================================ */
.video-section{
    background:var(--bg-2);
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
}
.video-wrapper{
    position:relative;padding-bottom:56.25%;
    overflow:hidden;border:1px solid var(--border);
}
.video-wrapper iframe{
    position:absolute;inset:0;width:100%;height:100%;border:none;
}
.video-stats .stat-v h3{
    font-family:var(--fh);font-size:38px;
    color:var(--gold);font-weight:300;margin-bottom:4px;
}
.video-stats .stat-v p{
    color:var(--text-muted);font-size:11px;
    letter-spacing:2px;text-transform:uppercase;margin:0;
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{
    background:var(--bg-2);
    border-top:1px solid var(--border);
    padding:80px 0 30px;
}
.footer-brand{
    font-family:var(--fh);font-size:24px;font-weight:500;
    color:var(--gold);letter-spacing:2px;
    display:flex;align-items:center;gap:10px;margin-bottom:18px;
}
.footer-brand i{font-size:18px}
.footer p{
    color:var(--text-muted);font-size:13px;
    line-height:1.8;font-weight:300;margin-bottom:22px;
}
.footer h4{
    font-family:var(--fb);font-size:10px;font-weight:700;
    letter-spacing:3px;text-transform:uppercase;
    color:var(--gold);margin-bottom:22px;
    padding-bottom:11px;border-bottom:1px solid var(--border);
}
.footer ul{list-style:none;padding:0}
.footer ul li{margin-bottom:11px}
.footer ul li a{
    color:var(--text-muted);font-size:13px;font-weight:300;
    transition:var(--ease);
    display:flex;align-items:center;gap:7px;
}
.footer ul li a:hover{color:var(--gold);padding-left:4px}
.footer ul li a i{font-size:9px;color:var(--gold)}
.footer-contact li{
    display:flex;align-items:flex-start;gap:11px;
    margin-bottom:13px;color:var(--text-muted);
    font-size:13px;font-weight:300;
}
.footer-contact li i{color:var(--gold);margin-top:3px;font-size:12px;flex-shrink:0}
.social-links{display:flex;gap:9px;flex-wrap:wrap}
.social-links a{
    width:36px;height:36px;border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;
    color:var(--text-muted);font-size:13px;transition:var(--ease);
}
.social-links a:hover{
    border-color:var(--gold);color:var(--gold);
    background:rgba(201,168,76,0.08);transform:translateY(-3px);
}
.footer-bottom{
    border-top:1px solid var(--border);
    padding-top:22px;margin-top:50px;
    text-align:center;color:var(--text-muted);
    font-size:11px;letter-spacing:1px;
}

/* ============================================================
   ALERTS & NOTICES
   ============================================================ */
.alert-luxury-success{
    background:rgba(201,168,76,.09);
    border:1px solid var(--gold);
    color:var(--gold-light);padding:14px 18px;
    font-size:13px;
}
.alert-luxury-error{
    background:rgba(220,53,69,.09);
    border:1px solid rgba(220,53,69,.45);
    color:#f07080;padding:14px 18px;font-size:13px;
}
/* Bootstrap alert overrides */
.alert-success{
    background:rgba(201,168,76,.09) !important;
    border:1px solid var(--gold) !important;
    color:var(--gold-light) !important;border-radius:0;
}
.alert-danger{
    background:rgba(220,53,69,.09) !important;
    border:1px solid rgba(220,53,69,.45) !important;
    color:#f07080 !important;border-radius:0;
}

/* ============================================================
   EMPTY STATE
   ============================================================ */
.empty-state{text-align:center;padding:70px 20px;color:var(--text-muted)}
.empty-state i{font-size:46px;color:var(--border);margin-bottom:18px;display:block}
.empty-state h5{font-size:19px;margin-bottom:8px;color:var(--text-muted)}
.empty-state p{font-size:13px;font-weight:300;margin:0}

/* ============================================================
   UTILITIES
   ============================================================ */
.text-gold{color:var(--gold) !important}
.text-cream{color:var(--cream) !important}
.gold-divider{
    display:flex;align-items:center;gap:13px;margin:22px 0;
}
.gold-divider .line{flex:1;height:1px;background:var(--border)}
.gold-divider .diamond{
    width:5px;height:5px;background:var(--gold);
    transform:rotate(45deg);flex-shrink:0;
}

/* Bootstrap overrides for dark theme */
.dropdown-menu{
    background:var(--bg-3);border:1px solid var(--border);border-radius:0;
}
.dropdown-item{color:var(--text);font-size:12px;letter-spacing:1px}
.dropdown-item:hover,.dropdown-item:focus{
    background:rgba(201,168,76,.08);color:var(--gold);
}
.badge.bg-secondary{
    background:rgba(201,168,76,.15) !important;
    color:var(--gold);border:1px solid var(--border);
    border-radius:0;font-size:9px;letter-spacing:1px;
}
.text-muted{color:var(--text-muted) !important}
.fst-italic{font-style:italic}
.small{font-size:11px !important}

/* datepicker dark */
.datepicker-dropdown{
    background:var(--bg-3);border:1px solid var(--border);
}
.datepicker table tr td,.datepicker table tr th{color:var(--text)}
.datepicker table tr td.active,
.datepicker table tr td.active:hover{
    background:var(--gold);color:var(--bg);
}
.datepicker table tr td:hover{background:rgba(201,168,76,.12)}

/* Select2 dark */
.select2-container--default .select2-selection--multiple{
    background:var(--bg-3);border:1px solid var(--border);border-radius:0;
}
.select2-dropdown{background:var(--bg-3);border:1px solid var(--border);border-radius:0}
.select2-results__option{color:var(--text);font-size:13px}
.select2-results__option--highlighted{background:rgba(201,168,76,.12) !important;color:var(--gold) !important}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:991px){
    body{padding-top:70px}
    .hero{min-height:100svh}
    .hero h1{font-size:46px}
    .section-header h2{font-size:36px}
    .stat-number{font-size:48px}
    .cta-section h2{font-size:38px}
    .page-hero h1{font-size:40px}
    .page-hero{padding:100px 0 70px}
    section{padding:80px 0}
}
@media(max-width:767px){
    section{padding:65px 0}
    .hero h1{font-size:34px}
    .hero-sub{font-size:13px}
    .section-header h2{font-size:28px}
    .section-label{font-size:9px;letter-spacing:4px}
    .feature-card{padding:28px 18px}
    .pkg-price{font-size:32px}
    .stat-number{font-size:40px}
    .cta-section{padding:80px 0}
    .cta-section h2{font-size:28px}
    .rule-item{flex-direction:column;gap:14px}
    .rule-number{width:40px;height:40px;font-size:18px}
    .footer{padding:60px 0 25px}
    .page-hero h1{font-size:30px}
    .page-hero{padding:90px 0 60px}
    .booking-summary{position:static;margin-top:28px}
    .gallery-preview-grid{grid-template-columns:1fr 1fr}
    .hours-grid{grid-template-columns:1fr}
    .contact-main{grid-template-columns:1fr}
    .contact-info-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
    .hero h1{font-size:28px}
    .hero-buttons{flex-direction:column;align-items:center}
    .contact-info-grid{grid-template-columns:1fr}
}

/* ============================================================
   BOOTSTRAP DARK THEME OVERRIDES
   For booking, calendar, confirmation, payment pages
   ============================================================ */
.card{background:var(--bg-3);border-color:var(--border);color:var(--text)}
.card-header{background:var(--bg-4);border-bottom-color:var(--border);color:var(--cream)}
.card-body{background:var(--bg-3)}
.card-footer{background:var(--bg-4);border-top-color:var(--border)}
.table{color:var(--text);--bs-table-bg:transparent;--bs-table-striped-bg:rgba(201,168,76,0.05);--bs-table-hover-bg:rgba(201,168,76,0.08);border-color:var(--border)}
.table th{color:var(--cream);border-color:var(--border)}
.table td{border-color:var(--border)}
.modal-content{background:var(--bg-3);color:var(--text);border-color:var(--border)}
.modal-header{background:var(--bg-4);border-bottom-color:var(--border);color:var(--cream)}
.modal-footer{background:var(--bg-4);border-top-color:var(--border)}
.form-control,.form-select{background:var(--bg-2);color:var(--cream);border-color:var(--border)}
.form-control:focus,.form-select:focus{background:var(--bg);color:var(--cream);border-color:var(--gold);box-shadow:0 0 0 .2rem rgba(201,168,76,0.15)}
.form-control::placeholder{color:var(--text-muted)}
.form-label{color:var(--cream);font-weight:500}
.form-check-input{background-color:var(--bg-2);border-color:var(--border)}
.form-check-input:checked{background-color:var(--gold);border-color:var(--gold)}
.input-group-text{background:var(--bg-4);color:var(--gold);border-color:var(--border)}
.btn-warning{background:var(--gold);border-color:var(--gold);color:#000;font-weight:600}
.btn-warning:hover{background:var(--gold-light);border-color:var(--gold-light);color:#000}
.btn-outline-warning{color:var(--gold);border-color:var(--gold)}
.btn-outline-warning:hover{background:var(--gold);color:#000}
.btn-outline-secondary{color:var(--text);border-color:var(--border)}
.btn-outline-secondary:hover{background:var(--bg-4);color:var(--cream);border-color:var(--gold)}
.text-warning{color:var(--gold)!important}
.text-muted{color:var(--text-muted)!important}
.bg-light{background:var(--bg-2)!important}
.bg-white{background:var(--bg-3)!important}
.badge.bg-warning{background:var(--gold)!important;color:#000}
.badge.bg-success{background:#198754!important}
.badge.bg-info{background:#0dcaf0!important;color:#000}
.badge.bg-secondary{background:var(--bg-4)!important;color:var(--text)}
.list-group-item{background:var(--bg-3);color:var(--text);border-color:var(--border)}
.alert{border:none}
.alert-success{background:rgba(25,135,84,0.15);color:#86efac;border-left:4px solid #198754}
.alert-danger{background:rgba(220,53,69,0.15);color:#fca5a5;border-left:4px solid #dc3545}
.alert-warning{background:rgba(201,168,76,0.15);color:var(--gold-light);border-left:4px solid var(--gold)}
.alert-info{background:rgba(13,202,240,0.15);color:#67e8f9;border-left:4px solid #0dcaf0}
hr{border-color:var(--border);opacity:.5}
.breadcrumb-item+.breadcrumb-item::before{color:var(--text-muted)}
