/* 
--------------------------------------------- 
Monolitico & Piscinas Carousel Style 
--------------------------------------------- 
*/ 
.owl-monolitico .item, .owl-piscinas .item { 
  position: relative; 
  overflow: hidden; 
  border-radius: 10px; 
  background-color: #f7f7f7; /* Neutral background for the frame */ 
} 

.owl-monolitico .item .left-image, .owl-piscinas .item .left-image { 
  height: 500px; /* Fixed height for consistency */ 
  width: 100%; 
  display: flex; 
  justify-content: center; 
  align-items: center; 
} 

.owl-monolitico .item img, .owl-piscinas .item img { 
  width: 100%; 
  height: 100%; 
  object-fit: cover; /* Fill the frame for uniform size */ 
  object-position: center; /* Center the image */ 
  border-radius: 10px; 
} 

.owl-monolitico .owl-nav, .owl-piscinas .owl-nav { 
  position: absolute; 
  top: 50%; 
  width: 100%; 
  transform: translateY(-50%); 
  pointer-events: none; 
} 

.owl-monolitico .owl-nav .owl-prev, 
.owl-monolitico .owl-nav .owl-next,
.owl-piscinas .owl-nav .owl-prev, 
.owl-piscinas .owl-nav .owl-next { 
  pointer-events: auto; 
  position: absolute; 
  outline: none; 
} 

.owl-monolitico .owl-nav .owl-prev, .owl-piscinas .owl-nav .owl-prev { 
  left: 10px; 
} 

.owl-monolitico .owl-nav .owl-next, .owl-piscinas .owl-nav .owl-next { 
  right: 10px; 
} 

.owl-monolitico .owl-nav .owl-prev i, 
.owl-monolitico .owl-nav .owl-next i,
.owl-piscinas .owl-nav .owl-prev i, 
.owl-piscinas .owl-nav .owl-next i { 
  width: 50px; 
  height: 50px; 
  line-height: 50px; 
  font-size: 24px; 
  display: inline-block; 
  color: #fff !important; 
  background-color: rgba(11, 115, 183, 0.7) !important; /* Brand Blue Transparent */ 
  border-radius: 50%; 
  text-align: center; 
  transition: all .3s; 
} 

.owl-monolitico .owl-nav .owl-prev i:hover, 
.owl-monolitico .owl-nav .owl-next i:hover,
.owl-piscinas .owl-nav .owl-prev i:hover, 
.owl-piscinas .owl-nav .owl-next i:hover { 
  background-color: rgba(11, 115, 183, 1) !important; /* Brand Blue Solid */ 
} 

/* Hide dots if arrows are sufficient, or style them if needed */ 
.owl-monolitico .owl-dots, .owl-piscinas .owl-dots { 
  text-align: center; 
  margin-top: 20px; 
} 

.owl-monolitico .owl-dots .owl-dot, .owl-piscinas .owl-dots .owl-dot { 
  width: 10px; 
  height: 10px; 
  background-color: #ddd; 
  border-radius: 50%; 
  margin: 0 5px; 
  display: inline-block; 
  transition: all 0.3s; 
} 

.owl-monolitico .owl-dots .owl-dot.active, .owl-piscinas .owl-dots .owl-dot.active { 
  background-color: #0B73B7; 
} 

/* Responsive adjustments */ 
@media (max-width: 767px) { 
  .owl-monolitico .item .left-image, .owl-piscinas .item .left-image { 
    height: 300px; /* Smaller height for mobile */ 
  } 
} 

/* 
--------------------------------------------- 
Color Palette Style 
--------------------------------------------- 
*/ 
.colors-scroll-hint {
  display: none;
}

.color-circle { 
  cursor: pointer; 
  position: relative; 
  overflow: hidden; 
} 

.color-circle:hover { 
  transform: scale(1.2); 
  box-shadow: 0 8px 16px rgba(0,0,0,0.2) !important; 
} 

/* Future proofing for images inside circles */ 
.color-circle img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
    border-radius: 50%; 
} 

/* 
--------------------------------------------- 
Image Comparison Slider Style 
--------------------------------------------- 
*/ 
.comparison-section { 
    position: relative; 
} 

.img-comp-container { 
  position: relative; 
  height: 500px; /* Should match the wrapper */ 
  width: 100%; 
  overflow: hidden; /* Restored to clip content */ 
} 

.img-comp-img { 
  position: absolute; 
  width: 100%; 
  height: 100%; 
  overflow: hidden; 
  border-radius: 15px; /* Added here since wrapper no longer clips */ 
} 

.img-comp-img img { 
  display: block; 
  vertical-align: middle; 
  width: 100%; 
  height: 100%; 
  object-fit: cover; 
} 

.img-comp-slider { 
  position: absolute; 
  z-index: 9; 
  cursor: ew-resize; 
  /*set the appearance of the slider:*/ 
  width: 36px; 
  height: 36px; 
  background-color: transparent; 
  opacity: 1; 
  border-radius: 50%; 
  top: 50%; 
  left: 50%; 
  transform: translate(-50%, -50%); 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  border: 2px solid white; 
  box-shadow: 0 0 5px rgba(0,0,0,0.2); 
} 

.img-comp-slider::before { 
    /* Unicode arrows: Left Triangle (25C0) and Right Triangle (25B6) */ 
    content: '\25C0 \25B6'; 
    color: white; 
    font-size: 12px; 
    font-weight: 900; /* Bold */ 
    letter-spacing: -1px; /* Bring arrows closer */ 
} 

/* Vertical line for the slider (now handled via JS-injected div) */ 
.slider-line { 
    position: absolute; 
    width: 3px; 
    /* height set via JS */ 
    background-color: white; 
    top: 50%; 
    left: 50%; 
    transform: translate(-50%, -50%); 
    z-index: -1; 
    box-shadow: 0 0 5px rgba(0,0,0,0.2); 
} 

.label-before, .label-after { 
    position: absolute; 
    top: 20px; 
    padding: 5px 10px; 
    background: rgba(0,0,0,0.5); 
    color: white; 
    font-weight: bold; 
    border-radius: 5px; 
    z-index: 10; 
} 

.label-after { 
    right: 20px; 
} 

.label-before { 
    left: 20px; 
} 

/* 
--------------------------------------------- 
Wave Divider Style 
--------------------------------------------- 
*/ 
.wave-divider { 
    position: absolute; 
    bottom: -1px; /* Overlap slightly to prevent sub-pixel gaps */ 
    left: 0; 
    width: 100%; 
    overflow: hidden; 
    line-height: 0; 
    z-index: 2; 
    pointer-events: none; /* Let clicks pass through */ 
} 

.wave-divider svg { 
    position: relative; 
    display: block; 
    width: calc(100% + 1.3px); 
    height: 50px; 
} 

@media (min-width: 768px) { 
    .wave-divider svg { 
        height: 120px; 
    } 
} 

.wave-divider .shape-fill { 
    fill: #FFFFFF; 
} 

.wave-white .shape-fill { fill: #FFFFFF; } 
.wave-grey .shape-fill { fill: #f7f7f7; } 
.wave-dark .shape-fill { fill: #1e1e1e; } 

.section-connected { 
    margin-top: 0 !important; 
    padding-top: 20px; /* Optional: adjustment */ 
}

.owl-monolitico .left-image {
    height: 420px;
    border-radius: 12px;
    overflow: hidden;
}

.owl-monolitico .left-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 
--------------------------------------------- 
Mobile Optimizations (Banner & Text) 
--------------------------------------------- 
*/
@media (max-width: 767px) {
  /* Banner: Reset any padding causing white gaps */
  .main-banner .item {
    height: 100vh !important; /* Force full viewport height */
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    background-size: cover;
    background-position: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-end; /* Align content bottom */
    margin-bottom: 0px; 
  }

  .main-banner {
      margin-bottom: 0px;
  }
  
  /* WhatsApp button visibility and positioning */
  .whatsapp-float {
    width: 35px !important;
    height: 35px !important;
    top: 70px !important; /* Below header */
    bottom: auto !important;
    right: 10px !important;
    font-size: 18px !important;
    display: flex;
    opacity: 0; /* Start hidden */
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
  }
  
  /* Show WhatsApp button when header has background (scrolled) */
  body:has(.background-header) .whatsapp-float,
  .whatsapp-visible {
    opacity: 1 !important;
    visibility: visible !important;
  }

  /* ... rest of existing mobile styles ... */
  /* Removing forced center/left to see if it fixes "desalinhado" complaint. 
     The template default is usually center for headings. */
  
  .section-heading {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
    padding-left: 8px;
    padding-right: 8px;
  }

  .section-heading h2,
  .section-heading h6 {
    text-align: center !important;
    margin-left: auto;
    margin-right: auto;
  }
  
  /* Ensure Gallery (Owl Monolitico) doesn't cut off */
  .owl-monolitico .item {
      margin-bottom: 20px;
  }

  .owl-monolitico .left-image {
      height: 280px;
  }

  .featured.section {
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .featured.section .section-heading {
    margin-top: 0;
  }

  .info-table-horizontal {
    margin-bottom: 5px !important;
  }

  .info-table-horizontal ul {
    margin-bottom: 0;
  }

  .colors-scroll {
    position: relative;
  }

  .colors-row {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, auto);
    grid-auto-columns: 140px;
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 6px;
    /* Pull to edges to prevent cutting and look better */
    margin-left: -15px;
    margin-right: -15px;
    padding-left: 15px; 
    padding-right: 15px;
    scroll-snap-type: x mandatory;
    width: auto; /* Let it expand */
  }

  .colors-row > [class*="col-"] {
    /* Reset Bootstrap column styles to avoid conflicts with Grid */
    width: 100% !important; 
    max-width: none !important;
    flex: none !important;
    
    padding-left: 0;
    padding-right: 0;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
  }

  .colors-row > [class*="col-"] .color-circle {
    margin: 0 !important;
  }

  .colors-row > [class*="col-"] p {
    text-align: center !important;
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .colors-scroll-hint {
    display: block;
    text-align: right;
    font-size: 18px;
    color: #8a8a8a;
    padding-right: 6px;
    margin-top: 2px;
  }

  .comparison-section {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
  }

  .comparison-section h2 {
    margin-top: 0;
    margin-bottom: 6px;
  }

  .comparison-section p {
    margin-bottom: 10px;
  }

  .faq-section {
    padding-top: 5px !important;
  }

  .faq-section .section-heading {
    margin-bottom: 8px;
  }

  .video-content {
    padding-bottom: 5px;
  }

  .video-content .text-center.mt-4 {
    margin-top: 8px !important;
  }
}

/* 
--------------------------------------------- 
Floating WhatsApp Button 
--------------------------------------------- 
*/
.whatsapp-float {
    position: fixed;
    width: 60px;
    height: 60px;
    bottom: 40px;
    right: 40px;
    background-color: #25d366;
    color: #FFF;
    border-radius: 50px;
    text-align: center;
    font-size: 30px;
    box-shadow: 2px 2px 3px #999;
    z-index: 1000;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: all 0.3s ease;
    /* display: none; Removed to allow visibility toggle */
}

.whatsapp-float:hover {
    background-color: #128C7E;
    color: #FFF;
    transform: scale(1.1);
}

.my-float {
    margin-top: 0px; 
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}

/* Mobile Adjustment for Float */
@media (max-width: 767px) {
    /* Styles moved to main mobile block above to consolidate */
}
