/* GENERAL CSS */
body, html {
  margin: 0;
  padding: 0;
  font-family: 'Alegreya SC';
}

.main {
  margin-top: 0 !important;
}

/* NAV BAR */
.navbar {
  margin-bottom: 0 !important;
  padding-bottom: 0;
  padding-top: 1rem;
  
}

.navbar-nav {
  text-align: center;
}
.navbar-nav .nav-item {
  margin: 0 0.5rem;
}
.navbar-brand, .navbar-nav .nav-link {
  padding-top: 1rem;
  padding-bottom: 1rem;
}

/* limit the brand container to about half its old size */
.navbar-brand {
  flex: 0 0 250px;    /* fix width to 150px — adjust as needed */
  max-width: 250px;
}

/* make the img fill its parent exactly */
.navbar-brand .logo {
  display: block;     /* removes inline-img whitespace */
  width: 100%;
  height: auto;
}
.nav-link {
  font-weight: 500;
  color: #333;
}
.nav-link:hover {
  color: #006400;
}


/* 2) Hero caption full-height overlay adjustments */
.carousel-caption {
  top: 0;
  bottom: 0;
  
}

.carousel-caption h1 {
  font-size: 3rem;
}
.carousel-caption .lead {
  font-size: 1.25rem;
}

/* 3) Quick stats icons */
.bg-light .fas {
  margin-right: .5rem;
}



/* 5) Section headings */
section h2 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
}

/* 6) Services & How-It-Works card shadows */
.card, .p-4.rounded.shadow-sm {
  transition: transform .3s, box-shadow .3s;
}
.card:hover, .p-4.rounded.shadow-sm:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}

/* 7) Footer social icon hover */
footer .text-dark:hover {
  color: #2A7F62;
}

/* 8) Responsive tweaks */
@media (max-width: 768px) {
  .carousel-caption h1 { font-size: 2rem; }
  .carousel-caption .lead { font-size: 1rem; }
  .navbar-nav .nav-link { padding: .75rem 0; }
}

/* transparent/faded warning button */
.btn-outline-warning {
  border-radius: 50px;
  border-width: 2px;
  background-color: rgba(255, 193, 7, 0.15);
  transition: background-color 0.25s ease;
}
.btn-outline-warning:hover {
  background-color: rgba(255, 193, 7, 0.3);
}

/* --- HERO CAROUSEL --- */
.carousel-hero {
  position: relative;
  overflow: hidden;
  margin-left: 0;
  margin-right: 0;
}


/* full-width / full-height img, cropped with object-fit */
.carousel-hero .hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* keep caption centered over the image */
.carousel-hero .carousel-caption {
  top: 0;
  bottom: 0;
  
}

/* SERVICE button style */
.btn-service {
  background-color: #fff;
  color: #fff;
  border: none;
  border-radius: 0.25rem;
  transition: background-color .25s, color .25s, border .25s;
}
.btn-service:hover {
  background-color: transparent;
  color: #fff;
  border: 1px solid #fff;
}
/* make .carousel-item a positioning context */
.carousel-hero .carousel-item {
  position: relative;
  overflow: hidden;
}

/* full-bleed semi-transparent overlay */
.carousel-hero .carousel-item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.35);
  z-index: 1;
}
.carousel-hero .carousel-caption {
  z-index: 2;       
  background: none;     
}

/* override Bootstrap’s default carousel-fade if you ever use it */
.carousel-hero .carousel-item,
.carousel-hero .carousel-item.active {
  transition: transform .6s ease, opacity .6s ease;
}

/* RESPONSIVE TWEAKS */
@media (max-width: 768px) {
  .carousel-hero .carousel-caption h1 { font-size: 2rem; }
  .carousel-hero .carousel-caption .lead { font-size: 1rem; }
}

/* 1) Make the inner a positioning context */
.carousel-hero .carousel-inner {
  position: relative;
}

/* 2) Full-height slides by CSS, desktop vs mobile */
.carousel-hero .carousel-item {
  position: relative;
  overflow: hidden;
  height: 90vh;            /* desktop height */
}

/* 3) Shrink on mobile */
@media (max-width: 768px) {
  .carousel-hero .carousel-item {
    height: 40vh;          /* shorter on phones */
  }
}

/* 4) Image always covers */
.carousel-hero .hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 5) Grey overlay */
.carousel-hero .carousel-item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35);
  z-index: 1;
}

/* 6) Static caption fills the same area */
.carousel-hero .carousel-caption {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: none;       /* we rely solely on the overlay */
  padding: 1rem;          /* add some breathing room */
  text-align: center;
}

/* 7) Responsive text & buttons */
@media (max-width: 768px) {
  .carousel-hero .carousel-caption h1 {
    font-size: 1.75rem;
    line-height: 1.2;
  }
  .carousel-hero .carousel-caption .lead {
    font-size: 0.9rem;
  }
  .carousel-hero .carousel-caption .btn-lg {
    font-size: 0.85rem;
    padding: 0.5rem 1rem;
  }
  /* shrink the controls if needed */
  .carousel-control-prev-icon,
  .carousel-control-next-icon {
    width: 20px;
    height: 20px;
  }
}
/* extra-small phones: scale the hero caption way down */
@media (max-width: 480px) {
  .carousel-hero .carousel-caption {
    padding: 0.5rem;           /* less vertical padding */
  }
  .carousel-hero .carousel-caption h1 {
    font-size: 1.5rem;         /* down from 1.75rem */
    line-height: 1.1;          /* tighter line spacing */
    margin-bottom: 0.5rem;     /* remove extra space */
  }
  .carousel-hero .carousel-caption .lead {
    font-size: 0.8rem;         /* down from 0.9rem */
    margin-bottom: 0.75rem;
  }
  .carousel-hero .carousel-caption .btn-lg {
    font-size: 0.75rem;
    padding: 0.3rem 0.8rem;
  }
}




 
 /* ------------------------------------------------------------------
  Testimonials: on mobile, stack vertically & drop fixed aspect-ratio
--------------------------------------------------------------------*/
  #testimonialSlider::-webkit-scrollbar {
    display: none;
  }
 
 #testimonialSlider {
     padding-top:4%;
     padding-bottom:4%;
     
 }
 
 @media (max-width: 768px) {

 #testimonialSlider {
    padding-left: 1rem;
    padding-right: 1rem;
    /* keep the horizontal flex layout */
    flex-direction: row !important;
    overflow-x: auto;
  }

  .testimonial-card {
    /* make it fill most of the viewport minus the padding */
    width: calc(100% - 2rem) !important;
    aspect-ratio: 1 / 1;    /* keep it square */
    margin-right: 1rem;     /* extra space on the right */
  }

  /* keep arrows visible so users can swipe/click through */
  #prevTestimonial,
  #nextTestimonial {
    display: block;
  }

}




/* ──────────────────────────────────────────────────────────────────────────
   Services section: circle icons, uppercase titles, button tweaks
────────────────────────────────────────────────────────────────────────── */
#ServiceSection {
    
      padding-top:4%;
     padding-bottom:4%;
     
}

#ServiceSection .service-icon {
  width: 80px;
  height: 80px;
  background-color: #eaf7ee;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}

#ServiceSection h5 {
  text-transform: uppercase;
}

#ServiceSection .btn-service {
  border-radius: 10px;
  width:40%;
  border-style: solid;
  border-width: 1px;
  border-color:#218838;
  font-size: 15px;
  color:#218838;
   

}

#ServiceSection .btn-service:hover {
  background-color: #218838;
  color: #fff;
  border-color: #218838;
}

/* ─────────────────────────────────────────────────────────────────────
   Meet Theresa section
──────────────────────────────────────────────────────────────────────── */
.meet-theresa {
  background-color: #F7F9FB;  /* light grey from your mockup */
}

.meet-theresa__photo {
  width: 240px;               /* fixed circle size to match design */
  height: 240px;
  object-fit: cover;
}

.meet-theresa__title {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 2rem;
  text-transform: uppercase;
  color: #333;
}

.meet-theresa__copy {
  font-size: 1rem;
  line-height: 1.6;
  color: #444;
}

.meet-theresa__button {
  border-width: 2px;
  background-color:#fff;
  border-radius: 10px;
  padding: 0.75rem 1.5rem;
  transition: background-color .25s, color .25s;
}

.meet-theresa__button:hover {
  background-color: #218838; /* Bootstrap’s $success */
  color: #fff;
  text-decoration: none;
}


/* ──────────────────────────────────────────────────────────────────────────
   Footer
────────────────────────────────────────────────────────────────────────── */
footer {
  background-color: #212121;    /* dark charcoal */
  color: #ccc;
}
footer h5 {
  color: #fff;
  margin-bottom: .75rem;
}
footer p,
footer small,
footer ul li {
  color: #bbb;
}
footer a {
  color: #bbb;
  text-decoration: none;
  transition: color .2s;
}
footer a:hover {
  color: #fff;
  text-decoration: none;
}

/* remove default list styling */
footer ul {
  padding: 0;
  list-style: none;
}
footer ul li {
  margin-bottom: .5rem;
}

/* bottom border */
footer hr {
  border-top-color: #444;
}

/* Estimate button */
footer .btn-warning {
  background-color: #f0ad4e;
  border-color: #f0ad4e;
  color: #212121;
  border-radius: 20px;
  padding: .25rem 1rem;
  font-size: .9rem;
}
footer .btn-warning:hover {
  background-color: #ec971f;
  border-color: #d58512;
  color: #fff;
}

/* small text at bottom */
footer .row + .row small {
  font-size: .875rem;
}

/* spacing tweaks for mobile */
@media (max-width: 767px) {
  footer .row.align-items-center {
    text-align: center;
  }
  footer .row.align-items-center .col-md-6:not(:first-child) {
    margin-top: 1rem;
  }
}

.btn-info{
     background-color:#63a9dc !important;
}

.btn-info:hover{
    background-color:#498EC1 !important;
}
.btn-success {
    background-color:#76b73b !important;
}
.btn-success:hover{
    background-color:#5d9c25 !important;
}
.btn-outline-success {
    border-color:#76b73b;
    color:#76b73b;
    background-color:#fff;
}
.btn-outline-success:hover{
    background-color:#5d9c25;
     border-color:#5d9c25;
    color:#fff;
}
.bg-success {
    background-color:#76b73b !important;
}

.bg-info {
    background-color:#63a9dc !important;
}
.text-success{
    border-color:#63a9dc !important;
    color:#498EC1 !important;
}

/* residential hero overlay */
.residential-hero {
  position: relative;
  overflow: hidden;
}

.residential-hero::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(128,128,128,0.5);  /* semi-transparent grey */
  z-index: 1;
}
.moving-hero::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(128,128,128,0.5);  /* semi-transparent grey */
  z-index: 1;
}

.residential-hero .container {
  position: relative;
  z-index: 2;
}

.moving-hero .container {
  position: relative;
  z-index: 2;
}

/* ---------- Residential Packages Styling ---------- */
#packages {
  background: #ffffff;        /* white bg */
}
#packages .card {
  border: 1px solid #ddd;     /* light grey card border */
  border-radius: 0.75rem;     /* rounded corners */
  box-shadow: 0 .5rem 1rem rgba(0,0,0,0.05);

}
#packages .border-success {
  border-color: #216e47 !important;
}

/* Headings (serif, uppercase, spaced) */
#packages .card-title {
  font-family: Georgia, serif;
  font-size: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.75rem;
  color: #222;
}

/* “Starting at $…” */
#packages p.text-success {
  font-family: Georgia, serif;
  font-size: 1rem;
  margin-bottom: 0.5rem;
  color: #216e47 !important;
}

/* Subtitle under heading */
#packages p.text-muted {
  font-family: Georgia, serif;
  font-size: 0.9rem;
  margin-bottom: 1rem;
  color: #555 !important;
}

/* List items */
#packages ul li {
  font-family: Georgia, serif;
  font-size: 0.9rem;
  margin-bottom: 0.5rem;
}

/* Buttons style */
#packages .btn {
  font-family: Georgia, serif;
  border-radius: 0.5rem;
  padding: 0.75rem 1.5rem;
  text-transform: none;
}
#packages .btn-warning {
  background-color: #f2c94c;
  border-color: #f2c94c;
  color: #333;
}
#packages .btn-success {
  background-color: #216e47;
  border-color: #216e47;
  color: #fff;
}

/* “Most Popular” badge */
#packages .badge.bg-success {
  background-color: #216e47 !important;
  font-size: 0.75rem;
  text-transform: uppercase;
  border-radius: 10rem;
  padding: 0.4rem 0.8rem;
}

/* Bottom note (all prices…) */
#packages > .container > p.text-center {
  font-family: Georgia, serif;
  font-size: 0.85rem;
  color: #333;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-top: 2rem;
}

/* == GRID SETUP == */
.services-grid {
  display: grid;
  row-gap: 1rem;          /* small vertical gap */
  column-gap: 2rem;          /* zero horizontal gap */
  justify-content: center;/* center the grid */
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  /* two fixed‐width columns at desktop */
  .services-grid {
    grid-template-columns: repeat(2, 380px);
  }
}

/* == CARD SQUARE SIZE == */
.service-card {
  position: relative;
  width: 100%;
  max-width: 380px;
  padding-top:86%;/* height = width */
  overflow: hidden;
}


/* == CONTENT LAYOUT == */
.service-card .card-body {
  position: absolute;
  top: 0; right: 0; bottom: 0; left: 0;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

.service-card .card-title {
  font-size: 1.6rem;
  font-weight: 700;
}

.service-card ul li {
  display: flex;
  align-items: flex-start;
}
.service-card ul li i {
  line-height: 1;
  margin-right: .5rem;
}







