/* ============================================================
   SUN HOUSE — ADDITIVE CROSS-DEVICE COVERAGE
   Loaded after sunhouse-device-stability.css.
============================================================ */

/* Property price: keep the established card geometry, but make the visual
   underline follow the exact rendered price-label width on every device. */
.property-card .price{
  display:table!important;
  width:auto!important;
  max-width:100%!important;
  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;
  border-bottom:1px solid currentColor!important;
  padding-bottom:8px!important;
}

@media (max-width:1100px){
  .property-card .price{font-size:clamp(.82rem,2.15vw,1rem)!important;}
}
@media (max-width:720px){
  .property-card .price{
    font-size:clamp(.72rem,3.15vw,.94rem)!important;
    letter-spacing:-.02em!important;
  }
}
@media (max-width:359px){
  .property-card .price{font-size:clamp(.66rem,3vw,.78rem)!important;}
}

/* One bundled face and one text rhythm for Algarve on every device.
   Keep this after the legacy orientation-specific hero rules. */
@font-face{
  font-family:"Sun House Montserrat";
  src:url('/fonts/sunhouse-montserrat-bold.woff') format('woff');
  font-style:normal;
  font-weight:700;
  font-display:swap;
}

.v7-copy>.v7-kicker{
  display:block!important;
  font-family:"Sun House Montserrat",sans-serif!important;
  font-size:1rem!important;
  font-weight:700!important;
  font-style:normal!important;
  font-synthesis:none!important;
  line-height:1.2!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
  text-align:left!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0 0 6px!important;
  padding:0!important;
  justify-self:start!important;
  align-self:end!important;
  transform:none!important;
}

.v7-copy>h1{
  margin-top:0!important;
  padding-left:0!important;
  text-align:left!important;
  justify-self:start!important;
  align-self:start!important;
}

/* Portrait phones: keep centred side arrows in dedicated gutters, outside card text. */
@media (max-width:720px) and (orientation:portrait){
  #alojamento .property-carousel-shell{
    display:grid!important;
    grid-template-columns:28px minmax(0,1fr) 28px!important;
    align-items:center!important;
    gap:4px!important;
  }
  #alojamento .property-carousel-shell > .property-carousel{
    grid-column:2!important;
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  #alojamento .property-carousel-shell > .property-carousel-arrow{
    position:static!important;
    inset:auto!important;
    transform:none!important;
    margin:0!important;
    width:28px!important;
    min-width:28px!important;
    height:28px!important;
    min-height:28px!important;
    box-sizing:border-box!important;
    padding:0!important;
    border-radius:50%!important;
    display:grid!important;
    place-items:center!important;
    line-height:1!important;
    grid-row:1!important;
    align-self:center!important;
    justify-self:center!important;
  }
  #alojamento .property-carousel-shell > .property-carousel-arrow.is-prev{
    grid-column:1!important;
  }
  #alojamento .property-carousel-shell > .property-carousel-arrow.is-next{
    grid-column:3!important;
  }
}

/* Let line-clamp determine the paragraph height. Forced minimum heights can
   expose the next line in Chromium; clip painting to the collapsed box too. */
#alojamento .property-card-description-wrap:not(.is-expanded) > .property-card-description,
.property-all-grid .property-card-description-wrap:not(.is-expanded) > .property-card-description{
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:3!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  padding:0!important;
  overflow:hidden!important;
  clip-path:inset(0)!important;
}
