:root {
    --gold: #D4AF37;
    --gold-dark: #b49450;
    --gold-light: rgba(212,175,55,0.15);
    --charcoal: #2c2c2c;
    --off-white: #faf7f2;
    --white: #ffffff;
    --text-dark: #3a3a3a;
    --text-muted: #5e5e5e;
    --serif: 'Playfair Display', Georgia, serif;
    --sans: 'Inter', sans-serif;
    --shadow-sm: 0 8px 20px rgba(0,0,0,0.04);
    --shadow-md: 0 15px 30px rgba(0,0,0,0.06);
    --radius: 14px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:var(--sans); background:var(--off-white); color:var(--text-dark); line-height:1.6; }
.container { max-width:1200px; margin:0 auto; padding:0 24px; }
h1,h2,h3,h4 { font-family:var(--serif); font-weight:600; line-height:1.25; }
a { text-decoration:none; color:inherit; }

.btn {
    display:inline-block; font-family:var(--sans); font-weight:600;
    font-size:0.95rem; letter-spacing:0.5px; padding:14px 36px;
    border-radius:40px; transition:all 0.25s ease; cursor:pointer;
    border:none; text-transform:uppercase;
}
.btn-gold {
    background:linear-gradient(135deg, #D4AF37, #b49450);
    color:#1e1e1e; box-shadow:0 6px 14px rgba(212,175,55,0.35);
}
.btn-gold:hover {
    background:linear-gradient(135deg, #e6c44d, #D4AF37, #c5a23b);
    box-shadow:0 10px 22px rgba(212,175,55,0.5); transform:translateY(-2px);
}

.site-header {
    position:sticky; top:0; z-index:100;
    background:rgba(44,44,44,0.95); backdrop-filter:blur(12px);
    border-bottom:2px solid rgba(212,175,55,0.3); transition:0.3s;
}
.site-header.scrolled { box-shadow:0 8px 24px rgba(0,0,0,0.15); background:rgba(44,44,44,0.98); }
.nav-container { display:flex; align-items:center; justify-content:space-between; height:80px; }
.logo-group { display:flex; flex-direction:column; line-height:1.2; }
.logo-main { font-family:var(--serif); font-size:2rem; font-weight:700; color:var(--gold); letter-spacing:1px; }
.logo-sub { font-size:0.7rem; text-transform:uppercase; letter-spacing:2.5px; color:#c9a87c; margin-top:-2px; }
.nav-list { display:flex; list-style:none; gap:2.5rem; }
.nav-link { font-size:0.85rem; font-weight:500; text-transform:uppercase; letter-spacing:1.5px; color:#e0d6cc; position:relative; padding:6px 0; transition:color 0.2s; }
.nav-link::after { content:''; position:absolute; bottom:0; left:0; width:0; height:2px; background:var(--gold); transition:width 0.3s; }
.nav-link:hover { color:var(--gold); }
.nav-link:hover::after { width:100%; }
.mobile-toggle { display:none; background:none; border:none; font-size:1.8rem; color:var(--gold); cursor:pointer; }

.hero-section {
    position:relative;
    background:linear-gradient(135deg, #1a1a1a 0%, #2c2c2c 30%, #3a3a3a 60%, #1f1f1f 100%);
    min-height:85vh; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden;
}
.hero-overlay {
    position:absolute; inset:0;
    background:radial-gradient(circle at 20% 50%, rgba(212,175,55,0.1) 0%, transparent 50%),
              radial-gradient(circle at 80% 20%, rgba(212,175,55,0.06) 0%, transparent 50%),
              radial-gradient(circle at 50% 80%, rgba(201,168,124,0.08) 0%, transparent 50%);
    z-index:1;
}
.hero-content { position:relative; z-index:2; max-width:800px; padding:40px 20px; }
.hero-title { font-size:clamp(2.8rem, 7vw, 4.5rem); color:var(--white); font-weight:700; margin-bottom:1.2rem; letter-spacing:-0.5px; }
.hero-description { font-size:1.25rem; color:#e0d6cc; margin-bottom:2.5rem; max-width:600px; margin-left:auto; margin-right:auto; }

.section-header { text-align:center; margin-bottom:50px; }
.section-title { font-size:2.5rem; color:var(--charcoal); margin-bottom:0.5rem; display:inline-block; position:relative; }
.section-title::after { content:''; display:block; width:70px; height:3px; background:linear-gradient(135deg, #D4AF37, #b49450); margin:12px auto 0; border-radius:2px; }
.section-subtitle { color:var(--text-muted); font-size:1.1rem; margin-top:0.5rem; font-style:italic; }

.services-section { padding:80px 0; background:linear-gradient(180deg, #fdfaf5 0%, #f5efe8 100%); }
.services-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:30px; }
.service-card { background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow-sm); transition:0.3s; border:1px solid rgba(212,175,55,0.15); padding:35px 25px; text-align:center; }
.service-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-md); border-color:rgba(212,175,55,0.4); }
.service-icon { width:70px; height:70px; background:var(--gold-light); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; border:2px solid rgba(212,175,55,0.3); font-size:1.6rem; color:var(--gold-dark); }
.service-card h3 { font-size:1.5rem; margin-bottom:10px; color:#2c2c2c; }
.service-card p { color:#5e5e5e; font-size:0.95rem; margin-bottom:20px; }
.price { font-weight:700; font-size:1.1rem; color:var(--gold-dark); display:inline-block; background:var(--gold-light); padding:6px 16px; border-radius:20px; border:1px solid rgba(212,175,55,0.3); }

/* ========== FULL CAROUSEL GALLERY ========== */
.gallery-section { padding:80px 0; background:var(--white); }

.carousel-wrapper { position:relative; max-width:800px; margin:0 auto 30px; }
.carousel-viewport { overflow:hidden; border-radius:var(--radius); box-shadow:0 20px 50px rgba(0,0,0,0.15); border:2px solid rgba(212,175,55,0.2); }
.carousel-slides { display:flex; transition:transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.carousel-slide { min-width:100%; position:relative; }
.carousel-slide img { width:100%; height:450px; object-fit:cover; display:block; }
.slide-overlay { position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.1) 50%, transparent 100%); }
.slide-content { position:absolute; bottom:0; left:0; right:0; padding:40px 30px 30px; color:#fff; z-index:2; }
.slide-number { font-size:0.8rem; text-transform:uppercase; letter-spacing:3px; opacity:0.8; display:block; margin-bottom:8px; }
.slide-title { font-family:var(--serif); font-size:2rem; font-weight:700; margin-bottom:5px; }
.slide-desc { font-size:1rem; opacity:0.9; }

.carousel-arrow {
    position:absolute; top:50%; transform:translateY(-50%); z-index:5;
    width:50px; height:50px; border-radius:50%; border:2px solid rgba(255,255,255,0.5);
    background:rgba(0,0,0,0.4); color:#fff; font-size:1.2rem;
    cursor:pointer; transition:all 0.3s; display:flex; align-items:center; justify-content:center;
    backdrop-filter:blur(4px);
}
.carousel-arrow:hover { background:var(--gold); border-color:var(--gold); color:#1e1e1e; }
.carousel-arrow-left { left:20px; }
.carousel-arrow-right { right:20px; }

.carousel-indicators { display:flex; justify-content:center; gap:10px; margin-top:20px; }
.indicator-dot { width:12px; height:12px; border-radius:50%; border:2px solid var(--gold); background:transparent; cursor:pointer; transition:all 0.3s; padding:0; }
.indicator-dot.active { background:var(--gold); width:30px; border-radius:20px; }

.carousel-thumbnails { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.thumbnail { cursor:pointer; border-radius:8px; overflow:hidden; border:2px solid transparent; transition:all 0.3s; text-align:center; width:90px; }
.thumbnail img { width:100%; height:55px; object-fit:cover; display:block; }
.thumbnail span { display:block; font-size:0.7rem; padding:5px 0; color:var(--text-muted); font-weight:500; }
.thumbnail.active { border-color:var(--gold); box-shadow:0 4px 15px rgba(212,175,55,0.3); }
.thumbnail.active span { color:var(--gold-dark); font-weight:600; }
.thumbnail:hover { border-color:var(--gold); }

.booking-section { padding:80px 0; background:linear-gradient(180deg, #f5efe8 0%, #faf7f2 100%); }
.booking-container { max-width:780px; background:var(--white); border-radius:28px; padding:50px 45px; box-shadow:0 30px 50px rgba(0,0,0,0.05); border:1px solid rgba(212,175,55,0.25); margin:0 auto; }
.booking-intro { text-align:center; margin-bottom:40px; }
.booking-form .form-row { display:flex; gap:24px; margin-bottom:22px; flex-wrap:wrap; }
.form-group { flex:1 1 220px; display:flex; flex-direction:column; }
.form-group label { font-weight:600; font-size:0.8rem; text-transform:uppercase; letter-spacing:0.8px; color:#4a4a4a; margin-bottom:6px; }
.form-group input, .form-group select { padding:14px 16px; border:1px solid #e0d6cc; border-radius:12px; font-family:var(--sans); font-size:0.95rem; background:#fefcf9; transition:0.2s; outline:none; color:#2c2c2c; }
.form-group input:focus, .form-group select:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(212,175,55