@import url('https://fonts.googleapis.com/css2?family=BioRhyme:wght@200..800&family=Bona+Nova+SC:ital,wght@0,400;0,700;1,400&family=Great+Vibes&family=Host+Grotesk:ital,wght@0,300..800;1,300..800&family=Lora:ital,wght@0,400..700;1,400..700&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Playwrite+GB+S:ital,wght@0,100..400;1,100..400&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&family=Schibsted+Grotesk:ital,wght@0,400..900;1,400..900&family=Yellowtail&family=Zilla+Slab:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap');


/* CSS Custom Properties */
:root {
  --color-light: #fff1ca;
  --color-accent: #FFB823;
  --color-olive: #708A58;
  --color-dark-green: #2D4F2B;
}


/* Reset & Base Styles */
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
    /* font-optical-sizing: auto; */
    font-style: normal; 


}

html {
  font-size: 16px;
  scroll-behavior: smooth;
}

body {

  line-height: 1.5;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a {
  color: inherit;
  text-decoration: none;
}





/* =============================video  cta ================ */





.cta-video{

  width: 300px !important;
  height: 150px !important;
  margin-left: 0.5rem;
  color: var(--color-olive);
  font-size: 2rem;
  background-image: url(../images/garage-door-repair-technician-cinco-ranch.webp);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 0.5rem 1rem;
  border-radius: 1rem;
  box-shadow: 0 0.2rem #FFB82377;
}

.cta-video svg{
  margin-top: 10%;
}









/* ===============================END OF video  cta ================   */

/* ===============================BUTTON =============================== */
.button {
 background-color: var(--color-dark-green);
 border: none;
 padding: 0.7rem;
 font-size: 1.2rem;
 border-radius:1rem;
 color: var(--color-light);
 box-shadow: 0 0.2rem #dfd9d9;
 cursor: pointer;
}

.button:active {
 color: var(--color-olive);

 box-shadow: 0 0.1rem #dfd9d9;
 transform: translateY(0.1rem);
}

.button:hover:not(:disabled) {
 background: var(--color-olive);
 color: var(--color-light);
}

.button:disabled {
 cursor: auto;
 color: var(--color-accent);
}

/* ===============================END OF BUTTON =============================== */




/* ================================nav ========================= */

nav{
  border-bottom: 1px solid #FFB82377;
  
}



/* ===============================END OF nav ========================= */
/* ==============================  HERO ============================ */

#hero{
  height: 100vh;
  background-color: white;
}
main{
  background-color: var(--color-light);
}
.main-title{
  font-size: 2.5rem ;
  color: var(--color-dark-green);
  text-align: left;
  font-weight: 700; 

}

#hero{
  margin-top: 0%;
  background-color: white;
}

.main-hero-article{
  margin-top: 10px;
  font-size: 16px !important;
}
#hero .hero-top{
  padding-inline: 2.5%;
}
.sub-main-hero {
  background: linear-gradient(
      90deg,
      rgba(255, 241, 202, 0.5) 50%,
      rgba(255, 255, 255, 0) 50%
    ),
    url("../images/garage-door-installation-cinco-ranch-tx.webp");
  background-size: cover;
  background-position: top;
  min-height: 55vh;
  margin-top: 1%;
}

  



.left-side-main-hero{
  position: absolute;
}
.main-testimonials-top{
     display: flex !important;
     align-items: center;
    background-color: var(--color-light);
    border-radius: 50px;
    width: 400px;
    position: relative;
    margin-top: -6%;
    margin-left: 10%;
    padding: 0;
    
}

.testimonials-images img:first-child{
  margin-left: 5px !important; 
}
.testimonials-images img{

  width:50px;
  height:50px;
  border-radius: 50%;
  margin-left: -15px;
  margin-top: 0px;
  border: 1px solid var(--color-olive);
  
}
.main-testimonials-top-text{
  text-align: center;
  margin-top: 10px;
  padding-left: 10px;
  font-size: 14px;
}

.main-testimonials-top-text span{
  color: var(--color-dark-green);
  font-weight: 700;
  font-size: 1.2rem;
}


.hero-features{
  position: relative;
    margin-top: 55%;
    text-align: left;
    margin-left: 10%;
    color: #000000bb;
}
/* ===================== END OF HERO ===================== */

/* ========================about us ===================== */

.about-us {
  background-color: white;
  padding: 5% 5%;


}








/* ======================== END OF about us ===================== */

/* ===================== SUB CONTEXT ===================== */


.sub-context{
   padding: 5%;
}
.sub-context h2{
  text-align: left;
  color: var(--color-dark-green);
  font-weight: 700;
  margin-bottom: 7%;
}
.sub-context-card{
  background-color: white;
  padding: 1%;
  border-radius: 10px;
  padding: 20px;
  /* margin: 10px; */
  width: 300px !important;
}

.sub-context-card h3{
  font-size: 18px;
}
.sub-context-card article{
  font-size: 14px;
}

.sub-context img{
  border-radius: 20px;
}

/* ===================== END OF SUB CONTEXT ===================== */


/* =========================our services ===================== */


#our-services{
  background-color: #fff;
  padding: 5%;
}


#our-services img{
  padding-top: 10px;
  border-radius: 20px;
}


.our-services-span{
  color: var(--color-dark-green);
  font-weight: 700;
}
.accordion-item{
  padding-top: 20px;
  padding-bottom: 20px
}
.accordion-header{

  font-weight: 700;
 
}
.accordion-button{
 
  font-size: 1.5rem;
}
.accordion-button span{
  color: var(--color-olive);
  padding-right: 15px;
}
.accordion-button span {
  color: var(--color-olive);
}

.accordion-body {
  margin-top: 20px;
  font-size: 1rem;
  color: #000000bb;
  line-height: 1.6;
  position: relative;
  padding-bottom: 20px;
}

/* green line after the body */
.accordion-body::after {
  content: "";
  display: block;
  width: 70%;
  height: 2px;
  background-color: var(--color-olive);
  margin-top: 20px;
  border-radius: 2px;
}



/* ======================= END OF our services ===================== */

/* ========================info section ================= */


#info-section{
   padding: 5% 5%;
   background-color: #fff;
}

.testimonial-head{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  text-align: left;
  margin-bottom: 10%;

}

.testimonial-head span:first-child{
  font-size: 1rem;
   color: var(--color-dark-green);
  font-weight: 700;
  margin-bottom: 10px;
}

.testimonial-head span:last-child{
  font-size: 2rem;
  font-weight: 700;
  margin-top: 10px;
  
}

#info-section .main-testimonials-top{
  padding: 0 !important;
  margin: 0 !important;
}

.testimonial-card{
  margin-top: 30px;
}
.testimonial-card ul{
  padding-inline: 0 ! important;
  list-style-type: none;
  margin: 0 !important;
  padding: 0 !important;
}
.testimonial-card  i {
   text-align: left;
  margin-top: 20px;
  color: gold !important;

}
.review{
  margin-top: 20px;
}
.review article{
  font-weight: 500;
  font-size: 16px;
  line-height: 1.6;
  color: #000000bb;
}

.review .name{
  margin-top: 10px;
  font-weight: 700;
  font-size: 18px;
}


/* pagination  */



/* Nav container below the slider */
.mySwiper .swiper-nav {
  display: flex;
  justify-content: left;
  gap: 30px;
  margin-top:40px; /* space under the testimonial card */
}

/* Make buttons flow in document order (not overlay) */
.mySwiper .swiper-button-prev,
.mySwiper .swiper-button-next {
  position: static !important;   /* override Swiper's absolute */
  transform: none !important;
  left: auto !important;
  right: auto !important;

  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #2D4F2B;           /* dark green */
  border: 1px solid #2D4F2B;
  box-shadow: 0 2px 8px rgba(0,0,0,.08);

  display: grid;
  place-items: center;
  cursor: pointer;
 
}

/* Arrow glyphs (white) */
.mySwiper .swiper-button-prev::after,
.mySwiper .swiper-button-next::after {
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
  color: #fff;
  content: "";
}
.mySwiper .swiper-button-prev::after { content: "‹"; }
.mySwiper .swiper-button-next::after { content: "›"; }

/* Hover / focus */
.mySwiper .swiper-button-prev:hover,
.mySwiper .swiper-button-next:hover,
.mySwiper .swiper-button-prev:focus-visible,
.mySwiper .swiper-button-next:focus-visible {
  background: #708A58;           /* olive hover */
  border-color: #708A58;
  box-shadow: 0 4px 14px rgba(0,0,0,.12);
  outline: none;
}

/* Disabled state */
.mySwiper .swiper-button-disabled {
  opacity: .5;
  cursor: not-allowed;
  box-shadow: none;
}



.info-container span{

  color: var(--color-olive);
}
.info-container p{
  font-size: 2rem;
  font-weight: 400;
  margin-top: 20px;
  
  
}
.info-icon{
  color: var(--color-dark-green);
}


/* ========================= END OF info section =================   */

/* ========================offers =========================== */


.offers-head{
  margin-top: 10%;
}

.offer-card{
  background-color: var(--color-light);
  padding:20px 20px;
  border-radius:20px;
  margin:20px 20px;
  text-align: center;
  box-shadow: 0 0 10px rgba(0,0,0,.1);
}




/* =========================END OF offers =========================== */

/* ==========================cta ======================== */

.cta{
  background-image: url(../images/cta-image-bg.webp);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  height: 60vh;
  margin-top: 7%;
  /* padding: 10% 15% !important;
   */
}







/* =========================END OF cta ======================== */



/* =========================FAQS ================= */
#faqs{
   max-width: 1600px;
   margin-top: 10% !important;
   margin: 0 auto;
}
.accordion-faq{
  
  margin: 0 auto;
}

.accordion-faq:first-child{
  border-radius:  10px !important;
}
.accordion-faq .contentBox{
  
  margin: 0px 5px;
  border-bottom: 1px solid var(--color-olive);
  position: relative;
}

.accordion-faq .contentBox .label{
  position: relative;
  font-weight: 500;
  padding: 10px 20px; /* room for + / - on right */
  background-color: var(--color-light);
  color: var(--color-dark-green);
  cursor: pointer;

}

.accordion-faq .contentBox .label p {
  font-size: 1.2rem;
  padding: 0 !important;
}

.accordion-faq .contentBox .label::before{
  content: "+";
  position: absolute;
  top: 30%;
  right: 16px;
  transform: translateY(-30%);
  font-size: 1.4em;
  line-height: 1;

}

.accordion-faq .contentBox .content{
  max-height: 0;          /* smoother than height */
  padding: 0;             /* no padding when closed */
  overflow: hidden;
  transition: max-height 0.35s ease, padding 0.2s ease;
}

.accordion-faq .contentBox.active .content{
  max-height: 350px;      /* large enough to reveal content */
  padding: 12px;
}

.accordion-faq .contentBox.active .label::before{
  content: "–";           /* show minus when open */
  background-color: var(--color-light) !important;
}

/* ========================= END OF FAQS ================= */

/* ============================marque ===================== */



.gallery-slider-container {
  width: 100%;
  overflow: hidden;
  position: relative;
  margin-top: 3%;
}

.gallery-slider-track {
   display: flex;
  width: max-content;
  animation: scroll 15s linear infinite;
  animation-play-state: running; /* Ensures autoplay */
}

.gallery-slide {
 
  display: flex;
  align-items: center;
  justify-content: center;
  padding-inline: 1%;

}


.gallery-slide img{
  border-radius: 20px;
  /* width: 200px !important;
  height: 200px; */
}
@keyframes scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}



/* ====================marquee =================== */

/* =================footer ================ */


.subject{
  display: none  !important;
}

.form{
  background-color: var(--color-dark-green);
  color: #fff !important;
  border-radius: 20px;
}

/* Labels (works for both .form-label and normal labels) */
.form-label,
.contact-form label {
  color: #fff;
  font-size: 1.2rem;
  margin-bottom: 5px;
}

/* Inputs / selects / textareas inside the new form */
.form-control,
.contact-form .input {
  background-color: transparent;
  border: 1px solid var(--color-dark-green);
  color: var(--color-light);
  width: 100%;
}

/* Override border for all input elements inside the form */
.contact-form input {
  border: 1px solid #fff !important;
  background-color: transparent;
  border-radius: 15px;
  padding: 2%;
  color: #ffffff;
}

/* Input placeholders */
.contact-form input::placeholder {
  color: #ffffff !important;
  opacity: 1;
}

/* Textareas with .form-control (from old form) */
textarea.form-control {
  border: 1px solid #ffffff !important;
}

/* Textareas in new form using .input */
.contact-form textarea.input {
  border: 1px solid #ffffff !important;
  background-color: transparent;
  color: #ffffff;
}

/* Textarea placeholders */
textarea::placeholder {
  color: #ffffff !important;
  opacity: 1;
}

/* Optional left-side info styling (if you use it) */
.form-left {
  position: relative;
}

.form-left span {
  display: block;
  color: #ffffff;
  font-size: 1rem;
  letter-spacing: 1px;
}

.form-left p {
  top: 50%;
  margin-top: 0.5rem;
  color: #ffffff;
}




  footer{
    background-image: linear-gradient(to top,  var(--color-light) ,#fff);
    
  }



  .footer-container {
    margin-top: 0px;
    color: #000;
    padding: 0 !important;
    margin: 0 !important;
   
  }



  #footer-content{
    margin-top: 0px;
    color: #000;
    width: 100%;
    padding-inline: 5% !important;
    margin-top: 5%!important;
   
  }





iframe{
  border-radius: 20px;
  margin-top: 10px;
  width: 320px !important;
}


.item-footer{
  display:inline-block;
  border-radius:0.5rem;
  /* border: 2px solid var(--light-beige); */
  margin:2px 2px;
  padding: 5px;
  margin-top: 5px;
}

.footer-business-name{
  color: var(--color-dark-green);
  font-size: 1.8rem;
}

.social a{
  color: var(--color-dark-green);

}

.iframe-title {
  font-size: 1.3rem !important;
  margin-bottom: 10px !important;
  font-weight: 500;
}




/*======================== end of footer   ===================*/

.nav-business-name {
  color: var(--color-dark-green);

}







 /* Small devices (landscape phones, 576px and up) */
@media (max-width: 576px) { 

  .main-title {
    font-size: 2rem !important;
  }

.main-hero-article{
  font-size: 12px !important;
  margin-bottom: 10% !important;
}

.hero-features{
  position: relative;
    margin-top: 35%;
   display: flex ;
   flex-direction: row !important
}

.nav-business-name{
   display: none;
}

.main-testimonials-top{
    width: 320px;   
}

.testimonials-images img{
     width: 35px;
     height: 35px;
} 


.offers-head{
 padding-inline: 7%;
 margin-bottom: 5%;

}

.sub-context {
  justify-self:center !important;
}
.sub-context .col-lg-5 {
  margin-top: 15% !important;
  padding-inline: 0 !important;
}

.form-left{
  padding: 0 !important;
  margin: 0 !important;
}
 .form-left p {
    top: 10% !important;
    margin-top: 0.5rem;
    color: #ffffff;
  }
.needs-validation{
  margin: 0 !important;
  padding: 0 !important;

}



  footer{
    background: var(--color-light);
    border-radius: 20px !important;
    
  }


  #our-working-process{
    padding: 0 !important;
    margin: 0 !important;
  
  }
.testimonial-head span:last-child{
  font-size: 1.2rem;

  
}

.info-container p{
  font-size: 1.5rem;
}

.accordion-faq .contentBox .label p {
  font-size: 1rem;
  padding-right: 10px !important;
}


#offers{
  margin-top: -50% !important;
}


.cta{
  
  height: 100vh;

  /* padding: 10% 15% !important;
   */
}


.form-left{
 height: 150px !important;
 
}



.footer-business-name{
  font-size: 1.3rem !important;
}


.item-footer{
  display:inline-block;
  border-radius:0.5rem;
  margin:2px 2px;
  padding: 5px;
  margin-top: 5px;
}

.item-footer .button{
   font-size: 1rem;
   margin: 0 !important;
}  

.iframe-title {
  font-size: 1rem !important;
  margin-bottom: 10px !important;
  font-weight: 500;
}

.button {

 padding: 0.5rem;
 font-size: 1rem !important; 

}

#video article{
  font-size: 12px !important;
}
 .cta-video{

  width: 200px !important;
  height: 100px !important;
}
.cta-video svg{
  margin-top: 10%;
  width: 40px !important;
  height: 40px !important ;
}


}

/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) { 
.main-title{
  font-size: 2rem;
  
 
}



.footer-business-name{
  font-size: 2rem !important;
}
 
  .form-left p {
    top: 10% !important;
    margin-top: 0.5rem;
    color: #ffffff;
  }

 }

 /* X-Large devices (large desktops, 1200px and up) */
@media (max-width: 1200px) { 

 }


/* XX-Large devices (larger desktops, 1400px and up) */
@media (max-width: 1400px) { 


 }