/* ============================================================
   SUN HOUSE — CROSS-DEVICE RESPONSIVE AUTHORITY
   Loaded last. This is the single final authority for public
   responsive geometry; legacy layers remain visually subordinate.
============================================================ */

:root{
  --sh-gutter:clamp(18px,4vw,64px);
  --sh-content:min(calc(100vw - clamp(36px,8vw,128px)),1600px);
  --sh-gold:#e7c66f;
  --sh-panel:rgba(10,15,18,.88);
}

html,body{max-width:100%;overflow-x:hidden!important;}
*,*::before,*::after{box-sizing:border-box;}
img,svg,video,canvas{max-width:100%;}

/* ---------- Shared hero language and contrast stability ---------- */
.v7-hero{height:auto!important;margin:0!important;overflow:hidden!important;}
.v7-hero-inner{position:relative!important;z-index:3!important;margin:0 auto!important;transform:none!important;overflow:visible!important;}
.v7-copy{position:relative!important;inset:auto!important;min-width:0!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;transform:none!important;overflow:visible!important;}
.v7-copy>.v7-kicker,.v7-copy>h1,.v7-copy>p{position:relative!important;inset:auto!important;transform:none!important;min-width:0!important;height:auto!important;min-height:0!important;max-height:none!important;}
.v7-copy>h1{
  width:max-content!important;
  max-width:none!important;
  margin:0!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-wrap:nowrap!important;
}
.v7-copy>h1 span{display:block!important;width:max-content!important;max-width:none!important;white-space:nowrap!important;}
.v7-kicker,.v7-copy>p{
  color:#fff!important;
  text-shadow:0 1px 3px #172631,0 0 9px rgba(0,0,0,.9)!important;
}
.v7-copy>p{max-width:680px!important;margin:14px 0 0!important;line-height:1.45!important;}

/* Greeting: readable over bright sky without changing header geometry. */
.v7-greeting{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  flex:0 0 auto!important;
  width:max-content!important;
  max-width:none!important;
  min-width:max-content!important;
  min-height:34px!important;
  padding:8px 11px!important;
  border:0!important;
  border-radius:999px!important;
  background:rgba(10,10,10,.28)!important;
  -webkit-backdrop-filter:blur(12px)!important;
  backdrop-filter:blur(12px)!important;
  box-shadow:none!important;
  color:#fff!important;
  font-size:clamp(.72rem,.8vw,.84rem)!important;
  font-weight:800!important;
  line-height:1.1!important;
  letter-spacing:0!important;
  text-transform:none!important;
  text-shadow:none!important;
  white-space:nowrap!important;
  overflow:visible!important;
  isolation:isolate!important;
}
.v7-greeting::before{
  content:none!important;
  display:none!important;
}

.v7-hero-inner > .sunhouse-horizontal-brand{
  position:relative!important;
  inset:auto!important;
  margin:0!important;
  transform:none!important;
  overflow:visible!important;
  background:url('/images/logo-sunhouse-desktop.png?v=20260914-05') center/contain no-repeat!important;
  max-width:100%!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  aspect-ratio:1086/1448!important;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.3))!important;
}
.v7-hero-inner > .sunhouse-horizontal-brand .sunhouse-brand-key,
.v7-hero-inner > .sunhouse-horizontal-brand .sunhouse-brand-name,
.sunhouse-flying-key,[data-sunhouse-flying-key]{display:none!important;}
.v7-service-strip,.v7-service-strip-desktop{align-items:stretch!important;}
.v7-service-strip>a,.v7-service-strip-desktop>a{
  box-sizing:border-box!important;
  min-width:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.v7-service-strip strong,.v7-service-strip small,
.v7-service-strip-desktop strong,.v7-service-strip-desktop small{
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  overflow:hidden!important;
}

/* ---------- Pointer desktops and laptops ---------- */
@media (min-width:1101px) and (hover:hover) and (pointer:fine){
  .v7-hero{min-height:clamp(700px,100svh,940px)!important;}
  .v7-hero-inner{
    width:min(var(--sh-content),1320px)!important;
    max-width:1320px!important;
    min-height:clamp(700px,100svh,940px)!important;
    padding:clamp(100px,11vh,140px) 0 clamp(44px,6vh,76px)!important;
    display:grid!important;
    grid-template-columns:minmax(0,max-content) auto!important;
    grid-template-rows:auto auto!important;
    column-gap:clamp(16px,1.5vw,26px)!important;
    row-gap:clamp(24px,4vh,42px)!important;
    justify-content:center!important;
    align-content:start!important;
    align-items:center!important;
  }
  .v7-copy{grid-column:1!important;grid-row:1!important;display:block!important;width:max-content!important;max-width:none!important;justify-self:end!important;align-self:center!important;}
  .v7-copy>h1{font-size:clamp(3.2rem,5vw,6.4rem)!important;line-height:.91!important;letter-spacing:-.052em!important;}
  .v7-copy>p{font-size:clamp(.95rem,1vw,1.08rem)!important;}
  .v7-hero-inner > .sunhouse-horizontal-brand{grid-column:2!important;grid-row:1!important;width:clamp(250px,20vw,350px)!important;justify-self:start!important;align-self:center!important;}
  .v7-copy>.v7-service-strip{display:none!important;}
  .v7-hero-inner>.v7-service-strip-desktop{
    grid-column:1/-1!important;
    grid-row:2!important;
    position:relative!important;
    inset:auto!important;
    width:min(100%,1080px)!important;
    margin:0 auto!important;
    padding:0!important;
    transform:none!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:clamp(12px,1.4vw,20px)!important;
    visibility:visible!important;
    opacity:1!important;
  }
  .v7-hero-inner>.v7-service-strip-desktop>a{min-height:104px!important;padding:14px 18px!important;border-radius:18px!important;}
  #alojamento{margin-top:0!important;padding-top:clamp(22px,3vw,46px)!important;}
  #alojamento>.wrap,.sh-content-wrap,.sunhouse-reviews-inner{width:var(--sh-content)!important;max-width:1600px!important;}
  .property-carousel>.card{flex:0 0 calc((100% - 36px)/3)!important;max-width:480px!important;}
  .property-carousel:not(:has(>.card:nth-child(3))){justify-content:center!important;}
}

/* ---------- Standard laptop / desktop: compact the first fold ---------- */
@media (min-width:1101px) and (max-width:1599px) and (min-height:821px) and (hover:hover) and (pointer:fine){
  .v7-hero{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
  }
  .v7-hero-inner{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:clamp(72px,8vh,96px) 0 clamp(30px,4vh,44px)!important;
    row-gap:clamp(18px,2.5vh,28px)!important;
    align-content:start!important;
  }
}

/* ---------- Wide desktop refinement: reduce top air and protect brand ---------- */
@media (min-width:1600px) and (min-height:850px) and (hover:hover) and (pointer:fine){
  .v7-hero{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    aspect-ratio:auto!important;
  }
  .v7-hero-inner{
    grid-template-columns:minmax(0,max-content) auto!important;
    column-gap:clamp(14px,1vw,20px)!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:clamp(58px,6vh,78px) 0 clamp(24px,2.5vh,36px)!important;
    row-gap:clamp(18px,2vh,24px)!important;
    align-content:start!important;
  }
  .v7-hero-inner > .sunhouse-horizontal-brand{
    width:clamp(280px,15.25vw,300px)!important;
    aspect-ratio:937/1496!important;
    background-image:url('/images/logo-sunhouse-desktop-trimmed.png?v=20260915-02')!important;
  }
}

/* ---------- Desktops and laptops with limited viewport height ---------- */
@media (min-width:1101px) and (max-height:820px) and (hover:hover) and (pointer:fine){
  .v7-hero{
    display:block!important;height:auto!important;min-height:0!important;
    max-height:none!important;aspect-ratio:auto!important;
  }
  .v7-hero-inner{
    inset:auto!important;margin-block:0!important;
    height:auto!important;min-height:0!important;max-height:none!important;
    padding:24px 0 20px!important;
    grid-template-columns:minmax(0,max-content) auto!important;
    grid-template-rows:auto auto!important;
    column-gap:clamp(14px,1.4vw,20px)!important;
    row-gap:18px!important;justify-content:center!important;align-content:start!important;
  }
  .v7-copy>h1{
    font-size:clamp(2.75rem,min(5vw,8vh),4rem)!important;
    line-height:.95!important;
  }
  .v7-copy>p{margin-top:12px!important;}
  .v7-hero-inner>.sunhouse-horizontal-brand{
    width:clamp(180px,30vh,240px)!important;
  }
  .v7-hero-inner>.v7-service-strip-desktop{
    height:auto!important;min-height:0!important;max-height:none!important;
  }
  .v7-hero-inner>.v7-service-strip-desktop>a{
    min-height:88px!important;padding:12px 16px!important;
  }
  #alojamento{padding-top:18px!important;}
}

/* ---------- Tablets, touch laptops and large touch screens ---------- */
@media (min-width:721px) and (max-width:1100px),
       (min-width:1101px) and (hover:none) and (pointer:coarse){
  .v7-hero{height:auto!important;min-height:0!important;}
  .v7-hero-inner{
    width:min(calc(100% - 48px),1180px)!important;
    height:auto!important;min-height:0!important;
    padding:clamp(86px,10vh,118px) 0 42px!important;
    display:grid!important;
    grid-template-columns:minmax(0,max-content) auto!important;
    grid-template-rows:auto auto!important;
    column-gap:clamp(12px,2vw,20px)!important;
    row-gap:28px!important;
    justify-content:center!important;
    align-content:start!important;
    align-items:center!important;
  }
  .v7-copy{grid-column:1!important;grid-row:1!important;display:block!important;width:max-content!important;max-width:none!important;justify-self:end!important;}
  /* Size against the longest PT line, not the shorter EN copy. This keeps
     both fixed slogan lines inside the copy column before the logo begins. */
  .v7-copy>h1{font-size:clamp(2.35rem,5vw,4.6rem)!important;line-height:.91!important;letter-spacing:-.05em!important;}
  .v7-copy>p{font-size:clamp(.88rem,1.5vw,1rem)!important;}
  .v7-hero-inner > .sunhouse-horizontal-brand{grid-column:2!important;grid-row:1!important;width:clamp(185px,25vw,290px)!important;justify-self:start!important;align-self:center!important;}
  .v7-hero-inner>.v7-service-strip-desktop{
    grid-column:1/-1!important;
    grid-row:2!important;
    position:relative!important;
    inset:auto!important;
    display:grid!important;
    visibility:visible!important;
    opacity:1!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:12px!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
  }
  .v7-hero-inner>.v7-service-strip-desktop>a{min-height:92px!important;padding:11px 12px!important;border-radius:17px!important;}
  .v7-copy>.v7-service-strip{display:none!important;}
  #alojamento{margin-top:0!important;padding:26px 24px 44px!important;}
  #alojamento>.wrap{width:100%!important;max-width:1180px!important;margin-inline:auto!important;}
  .property-carousel{gap:14px!important;}
  .property-carousel>.card{flex:0 0 calc((100% - 14px)/2)!important;min-width:0!important;}
  .property-carousel:not(:has(>.card:nth-child(3))){justify-content:center!important;}
}

/* ---------- Portrait tablets and narrow laptops: keep the brand lock-up in frame ---------- */
@media (min-width:721px) and (max-width:1100px) and (orientation:portrait),
       (min-width:1101px) and (orientation:portrait) and (hover:none) and (pointer:coarse){
  .v7-hero-inner{
    grid-template-columns:minmax(0,1fr) clamp(170px,23vw,220px)!important;
    column-gap:clamp(8px,1.5vw,16px)!important;
    justify-content:stretch!important;
  }
  .v7-copy{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    justify-self:stretch!important;
    align-self:center!important;
  }
  .v7-copy>.v7-kicker{
    display:block!important;
    width:100%!important;
    margin:0 0 6px!important;
    text-align:right!important;
  }
  .v7-copy>h1{
    width:100%!important;
    max-width:100%!important;
    font-size:clamp(1.75rem,4vw,2.5rem)!important;
    letter-spacing:-.045em!important;
    text-align:right!important;
  }
  .v7-copy>h1 span{
    width:100%!important;
    max-width:100%!important;
  }
  .v7-copy>p{
    width:100%!important;
    max-width:100%!important;
    margin-top:12px!important;
    text-align:right!important;
  }
  .v7-hero-inner > .sunhouse-horizontal-brand{
    width:clamp(170px,23vw,220px)!important;
    max-width:none!important;
    justify-self:start!important;
    align-self:center!important;
    transform:translateY(-8px)!important;
  }
}

/* Standard iPad portrait: centre the visible slogan + logo lock-up. */
@media (min-width:721px) and (max-width:820px) and (orientation:portrait){
  .v7-hero-inner{
    grid-template-columns:minmax(0,max-content) clamp(132px,19vw,156px)!important;
    column-gap:8px!important;
    justify-content:center!important;
  }
  .v7-copy{
    width:max-content!important;
    max-width:360px!important;
    justify-self:end!important;
  }
  .v7-copy>.v7-kicker,
  .v7-copy>h1,
  .v7-copy>h1 span{
    width:max-content!important;
    max-width:none!important;
  }
  .v7-copy>p{
    width:min(100%,340px)!important;
    max-width:340px!important;
  }
  .v7-hero-inner > .sunhouse-horizontal-brand{
    width:clamp(132px,19vw,156px)!important;
    justify-self:start!important;
    transform:translateY(-6px)!important;
  }
}

/* Keep the first letter of “Algarve” locked to the first letter of the slogan
   on medium/large portrait screens. The paragraph is prevented from widening
   the shrink-wrapped heading column, so the approved logo position is kept. */
@media (min-width:821px) and (max-width:1100px) and (orientation:portrait),
       (min-width:1101px) and (orientation:portrait) and (hover:none) and (pointer:coarse){
  .v7-copy{
    width:max-content!important;
    max-width:100%!important;
    justify-self:end!important;
  }
  .v7-copy>.v7-kicker,
  .v7-copy>h1,
  .v7-copy>h1 span{
    width:max-content!important;
    max-width:none!important;
    text-align:left!important;
  }
  .v7-copy>p{
    width:0!important;
    min-width:100%!important;
    max-width:none!important;
  }
}

@media (min-width:721px) and (max-width:1100px) and (orientation:landscape),
       (min-width:1101px) and (orientation:landscape) and (hover:none) and (pointer:coarse){
  .v7-hero{min-height:max(560px,100svh)!important;}
  .v7-hero-inner{min-height:max(560px,100svh)!important;padding-top:76px!important;padding-bottom:34px!important;}
  .property-carousel>.card{flex-basis:calc((100% - 28px)/3)!important;}
}

/* ---------- Phones: shared ---------- */
@media (max-width:720px){
  :root{--sh-gutter:16px;}
  .v7-greeting{
    width:max-content!important;
    max-width:none!important;
    min-width:max-content!important;
    min-height:32px!important;
    padding:7px 8px!important;
    gap:0!important;
    border-radius:999px!important;
    background:rgba(20,20,20,.25)!important;
    -webkit-backdrop-filter:blur(12px)!important;
    backdrop-filter:blur(12px)!important;
    font-size:clamp(.61rem,2.65vw,.69rem)!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }
  .v7-mobile-menu-toggle{
    display:grid!important;
    place-items:center!important;
    width:42px!important;height:42px!important;
    padding:10px!important;
    border-radius:50%!important;
    background:rgba(13,71,118,.72)!important;
  }
  .v7-mobile-menu-toggle span{display:block!important;width:20px!important;height:2px!important;margin:2px 0!important;background:#fff!important;border-radius:2px!important;}
  .v7-hero-inner>.v7-service-strip-desktop{display:none!important;}
  #alojamento{margin-top:0!important;padding:22px 10px 104px!important;}
  #alojamento>.wrap{width:100%!important;margin:0 auto!important;padding:14px 10px 22px!important;}
  .property-carousel-shell{position:relative!important;display:block!important;width:100%!important;overflow:visible!important;}
  .property-carousel{width:100%!important;gap:10px!important;padding:0 28px 12px!important;margin:0!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;}
  .property-carousel>.property-card{flex:0 0 calc((100% - 10px)/2)!important;min-width:0!important;width:auto!important;max-width:none!important;scroll-snap-align:start!important;}
  .property-carousel-arrow{position:absolute!important;top:50%!important;z-index:20!important;width:30px!important;height:30px!important;margin:0!important;transform:translateY(-50%)!important;}
  .property-carousel-arrow.is-prev{left:0!important;}
  .property-carousel-arrow.is-next{right:0!important;}
  .property-carousel .card-body{min-height:0!important;padding:10px 9px 9px!important;}
  .property-carousel .property-card-heading{min-height:2.5em!important;}
  .property-carousel .property-card-heading h3{font-size:clamp(.72rem,3vw,.88rem)!important;line-height:1.18!important;}
  .property-carousel .meta{min-height:2.2em!important;font-size:.7rem!important;line-height:1.18!important;}
  .property-carousel .property-card-description-wrap{display:none!important;}
  .property-carousel .price{min-height:2.4em!important;margin-top:8px!important;font-size:.7rem!important;line-height:1.18!important;white-space:normal!important;}
  .property-carousel .property-room-stats{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:3px!important;margin-top:8px!important;padding-top:8px!important;}
  .property-carousel .property-room-stat{display:flex!important;flex-direction:column!important;align-items:center!important;gap:3px!important;min-width:0!important;padding:0!important;}
  .property-carousel .property-room-icon{width:14px!important;height:14px!important;}
  .property-carousel .property-room-stat strong{margin:0!important;font-size:.68rem!important;}
  .property-carousel .property-room-stat small{display:block!important;max-width:100%!important;font-size:.75rem!important;line-height:1.08!important;text-align:center!important;overflow-wrap:anywhere!important;}
  .property-carousel .property-card-link{position:relative!important;inset:auto!important;display:flex!important;min-height:32px!important;margin-top:9px!important;padding:6px!important;font-size:.67rem!important;}
  .property-section-head-mobile h2{font-size:.88rem!important;line-height:1.2!important;}
  .mobile-view-all{white-space:nowrap!important;}
  .sunhouse-mobile-bottom-nav{
    left:10px!important;right:10px!important;
    bottom:max(8px,env(safe-area-inset-bottom))!important;
    width:auto!important;min-height:54px!important;height:auto!important;
    padding:4px 6px!important;border-radius:18px!important;z-index:1000!important;
  }
  .sunhouse-mobile-bottom-nav a,.sunhouse-mobile-bottom-nav button{
    min-width:0!important;min-height:44px!important;padding:3px 1px!important;gap:3px!important;
  }
  .sunhouse-mobile-bottom-nav span{font-size:18px!important;line-height:20px!important;}
  .sunhouse-mobile-bottom-nav small{font-size:10px!important;line-height:12px!important;}
  .footer{padding-bottom:calc(86px + env(safe-area-inset-bottom))!important;}
  .footer,.footer a,.avyena-credit{font-size:max(.75rem,12px)!important;line-height:1.5!important;}
}

/* ---------- Phone portrait ---------- */
@media (max-width:720px) and (orientation:portrait){
  .v7-hero{
    display:block!important;height:auto!important;min-height:0!important;
    max-height:none!important;aspect-ratio:auto!important;padding:0!important;
    overflow:visible!important;
  }
  .v7-hero-inner{
    inset:auto!important;
    width:calc(100% - 32px)!important;
    height:auto!important;min-height:0!important;max-height:none!important;
    /* The mobile header already occupies normal flow above the hero. */
    margin-block:0!important;padding:12px 0 20px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) clamp(98px,28vw,122px)!important;
    grid-template-rows:auto auto auto auto!important;
    column-gap:8px!important;
    row-gap:0!important;
    justify-content:stretch!important;
    align-content:start!important;
  }
  .v7-copy{display:contents!important;}
  .v7-copy>.v7-kicker{grid-column:1!important;grid-row:1!important;align-self:end!important;justify-self:start!important;margin:0 0 6px!important;}
  .v7-hero-inner > .sunhouse-horizontal-brand{grid-column:2!important;grid-row:1/3!important;display:block!important;visibility:visible!important;opacity:1!important;width:clamp(98px,28vw,122px)!important;max-width:none!important;justify-self:start!important;align-self:center!important;aspect-ratio:1086/1448!important;background:url('/images/logo-sunhouse-desktop.png?v=20260915-portrait-02') center/contain no-repeat!important;}
  /* Portrait uses the same side-by-side brand lock-up as larger screens. */
  .v7-copy>h1{grid-column:1!important;grid-row:2!important;justify-self:start!important;font-size:clamp(.98rem,5vw,1.5rem)!important;line-height:.92!important;letter-spacing:-.045em!important;text-align:left!important;}
  .v7-copy>p{grid-column:1/-1!important;grid-row:3!important;width:min(100%,360px)!important;justify-self:center!important;margin-top:12px!important;font-size:.94rem!important;line-height:1.4!important;text-align:center!important;}
  .v7-copy>.v7-service-strip{
    grid-column:1/-1!important;grid-row:4!important;
    position:relative!important;inset:auto!important;
    display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:8px!important;width:100%!important;min-width:0!important;max-width:100%!important;justify-self:stretch!important;margin:14px 0 0!important;padding:0!important;transform:none!important;
    height:auto!important;min-height:0!important;max-height:none!important;
    grid-auto-rows:auto!important;overflow:visible!important;
  }
  .v7-copy>.v7-service-strip>a{
    width:auto!important;min-width:0!important;max-width:100%!important;
    height:auto!important;min-height:120px!important;max-height:none!important;
    padding:10px 6px!important;border-radius:16px!important;
    justify-content:flex-start!important;gap:5px!important;overflow:visible!important;
  }
  .v7-copy>.v7-service-strip>a>*{flex-shrink:0!important;}
  .v7-copy>.v7-service-strip strong{font-size:.72rem!important;line-height:1.12!important;}
  .v7-copy>.v7-service-strip strong,.v7-copy>.v7-service-strip small{
    display:block!important;-webkit-line-clamp:unset!important;
    overflow:visible!important;text-overflow:clip!important;white-space:normal!important;
    max-height:none!important;height:auto!important;overflow-wrap:anywhere!important;
  }
  .v7-copy>.v7-service-strip small{font-size:.75rem!important;line-height:1.25!important;}
}

/* ---------- Phone landscape ---------- */
@media (max-width:932px) and (orientation:landscape) and (hover:none) and (pointer:coarse){
  .v7-hero{display:block!important;height:auto!important;min-height:0!important;max-height:none!important;aspect-ratio:auto!important;overflow:visible!important;}
  /* The tablet layout also matches this width: suppress its duplicate services. */
  .v7-hero-inner>.v7-service-strip-desktop{display:none!important;}
  .v7-hero-inner{
    width:calc(100% - 40px)!important;
    inset:auto!important;margin-block:0!important;
    height:auto!important;min-height:0!important;max-height:none!important;
    padding:12px 0 22px!important;
    display:grid!important;
    grid-template-columns:minmax(0,max-content) auto!important;
    grid-template-rows:auto auto auto auto!important;
    column-gap:8px!important;
    row-gap:0!important;
    justify-content:center!important;
    align-content:start!important;
  }
  .v7-copy{display:contents!important;}
  .v7-copy>.v7-kicker{grid-column:1!important;grid-row:1!important;justify-self:start!important;width:max-content!important;max-width:none!important;margin:0 0 6px!important;padding:0!important;text-align:left!important;transform:none!important;}
  .v7-copy>h1{grid-column:1!important;grid-row:2!important;width:max-content!important;max-width:none!important;justify-self:start!important;font-size:clamp(1.65rem,4.8vw,3rem)!important;line-height:.9!important;letter-spacing:-.045em!important;}
  .v7-hero-inner > .sunhouse-horizontal-brand{grid-column:2!important;grid-row:1/3!important;width:clamp(112px,17vw,156px)!important;justify-self:start!important;align-self:center!important;}
  .v7-copy>p{grid-column:1/-1!important;grid-row:3!important;width:min(100%,720px)!important;justify-self:center!important;margin-top:10px!important;font-size:clamp(.76rem,1.6vw,.92rem)!important;line-height:1.32!important;text-align:center!important;}
  .v7-copy>.v7-service-strip{
    grid-column:1/-1!important;grid-row:4!important;position:relative!important;inset:auto!important;
    display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;width:100%!important;margin:12px 0 0!important;padding:0!important;transform:none!important;
    height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;
  }
  .v7-copy>.v7-service-strip>a{height:auto!important;min-height:80px!important;max-height:none!important;padding:9px!important;border-radius:15px!important;overflow:visible!important;}
  .v7-copy>.v7-service-strip strong{font-size:.7rem!important;}
  .v7-copy>.v7-service-strip strong,.v7-copy>.v7-service-strip small{display:block!important;-webkit-line-clamp:unset!important;height:auto!important;max-height:none!important;overflow:visible!important;white-space:normal!important;overflow-wrap:anywhere!important;}
  .v7-copy>.v7-service-strip small{font-size:.75rem!important;line-height:1.25!important;}
  .v7-copy>.v7-service-strip>a>*{flex-shrink:0!important;}
  .live-chat{right:max(12px,env(safe-area-inset-right))!important;bottom:max(12px,env(safe-area-inset-bottom))!important;}
  .live-chat-launcher{width:46px!important;height:46px!important;min-height:46px!important;padding:0!important;gap:0!important;justify-content:center!important;}
  .live-chat-launcher>span:nth-child(2){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;}
  .live-chat-unread{position:absolute;right:-4px;top:-5px;}
  #alojamento{margin-top:0!important;padding-top:18px!important;}
  .property-carousel{padding-inline:36px!important;}
  .property-carousel>.property-card{flex:0 0 calc((100% - 20px)/3)!important;}
}

/* ---------- All-properties modal ---------- */
.property-all-modal{padding:clamp(12px,3vw,30px)!important;}
.property-all-window{width:min(1240px,100%)!important;max-height:calc(100dvh - 32px)!important;padding:72px clamp(16px,3vw,34px) 28px!important;overflow:auto!important;overscroll-behavior:contain!important;}
.property-all-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),360px))!important;
  justify-content:center!important;
  gap:18px!important;
}
.property-all-grid .card{width:100%!important;min-width:0!important;max-width:360px!important;}
body:has(.property-all-modal) .live-chat{display:none!important;}
@media (max-width:720px){
  .property-all-window{padding:66px 14px 20px!important;border-radius:20px!important;}
  .property-all-grid{grid-template-columns:minmax(0,1fr)!important;}
  .property-all-grid .card{max-width:420px!important;margin-inline:auto!important;}
}

/* ---------- Live chat: one visible control, no content obstruction ---------- */
.live-chat-launcher[aria-expanded="true"]{visibility:hidden!important;pointer-events:none!important;}
@media (max-width:720px){
  .live-chat{right:12px!important;bottom:calc(70px + env(safe-area-inset-bottom))!important;}
  .live-chat-launcher{
    width:46px!important;height:46px!important;min-height:46px!important;
    padding:0!important;gap:0!important;justify-content:center!important;
  }
  /* Keep the translated accessible name while displaying only the chat icon. */
  .live-chat-launcher>span:nth-child(2){
    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;
  }
  .live-chat-unread{position:absolute;right:-4px;top:-5px;}
  .live-chat-panel{left:8px!important;right:8px!important;top:max(8px,env(safe-area-inset-top))!important;bottom:max(8px,env(safe-area-inset-bottom))!important;width:auto!important;height:auto!important;max-height:none!important;}
  body:has(.live-chat-panel:not([hidden])) .sunhouse-mobile-bottom-nav{opacity:0!important;visibility:hidden!important;pointer-events:none!important;}
  body:has(.property-detail-page) .live-chat-launcher{width:50px!important;height:50px!important;padding:0!important;justify-content:center!important;}
  body:has(.property-detail-page) .live-chat-launcher>span:nth-child(2){display:none!important;}
}

/* ---------- Property detail and booking readability ---------- */
.property-booking-card{
  background:rgba(20,22,22,.9)!important;
  -webkit-backdrop-filter:blur(14px) saturate(110%)!important;
  backdrop-filter:blur(14px) saturate(110%)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.38)!important;
}
.property-booking-card,.property-booking-card label,.property-booking-card p,.property-booking-card small{color:#fff!important;text-shadow:0 1px 3px rgba(0,0,0,.72)!important;}
.property-booking-card input,.property-booking-card textarea{background:#252525!important;color:#fff!important;border-color:rgba(255,255,255,.28)!important;}
@media (max-width:980px){
  .property-detail-grid{grid-template-columns:1fr!important;}
  .property-booking-card{position:relative!important;top:auto!important;}
}
@media (max-width:720px){
  .property-detail-hero>.wrap{width:calc(100% - 24px)!important;}
  .property-detail-copy h1{font-size:clamp(2rem,10vw,2.8rem)!important;overflow-wrap:anywhere!important;}
  .property-detail-description{padding-right:56px!important;}
  .property-booking-card{padding:16px!important;border-radius:18px!important;}
  .property-booking-form .form-grid{grid-template-columns:1fr!important;}
}

/* ---------- Reviews: intentional soft edges and readable cards ---------- */
.sunhouse-reviews-viewport{
  padding:8px clamp(18px,4vw,64px) 12px!important;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 5%,#000 95%,transparent 100%)!important;
  mask-image:linear-gradient(to right,transparent 0,#000 5%,#000 95%,transparent 100%)!important;
}
.sunhouse-review-text{color:#353a3c!important;}
@media (max-width:720px){
  .sunhouse-reviews-viewport{padding-inline:18px!important;}
  .sunhouse-review-card{flex-basis:min(86vw,340px)!important;}
  .sunhouse-review-text{font-size:.94rem!important;line-height:1.52!important;}
}

/* ---------- Property cards: stable room details lock-up ---------- */
.property-carousel .property-room-stats,
.property-all-grid .property-room-stats{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:stretch!important;
  width:100%!important;
  min-width:0!important;
  margin:12px 0 0!important;
  padding:10px 0 0!important;
  gap:0!important;
  overflow:hidden!important;
}

.property-carousel .property-room-stat,
.property-all-grid .property-room-stat{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:100%!important;
  min-width:0!important;
  min-height:58px!important;
  margin:0!important;
  padding:2px 6px!important;
  gap:6px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-align:center!important;
}

.property-carousel .property-room-stat:not(:first-child),
.property-all-grid .property-room-stat:not(:first-child){
  border-left:1px solid rgba(255,255,255,.12)!important;
}

.property-carousel .property-room-icon,
.property-all-grid .property-room-icon{
  display:flex!important;
  flex:0 0 auto!important;
  align-items:center!important;
  justify-content:center!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  min-height:20px!important;
  margin:0!important;
  transform:none!important;
  grid-area:auto!important;
}

.property-carousel .property-room-icon svg,
.property-all-grid .property-room-icon svg{
  display:block!important;
  width:100%!important;
  height:100%!important;
}

.property-carousel .property-room-stat-copy,
.property-all-grid .property-room-stat-copy{
  display:flex!important;
  flex:0 0 auto!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  align-items:baseline!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  min-height:1.2em!important;
  margin:0!important;
  padding:0!important;
  gap:0 .32em!important;
  line-height:1.15!important;
  text-align:center!important;
}

.property-carousel .property-room-stat-copy strong,
.property-all-grid .property-room-stat-copy strong{
  display:inline!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  grid-area:auto!important;
  color:#f6f0e7!important;
  font-size:.78rem!important;
  font-weight:850!important;
  line-height:1.15!important;
  text-align:center!important;
}

.property-carousel .property-room-stat-copy small,
.property-all-grid .property-room-stat-copy small{
  display:inline!important;
  flex:0 1 auto!important;
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  grid-area:auto!important;
  color:rgba(246,240,231,.82)!important;
  font-size:.68rem!important;
  font-weight:700!important;
  line-height:1.15!important;
  text-align:center!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
  hyphens:auto!important;
}

@media (min-width:721px) and (max-width:1100px){
  .property-carousel .property-room-stat,
  .property-all-grid .property-room-stat{
    min-height:70px!important;
    padding-inline:4px!important;
    gap:4px!important;
  }

  .property-carousel .property-room-icon,
  .property-all-grid .property-room-icon{
    width:17px!important;
    height:17px!important;
    min-width:17px!important;
    min-height:17px!important;
  }

  .property-carousel .property-room-stat-copy,
  .property-all-grid .property-room-stat-copy{
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:2px!important;
  }

  .property-carousel .property-room-stat-copy strong,
  .property-all-grid .property-room-stat-copy strong{font-size:.70rem!important;}

  .property-carousel .property-room-stat-copy small,
  .property-all-grid .property-room-stat-copy small{
    font-size:.59rem!important;
    line-height:1.1!important;
  }
}

@media (max-width:720px){
  .property-carousel .property-room-stats,
  .property-all-grid .property-room-stats{padding-top:8px!important;}

  .property-carousel .property-room-stat,
  .property-all-grid .property-room-stat{
    min-height:62px!important;
    padding-inline:2px!important;
    gap:3px!important;
  }

  .property-carousel .property-room-icon,
  .property-all-grid .property-room-icon{
    width:13px!important;
    height:13px!important;
    min-width:13px!important;
    min-height:13px!important;
  }

  .property-carousel .property-room-stat-copy,
  .property-all-grid .property-room-stat-copy{
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    gap:1px!important;
  }

  .property-carousel .property-room-stat-copy strong,
  .property-all-grid .property-room-stat-copy strong{font-size:.60rem!important;}

  .property-carousel .property-room-stat-copy small,
  .property-all-grid .property-room-stat-copy small{
    font-size:.52rem!important;
    line-height:1.08!important;
    letter-spacing:-.01em!important;
  }
}

/* Portrait cards use their natural stats height, matching the approved
   compact landscape gap before the “+ info” control. */
@media (orientation:portrait){
  .property-carousel .property-room-stat,
  .property-all-grid .property-room-stat{
    min-height:0!important;
    padding-bottom:0!important;
  }

  .property-carousel .property-card-link,
  .property-all-grid .property-card-link{
    margin-top:7px!important;
  }
}

/* ---------- Motion and accessibility ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
}

/* Canonical hero text alignment: “Algarve” and both slogan lines always
   share the same visible left edge, without moving the lock-up itself. */
.v7-copy>.v7-kicker,
.v7-copy>h1,
.v7-copy>h1 span{
  text-align:left!important;
}
