/* =========================================
   YERCAUD NATURE - Premium CSS
   ========================================= */

/* Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;0,800;1,400;1,600&family=Poppins:wght@300;400;500;600;700&display=swap');

/* ---- ROOT VARIABLES ---- */
:root {
  --forest: #2E7D32;
  --dark-green: #1B5E20;
  --accent-gold: #D4AF37;
  --cream: #F9F8F3;
  --text: #263238;
  --white: #FFFFFF;
  --glass-bg: rgba(255,255,255,0.08);
  --glass-border: rgba(255,255,255,0.18);
  --shadow-lg: 0 20px 60px rgba(0,0,0,0.18);
  --shadow-card: 0 8px 32px rgba(46,125,50,0.13);
  --radius: 16px;
  --radius-sm: 10px;
}

/* ---- RESET & BASE ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html{
    overflow-x:hidden;
}

body{
    /* padding-top:84px;  */
    /* navbar height */
}
html { scroll-behavior: smooth; }
body {
  font-family: 'Poppins', sans-serif;
  color: var(--text);
  background: var(--white);
  overflow-x: hidden;
}
h1,h2,h3,h4,h5 { font-family: 'Playfair Display', serif; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; }

/* ---- SCROLLBAR ---- */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--cream); }
::-webkit-scrollbar-thumb { background: var(--forest); border-radius: 3px; }

/* ---- NAVBAR ---- */
/* .yn-navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1050;
  transition: all 0.4s ease;
  padding: 0.75rem 0;
} */
 .yn-navbar{
    position: fixed;
    top: 0 !important;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 99999;

    transform: translate3d(0,0,0);
    -webkit-transform: translate3d(0,0,0);

    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.yn-navbar.scrolled {
  background: rgba(27,94,32,0.97) !important;
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 24px rgba(0,0,0,0.18);
  padding: 0.4rem 0;

}
.yn-navbar .navbar-brand img { height: 52px; transition: all 0.3s; }
.yn-navbar.scrolled .navbar-brand img { height: 42px; }

.yn-navbar .nav-link {
  /* color: rgba(255,255,255,0.9) !important; */
  color: #28742c !important;
  font-weight: 500;
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  padding: 0.4rem 0.75rem !important;
  transition: color 0.2s;
  position: relative;
}

.yn-navbar .nav-link::after {
  content:''; position:absolute; bottom:0; left:50%; right:50%;
  height:2px; background:var(--accent-gold);
  transition: left 0.3s, right 0.3s;
}
.yn-navbar .nav-link:hover::after { left: 0.75rem; right: 0.75rem; }
.yn-navbar .nav-link:hover { color: var(--accent-gold) !important; }

.yn-navbar.scrolled .nav-link {
  color: #fff !important;
}
.btn-book-nav{
  color:#28742c !important;
}

.yn-navbar.scrolled .btn-book-nav{
  color:#fff !important;
}
.btn-book-nav {
  background: linear-gradient(135deg,var(--accent-gold),#b8960c);
  color: #1B5E20 !important; font-weight: 700;
  border-radius: 50px; padding: 0.4rem 1.2rem !important;
  font-size: 0.82rem; letter-spacing: 0.05em;
  box-shadow: 0 4px 16px rgba(212,175,55,0.35);
  transition: transform 0.2s, box-shadow 0.2s;
}
.btn-book-nav:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(212,175,55,0.5); }
.navbar-toggler { border: none; color: white; }
.navbar-toggler:focus { box-shadow: none; }

/* ---- HERO ---- */
.hero {
  position: relative; height: 100vh; min-height: 620px;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; background: #0a1f0a;
}
.hero-video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; opacity: 0.55;
}
.hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(27,94,32,0.35) 60%, rgba(0,0,0,0.6) 100%);
}
.hero-content { position: relative; z-index: 2; text-align: center; padding: 0 1rem; }
.hero-badge {
  display: inline-flex; align-items: center; gap: 0.5rem;
  background: rgba(212,175,55,0.2); border: 1px solid rgba(212,175,55,0.5);
  color: var(--accent-gold); border-radius: 50px;
  padding: 0.35rem 1rem; font-size: 0.78rem; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 1.5rem;
  backdrop-filter: blur(8px);
}
.hero-title-wrap { min-height: 130px; display: flex; align-items: center; justify-content: center; }
.hero-title {
  font-size: clamp(2rem, 5vw, 3.8rem);
  color: var(--white); line-height: 1.2;
  font-weight: 700; text-shadow: 0 2px 20px rgba(0,0,0,0.4);
}
.hero-title .gold { color: var(--accent-gold); }
.hero-title.fade-anim { animation: heroFade 0.7s ease; }
@keyframes heroFade { from { opacity:0; transform: translateY(16px); } to { opacity:1; transform: translateY(0); } }
.hero-sub {
  color: rgba(255,255,255,0.88); font-size: clamp(0.9rem, 2vw, 1.1rem);
  max-width: 640px; margin: 1.2rem auto 2rem; font-weight: 300; line-height: 1.7;
}
.btn-hero-primary {
  background: linear-gradient(135deg,var(--forest),var(--dark-green));
  color: white; border: none; border-radius: 50px;
  padding: 0.85rem 2.2rem; font-weight: 600; font-size: 1rem;
  box-shadow: 0 8px 28px rgba(46,125,50,0.45);
  transition: all 0.3s; position: relative; overflow: hidden;
}
.btn-hero-primary:hover { transform: translateY(-3px); box-shadow: 0 14px 36px rgba(46,125,50,0.55); color:white; }
.btn-hero-secondary {
  background: rgba(255,255,255,0.12);
  color: white; border: 2px solid rgba(255,255,255,0.6);
  border-radius: 50px; padding: 0.8rem 2rem; font-weight: 600; font-size: 1rem;
  backdrop-filter: blur(8px); transition: all 0.3s;
}
.btn-hero-secondary:hover { background: rgba(37,211,102,0.2); border-color:#25D366; color:white; }
.hero-scroll {
  position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 0.5rem; z-index: 2;
  color: rgba(255,255,255,0.7); font-size: 0.75rem; letter-spacing: 0.1em;
}
.scroll-dot {
  width: 28px; height: 44px; border: 2px solid rgba(255,255,255,0.5);
  border-radius: 14px; display: flex; align-items: flex-start; justify-content: center; padding-top: 6px;
}
.scroll-dot::before {
  content:''; width:4px; height:8px; background: var(--accent-gold);
  border-radius: 2px; animation: scrollBounce 1.6s ease infinite;
}
@keyframes scrollBounce { 0%,100% { transform: translateY(0); opacity:1; } 50% { transform: translateY(10px); opacity:0.3; } }

/* ---- SECTION COMMONS ---- */
.section-eyebrow {
  display: inline-block; color: var(--forest); font-weight: 600;
  font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase;
  margin-bottom: 0.75rem;
}
.section-eyebrow::before, .section-eyebrow::after {
  content: '—'; margin: 0 0.5rem; color: var(--accent-gold);
}
.section-title { font-size: clamp(1.7rem,3.5vw,2.6rem); color: var(--text); line-height: 1.25; }
.section-sub { color: #546E7A; font-size: 1rem; line-height: 1.8; max-width: 640px; }
.divider-leaf {
  display: flex; align-items: center; gap: 0.75rem;
  color: var(--accent-gold); font-size: 1.2rem; margin: 1rem 0 2.5rem;
}
.divider-leaf::before, .divider-leaf::after {
  content:''; flex:1; height:1px; background: linear-gradient(90deg, transparent, var(--accent-gold));
}
.divider-leaf::before { transform: scaleX(-1); }

/* ---- ABOUT ---- */
.about-section { background: var(--cream); padding: 6rem 0; }
.about-img-wrap { position: relative; }
.about-main-img { border-radius: var(--radius); box-shadow: var(--shadow-lg); }
.about-badge-float {
  position: absolute; bottom: -1.5rem; right: -1.5rem;
  background: linear-gradient(135deg,var(--forest),var(--dark-green));
  color: white; border-radius: var(--radius-sm); padding: 1.2rem 1.5rem;
  text-align: center; box-shadow: 0 12px 32px rgba(46,125,50,0.4);
}
.about-badge-float .big-num { font-family:'Playfair Display',serif; font-size:2.2rem; font-weight:800; color:var(--accent-gold); }
.about-badge-float .small-label { font-size:0.72rem; opacity:0.85; letter-spacing:0.06em; }
.about-stat {
  display: flex; align-items: center; gap: 1rem;
  padding: 1rem 1.25rem; background: white;
  border-radius: var(--radius-sm); border-left: 3px solid var(--forest);
  box-shadow: 0 4px 16px rgba(0,0,0,0.06); margin-bottom: 0.85rem;
  transition: transform 0.2s, box-shadow 0.2s;
}
.about-stat:hover { transform: translateX(5px); box-shadow: 0 8px 24px rgba(46,125,50,0.15); }
.about-stat i { font-size: 1.4rem; color: var(--forest); min-width: 28px; }
.about-stat .stat-text { font-weight: 600; color: var(--text); font-size: 0.92rem; }

/* ---- WHO CAN STAY ---- */
.who-section { padding: 5.5rem 0; background: white; }
.guest-card {
  background: var(--cream); border-radius: var(--radius);
  padding: 2rem 1.25rem; text-align: center;
  border: 1px solid rgba(46,125,50,0.08);
  transition: all 0.35s; cursor: default;
}
.guest-card:hover {
  background: linear-gradient(135deg,var(--forest),var(--dark-green));
  transform: translateY(-8px);
  box-shadow: 0 20px 48px rgba(46,125,50,0.3);
}
.guest-card:hover .guest-icon, .guest-card:hover .guest-label { color: white; }
.guest-icon { font-size: 2.4rem; margin-bottom: 0.75rem; display:block; }
.guest-label { font-weight: 600; font-size: 0.9rem; color: var(--text); }

/* ---- WHY US ---- */
.why-section { padding: 5.5rem 0; background: var(--cream); }

.why-card {
  background: white; border-radius: var(--radius);
  padding: 2rem 1.5rem; height: 100%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
  border-top: 3px solid transparent;
  transition: all 0.35s;
}
.why-card:hover {
  border-top-color: var(--forest);
  transform: translateY(-6px);
  box-shadow: var(--shadow-card);
}
.why-icon {
  width: 56px; height: 56px; background: linear-gradient(135deg,rgba(46,125,50,0.12),rgba(46,125,50,0.06));
  border-radius: 14px; display:flex; align-items:center; justify-content:center;
  font-size: 1.5rem; color: var(--forest); margin-bottom: 1rem;
  transition: all 0.35s;
}
.why-card:hover .why-icon { background: var(--forest); color: white; }
.why-card h5 { font-family:'Poppins',sans-serif; font-weight:700; font-size:1rem; margin-bottom:0.5rem; color:var(--text); }
.why-card p { font-size:0.85rem; color:#607D8B; line-height:1.7; margin:0; }

/* Mobile Devices */
@media (max-width: 767px) {
.why-card {
  background: white; border-radius: var(--radius);
  padding: 1rem 1rem; height: 100%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.06);
  border-top: 3px solid transparent;
  transition: all 0.35s;
}

}

/* ---- PROPERTIES ---- */
.properties-section { padding: 5.5rem 0; background: white; }
.prop-card {
  background: white; border-radius: var(--radius);
  box-shadow: 0 6px 28px rgba(0,0,0,0.09);
  overflow: hidden; transition: all 0.4s;
  position: relative; height: 100%; display:flex; flex-direction:column;
}
.prop-card:hover { transform: translateY(-10px); box-shadow: 0 24px 56px rgba(46,125,50,0.2); }
.prop-swiper { position: relative; height: 200px; overflow: hidden; }
.prop-swiper .swiper { height: 200px; }
.prop-swiper .swiper-slide img { width:100%; height:200px; object-fit:cover; transition: transform 0.6s; }
.prop-card:hover .swiper-slide img { transform: scale(1.05); }

.vp-gallery-swiper { height: 480px; }
.vp-gallery-swiper .swiper-slide { height: 480px; }
.vp-gallery-swiper .swiper-slide img { width:100%; height:100%; object-fit:cover; display:block; }
@media(max-width:768px){
  .vp-gallery-swiper, .vp-gallery-swiper .swiper-slide { height: 300px; }
}
.prop-badge {
  position: absolute; top: 12px; left: 12px; z-index: 10;
  background: rgba(0,0,0,0.55); color: white;
  backdrop-filter:blur(6px); border-radius: 20px;
  padding: 0.2rem 0.75rem; font-size: 0.72rem; font-weight:600;
}
.prop-watermark {
  position: absolute; bottom: 10px; right: 10px; z-index: 10;
  background: rgba(46,125,50,0.75); color: white;
  border-radius: 6px; padding: 0.2rem 0.6rem; font-size: 0.65rem;
  font-weight: 600; letter-spacing: 0.05em; backdrop-filter:blur(4px);
}
.prop-body { padding: 1.25rem 1.25rem 0.75rem; flex:1; display:flex; flex-direction:column; }
.prop-stars { color: #F59E0B; font-size: 0.8rem; margin-bottom: 0.4rem; }
.prop-name { font-family:'Playfair Display',serif; font-size:1.05rem; font-weight:700; color:var(--text); margin-bottom:0.3rem; }
.prop-desc { font-size:0.8rem; color:#607D8B; line-height:1.6; margin-bottom:0.75rem; flex:1; }
.prop-meta { display:flex; gap:1rem; font-size:0.75rem; color:#78909C; margin-bottom:0.75rem; }
.prop-meta i { color: var(--forest); }
.prop-footer { padding: 0.75rem 1.25rem 1.25rem; display:flex; gap:0.6rem; }
.btn-enquiry {
  flex:1; background: linear-gradient(135deg,var(--forest),var(--dark-green));
  color: white; border:none; border-radius:50px; padding:0.5rem 1rem;
  font-size:0.8rem; font-weight:600; transition:all 0.3s;
}
.btn-enquiry:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(46,125,50,0.4); color:white; }
.btn-view {
  flex:1; background: transparent; color:var(--forest);
  border:2px solid var(--forest); border-radius:50px; padding:0.5rem 1rem;
  font-size:0.8rem; font-weight:600; transition:all 0.3s;
}
.btn-view:hover { background:var(--forest); color:white; }

/* ---- FAST BOOKING CTA ---- */
.fast-cta-section {
  padding: 5rem 0;
  background: linear-gradient(135deg,var(--dark-green) 0%, var(--forest) 50%, #388E3C 100%);
  position:relative; overflow:hidden;
}
.fast-cta-section::before {
  content:''; position:absolute; top:-50%; right:-10%; width:500px; height:500px;
  background: radial-gradient(circle, rgba(212,175,55,0.15), transparent 70%);
  border-radius:50%;
}
.fast-cta-section h2 { color:white; font-size:clamp(1.8rem,3.5vw,2.8rem); }
.fast-cta-section p { color:rgba(255,255,255,0.82); font-size:1.05rem; }
.btn-fast-cta {
  background: linear-gradient(135deg,var(--accent-gold),#b8960c);
  color: #1B5E20; font-weight:700; border:none; border-radius:50px;
  padding:0.9rem 2.5rem; font-size:1.05rem;
  box-shadow: 0 10px 32px rgba(212,175,55,0.45);
  transition:all 0.3s;
}
.btn-fast-cta:hover { transform:translateY(-3px) scale(1.04); box-shadow:0 18px 48px rgba(212,175,55,0.55); color:#1B5E20; }

/* ---- REELS / INSTAGRAM SECTION ---- */
.reels-section { padding: 5.5rem 0; background: var(--cream); }
.reel-card {
  position:relative; border-radius: var(--radius); overflow:hidden;
  aspect-ratio: 9/16; cursor:pointer; box-shadow: 0 8px 28px rgba(0,0,0,0.18);
  transition: transform 0.35s;
}
.reel-card:hover { transform: scale(1.03); }
.reel-card img { width:100%; height:100%; object-fit:cover; }
.reel-overlay {
  position:absolute; inset:0;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 60%);
  display:flex; align-items:center; justify-content:center;
}
.reel-play { font-size:3.5rem; color:white; text-shadow:0 0 20px rgba(0,0,0,0.5); }
.reel-label { position:absolute; bottom:1rem; left:1rem; right:1rem; color:white; font-size:0.8rem; font-weight:600; }

/* ---- GALLERY ---- */
.gallery-section { padding: 5.5rem 0; background:white; }
.gallery-masonry { columns: 3; column-gap: 1rem; }
.gallery-item { break-inside: avoid; margin-bottom: 1rem; position:relative; overflow:hidden; border-radius: var(--radius-sm); cursor:pointer; }
.gallery-item img { width:100%; display:block; transition: transform 0.4s; }
.gallery-item:hover img { transform: scale(1.08); }
.gallery-item-overlay {
  position:absolute; inset:0; background:rgba(46,125,50,0.6);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity 0.3s;
}
.gallery-item:hover .gallery-item-overlay { opacity:1; }
.gallery-item-overlay i { font-size:2rem; color:white; }
@media(max-width:768px){ .gallery-masonry { columns:2; } }
@media(max-width:480px){ .gallery-masonry { columns:2; } }

/* ---- TESTIMONIALS ---- */
.testimonials-section { padding: 5.5rem 0; background: var(--cream); }
.testi-card {
  background: white; border-radius: var(--radius);
  padding: 2rem; box-shadow: 0 8px 28px rgba(0,0,0,0.08);
  position:relative; height:100%;
}
.testi-card::before {
  content:'"'; font-family:'Playfair Display',serif; font-size:5rem; color:var(--forest);
  opacity:0.15; position:absolute; top:-0.5rem; left:1.2rem; line-height:1;
}
.testi-stars { color:#F59E0B; font-size:0.9rem; margin-bottom:0.75rem; }
.testi-text { font-size:0.92rem; color:#546E7A; line-height:1.75; font-style:italic; margin-bottom:1.25rem; }
.testi-author { display:flex; align-items:center; gap:0.75rem; }
.testi-avatar { width:44px; height:44px; background:linear-gradient(135deg,var(--forest),var(--dark-green)); border-radius:50%; display:flex; align-items:center; justify-content:center; color:white; font-weight:700; font-size:1rem; }
.testi-name { font-weight:700; font-size:0.9rem; }
.testi-loc { font-size:0.75rem; color:#90A4AE; }

/* ---- FAQ ---- */
.faq-section { padding: 5.5rem 0; background:white; }
.faq-accordion .accordion-button {
  font-weight:600; color:var(--text); background:transparent;
  font-family:'Poppins',sans-serif; font-size:0.95rem;
}
.faq-accordion .accordion-button:not(.collapsed) { color:var(--forest); background: rgba(46,125,50,0.05); box-shadow:none; }
.faq-accordion .accordion-button::after { filter: hue-rotate(90deg) saturate(2); }
.faq-accordion .accordion-item { border-radius:var(--radius-sm) !important; margin-bottom:0.75rem; border:1px solid rgba(46,125,50,0.15); overflow:hidden; }
.faq-accordion .accordion-body { font-size:0.88rem; color:#607D8B; line-height:1.75; }

/* ---- FINAL CTA ---- */
.final-cta-section {
  padding: 6rem 0;
  background: linear-gradient(135deg, #0d2e0e 0%, #1B5E20 40%, #2E7D32 100%);
  position:relative; overflow:hidden;
}
.final-cta-section::before {
  content:''; position:absolute; inset:0;
  background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.final-cta-section h2 { color:white; font-size:clamp(2rem,4vw,3.2rem); }
.final-cta-section .lead { color:rgba(255,255,255,0.82); max-width:580px; margin:0 auto 2.5rem; }

/* ---- CONTACT ---- */
.contact-section { padding: 5.5rem 0; background: var(--cream); }
.contact-info-card {
  background:white; border-radius:var(--radius);
  padding:2rem; box-shadow:0 6px 24px rgba(0,0,0,0.07); height:100%;
}
.contact-item { display:flex; gap:1rem; align-items:flex-start; margin-bottom:1.5rem; }
.contact-icon {
  width:44px; height:44px; min-width:44px; background:linear-gradient(135deg,var(--forest),var(--dark-green));
  border-radius:12px; display:flex; align-items:center; justify-content:center; color:white; font-size:1.1rem;
}
.contact-item h6 { font-weight:700; font-size:0.85rem; color:var(--text); margin-bottom:0.2rem; }
.contact-item p, .contact-item a { font-size:0.88rem; color:#607D8B; line-height:1.6; margin:0; }
.contact-form-card { background:white; border-radius:var(--radius); padding:2rem; box-shadow:0 6px 24px rgba(0,0,0,0.07); }
.form-control, .form-select {
  border:1.5px solid #E0E7EF; border-radius:var(--radius-sm);
  padding:0.75rem 1rem; font-size:0.88rem; color:var(--text);
  transition: border-color 0.2s, box-shadow 0.2s;
}
.form-control:focus, .form-select:focus {
  border-color:var(--forest); box-shadow:0 0 0 3px rgba(46,125,50,0.1); outline:none;
}
.btn-submit-wa {
  background:linear-gradient(135deg,#25D366,#128C7E); color:white;
  border:none; border-radius:50px; padding:0.85rem 2rem; font-weight:700; width:100%;
  font-size:1rem; transition:all 0.3s;
}
.btn-submit-wa:hover { transform:translateY(-2px); box-shadow:0 10px 28px rgba(37,211,102,0.4); color:white; }

/* ---- MAP ---- */
.map-placeholder {
  border-radius:var(--radius); overflow:hidden;
  height:200px; background:linear-gradient(135deg,rgba(46,125,50,0.1),rgba(46,125,50,0.05));
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:0.5rem;
  color:var(--forest); font-weight:600; margin-top:1.5rem; border:2px dashed rgba(46,125,50,0.3);
  cursor:pointer; transition:all 0.3s;
}
.map-placeholder:hover { background:rgba(46,125,50,0.1); }
.map-placeholder i { font-size:2.5rem; }

/* ---- FOOTER ---- */
.yn-footer { background:linear-gradient(180deg,#0d2e0e 0%,#0a1f0a 100%); color:rgba(255,255,255,0.8); padding:4rem 0 1.5rem; }
.footer-logo img { height:56px; margin-bottom:1rem; }
.footer-tagline { font-size:0.85rem; color:rgba(255,255,255,0.55); font-style:italic; margin-bottom:1.5rem; }
.footer-heading { color:var(--accent-gold); font-family:'Playfair Display',serif; font-size:1rem; margin-bottom:1.2rem; }
.footer-links { list-style:none; padding:0; }
.footer-links li { margin-bottom:0.5rem; }
.footer-links a { color:rgba(255,255,255,0.65); font-size:0.85rem; transition:color 0.2s; }
.footer-links a:hover { color:var(--accent-gold); }
.footer-contact-item { display:flex; gap:0.75rem; align-items:flex-start; margin-bottom:0.85rem; }
.footer-contact-item i { color:var(--forest); font-size:1rem; margin-top:0.1rem; }
.footer-contact-item span { font-size:0.84rem; color:rgba(255,255,255,0.65); }
.footer-social a {
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; background:rgba(255,255,255,0.08); border-radius:50%;
  color:rgba(255,255,255,0.7); transition:all 0.3s; margin-right:0.5rem; font-size:1rem;
}
.footer-social a:hover { background:var(--forest); color:white; transform:translateY(-2px); }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.08); margin-top:2.5rem; padding-top:1.2rem; text-align:center; font-size:0.78rem; color:rgba(255,255,255,0.4); }
.footer-bottom span { color:var(--accent-gold); }

/* ---- FLOATING BUTTONS ---- */
.float-wa {
  position:fixed; bottom:5.5rem; right:1.5rem; z-index:999;
  width:54px; height:54px; background:#25D366; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:white; font-size:1.6rem; box-shadow:0 6px 24px rgba(37,211,102,0.5);
  transition:all 0.3s; cursor:pointer;
}
.float-wa:hover { transform:scale(1.1) translateY(-2px); box-shadow:0 10px 32px rgba(37,211,102,0.6); }
.float-enquiry {
  position:fixed; bottom:9.5rem; right:1.5rem; z-index:999;
  width:54px; height:54px; background:linear-gradient(135deg,var(--forest),var(--dark-green));
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:white; font-size:1.3rem; box-shadow:0 6px 24px rgba(46,125,50,0.45);
  transition:all 0.3s; cursor:pointer;
}
.float-enquiry:hover { transform:scale(1.1) translateY(-2px); }
.float-top {
  position:fixed; bottom:1.5rem; right:1.5rem; z-index:999;
  width:44px; height:44px; background:var(--accent-gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  color:#1B5E20; font-size:1.1rem; box-shadow:0 6px 20px rgba(212,175,55,0.4);
  transition:all 0.3s; cursor:pointer; opacity:0;
}
.float-top.visible { opacity:1; }
.float-top:hover { transform:translateY(-3px); }
.float-tooltip {
  position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%);
  background:rgba(0,0,0,0.75); color:white; font-size:0.72rem; padding:0.3rem 0.7rem;
  border-radius:6px; white-space:nowrap; opacity:0; pointer-events:none;
  transition:opacity 0.2s;
}
.float-wa:hover .float-tooltip,
.float-enquiry:hover .float-tooltip { opacity:1; }

/* ---- STICKY MOBILE BAR ---- */
.sticky-mobile-bar {
  display:none;
  position:fixed; bottom:0; left:0; right:0; z-index:1000;
  background:white; border-top:1px solid rgba(0,0,0,0.08);
  padding:0.75rem 1rem; gap:0.75rem;
  box-shadow:0 -4px 20px rgba(0,0,0,0.1);
}
@media(max-width:768px){ .sticky-mobile-bar { display:flex; } }
.sticky-mobile-bar .btn-wa-mob {
  flex:1; background:#25D366; color:white; border:none; border-radius:50px;
  padding:0.65rem; font-size:0.85rem; font-weight:700;
}
.sticky-mobile-bar .btn-enq-mob {
  flex:1; background:linear-gradient(135deg,var(--forest),var(--dark-green));
  color:white; border:none; border-radius:50px; padding:0.65rem; font-size:0.85rem; font-weight:700;
}

/* ---- MODAL ---- */
.yn-modal-overlay {
  position:fixed; inset:0; z-index:2000; background:rgba(0,0,0,0.65);
  backdrop-filter:blur(6px); display:none; align-items:center; justify-content:center; padding:1rem;
}
.yn-modal-overlay.active { display:flex; }
.yn-modal {
  background:white; border-radius:var(--radius); padding:2.5rem;
  width:100%; max-width:520px; max-height:90vh; overflow-y:auto;
  position:relative; animation: modalIn 0.35s ease;
}
@keyframes modalIn { from { opacity:0; transform:scale(0.9) translateY(20px); } to { opacity:1; transform:scale(1) translateY(0); } }
.yn-modal-close {
  position:absolute; top:1.2rem; right:1.2rem;
  background:none; border:none; font-size:1.4rem; cursor:pointer; color:#607D8B;
  transition:color 0.2s;
}
.yn-modal-close:hover { color:var(--text); }
.yn-modal h4 { font-size:1.4rem; margin-bottom:0.25rem; }
.yn-modal .modal-sub { font-size:0.85rem; color:#607D8B; margin-bottom:1.5rem; }
.form-label { font-size:0.82rem; font-weight:600; color:var(--text); margin-bottom:0.35rem; }

/* ---- VIDEO MODAL ---- */
.video-modal-overlay {
  position:fixed; inset:0; z-index:2100; background:rgba(0,0,0,0.9);
  display:none; align-items:center; justify-content:center; padding:1rem;
}
.video-modal-overlay.active { display:flex; }
.video-modal-inner { position:relative; width:100%; max-width:500px; }
.video-modal-inner video { width:100%; border-radius:var(--radius); }
.video-modal-close {
  position:absolute; top:-2.5rem; right:0; background:none; border:none;
  color:white; font-size:1.8rem; cursor:pointer;
}
.video-nav-btn {
  position:absolute; top:50%; transform:translateY(-50%);
  background:rgba(255,255,255,0.15); border:none; color:white;
  width:42px; height:42px; border-radius:50%; font-size:1.2rem; cursor:pointer;
  backdrop-filter:blur(4px); transition:background 0.2s;
}
.video-nav-btn:hover { background:rgba(255,255,255,0.3); }
.video-nav-prev { left:-3.5rem; }
.video-nav-next { right:-3.5rem; }

/* ---- RIPPLE ---- */
.ripple { position:relative; overflow:hidden; }
.ripple::after {
  content:''; position:absolute; border-radius:50%;
  background:rgba(255,255,255,0.3);
  width:0; height:0; top:50%; left:50%; transform:translate(-50%,-50%);
  transition: width 0.5s, height 0.5s, opacity 0.5s;
  opacity:0;
}
.ripple:active::after { width:200px; height:200px; opacity:0; }

/* ---- COUNTERS ---- */
.counter-section { padding: 4rem 0; background:linear-gradient(135deg,var(--forest),var(--dark-green)); }
.counter-item { text-align:center; }
.counter-num { font-family:'Playfair Display',serif; font-size:3rem; font-weight:800; color:var(--accent-gold); }
.counter-label { color:rgba(255,255,255,0.8); font-size:0.85rem; letter-spacing:0.05em; }

/* ---- LIGHTBOX ---- */
.lightbox-overlay {
  position:fixed; inset:0; z-index:2200; background:rgba(0,0,0,0.93);
  display:none; align-items:center; justify-content:center; padding:1rem;
}
.lightbox-overlay.active { display:flex; }
.lightbox-img { max-width:90vw; max-height:85vh; border-radius:var(--radius-sm); object-fit:contain; }
.lightbox-close { position:absolute; top:1.5rem; right:1.5rem; background:none; border:none; color:white; font-size:2rem; cursor:pointer; }
.lightbox-nav { position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.12); border:none; color:white; width:48px; height:48px; border-radius:50%; font-size:1.3rem; cursor:pointer; backdrop-filter:blur(4px); }
.lightbox-prev { left:1rem; }
.lightbox-next { right:1rem; }

/* ---- ANIMATIONS / AOS FALLBACK ---- */
[data-aos] { opacity:0; transform:translateY(20px); transition:opacity 0.7s ease, transform 0.7s ease; }
[data-aos].aos-animate { opacity:1; transform:translateY(0); }

/* ---- PROPERTY PAGE SPECIFIC ---- */
.vp-hero {
  position:relative; height:65vh; min-height:440px;
  background:linear-gradient(135deg,var(--dark-green),#1a3a1b);
  display:flex; align-items:flex-end;
}
.vp-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vp-hero-overlay { position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,0.7) 0%,rgba(0,0,0,0.2) 100%); }
.vp-hero-content { position:relative; z-index:2; color:white; padding:2rem 0; width:100%; }
.vp-topbar {
  position:fixed; top:0; left:0; right:0; z-index:1050;
  background:rgba(27,94,32,0.95); backdrop-filter:blur(12px);
  padding:0.75rem 0; box-shadow:0 4px 20px rgba(0,0,0,0.2);
}
.vp-topbar a { color:white; font-size:0.85rem; font-weight:600; transition:color 0.2s; }
.vp-topbar a:hover { color:var(--accent-gold); }
.vp-topbar .nav-prop-btn {
  background:rgba(255,255,255,0.12); border-radius:50px; padding:0.3rem 0.9rem;
  font-size:0.8rem; transition:background 0.2s;
}
.vp-topbar .nav-prop-btn:hover { background:rgba(255,255,255,0.25); }
.amenity-card {
  background:var(--cream); border-radius:var(--radius-sm);
  padding:1.25rem; text-align:center;
  border:1px solid rgba(46,125,50,0.1); transition:all 0.3s;
}
.amenity-card:hover { background:var(--forest); color:white; transform:translateY(-4px); box-shadow:0 10px 28px rgba(46,125,50,0.3); }
.amenity-card:hover i, .amenity-card:hover p { color:white !important; }
.amenity-card i { font-size:1.6rem; color:var(--forest); display:block; margin-bottom:0.5rem; }
.amenity-card p { font-size:0.78rem; font-weight:600; color:var(--text); margin:0; }
.video-thumb {
  position:relative; border-radius:var(--radius-sm); overflow:hidden; cursor:pointer;
  aspect-ratio:16/9;
}
.video-thumb img { width:100%; height:100%; object-fit:cover; transition:transform 0.4s; }
.video-thumb:hover img { transform:scale(1.05); }
.video-play-icon {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,0.35);
}
.video-play-icon i { font-size:3rem; color:white; }

/* ---- UTILITIES ---- */
.text-gold { color:var(--accent-gold) !important; }
.text-forest { color:var(--forest) !important; }
.bg-forest { background:var(--forest); }
.bg-cream { background:var(--cream); }

@media(max-width:992px){
  .about-badge-float { position:static; margin-top:1.5rem; display:inline-block; }
}
@media(max-width:576px){
  .video-nav-prev { left:-1.5rem; }
  .video-nav-next { right:-1.5rem; }
}
