/* Post-build fidelity fixes */
html, body { overflow-x: hidden; }
.home-welcome-box,
.home-welcome-banner-2-box,
.home-carousel-map-box { overflow: hidden; }
.footer-disclaimer-content { width: 100% !important; max-width: none !important; }
.footer-contact-item a[href^="tel:"],
.footer-contact-item-1 a[href^="tel:"] { color: #fff !important; text-decoration: none !important; }
.footer-disclaimer-content p { max-width: none !important; }
.footer { padding-bottom: 0 !important; }
.footer-copyright-box { margin-top: 0 !important; margin-bottom: 0 !important; }
body { padding-bottom: 0 !important; }

/* Map/carousel photos must show the whole frame, not a fixed crop */
.carousel-map-item-left img,
.home-carousel-map-box img { height: auto !important; object-fit: contain !important; }
.gallery img { height: auto; }

@media (max-width: 991px) {
  .footer .col-lg-4,
  .footer .col-lg-8 { flex: 0 0 100%; max-width: 100%; }
}
@media (max-width: 767px) {
  /* Header: smaller hamburger + logo that fits the 393px viewport */
  .navbar .row { position: relative; }
  .navbar .row > div:first-child { justify-content: flex-start !important; padding-left: 16px !important; }
  .navbar .row > div:nth-child(2) { position: absolute; left: 50%; transform: translateX(-50%); width: auto !important; max-width: none !important; height: 80px; }
  .navbar-toggler { padding: 2px 4px !important; width: auto !important; height: auto !important; }
  .navbar-toggler-icon,
  .navbar-menu-icon { width: 28px !important; height: 28px !important; background-size: 28px 28px !important; }
  .nav-logo { max-width: 190px !important; width: 46vw !important; height: auto !important; overflow: hidden; }
  .menu-logo { width: 100% !important; height: auto !important; max-width: 100% !important; transform: none !important; }

  /* Offcanvas menu: compact, centred, all items visible */
  .offcanvas-body { display: flex; flex-direction: column; justify-content: center; padding: 20px 24px 30px !important; }
  .menu-box { width: 100%; flex: 0 0 auto !important; height: auto !important; justify-content: center !important; gap: 2px !important; }
  .menu-item { flex: 0 0 auto !important; height: auto !important; margin: 2px 0 !important; }
  .menu-item-text { font-size: clamp(18px, 5vw, 21px) !important; line-height: 1.35 !important; padding: 3px 0 !important; }
  .menu-lang { margin-top: 20px !important; }
  .menu-lang .row { display: table !important; width: 240px !important; max-width: 80% !important; table-layout: fixed !important; margin: 0 auto !important; }
  .menu-lang-text { display: table-cell !important; float: none !important; width: 33.333% !important; max-width: none !important; padding: 0 !important; text-align: center !important; vertical-align: middle !important; font-size: clamp(16px, 4.6vw, 20px) !important; line-height: 1.4 !important; }
  .menu-lang-text a { display: inline-block !important; width: auto !important; text-align: center !important; }

  .footer .container { padding: 24px 16px 0 !important; }
  .footer-disclaimer-content { width: 100% !important; font-size: 12px; line-height: 1.55; }
  .footer-contact-address { text-align: center !important; font-size: clamp(13px, 3.6vw, 15px) !important; line-height: 1.5 !important; }
  .footer .footer-contact-header { margin-top: 12px !important; }
  .home-carousel-map-box { height: auto !important; overflow: hidden; }
  .home-carousel-map-box .row,
  .carousel-map-item-left,
  .carousel-map-description,
  .carousel-map-description .row,
  .carousel-map-description-item { width: 100% !important; max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
  .home-carousel-map-box svg.wave,
  .home-welcome-banner-2-box svg.wave { max-width: 100%; overflow: hidden; }
  .footer-contact-header-itme p { margin-bottom: 4px !important; font-size: clamp(13px, 3.6vw, 15px) !important; line-height: 1.3 !important; white-space: nowrap; }
  .footer-contact-item,
  .footer-contact-item-1 { display: flex; align-items: center; justify-content: center; padding: 4px 0 !important; font-size: 14px !important; }
  .footer-contact-item span,
  .footer-contact-item-1 span { font-size: clamp(13px, 3.6vw, 15px) !important; line-height: 1.4 !important; }
  .footer-item-image,
  .footer-item-image img { width: 16px !important; height: 16px !important; }
  .footer-contact-address { padding-bottom: 6px; overflow-wrap: anywhere; }
  .footer-contact-item a[href^="tel:"],
  .footer-contact-item-1 a[href^="tel:"] { color: inherit !important; text-decoration: none !important; }
  .offcanvas .btn-close-lg { width: 24px !important; height: 24px !important; background-size: 18px 18px !important; }
  .footer-disclaimer-header { font-size: 18px !important; margin: 24px 0 8px !important; }
  .home-welcome-banner-1-title { font-size: clamp(24px, 7vw, 30px) !important; line-height: 1.2 !important; }
  .home-welcome-banner-1-text { font-size: clamp(20px, 5.6vw, 26px) !important; line-height: 1.25 !important; }
  .container-welcome { padding-left: 16px !important; padding-right: 16px !important; }
}

/* Floor-plan carousel: keep the plan's aspect ratio instead of stretching/cropping it. */
#carouselExampleIndicators { padding-left: 5% !important; padding-right: 5% !important; }
#image-original,
.original-img-1,
#carouselExampleIndicators .carousel-inner,
#carouselExampleIndicators .carousel-item { height: auto !important; }
#image-original img,
.os-image { width: 100% !important; height: auto !important; object-fit: contain !important; }
