/* Camada responsiva compartilhada entre a página inicial enviada e as demais páginas. */
html {
  overflow-x: clip;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-width: 320px;
  overflow-x: clip;
}

img,
video,
iframe,
svg {
  max-width: 100%;
}

main,
section,
article,
.container,
.cabin-card,
[data-user-home-card] {
  min-width: 0;
}

h1,
h2,
h3,
p,
a,
span {
  overflow-wrap: break-word;
}

/* Página inicial enviada pelo usuário. */
.Header-module__hBw1pG__container,
.Footer-module__S6Hkya__container,
.page-module___8aEwW__homeContainer {
  width: min(1200px, 100%);
}

.page-module___8aEwW__cabanaGrid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.piri-home-card-link,
.page-module___8aEwW__cardContent {
  min-width: 0;
}

.piri-home-detail-button,
.piri-home-whatsapp-button,
.page-module___8aEwW__viewAllButton {
  min-height: 46px;
}

.HeroCarousel-module__hy1Euq__carouselContainer {
  height: clamp(400px, 70svh, 820px);
}

@media (max-width: 1100px) {
  .page-module___8aEwW__cabanaGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .Header-module__hBw1pG__container,
  .Footer-module__S6Hkya__container {
    padding-inline: 20px;
  }
}

@media (max-width: 1020px) {
  .mobile-menu {
    max-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .mobile-menu.is-open {
    max-height: calc(100dvh - 80px);
  }
}

@media (max-width: 768px) {
  body {
    min-width: 280px;
  }

  .Header-module__hBw1pG__header {
    height: 70px;
  }

  .Header-module__hBw1pG__container {
    height: 70px;
    padding-inline: 14px;
  }

  .Header-module__hBw1pG__logoImage {
    height: 46px;
    max-width: 145px;
  }

  .Header-module__hBw1pG__nav {
    top: 70px;
    max-height: calc(100dvh - 70px);
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  .Header-module__hBw1pG__navLink {
    min-height: 46px;
  }

  .HeroCarousel-module__hy1Euq__carouselContainer {
    height: clamp(260px, 48svh, 420px);
    min-height: 260px;
    max-height: 420px;
  }

  .page-module___8aEwW__homeContainer {
    padding-inline: 14px;
  }

  .page-module___8aEwW__cabanaGrid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .page-module___8aEwW__cardImage {
    height: auto;
    aspect-ratio: 16 / 10;
  }

  .page-module___8aEwW__sectionTitle {
    font-size: clamp(25px, 8vw, 34px);
    line-height: 1.15;
  }

  .page-module___8aEwW__sectionSubtitle,
  .page-module___8aEwW__introText,
  .page-module___8aEwW__seoContent p {
    font-size: 16px;
  }

  .piri-home-card-actions {
    grid-template-columns: 1fr 1fr;
  }

  .piri-home-whatsapp-float,
  .whatsapp-float {
    bottom: max(16px, env(safe-area-inset-bottom));
    right: max(16px, env(safe-area-inset-right));
  }

  .home-hero {
    min-height: calc(100svh - 70px);
  }

  .mobile-menu.is-open {
    max-height: calc(100dvh - 70px);
  }

  .detail-header h1,
  .page-hero h1 {
    font-size: clamp(36px, 11vw, 56px);
  }

  .booking-card {
    padding: 24px;
  }

  .lightbox figcaption {
    gap: 12px;
  }
}

@media (max-width: 520px) {
  .container {
    width: min(100% - 24px, 1180px);
  }

  .HeroCarousel-module__hy1Euq__carouselContainer {
    height: clamp(220px, 42svh, 330px);
    min-height: 220px;
    max-height: 330px;
  }

  .HeroCarousel-module__hy1Euq__carouselImage {
    object-position: center 72% !important;
  }

  .page-module___8aEwW__homeContainer {
    padding-inline: 12px;
  }

  .page-module___8aEwW__seoIntro,
  .page-module___8aEwW__seoSection {
    padding-inline: 12px;
  }

  .page-module___8aEwW__amenitiesGrid {
    grid-template-columns: 1fr 1fr;
  }

  .page-module___8aEwW__amenityItem {
    min-height: 130px;
  }

  .piri-home-card-actions {
    grid-template-columns: 1fr;
    padding: 0 16px 16px;
  }

  .piri-home-detail-button,
  .piri-home-whatsapp-button,
  .page-module___8aEwW__viewAllButton,
  .booking-card .button {
    width: 100%;
  }

  .page-module___8aEwW__viewAllButton {
    white-space: normal;
  }

  .hero-content {
    padding-block: 92px 76px;
  }

  .home-hero h1 {
    font-size: clamp(38px, 13vw, 54px);
  }

  .section,
  .full-gallery,
  .related {
    padding-block: 64px;
  }

  .cabin-card-body {
    padding: 21px 18px 18px;
  }

  .card-footer {
    gap: 14px;
  }

  .detail-header {
    padding-top: 34px;
  }

  .mosaic {
    grid-template-rows: 220px 105px;
  }

  .stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 12px;
  }

  .detail-block {
    padding-block: 30px;
  }

  .photo-grid,
  .compact-photo-grid {
    gap: 6px;
  }

  .gallery-section {
    padding-block: 46px;
  }

  .gallery-section h2 {
    font-size: 32px;
  }

  .legal-page {
    padding-block: 55px 75px;
  }

  .footer-grid {
    padding-block: 44px;
  }

  .lightbox {
    padding-inline: 10px;
  }

  .lightbox figcaption {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 360px) {
  .Header-module__hBw1pG__container,
  .Footer-module__S6Hkya__container {
    padding-inline: 10px;
  }

  .page-module___8aEwW__amenitiesGrid,
  .stats {
    grid-template-columns: 1fr;
  }

  .piri-hero-control {
    height: 36px;
    width: 36px;
  }

  .piri-hero-prev {
    left: 7px;
  }

  .piri-hero-next {
    right: 7px;
  }
}

@media (orientation: landscape) and (max-height: 560px) {
  .HeroCarousel-module__hy1Euq__carouselContainer {
    height: calc(100svh - 56px);
    min-height: 180px;
    max-height: 360px;
  }

  .home-hero {
    min-height: max(410px, calc(100svh - 56px));
  }

  .hero-content {
    padding-block: 60px 52px;
  }
}

@media (hover: none) {
  .cabin-card:hover,
  .page-module___8aEwW__cabanaCard:hover,
  .page-module___8aEwW__amenityItem:hover {
    transform: none;
  }
}
