/* ===== RESET & BASE ===== */
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Nunito Sans',sans-serif;background:#FAF6EF;color:#2D1B26;line-height:1.6}
h1,h2,h3,h4{font-family:'Playfair Display',serif}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.text-gradient{background:linear-gradient(135deg,#D81B60,#F16C5B,#D4AF37);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.text-center{text-align:center}
.mt-12{margin-top:3rem}

/* ===== BUTTONS ===== */
.btn{display:inline-block;padding:12px 30px;border-radius:50px;font-weight:700;font-size:1rem;border:none;cursor:pointer;transition:all .3s ease;font-family:'Nunito Sans',sans-serif}
.btn-primary{background:linear-gradient(135deg,#D81B60,#F16C5B);color:#fff;box-shadow:0 4px 15px rgba(216,27,96,.4)}
.btn-primary:hover{transform:scale(1.05);box-shadow:0 8px 25px rgba(216,27,96,.5)}
.btn-outline{background:transparent;border:2px solid #D4AF37;color:#D4AF37}
.btn-outline:hover{background:#D4AF37;color:#2D1B26}
.btn-secondary{background:#159A8C;color:#fff}
.btn-secondary:hover{background:#117a6e}
.btn-lg{padding:16px 40px;font-size:1.1rem}
.btn-block{width:100%}

/* ===== NAVIGATION ===== */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(45,27,38,0.85);backdrop-filter:blur(8px);border-bottom:1px solid rgba(212,175,55,0.2);transition:background .3s}
.nav-inner{display:flex;justify-content:space-between;align-items:center;padding:0 20px;max-width:1200px;margin:0 auto;height:70px}
.nav-brand{font-family:'Playfair Display',serif;font-size:1.5rem;font-weight:700;color:#FAF6EF}
.nav-brand .brand-accent{background:linear-gradient(135deg,#D4AF37,#F9B81F);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.nav-links{display:flex;gap:2rem;list-style:none;align-items:center}
.nav-links a{color:#FAF6EF;font-weight:600;font-size:.95rem;transition:color .3s}
.nav-links a:hover,.nav-links a.active{color:#D4AF37}
.nav-cta{background:linear-gradient(135deg,#D81B60,#F16C5B);padding:8px 20px;border-radius:50px;color:#fff!important;font-weight:700;box-shadow:0 2px 10px rgba(216,27,96,.3)}
.nav-cta:hover{transform:scale(1.05);color:#fff!important}
.nav-toggle{display:none;background:none;border:none;color:#FAF6EF;font-size:1.5rem;cursor:pointer}
.nav-mobile{display:none;background:rgba(45,27,38,0.98);padding:20px;border-top:1px solid rgba(212,175,55,0.2)}
.nav-mobile ul{list-style:none;display:flex;flex-direction:column;gap:1rem}
.nav-mobile a{color:#FAF6EF;font-weight:600;display:block;padding:10px 0}
.nav-mobile .nav-cta-mobile{background:linear-gradient(135deg,#D81B60,#F16C5B);padding:12px;border-radius:50px;text-align:center;color:#fff}
@media(max-width:768px){.nav-links{display:none}.nav-toggle{display:block}.nav-mobile.open{display:block}}

/* ===== HERO ===== */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 20px;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(45,27,38,0.6),rgba(45,27,38,0.85));z-index:1}
.hero-glow-1,.hero-glow-2,.hero-glow-3{position:absolute;border-radius:50%;filter:blur(100px);z-index:1}
.hero-glow-1{width:400px;height:400px;background:rgba(216,27,96,0.2);top:-100px;right:-100px}
.hero-glow-2{width:350px;height:350px;background:rgba(21,154,140,0.2);bottom:-100px;left:-100px}
.hero-glow-3{width:250px;height:250px;background:rgba(212,175,55,0.15);top:50%;left:30%;transform:translate(-50%,-50%)}
.hero-content{position:relative;z-index:2;max-width:800px;color:#FAF6EF}
.hero-tagline{font-size:.9rem;letter-spacing:.3em;text-transform:uppercase;font-weight:700;color:#D4AF37;margin-bottom:1rem}
.hero-title{font-size:4.5rem;font-weight:700;line-height:1.1;margin-bottom:1rem}
@media(max-width:768px){.hero-title{font-size:3rem}}
.hero-subtitle{font-size:1.2rem;color:rgba(250,246,239,0.85);margin-bottom:2rem}
.hero-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.hero-scroll{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);color:#D4AF37;font-size:1.5rem;animation:bounce 2s infinite;z-index:2}
@keyframes bounce{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-10px)}}

/* ===== SECTIONS ===== */
.section-header{text-align:center;margin-bottom:3rem}
.section-label{color:#159A8C;font-weight:700;letter-spacing:.2em;text-transform:uppercase;font-size:.8rem}
.section-title{font-size:2.5rem;font-weight:700;color:#2D1B26}
.section-subtitle{color:#555;max-width:600px;margin:1rem auto 0}
.section-glow-1,.section-glow-2{position:absolute;border-radius:50%;filter:blur(80px);z-index:0}
.section-glow-1{width:300px;height:300px;background:rgba(216,27,96,0.05);top:50px;right:50px}
.section-glow-2{width:250px;height:250px;background:rgba(21,154,140,0.05);bottom:50px;left:50px}

/* ===== SERVICES ===== */
.services-preview{padding:5rem 0;background:linear-gradient(135deg,rgba(216,27,96,0.03),rgba(212,175,55,0.03));position:relative}
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}
.service-card{background:rgba(250,246,239,0.8);backdrop-filter:blur(4px);padding:2rem;border-radius:16px;border:1px solid rgba(212,175,55,0.2);transition:all .3s;box-shadow:0 4px 20px rgba(45,27,38,0.05)}
.service-card:hover{transform:translateY(-8px);box-shadow:0 8px 30px rgba(216,27,96,0.15)}
.service-icon{width:60px;height:60px;border-radius:16px;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;font-size:1.5rem;color:#fff}
.service-title{font-family:'Playfair Display',serif;font-size:1.3rem;margin-bottom:.5rem}
.service-desc{color:#555;font-size:.95rem}

/* ===== GALLERY ===== */
.gallery-preview{padding:5rem 0;background:#FAF6EF}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.gallery-item{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px rgba(0,0,0,0.05);transition:transform .3s}
.gallery-item:hover{transform:scale(1.02)}
.gallery-item img{width:100%;height:250px;object-fit:cover;transition:transform .5s}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-tag{position:absolute;bottom:15px;left:15px;background:linear-gradient(135deg,#D81B60,#F16C5B);color:#fff;padding:4px 14px;border-radius:50px;font-size:.75rem;font-weight:700;opacity:0;transition:opacity .3s}
.gallery-item:hover .gallery-tag{opacity:1}

/* ===== FAQ ===== */
.faq-section{padding:5rem 0;background:#f5f0e8;position:relative}
.faq-accordion{max-width:800px;margin:0 auto 3rem}
.faq-item{border-bottom:1px solid rgba(45,27,38,0.1);padding:1rem 0}
.faq-question{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:700;font-size:1.1rem;list-style:none;padding:.5rem 0;font-family:'Playfair Display',serif}
.faq-question::-webkit-details-marker{display:none}
.faq-icon{transition:transform .3s;color:#D4AF37}
details[open] .faq-icon{transform:rotate(180deg)}
.faq-answer{padding:.5rem 0 1rem;color:#555;line-height:1.7}
.faq-ask{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,0.05);max-width:600px;margin:0 auto}
.faq-ask-title{font-family:'Playfair Display',serif;font-size:1.5rem}
.faq-ask-text{color:#555;margin-bottom:1rem}
.faq-ask-form{display:flex;flex-wrap:wrap;gap:.5rem}
.faq-ask-form input{flex:1;padding:12px 18px;border:1px solid #ddd;border-radius:50px;font-size:1rem;min-width:200px}
.faq-ask-form input:focus{outline:2px solid #D4AF37}
.faq-ask-form .btn{padding:12px 24px}

/* ===== BOOKING ===== */
.booking-section{padding:5rem 0;background:linear-gradient(135deg,rgba(216,27,96,0.03),rgba(212,175,55,0.03))}
.booking-card{max-width:700px;margin:0 auto;background:#fff;padding:2.5rem;border-radius:20px;box-shadow:0 8px 40px rgba(0,0,0,0.06);border:1px solid rgba(212,175,55,0.2)}
.booking-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-group{margin-bottom:1.2rem}
.form-group label{display:block;font-weight:600;margin-bottom:.3rem;font-size:.9rem}
.form-group label i{color:#D4AF37;margin-right:6px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border:1px solid #ddd;border-radius:12px;font-size:1rem;background:#f9f7f4;transition:border .3s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid #D4AF37;border-color:transparent}
.booking-success{text-align:center;padding:2rem 0}
.success-icon{font-size:3rem;color:#159A8C;margin-bottom:1rem}
.success-title{font-family:'Playfair Display',serif;font-size:2rem}
.success-text{color:#555}
.form-feedback{margin-top:1rem;padding:.8rem 1.2rem;border-radius:8px;font-weight:600}
.form-feedback.error{background:#fee;color:#c00;border:1px solid #fcc}
.form-feedback.success{background:#efe;color:#0a0;border:1px solid #cfc}

/* ===== FOOTER ===== */
.site-footer{background:#2D1B26;color:#FAF6EF;padding:3rem 0 1.5rem;position:relative;overflow:hidden}
.footer-top-border{position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#D81B60,#D4AF37,#159A8C)}
.footer-glow{position:absolute;bottom:-100px;right:-100px;width:300px;height:300px;background:rgba(216,27,96,0.05);border-radius:50%;filter:blur(80px)}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2.5rem;margin-bottom:2rem}
.footer-brand-title{font-family:'Playfair Display',serif;font-size:1.8rem}
.footer-brand-text{color:rgba(250,246,239,0.7);margin:.5rem 0 1rem;max-width:280px}
.footer-social a{display:inline-block;width:40px;height:40px;background:rgba(250,246,239,0.1);border-radius:50%;text-align:center;line-height:40px;color:#FAF6EF;margin-right:.8rem;transition:background .3s}
.footer-social a:hover{background:rgba(212,175,55,0.3)}
.footer-heading{font-family:'Playfair Display',serif;font-size:1.2rem;margin-bottom:1rem}
.footer-links ul,.footer-visit ul{list-style:none;padding:0}
.footer-links li,.footer-visit li{margin-bottom:.6rem}
.footer-links a{color:rgba(250,246,239,0.7);transition:color .3s}
.footer-links a:hover{color:#D4AF37}
.footer-visit li{display:flex;align-items:flex-start;gap:.8rem;color:rgba(250,246,239,0.7)}
.footer-visit i{color:#D4AF37;margin-top:4px;width:18px}
.footer-hours-note{font-size:.85rem;opacity:.7}
.footer-bottom{border-top:1px solid rgba(250,246,239,0.1);padding-top:1.5rem;text-align:center;font-size:.9rem;color:rgba(250,246,239,0.5)}

/* ===== RESPONSIVE ===== */
@media(max-width:768px){
    .form-row{grid-template-columns:1fr!important}
    .hero-title{font-size:2.8rem}
    .section-title{font-size:2rem}
    .booking-card{padding:1.5rem}
}