/* Sun House — clean mobile source of truth
   2026-09-08
   Loaded after the legacy stylesheet and designed to work both in
   normal mobile viewport and Android "desktop site" mode. */

@media (max-width:720px), (max-width:1100px) and (hover:none) and (pointer:coarse) {
  :root {
    --mobile-gutter: 16px;
    --mobile-card: rgba(9,12,14,.72);
    --mobile-gold: #e8c46f;
  }

  html, body {
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    overflow-x:hidden !important;
    background:#070a0d !important;
  }

  body {
    position:relative !important;
    min-height:100% !important;
    background-image:none !important;
  }

  body::before {
    content:"" !important;
    position:fixed !important;
    inset:0 !important;
    width:100vw !important;
    height:100dvh !important;
    min-height:100svh !important;
    z-index:0 !important;
    pointer-events:none !important;
    background:
      linear-gradient(rgba(3,8,12,.10),rgba(3,8,12,.10)),
      url('/images/cover-distant-gulls.webp') center center / cover no-repeat !important;
    filter:none !important;
    transform:none !important;
  }

  .v7-nav, main, .footer {
    position:relative !important;
    z-index:1 !important;
  }

  /* Global structural reset: no section-wide slabs, blur layers or bands. */
  main,
  main > section,
  main > section > .wrap,
  #alojamento,
  #alojamento > .wrap,
  .v7-services,
  .owner-management,
  .owner-management > .wrap,
  #obras,
  #obras > .wrap,
  #orcamento,
  #orcamento > .wrap,
  .footer,
  .section-head,
  .service-grid,
  .property-section-head,
  .property-section-head-mobile,
  .property-carousel-shell,
  .property-carousel {
    background:transparent !important;
    background-image:none !important;
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    filter:none !important;
  }

  main::before, main::after,
  main > section::before, main > section::after,
  main > section > .wrap::before, main > section > .wrap::after,
  #alojamento::before, #alojamento::after,
  .v7-services::before, .v7-services::after,
  .owner-management::before, .owner-management::after,
  #obras::before, #obras::after,
  #orcamento::before, #orcamento::after {
    content:none !important;
    display:none !important;
  }

  /* Header */
  .v7-nav {
    position:absolute !important;
    inset:0 0 auto !important;
    background:transparent !important;
  }

  .v7-nav-inner {
    width:calc(100% - 28px) !important;
    min-height:64px !important;
    margin:auto !important;
    display:grid !important;
    grid-template-columns:1fr auto !important;
    align-items:center !important;
    gap:12px !important;
    padding:0 !important;
  }

  .v7-greeting {
    grid-column:1 !important;
    justify-self:start !important;
    font-size:.72rem !important;
    text-transform:none !important;
  }

  .v7-links {
    display:none !important;
  }

  .v7-lang {
    grid-column:2 !important;
    justify-self:end !important;
    display:flex !important;
    gap:5px !important;
    font-size:.68rem !important;
  }

  /* Hero */
  .v7-hero {
    width:100% !important;
    height:auto !important;
    min-height:100svh !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    overflow:visible !important;
    isolation:auto !important;
  }

  .v7-hero-media,
  .v7-hero::before,
  .v7-overlay {
    display:none !important;
  }

  .v7-hero-inner {
    width:calc(100% - 28px) !important;
    min-height:100svh !important;
    height:auto !important;
    margin:auto !important;
    padding:82px 0 102px !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:flex-start !important;
    gap:0 !important;
    background:transparent !important;
    transform:none !important;
  }

  .sunhouse-horizontal-brand {
    position:relative !important;
    inset:auto !important;
    order:1 !important;
    width:min(290px,84vw) !important;
    margin:0 auto 20px !important;
    align-self:center !important;
    display:flex !important;
    transform:none !important;
  }


  .v7-copy {
    order:2 !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    transform:none !important;
    background:transparent !important;
  }

  .v7-kicker {
    margin:0 0 8px !important;
    font-size:.72rem !important;
    letter-spacing:.28em !important;
  }

  .v7-copy h1 {
    max-width:100% !important;
    margin:0 0 12px !important;
    font-size:clamp(2.8rem,13vw,4.2rem) !important;
    line-height:.89 !important;
    letter-spacing:-.055em !important;
  }

  .v7-copy p {
    max-width:100% !important;
    margin:0 !important;
    font-size:.88rem !important;
    line-height:1.45 !important;
  }

  .v7-actions {
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    margin-top:18px !important;
    background:transparent !important;
  }

  .v7-btn {
    width:100% !important;
    min-width:0 !important;
    min-height:46px !important;
    padding:11px 12px !important;
    font-size:.65rem !important;
    gap:8px !important;
  }

  /* Property carousel — no dark strip underneath */
  #alojamento {
    margin:-64px 0 0 !important;
    padding:0 0 18px !important;
  }

  #alojamento > .wrap {
    width:100% !important;
    margin:0 !important;
    padding:0 var(--mobile-gutter) !important;
  }

  .property-section-head {
    margin:0 0 12px !important;
    padding:0 !important;
  }

  .mobile-featured-title-row {
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
  }

  .property-section-head-mobile h2 {
    margin:0 !important;
    font-size:.9rem !important;
    letter-spacing:.13em !important;
    white-space:normal !important;
  }

  .mobile-view-all {
    padding:7px 10px !important;
    font-size:.62rem !important;
  }

  .property-carousel-shell {
    display:flex !important;
    align-items:center !important;
    gap:6px !important;
    margin:0 !important;
    padding:0 !important;
  }

  .property-carousel {
    flex:1 !important;
    min-width:0 !important;
    display:flex !important;
    gap:12px !important;
    margin:0 !important;
    padding:0 !important;
    overflow-x:auto !important;
    scroll-snap-type:x mandatory !important;
  }

  .property-carousel > .card {
    flex:0 0 84% !important;
    min-width:84% !important;
    margin:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    scroll-snap-align:start !important;
  }

  .property-carousel .photo {
    aspect-ratio:16/10 !important;
    border-radius:18px !important;
  }

  .property-carousel .card-body {
    margin:0 !important;
    padding:12px 10px 10px !important;
    border-radius:0 0 18px 18px !important;
    background:var(--mobile-card) !important;
    border:1px solid rgba(240,215,148,.10) !important;
    box-shadow:none !important;
  }

  .property-carousel .card h3 {
    font-size:.96rem !important;
  }

  .property-carousel .price {
    max-width:104px !important;
    font-size:.78rem !important;
  }

  .property-carousel-arrow {
    width:34px !important;
    height:34px !important;
    flex:0 0 34px !important;
  }

  /* Three pillars — one card per row */
  .v7-services {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
    margin:0 !important;
    padding:14px var(--mobile-gutter) 28px !important;
  }

  .v7-service-card {
    min-height:0 !important;
    padding:22px 20px !important;
    border:1px solid rgba(240,215,148,.16) !important;
    border-radius:20px !important;
    background:linear-gradient(145deg,rgba(12,14,15,.82),rgba(20,16,11,.68)) !important;
    box-shadow:0 14px 32px rgba(0,0,0,.18) !important;
  }

  .v7-service-card h2 {
    font-size:2.35rem !important;
  }

  .v7-service-card h3 {
    font-size:.86rem !important;
  }

  .v7-service-card p {
    font-size:.84rem !important;
  }

  /* Lower sections */
  .owner-management,
  #obras,
  #orcamento {
    margin:0 !important;
    padding:30px var(--mobile-gutter) !important;
  }

  .owner-management > .wrap,
  #obras > .wrap,
  #orcamento > .wrap {
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    border-radius:0 !important;
  }

  .section-head {
    display:block !important;
    margin:0 0 18px !important;
  }

  .section-head h2 {
    margin:6px 0 0 !important;
    font-size:clamp(1.8rem,8vw,2.6rem) !important;
    line-height:1.06 !important;
  }

  .section-head p {
    max-width:none !important;
    margin:12px 0 0 !important;
    font-size:.88rem !important;
  }

  .service-grid {
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
  }

  .service-grid > .card {
    width:100% !important;
    margin:0 !important;
    border:1px solid rgba(240,215,148,.10) !important;
    border-radius:18px !important;
    background:var(--mobile-card) !important;
    box-shadow:none !important;
  }

  .service-grid .card-body {
    padding:18px !important;
  }

  .service-grid .card h3 {
    font-size:1.05rem !important;
  }

  .service-grid .card p {
    font-size:.84rem !important;
  }

  .booking,
  .form-grid {
    grid-template-columns:1fr !important;
  }

  .booking {
    padding:18px !important;
    background:var(--mobile-card) !important;
    border:1px solid rgba(240,215,148,.10) !important;
    box-shadow:none !important;
  }

  .footer {
    margin:0 !important;
    padding:24px 0 28px !important;
  }

  .footer > .wrap {
    width:calc(100% - 28px) !important;
    margin:auto !important;
  }
}


/* =====================================================
   APPROVED MOBILE MOCKUP — FINAL COMPOSITION
   2026-09-08
   Matches the approved visual: web-like CTA sizing, three cards
   side by side in each content group, and stronger vertical spacing
   between the four main groups.
===================================================== */

/* Android / mobile browser in "desktop site" mode:
   this is the layout shown in the approved mockup. */
@media (min-width:721px) and (max-width:1100px) and (hover:none) and (pointer:coarse) {

  :root{
    --mobile-gutter: 42px;
    --group-gap: 76px;
  }

  /* HERO — keep the visual proportions of the web version */
  .v7-hero-inner{
    width:calc(100% - 72px) !important;
    padding:82px 0 88px !important;
  }

  .sunhouse-horizontal-brand{
    width:min(360px,42vw) !important;
    margin:0 auto 34px !important;
  }

  .v7-copy{
    max-width:720px !important;
  }

  .v7-kicker{
    font-size:.9rem !important;
  }

  .v7-copy h1{
    max-width:720px !important;
    font-size:clamp(3.7rem,7.2vw,5.7rem) !important;
    line-height:.88 !important;
  }

  .v7-copy p{
    max-width:680px !important;
    font-size:1rem !important;
  }

  .v7-actions{
    display:flex !important;
    grid-template-columns:none !important;
    gap:14px !important;
    margin-top:24px !important;
  }

  .v7-btn{
    width:auto !important;
    min-width:220px !important;
    min-height:52px !important;
    padding:14px 20px !important;
    font-size:.78rem !important;
    justify-content:space-between !important;
  }

  .v7-btn.primary{
    min-width:300px !important;
  }

  /* GROUP 1 — properties */
  #alojamento{
    margin:-58px 0 0 !important;
    padding:0 var(--mobile-gutter) var(--group-gap) !important;
  }

  #alojamento > .wrap{
    width:100% !important;
    padding:0 !important;
  }

  .property-section-head{
    margin-bottom:18px !important;
  }

  .property-section-head-mobile h2{
    font-size:1.05rem !important;
    letter-spacing:.16em !important;
  }

  .property-carousel-shell{
    gap:12px !important;
  }

  .property-carousel{
    gap:18px !important;
    overflow-x:auto !important;
  }

  .property-carousel > .card{
    flex:0 0 calc((100% - 36px)/3) !important;
    min-width:calc((100% - 36px)/3) !important;
  }

  .property-carousel .photo{
    aspect-ratio:16/10 !important;
  }

  .property-carousel .card-body{
    padding:14px 12px 12px !important;
  }

  /* GROUP 2 — ALUGAR / GERIR / RENOVAR */
  .v7-services{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:22px !important;
    margin:0 !important;
    padding:0 var(--mobile-gutter) var(--group-gap) !important;
  }

  .v7-service-card{
    min-height:280px !important;
    padding:26px 24px !important;
    border-radius:22px !important;
  }

  .v7-service-card h2{
    font-size:2.65rem !important;
  }

  .v7-service-card h3{
    font-size:.9rem !important;
  }

  .v7-service-card p{
    font-size:.9rem !important;
  }

  /* GROUP 3 — owner management */
  .owner-management{
    padding:0 var(--mobile-gutter) var(--group-gap) !important;
  }

  .owner-management > .wrap{
    padding:0 !important;
  }

  .owner-management .section-head{
    display:block !important;
    margin-bottom:22px !important;
  }

  .owner-management .section-head h2{
    max-width:760px !important;
    font-size:2.7rem !important;
  }

  .owner-management .section-head p{
    max-width:760px !important;
    font-size:.94rem !important;
  }

  .owner-management .service-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:20px !important;
  }

  .owner-management .service-grid > .card{
    min-height:190px !important;
  }

  /* GROUP 4 — works */
  #obras{
    padding:0 var(--mobile-gutter) var(--group-gap) !important;
  }

  #obras .section-head{
    display:block !important;
    margin-bottom:22px !important;
  }

  #obras .section-head h2{
    max-width:860px !important;
    font-size:2.45rem !important;
  }

  #obras .service-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:20px !important;
  }

  #obras .service-grid > .card{
    min-height:165px !important;
  }

  /* Quote stays below as a separate fifth area. */
  #orcamento{
    padding:0 var(--mobile-gutter) 62px !important;
  }
}

/* Native narrow mobile keeps the same hierarchy, but still fits the screen. */
@media (max-width:720px){

  :root{
    --group-gap: 54px;
  }

  .v7-actions{
    display:flex !important;
    gap:9px !important;
    align-items:stretch !important;
  }

  .v7-btn{
    width:auto !important;
    min-width:0 !important;
    flex:1 1 0 !important;
    min-height:48px !important;
    padding:11px 12px !important;
    font-size:.66rem !important;
  }

  .v7-btn.primary{
    flex:1.18 1 0 !important;
  }

  #alojamento{
    padding-bottom:var(--group-gap) !important;
  }

  .v7-services{
    padding-bottom:var(--group-gap) !important;
  }

  .owner-management,
  #obras{
    padding-bottom:var(--group-gap) !important;
  }

  /* Use 3-up compact groups on wider phones; otherwise preserve readability. */
  @media (min-width:560px){
    .v7-services,
    .owner-management .service-grid,
    #obras .service-grid{
      grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }

    .v7-service-card{
      padding:18px 14px !important;
    }

    .v7-service-card h2{
      font-size:1.85rem !important;
    }

    .v7-service-card h3,
    .v7-service-card p,
    .service-grid .card p{
      font-size:.74rem !important;
    }

    .service-grid .card-body{
      padding:14px !important;
    }
  }
}


/* =====================================================
   TIGHT HERO → PROPERTY CAROUSEL GAP — 2026-09-08
   Approved: bring the carousel much closer to the slogan/CTAs.
===================================================== */
@media (max-width:720px), (max-width:1100px) and (hover:none) and (pointer:coarse){

  .v7-hero{
    min-height:auto !important;
  }

  .v7-hero-inner{
    min-height:auto !important;
    height:auto !important;
    padding-bottom:28px !important;
  }

  #alojamento{
    margin-top:0 !important;
  }
}

/* Narrow/native phone: extra-tight composition. */
@media (max-width:720px){
  .v7-hero-inner{
    padding-bottom:18px !important;
  }

  #alojamento{
    margin-top:0 !important;
  }
}

/* Android "desktop site" mobile viewport: keep the same compact spacing. */
@media (min-width:721px) and (max-width:1100px) and (hover:none) and (pointer:coarse){
  .v7-hero-inner{
    padding-bottom:24px !important;
  }

  #alojamento{
    margin-top:0 !important;
  }
}


/* =====================================================
   HERO → CAROUSEL SPACING x2 — 2026-09-08
   User-approved: double the current breathing room.
===================================================== */
@media (max-width:720px), (max-width:1100px) and (hover:none) and (pointer:coarse){
  .v7-hero-inner{
    padding-bottom:48px !important;
  }

  #alojamento{
    margin-top:0 !important;
  }
}

@media (max-width:720px){
  .v7-hero-inner{
    padding-bottom:36px !important;
  }
}

@media (min-width:721px) and (max-width:1100px) and (hover:none) and (pointer:coarse){
  .v7-hero-inner{
    padding-bottom:48px !important;
  }
}


/* =====================================================
   MOBILE FINAL VISUAL MATCH — 2026-09-08
   Match the approved screenshot:
   compact hero, 3-up property row, 3-up service row,
   continuous cover, stronger spacing between content groups.
===================================================== */

/* Phone using Android "desktop site" mode — matches supplied screenshot */
@media (min-width:721px) and (max-width:1100px) and (hover:none) and (pointer:coarse){

  :root{
    --mobile-gutter:34px;
    --mobile-section-gap:64px;
    --mobile-card-bg:rgba(8,11,13,.72);
  }

  body::before{
    background:
      linear-gradient(rgba(3,8,12,.08),rgba(3,8,12,.08)),
      url('/images/cover-distant-gulls.webp') center center / cover no-repeat !important;
  }

  /* Header */
  .v7-nav-inner{
    width:calc(100% - 36px) !important;
    min-height:62px !important;
  }

  .v7-greeting{
    font-size:.70rem !important;
  }

  .v7-lang{
    font-size:.68rem !important;
  }

  /* HERO */
  .v7-hero{
    min-height:auto !important;
  }

  .v7-hero-inner{
    width:calc(100% - 70px) !important;
    min-height:auto !important;
    height:auto !important;
    padding:66px 0 42px !important;
  }

  .sunhouse-horizontal-brand{
    width:min(330px,38vw) !important;
    margin:0 auto 28px !important;
  }

  .v7-copy{
    max-width:690px !important;
  }

  .v7-kicker{
    margin-bottom:7px !important;
    font-size:.82rem !important;
    letter-spacing:.28em !important;
  }

  .v7-copy h1{
    max-width:660px !important;
    margin-bottom:10px !important;
    font-size:clamp(3.3rem,6.8vw,5rem) !important;
    line-height:.88 !important;
  }

  .v7-copy p{
    max-width:650px !important;
    font-size:.92rem !important;
    line-height:1.42 !important;
  }

  .v7-actions{
    display:flex !important;
    gap:12px !important;
    margin-top:20px !important;
  }

  .v7-btn{
    min-height:48px !important;
    padding:12px 18px !important;
    font-size:.72rem !important;
  }

  .v7-btn.primary{
    min-width:290px !important;
  }

  .v7-btn:not(.primary){
    min-width:210px !important;
  }

  /* GROUP 1 — carousel */
  #alojamento{
    margin:0 !important;
    padding:0 var(--mobile-gutter) var(--mobile-section-gap) !important;
  }

  #alojamento > .wrap{
    width:100% !important;
    padding:0 !important;
  }

  .property-section-head{
    margin:0 0 14px !important;
  }

  .mobile-featured-title-row{
    align-items:center !important;
  }

  .property-section-head-mobile h2{
    font-size:.96rem !important;
    letter-spacing:.16em !important;
  }

  .mobile-view-all{
    padding:7px 11px !important;
    font-size:.60rem !important;
  }

  .property-carousel-shell{
    gap:10px !important;
  }

  .property-carousel{
    gap:14px !important;
  }

  .property-carousel > .card{
    flex:0 0 calc((100% - 28px)/3) !important;
    min-width:calc((100% - 28px)/3) !important;
  }

  .property-carousel .photo{
    aspect-ratio:1.58/1 !important;
    border-radius:16px 16px 0 0 !important;
  }

  .property-carousel .card-body{
    padding:10px 9px 9px !important;
    border-radius:0 0 16px 16px !important;
    background:linear-gradient(180deg,rgba(8,11,13,.80),rgba(8,11,13,.60)) !important;
  }

  .property-carousel .card h3{
    font-size:.90rem !important;
  }

  .property-carousel .meta{
    font-size:.62rem !important;
  }

  .property-carousel .price{
    max-width:96px !important;
    font-size:.72rem !important;
  }

  .property-carousel .property-room-stats{
    gap:10px !important;
    margin-top:7px !important;
    padding-top:8px !important;
  }

  .property-carousel-arrow{
    width:32px !important;
    height:32px !important;
    flex-basis:32px !important;
  }

  /* GROUP 2 — ALUGAR / GERIR / RENOVAR */
  .v7-services{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:18px !important;
    padding:0 var(--mobile-gutter) var(--mobile-section-gap) !important;
  }

  .v7-service-card{
    min-height:245px !important;
    padding:24px 20px !important;
    border-radius:20px !important;
    background:linear-gradient(145deg,rgba(9,12,14,.80),rgba(28,18,10,.64)) !important;
  }

  .v7-service-card h2{
    font-size:2.35rem !important;
  }

  .v7-service-card h3{
    font-size:.82rem !important;
    line-height:1.35 !important;
  }

  .v7-service-card p{
    font-size:.82rem !important;
  }

  /* GROUP 3 — owner management */
  .owner-management{
    padding:0 var(--mobile-gutter) var(--mobile-section-gap) !important;
  }

  .owner-management > .wrap{
    padding:0 !important;
  }

  .owner-management .section-head{
    margin-bottom:20px !important;
  }

  .owner-management .section-head h2{
    max-width:760px !important;
    font-size:2.55rem !important;
    line-height:1.04 !important;
  }

  .owner-management .section-head p{
    max-width:730px !important;
    font-size:.90rem !important;
  }

  .owner-management .service-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:18px !important;
  }

  .owner-management .service-grid > .card{
    min-height:160px !important;
    background:var(--mobile-card-bg) !important;
  }

  /* GROUP 4 — works */
  #obras{
    padding:0 var(--mobile-gutter) var(--mobile-section-gap) !important;
  }

  #obras .section-head{
    margin-bottom:20px !important;
  }

  #obras .section-head h2{
    font-size:2.35rem !important;
  }

  #obras .service-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:18px !important;
  }

  #obras .service-grid > .card{
    min-height:150px !important;
    background:var(--mobile-card-bg) !important;
  }

  #orcamento{
    padding:0 var(--mobile-gutter) 56px !important;
  }
}

/* Native mobile width: same composition, safely adapted */
@media (max-width:720px){

  :root{
    --mobile-section-gap:48px;
  }

  .v7-hero-inner{
    padding-bottom:32px !important;
  }

  #alojamento{
    padding-bottom:var(--mobile-section-gap) !important;
  }

  .v7-services{
    padding-bottom:var(--mobile-section-gap) !important;
  }

  .owner-management,
  #obras{
    padding-bottom:var(--mobile-section-gap) !important;
  }

  .v7-actions{
    gap:10px !important;
  }

  .v7-btn{
    min-height:48px !important;
  }
}


/* =====================================================
   CENTER + NARROW MOBILE QUOTE FORM — 2026-09-08
===================================================== */
@media (max-width:720px), (max-width:1100px) and (hover:none) and (pointer:coarse){
  #orcamento{
    width:100% !important;
    padding-left:var(--mobile-gutter,16px) !important;
    padding-right:var(--mobile-gutter,16px) !important;
  }

  #orcamento > .wrap{
    width:min(100%,760px) !important;
    max-width:760px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  #orcamento .section-head,
  #orcamento .booking{
    width:100% !important;
    max-width:680px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  #orcamento .section-head{
    text-align:center !important;
  }

  #orcamento .section-head h2{
    max-width:620px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  #orcamento .booking{
    padding:22px 24px !important;
    border-radius:20px !important;
  }
}

@media (max-width:720px){
  #orcamento > .wrap{
    max-width:560px !important;
  }

  #orcamento .section-head,
  #orcamento .booking{
    max-width:520px !important;
  }

  #orcamento .booking{
    padding:18px !important;
  }
}


/* =====================================================
   MOBILE SCALE BOOST — 2026-09-08
   Larger, hospitality-first mobile proportions inspired by
   modern booking interfaces. Real desktop remains untouched.
===================================================== */

/* Native phone */
@media (max-width:720px){
  :root{
    --mobile-gutter:12px;
    --mobile-section-gap:56px;
  }

  .v7-nav-inner{
    width:calc(100% - 24px) !important;
    min-height:68px !important;
  }

  .v7-greeting{
    font-size:.78rem !important;
  }

  .v7-lang{
    font-size:.74rem !important;
    gap:6px !important;
  }

  .v7-hero-inner{
    width:calc(100% - 24px) !important;
    padding:82px 0 42px !important;
  }

  .sunhouse-horizontal-brand{
    width:min(330px,90vw) !important;
    margin:0 auto 24px !important;
  }

  .v7-kicker{
    font-size:.78rem !important;
  }

  .v7-copy h1{
    font-size:clamp(3.05rem,14vw,4.45rem) !important;
    line-height:.88 !important;
    margin-bottom:14px !important;
  }

  .v7-copy p{
    font-size:.98rem !important;
    line-height:1.5 !important;
  }

  .v7-actions{
    margin-top:20px !important;
    gap:10px !important;
  }

  .v7-btn{
    min-height:52px !important;
    padding:13px 12px !important;
    font-size:.72rem !important;
  }

  #alojamento > .wrap{
    padding:0 var(--mobile-gutter) !important;
  }

  .property-section-head{
    margin-bottom:14px !important;
  }

  .property-section-head-mobile h2{
    font-size:1rem !important;
    letter-spacing:.11em !important;
  }

  .mobile-view-all{
    padding:8px 11px !important;
    font-size:.68rem !important;
  }

  .property-carousel-shell{
    gap:4px !important;
  }

  .property-carousel{
    gap:12px !important;
    padding-right:8px !important;
  }

  .property-carousel > .card{
    flex:0 0 94% !important;
    min-width:94% !important;
  }

  .property-carousel .photo{
    aspect-ratio:4/3 !important;
    border-radius:20px 20px 0 0 !important;
  }

  .property-carousel .card-body{
    padding:15px 14px 14px !important;
    border-radius:0 0 20px 20px !important;
  }

  .property-carousel .card h3{
    font-size:1.08rem !important;
  }

  .property-carousel .meta{
    font-size:.76rem !important;
  }

  .property-carousel .card-body > p{
    font-size:.88rem !important;
    line-height:1.45 !important;
  }

  .property-carousel .property-room-stats{
    gap:12px !important;
    margin-top:10px !important;
    padding-top:10px !important;
  }

  .property-carousel .property-room-stat strong{
    font-size:.92rem !important;
  }

  .property-carousel .property-room-stat small{
    font-size:.68rem !important;
  }

  .property-carousel .price{
    max-width:none !important;
    font-size:.88rem !important;
  }

  .property-card-link{
    min-height:42px !important;
    font-size:.78rem !important;
  }

  .property-carousel-arrow{
    width:36px !important;
    height:36px !important;
    flex:0 0 36px !important;
    font-size:1.35rem !important;
  }

  .v7-services{
    gap:16px !important;
    padding-left:var(--mobile-gutter) !important;
    padding-right:var(--mobile-gutter) !important;
  }

  .v7-service-card{
    min-height:230px !important;
    padding:26px 22px !important;
  }

  .v7-service-card h2{
    font-size:2.65rem !important;
  }

  .v7-service-card h3{
    font-size:.94rem !important;
  }

  .v7-service-card p{
    font-size:.9rem !important;
    line-height:1.5 !important;
  }

  .owner-management,
  #obras,
  #orcamento{
    padding-left:var(--mobile-gutter) !important;
    padding-right:var(--mobile-gutter) !important;
  }

  .section-head h2{
    font-size:clamp(2rem,9vw,2.8rem) !important;
  }

  .section-head p{
    font-size:.94rem !important;
    line-height:1.5 !important;
  }

  .service-grid{
    gap:14px !important;
  }

  .service-grid .card-body{
    padding:21px !important;
  }

  .service-grid .card h3{
    font-size:1.12rem !important;
  }

  .service-grid .card p{
    font-size:.9rem !important;
    line-height:1.5 !important;
  }
}

/* Android/mobile browser with “desktop site” enabled.
   Keep the interface visually large instead of shrinking into a 3-up grid. */
@media (min-width:721px) and (max-width:1100px) and (hover:none) and (pointer:coarse){
  :root{
    --mobile-gutter:28px;
    --mobile-section-gap:72px;
  }

  .v7-hero-inner{
    width:calc(100% - 56px) !important;
    padding-top:74px !important;
  }

  .sunhouse-horizontal-brand{
    width:min(410px,48vw) !important;
  }

  .v7-copy h1{
    font-size:clamp(4rem,8vw,6rem) !important;
  }

  .v7-copy p{
    font-size:1.08rem !important;
  }

  .v7-btn{
    min-height:54px !important;
    font-size:.82rem !important;
  }

  .property-carousel{
    gap:18px !important;
  }

  .property-carousel > .card{
    flex:0 0 calc((100% - 18px)/2) !important;
    min-width:calc((100% - 18px)/2) !important;
  }

  .property-carousel .photo{
    aspect-ratio:4/3 !important;
  }

  .property-carousel .card-body{
    padding:16px 14px 14px !important;
  }

  .property-carousel .card h3{
    font-size:1.05rem !important;
  }

  .property-carousel .meta,
  .property-carousel .price{
    font-size:.82rem !important;
  }

  .v7-services{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:20px !important;
  }

  .v7-service-card{
    min-height:280px !important;
  }

  .owner-management .service-grid,
  #obras .service-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  .owner-management .service-grid > .card,
  #obras .service-grid > .card{
    min-height:190px !important;
  }
}


/* =====================================================
   MOBILE 3-UP SERVICE GROUPS — 2026-09-08
   Keep all three related choices on the same row:
   ALUGAR / GERIR / RENOVAR, owner-management cards,
   and works cards. Avoid the visually unbalanced 2 + 1 wrap.
===================================================== */
@media (max-width:720px), (min-width:721px) and (max-width:1100px) and (hover:none) and (pointer:coarse){
  .v7-services,
  .owner-management .service-grid,
  #obras .service-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }

  .v7-services{
    gap:8px !important;
  }

  .v7-service-card{
    min-width:0 !important;
    min-height:190px !important;
    padding:18px 12px !important;
  }

  .v7-service-card h2{
    font-size:clamp(1.45rem,6vw,2.25rem) !important;
    line-height:.95 !important;
    overflow-wrap:anywhere !important;
  }

  .v7-service-card h3{
    font-size:clamp(.68rem,2.5vw,.86rem) !important;
    line-height:1.3 !important;
    overflow-wrap:anywhere !important;
  }

  .v7-service-card p{
    font-size:clamp(.66rem,2.35vw,.82rem) !important;
    line-height:1.4 !important;
  }

  .v7-service-card span{
    font-size:clamp(.58rem,2vw,.72rem) !important;
  }

  .owner-management .service-grid,
  #obras .service-grid{
    gap:8px !important;
  }

  .owner-management .service-grid > .card,
  #obras .service-grid > .card{
    min-width:0 !important;
    min-height:170px !important;
  }

  .owner-management .service-grid .card-body,
  #obras .service-grid .card-body{
    padding:15px 11px !important;
  }

  .owner-management .service-grid .card h3,
  #obras .service-grid .card h3{
    font-size:clamp(.76rem,2.8vw,.98rem) !important;
    line-height:1.25 !important;
    overflow-wrap:anywhere !important;
  }

  .owner-management .service-grid .card p,
  #obras .service-grid .card p{
    font-size:clamp(.66rem,2.3vw,.82rem) !important;
    line-height:1.4 !important;
    overflow-wrap:anywhere !important;
  }
}

@media (max-width:420px){
  .v7-services,
  .owner-management .service-grid,
  #obras .service-grid{
    gap:6px !important;
  }

  .v7-service-card{
    padding:16px 9px !important;
  }

  .owner-management .service-grid .card-body,
  #obras .service-grid .card-body{
    padding:13px 9px !important;
  }
}


/* =====================================================
   MOBILE HEADER NAVIGATION + GREETING EMPHASIS — 2026-09-08
===================================================== */
@media (max-width:720px), (max-width:1100px) and (hover:none) and (pointer:coarse){
  .v7-nav{
    z-index:50 !important;
  }

  .v7-nav-inner{
    position:relative !important;
    grid-template-columns:1fr auto auto !important;
    gap:10px !important;
  }

  .v7-greeting{
    grid-column:1 !important;
    font-size:clamp(.9rem,3.4vw,1.08rem) !important;
    line-height:1.08 !important;
    letter-spacing:.01em !important;
    color:#fff !important;
    text-shadow:0 2px 12px rgba(0,0,0,.48) !important;
  }

  .v7-greeting strong,
  .v7-greeting span{
    display:block !important;
  }

  .v7-greeting strong{
    font-size:1em !important;
    font-weight:750 !important;
  }

  .v7-greeting span{
    margin-top:3px !important;
    font-size:.76em !important;
    font-weight:500 !important;
    color:rgba(255,255,255,.82) !important;
  }

  .v7-mobile-menu-toggle{
    grid-column:2 !important;
    width:38px !important;
    height:38px !important;
    padding:9px !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    gap:4px !important;
    border:1px solid rgba(255,255,255,.26) !important;
    border-radius:50% !important;
    background:rgba(5,8,10,.34) !important;
    color:#fff !important;
    backdrop-filter:blur(8px) !important;
    -webkit-backdrop-filter:blur(8px) !important;
    cursor:pointer !important;
  }

  .v7-mobile-menu-toggle span{
    display:block !important;
    width:100% !important;
    height:1.5px !important;
    border-radius:99px !important;
    background:currentColor !important;
    transition:transform .2s ease, opacity .2s ease !important;
  }

  .v7-mobile-menu-toggle[aria-expanded="true"] span:nth-child(1){
    transform:translateY(5.5px) rotate(45deg) !important;
  }

  .v7-mobile-menu-toggle[aria-expanded="true"] span:nth-child(2){
    opacity:0 !important;
  }

  .v7-mobile-menu-toggle[aria-expanded="true"] span:nth-child(3){
    transform:translateY(-5.5px) rotate(-45deg) !important;
  }

  .v7-lang{
    grid-column:3 !important;
  }

  .v7-mobile-menu{
    position:absolute !important;
    top:58px !important;
    right:0 !important;
    width:min(310px,calc(100vw - 28px)) !important;
    padding:10px !important;
    display:grid !important;
    gap:3px !important;
    border:1px solid rgba(240,215,148,.18) !important;
    border-radius:18px !important;
    background:rgba(7,10,13,.94) !important;
    box-shadow:0 18px 48px rgba(0,0,0,.34) !important;
    backdrop-filter:blur(18px) !important;
    -webkit-backdrop-filter:blur(18px) !important;
  }

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

  .v7-mobile-menu a{
    display:block !important;
    padding:13px 14px !important;
    border-radius:11px !important;
    color:#fff !important;
    text-decoration:none !important;
    font-size:.82rem !important;
    font-weight:650 !important;
    letter-spacing:.02em !important;
  }

  .v7-mobile-menu a:active,
  .v7-mobile-menu a:focus-visible{
    background:rgba(232,196,111,.12) !important;
    outline:none !important;
  }
}

@media (min-width:1101px), (min-width:721px) and (hover:hover) and (pointer:fine){
  .v7-mobile-menu-toggle,
  .v7-mobile-menu{
    display:none !important;
  }
}




/* PROPERTY DETAIL MOBILE HIT-AREA FIX */
@media (max-width:720px), (max-width:1100px) and (hover:none) and (pointer:coarse) {
  .property-detail-nav{
    pointer-events:none !important;
  }

  .property-detail-nav .lang,
  .property-detail-nav .lang a{
    pointer-events:auto !important;
  }

  .property-detail-page{
    position:relative !important;
    z-index:60 !important;
  }

  .property-detail-page .property-close{
    position:relative !important;
    z-index:100 !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
  }
}


/* Align service cards consistently across links and buttons */
.v7-service-card,
.v7-service-card.v7-renovate {
    text-align: left !important;
}
.v7-service-card > div {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left !important;
}
.v7-service-card h3 {
    min-height: 2.6em;
}
.v7-service-card p {
    min-height: 2.8em;
}


/* Preserve the complete property photo inside carousel cards */
.property-carousel .photo {
    background: #f1eee8 !important;
}
.property-carousel .photo img {
    object-fit: contain !important;
    object-position: center !important;
    transform: none !important;
    image-rendering: auto;
}
.property-carousel .card:hover .photo img {
    transform: none !important;
}


/* Key arrival animation: the brand forms from the cover image */
.sunhouse-horizontal-brand { overflow: visible !important; }
.sunhouse-animated-key {
    position: absolute !important;
    z-index: 2 !important;
    left: -42%;
    top: 118%;
    width: 24% !important;
    margin: 0 !important;
    opacity: 0 !important;
    transform-origin: 50% 50%;
    pointer-events: none;
    animation: sunhouse-key-arrival 2.1s cubic-bezier(.2,.78,.22,1) .15s forwards;
}
.sunhouse-brand-key {
    position: relative;
    z-index: 1;
    opacity: 0;
    animation: sunhouse-key-static .2s ease 1.95s forwards;
}
@keyframes sunhouse-key-arrival {
    0% { opacity: 0; left: -42%; top: 118%; transform: scale(.28) rotate(-18deg); }
    12% { opacity: 1; }
    68% { opacity: 1; left: -4%; top: 56%; transform: scale(.72) rotate(7deg); }
    88% { opacity: 1; left: 1%; top: 50%; transform: scale(1.04) rotate(0deg); }
    100% { opacity: 0; left: 1%; top: 50%; transform: scale(1) rotate(0deg); }
}
@keyframes sunhouse-key-static { to { opacity: 1; } }

@media (min-width: 901px) {
    .sunhouse-horizontal-brand { transform: translateY(-74px) !important; }
}
@media (max-width: 900px) {
    .sunhouse-horizontal-brand { margin-top: -24px !important; }
}
@media (prefers-reduced-motion: reduce) {
    .sunhouse-animated-key { display: none !important; }
    .sunhouse-brand-key { opacity: 1 !important; animation: none !important; }
}


/* Refined key path: start at the cover lock and grow into the final mark */
.sunhouse-animated-key { left: 72%; top: 158%; }
@media (min-width: 901px) {
    .sunhouse-animated-key { animation-name: sunhouse-key-arrival-desktop !important; }
}
@keyframes sunhouse-key-arrival-desktop {
    0% { opacity: 0; left: 72%; top: 158%; transform: scale(.08) rotate(18deg); }
    12% { opacity: 1; }
    58% { opacity: 1; left: 43%; top: 96%; transform: scale(.46) rotate(12deg); }
    82% { opacity: 1; left: 10%; top: 58%; transform: scale(.88) rotate(3deg); }
    100% { opacity: 0; left: 1%; top: 50%; transform: scale(1) rotate(0deg); }
}
@media (max-width: 900px) {
    .sunhouse-animated-key { left: 68%; top: 132%; animation-name: sunhouse-key-arrival-mobile !important; }
}
@keyframes sunhouse-key-arrival-mobile {
    0% { opacity: 0; left: 68%; top: 132%; transform: scale(.08) rotate(18deg); }
    14% { opacity: 1; }
    60% { opacity: 1; left: 40%; top: 94%; transform: scale(.44) rotate(10deg); }
    84% { opacity: 1; left: 9%; top: 58%; transform: scale(.86) rotate(3deg); }
    100% { opacity: 0; left: 1%; top: 50%; transform: scale(1) rotate(0deg); }
}


/* Realistic cover-to-logo key flight */
.sunhouse-flying-key {
    position: absolute !important;
    z-index: 5 !important;
    display: block !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    opacity: 0;
    transform-origin: 50% 50%;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,.52)) drop-shadow(0 0 8px rgba(239,194,80,.28));
    pointer-events: none;
    will-change: transform, opacity;
}
.sunhouse-brand-key {
    opacity: 0;
    animation: none !important;
}


/* iPhone-sized screens: keep content readable and prevent compressed 3-column wrapping. */
@media (max-width: 480px) {
  .v7-services,
  .owner-management .service-grid,
  #obras .service-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .v7-service-card,
  .owner-management .service-grid > .card,
  #obras .service-grid > .card {
    min-height: 0 !important;
    padding: 22px 18px !important;
  }

  .v7-service-card h2 {
    font-size: clamp(2rem, 12vw, 2.8rem) !important;
  }

  .v7-service-card h3,
  .v7-service-card p {
    min-height: 0 !important;
  }

  .v7-actions {
    grid-template-columns: 1fr !important;
  }

  .v7-actions .v7-btn {
    width: 100% !important;
    min-width: 0 !important;
  }

  .property-carousel > .card {
    flex-basis: 92% !important;
    min-width: 92% !important;
  }
}


/* Safari iOS viewport and stacking safeguards. */
@supports (-webkit-touch-callout: none) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
    -webkit-text-size-adjust: 100%;
  }

  .v7-nav-inner,
  .v7-hero-inner {
    width: calc(100% - 24px) !important;
    max-width: none !important;
  }

  .v7-hero {
    min-height: 100svh !important;
    height: auto !important;
    overflow: hidden !important;
  }

  .v7-hero-inner {
    min-height: 100svh !important;
    padding-top: 76px !important;
    padding-bottom: 34px !important;
  }

  .sunhouse-horizontal-brand {
    z-index: 4 !important;
    transform: translateZ(0) !important;
  }

  .sunhouse-flying-key {
    z-index: 8 !important;
    -webkit-transform: translateZ(0);
  }

  .v7-services,
  .owner-management .service-grid,
  #obras .service-grid {
    grid-template-columns: 1fr !important;
  }
}


/* Cross-platform key animation contract: JS controls motion; static logo is always safe. */
.sunhouse-brand-key {
  opacity: 1;
  animation: none !important;
}
body.sunhouse-key-motion .sunhouse-brand-key {
  opacity: 0;
}
.sunhouse-flying-key {
  opacity: 0;
  transition: none;
  transform-origin: 50% 50%;
  -webkit-transform-origin: 50% 50%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  will-change: transform, opacity;
}


/* Frosted glass service cards on mobile Safari and Android. */
.v7-service-card,
.v7-service-card.v7-rent,
.v7-service-card.v7-manage,
.v7-service-card.v7-renovate {
  background: rgba(255,255,255,.14) !important;
  background-image: none !important;
  border: 1px solid rgba(255,255,255,.38) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.16) !important;
  -webkit-backdrop-filter: blur(16px) saturate(115%) !important;
  backdrop-filter: blur(16px) saturate(115%) !important;
}


/* Ensure service-card text never falls back to browser blue link styling. */
.v7-service-card,
.v7-service-card:visited,
.v7-service-card:hover,
.v7-service-card:focus,
.v7-service-card:active,
.v7-service-card h2,
.v7-service-card h3,
.v7-service-card p,
.v7-service-card span {
  color: #fff !important;
  text-decoration: none !important;
}
.v7-service-card h2,
.v7-service-card span {
  color: #f0cb73 !important;
}


/* Uniform white typography for Alugar / Gerir / Renovar. */
.v7-service-card,
.v7-service-card:visited,
.v7-service-card:hover,
.v7-service-card:focus,
.v7-service-card:active,
.v7-service-card h2,
.v7-service-card h3,
.v7-service-card p,
.v7-service-card span {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  text-decoration: none !important;
  text-shadow: 0 2px 12px rgba(0,0,0,.32) !important;
}


/* MOBILE PRODUCTION RESET — one stable iOS/Android layout, after legacy rules. */
@media (max-width: 720px), (max-width: 1100px) and (hover: none) and (pointer: coarse) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
    -webkit-text-size-adjust: 100% !important;
    background: #071019 url('/images/cover-distant-gulls.webp') center top / cover no-repeat !important;
    background-attachment: scroll !important;
  }

  body::before {
    display: none !important;
    content: none !important;
  }

  .v7-nav,
  main,
  .footer {
    position: relative !important;
    z-index: 2 !important;
  }

  .v7-nav {
    position: absolute !important;
    inset: 0 0 auto !important;
    background: transparent !important;
  }

  .v7-nav-inner {
    width: calc(100% - 24px) !important;
    min-height: 68px !important;
    padding-top: env(safe-area-inset-top) !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    gap: 8px !important;
  }

  .v7-greeting {
    grid-column: 1 !important;
    min-width: 0 !important;
    justify-self: start !important;
    color: #fff !important;
  }

  .v7-mobile-menu-toggle {
    grid-column: 2 !important;
    display: flex !important;
    z-index: 20 !important;
  }

  .v7-lang {
    grid-column: 3 !important;
    justify-self: end !important;
    white-space: nowrap !important;
    color: #fff !important;
  }

  .v7-hero {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    background-image: none !important;
  }

  .v7-hero-media,
  .v7-hero::before,
  .v7-overlay {
    display: none !important;
    background: none !important;
  }

  .v7-hero-inner {
    width: calc(100% - 24px) !important;
    min-height: 0 !important;
    height: auto !important;
    padding: calc(82px + env(safe-area-inset-top)) 0 40px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    transform: none !important;
  }

  .sunhouse-horizontal-brand {
    position: relative !important;
    inset: auto !important;
    order: 1 !important;
    width: min(310px, 86vw) !important;
    margin: 0 auto 22px !important;
    transform: none !important;
    z-index: 4 !important;
  }

  .v7-copy {
    order: 2 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
  }

  .v7-copy h1 {
    max-width: 100% !important;
    font-size: clamp(2.6rem, 13vw, 4rem) !important;
    line-height: .9 !important;
    letter-spacing: -.05em !important;
  }

  .v7-copy p {
    max-width: none !important;
    font-size: .96rem !important;
    line-height: 1.45 !important;
  }

  .v7-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .v7-btn {
    width: 100% !important;
    min-width: 0 !important;
  }

  #alojamento,
  #alojamento > .wrap,
  .v7-services,
  .owner-management,
  #obras,
  #orcamento,
  .footer {
    width: 100% !important;
    margin: 0 !important;
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    filter: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  #alojamento > .wrap {
    padding: 0 12px 48px !important;
  }

  .property-carousel-shell {
    width: 100% !important;
    gap: 6px !important;
  }

  .property-carousel {
    min-width: 0 !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    overscroll-behavior-x: contain !important;
  }

  .property-carousel > .card {
    flex: 0 0 92% !important;
    min-width: 92% !important;
  }

  .v7-services,
  .owner-management .service-grid,
  #obras .service-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 14px !important;
    padding: 0 12px 48px !important;
  }

  .v7-service-card,
  .v7-service-card:visited,
  .v7-service-card:hover,
  .v7-service-card:focus,
  .v7-service-card:active {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: rgba(255,255,255,.14) !important;
    border: 1px solid rgba(255,255,255,.38) !important;
    box-shadow: 0 18px 48px rgba(0,0,0,.16) !important;
    -webkit-backdrop-filter: blur(16px) saturate(115%) !important;
    backdrop-filter: blur(16px) saturate(115%) !important;
  }

  .v7-service-card h2,
  .v7-service-card h3,
  .v7-service-card p,
  .v7-service-card span {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }

  .owner-management,
  #obras,
  #orcamento {
    padding: 0 12px 48px !important;
  }

  .owner-management > .wrap,
  #obras > .wrap,
  #orcamento > .wrap {
    width: 100% !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
  }

  .footer {
    padding: 24px 12px !important;
  }
}


/* Readability pass — crisp white typography over the glass panels. */
.v7-copy,
.v7-copy h1,
.v7-copy p,
.v7-kicker,
.section-head h2,
.section-head p,
.service-grid .card h3,
.service-grid .card p,
.owner-management .gold,
#obras .gold {
  color: #fff !important;
  text-shadow: 0 2px 14px rgba(0,0,0,.58) !important;
}

.v7-kicker,
.section-head .gold,
.owner-management .gold,
#obras .gold {
  color: #f4d788 !important;
  font-weight: 800 !important;
}

.owner-management > .wrap,
#obras > .wrap,
#orcamento > .wrap,
#alojamento > .wrap {
  background: rgba(9, 13, 17, .28) !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  border-radius: 24px !important;
  -webkit-backdrop-filter: blur(16px) saturate(112%) !important;
  backdrop-filter: blur(16px) saturate(112%) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.16) !important;
}

.service-grid > .card,
.v7-service-card,
.property-carousel > .card .card-body {
  background: rgba(9, 13, 17, .28) !important;
  border-color: rgba(255,255,255,.34) !important;
  -webkit-backdrop-filter: blur(14px) saturate(112%) !important;
  backdrop-filter: blur(14px) saturate(112%) !important;
}

.service-grid .card p,
.section-head p,
.v7-copy p {
  color: rgba(255,255,255,.94) !important;
}


@media (max-width:720px) {
  .owner-management > .wrap,
  #obras > .wrap,
  #orcamento > .wrap,
  #alojamento > .wrap {
    border-radius: 20px !important;
    padding: 18px 14px !important;
  }

  .section-head h2 {
    font-size: clamp(1.9rem, 9vw, 2.8rem) !important;
  }

  .service-grid .card p,
  .section-head p,
  .v7-copy p {
    font-size: .94rem !important;
    line-height: 1.5 !important;
  }
}


/* =====================================================
   SUN HOUSE MOBILE — PREMIUM RESPONSIVE V8
===================================================== */

@media (max-width:1100px) and (hover:none), (max-width:720px){

html,body{overflow-x:clip!important}
body{padding-bottom:82px!important}

.v7-nav{
    position:absolute!important;
    top:0!important;
    background:transparent!important;
    border:0!important;
}

.v7-nav-inner{
    width:100%!important;
    min-height:78px!important;
    padding:10px 12px!important;
    display:grid!important;
    grid-template-columns:1fr auto auto!important;
    gap:8px!important;
    align-items:start!important;
}

.v7-greeting{
    display:block!important;
    color:#fff!important;
    font-size:.78rem!important;
    font-weight:900!important;
    line-height:1.12!important;
    max-width:100px!important;
    text-shadow:0 2px 10px rgba(0,0,0,.45)!important;
}

.v7-mobile-menu-toggle{
    position:static!important;
    width:38px!important;
    height:38px!important;
    border-radius:50%!important;
    background:rgba(20,20,20,.42)!important;
    backdrop-filter:blur(12px)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    margin:0!important;
}

.v7-lang{
    position:static!important;
    display:flex!important;
    gap:5px!important;
    align-items:center!important;
    padding:7px 6px!important;
    border-radius:999px!important;
    background:rgba(20,20,20,.25)!important;
    color:#fff!important;
    font-size:.67rem!important;
}
.v7-lang a{color:#fff!important}
.v7-lang a[aria-current="page"]{color:#f0c95f!important}

.v7-mobile-menu{
    position:absolute!important;
    top:62px!important;
    right:10px!important;
    left:auto!important;
    width:min(290px,calc(100vw - 20px))!important;
    padding:10px!important;
    border-radius:16px!important;
    background:rgba(15,15,15,.94)!important;
    backdrop-filter:blur(18px)!important;
}

.v7-hero{
    min-height:100svh!important;
    padding:0!important;
}

.v7-hero-media{
    object-position:center center!important;
}

.v7-overlay{
    background:
      linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.18) 32%,rgba(0,0,0,.62) 70%,rgba(0,0,0,.9) 100%)!important;
}

.v7-hero-inner{
    width:100%!important;
    min-height:100svh!important;
    padding:86px 18px 18px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-end!important;
    gap:0!important;
}

.sunhouse-horizontal-brand{
    position:absolute!important;
    top:72px!important;
    left:50%!important;
    right:auto!important;
    transform:translateX(-50%)!important;
    width:min(310px,66vw)!important;
    display:grid!important;
    grid-template-columns:72px 1fr!important;
    gap:8px!important;
    margin:0!important;
}
.sunhouse-brand-key{width:72px!important}
.sunhouse-brand-name{width:100%!important}

.v7-copy{
    width:100%!important;
    padding:0!important;
    margin-top:auto!important;
}

.v7-kicker{
    margin:0 0 8px!important;
    font-size:.68rem!important;
    letter-spacing:.34em!important;
}

.v7-copy h1{
    margin:0!important;
    font-size:clamp(2.65rem,12.8vw,4.1rem)!important;
    line-height:.86!important;
    max-width:100%!important;
}

.v7-copy > p{
    margin:13px 0 0!important;
    max-width:100%!important;
    color:#fff!important;
    font-size:.82rem!important;
    line-height:1.4!important;
}

.v7-actions{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
    margin-top:16px!important;
    max-width:none!important;
}

.v7-btn{
    min-width:0!important;
    min-height:52px!important;
    padding:0 12px!important;
    gap:7px!important;
    border-radius:999px!important;
    font-size:.75rem!important;
}
.v7-btn b{font-size:1.2rem!important}
.v7-homes-cta-icon,.v7-quote-icon{width:20px!important;height:20px!important;font-size:.92rem!important}
.v7-homes-cta-icon svg{width:19px!important;height:19px!important}

.v7-service-strip{
    display:grid!important;
    grid-template-columns:repeat(3,1fr)!important;
    gap:2px!important;
    margin-top:16px!important;
    max-width:none!important;
}
.v7-service-strip a{
    min-height:92px!important;
    padding:8px 5px!important;
    gap:2px!important;
    border-top:1px solid rgba(255,255,255,.12)!important;
}
.v7-service-strip-icon{font-size:1.3rem!important}
.v7-service-strip strong{font-size:.69rem!important}
.v7-service-strip small{font-size:.58rem!important;line-height:1.2!important}

#alojamento{
    padding:28px 0 42px!important;
    background:#f3f2ef!important;
}
#alojamento .wrap{
    width:100%!important;
    padding:0 14px!important;
}

.mobile-featured-title-row h2{
    font-size:.77rem!important;
    letter-spacing:.22em!important;
    color:#2b2b2b!important;
}
.mobile-view-all{font-size:.72rem!important;color:#b78a29!important}

.property-carousel{
    gap:12px!important;
    padding:0 0 8px!important;
    overflow-x:auto!important;
}

.property-carousel .property-card,
.property-carousel .demo-property-card{
    flex:0 0 min(88vw,470px)!important;
    border-radius:18px!important;
    scroll-snap-align:start!important;
}

.property-carousel .photo{
    aspect-ratio:1.34/1!important;
}

.property-carousel .card-body{
    padding:11px 12px 13px!important;
}
.property-card-heading h3{font-size:.92rem!important}
.property-carousel .meta{font-size:.7rem!important}
.property-carousel .property-room-stats{
    margin-top:9px!important;
    display:flex!important;
    gap:11px!important;
}
.property-carousel .property-room-stat small{display:none!important}
.property-carousel .property-room-stat strong{font-size:.72rem!important}
.property-carousel .price{
    margin-top:9px!important;
    font-size:.7rem!important;
    text-align:right!important;
}
.property-carousel .property-card-link{
    min-height:36px!important;
    padding:7px 11px!important;
    font-size:.7rem!important;
    margin-top:8px!important;
}

.property-carousel-arrow{
    width:36px!important;height:36px!important;font-size:1.25rem!important
}
.property-carousel-arrow.is-prev{left:8px!important}
.property-carousel-arrow.is-next{right:8px!important}

.v7-services{
    width:calc(100% - 18px)!important;
    margin:18px auto 46px!important;
    grid-template-columns:1fr!important;
    gap:9px!important;
    padding:0!important;
}
.v7-service-card{
    min-height:148px!important;
    padding:16px!important;
    border-radius:17px!important;
}
.v7-service-card h2{font-size:1.35rem!important}
.v7-service-card h3{font-size:.68rem!important;margin:3px 0 12px!important}
.v7-service-card p{font-size:.72rem!important;margin:0 0 10px!important}

.sunhouse-mobile-bottom-nav{
    position:fixed!important;
    left:9px!important;
    right:9px!important;
    bottom:8px!important;
    z-index:90!important;
    min-height:68px!important;
    display:grid!important;
    grid-template-columns:repeat(5,1fr)!important;
    align-items:center!important;
    padding:6px 5px!important;
    border:1px solid rgba(0,0,0,.08)!important;
    border-radius:22px!important;
    background:rgba(255,255,255,.96)!important;
    box-shadow:0 12px 34px rgba(0,0,0,.22)!important;
    backdrop-filter:blur(18px)!important;
}
.sunhouse-mobile-bottom-nav a,
.sunhouse-mobile-bottom-nav button{
    min-width:0!important;
    min-height:54px!important;
    padding:4px 2px!important;
    border:0!important;
    background:transparent!important;
    color:#171717!important;
    display:grid!important;
    place-items:center!important;
    align-content:center!important;
    gap:1px!important;
    border-radius:12px!important;
}
.sunhouse-mobile-bottom-nav span{font-size:1.3rem!important;line-height:1!important}
.sunhouse-mobile-bottom-nav small{font-size:.58rem!important;font-weight:750!important}
.sunhouse-mobile-bottom-nav .active{color:#d8a626!important}

.footer{padding-bottom:98px!important}

}

@media(max-width:390px){
    .v7-hero-inner{padding-left:12px!important;padding-right:12px!important}
    .v7-copy h1{font-size:clamp(2.35rem,12vw,3.25rem)!important}
    .v7-actions{grid-template-columns:1fr!important}
    .v7-service-strip a{min-height:82px!important}
    .v7-service-strip small{display:none!important}
    .sunhouse-horizontal-brand{width:min(270px,70vw)!important}
    .property-carousel .property-card,
    .property-carousel .demo-property-card{flex-basis:91vw!important}
}

@media(min-width:721px) and (max-width:1100px) and (hover:none){
    .v7-hero-inner{padding-left:30px!important;padding-right:30px!important}
    .v7-copy h1{font-size:clamp(4rem,8vw,6rem)!important}
    .sunhouse-horizontal-brand{width:min(420px,45vw)!important;top:90px!important}
    .property-carousel .property-card,
    .property-carousel .demo-property-card{flex-basis:min(64vw,620px)!important}
    .v7-services{grid-template-columns:repeat(3,1fr)!important}
}


/* =====================================================
   MOBILE — MANAGEMENT / WORKS CARDS HORIZONTAL
===================================================== */

@media (max-width:1100px) and (hover:none), (max-width:720px){

    .owner-management .service-grid,
    #obras .service-grid{
        display:flex!important;
        grid-template-columns:none!important;
        gap:10px!important;
        overflow-x:auto!important;
        overflow-y:hidden!important;
        scroll-snap-type:x mandatory!important;
        -webkit-overflow-scrolling:touch!important;
        scrollbar-width:none!important;
        padding:2px 14px 10px!important;
        margin-left:-14px!important;
        margin-right:-14px!important;
    }

    .owner-management .service-grid::-webkit-scrollbar,
    #obras .service-grid::-webkit-scrollbar{
        display:none!important;
    }

    .owner-management .service-grid > .card,
    #obras .service-grid > .card{
        flex:0 0 min(76vw,330px)!important;
        min-height:150px!important;
        height:auto!important;
        scroll-snap-align:start!important;
        border-radius:16px!important;
    }

    .owner-management .service-grid > .card .card-body,
    #obras .service-grid > .card .card-body{
        min-height:150px!important;
        padding:16px!important;
        display:flex!important;
        flex-direction:column!important;
        justify-content:flex-start!important;
    }

    .owner-management .service-grid > .card h3,
    #obras .service-grid > .card h3{
        margin:0 0 8px!important;
        font-size:.86rem!important;
    }

    .owner-management .service-grid > .card p,
    #obras .service-grid > .card p{
        margin:0!important;
        font-size:.72rem!important;
        line-height:1.45!important;
    }

    .owner-management,
    #obras{
        overflow:hidden!important;
    }
}

@media(max-width:390px){
    .owner-management .service-grid > .card,
    #obras .service-grid > .card{
        flex-basis:82vw!important;
    }
}


/* MOBILE V8 — reduce hero header-to-actions vertical distance by ~75% */
@media (max-width:1100px) and (hover:none), (max-width:720px){
    .v7-hero{min-height:58svh!important;}
    .v7-hero-inner{min-height:58svh!important;}
    .v7-hero-media{height:100%!important;}
    .v7-copy{margin-top:0!important;}
}
@media(max-width:390px){
    .v7-hero{min-height:60svh!important;}
    .v7-hero-inner{min-height:60svh!important;}
}


/* MOBILE V8 — fit all 3 management/work cards + compact booking panel */
@media (max-width:1100px) and (hover:none), (max-width:720px){
  .owner-management .service-grid,
  #obras .service-grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
    overflow:visible!important;
    padding:2px 0 8px!important;
    margin-left:0!important;
    margin-right:0!important;
  }
  .owner-management .service-grid > .card,
  #obras .service-grid > .card{
    min-width:0!important;
    width:auto!important;
    flex:none!important;
    min-height:118px!important;
    border-radius:13px!important;
  }
  .owner-management .service-grid > .card .card-body,
  #obras .service-grid > .card .card-body{
    min-height:118px!important;
    padding:10px 8px!important;
  }
  .owner-management .service-grid > .card h3,
  #obras .service-grid > .card h3{
    font-size:.67rem!important;
    line-height:1.18!important;
    margin-bottom:6px!important;
  }
  .owner-management .service-grid > .card p,
  #obras .service-grid > .card p{
    font-size:.58rem!important;
    line-height:1.32!important;
  }

  .property-detail-grid{
    display:block!important;
  }
  .property-booking-card{
    width:min(92vw,560px)!important;
    max-width:560px!important;
    margin:22px auto 0!important;
    padding:16px!important;
    border-radius:18px!important;
    position:relative!important;
    top:auto!important;
  }
  .property-booking-card h2{
    font-size:1.05rem!important;
    margin:8px 0 10px!important;
  }
  .property-booking-price{
    justify-content:center!important;
    text-align:center!important;
  }
  .property-calendar-card{
    max-width:460px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
  .property-booking-card form{
    max-width:460px!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}
@media(max-width:390px){
  .owner-management .service-grid > .card,
  #obras .service-grid > .card{
    flex-basis:auto!important;
  }
  .owner-management .service-grid > .card p,
  #obras .service-grid > .card p{
    font-size:.54rem!important;
  }
  .property-booking-card{
    width:94vw!important;
    padding:13px!important;
  }
}


/* =====================================================
   MOBILE V9 — compact hero + 3 property cards in one row
   2026-09-09
   Keeps the current Sun House cover image unchanged.
===================================================== */
@media (max-width:720px), (max-width:1100px) and (hover:none) and (pointer:coarse){

  /* Keep the current cover/background exactly as it is */
  body::before{
    background:
      linear-gradient(rgba(3,8,12,.10),rgba(3,8,12,.10)),
      url('/images/cover-distant-gulls.webp') center center / cover no-repeat !important;
  }

  /* Bring the slogan/content much closer to the header (~60% less empty space) */
  .v7-hero{
    min-height:50svh !important;
  }
  .v7-hero-inner{
    min-height:50svh !important;
    padding-top:72px !important;
    padding-bottom:12px !important;
    justify-content:flex-end !important;
  }
  .sunhouse-horizontal-brand{
    top:58px !important;
  }
  .v7-copy{
    margin-top:0 !important;
  }
  .v7-kicker{
    margin-bottom:4px !important;
  }
  .v7-copy h1{
    font-size:clamp(2.05rem,9.7vw,3.05rem) !important;
    line-height:.88 !important;
    margin-bottom:0 !important;
  }
  .v7-copy > p{
    margin-top:7px !important;
    font-size:.72rem !important;
    line-height:1.32 !important;
  }
  .v7-actions{
    margin-top:10px !important;
  }
  .v7-btn{
    min-height:42px !important;
    font-size:.64rem !important;
  }
  .v7-service-strip{
    margin-top:9px !important;
  }
  .v7-service-strip a{
    min-height:68px !important;
    padding:5px 3px !important;
  }
  .v7-service-strip-icon{
    font-size:1rem !important;
  }
  .v7-service-strip strong{
    font-size:.58rem !important;
  }
  .v7-service-strip small{
    font-size:.48rem !important;
  }

  /* Three property cards visible horizontally at the same time */
  #alojamento{
    padding-top:18px !important;
  }
  #alojamento .wrap{
    padding-left:10px !important;
    padding-right:10px !important;
  }
  .property-carousel-shell{
    position:relative !important;
    gap:0 !important;
  }
  .property-carousel{
    width:100% !important;
    display:flex !important;
    gap:7px !important;
    padding:0 0 6px !important;
    overflow-x:auto !important;
    scroll-snap-type:x proximity !important;
    scrollbar-width:none !important;
  }
  .property-carousel::-webkit-scrollbar{
    display:none !important;
  }
  .property-carousel .property-card,
  .property-carousel .demo-property-card,
  .property-carousel > .card{
    flex:0 0 calc((100% - 14px)/3) !important;
    min-width:calc((100% - 14px)/3) !important;
    max-width:calc((100% - 14px)/3) !important;
    border-radius:12px !important;
  }
  .property-carousel .photo{
    aspect-ratio:1.15/1 !important;
    border-radius:12px 12px 0 0 !important;
  }
  .property-featured-badge{
    top:6px !important;
    left:6px !important;
    padding:4px 6px !important;
    font-size:.48rem !important;
  }
  .photo-count{
    display:none !important;
  }
  .property-carousel .card-body{
    padding:7px 7px 8px !important;
    border-radius:0 0 12px 12px !important;
  }
  .property-card-heading h3,
  .property-carousel .card h3{
    font-size:.62rem !important;
    line-height:1.15 !important;
    margin:0 !important;
  }
  .property-carousel .meta{
    margin-top:3px !important;
    font-size:.50rem !important;
    line-height:1.15 !important;
  }
  .property-carousel .card-body > p{
    display:none !important;
  }
  .property-carousel .property-room-stats{
    gap:4px !important;
    margin-top:5px !important;
    padding-top:5px !important;
  }
  .property-carousel .property-room-stat{
    gap:2px !important;
  }
  .property-carousel .property-room-icon{
    width:12px !important;
    height:12px !important;
  }
  .property-carousel .property-room-icon svg{
    width:12px !important;
    height:12px !important;
  }
  .property-carousel .property-room-stat strong{
    font-size:.50rem !important;
  }
  .property-carousel .property-room-stat small{
    display:none !important;
  }
  .property-carousel .price{
    max-width:none !important;
    margin-top:5px !important;
    font-size:.49rem !important;
    line-height:1.15 !important;
    text-align:left !important;
  }
  .property-carousel .property-card-link{
    min-height:25px !important;
    margin-top:5px !important;
    padding:4px 5px !important;
    border-radius:999px !important;
    font-size:.50rem !important;
  }
  .property-carousel-arrow{
    width:28px !important;
    height:28px !important;
    font-size:1rem !important;
    z-index:4 !important;
  }
  .property-carousel-arrow.is-prev{
    left:2px !important;
  }
  .property-carousel-arrow.is-next{
    right:2px !important;
  }
}

@media (max-width:390px){
  .v7-hero,
  .v7-hero-inner{
    min-height:52svh !important;
  }
  .v7-copy h1{
    font-size:clamp(1.9rem,9.3vw,2.6rem) !important;
  }
  .property-carousel{
    gap:5px !important;
  }
  .property-carousel .property-card,
  .property-carousel .demo-property-card,
  .property-carousel > .card{
    flex-basis:calc((100% - 10px)/3) !important;
    min-width:calc((100% - 10px)/3) !important;
    max-width:calc((100% - 10px)/3) !important;
  }
}


/* =====================================================
   MOBILE V9.1 — device-width finishing pass
   2026-09-09
   320–374: readable 2.5-card preview
   375–720: 3 full cards
   touch tablets: 3 larger cards
===================================================== */

/* Very small phones: don't crush labels into unreadable 3-up cards. */
@media (max-width:374px){
  #alojamento .wrap{
    padding-left:9px !important;
    padding-right:9px !important;
  }
  .property-carousel{
    gap:6px !important;
    padding-right:22% !important;
  }
  .property-carousel .property-card,
  .property-carousel .demo-property-card,
  .property-carousel > .card{
    flex:0 0 38% !important;
    min-width:38% !important;
    max-width:38% !important;
  }
  .property-card-heading h3,
  .property-carousel .card h3{
    font-size:.66rem !important;
  }
  .property-carousel .meta{
    font-size:.53rem !important;
  }
  .property-carousel .price,
  .property-carousel .property-card-link,
  .property-carousel .property-room-stat strong{
    font-size:.52rem !important;
  }
}

/* Standard / large phones: exactly three cards across. */
@media (min-width:375px) and (max-width:720px){
  .property-carousel{
    gap:7px !important;
    padding-right:0 !important;
  }
  .property-carousel .property-card,
  .property-carousel .demo-property-card,
  .property-carousel > .card{
    flex:0 0 calc((100% - 14px)/3) !important;
    min-width:calc((100% - 14px)/3) !important;
    max-width:calc((100% - 14px)/3) !important;
  }
}

/* Touch tablets / phones requesting desktop view: three roomier cards. */
@media (min-width:721px) and (max-width:1100px) and (hover:none) and (pointer:coarse){
  #alojamento .wrap{
    padding-left:20px !important;
    padding-right:20px !important;
  }
  .property-carousel{
    gap:14px !important;
    padding-right:0 !important;
  }
  .property-carousel .property-card,
  .property-carousel .demo-property-card,
  .property-carousel > .card{
    flex:0 0 calc((100% - 28px)/3) !important;
    min-width:calc((100% - 28px)/3) !important;
    max-width:calc((100% - 28px)/3) !important;
  }
  .property-card-heading h3,
  .property-carousel .card h3{
    font-size:.82rem !important;
  }
  .property-carousel .meta{
    font-size:.64rem !important;
  }
  .property-carousel .price,
  .property-carousel .property-card-link{
    font-size:.62rem !important;
  }
}


/* =====================================================
   DESKTOP V9 — adapt approved compact mobile direction
   2026-09-09
   Desktop-specific proportions; current cover preserved.
===================================================== */
@media (min-width:1101px) and (hover:hover){

  /* Preserve the current cover and its desktop crop. */
  .v7-hero-media{
    display:block !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
  }

  /* Compact hero: same visual direction as mobile, desktop proportions. */
  .v7-hero{
    min-height:72vh !important;
    height:72vh !important;
  }
  .v7-hero-inner{
    min-height:72vh !important;
    height:72vh !important;
    padding-top:92px !important;
    padding-bottom:42px !important;
    align-items:center !important;
  }
  .v7-copy{
    align-self:end !important;
    margin-bottom:0 !important;
  }
  .v7-kicker{
    margin-bottom:8px !important;
  }
  .v7-copy h1{
    margin-bottom:0 !important;
    font-size:clamp(3.7rem,5.6vw,6.2rem) !important;
    line-height:.88 !important;
  }
  .v7-copy > p{
    margin-top:12px !important;
    max-width:680px !important;
  }
  .v7-actions{
    margin-top:18px !important;
  }
  .v7-service-strip{
    margin-top:18px !important;
  }

  /* Property area: three balanced cards in one desktop row. */
  #alojamento{
    padding-top:42px !important;
  }
  #alojamento > .wrap{
    width:min(1440px,calc(100% - 72px)) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .property-carousel-shell{
    width:100% !important;
  }
  .property-carousel{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:22px !important;
    overflow:visible !important;
    scroll-snap-type:none !important;
    padding:0 !important;
  }
  .property-carousel > .card,
  .property-carousel .property-card,
  .property-carousel .demo-property-card{
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
  }
  .property-carousel .photo{
    aspect-ratio:16/10 !important;
  }
  .property-carousel .card-body{
    padding:16px 17px 17px !important;
  }
  .property-carousel .card h3,
  .property-card-heading h3{
    font-size:1.08rem !important;
  }
  .property-carousel .meta{
    font-size:.78rem !important;
  }
  .property-carousel .card-body > p{
    display:-webkit-box !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    overflow:hidden !important;
    margin-top:8px !important;
  }
  .property-carousel .property-room-stats{
    margin-top:12px !important;
  }
  .property-carousel .price{
    margin-top:12px !important;
  }

  /* Grid does not need carousel arrows on desktop. */
  .property-carousel-arrow{
    display:none !important;
  }
}


/* =====================================================
   V9.2 — compact hero composition across ALL viewports
   2026-09-09
   Match approved visual: less logo-to-slogan void,
   smaller CTAs, preserve current cover.
===================================================== */

/* Phones + touch devices */
@media (max-width:720px), (min-width:721px) and (max-width:1100px) and (hover:none) and (pointer:coarse){
  .v7-hero,
  .v7-hero-inner{
    min-height:44svh !important;
  }
  .v7-hero{
    height:auto !important;
  }
  .v7-hero-inner{
    height:auto !important;
    padding-top:64px !important;
    padding-bottom:10px !important;
    justify-content:flex-end !important;
  }
  .sunhouse-horizontal-brand{
    top:46px !important;
    width:min(285px,62vw) !important;
  }
  .v7-copy{
    margin-top:0 !important;
  }
  .v7-copy h1{
    font-size:clamp(1.95rem,9vw,2.85rem) !important;
    line-height:.87 !important;
  }
  .v7-copy > p{
    margin-top:6px !important;
    font-size:.68rem !important;
    line-height:1.28 !important;
  }
  .v7-actions{
    margin-top:8px !important;
    gap:7px !important;
  }
  .v7-btn{
    min-height:36px !important;
    padding:7px 10px !important;
    font-size:.57rem !important;
  }
  .v7-homes-cta-icon,
  .v7-quote-icon{
    width:16px !important;
    height:16px !important;
    font-size:.75rem !important;
  }
  .v7-homes-cta-icon svg{
    width:15px !important;
    height:15px !important;
  }
  .v7-btn b{
    font-size:.95rem !important;
  }
  .v7-service-strip{
    margin-top:7px !important;
  }
  .v7-service-strip a{
    min-height:56px !important;
    padding:4px 3px !important;
  }
  .v7-service-strip-icon{font-size:.9rem !important}
  .v7-service-strip strong{font-size:.54rem !important}
  .v7-service-strip small{font-size:.44rem !important}
}

/* Very small phones */
@media (max-width:374px){
  .v7-hero,
  .v7-hero-inner{
    min-height:48svh !important;
  }
  .sunhouse-horizontal-brand{
    width:min(250px,64vw) !important;
  }
  .v7-copy h1{
    font-size:clamp(1.72rem,8.8vw,2.35rem) !important;
  }
  .v7-actions{
    grid-template-columns:1fr 1fr !important;
  }
}

/* Desktop / laptop — same compact composition, scaled appropriately */
@media (min-width:1101px) and (hover:hover){
  .v7-hero,
  .v7-hero-inner{
    min-height:62vh !important;
    height:62vh !important;
  }
  .v7-hero-inner{
    padding-top:78px !important;
    padding-bottom:28px !important;
  }
  .v7-copy h1{
    font-size:clamp(3.25rem,4.8vw,5.25rem) !important;
    line-height:.88 !important;
  }
  .v7-copy > p{
    margin-top:9px !important;
  }
  .v7-actions{
    margin-top:13px !important;
    gap:10px !important;
  }
  .v7-btn{
    min-height:42px !important;
    padding:8px 14px !important;
    font-size:.68rem !important;
  }
  .v7-service-strip{
    margin-top:12px !important;
  }
}


/* =====================================================
   V9.3 — 3 visible cards + horizontal browsing everywhere
   2026-09-09
===================================================== */

/* Desktop/laptop: keep three cards visible and allow browsing remaining homes with arrows/track. */
@media (min-width:1101px) and (hover:hover){
  .property-carousel-shell{
    position:relative !important;
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
  }
  .property-carousel{
    display:flex !important;
    grid-template-columns:none !important;
    gap:22px !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    scroll-snap-type:x mandatory !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:none !important;
    padding:0 !important;
  }
  .property-carousel::-webkit-scrollbar{
    display:none !important;
  }
  .property-carousel > .card,
  .property-carousel .property-card,
  .property-carousel .demo-property-card{
    flex:0 0 calc((100% - 44px)/3) !important;
    min-width:calc((100% - 44px)/3) !important;
    max-width:calc((100% - 44px)/3) !important;
    scroll-snap-align:start !important;
  }
  .property-carousel-arrow{
    display:grid !important;
    place-items:center !important;
    width:42px !important;
    height:42px !important;
    flex:0 0 42px !important;
    border-radius:50% !important;
    z-index:5 !important;
  }
  .property-carousel-arrow.is-prev{
    left:0 !important;
  }
  .property-carousel-arrow.is-next{
    right:0 !important;
  }
}

/* Touch devices: preserve swipe behavior with 3-up where space allows. */
@media (max-width:1100px) and (hover:none), (max-width:720px){
  .property-carousel{
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    scroll-snap-type:x proximity !important;
    overscroll-behavior-x:contain !important;
  }
}


/* =====================================================
   MOBILE V9.4 — final approved phone composition
   2026-09-09
   Normal mobile only. Desktop/tablet rules remain intact.
===================================================== */
@media (min-width:375px) and (max-width:720px){

  /* Hero: clean stacking — greeting, centered brand, copy, compact CTAs */
  .v7-nav-inner{
    min-height:62px !important;
    padding:8px 14px !important;
    grid-template-columns:1fr auto auto !important;
    align-items:start !important;
  }
  .v7-greeting{
    max-width:88px !important;
    font-size:.68rem !important;
    line-height:1.15 !important;
  }
  .v7-mobile-menu-toggle{
    width:34px !important;
    height:34px !important;
  }
  .v7-lang{
    padding:6px 7px !important;
    font-size:.62rem !important;
  }

  .v7-hero,
  .v7-hero-inner{
    min-height:56svh !important;
  }
  .v7-hero-inner{
    padding:66px 16px 12px !important;
    justify-content:flex-end !important;
  }
  .sunhouse-horizontal-brand{
    top:50px !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    width:min(270px,60vw) !important;
    grid-template-columns:62px 1fr !important;
    gap:7px !important;
    z-index:3 !important;
  }
  .sunhouse-brand-key{
    width:62px !important;
  }

  .v7-copy{
    position:relative !important;
    z-index:2 !important;
    width:100% !important;
    margin-top:0 !important;
  }
  .v7-kicker{
    margin:0 0 5px !important;
    font-size:.60rem !important;
    letter-spacing:.30em !important;
  }
  .v7-copy h1{
    max-width:92% !important;
    font-size:clamp(2rem,9.3vw,2.85rem) !important;
    line-height:.88 !important;
    letter-spacing:-.045em !important;
  }
  .v7-copy > p{
    max-width:94% !important;
    margin-top:7px !important;
    font-size:.69rem !important;
    line-height:1.32 !important;
  }

  .v7-actions{
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    margin-top:10px !important;
  }
  .v7-btn{
    min-height:38px !important;
    padding:7px 10px !important;
    border-radius:999px !important;
    font-size:.59rem !important;
    line-height:1.1 !important;
    white-space:nowrap !important;
  }

  .v7-service-strip{
    grid-template-columns:repeat(3,1fr) !important;
    gap:2px !important;
    margin-top:10px !important;
  }
  .v7-service-strip a{
    min-height:62px !important;
    padding:5px 3px !important;
  }
  .v7-service-strip-icon{font-size:.95rem !important}
  .v7-service-strip strong{font-size:.56rem !important}
  .v7-service-strip small{
    display:block !important;
    font-size:.46rem !important;
    line-height:1.18 !important;
  }

  /* Homes: three readable cards, no oversized badge/body */
  #alojamento{
    padding:18px 0 28px !important;
  }
  #alojamento > .wrap,
  #alojamento .wrap{
    width:100% !important;
    padding:14px 10px !important;
    border-radius:18px !important;
  }
  .property-section-head{
    margin-bottom:10px !important;
  }
  .mobile-featured-title-row h2{
    font-size:.66rem !important;
    letter-spacing:.20em !important;
  }
  .mobile-view-all{
    padding:6px 8px !important;
    font-size:.58rem !important;
  }
  .property-carousel-shell{
    gap:0 !important;
  }
  .property-carousel{
    gap:7px !important;
    padding:0 0 5px !important;
  }
  .property-carousel .property-card,
  .property-carousel .demo-property-card,
  .property-carousel > .card{
    flex:0 0 calc((100% - 14px)/3) !important;
    min-width:calc((100% - 14px)/3) !important;
    max-width:calc((100% - 14px)/3) !important;
    border-radius:12px !important;
  }
  .property-carousel .photo{
    aspect-ratio:1.18/1 !important;
    border-radius:12px 12px 0 0 !important;
  }
  .property-featured-badge{
    top:5px !important;
    left:5px !important;
    max-width:calc(100% - 10px) !important;
    padding:3px 5px !important;
    font-size:.43rem !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }
  .property-carousel .card-body{
    min-height:0 !important;
    padding:7px 6px 8px !important;
    border-radius:0 0 12px 12px !important;
  }
  .property-card-heading{
    min-height:0 !important;
  }
  .property-card-heading h3,
  .property-carousel .card h3{
    font-size:.58rem !important;
    line-height:1.16 !important;
    display:-webkit-box !important;
    -webkit-line-clamp:2 !important;
    -webkit-box-orient:vertical !important;
    overflow:hidden !important;
  }
  .property-carousel .meta{
    margin-top:3px !important;
    font-size:.46rem !important;
    line-height:1.1 !important;
  }
  .property-carousel .card-body > p{
    display:none !important;
  }
  .property-carousel .property-room-stats{
    gap:3px !important;
    margin-top:5px !important;
    padding-top:5px !important;
  }
  .property-carousel .property-room-icon,
  .property-carousel .property-room-icon svg{
    width:10px !important;
    height:10px !important;
  }
  .property-carousel .property-room-stat strong{
    font-size:.46rem !important;
  }
  .property-carousel .price{
    margin-top:5px !important;
    font-size:.45rem !important;
    line-height:1.12 !important;
  }
  .property-carousel .property-card-link{
    min-height:23px !important;
    margin-top:5px !important;
    padding:3px 5px !important;
    font-size:.46rem !important;
  }
  .property-carousel-arrow{
    width:25px !important;
    height:25px !important;
    font-size:.9rem !important;
  }

  /* Keep the 3 service cards balanced in one row */
  .v7-services{
    width:calc(100% - 16px) !important;
    margin:10px auto 34px !important;
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:7px !important;
  }
  .v7-service-card{
    min-height:126px !important;
    padding:12px 9px !important;
    border-radius:14px !important;
  }
  .v7-service-card h2{
    font-size:1rem !important;
    line-height:1 !important;
  }
  .v7-service-card h3{
    margin:3px 0 8px !important;
    font-size:.54rem !important;
    line-height:1.18 !important;
  }
  .v7-service-card p{
    margin:0 0 7px !important;
    font-size:.54rem !important;
    line-height:1.28 !important;
  }
  .v7-service-card span{
    font-size:.50rem !important;
  }

  /* Bottom nav: five balanced actions; chat no longer dominates */
  .sunhouse-mobile-bottom-nav{
    left:8px !important;
    right:8px !important;
    bottom:7px !important;
    min-height:62px !important;
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    padding:5px 4px !important;
    border-radius:20px !important;
  }
  .sunhouse-mobile-bottom-nav a,
  .sunhouse-mobile-bottom-nav button{
    min-height:49px !important;
    padding:3px 1px !important;
  }
  .sunhouse-mobile-bottom-nav span{
    font-size:1.08rem !important;
  }
  .sunhouse-mobile-bottom-nav small{
    font-size:.51rem !important;
  }
}
