.imovel-main { padding-bottom: 74px; background: linear-gradient(#f8fbfe 0, #fff 220px); }
.imovel-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; padding: 24px 0 20px; color: var(--home-muted); font-size: 13px; }
.imovel-breadcrumb a { color: var(--home-blue); }
.imovel-breadcrumb a:hover { text-decoration: underline; }
.imovel-breadcrumb > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.imovel-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.imovel-heading .home-eyebrow { margin-bottom: 6px; }
.imovel-heading h1 { margin: 0; color: #123252; font-size: clamp(29px, 3.5vw, 44px); font-weight: 800; letter-spacing: -.035em; line-height: 1.12; }
.imovel-code { margin: 8px 0 0; color: var(--home-muted); font-size: 14px; font-weight: 650; }
.imovel-favorite-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-top: 10px; padding: 8px 13px; border: 1px solid #cedce9; border-radius: 9px; background: #fff; color: var(--home-navy); font: inherit; font-size: 13px; font-weight: 750; }
.imovel-favorite-toggle:hover { border-color: var(--home-blue); background: #f3f9fd; }
.imovel-favorite-toggle .fa, .imovel-favorite-toggle[aria-pressed="true"] { color: #c7364d; }
.imovel-share { display: inline-flex; align-items: center; gap: 9px; flex: none; padding: 11px 15px; border: 1px solid #aad8ba; border-radius: 9px; color: #087d34; font-size: 13px; font-weight: 750; }
.imovel-share:hover { background: #edfbf1; }
.imovel-share .fa { font-size: 18px; }

.imovel-gallery { position: relative; margin-bottom: 27px; }
.imovel-gallery-grid { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 8px; height: clamp(390px, 44vw, 550px); overflow: hidden; border-radius: 15px; background: #e8f1f8; }
.imovel-gallery-tile { position: relative; min-width: 0; min-height: 0; padding: 0; overflow: hidden; border: 0; background: #e8f1f8; color: #fff; cursor: zoom-in; }
.imovel-gallery-tile.is-main { grid-row: 1 / 3; }
.imovel-gallery-tile img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.imovel-gallery-tile:hover img { transform: scale(1.025); }
.imovel-gallery-more { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(9,40,68,.62); font-size: clamp(19px, 2vw, 27px); font-weight: 800; }
.imovel-gallery-count-1 { grid-template-columns: 1fr; }
.imovel-gallery-count-1 .is-main { grid-row: auto; }
.imovel-gallery-count-2, .imovel-gallery-count-3, .imovel-gallery-count-4 { grid-template-columns: 2fr 1fr; }
.imovel-gallery-count-2 .is-main { grid-row: 1 / 3; }
.imovel-gallery-count-2 .imovel-gallery-tile:not(.is-main) { grid-row: 1 / 3; }
.imovel-gallery-count-4 { grid-template-rows: repeat(3, minmax(0, 1fr)); }
.imovel-gallery-count-4 .is-main { grid-row: 1 / 4; }
.imovel-all-photos { position: absolute; right: 17px; bottom: 17px; display: inline-flex; align-items: center; gap: 8px; min-height: 39px; padding: 8px 13px; border: 1px solid #d5e1ec; border-radius: 8px; background: #fff; color: var(--home-navy); font-size: 12px; font-weight: 750; box-shadow: 0 4px 12px rgba(0,0,0,.14); }
.imovel-all-photos:hover { background: #eef7fd; }
.imovel-no-photo { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 350px; margin-bottom: 25px; border-radius: 14px; background: #eaf4fb; color: #58708b; font-size: 17px; font-weight: 650; }
.imovel-no-photo .fa { font-size: 29px; }

.imovel-main-grid { display: grid; grid-template-columns: minmax(0, 1.95fr) minmax(285px, 1fr); align-items: start; gap: 34px; }
.imovel-content { min-width: 0; }
.imovel-facts { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 29px; padding: 0; list-style: none; }
.imovel-facts li { display: inline-flex; align-items: center; gap: 8px; min-height: 39px; padding: 8px 12px; border: 1px solid var(--home-border); border-radius: 8px; background: #f5f9fd; color: #244b70; font-size: 13px; font-weight: 650; }
.imovel-facts .imovel-distance { border-color: #b5d8ef; background: #eaf5fc; color: #123f68; font-weight: 800; }
.imovel-facts .fa { width: 16px; color: var(--home-blue); text-align: center; }
.imovel-section { padding: 25px 0; border-top: 1px solid var(--home-border); }
.imovel-section h2 { margin: 0 0 14px; color: #123252; font-size: clamp(23px, 2vw, 28px); font-weight: 800; letter-spacing: -.025em; }
.imovel-description { max-width: 75ch; margin: 0; color: #365575; font-size: 15px; line-height: 1.75; white-space: pre-line; }
.imovel-amenities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.imovel-amenities li { display: flex; align-items: center; gap: 12px; min-height: 50px; padding: 10px 12px; border: 1px solid #edf2f7; border-radius: 9px; background: #f8fbfe; font-size: 14px; font-weight: 650; }
.imovel-amenities .fa { width: 24px; color: var(--home-blue); font-size: 21px; text-align: center; }
.imovel-section-note { margin: -7px 0 18px; color: var(--home-muted); font-size: 13px; }
.imovel-calendar-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.imovel-calendar-card { min-width: 0; padding: 17px; border: 1px solid var(--home-border); border-radius: 13px; background: #fff; box-shadow: 0 6px 22px rgba(17,50,82,.06); }
.imovel-calendar-header { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.imovel-calendar-header h3 { margin: 0; color: var(--home-navy); font-size: 17px; font-weight: 800; }
.imovel-calendar-icon { display: inline-flex; align-items: center; justify-content: center; width: 35px; height: 35px; flex: none; border-radius: 8px; background: #eaf4fb; color: var(--home-blue); font-size: 17px; }
.imovel-calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.imovel-calendar-weekday { padding: 3px 0 6px; color: var(--home-muted); font-size: 11px; font-weight: 750; text-align: center; }
.imovel-calendar-day, .imovel-calendar-empty { display: flex; align-items: center; justify-content: center; min-width: 0; aspect-ratio: 1; border-radius: 7px; font-size: 12px; font-weight: 700; }
.imovel-calendar-day.is-available, .imovel-availability-legend .is-available { background: #d8f2e0; color: #176038; }
.imovel-calendar-day.is-unavailable, .imovel-availability-legend .is-unavailable { background: #edf1f5; color: #697c8e; }
.imovel-calendar-day.is-unrecorded, .imovel-availability-legend .is-unrecorded { border: 1px dashed #d9e2ea; background: #fff; color: #8293a3; }
.imovel-availability-legend { display: flex; flex-wrap: wrap; gap: 9px 17px; margin: 17px 0 0; color: var(--home-muted); font-size: 12px; }
.imovel-availability-legend span { display: inline-flex; align-items: center; gap: 6px; }
.imovel-availability-legend i { display: inline-block; width: 13px; height: 13px; border-radius: 3px; }
.imovel-map { overflow: hidden; border-radius: 11px; background: #edf3f8; }
.imovel-map iframe { display: block; width: 100%; height: 370px; border: 0; }
.imovel-contact { position: sticky; top: 22px; }
.imovel-contact-card { padding: 25px; border: 1px solid var(--home-border); border-radius: 14px; background: #fff; box-shadow: 0 12px 35px rgba(17,50,82,.1); }
.imovel-contact-icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 11px; background: #fff4bd; color: var(--home-navy); font-size: 20px; }
.imovel-contact-card h2 { margin: 15px 0 7px; color: #123252; font-size: 25px; letter-spacing: -.025em; line-height: 1.17; }
.imovel-contact-card p { margin: 0 0 18px; color: var(--home-muted); font-size: 14px; }
.imovel-contact-code { display: block; margin-bottom: 16px; padding: 10px 0; border-top: 1px solid var(--home-border); border-bottom: 1px solid var(--home-border); font-size: 13px; font-weight: 750; }
.imovel-contact-card .home-whatsapp { display: flex; width: 100%; padding: 0 11px; font-size: 13px; }
.imovel-call { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 15px; color: var(--home-blue); font-size: 13px; font-weight: 700; }
.imovel-call:hover { text-decoration: underline; }
.imovel-related { margin-top: 55px; padding-top: 34px; border-top: 1px solid var(--home-border); }
.imovel-related .home-section-heading { margin-bottom: 20px; }
.imovel-not-found { max-width: 720px; margin: 40px auto 80px; padding: 50px 25px; border-radius: 14px; background: #f3f9fd; text-align: center; }
.imovel-not-found > .fa { color: var(--home-blue); font-size: 39px; }
.imovel-not-found h1 { margin: 13px 0 6px; }
.imovel-not-found p { color: var(--home-muted); }
.imovel-not-found .home-outline-button { margin-top: 10px; }
.imovel-mobile-contact { display: none; }

.imovel-lightbox[hidden] { display: none; }
.imovel-lightbox { position: fixed; z-index: 100; inset: 0; display: grid; grid-template-columns: 56px minmax(0, 1fr) 56px; align-items: center; gap: 8px; padding: 48px 18px 38px; background: rgba(4,20,35,.95); color: #fff; }
.imovel-lightbox figure { display: flex; grid-column: 2; grid-row: 1; min-width: 0; min-height: 0; flex-direction: column; align-items: center; justify-content: center; margin: 0; }
.imovel-lightbox figure img { display: block; max-width: 100%; max-height: calc(100dvh - 126px); object-fit: contain; }
.imovel-lightbox figcaption { min-height: 24px; margin-top: 10px; font-size: 14px; text-align: center; }
.imovel-lightbox button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(255,255,255,.48); border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 17px; }
.imovel-lightbox button:hover { background: rgba(255,255,255,.25); }
.imovel-lightbox-close { position: absolute; top: 16px; right: 18px; }
.imovel-lightbox-prev { grid-column: 1; grid-row: 1; }
.imovel-lightbox-next { grid-column: 3; grid-row: 1; }
.imovel-lightbox-count { position: absolute; right: 20px; bottom: 14px; color: #d8e5ed; font-size: 12px; }

@media (max-width: 900px) {
  .imovel-main-grid { grid-template-columns: minmax(0, 1.5fr) minmax(250px, 1fr); gap: 20px; }
  .imovel-gallery-grid { height: 430px; }
  .imovel-contact-card { padding: 20px; }
  .imovel-calendar-cards { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  body.imovel-page { padding-bottom: 70px; }
  .imovel-main { padding-bottom: 42px; }
  .imovel-breadcrumb { padding: 17px 0; font-size: 12px; }
  .imovel-heading { margin-bottom: 16px; }
  .imovel-heading h1 { font-size: 30px; }
  .imovel-share { display: none; }
  .imovel-gallery-grid { display: flex; flex-wrap: wrap; gap: 5px; height: auto; max-height: none; }
  .imovel-gallery-tile { flex: 1 1 calc(50% - 5px); height: 112px; }
  .imovel-gallery-tile.is-main { flex: 0 0 100%; height: clamp(255px, 75vw, 390px); }
  .imovel-gallery-count-2 .imovel-gallery-tile:not(.is-main) { flex-basis: 100%; }
  .imovel-all-photos { right: 10px; bottom: 10px; min-height: 35px; font-size: 11px; }
  .imovel-no-photo { min-height: 255px; }
  .imovel-main-grid { display: block; }
  .imovel-facts { gap: 6px; margin-bottom: 20px; }
  .imovel-facts li { min-height: 35px; padding: 6px 9px; font-size: 12px; }
  .imovel-section { padding: 22px 0; }
  .imovel-amenities { gap: 8px; }
  .imovel-amenities li { font-size: 12px; }
  .imovel-calendar-card { padding: 15px; }
  .imovel-contact { position: static; margin-top: 18px; }
  .imovel-related { margin-top: 37px; }
  .imovel-map iframe { height: 300px; }
  .imovel-mobile-contact { position: fixed; z-index: 40; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 66px; padding: 9px 16px; border-top: 1px solid #d9e5ec; background: #fff; box-shadow: 0 -5px 18px rgba(12,44,73,.12); }
  .imovel-mobile-contact span { flex: none; color: var(--home-navy); font-size: 12px; font-weight: 750; }
  .imovel-mobile-contact a { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 43px; padding: 0 12px; border-radius: 8px; background: var(--home-green); color: #fff; font-size: 12px; font-weight: 750; text-align: center; }
  .imovel-mobile-contact .fa { font-size: 18px; }
  .imovel-lightbox { grid-template-columns: 38px minmax(0, 1fr) 38px; gap: 2px; padding: 58px 7px 40px; }
  .imovel-lightbox button { width: 34px; height: 34px; font-size: 13px; }
  .imovel-lightbox-close { top: 13px; right: 12px; }
}
@media (max-width: 360px) {
  .imovel-mobile-contact { padding-inline: 9px; }
  .imovel-mobile-contact a { padding-inline: 7px; font-size: 11px; }
}
