/* Property presentation: heading, related cards, then canonical responsive card rules. */
/* Final property-section heading fix: exact markup selector. */
#alojamento .property-section-head,
#alojamento .property-section-head-mobile,
#alojamento .mobile-featured-title-row{
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}

#alojamento .mobile-featured-title-row{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:14px!important;
  margin:0 0 16px!important;
  padding:0!important;
}

#alojamento .mobile-featured-title-row > h2{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  float:none!important;
  flex:1 1 auto!important;
  min-width:0!important;
  max-width:calc(100% - 132px)!important;
  margin:0!important;
  padding:0!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:none!important;
  background-image:none!important;
  opacity:1!important;
  text-shadow:0 2px 12px rgba(0,0,0,.34)!important;
  font-weight:800!important;
  line-height:1.08!important;
  letter-spacing:.10em!important;
  text-align:left!important;
  z-index:1!important;
}

#alojamento .mobile-featured-title-row > .mobile-view-all{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  flex:0 0 auto!important;
  margin:0!important;
  z-index:2!important;
}

/* Desktop only: larger, easier-to-read property card typography + room stats. */
@media (min-width:1101px) and (hover:hover) and (pointer:fine), (min-width:1367px){
  #alojamento .property-card-heading h3{font-size:1.18rem!important;line-height:1.18!important}
  #alojamento .meta{font-size:.88rem!important;line-height:1.3!important}
  #alojamento .property-card-description{font-size:.94rem!important;line-height:1.5!important}
  #alojamento .property-description-toggle,#alojamento .property-card-link{font-size:.78rem!important}
  #alojamento .price{font-size:.94rem!important;line-height:1.25!important}

  /* Property stats are intentionally global on desktop so the homepage cards
     and the "Ver todas" property panel use exactly the same readable sizing. */
  .property-room-stats{
    gap:18px!important;
    padding-top:14px!important;
    margin-top:14px!important;
  }
  .property-room-stat{
    gap:8px!important;
    min-height:68px!important;
  }
  .property-room-icon{
    display:inline-flex!important;
    width:30px!important;
    height:30px!important;
    flex:0 0 30px!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .property-room-icon svg{
    display:block!important;
    width:30px!important;
    height:30px!important;
    stroke-width:2.1!important;
  }
  .property-room-stat strong{
    font-size:1.16rem!important;
    line-height:1!important;
    font-weight:800!important;
  }
  .property-room-stat small{
    font-size:.90rem!important;
    line-height:1.15!important;
    font-weight:700!important;
  }

  /* Related properties: keep all CTA buttons perfectly aligned. */
  .property-related .property-grid{
    align-items:stretch!important;
  }
  .property-related .property-grid > .card{
    display:flex!important;
    height:100%!important;
  }
  .property-related .property-grid > .card > a{
    display:flex!important;
    flex:1 1 auto!important;
    flex-direction:column!important;
    width:100%!important;
    height:100%!important;
  }
  .property-related .property-grid .card-body{
    display:flex!important;
    flex:1 1 auto!important;
    flex-direction:column!important;
    width:100%!important;
    box-sizing:border-box!important;
  }
  .property-related .property-grid .price{
    margin-bottom:12px!important;
  }
  .property-related .property-grid .property-card-link{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    margin-top:auto!important;
    box-sizing:border-box!important;
  }
}

@media (max-width:720px){
  #alojamento .mobile-featured-title-row{gap:8px!important;margin-bottom:10px!important;align-items:center!important}
  #alojamento .mobile-featured-title-row > h2{max-width:calc(100% - 102px)!important;font-size:clamp(.62rem,2.75vw,.76rem)!important;line-height:1.05!important;letter-spacing:.065em!important}
  #alojamento .property-carousel-shell{overflow:visible!important}
  #alojamento .property-carousel{display:flex!important;flex-wrap:nowrap!important;gap:8px!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x mandatory!important;scroll-behavior:smooth!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-x:contain!important;touch-action:pan-x pan-y!important;scrollbar-width:none!important}
  #alojamento .property-carousel::-webkit-scrollbar{display:none!important}
  #alojamento .property-carousel > .property-card,#alojamento .property-carousel > .card{flex:0 0 calc((100% - 8px)/2)!important;min-width:calc((100% - 8px)/2)!important;max-width:calc((100% - 8px)/2)!important;scroll-snap-align:start!important;scroll-snap-stop:always!important}
  #alojamento .property-card-description-wrap{display:block!important;margin-top:8px!important}
  #alojamento .property-card-description{display:-webkit-box!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important;overflow:hidden!important;margin:0!important;font-size:.68rem!important;line-height:1.35!important;color:rgba(247,241,232,.78)!important}
  #alojamento .property-card-description-wrap.is-expanded .property-card-description{display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important}
  #alojamento .property-description-toggle{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:30px!important;margin-top:7px!important;padding:6px 10px!important;border:1px solid rgba(218,181,103,.56)!important;border-radius:999px!important;background:rgba(164,119,58,.16)!important;color:#f6e4c5!important;font-size:.62rem!important;font-weight:900!important;line-height:1!important;text-transform:uppercase!important;box-shadow:none!important}
  #alojamento .property-card-heading h3{font-size:.66rem!important}
  #alojamento .meta{font-size:.54rem!important}
  #alojamento .price{font-size:.58rem!important}
}

/* Mobile landscape: keep the same pill/button treatment as the other versions. */
@media (min-width:721px) and (max-width:1366px) and (hover:none) and (pointer:coarse) and (orientation:landscape){
  #alojamento .property-description-toggle{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:34px!important;
    margin-top:9px!important;
    padding:7px 13px!important;
    border:1px solid rgba(218,181,103,.56)!important;
    border-radius:999px!important;
    background:rgba(164,119,58,.16)!important;
    color:#f6e4c5!important;
    font-size:.70rem!important;
    font-weight:900!important;
    line-height:1!important;
    text-transform:uppercase!important;
    text-decoration:none!important;
    box-shadow:none!important;
  }

  #alojamento .property-description-toggle:hover,
  #alojamento .property-description-toggle:focus-visible{
    background:rgba(164,119,58,.26)!important;
    border-color:rgba(230,198,137,.78)!important;
  }
}

/* Click-safety: no decorative layer may sit above property controls. */
#alojamento .property-carousel-shell::before,
#alojamento .property-carousel-shell::after,
#alojamento .property-carousel::before,
#alojamento .property-carousel::after,
#alojamento .property-card::before,
#alojamento .property-card::after,
#alojamento .card-body::before,
#alojamento .card-body::after{
  pointer-events:none!important;
}

#alojamento .property-card,
#alojamento .card-body,
#alojamento .property-card-description-wrap{
  position:relative!important;
}

#alojamento .property-description-toggle,
#alojamento .property-card-link{
  position:relative!important;
  z-index:50!important;
  pointer-events:auto!important;
  cursor:pointer!important;
}

/* Mobile navigation must always sit above the hero/brand layers. */
@media (max-width:1366px) and (hover:none) and (pointer:coarse){
  .v7-nav{
    z-index:10000!important;
    isolation:isolate!important;
  }

  .v7-nav-inner{
    position:relative!important;
    z-index:10001!important;
  }

  .v7-mobile-menu{
    position:absolute!important;
    z-index:10002!important;
    isolation:isolate!important;
  }

  .v7-mobile-menu[hidden]{
    display:none!important;
  }

  .v7-mobile-menu:not([hidden]){
    z-index:10002!important;
  }

  .v7-mobile-menu-toggle,
  .v7-lang,
  .v7-greeting{
    position:relative!important;
    z-index:10003!important;
  }

  .v7-hero,
  .v7-hero-inner,
  .sunhouse-horizontal-brand,
  .v7-copy{
    z-index:auto!important;
  }
}

/* SUN HOUSE — desktop property stats visibility fix
   Applies after the shared platform layer so desktop/web cards keep readable
   room / bathroom / guest icons and labels. Mobile remains untouched. */

@media (min-width:721px) and (pointer:fine), (min-width:1101px){
  .property-carousel .property-room-stats,
  .property-all-grid .property-room-stats{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:14px!important;
    margin-top:14px!important;
    padding-top:12px!important;
  }

  .property-carousel .property-room-stat,
  .property-all-grid .property-room-stat{
    grid-template-columns:auto auto!important;
    grid-template-rows:30px auto!important;
    column-gap:7px!important;
    row-gap:4px!important;
    min-height:54px!important;
    align-items:center!important;
  }

  .property-carousel .property-room-icon,
  .property-carousel .property-room-icon svg,
  .property-all-grid .property-room-icon,
  .property-all-grid .property-room-icon svg{
    width:28px!important;
    height:28px!important;
    min-width:28px!important;
    min-height:28px!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
    transform:none!important;
    stroke-width:2!important;
  }

  .property-carousel .property-room-stat strong,
  .property-all-grid .property-room-stat strong{
    min-height:28px!important;
    font-size:1.08rem!important;
    line-height:28px!important;
    font-weight:850!important;
  }

  .property-carousel .property-room-stat small,
  .property-all-grid .property-room-stat small{
    min-height:0!important;
    margin-top:3px!important;
    font-size:.80rem!important;
    line-height:1.18!important;
    font-weight:700!important;
    opacity:.9!important;
    white-space:normal!important;
  }
}

/* Property price: visual-only refinement. Keep the complete price on one line
   without changing the card, controls, spacing or responsive structure. */
.property-carousel .property-card .price,
.property-all-grid .property-card .price{
  white-space:nowrap!important;
  text-wrap:nowrap!important;
  overflow-wrap:normal!important;
  word-break:keep-all!important;
  font-family:inherit!important;
  font-style:normal!important;
  font-weight:650!important;
  letter-spacing:-.015em!important;
  line-height:1.15!important;
}

@media (max-width:1100px){
  .property-carousel .property-card .price,
  .property-all-grid .property-card .price{
    font-size:clamp(.82rem,2.15vw,1rem)!important;
  }
}

@media (max-width:720px){
  .property-carousel .property-card .price,
  .property-all-grid .property-card .price{
    font-size:clamp(.72rem,3.15vw,.94rem)!important;
    letter-spacing:-.02em!important;
  }
}

@media (max-width:359px){
  .property-carousel .property-card .price,
  .property-all-grid .property-card .price{
    font-size:clamp(.66rem,3vw,.78rem)!important;
  }
}

/* Phone portrait: two cards with side arrows centred outside their content. */
@media (max-width:720px) and (orientation:portrait){
  body:has(.v7-hero) #alojamento{padding-inline:0!important;}
  body:has(.v7-hero) #alojamento > .wrap{
    width:min(calc(100% - 24px),600px)!important;max-width:600px!important;
    margin-inline:auto!important;padding-inline:32px!important;
  }
  #alojamento .property-carousel-shell{
    position:relative!important;display:block!important;width:100%!important;
    overflow:visible!important;
  }
  #alojamento .property-carousel-shell > .property-carousel{
    grid-column:1/-1!important;grid-row:1!important;
    display:flex!important;gap:8px!important;
    width:100%!important;padding:0!important;
    overflow-x:auto!important;scroll-snap-type:x mandatory!important;
    scroll-padding-inline:0!important;
  }
  #alojamento .property-carousel > .property-card{
    flex:0 0 calc((100% - 8px)/2)!important;width:calc((100% - 8px)/2)!important;max-width:calc((100% - 8px)/2)!important;
    min-width:0!important;scroll-snap-align:start!important;
  }
  #alojamento .property-carousel-shell > .property-carousel-arrow{
    position:absolute!important;inset:auto!important;
    top:50%!important;transform:translateY(-50%)!important;
    width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;
    margin:0!important;padding:0!important;z-index:30!important;
    border:6px solid transparent!important;border-radius:50%!important;
    background:rgba(15,15,15,.82)!important;background-clip:padding-box!important;color:#f4dfaa!important;
    box-shadow:none!important;
  }
  #alojamento .property-carousel-shell > .property-carousel-arrow.is-prev{left:-42px!important;}
  #alojamento .property-carousel-shell > .property-carousel-arrow.is-next{right:-42px!important;}
  #alojamento .property-card .property-card-heading,
  #alojamento .property-card h3{
    height:auto!important;max-height:none!important;white-space:normal!important;
    overflow:visible!important;overflow-wrap:break-word!important;
    display:block!important;-webkit-line-clamp:unset!important;
  }
  #alojamento .property-card .photo{
    height:auto!important;min-height:0!important;aspect-ratio:16/10!important;
  }
  #alojamento .property-card .card-body{padding:12px 8px!important;}
  #alojamento .property-card h3{font-size:1rem!important;line-height:1.3!important;}
  #alojamento .property-card .meta,
  #alojamento .property-card-description{font-size:.875rem!important;line-height:1.45!important;}
  #alojamento .property-room-stat-copy strong,
  #alojamento .property-room-stat-copy small{font-size:.8125rem!important;line-height:1.3!important;}
  #alojamento .property-card .price{
    font-size:.875rem!important;line-height:1.35!important;white-space:normal!important;text-wrap:wrap!important;
  }
  #alojamento .property-card-link{
    min-height:44px!important;font-size:.875rem!important;line-height:1.3!important;white-space:normal!important;
  }
}


/* Property summaries: complete details live behind the single bottom action. */
#alojamento .property-carousel{align-items:stretch!important;}
#alojamento .property-card,
.property-all-grid .property-card{
  display:flex!important;flex-direction:column!important;
  height:auto!important;max-height:none!important;min-height:0!important;align-self:stretch!important;
}
#alojamento .property-card > .photo,
.property-all-grid .property-card > .photo{
  flex-shrink:0!important;aspect-ratio:16/10!important;
}
#alojamento .property-card > .card-body,
.property-all-grid .property-card > .card-body{
  display:flex!important;flex-direction:column!important;flex:1 1 auto!important;gap:0!important;justify-content:flex-start!important;
  height:auto!important;max-height:none!important;min-height:0!important;
}
#alojamento .property-card .property-card-heading,
#alojamento .property-card h3,
.property-all-grid .property-card .property-card-heading,
.property-all-grid .property-card h3{
  position:static!important;height:auto!important;max-height:none!important;
  min-height:0!important;margin:0!important;padding:0!important;
  white-space:normal!important;overflow:visible!important;
  display:block!important;-webkit-line-clamp:unset!important;line-height:1.3!important;
}
#alojamento .property-card .meta,
.property-all-grid .property-card .meta{
  height:auto!important;max-height:none!important;white-space:normal!important;
  overflow:visible!important;line-height:1.4!important;margin:8px 0 0!important;padding:0!important;
}
#alojamento .property-card .property-room-stats,
.property-all-grid .property-card .property-room-stats{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;
  order:3!important;margin:10px 0 0!important;padding-top:10px!important;flex-shrink:0!important;
}
#alojamento .property-card .property-room-stat,
.property-all-grid .property-card .property-room-stat{
  display:flex!important;flex-direction:column!important;align-items:center!important;
  justify-content:flex-start!important;gap:4px!important;
  min-width:0!important;min-height:0!important;padding:0!important;border:0!important;
}
#alojamento .property-card .property-room-stat-copy,
.property-all-grid .property-card .property-room-stat-copy{
  display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;
  align-items:baseline!important;justify-content:center!important;gap:0 4px!important;
  min-width:0!important;text-align:center!important;
}
#alojamento .property-card .property-room-icon,
.property-all-grid .property-card .property-room-icon{
  flex:0 0 16px!important;width:16px!important;height:16px!important;min-width:16px!important;
}
#alojamento .property-card-footer,
.property-all-grid .property-card-footer{
  display:flex!important;flex-direction:column!important;gap:8px!important;
  order:4!important;margin-top:auto!important;padding-top:10px!important;min-width:0!important;
}
#alojamento .property-card-footer > .price,
.property-all-grid .property-card-footer > .price{
  display:flex!important;align-items:flex-end!important;position:static!important;
  width:100%!important;min-height:1.35em!important;height:auto!important;max-height:none!important;
  margin:0!important;white-space:normal!important;text-wrap:wrap!important;line-height:1.35!important;
}
#alojamento .property-card-footer > .property-card-link,
.property-all-grid .property-card-footer > .property-card-link{
  position:static!important;inset:auto!important;transform:none!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  flex-shrink:0!important;width:100%!important;min-height:44px!important;
  height:auto!important;max-height:none!important;margin:0!important;padding:10px 6px!important;
  white-space:normal!important;line-height:1.35!important;text-align:center!important;
}


/* Match visual ordering to the card content; legacy flex order must not lift the new footer. */
#alojamento .property-card > .card-body > .property-card-heading,
.property-all-grid .property-card > .card-body > .property-card-heading{order:1!important;}
#alojamento .property-card > .card-body > .meta,
.property-all-grid .property-card > .card-body > .meta{order:2!important;}
#alojamento .property-card-footer > .price,
.property-all-grid .property-card-footer > .price{order:1!important;}
#alojamento .property-card-footer > .property-card-link,
.property-all-grid .property-card-footer > .property-card-link{order:2!important;}

@media(max-width:720px) and (orientation:portrait){
  /* Three compact icon/count groups; full labels remain available to screen readers. */
  #alojamento .property-card .property-room-stat{flex-direction:column!important;gap:4px!important;}
  #alojamento .property-card .property-room-stat-copy small{
    position:absolute!important;width:1px!important;height:1px!important;
    padding:0!important;margin:-1px!important;overflow:hidden!important;
    clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;
  }
  #alojamento .property-card .property-room-stat-copy strong{font-size:.875rem!important;}
}


/* Show complete photos in the expanded property list; preserve homepage cover framing. */
body .property-all-grid .property-card > .photo{
  position:relative!important;display:block!important;
  width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;
  aspect-ratio:16/10!important;flex-shrink:0!important;
  padding:0!important;overflow:hidden!important;background:#101414!important;
}
body .property-all-grid .property-card > .photo > img{
  position:absolute!important;inset:0!important;display:block!important;
  width:100%!important;height:100%!important;
  min-width:0!important;min-height:0!important;max-width:100%!important;max-height:100%!important;
  margin:0!important;padding:0!important;border-radius:0!important;
  object-fit:contain!important;object-position:center!important;
  transform:none!important;clip-path:none!important;
}

/* The detail gallery shows the complete original; only listing covers are cropped. */
body .property-detail-cover:not(.property-detail-placeholder){background:#101414!important;}
body .property-detail-cover > img{object-fit:contain!important;object-position:center!important;transform:none!important;}


/* One thumbnail row on every orientation; only this strip scrolls horizontally. */
body .property-detail-grid > div{min-width:0;}
body .property-thumbnail-gallery{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;gap:8px;align-items:center;margin-top:12px;min-width:0;}
body .property-thumbnail-gallery .property-detail-thumbs{display:flex!important;flex-wrap:nowrap!important;gap:8px!important;overflow-x:auto!important;min-width:0!important;margin:0!important;padding:4px 2px 8px!important;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none;}
body .property-thumbnail-gallery .property-detail-thumb{flex:0 0 88px!important;width:88px!important;height:66px!important;min-width:0!important;aspect-ratio:auto!important;scroll-snap-align:center;background:#101414!important;}
body .property-thumbnail-gallery .property-detail-thumb img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;transform:none!important;}
body .property-thumbnail-nav{display:grid;place-items:center;width:36px;min-height:44px;padding:0;border:1px solid #b79c62;border-radius:12px;background:#171b1a;color:#e7cd94;font-size:26px;}
body .property-thumbnail-nav:disabled{opacity:.35;cursor:default;}
body .property-thumbnail-counter{grid-column:1/-1;text-align:center;font-size:13px;color:#e7cd94;line-height:1.3;}
body .property-thumbnail-nav:focus-visible,body .property-detail-thumb:focus-visible{outline:2px solid #e7cd94;outline-offset:2px;}
body .property-calendar-card .property-calendar-weekdays,body .property-calendar-card [data-cal-grid]{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:4px!important;padding:0!important;}
body .property-calendar-weekdays{margin:12px 0 8px;text-align:center;color:#e7cd94;font-size:12px;}
body .property-calendar-weekdays abbr{text-decoration:none;min-width:0;}
body .property-calendar-card [data-cal-grid] > .cal-day{aspect-ratio:auto!important;min-height:48px!important;height:clamp(48px,8vw,70px)!important;min-width:0!important;}
@media(max-width:480px){
  body .property-thumbnail-gallery{grid-template-columns:32px minmax(0,1fr) 32px;gap:5px;}
  body .property-thumbnail-nav{width:32px;}
  body .property-thumbnail-gallery .property-detail-thumb{flex-basis:76px!important;width:76px!important;height:58px!important;}
}

/* Keep swipe/keyboard scrolling without the native white scrollbar. */
body .property-thumbnail-gallery .property-detail-thumbs::-webkit-scrollbar{display:none;width:0;height:0;}
/* Readable nightly prices, including the narrow seven-column mobile calendar. */
body .property-calendar-card [data-cal-grid] > .cal-day{padding-inline:2px!important;}
body .property-calendar-card [data-cal-grid] .cal-price{font-size:.75rem!important;line-height:1.25!important;font-weight:600!important;opacity:1!important;max-width:100%;white-space:normal!important;}
