@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Inter:wght@300;400;500;600&display=swap');

:root{
  --red:#8B0000;
  --white:#FFFFFF;
  --dark:#1a1a1a;
  --cream:#FAF7F4;
}

*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  font-family:'Inter',sans-serif;
  color:var(--dark);
  background:var(--white);
  overflow-x:hidden;
}

h1,h2,h3,h4{font-family:'Playfair Display',serif;font-weight:600;}

a{text-decoration:none;color:inherit;}
ul{list-style:none;}
img{display:block;max-width:100%;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}

.uppercase{text-transform:uppercase;letter-spacing:3px;}

/* ===== NAVBAR ===== */
.navbar{
  position:fixed;top:0;left:0;width:100%;
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 5%;
  background:rgba(26,26,26,0.85);
  backdrop-filter:blur(6px);
  z-index:1000;
  transition:background .3s ease;
}
.navbar .logo{display:flex;align-items:center;background:var(--white);padding:6px 14px;border-radius:8px;}
.navbar .logo img{height:40px;width:auto;display:block;}
.nav-links{display:flex;gap:36px;align-items:center;}
.nav-links a{
  color:var(--white);font-size:13px;text-transform:uppercase;letter-spacing:2px;
  position:relative;padding:4px 0;transition:color .3s;
}
.nav-links a::after{
  content:'';position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--red);
  transition:width .3s ease;
}
.nav-links a:hover{color:var(--red);}
.nav-links a:hover::after{width:100%;}

.lang-toggle{display:flex;gap:6px;align-items:center;color:var(--white);font-size:13px;letter-spacing:1px;}
.lang-toggle button{color:var(--white);opacity:.5;transition:opacity .3s;font-weight:600;}
.lang-toggle button.active{opacity:1;color:var(--red);}

.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:1100;}
.hamburger span{width:26px;height:2px;background:var(--white);transition:.3s;}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(6px,6px);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(6px,-6px);}

.mobile-menu{
  position:fixed;top:0;left:0;width:100%;height:0;overflow:hidden;
  background:var(--dark);z-index:1050;transition:height .4s ease;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;
}
.mobile-menu.open{height:100vh;}
.mobile-menu a{color:var(--white);font-size:22px;text-transform:uppercase;letter-spacing:3px;transition:color .3s;}
.mobile-menu a:hover{color:var(--red);}

@media(max-width:900px){
  .nav-links{display:none;}
  .hamburger{display:flex;}
}

/* ===== HERO ===== */
.hero{
  position:relative;height:100vh;width:100%;
  display:flex;align-items:center;justify-content:center;text-align:center;
  background-size:cover;background-position:center;
}
.hero::before{
  content:'';position:absolute;inset:0;background:rgba(0,0,0,0.45);
}
.hero-content{position:relative;z-index:2;color:var(--white);padding:0 20px;opacity:0;transform:translateY(30px);animation:fadeUp 1.4s ease forwards .3s;}
.hero-content h1{font-size:clamp(2.5rem,6vw,5rem);margin-bottom:18px;}
.hero-content p{font-size:clamp(1rem,2vw,1.3rem);letter-spacing:2px;margin-bottom:40px;font-weight:300;}
.hero-buttons{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;}

.btn{
  padding:16px 34px;font-size:13px;text-transform:uppercase;letter-spacing:2.5px;
  border-radius:8px;transition:all .3s ease;display:inline-block;
  font-weight:600;
}
.btn-fill{background:linear-gradient(135deg,var(--red),#a30d0d);color:var(--white);border:1px solid var(--red);}
.btn-fill:hover{background:linear-gradient(135deg,#6e0000,var(--red));transform:scale(1.04);box-shadow:0 10px 24px rgba(139,0,0,0.35);}
.btn-outline{background:transparent;color:var(--white);border:1px solid var(--white);}
.btn-outline:hover{background:var(--white);color:var(--dark);transform:scale(1.04);box-shadow:0 10px 24px rgba(0,0,0,0.25);}

@keyframes fadeUp{to{opacity:1;transform:translateY(0);}}

/* ===== MARQUEE ===== */
.marquee-bar{
  background:var(--red);height:44px;display:flex;align-items:center;overflow:hidden;position:relative;
}
.marquee-track{
  display:flex;white-space:nowrap;animation:marquee 24s linear infinite;
}
.marquee-bar:hover .marquee-track{animation-play-state:paused;}
.marquee-track span{
  color:var(--white);font-size:13px;text-transform:uppercase;letter-spacing:3px;padding:0 20px;
}
@keyframes marquee{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}

/* ===== SECTION TITLES ===== */
.section-title{
  text-align:center;font-size:clamp(2rem,4vw,3rem);padding:80px 20px 20px;
}
.section-line{
  width:60px;height:2px;background:var(--red);margin:0 auto 40px;
}

/* ===== SERVICES GRID ===== */
.services-wrapper{position:relative;background:var(--cream);padding-bottom:80px;}
.services-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:36px;
  max-width:1200px;margin:0 auto;padding:0 5%;
}
.service-card{
  background:var(--white);border-radius:12px;overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,0.06);transition:transform .35s ease,box-shadow .35s ease;
  display:flex;flex-direction:column;
}
.service-card:hover{transform:translateY(-6px);box-shadow:0 20px 40px rgba(139,0,0,0.15);}
.service-card-img{position:relative;overflow:hidden;height:260px;}
.service-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.service-card:hover .service-card-img img{transform:scale(1.08);}
.service-card-img::after{
  content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(139,0,0,0.35),transparent 60%);
  opacity:0;transition:opacity .35s ease;
}
.service-card:hover .service-card-img::after{opacity:1;}
.service-card-body{padding:28px 26px;display:flex;flex-direction:column;flex:1;}
.service-card-num{color:var(--red);letter-spacing:3px;font-size:12px;margin-bottom:10px;}
.service-card-body h3{font-family:'Playfair Display',serif;font-size:1.4rem;margin-bottom:12px;}
.service-card-sep{width:40px;height:2px;background:var(--red);margin-bottom:14px;}
.service-card-body p.desc{font-size:14px;line-height:1.6;color:#555;margin-bottom:18px;flex:1;}
.service-card-meta{font-size:13px;letter-spacing:.5px;margin-bottom:20px;color:var(--dark);}
.service-card-meta strong{color:var(--red);}
.service-card-link{
  align-self:flex-start;padding:12px 26px;border:1px solid var(--red);color:var(--red);
  font-size:12px;letter-spacing:2px;text-transform:uppercase;border-radius:7px;transition:all .3s ease;font-weight:600;
}
.service-card-link:hover{background:var(--red);color:var(--white);transform:scale(1.04);box-shadow:0 8px 18px rgba(139,0,0,0.3);}

@media(max-width:900px){
  .services-grid{grid-template-columns:1fr;}
}
@media(min-width:901px) and (max-width:1200px){
  .services-grid{grid-template-columns:repeat(2,1fr);}
}

/* ===== AMBIANCE ===== */
.ambiance{
  position:relative;background-size:cover;background-position:center;
  padding:140px 20px;text-align:center;color:var(--white);
}
.ambiance::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,0.6);}
.ambiance-content{position:relative;z-index:2;}
.ambiance-content .quote{
  font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(1.4rem,3vw,2.2rem);
  max-width:700px;margin:0 auto 24px;
}
.stats{
  display:flex;justify-content:center;gap:80px;margin-top:60px;flex-wrap:wrap;
}
.stat h3{font-size:clamp(2rem,4vw,3rem);color:var(--white);}
.stat p{color:var(--red);text-transform:uppercase;letter-spacing:2px;font-size:13px;margin-top:8px;}

/* ===== GALLERY ===== */
.gallery{display:flex;width:100%;}
.gallery-item{
  flex:1;height:60vh;overflow:hidden;position:relative;cursor:pointer;
}
.gallery-item img{
  width:100%;height:100%;object-fit:cover;transition:transform .4s ease;
}
.gallery-item::after{
  content:'';position:absolute;inset:0;background:rgba(139,0,0,0);transition:background .4s ease;
}
.gallery-item:hover img{transform:scale(1.05);}
.gallery-item:hover::after{background:rgba(139,0,0,0.3);}

@media(max-width:700px){
  .gallery{flex-direction:column;}
  .gallery-item{height:35vh;}
}

/* ===== BOOKING CTA ===== */
.booking-cta{
  background:var(--red);text-align:center;padding:100px 20px;color:var(--white);
}
.booking-cta h2{font-size:clamp(1.8rem,4vw,3rem);margin-bottom:16px;}
.booking-cta p{margin-bottom:34px;font-size:16px;letter-spacing:1px;font-weight:300;}
.btn-white{background:var(--white);color:var(--dark);border:1px solid var(--white);}
.btn-white:hover{background:transparent;color:var(--white);border:1px solid var(--white);transform:scale(1.04);box-shadow:0 10px 24px rgba(0,0,0,0.25);}

/* ===== FOOTER ===== */
footer{background:var(--dark);color:var(--white);padding:70px 8% 30px;}
.footer-top{display:flex;flex-wrap:wrap;gap:50px;justify-content:space-between;margin-bottom:50px;}
.footer-logo{background:var(--white);display:inline-flex;align-items:center;padding:8px 16px;border-radius:8px;margin-bottom:16px;}
.footer-logo img{height:32px;width:auto;display:block;}
.footer-col h4{font-size:14px;text-transform:uppercase;letter-spacing:2px;color:var(--red);margin-bottom:20px;}
.footer-col li{margin-bottom:12px;font-size:14px;color:#ccc;transition:.3s;}
.footer-col li:hover{color:var(--white);cursor:pointer;}
.footer-sep{height:1px;background:rgba(139,0,0,0.4);margin-bottom:24px;}
.footer-bottom{text-align:center;font-size:12px;color:#888;letter-spacing:1px;}

/* ===== SOCIAL ICONS ===== */
.social-icons{display:flex;gap:14px;}
.social-icons a{
  width:38px;height:38px;border-radius:50%;border:1px solid rgba(139,0,0,0.5);
  display:flex;align-items:center;justify-content:center;transition:all .3s ease;
}
.social-icons svg{width:17px;height:17px;fill:var(--red);transition:fill .3s ease;}
.social-icons a:hover{background:var(--red);transform:translateY(-3px);box-shadow:0 8px 16px rgba(139,0,0,0.35);}
.social-icons a:hover svg{fill:var(--white);}
.hero-socials{display:flex;gap:14px;justify-content:center;margin-top:30px;}
.hero-socials a{
  width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,0.5);
  display:flex;align-items:center;justify-content:center;transition:all .3s ease;
}
.hero-socials svg{width:18px;height:18px;fill:var(--white);}
.hero-socials a:hover{background:var(--white);transform:translateY(-3px);}
.hero-socials a:hover svg{fill:var(--red);}

/* ===== TESTIMONIALS ===== */
.testimonials{background:var(--cream);padding:20px 5% 100px;}
.testimonials-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:1200px;margin:0 auto;
}
.testimonial-card{
  background:var(--white);border-radius:14px;padding:40px 32px;position:relative;
  display:flex;flex-direction:column;box-shadow:0 10px 30px rgba(0,0,0,0.05);
  border-top:3px solid var(--red);
}
.testimonial-quote-icon{color:rgba(139,0,0,0.2);font-family:'Playfair Display',serif;font-size:3.5rem;line-height:1;margin-bottom:6px;}
.testimonial-stars{color:var(--red);letter-spacing:3px;margin-bottom:16px;font-size:14px;}
.testimonial-text{font-size:15px;line-height:1.7;color:#555;margin-bottom:26px;flex:1;font-style:italic;}
.testimonial-name{font-family:'Playfair Display',serif;font-size:1.1rem;color:var(--dark);}
.testimonial-sep{width:34px;height:2px;background:var(--red);margin:10px 0;}
.testimonial-role{font-size:12px;letter-spacing:1px;color:#999;text-transform:uppercase;}

@media(max-width:900px){
  .testimonials-grid{grid-template-columns:1fr;}
}

/* ===== MAP / LOCATION ===== */
.location-section{background:var(--dark);padding:100px 5%;text-align:center;color:var(--white);}
.map-frame{
  max-width:1000px;margin:40px auto 0;border-radius:14px;overflow:hidden;
  border:1px solid rgba(139,0,0,0.4);box-shadow:0 20px 50px rgba(0,0,0,0.4);
  line-height:0;
}
.map-frame iframe{width:100%;height:420px;border:0;filter:grayscale(.15);}

/* ===== BOOKING SCHEDULE ===== */
.schedule-section{background:var(--cream);padding:100px 5%;text-align:center;}
.schedule-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:18px;
  max-width:900px;margin:40px auto;
}
.schedule-card{
  background:var(--dark);color:var(--white);border-radius:10px;padding:24px 12px;
  transition:transform .3s ease,box-shadow .3s ease;
}
.schedule-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(139,0,0,0.25);}
.schedule-day{font-family:'Playfair Display',serif;font-size:1.05rem;margin-bottom:10px;color:var(--white);}
.schedule-hours{font-size:13px;letter-spacing:.5px;color:var(--red);}
.schedule-card.closed .schedule-hours{color:#888;}
.schedule-note{max-width:520px;margin:40px auto 30px;font-size:14px;color:#555;line-height:1.6;}

/* ===== WHATSAPP FLOAT ===== */
.whatsapp-float{
  position:fixed;bottom:26px;right:26px;width:58px;height:58px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  z-index:999;box-shadow:0 4px 14px rgba(0,0,0,0.3);animation:pulse 2.2s infinite;
}
.whatsapp-float svg{width:30px;height:30px;fill:var(--white);}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(37,211,102,0.6);}
  70%{box-shadow:0 0 0 16px rgba(37,211,102,0);}
  100%{box-shadow:0 0 0 0 rgba(37,211,102,0);}
}

/* ===== SCROLL FADE-IN ===== */
.fade-in{opacity:0;transform:translateY(40px);transition:opacity .9s ease,transform .9s ease;}
.fade-in.visible{opacity:1;transform:translateY(0);}

/* ===== DETAIL PAGE ===== */
.detail-hero{
  position:relative;height:60vh;width:100%;background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;
}
.detail-hero::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,0.5);}
.detail-hero h1{position:relative;z-index:2;color:var(--white);font-size:clamp(2rem,5vw,3.5rem);text-align:center;padding:0 20px;}

.detail-content{background:var(--cream);padding:80px 8%;max-width:900px;margin:0 auto;}
.back-link{color:var(--red);text-transform:uppercase;letter-spacing:2px;font-size:13px;margin-bottom:30px;display:inline-block;}
.back-link:hover{text-decoration:underline;}
.detail-content h2{font-size:clamp(1.8rem,3vw,2.6rem);margin:20px 0 24px;}
.detail-content .desc-full{font-size:16px;line-height:1.8;color:#444;margin-bottom:40px;}
.detail-content h3.includes-title{
  font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--red);margin-bottom:18px;
}
.includes-list{margin-bottom:40px;}
.includes-list li{
  padding:10px 0 10px 26px;position:relative;font-size:15px;color:#333;border-bottom:1px solid rgba(139,0,0,0.1);
}
.includes-list li::before{
  content:'';position:absolute;left:0;top:18px;width:8px;height:8px;background:var(--red);border-radius:50%;
}
.badges{display:flex;gap:16px;margin-bottom:40px;flex-wrap:wrap;}
.badge{
  padding:10px 22px;border-radius:2px;font-size:13px;letter-spacing:1px;
}
.badge-duration{background:var(--dark);color:var(--white);}
.badge-price{background:var(--red);color:var(--white);}
.btn-reserve{
  display:inline-block;padding:18px 40px;background:var(--red);color:var(--white);
  font-size:14px;letter-spacing:2px;text-transform:uppercase;border-radius:2px;transition:.3s;
}
.btn-reserve:hover{background:var(--dark);}
