/* ============================================
   ENHANCEMENTS.CSS
   Parallax, Hover States, and Responsive Design
   ============================================ */

/* ===== PARALLAX EFFECTS ===== */
.stage {
  position: relative;
  overflow: hidden;
}

.stage::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-image: url('../img/stage.png');
  background-size: cover;
  background-position: center;
  will-change: transform;
  z-index: -1;
}

.parallax-bg {
  will-change: transform;
  transition: transform 0.1s ease-out;
}

.bottom-CTA-banner {
  position: relative;
  overflow: hidden;
}

/* ===== SMOOTH SCROLLING ===== */
html {
  scroll-behavior: smooth;
}

/* ===== STICKY "WHY CHOOSE US" SECTION ===== */
.why-choose-us .copy {
  position: sticky;
  top: 150px;
  align-self: flex-start;
  z-index: 10;
}

/* ===== HOVER STATES ===== */

/* Navigation Links */
.header-bar a .text-wrapper-2,
.header-bar-4 a .text-wrapper-65,
.header-bar-5 a .text-wrapper-75,
a.text-wrapper-2,
.text-wrapper-2,
.nav a {
  position: relative;
  transition: color 0.3s ease;
}

/* Phone Number Link and Read More Links */
a.span,
a.text-wrapper-64,
a.text-wrapper-74,
a.text-wrapper-115,
a.text-wrapper-102,
a.text-wrapper-38,
a.text-wrapper-89,
a.text-wrapper-25,
a.text-wrapper-51,
a.left-column-5,
.text-wrapper-122 {
  position: relative;
  transition: color 0.3s ease;
  display: inline-block;
}

/* Direct hover on navigation links */
a.text-wrapper-2:hover,
.frame-2 a:hover .text-wrapper-2,
.header-bar a:hover .text-wrapper-2,
.header-bar-4 a:hover .text-wrapper-65,
.header-bar-5 a:hover .text-wrapper-75 {
  color: #E95E00 !important;
}

/* Underline effect */
a.text-wrapper-2::after,
.text-wrapper-2::after,
.text-wrapper-65::after,
.text-wrapper-75::after,
a.span::after,
a.text-wrapper-64::after,
a.text-wrapper-74::after,
a.text-wrapper-115::after,
a.text-wrapper-102::after,
a.text-wrapper-38::after,
a.text-wrapper-89::after,
a.text-wrapper-25::after,
a.text-wrapper-51::after,
a.left-column-5::after,
.text-wrapper-122::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background-color: #E95E00;
  transition: width 0.3s ease;
}

a.text-wrapper-2:hover::after,
.frame-2 a:hover .text-wrapper-2::after,
.header-bar a:hover .text-wrapper-2::after,
.header-bar-4 a:hover .text-wrapper-65::after,
.header-bar-5 a:hover .text-wrapper-75::after,
a.span:hover::after,
a.text-wrapper-64:hover::after,
a.text-wrapper-74:hover::after,
a.text-wrapper-115:hover::after,
a.text-wrapper-102:hover::after,
a.text-wrapper-38:hover::after,
a.text-wrapper-89:hover::after,
a.text-wrapper-25:hover::after,
a.text-wrapper-51:hover::after,
a.left-column-5:hover::after,
.text-wrapper-122:hover::after {
  width: 100%;
}

.nav a {
  transition: color 0.3s ease;
}

.nav a:hover {
  color: #E95E00 !important;
}

/* Footer Navigation Links */
.text-wrapper-22,
.text-wrapper-71,
.text-wrapper-86,
.text-wrapper-127,
.text-wrapper-61 {
  position: relative;
  transition: color 0.3s ease;
  display: inline-block;
  cursor: pointer;
}

.text-wrapper-22:hover,
.text-wrapper-71:hover,
.text-wrapper-86:hover,
.text-wrapper-127:hover,
.text-wrapper-61:hover {
  color: #FF954E !important;
}

/* Footer Navigation Underline */
.text-wrapper-22::after,
.text-wrapper-71::after,
.text-wrapper-86::after,
.text-wrapper-127::after,
.text-wrapper-61::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background-color: #FF954E;
  transition: width 0.3s ease;
}

.text-wrapper-22:hover::after,
.text-wrapper-71:hover::after,
.text-wrapper-86:hover::after,
.text-wrapper-127:hover::after,
.text-wrapper-61:hover::after {
  width: 100%;
}

/* CTA Buttons - Primary */
.button,
.button-2,
.button-3,
.button-4,
.button-5,
.button-6,
.button-7,
.button-8,
.button-9,
.button-10,
.button-11,
.button-12,
.button-13,
.button-14,
.button-18,
.button-19 {
  transition: background-color 0.3s ease, transform 0.3s ease !important;
  cursor: pointer;
  will-change: transform;
}

.button:hover,
.button-3:hover,
.button-4:hover,
.button-5:hover,
.button-6:hover,
.button-7:hover,
.button-8:hover,
.button-9:hover,
.button-10:hover,
.button-11:hover,
.button-12:hover,
.button-13:hover,
.button-14:hover,
.button-18:hover,
.button-19:hover {
  background-color: #FF8731 !important;
  transform: translateY(-6px) !important;
}

.button-2:hover {
  transform: translateY(-6px) !important;
}

.button:active,
.button-2:active,
.button-3:active,
.button-4:active,
.button-5:active,
.button-6:active,
.button-7:active,
.button-8:active,
.button-9:active,
.button-10:active,
.button-11:active,
.button-12:active,
.button-13:active,
.button-14:active,
.button-18:active,
.button-19:active {
  background-color: #FF8731 !important;
  transform: translateY(0) !important;
}

/* CTA Buttons - Secondary (outlined) */
.group-3,
.group-15,
.group-18 {
  transition: transform 0.3s ease, background-color 0.3s ease;
  cursor: pointer;
}

.group-3:hover,
.group-15:hover,
.group-18:hover {
  transform: translateY(-6px);
  background-color: rgba(255, 103, 0, 0.05);
}

/* Header Button */
.group {
  transition: transform 0.3s ease;
  cursor: pointer;
}

.group .rectangle-2 {
  transition: background-color 0.3s ease;
}

.group:hover {
  transform: translateY(-6px);
}

.group:hover .rectangle-2 {
  background-color: #FF8731 !important;
}

/* Service Cards */
.frame-7,
a.frame-7 {
  transition: transform 0.3s ease !important;
  cursor: pointer;
  will-change: transform;
  box-shadow: none !important;
}

.frame-7:hover,
a.frame-7:hover {
  transform: translateY(-6px) !important;
  box-shadow: none !important;
}

/* Testimonial Carousel Slide Animations */
.testimonial-card.slide-out-left {
  animation: slideOutLeft 0.5s ease-in-out forwards;
}

.testimonial-card.slide-out-right {
  animation: slideOutRight 0.5s ease-in-out forwards;
}

.testimonial-card.slide-in-left {
  animation: slideInLeft 0.5s ease-in-out forwards;
}

.testimonial-card.slide-in-right {
  animation: slideInRight 0.5s ease-in-out forwards;
}

.testimonial-clone {
  pointer-events: none;
}

.testimonial-clone.slide-in-from-left {
  animation: slideInLeft 0.5s ease-in-out forwards;
}

.testimonial-clone.slide-in-from-right {
  animation: slideInRight 0.5s ease-in-out forwards;
}

@keyframes slideOutLeft {
  from {
    opacity: 1;
    transform: translateX(0);
  }
  to {
    opacity: 0;
    transform: translateX(-120%);
  }
}

@keyframes slideOutRight {
  from {
    opacity: 1;
    transform: translateX(0);
  }
  to {
    opacity: 0;
    transform: translateX(120%);
  }
}

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-120%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(120%);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Value Proposition Cards */
.element,
.element-2,
.element-3,
.element-4 {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: default;
}

.element:hover,
.element-2:hover,
.element-3:hover,
.element-4:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(15, 26, 35, 0.08);
}

/* Gallery Images */
.images img,
.rectangle-20 {
  transition: transform 0.4s ease, box-shadow 0.3s ease, filter 0.3s ease;
  cursor: pointer;
  position: relative;
}

.images img:hover,
.rectangle-20:hover {
  transform: scale(1.05);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  filter: brightness(1.1);
  z-index: 2;
}

/* Filter Buttons */
.filter,
.filter-2 {
  transition: background-color 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
  cursor: pointer;
}

.filter:hover,
.filter-2:hover {
  background-color: #ff6700;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(255, 103, 0, 0.3);
}

.filter:hover .text-wrapper-80,
.filter:hover .text-wrapper-81,
.filter-2:hover .text-wrapper-80,
.filter-2:hover .text-wrapper-81 {
  color: white;
}

.filter.active,
.filter-2.active {
  background-color: #ff6700;
  box-shadow: 0 4px 12px rgba(255, 103, 0, 0.3);
}

.filter.active .text-wrapper-80,
.filter.active .text-wrapper-81,
.filter-2.active .text-wrapper-80,
.filter-2.active .text-wrapper-81 {
  color: white;
}

/* Arrow Buttons (Testimonials) */
.left-arrow,
.right-arrow {
  transition: transform 0.3s ease, background-color 0.3s ease;
  cursor: pointer;
}

.left-arrow:hover {
  transform: rotate(180deg) scale(1.1);
  background-color: rgba(255, 103, 0, 0.1);
}

.right-arrow:hover {
  transform: scale(1.1);
  background-color: rgba(255, 103, 0, 0.1);
}

/* Social Media Icons */
.frame-15 a,
.frame-29 .icon-4,
.frame-31 .icon-5,
.frame-35 .icon-6,
.frame-40 .icon-7,
.frame-59 .icon-10 {
  transition: transform 0.3s ease, opacity 0.3s ease;
  display: inline-block;
  cursor: pointer;
}

.frame-15 a:hover,
.frame-29 .icon-4:hover,
.frame-31 .icon-5:hover,
.frame-35 .icon-6:hover,
.frame-40 .icon-7:hover,
.frame-59 .icon-10:hover {
  transform: scale(1.15) rotate(5deg);
  opacity: 0.8;
}

/* ===== LIGHTBOX ===== */
.lightbox {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.95);
  z-index: 9999;
  justify-content: center;
  align-items: center;
  animation: fadeIn 0.3s ease;
}

.lightbox.active {
  display: flex;
}

.lightbox-content {
  position: relative;
  max-width: 90%;
  max-height: 90%;
  animation: zoomIn 0.3s ease;
}

.lightbox-content img {
  max-width: 100%;
  max-height: 90vh;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
}

.lightbox-close {
  position: absolute;
  top: 20px;
  right: 30px;
  font-size: 48px;
  color: white;
  cursor: pointer;
  background: none;
  border: none;
  z-index: 10000;
  transition: transform 0.2s ease, color 0.2s ease;
  font-weight: 300;
  line-height: 1;
  padding: 0;
  width: 50px;
  height: 50px;
}

.lightbox-close:hover {
  transform: rotate(90deg) scale(1.2);
  color: #ff6700;
}

.lightbox-prev,
.lightbox-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 48px;
  color: white;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.1);
  border: 2px solid rgba(255, 255, 255, 0.3);
  padding: 20px 25px;
  transition: background-color 0.3s ease, transform 0.2s ease;
  border-radius: 8px;
  z-index: 10000;
  user-select: none;
}

.lightbox-prev {
  left: 30px;
}

.lightbox-next {
  right: 30px;
}

.lightbox-prev:hover,
.lightbox-next:hover {
  background-color: rgba(255, 103, 0, 0.8);
  transform: translateY(-50%) scale(1.1);
}

.lightbox-counter {
  position: absolute;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  color: white;
  font-family: "Satoshi-Medium", Helvetica;
  font-size: 18px;
  background: rgba(0, 0, 0, 0.5);
  padding: 10px 20px;
  border-radius: 20px;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes zoomIn {
  from { 
    transform: scale(0.8);
    opacity: 0;
  }
  to { 
    transform: scale(1);
    opacity: 1;
  }
}

/* ===== RESPONSIVE BREAKPOINTS ===== */

/* Tablet (768px - 1199px) */
@media (max-width: 1199px) {
  .home .header-container,
  .header-container-5,
  .header-container-6 {
    gap: 200px;
    padding: 0 40px;
  }

  .home .PHONE-BAR,
  .PHONE-BAR-5,
  .PHONE-BAR-6 {
    padding: 24px 40px;
  }

  .home .header-bar,
  .header-bar-4,
  .header-bar-5 {
    padding: 6px 40px 0px;
  }

  .stage .frame-3 h1,
  .trusted-family-owned {
    font-size: 64px;
    line-height: 1.15;
  }

  .frame-6 {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px !important;
  }

  .values {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px !important;
  }

  .images {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px !important;
  }

  .why-choose-us {
    flex-direction: column !important;
    gap: 48px !important;
  }

  .copy {
    max-width: 100% !important;
  }
}

/* Mobile (below 768px) */
@media (max-width: 767px) {
  /* Header & Navigation */
  .home .PHONE-BAR,
  .PHONE-BAR-5,
  .PHONE-BAR-6 {
    padding: 16px 20px;
    height: auto;
  }

  .home .frame,
  .frame-36,
  .frame-32 {
    flex-direction: column;
    gap: 8px;
    margin: 0 !important;
    width: 100%;
  }

  .home .call-today-for-a,
  .call-today-for-a-5,
  .call-today-for-a-6 {
    font-size: 14px;
    white-space: normal;
    text-align: center;
  }

  .home .header-bar,
  .header-bar-4,
  .header-bar-5 {
    padding: 12px 20px;
    height: auto;
  }

  .home .header-container,
  .header-container-5,
  .header-container-6 {
    flex-direction: row;
    gap: 16px;
    align-items: center;
    justify-content: space-between;
  }

  .home .rectangle,
  .rectangle-15,
  .rectangle-18 {
    max-width: 200px;
  }

  .home .div,
  .frame-33,
  .frame-37 {
    flex-direction: column;
    gap: 16px;
    width: 100%;
    align-items: flex-start;
  }

  .home .frame-2,
  .frame-34,
  .frame-38 {
    flex-direction: column;
    gap: 12px;
    width: 100%;
    align-items: flex-start;
  }

  /* Hero Section */
  .stage {
    padding: 60px 20px !important;
    background-image: url('../img/Homepage-Stage-M.png') !important;
  }

  .stage::before {
    background-image: url('../img/Homepage-Stage-M.png') !important;
  }

  .stage .frame-3 h1,
  .trusted-family-owned {
    font-size: 36px !important;
    line-height: 1.2;
    text-align: center;
  }

  .stage .p,
  .stage .frame-3 p {
    display: none !important;
  }

  .stage .frame-4 {
    flex-direction: column !important;
    gap: 16px !important;
    width: 100%;
  }

  .stage .button,
  .stage .group-3 {
    width: 100%;
    justify-content: center;
  }

  /* Service Cards */
  .frame-6 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    padding: 0 20px;
  }

  .frame-7 {
    padding: 32px 24px !important;
  }

  /* Section Headings */
  .text-wrapper-6,
  .text-wrapper-7,
  .text-wrapper-12,
  .text-wrapper-13,
  .text-wrapper-14,
  .text-wrapper-15 {
    font-size: 28px !important;
    text-align: center;
  }

  .text-wrapper-8,
  .text-wrapper-16 {
    font-size: 16px !important;
    text-align: center;
    padding: 0 20px;
  }

  /* Value Propositions */
  .values {
    display: none !important;
  }

  .why-choose-us {
    flex-direction: column !important;
    padding: 60px 20px !important;
    gap: 40px !important;
  }

  .copy {
    max-width: 100% !important;
    text-align: left;
    align-items: flex-start;
  }

  .text-wrapper-14,
  .text-wrapper-15,
  .text-wrapper-16 {
    text-align: left !important;
  }

  /* Gallery */
  .images {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 0 20px;
  }

  .filtering {
    flex-direction: column !important;
    gap: 12px !important;
    padding: 0 20px;
    align-items: stretch !important;
  }

  .filter,
  .filter-2 {
    width: 100% !important;
    justify-content: center;
  }

  .title-5 {
    padding: 0 20px;
  }

  .text-wrapper-77 {
    font-size: 36px !important;
  }

  .text-wrapper-78 {
    font-size: 16px !important;
    text-align: center;
  }

  /* Testimonial */
  .testimonial-card {
    flex-direction: column !important;
    padding: 0 !important;
    position: relative !important;
  }

  .rectangle-4,
  .rectangle-5 {
    display: none !important;
  }

  .frame-12 {
    position: static !important;
    width: 100% !important;
    gap: 24px !important;
  }

  .frame-13 {
    height: auto !important;
    padding: 32px 24px !important;
  }

  .frame-14 {
    width: 100% !important;
    gap: 24px !important;
  }

  /* Footer */
  .FOOTER {
    padding: 40px 20px !important;
    width: 100% !important;
  }

  .logo-nav {
    flex-direction: column !important;
    gap: 24px !important;
    align-items: flex-start;
  }

  .nav {
    flex-direction: column !important;
    gap: 16px !important;
    align-items: flex-start;
    text-align: left;
  }

  .footer-terms {
    width: 100% !important;
    align-items: flex-start !important;
  }

  .text-wrapper-23 {
    text-align: left !important;
  }

  .bottom-CTA-banner {
    padding: 60px 20px !important;
    background-image: url('../img/Bottom-CTA-Banner-M.png') !important;
  }

  .text-wrapper-21 {
    font-size: 32px !important;
    text-align: center;
  }

  /* Lightbox Mobile Adjustments */
  .lightbox-prev,
  .lightbox-next {
    padding: 15px 20px;
    font-size: 32px;
  }

  .lightbox-prev {
    left: 10px;
  }

  .lightbox-next {
    right: 10px;
  }

  .lightbox-close {
    top: 10px;
    right: 10px;
    font-size: 36px;
  }

  .lightbox-counter {
    bottom: 20px;
    font-size: 14px;
    padding: 8px 16px;
  }
}

/* Small Mobile (below 480px) */
@media (max-width: 480px) {
  .home .phone,
  .phone-5,
  .phone-6 {
    display: none !important;
  }

  .home .header-bar,
  .header-bar-4,
  .header-bar-5 {
    height: 84px !important;
    padding: 12px 12px !important;
  }

  .home .header-container,
  .header-container-5,
  .header-container-6 {
    align-items: center;
    justify-content: space-between;
    padding: 0 12px !important;
    width: 100% !important;
  }

  .home .rectangle,
  .rectangle-15,
  .rectangle-18 {
    width: 220px !important;
    height: 60px !important;
    max-width: none !important;
    object-fit: contain !important;
  }

  .stage .frame-3 h1,
  .trusted-family-owned {
    font-size: 28px !important;
  }

  .text-wrapper-6,
  .text-wrapper-7,
  .text-wrapper-12,
  .text-wrapper-13,
  .text-wrapper-14,
  .text-wrapper-15 {
    font-size: 24px !important;
  }

  .home .call-today-for-a,
  .call-today-for-a-5,
  .call-today-for-a-6 {
    font-size: 12px;
  }
}

/* Wide Desktop Layouts (wider than 1352px) */
@media (min-width: 1353px) {
  /* Prevent horizontal overflow on body only */
  body {
    overflow-x: clip;
  }
  
  /* Container for centering content - use clip instead of hidden to preserve sticky */
  .home {
    align-items: center;
    overflow-x: clip;
  }
  
  /* Maintain sticky positioning for Why Choose Us */
  .why-choose-us .copy {
    position: sticky !important;
    top: 150px !important;
  }
  
  /* Fix header bar centering - keep content at 1352px max width */
  .home .header-bar {
    padding-left: calc((100vw - 1352px) / 2);
    padding-right: calc((100vw - 1352px) / 2);
  }
  
  .home .header-container {
    gap: 460px;
  }
  
  /* Stage: Background fills full width, content positioned from calculated padding */
  .home .stage {
    padding-left: calc((100vw - 1352px) / 2 + 80px);
    padding-right: calc((100vw - 1352px) / 2 + 80px);
  }
  
  /* Services section (group-wrapper): Grey background fills viewport */
  .home .group-wrapper {
    padding-left: calc((100vw - 1352px) / 2 + 80px);
    padding-right: calc((100vw - 1352px) / 2 + 80px);
  }
  
  .home .group-4 {
    width: 1352px;
    max-width: 1352px;
  }
  
  /* Why Choose Us section: Grey background fills viewport - no overflow hidden */
  .home .why-choose-us {
    padding-left: calc((100vw - 1352px) / 2 + 80px);
    padding-right: calc((100vw - 1352px) / 2 + 80px);
    overflow-x: visible;
  }
  
  /* Footer CTA Banner: Background fills viewport */
  .home .bottom-CTA-banner {
    padding-left: calc((100vw - 1352px) / 2 + 110px);
    padding-right: calc((100vw - 1352px) / 2 + 110px);
  }
  
  /* Footer: Dark background fills viewport */
  .home .FOOTER {
    width: 100% !important;
    max-width: 100%;
    padding-left: calc((100vw - 1352px) / 2 + 80px);
    padding-right: calc((100vw - 1352px) / 2 + 80px);
    overflow-x: hidden;
  }
  
  .home .logo-nav {
    width: 1352px;
    max-width: 1352px;
  }
  
  .home .footer-terms {
    width: 1352px;
    max-width: 1352px;
  }
  
  .home .footer-stuff {
    overflow-x: hidden;
  }
}

/* Print Styles */
@media print {
  .header,
  .footer,
  .lightbox {
    display: none;
  }
}
