/*************************************************
 HOMESTEAD CARAVAN PARK — OPTIMIZED BRAND CSS
 Production Ready • Organized • Deduplicated
*************************************************/

/* =====================
   BRAND VARIABLES
===================== */
:root{
  --bs-primary:#C65A22;
  --bs-secondary:#E07A2E;
  --bs-accent:#F2A23A;

  --bs-dark:#2F2F2F;
  --bs-dark-soft:#4A4A4A;
  --bs-light:#F4E7D3;
  --bs-white:#FFFFFF;

  --primary-hover:#A94717;
  --primary-active:#8E3C12;
  --secondary-hover:#C96521;

  --border-soft:#E6D6BE;
}

/* =====================
   GLOBAL BASE
===================== */
body{
  font-family:'Inter',sans-serif;
  color:var(--bs-dark);
  background:
    radial-gradient(circle at 20% 20%, rgba(242,162,58,0.05), transparent 40%),
    radial-gradient(circle at 80% 0%, rgba(198,90,34,0.05), transparent 40%),
    #fff;
  padding-top:95px;
  font-display:swap;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
}

h1,h2,h3,h4,h5,h6{
  font-family:"Roboto Slab",serif;
  color:var(--bs-primary);
  font-weight:700;
  letter-spacing:1px;
}

a{color:var(--bs-primary);text-decoration:none;}
a:hover{color:var(--bs-secondary);}

/* =====================
   UTILITIES
===================== */
.text-primary{color:var(--bs-primary)!important;}
.text-accent{color:var(--bs-accent);}
.back-to-top{position:fixed;right:40px;bottom:40px;display:none;z-index:99;}

/* =====================
   SPINNER
===================== */
#spinner{
  opacity:0;
  visibility:hidden;
  transition:opacity .5s, visibility 0s linear .5s;
  z-index:99999;
}
#spinner.show{visibility:visible;opacity:1;}

/* =====================
   BUTTONS
===================== */
.btn{
  border-radius:6px;
  font-weight:600;
  transition:.3s;
}

.btn-primary{
  background:var(--bs-primary);
  border-color:var(--bs-primary);
  color:#fff;
}
.btn-primary:hover{
  background:var(--primary-hover);
  border-color:var(--primary-hover);
}
.btn-primary:active{background:var(--primary-active);}

.btn-dark{
  background:var(--bs-dark);
  border-color:var(--bs-dark);
  color:#fff;
}
.btn-dark:hover{
  background:var(--bs-primary);
  border-color:var(--bs-primary);
}

/* =====================
   NAVBAR
===================== */
.navbar{background:#fff;}

.logo-img{height:62px;width:auto;}

.navbar-nav .nav-link{
  font-weight:600;
  letter-spacing:.6px;
  text-transform:uppercase;
  color:var(--bs-dark);
  transition:.25s;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active{
  color:var(--bs-primary);
  transform:translateY(-2px);
}

.dropdown-menu{
  border:none;
  box-shadow:0 12px 28px rgba(0,0,0,.08);
  animation:fadeIn .25s ease-in-out;
}

.dropdown-menu .dropdown-item:hover{
  background:var(--bs-primary);
  color:#fff;
}

@keyframes fadeIn{
  from{opacity:0;transform:translateY(10px);}
  to{opacity:1;transform:translateY(0);}
}

/* =====================
   HERO SECTIONS
===================== */
.hero-header{
  position:relative;
  min-height:92vh;
  display:flex;
  align-items:center;
  background:url("../img/hero-slider-3.png") center/cover no-repeat;
}

.hero-overlay{
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:0;
  background:rgba(0,0,0,.45);
  z-index:1;
}
.hero-modern{
  position:relative;
  min-height:92vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  background:url("../img/hero-bg.jpg") center/cover no-repeat;
}

.hero-modern .hero-overlay{
  background:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.35));
}

.hero-content{position:relative;z-index:2;max-width:760px;margin:auto;}
.hero-eyebrow{color:var(--bs-accent);letter-spacing:2px;font-size:14px;font-weight:600;text-transform:uppercase;}
.hero-title{font-family:'Playfair Display',serif;font-size:clamp(2.4rem,4vw,3.8rem);color:#fff;margin:15px 0;}
.hero-subtitle{color:rgba(255,255,255,.9);margin-bottom:30px;}
.hero-buttons .btn{padding:14px 32px;}

.hero-content,
.page-header .container,
.parallax{
  position:relative;
  color:#fff;
}

.parallax::before{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.35);
  z-index:1;
}


/* =====================
   HIGHLIGHT & COUNTER
===================== */
.highlight-box{
  border-radius:14px;
  background:#fff;
  padding:25px;
  transition:.35s;
}
.highlight-box:hover{
  transform:translateY(-6px);
  box-shadow:0 25px 50px rgba(0,0,0,.08);
}
.highlight-box:hover i{color:var(--bs-secondary);}
.highlight-box:hover h5{color:var(--bs-primary);}

.counter{color:var(--bs-primary);font-weight:700;font-size:2rem;}

.counter-band{
  background:#fff;
  padding:40px 0;
  box-shadow:0 10px 40px rgba(0,0,0,.05);
  margin-top:-40px;
  position:relative;
  z-index:5;
}

/* =====================
   SERVICES & TESTIMONIAL
===================== */
.service-item{
  background:#fff;
  border-radius:10px;
  border:1px solid var(--border-soft);
  transition:.3s;
}
.service-item:hover{
  transform:translateY(-6px);
  box-shadow:0 18px 36px rgba(0,0,0,.08);
}

.testimonial-carousel .owl-item.center .bg-light{background:var(--bs-primary)!important;}
.testimonial-carousel .owl-item.center *{color:#fff!important;}
.testimonial-carousel .owl-nav .owl-prev,
.testimonial-carousel .owl-nav .owl-next{
  background:var(--bs-primary);
  color:#fff;
}
.testimonial-carousel .owl-nav .owl-prev:hover,
.testimonial-carousel .owl-nav .owl-next:hover{
  background:var(--bs-secondary);
}

/* =====================
   GALLERY / MASONRY
===================== */
.masonry{column-count:4;column-gap:15px;}
.gallery-item{position:relative;margin-bottom:15px;overflow:hidden;border-radius:10px;cursor:pointer;}
.gallery-item img{width:100%;transition:.4s;}
.gallery-item:hover img{transform:scale(1.08);}

.gallery-caption{
  position:absolute;
  bottom:0;
  width:100%;
  padding:12px;
  background:rgba(0,0,0,.55);
  color:#fff;
  font-size:14px;
  opacity:0;
  transition:.3s;
}
.gallery-item:hover .gallery-caption{opacity:1;}

/* =====================
   LIGHTBOX
===================== */
.lightbox{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.92);
  text-align:center;
  z-index:9999;
  padding-top:60px;
}
.lightbox-content{max-width:90%;max-height:80vh;}
.lightbox-caption{color:#fff;margin-top:12px;}
.lightbox .close{
  position:absolute;
  top:20px;
  right:35px;
  font-size:40px;
  color:#fff;
  cursor:pointer;
}

/* =====================
   FACILITIES
===================== */
.facility-tabs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.tab-btn{
  border:none;
  background:#eee;
  padding:8px 18px;
  border-radius:30px;
  font-size:14px;
  cursor:pointer;
  transition:.3s;
}
.tab-btn.active,
.tab-btn:hover{background:var(--bs-primary);color:#fff;}

.facility-card{
  text-align:center;
  padding:28px;
  border-radius:16px;
  transition:.35s;
  box-shadow:0 8px 25px rgba(0,0,0,.05);
  height:100%;
}
.icon-wrap{
  width:64px;height:64px;margin:auto;
  border-radius:50%;
  background:rgba(198,90,34,0.1);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:12px;
  transition:.35s;
}
.icon-wrap i{font-size:26px;color:var(--bs-primary);transition:.35s;}

.facility-card:hover{
  transform:translateY(-8px);
  box-shadow:0 25px 50px rgba(0,0,0,.12);
}
.facility-card:hover .icon-wrap{background:var(--bs-primary);}
.facility-card:hover .icon-wrap i{
  color:#fff;
  transform:scale(1.2) rotate(8deg);
}

/* =====================
   FOOTER
===================== */
.footer-main{
  background:var(--bs-dark);
  color:rgba(255,255,255,.85);
  padding:60px 0 0;
}

.footer-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:50px;
}

.footer-logo img{max-height:70px;margin-bottom:15px;}
.footer-desc{line-height:1.6;font-size:.95rem;margin-bottom:20px;}

.footer-contact{list-style:none;padding:0;margin-bottom:15px;}
.footer-contact li{display:flex;gap:10px;margin-bottom:8px;}
.footer-contact i{color:var(--bs-accent);margin-top:4px;}

.footer-title{
  color:#fff;
  font-weight:600;
  margin-bottom:16px;
}
.footer-title::after{
  content:"";
  display:block;
  width:40px;height:2px;
  background:var(--bs-accent);
  margin-top:6px;
}

.footer-links{list-style:none;padding:0;}
.footer-links li{margin-bottom:8px;}
.footer-links a{color:rgba(255,255,255,.85);transition:.25s;}
.footer-links a:hover{color:var(--bs-accent);padding-left:4px;}

.footer-social a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;height:36px;
  margin-right:8px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#fff;
  transition:.25s;
}
.footer-social a:hover{
  background:var(--bs-primary);
  transform:translateY(-3px);
}


/* Google reviews badge */
.google-reviews{
  margin-top:18px;
  padding:14px;
  border-radius:8px;
  background:rgba(255,255,255,.06);
  max-width:260px;
}
.google-reviews .stars{
  color:var(--bs-accent);
  font-size:18px;
  letter-spacing:2px;
}
.google-reviews .review-text{font-size:.9rem;margin:4px 0;}
.google-reviews .review-link{
  color:var(--bs-accent);
  font-size:.9rem;
}
.google-reviews .review-link:hover{text-decoration:underline;}

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  text-align:center;
  padding:18px 0;
  margin-top:40px;
  background:#242424;
  font-size:.9rem;
}

/* =====================
   MAP
===================== */
.map-container{position:relative;width:100%;padding-bottom:56.25%;}
.map-container iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;
}

/* =====================
   RESPONSIVE
===================== */
@media(max-width:991px){
  .footer-grid{grid-template-columns:1fr;gap:35px;}
  .google-reviews{max-width:100%;}
  .btn-primary{margin-top:15px;}
}

@media(max-width:992px){.masonry{column-count:3;}}
@media(max-width:768px){
  .masonry{column-count:2;}
  .facility-tabs{gap:6px;}
}
@media(max-width:480px){.masonry{column-count:1;}}

@media (max-width: 576px){
  .container{
    padding-left:18px;
    padding-right:18px;
  }
}
@media (max-width: 576px){
  body{
    font-size:15.5px;
    line-height:1.6;
  }
}



@media (max-width: 768px){
  .hero-header,
  .hero-modern{
    min-height:75vh;
    padding:60px 0;
  }

  .hero-title{
    font-size:2rem;
  }

  .hero-subtitle{
    font-size:1rem;
  }
}

@media (max-width:768px){
  .footer-main{
    padding-top:40px;
  }

  .footer-desc{
    font-size:0.92rem;
  }
}


/* ===== ULTRA MODERN HEADER ===== */

.site-header{
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  background: rgba(255,255,255,0.75);
  border-bottom: 1px solid rgba(255,255,255,0.3);
  transition: all .35s ease;
  padding: 6px 0;
}

/* shrink on scroll */
.site-header.scrolled{
  padding: 0;
  background: rgba(255,255,255,0.92);
  box-shadow: 0 8px 25px rgba(0,0,0,0.08);
}

/* logo */
.logo-img{
  height:64px;
  transition: .3s;
}

.site-header.scrolled .logo-img{
  height:52px;
}

/* nav links */
.navbar-nav .nav-link{
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.6px;
  color:var(--bs-dark);
  margin:0 12px;
  position:relative;
  transition:.25s;
}

/* animated underline */
.navbar-nav .nav-link::after{
  content:"";
  position:absolute;
  bottom:-6px;
  left:0;
  width:0;
  height:2px;
  background:var(--bs-primary);
  transition:.3s;
}

.navbar-nav .nav-link:hover::after,
.navbar-nav .nav-link.active::after{
  width:100%;
}

.navbar-nav .nav-link:hover{
  color:var(--bs-primary);
}

/* mobile toggle */
.navbar-toggler{
  border:none;
}

.navbar-toggler:focus{
  box-shadow:none;
}

@media(max-width:991px){
  .navbar-collapse{
    background:#fff;
    padding:20px;
    border-radius:12px;
    box-shadow:0 10px 25px rgba(0,0,0,.08);
  }

  .navbar-nav .nav-link{
    margin:10px 0;
  }
}

/* ===== PREMIUM GLASS FOOTER ===== */

.footer-glass{
  position:relative;
  margin-top:80px;
  color:#fff;
  background:
    linear-gradient(rgba(20,20,20,.85), rgba(20,20,20,.92)),
    url("../img/footer-bg.jpg") center/cover no-repeat;
}

/* glass overlay */
.footer-glass::before{
  content:"";
  position:absolute;
  inset:0;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  background: rgba(0,0,0,0.35);
}

/* container */
.footer-inner{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns: repeat(4,1fr);
  gap:40px;
  padding:60px 0;
}

/* logo */
.footer-logo{
  max-width:160px;
  margin-bottom:15px;
}

/* description */
.footer-desc{
  opacity:.85;
  line-height:1.6;
  margin-bottom:18px;
}

/* headings */
.footer-col h5{
  margin-bottom:18px;
  font-weight:600;
  position:relative;
}

.footer-col h5::after{
  content:"";
  display:block;
  width:40px;
  height:2px;
  background:var(--bs-primary);
  margin-top:6px;
}

/* links */
.footer-col ul{
  list-style:none;
  padding:0;
}

.footer-col ul li{
  margin-bottom:8px;
}

.footer-col a{
  color:rgba(255,255,255,.85);
  text-decoration:none;
  transition:.25s;
}

.footer-col a:hover{
  color:var(--bs-accent);
  padding-left:4px;
}

/* contact icons */
.footer-contact i{
  margin-right:8px;
  color:var(--bs-accent);
}

/* social */
.footer-social a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  margin-right:8px;
  transition:.3s;
}

.footer-social a:hover{
  background:var(--bs-primary);
  transform:translateY(-3px);
}

/* bottom */
.footer-bottom{
  position:relative;
  z-index:2;
  text-align:center;
  padding:18px 0;
  font-size:.9rem;
  border-top:1px solid rgba(255,255,255,.15);
}

/* responsive */
@media(max-width:991px){
  .footer-inner{
    grid-template-columns:1fr 1fr;
    gap:30px;
  }
}

@media(max-width:600px){
  .footer-inner{
    grid-template-columns:1fr;
    text-align:center;
  }
}

.footer-glass::after{
  content:"";
  position:absolute;
  top:-60px;
  left:50%;
  transform:translateX(-50%);
  width:70%;
  height:120px;
  background: radial-gradient(circle, rgba(198,90,34,0.25), transparent 70%);
  filter: blur(40px);
}

/* ATTRACTION CARDS */
.attraction-card{
  padding:22px;
  transition:.35s;
  position:relative;
}

.attraction-card:hover{
  transform:translateY(-8px);
  box-shadow:0 25px 50px rgba(0,0,0,.15);
}

.attraction-card img{
  transition:.4s;
}

.attraction-card:hover img{
  transform:scale(1.05);
}

/* category tag */
.attraction-tag{
  display:inline-block;
  margin-top:10px;
  padding:6px 14px;
  border-radius:20px;
  background:rgba(198,90,34,0.12);
  color:var(--bs-primary);
  font-size:12px;
  font-weight:600;
  letter-spacing:.5px;
}

section{
  position:relative;
  z-index:2;
  background:#fff;
}


