/* =====================================================================
   LUXURY VENUE · v2 — Image-first, glassmorphic, magazine-grade
   ===================================================================== */
:root {
    --ink:#0a0a0a; --navy:#0f172a; --paper:#fdfcfa; --cream:#f7f1e6; --champagne:#efe0c5;
    --gold:#c9a268; --gold-hi:#e7c989; --gold-soft:#f3e3c2;
    --text:#1a1814; --muted:#6b6358;
    --gl-bg: rgba(255,255,255,.15);
    --gl-bd: rgba(255,255,255,.22);
    --gl-bg-dk: rgba(15,23,42,.55);
    --ff-display:'Playfair Display','Cormorant Garamond',serif;
    --ff-body:'Poppins',-apple-system,sans-serif;
    --max:1320px;
}
*{box-sizing:border-box;-webkit-font-smoothing:antialiased}
html{scroll-behavior:smooth}
body.bn-public{margin:0;background:var(--paper);color:var(--text);font-family:var(--ff-body);font-size:16px;line-height:1.65;font-weight:400;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:.25s}
a:hover{color:var(--gold)}
::selection{background:var(--gold);color:#fff}
.lx-container{max-width:var(--max);margin:0 auto;padding:0 32px}
@media(max-width:768px){.lx-container{padding:0 20px}}

/* Type */
.lx-display{font-family:var(--ff-display);font-weight:500;line-height:1;letter-spacing:-.015em}
.lx-h1{font-family:var(--ff-display);font-weight:500;font-size:clamp(48px,7.5vw,108px);line-height:.98;letter-spacing:-.02em}
.lx-h2{font-family:var(--ff-display);font-weight:500;font-size:clamp(36px,5vw,72px);line-height:1.05;letter-spacing:-.015em}
.lx-h3{font-family:var(--ff-display);font-weight:500;font-size:clamp(24px,2.4vw,32px);line-height:1.15}
.lx-italic{font-style:italic;color:var(--gold);font-weight:400}
.lx-eyebrow{display:inline-flex;align-items:center;gap:14px;font-family:var(--ff-body);font-size:11px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;color:var(--gold)}
.lx-eyebrow::before{content:"";width:32px;height:1px;background:var(--gold)}
.lx-lead{font-size:18px;line-height:1.75;color:var(--muted);max-width:640px;font-weight:300}

/* ===================== FLOATING GLASS NAVBAR ===================== */
.lx-nav{position:fixed;top:22px;left:0;right:0;z-index:100;display:flex;justify-content:center;padding:0 22px;pointer-events:none}
.lx-nav-pill{
    pointer-events:auto;
    display:flex;align-items:center;gap:32px;
    width:100%;max-width:1240px;
    padding:14px 14px 14px 28px;
    background:rgba(255,255,255,.12);
    backdrop-filter:blur(28px) saturate(140%);
    -webkit-backdrop-filter:blur(28px) saturate(140%);
    border:1px solid rgba(255,255,255,.18);
    border-radius:999px;
    box-shadow:0 18px 60px rgba(10,10,10,.18), 0 1px 0 rgba(255,255,255,.1) inset;
    transition:background .4s, box-shadow .4s, padding .4s;
}
body:not(.is-home) .lx-nav-pill, .lx-nav.scrolled .lx-nav-pill{
    background:rgba(15,15,15,.78);
    border-color:rgba(255,255,255,.08);
}
.lx-brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.lx-brand-mark{
    width:42px;height:42px;border-radius:50%;
    background:linear-gradient(135deg,#d4a574,#efd9a3,#c9a268);
    box-shadow:0 6px 20px rgba(201,162,104,.5);
    position:relative;flex-shrink:0;
}
.lx-brand-mark::after{content:var(--brand-letter,"R");position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--ff-display);color:#3d2810;font-weight:700;font-size:18px}
.lx-brand-name{font-family:var(--ff-display);font-size:18px;line-height:1.1;color:#fff;font-weight:600}
.lx-brand-tag{font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-top:3px}
.lx-menu{flex:1;display:flex;justify-content:center}
.lx-menu ul{list-style:none;margin:0;padding:0;display:flex;gap:32px}
.lx-menu a{font-size:13px;font-weight:500;letter-spacing:.04em;color:rgba(255,255,255,.85);position:relative;padding:8px 0}
.lx-menu a:hover{color:#fff}
.lx-menu a.active{color:var(--gold-hi)}
.lx-menu a.active::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:5px;height:5px;background:var(--gold);border-radius:50%}
.lx-nav-cta{
    flex-shrink:0;display:inline-flex;align-items:center;gap:8px;
    padding:12px 22px;
    background:linear-gradient(135deg,var(--gold),var(--gold-hi));
    color:#1a1100 !important;
    border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
    transition:.3s;box-shadow:0 8px 24px rgba(201,162,104,.35);
}
.lx-nav-cta:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(201,162,104,.5);color:#1a1100 !important}
.lx-burger{display:none;background:none;border:0;width:38px;height:38px;position:relative;cursor:pointer;padding:0;flex-shrink:0;border-radius:50%;transition:background .2s}
.lx-burger:hover{background:rgba(255,255,255,.08)}
.lx-burger span{position:absolute;left:9px;right:9px;height:1.5px;background:#fff;transition:.3s cubic-bezier(.2,.7,.3,1);border-radius:2px}
.lx-burger span:nth-child(1){top:13px}.lx-burger span:nth-child(2){top:19px}.lx-burger span:nth-child(3){top:25px}
@media(max-width:991px){
    .lx-menu, .lx-nav-cta{display:none !important}
    .lx-burger{display:block;margin-left:auto}
    .lx-nav{top:14px;padding:0 14px}
    .lx-nav-pill{padding:10px 10px 10px 18px;border-radius:24px;gap:12px}
    .lx-brand-name{font-size:15px}
    .lx-brand-tag{font-size:8px;letter-spacing:.24em}
}

/* ============= LUXURY MOBILE DRAWER ============= */
.lx-drawer{
    position:fixed; inset:0; z-index:1000;
    pointer-events:none;
    visibility:hidden;
}
.lx-drawer[aria-hidden="false"]{ visibility:visible; pointer-events:auto; }
.lx-drawer-backdrop{
    position:absolute; inset:0;
    background:rgba(8,8,10,.55);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    opacity:0; transition: opacity .35s ease;
}
.lx-drawer[aria-hidden="false"] .lx-drawer-backdrop{ opacity:1; }
.lx-drawer-panel{
    position:absolute; top:0; right:0; bottom:0;
    width: min(86vw, 380px);
    background: linear-gradient(170deg, #16110b 0%, #0e0a06 60%, #0b0807 100%);
    color:#f5efe2;
    box-shadow: -30px 0 80px rgba(0,0,0,.5);
    display:flex; flex-direction:column;
    transform: translateX(100%);
    transition: transform .42s cubic-bezier(.2,.7,.2,1);
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.lx-drawer[aria-hidden="false"] .lx-drawer-panel{ transform: translateX(0); }
.lx-drawer-panel::before{
    content:""; position:absolute; inset:0;
    background:
      radial-gradient(circle at 90% -10%, color-mix(in srgb, var(--gold) 35%, transparent), transparent 55%),
      radial-gradient(circle at 110% 120%, color-mix(in srgb, var(--gold) 18%, transparent), transparent 50%);
    pointer-events:none;
}
.lx-drawer-head{
    position:relative;
    display:flex; align-items:center; justify-content:space-between;
    padding: 22px 22px 18px;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.lx-drawer-brand{ display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit; }
.lx-drawer-brand-name{ font-family: var(--ff-display); font-size:18px; font-weight:600; line-height:1.1; }
.lx-drawer-brand-tag{ font-size:9px; letter-spacing:.28em; text-transform:uppercase; color:rgba(245,239,226,.55); margin-top:4px; }
.lx-drawer-close{
    width:42px; height:42px; border-radius:50%;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.1);
    color:#f5efe2; font-size:18px;
    cursor:pointer; transition:.25s;
    display:inline-flex; align-items:center; justify-content:center;
}
.lx-drawer-close:hover{ background: rgba(255,255,255,.12); transform: rotate(90deg); color:var(--gold-hi); }

.lx-drawer-nav{ flex:1; padding: 22px 14px 12px; position:relative; }
.lx-drawer-nav ul{ list-style:none; margin:0; padding:0; }
.lx-drawer-nav li{
    opacity:0; transform: translateX(20px);
    transition: opacity .5s cubic-bezier(.2,.7,.3,1), transform .5s cubic-bezier(.2,.7,.3,1);
    transition-delay: var(--lx-stagger, 0ms);
}
.lx-drawer[aria-hidden="false"] .lx-drawer-nav li{ opacity:1; transform:translateX(0); }
.lx-drawer-nav a{
    display:flex; align-items:center; gap:16px;
    padding: 16px 18px;
    border-radius: 14px;
    color: #f5efe2;
    font-family: var(--ff-display);
    font-size: 22px;
    font-weight: 500;
    letter-spacing: -.005em;
    text-decoration:none;
    transition: background .25s, color .25s, padding .25s;
    position:relative;
}
.lx-drawer-nav a > i:first-child{
    width:34px; height:34px; border-radius:10px;
    background: rgba(255,255,255,.05);
    color: var(--gold-hi);
    display:inline-flex; align-items:center; justify-content:center;
    font-size:14px;
    transition: background .25s, color .25s;
    flex-shrink:0;
}
.lx-drawer-nav a span{ flex:1; }
.lx-drawer-arrow{ font-size:13px; color:rgba(245,239,226,.35); transition: transform .25s, color .25s; }
.lx-drawer-nav a:hover{ background: rgba(255,255,255,.05); color:#fff; }
.lx-drawer-nav a:hover > i:first-child{ background: linear-gradient(135deg, var(--gold), var(--gold-hi)); color:#1a1100; }
.lx-drawer-nav a:hover .lx-drawer-arrow{ transform: translateX(4px); color:var(--gold-hi); }
.lx-drawer-nav a.is-active{ background: linear-gradient(90deg, color-mix(in srgb, var(--gold) 18%, transparent), transparent 70%); }
.lx-drawer-nav a.is-active > i:first-child{ background: linear-gradient(135deg, var(--gold), var(--gold-hi)); color:#1a1100; }
.lx-drawer-nav a.is-active::before{
    content:""; position:absolute; left:0; top:14px; bottom:14px; width:3px;
    background: linear-gradient(180deg, var(--gold), var(--gold-hi));
    border-radius: 0 4px 4px 0;
}

.lx-drawer-foot{
    position:relative;
    padding: 14px 22px 28px;
    border-top: 1px solid rgba(255,255,255,.08);
    background: rgba(0,0,0,.18);
}
.lx-drawer-cta{
    display:flex; align-items:center; justify-content:center; gap:10px;
    padding: 16px 22px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--gold), var(--gold-hi));
    color:#1a1100 !important; font-weight:600; letter-spacing:.06em; text-transform:uppercase; font-size:13px;
    text-decoration:none;
    box-shadow: 0 14px 34px color-mix(in srgb, var(--gold) 35%, transparent);
    transition: transform .2s ease, box-shadow .2s ease;
}
.lx-drawer-cta:active{ transform: translateY(1px); }
.lx-drawer-contact{ margin-top: 14px; display:flex; flex-direction:column; gap:6px; }
.lx-drawer-contact a{
    display:inline-flex; align-items:center; gap:10px;
    font-size:13px; color:rgba(245,239,226,.65); text-decoration:none;
    transition: color .2s;
}
.lx-drawer-contact a i{ color:var(--gold-hi); width:14px; text-align:center; }
.lx-drawer-contact a:hover{ color:#fff; }

/* Body scroll-lock while drawer is open */
body.lx-no-scroll{ overflow:hidden; touch-action:none; }

/* Burger animates to × when drawer is open */
.lx-burger.is-open{ background: rgba(255,255,255,.1); }
.lx-burger.is-open span:nth-child(1){ top:19px; transform: rotate(45deg); }
.lx-burger.is-open span:nth-child(2){ opacity:0; }
.lx-burger.is-open span:nth-child(3){ top:19px; transform: rotate(-45deg); }
@media(min-width:992px){ .lx-drawer{ display:none; } }

/* ===================== BUTTONS ===================== */
.lx-btn{display:inline-flex;align-items:center;gap:10px;padding:18px 36px;font-family:var(--ff-body);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;border-radius:999px;border:0;cursor:pointer;transition:.35s cubic-bezier(.2,.7,.3,1);text-decoration:none;position:relative;overflow:hidden}
.lx-btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-hi));color:#1a1100;box-shadow:0 14px 40px rgba(201,162,104,.4)}
.lx-btn-gold:hover{transform:translateY(-3px);box-shadow:0 22px 60px rgba(201,162,104,.55);color:#1a1100}
.lx-btn-ghost{background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(10px)}
.lx-btn-ghost:hover{background:rgba(255,255,255,.18);border-color:#fff;color:#fff;transform:translateY(-2px)}
.lx-btn-dark{background:var(--ink);color:#fff}
.lx-btn-dark:hover{background:#2a2520;color:var(--gold-hi);transform:translateY(-2px)}
.lx-btn-arrow{transition:transform .3s}
.lx-btn:hover .lx-btn-arrow{transform:translateX(5px)}

/* ===================== HERO ===================== */
.lx-hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;color:#fff;overflow:hidden;background:#000}
.lx-hero-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;transform:scale(1.08);animation:hero-zoom 22s ease-out forwards}
@keyframes hero-zoom{to{transform:scale(1)}}
.lx-hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,.35) 0%, rgba(0,0,0,.15) 30%, rgba(0,0,0,.85) 100%)}
.lx-hero-inner{position:relative;z-index:2;width:100%;max-width:var(--max);margin:0 auto;padding:160px 32px 120px}
@media(max-width:768px){.lx-hero-inner{padding:140px 20px 80px}}
.lx-hero h1{max-width:14ch;margin:24px 0 32px;color:#fff;animation:fadeUp 1.1s cubic-bezier(.2,.7,.3,1) .4s both}
.lx-hero .lx-sub{font-size:clamp(17px,1.5vw,21px);color:rgba(255,255,255,.85);max-width:580px;font-weight:300;line-height:1.7;animation:fadeUp 1s cubic-bezier(.2,.7,.3,1) .7s both}
.lx-hero-eyebrow{color:var(--gold-hi);animation:fadeUp .9s cubic-bezier(.2,.7,.3,1) .2s both}
.lx-hero-eyebrow::before{background:var(--gold-hi)}
.lx-hero-actions{margin-top:48px;display:flex;gap:14px;flex-wrap:wrap;animation:fadeUp 1s cubic-bezier(.2,.7,.3,1) 1s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:translateY(0)}}

.lx-hero-marquee{
    position:absolute;left:0;right:0;bottom:0;z-index:2;
    padding:22px 0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.6));
    display:flex;gap:64px;align-items:center;justify-content:space-around;
    border-top:1px solid rgba(255,255,255,.08);
    color:rgba(255,255,255,.85);font-size:13px;letter-spacing:.18em;text-transform:uppercase;font-weight:500;
}
.lx-hero-marquee span{display:flex;align-items:center;gap:10px}
.lx-hero-marquee i{color:var(--gold);font-size:6px}
@media(max-width:768px){.lx-hero-marquee{font-size:10px;gap:18px;padding:14px 12px;overflow-x:auto}}

/* ===================== SECTION BASE ===================== */
.lx-section{padding:140px 0;position:relative}
@media(max-width:768px){.lx-section{padding:80px 0}}
.lx-section--cream{background:linear-gradient(180deg, var(--cream) 0%, var(--paper) 100%)}
.lx-section--champagne{background:linear-gradient(135deg,#fbf3e0 0%,#f5e8cc 100%);position:relative;overflow:hidden}
.lx-section--champagne::before{content:"";position:absolute;top:-200px;right:-200px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(201,162,104,.18),transparent 70%)}
.lx-section--dark{background:var(--navy);color:#fff}
.lx-section--paper{background:var(--paper)}
.lx-section-head{margin-bottom:80px;position:relative;z-index:2}
.lx-section-head.center{text-align:center}
.lx-section-head.center .lx-eyebrow{justify-content:center}
.lx-section-head.center .lx-lead{margin-left:auto;margin-right:auto}

/* ===================== IMAGE-FIRST SHOWCASE (full-bleed) ===================== */
.lx-showcase{position:relative;min-height:80vh;display:flex;align-items:center;overflow:hidden;color:#fff}
.lx-showcase-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.lx-showcase-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(0,0,0,.85) 0%, rgba(0,0,0,.4) 55%, transparent 100%)}
.lx-showcase-inner{position:relative;z-index:2;width:100%;max-width:var(--max);margin:0 auto;padding:120px 32px}
.lx-showcase h2{color:#fff;max-width:16ch}
.lx-showcase .lx-lead{color:rgba(255,255,255,.78);max-width:540px}

/* ===================== SPLIT IMAGE LAYOUT ===================== */
.lx-split{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch;min-height:80vh}
.lx-split-img{position:relative;overflow:hidden;min-height:600px}
.lx-split-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s ease}
.lx-split-img:hover img{transform:scale(1.06)}
.lx-split-img-overlay{position:absolute;bottom:32px;left:32px;right:32px;color:#fff;z-index:2}
.lx-split-img-overlay .lbl{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-hi);font-weight:600}
.lx-split-img-overlay .num{font-family:var(--ff-display);font-size:64px;line-height:1;margin-top:8px}
.lx-split-content{padding:100px 80px;display:flex;flex-direction:column;justify-content:center;background:var(--paper)}
.lx-split-content.dark{background:var(--navy);color:#fff}
.lx-split-content.dark .lx-lead{color:rgba(255,255,255,.7)}
.lx-split-content.dark h2{color:#fff}
.lx-split-content.cream{background:var(--cream)}
@media(max-width:991px){.lx-split{grid-template-columns:1fr}.lx-split-img{min-height:480px}.lx-split-content{padding:70px 28px}}

/* ===================== PHOTO TILES (image-first event types) ===================== */
.lx-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
@media(max-width:991px){.lx-tiles{grid-template-columns:repeat(2,1fr)}}
@media(max-width:575px){.lx-tiles{grid-template-columns:1fr}}
.lx-tile{position:relative;aspect-ratio:3/4;overflow:hidden;cursor:pointer;color:#fff}
.lx-tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.6s cubic-bezier(.2,.7,.3,1)}
.lx-tile::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.85));z-index:1;transition:opacity .4s}
.lx-tile:hover::before{background:linear-gradient(180deg,rgba(0,0,0,.2) 0%,rgba(0,0,0,.9) 100%)}
.lx-tile:hover img{transform:scale(1.08)}
.lx-tile-body{position:absolute;left:0;right:0;bottom:0;padding:36px 28px;z-index:2;transform:translateY(20px);transition:transform .5s}
.lx-tile:hover .lx-tile-body{transform:translateY(0)}
.lx-tile h3{font-family:var(--ff-display);font-size:30px;font-weight:500;margin:0 0 6px;color:#fff}
.lx-tile-line{width:32px;height:1px;background:var(--gold);margin:14px 0;opacity:.7}
.lx-tile-desc{font-size:13px;color:rgba(255,255,255,.7);line-height:1.6;opacity:0;max-height:0;overflow:hidden;transition:.5s}
.lx-tile:hover .lx-tile-desc{opacity:1;max-height:90px;margin-top:8px}

/* ===================== PACKAGE GLASS CARDS ===================== */
.lx-pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:991px){.lx-pkgs{grid-template-columns:1fr}}
.lx-pkg{position:relative;border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 30px 80px rgba(15,23,42,.08);transition:.5s;display:flex;flex-direction:column}
.lx-pkg:hover{transform:translateY(-10px);box-shadow:0 50px 100px rgba(15,23,42,.18)}
.lx-pkg-img{position:relative;aspect-ratio:5/4;overflow:hidden}
.lx-pkg-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s}
.lx-pkg:hover .lx-pkg-img img{transform:scale(1.1)}
.lx-pkg-tag{position:absolute;top:20px;left:20px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);padding:8px 16px;border-radius:999px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--ink)}
.lx-pkg-body{padding:36px 32px 36px;display:flex;flex-direction:column;flex:1}
.lx-pkg h3{font-family:var(--ff-display);font-size:30px;font-weight:500;margin:0 0 10px}
.lx-pkg p{color:var(--muted);font-size:14px;line-height:1.7;margin:0 0 20px;min-height:44px}
.lx-pkg-price{padding-top:20px;margin-top:auto;border-top:1px solid rgba(0,0,0,.06);display:flex;justify-content:space-between;align-items:center}
.lx-pkg-price .from{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);font-weight:500}
.lx-pkg-price .v{font-family:var(--ff-display);font-size:30px;color:var(--ink)}
.lx-pkg-cta{display:inline-flex;align-items:center;gap:8px;color:var(--gold);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;margin-top:18px}
.lx-pkg-cta i{transition:transform .3s}
.lx-pkg:hover .lx-pkg-cta i{transform:translateX(5px)}

/* ===================== TESTIMONIALS ===================== */
.lx-test{background:#fff;padding:48px 40px;border-radius:24px;box-shadow:0 30px 60px rgba(15,23,42,.06);position:relative;height:100%;display:flex;flex-direction:column}
.lx-test::before{content:'"';position:absolute;top:-12px;left:28px;font-family:var(--ff-display);font-size:120px;color:var(--gold);line-height:1;font-style:italic;opacity:.18}
.lx-test-stars{color:var(--gold);letter-spacing:3px;font-size:13px;margin-bottom:18px;position:relative}
.lx-test-q{font-family:var(--ff-display);font-style:italic;font-size:21px;line-height:1.55;color:var(--text);position:relative}
.lx-test-foot{display:flex;align-items:center;gap:14px;margin-top:auto;padding-top:24px}
.lx-test-avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,var(--gold),var(--gold-hi));color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--ff-display);font-weight:600;font-size:22px;flex-shrink:0}
.lx-test-name{font-weight:600;font-size:15px}
.lx-test-meta{font-size:12px;color:var(--muted);letter-spacing:.05em}

/* ===================== AVAILABILITY (Luxury booking widget) ===================== */
.lx-avail{position:relative;background-size:cover;background-position:center;padding:140px 0;color:#fff;overflow:hidden}
.lx-avail::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(15,23,42,.92) 0%, rgba(15,23,42,.55) 100%)}
.lx-avail > *{position:relative}
.lx-glass-card{background:rgba(255,255,255,.08);backdrop-filter:blur(28px) saturate(140%);-webkit-backdrop-filter:blur(28px) saturate(140%);border:1px solid rgba(255,255,255,.18);border-radius:28px;padding:48px;box-shadow:0 40px 100px rgba(0,0,0,.4)}
.lx-glass-input{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);color:#fff;padding:18px 20px;width:100%;border-radius:14px;font-family:var(--ff-body);font-size:15px;transition:.3s}
.lx-glass-input:focus{outline:none;border-color:var(--gold);background:rgba(255,255,255,.12);box-shadow:0 0 0 4px rgba(201,162,104,.2)}
.lx-glass-input::-webkit-calendar-picker-indicator{filter:invert(1) sepia(1) hue-rotate(20deg);cursor:pointer}
.lx-glass-label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-hi);display:block;margin-bottom:10px;font-weight:600}

/* ===================== GALLERY MASONRY ===================== */
.lx-gallery{column-count:3;column-gap:18px}
@media(max-width:991px){.lx-gallery{column-count:2}}
@media(max-width:575px){.lx-gallery{column-count:1}}
.lx-g-item{break-inside:avoid;margin-bottom:18px;overflow:hidden;border-radius:18px;cursor:zoom-in;position:relative;display:block}
.lx-g-item img{width:100%;height:auto;transition:transform 1.2s}
.lx-g-item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.7));opacity:0;transition:.4s}
.lx-g-item:hover img{transform:scale(1.08)}
.lx-g-item:hover::after{opacity:1}

/* ===================== FOOTER ===================== */
.lx-footer{background:#0f172a;color:rgba(255,255,255,.7);padding:100px 0 30px;position:relative;overflow:hidden}
.lx-footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.lx-footer-inner{display:flex;flex-direction:column;gap:60px}
.lx-footer-top{display:grid;grid-template-columns:1.4fr 2fr;gap:80px}
@media(max-width:991px){.lx-footer-top{grid-template-columns:1fr;gap:50px}}
.lx-footer-logo{font-family:var(--ff-display);font-size:42px;font-weight:500;color:#fff;margin:0 0 16px;letter-spacing:-.01em}
.lx-footer-tagline{font-size:16px;line-height:1.7;color:rgba(255,255,255,.6);max-width:380px;font-weight:300;font-style:italic;font-family:var(--ff-display)}
.lx-footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:48px}
@media(max-width:768px){.lx-footer-cols{grid-template-columns:1fr 1fr;gap:32px}}
.lx-footer-cols h6{font-family:var(--ff-body);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin:0 0 22px;font-weight:600}
.lx-footer-cols a, .lx-footer-cols p{display:block;color:rgba(255,255,255,.65);font-size:14px;margin-bottom:12px;line-height:1.6}
.lx-footer-cols a:hover{color:var(--gold-hi);padding-left:4px}
.lx-socials{display:flex;gap:12px;margin-top:24px}
.lx-socials a{width:44px;height:44px;border:1px solid rgba(255,255,255,.12);border-radius:50%;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6);transition:.3s}
.lx-socials a:hover{background:var(--gold);border-color:var(--gold);color:#0f172a;transform:translateY(-3px)}
.lx-footer-bottom{padding-top:28px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px;color:rgba(255,255,255,.45)}
.lx-footer-bottom a{color:var(--gold-hi)}

/* ===================== FLOATING UI ===================== */
.lx-wa-float{position:fixed;bottom:28px;right:28px;width:64px;height:64px;background:linear-gradient(135deg,#25d366,#1faa54);color:#fff !important;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;z-index:90;box-shadow:0 18px 50px rgba(37,211,102,.5);animation:wa-pulse 2.4s infinite}
@keyframes wa-pulse{0%,100%{box-shadow:0 18px 50px rgba(37,211,102,.5),0 0 0 0 rgba(37,211,102,.45)}50%{box-shadow:0 18px 50px rgba(37,211,102,.5),0 0 0 18px rgba(37,211,102,0)}}
.lx-wa-float:hover{transform:scale(1.08);color:#fff !important}
.lx-scroll-top{position:fixed;bottom:28px;left:28px;width:48px;height:48px;background:rgba(15,23,42,.85);backdrop-filter:blur(10px);color:var(--gold);border:1px solid rgba(255,255,255,.15);border-radius:50%;display:none;align-items:center;justify-content:center;z-index:90;cursor:pointer;transition:.3s}
.lx-scroll-top.show{display:flex}
.lx-scroll-top:hover{background:var(--gold);color:#0f172a}

/* ===================== REVEAL ===================== */
.lx-reveal{opacity:0;transform:translateY(50px);transition:opacity 1s cubic-bezier(.2,.7,.3,1), transform 1s cubic-bezier(.2,.7,.3,1)}
.lx-reveal.is-in{opacity:1;transform:translateY(0)}
.lx-reveal-delay-1{transition-delay:.12s}.lx-reveal-delay-2{transition-delay:.24s}.lx-reveal-delay-3{transition-delay:.36s}.lx-reveal-delay-4{transition-delay:.48s}

/* ===================== GRID + UTILS ===================== */
.row{display:flex;flex-wrap:wrap;margin:-14px}
.row>[class*="col-"]{padding:14px}
.row.g-3>[class*="col-"]{padding:10px}.row.g-4>[class*="col-"]{padding:14px}.row.g-5>[class*="col-"]{padding:24px}
.col-12{width:100%}.col-6{width:50%}
@media(min-width:768px){.col-md-3{width:25%}.col-md-4{width:33.3333%}.col-md-5{width:41.6666%}.col-md-6{width:50%}.col-md-7{width:58.3333%}.col-md-8{width:66.6666%}.col-md-12{width:100%}}
@media(min-width:992px){.col-lg-3{width:25%}.col-lg-4{width:33.3333%}.col-lg-5{width:41.6666%}.col-lg-6{width:50%}.col-lg-7{width:58.3333%}.col-lg-8{width:66.6666%}.col-lg-12{width:100%}}
.d-flex{display:flex}.flex-wrap{flex-wrap:wrap}.justify-content-between{justify-content:space-between}.justify-content-center{justify-content:center}.align-items-center{align-items:center}
.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:18px}
.mt-3{margin-top:1rem}.mt-4{margin-top:1.5rem}.mt-5{margin-top:3rem}
.mb-3{margin-bottom:1rem}.mb-4{margin-bottom:1.5rem}.mb-5{margin-bottom:3rem}
.text-center{text-align:center}.text-end{text-align:right}
.alert{padding:16px 20px;border-radius:14px;border:1px solid;margin-top:18px;font-size:14px}
.alert-success{background:rgba(74,125,74,.18);border-color:rgba(74,125,74,.6);color:#dff3df}
.alert-warning{background:rgba(201,138,38,.18);border-color:rgba(201,138,38,.6);color:#ffe5bd}
.alert-danger{background:rgba(185,69,69,.18);border-color:rgba(185,69,69,.6);color:#ffd0d0}

/* ===================== PREMIUM CALENDAR (Availability) ===================== */
.lx-cal-section{
  position:relative;
  padding:120px 0 130px;
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
}
.lx-cal-section-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(10,12,28,.86) 0%, rgba(10,12,28,.92) 60%, rgba(10,12,28,.96) 100%);
  pointer-events:none;
}
@media (max-width: 768px){
  .lx-cal-section{padding:80px 0 90px;background-attachment:scroll}
}

.lx-cal{
  background:linear-gradient(160deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  padding:24px 22px 22px;
  backdrop-filter:blur(14px) saturate(110%);
  -webkit-backdrop-filter:blur(14px) saturate(110%);
  position:relative;
  overflow:hidden;
}
.lx-cal::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(120% 80% at 50% -10%, rgba(227,201,138,.10), transparent 60%);
  pointer-events:none;
}
.lx-cal-head{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:18px;position:relative;
}
.lx-cal-nav{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.14);
  color:#efe1c0;
  width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .25s ease;
  font-size:12px;
}
.lx-cal-nav:hover{background:rgba(227,201,138,.18);border-color:rgba(227,201,138,.5);color:#fff;transform:scale(1.06)}
.lx-cal-title{text-align:center;line-height:1.1}
.lx-cal-month{
  display:block;font-family:var(--ff-display,'Playfair Display'),serif;
  font-size:22px;color:#fff;font-style:italic;letter-spacing:.5px;
}
.lx-cal-year{
  display:block;font-size:10px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold-hi,#e3c98a);margin-top:4px;
}
.lx-cal-dow{
  display:grid;grid-template-columns:repeat(7,1fr);gap:4px;
  margin-bottom:10px;position:relative;
}
.lx-cal-dow span{
  text-align:center;font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.45);font-weight:600;padding:6px 0;
}
.lx-cal-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:6px;position:relative;
}
.lx-cal-cell{
  aspect-ratio:1/1;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;color:rgba(255,255,255,.78);
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.06);
  border-radius:10px;
  position:relative;
  cursor:pointer;
  transition:all .22s cubic-bezier(.2,.7,.3,1);
  font-feature-settings:"tnum";
  user-select:none;
}
.lx-cal-cell:hover:not(.is-blank):not(.is-booked):not(.is-past){
  background:rgba(227,201,138,.16);
  border-color:rgba(227,201,138,.5);
  color:#fff;transform:translateY(-1px);
}
.lx-cal-cell.is-blank{background:transparent;border-color:transparent;cursor:default}
.lx-cal-cell.is-past{color:rgba(255,255,255,.22);cursor:not-allowed;background:rgba(255,255,255,.01)}
.lx-cal-cell.is-today{
  border-color:rgba(227,201,138,.7);
  box-shadow:inset 0 0 0 1px rgba(227,201,138,.3), 0 0 14px rgba(227,201,138,.18);
  color:#fff;font-weight:600;
}
.lx-cal-cell.is-today::after{
  content:"";position:absolute;bottom:6px;left:50%;transform:translateX(-50%);
  width:4px;height:4px;border-radius:50%;background:var(--gold-hi,#e3c98a);
}
.lx-cal-cell.is-booked{
  background:rgba(185,69,69,.10);
  border-color:rgba(185,69,69,.32);
  color:rgba(255,180,180,.85);
  cursor:not-allowed;
  text-decoration:line-through;
  text-decoration-color:rgba(185,69,69,.55);
}
.lx-cal-cell.is-booked::before{
  content:"";position:absolute;top:6px;right:6px;
  width:5px;height:5px;border-radius:50%;background:#d76b6b;
  box-shadow:0 0 6px rgba(215,107,107,.6);
}
.lx-cal-cell.is-selected{
  background:linear-gradient(135deg, rgba(227,201,138,.85), rgba(201,162,104,.75));
  color:#1a1408;font-weight:700;
  border-color:rgba(227,201,138,.9);
  box-shadow:0 6px 18px rgba(227,201,138,.35);
}
.lx-cal-cell.is-selected::after{display:none}
.lx-cal-legend{
  display:flex;flex-wrap:wrap;gap:18px;justify-content:center;
  margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.55);
}
.lx-cal-leg{display:inline-flex;align-items:center;gap:8px}
.lx-cal-chip{width:10px;height:10px;border-radius:3px;display:inline-block}
.lx-cal-chip--free{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3)}
.lx-cal-chip--booked{background:rgba(185,69,69,.5);border:1px solid rgba(215,107,107,.7)}
.lx-cal-chip--today{background:transparent;border:1px solid rgba(227,201,138,.85);box-shadow:0 0 6px rgba(227,201,138,.4)}

@media (max-width: 560px){
  .lx-cal{padding:18px 14px 16px}
  .lx-cal-cell{font-size:12px;border-radius:8px}
  .lx-cal-month{font-size:18px}
}

