/* Responsive enhancements without altering existing layout structure */

/* Media elements scale */
img, video, canvas, svg { max-width: 100%; height: auto; }
iframe, embed { max-width: 100%; }

/* Tables: allow horizontal scroll on small screens (public pages) */
table { width: 100%; max-width: 100%; }
@media (max-width: 768px) {
  table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* Typography scaling */
:root {
  --fs-base: 1rem;
  --fs-h1-lg: 3rem;
  --fs-h1-md: 2.5rem;
  --fs-h1-sm: 2rem;
}
body { font-size: var(--fs-base); }
@media (max-width: 992px) { body { font-size: 0.98rem; } }
@media (max-width: 576px) { body { font-size: 0.95rem; } }

/* Header */
.navbar-brand { font-size: 22px; }
@media (max-width: 576px) { .navbar-brand { font-size: 18px; } }
.custom_nav-container .navbar-nav .nav-link { white-space: nowrap; }
@media (max-width: 992px) { .custom_nav-container .navbar-nav .nav-link { white-space: normal; } }

/* Slider */
.slider_section .detail-box h1 { font-size: var(--fs-h1-lg); }
@media (max-width: 992px) { .slider_section .detail-box h1 { font-size: var(--fs-h1-md); } }
@media (max-width: 420px) { .slider_section .detail-box h1 { font-size: var(--fs-h1-sm); } }
.slider_section .detail-box p { line-height: 1.5; }
.slider_section .btn-box .btn1 { display: inline-block; }
@media (max-width: 576px) { .slider_section .btn-box .btn1 { display: block; width: 100%; text-align: center; } }

/* Product carousel */
.product_section .product_container { margin: 0 15px; }
@media (min-width: 768px) { .product_section .product_container { margin: 0 30px; } }
@media (min-width: 992px) { .product_section .product_container { margin: 0 75px; } }
.product_section .box .img-box img { width: 100%; height: auto; max-width: 260px; }
@media (max-width: 576px) { .product_section .box { margin: 0 5px; } }

/* Ensure carousel arrows visible and tappable on mobile */
@media (max-width: 992px) {
  .product_section .owl-carousel { position: relative; }
  .product_section .owl-carousel .owl-nav {
    position: static; /* place arrows below on mobile */
    display: flex; justify-content: center; gap: 12px;
    padding: 0; margin-top: 16px; z-index: 3; pointer-events: none;
  }
  .product_section .owl-carousel .owl-nav button.owl-prev,
  .product_section .owl-carousel .owl-nav button.owl-next {
    position: relative; pointer-events: auto;
    width: 44px; height: 44px; font-size: 20px;
  }
}
@media (max-width: 576px) {
  .product_section .owl-carousel .owl-nav { padding: 0; }
  .product_section .owl-carousel .owl-nav button.owl-prev,
  .product_section .owl-carousel .owl-nav button.owl-next { width: 48px; height: 48px; font-size: 22px; }
}

/* Services carousel: keep arrows centered below on all sizes */
.product_section .owl-carousel .owl-nav {
  position: absolute !important; /* override default absolute to our placement */
  top: auto !important;
  bottom: -38px !important; /* place below the carousel */
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  transform: none !important;
  display: flex !important;
  flex-direction: row !important;
  justify-content: center !important;
  gap: 12px;
  margin-top: 0 !important;
  z-index: 3;
}
.product_section .owl-carousel .owl-nav button.owl-prev,
.product_section .owl-carousel .owl-nav button.owl-next {
  background-color: #0e3746;
  color: #ffffff;
}
.product_section .owl-carousel .owl-nav button.owl-prev:hover,
.product_section .owl-carousel .owl-nav button.owl-next:hover {
  background-color: #be2623;
}

/* Mobile banner: responsive height and fluid image (phones) */
@media (max-width: 768px) {
  .hero_area {
    height: auto;
    min-height: auto !important;
    padding: 20px; /* evita colapso de conteúdo */
  }

  .hero_area .hero_bg_box img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block;
  }

  .hero_area img {
    max-width: 100%;
    height: auto;
    display: block;
  }
}

/* About section */
.about_section .detail-box { padding: 20px; }
@media (max-width: 992px) { .about_section .detail-box { margin-top: 20px; } }

/* Footer */
.footer_section .footer-info-box { gap: 10px; }
.footer_section .social_box a { margin-left: 8px; }

/* Layout spacing */
.layout_padding { padding: 60px 0; }
.layout_padding-top { padding-top: 60px; }
.layout_padding-bottom { padding-bottom: 60px; }
@media (min-width: 992px) {
  .layout_padding { padding: 90px 0; }
  .layout_padding-top { padding-top: 90px; }
  .layout_padding-bottom { padding-bottom: 90px; }
}