/* SPRINT 10D — visual público */
:root{--site-bg:#f4f6f8;--site-surface:#fff;--site-text:#111827;--site-muted:#667085;--site-soft:#f9fafb;--site-border:#e5e7eb;--site-red:#d90416;--site-red-dark:#a80010;--site-red-soft:#fff1f2;--site-dark:#111827;--site-radius:18px;--site-shadow:0 18px 45px rgba(15,23,42,.08);--site-shadow-soft:0 10px 25px rgba(15,23,42,.06);--site-container:1180px}
*{box-sizing:border-box}html,body{min-height:100%;scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:radial-gradient(circle at top left,rgba(217,4,22,.08),transparent 34%),linear-gradient(180deg,#fff 0%,var(--site-bg) 46%,#eef2f7 100%);color:var(--site-text)}a{color:inherit}.site-container{max-width:var(--site-container);margin:0 auto;padding:0 24px}
.site-header{background:rgba(255,255,255,.95);border-bottom:1px solid rgba(229,231,235,.8);position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.site-topbar{background:var(--site-dark);color:rgba(255,255,255,.86);font-size:13px}.site-topbar-inner{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:18px}.site-topbar-links{display:flex;align-items:center;gap:14px}.site-topbar a{color:#fff;text-decoration:none;font-weight:700}.site-header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.site-brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;min-width:0}.site-brand-mark{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--site-red),var(--site-red-dark));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:900;box-shadow:0 12px 24px rgba(217,4,22,.22)}.site-brand-text{display:flex;flex-direction:column;line-height:1.15;min-width:0}.site-brand-text strong{font-size:18px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:330px}.site-brand-text small{color:var(--site-muted);font-size:12px;margin-top:4px}
.site-nav{display:flex;align-items:center;gap:4px;background:#f3f4f6;border:1px solid rgba(229,231,235,.88);border-radius:999px;padding:5px}.site-nav a{text-decoration:none;color:#374151;font-weight:800;font-size:14px;padding:10px 14px;border-radius:999px;transition:all .18s ease}.site-nav a:hover,.site-nav a.active{background:#fff;color:var(--site-red);box-shadow:0 6px 14px rgba(15,23,42,.08)}
.site-hero{padding:78px 0 54px;background:linear-gradient(135deg,rgba(17,24,39,.94),rgba(31,41,55,.86)),radial-gradient(circle at 78% 18%,rgba(217,4,22,.55),transparent 28%),linear-gradient(135deg,#111827,#3f0d12);color:#fff;position:relative;overflow:hidden}.site-hero:after{content:"";position:absolute;inset:auto -10% -42% -10%;height:220px;background:rgba(255,255,255,.08);transform:rotate(-2deg)}.site-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:42px;align-items:center}.site-eyebrow{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);border-radius:999px;padding:8px 13px;color:rgba(255,255,255,.94);font-size:13px;font-weight:800;margin-bottom:20px}.site-eyebrow:before{content:"";width:8px;height:8px;border-radius:999px;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.14)}.site-hero h1{font-size:clamp(36px,5vw,58px);line-height:1.02;margin:0 0 18px;letter-spacing:-1.7px;max-width:780px}.site-hero p{font-size:18px;line-height:1.65;color:rgba(255,255,255,.86);margin:0 0 28px;max-width:660px}.site-actions{display:flex;flex-wrap:wrap;gap:12px}
.site-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:12px 17px;text-decoration:none;font-weight:900;border:0;cursor:pointer;transition:all .18s ease}.site-btn.primary{background:var(--site-red);color:#fff;box-shadow:0 12px 22px rgba(217,4,22,.22)}.site-btn.primary:hover{background:var(--site-red-dark);transform:translateY(-1px)}.site-btn.secondary{background:#fff;color:var(--site-dark)}.site-btn.secondary:hover{transform:translateY(-1px)}
.site-hero-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:26px;padding:28px;backdrop-filter:blur(12px);box-shadow:0 26px 52px rgba(0,0,0,.16)}.site-hero-card strong{display:block;font-size:54px;line-height:1;margin-bottom:10px}.site-hero-card span{color:rgba(255,255,255,.88);line-height:1.5}
.site-section{padding:48px 0}.site-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}.site-section h1,.site-section h2{font-size:clamp(28px,3vw,38px);line-height:1.15;margin:0 0 8px;letter-spacing:-.04em}.site-section p{color:var(--site-muted);margin:0;line-height:1.55}
.property-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.property-card{background:var(--site-surface);border-radius:22px;overflow:hidden;box-shadow:var(--site-shadow-soft);border:1px solid rgba(226,232,240,.92);display:flex;flex-direction:column;min-height:100%;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.property-card:hover{transform:translateY(-3px);box-shadow:var(--site-shadow);border-color:rgba(217,4,22,.2)}
.property-media{height:210px;background:linear-gradient(135deg,rgba(17,24,39,.58),rgba(217,4,22,.2)),linear-gradient(135deg,#e5e7eb,#f9fafb);display:flex;align-items:flex-end;justify-content:flex-start;color:#fff;font-weight:900;text-decoration:none;padding:16px;position:relative;overflow:hidden;font-size:0}.property-media:before{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.22);border-radius:18px}.property-media:after{content:"Foto em breve";position:relative;z-index:1;background:rgba(17,24,39,.72);border:1px solid rgba(255,255,255,.24);border-radius:999px;padding:8px 12px;font-size:12px}
.property-body{padding:20px 20px 16px;flex:1}.property-code{display:inline-flex;width:fit-content;color:var(--site-red);background:var(--site-red-soft);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;text-transform:uppercase;margin-bottom:12px}.property-card h3{font-size:20px;line-height:1.22;margin:0 0 10px;letter-spacing:-.02em}.property-card h3 a{text-decoration:none}.property-card h3 a:hover{color:var(--site-red)}.property-location,.property-features{color:var(--site-muted);font-size:14px;line-height:1.48}.property-price{margin:16px 0 12px;font-size:18px;font-weight:900;color:var(--site-dark)}.property-footer{padding:0 20px 20px;margin-top:auto}.property-footer .site-btn{width:100%}
.filter-card{background:rgba(255,255,255,.94);border-radius:22px;box-shadow:var(--site-shadow-soft);padding:18px;margin-bottom:24px;border:1px solid rgba(226,232,240,.92)}.filter-form{display:grid;grid-template-columns:2fr 1fr auto;gap:12px;align-items:end}.filter-form label{display:block;font-weight:900;margin-bottom:7px;font-size:13px;color:#344054}.filter-form input,.filter-form select{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:12px 13px;font:inherit;background:#fff;outline:none}.filter-form input:focus,.filter-form select:focus{border-color:rgba(217,4,22,.55);box-shadow:0 0 0 4px rgba(217,4,22,.08)}
.detail-shell{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:26px;align-items:start}.detail-card,.contact-card{background:#fff;border-radius:24px;box-shadow:var(--site-shadow);padding:28px;border:1px solid rgba(226,232,240,.92)}.detail-card:before{content:"Imagem em breve";display:flex;align-items:flex-end;justify-content:flex-start;height:310px;margin:-28px -28px 26px;padding:20px;color:#fff;font-weight:900;border-radius:24px 24px 0 0;background:linear-gradient(135deg,rgba(17,24,39,.58),rgba(217,4,22,.28)),linear-gradient(135deg,#dbe1ea,#f8fafc)}.detail-card h1{font-size:clamp(30px,4vw,46px);line-height:1.1;margin:0 0 12px;letter-spacing:-.05em}.detail-description{color:#334155;line-height:1.72;margin-top:18px}.detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:24px}.detail-item{background:var(--site-soft);border:1px solid rgba(226,232,240,.92);border-radius:14px;padding:14px}.detail-item span{display:block;color:var(--site-muted);font-size:12px;margin-bottom:5px;font-weight:800}.detail-item strong{font-size:15px}.contact-card{position:sticky;top:138px}.contact-card h2{margin-top:0;font-size:24px;letter-spacing:-.03em}.contact-card p{color:var(--site-muted);line-height:1.58;margin-bottom:18px}.contact-card .site-btn{width:100%}.contact-card .contact-line{display:block;margin:8px 0;color:#334155;font-weight:700;text-decoration:none}
.empty-state{background:#fff;border-radius:22px;box-shadow:var(--site-shadow-soft);padding:42px;text-align:center;color:var(--site-muted);border:1px solid rgba(226,232,240,.92)}
.site-footer{border-top:1px solid var(--site-border);background:#fff;padding:34px 0;color:#475569}.site-footer-grid{display:flex;justify-content:space-between;align-items:flex-start;gap:28px}.footer-brand,.site-contact-list{display:flex;flex-direction:column;gap:7px}.footer-brand strong{color:var(--site-dark)}.site-contact-list{text-align:right}.site-contact-list a{color:#334155;font-weight:800;text-decoration:none}.site-contact-list a:hover{color:var(--site-red)}.floating-whatsapp{position:fixed;right:22px;bottom:22px;z-index:30;background:#16a34a;color:#fff;text-decoration:none;font-weight:900;border-radius:999px;padding:13px 17px;box-shadow:0 16px 30px rgba(22,163,74,.25)}
@media(max-width:980px){.site-header-inner{align-items:flex-start;flex-direction:column;padding-top:16px;padding-bottom:16px}.site-nav{width:100%;overflow-x:auto;justify-content:flex-start}.site-hero-grid,.detail-shell{grid-template-columns:1fr}.property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-card{position:static}}
@media(max-width:700px){.site-container{padding:0 18px}.site-topbar-inner,.site-topbar-links,.site-footer-grid{align-items:flex-start;flex-direction:column}.site-topbar-links{gap:8px}.site-brand-text strong{max-width:250px}.property-grid{grid-template-columns:1fr}.filter-form{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr}.site-contact-list{text-align:left}.floating-whatsapp{left:18px;right:18px;text-align:center}}
@media(max-width:420px){.site-nav a{padding:9px 12px;font-size:13px}.site-hero{padding:54px 0 42px}.detail-card,.contact-card{padding:22px}.detail-card:before{margin:-22px -22px 22px;height:230px}}


/* =========================================================
   Sprint 10E — Fotos dos imóveis
   ========================================================= */
.property-media.has-photo {
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
}

/* 19.3.0Y54 — recursos operacionais do site público */
.detail-description-suffix {
    margin-top: 20px;
    padding: 16px 18px;
    border-left: 4px solid var(--tenant-primary);
    border-radius: 0 12px 12px 0;
    background: color-mix(in srgb, var(--tenant-primary) 7%, #fff);
    color: #51495b;
    line-height: 1.65;
}

.site-maintenance {
    min-height: calc(100vh - 240px);
    display: grid;
    place-items: center;
    padding: 56px 22px;
    text-align: center;
    background: radial-gradient(circle at top right, color-mix(in srgb, var(--tenant-primary) 20%, transparent), transparent 45%), var(--tenant-background);
}
.site-maintenance > div { width: min(680px, 100%); padding: 46px; border: 1px solid rgba(73,56,91,.14); border-radius: 28px; background: rgba(255,255,255,.94); box-shadow: 0 24px 70px rgba(31,23,40,.12); }
.site-maintenance span { color: var(--tenant-primary); font-size: 12px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.site-maintenance h1 { margin: 14px 0; font-size: clamp(34px, 6vw, 64px); line-height: 1.02; }
.site-maintenance p { margin: 0 auto; max-width: 560px; color: #625a6d; font-size: 18px; line-height: 1.65; }
.site-maintenance-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.site-maintenance-actions a { padding: 12px 18px; border-radius: 12px; background: var(--tenant-primary); color: #fff; font-weight: 800; text-decoration: none; }
.public-maintenance-mode .site-opening-background,
.public-maintenance-mode .site-header,
.public-maintenance-mode .site-footer { display: none; }

.public-watermark-enabled .property-media,
.public-watermark-enabled .featured-slide-media,
.public-watermark-enabled .featured-spotlight-media,
.public-watermark-enabled .detail-gallery-main { position: relative; }
.public-watermark-enabled .property-media.has-photo::before,
.public-watermark-enabled .featured-slide-media.has-photo::before,
.public-watermark-enabled .featured-spotlight-media.has-photo::before,
.public-watermark-enabled .detail-gallery-main::before {
    content: var(--public-watermark-text);
    position: absolute;
    z-index: 5;
    left: 50%;
    top: 50%;
    max-width: 80%;
    padding: 8px 12px;
    transform: translate(-50%, -50%) rotate(-12deg);
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 9px;
    background: rgba(8,8,12,.28);
    color: rgba(255,255,255,.78);
    font-size: clamp(11px, 1.35vw, 18px);
    font-weight: 900;
    letter-spacing: .08em;
    line-height: 1.2;
    text-align: center;
    text-shadow: 0 1px 5px rgba(0,0,0,.65);
    text-transform: uppercase;
    pointer-events: none;
}

@media (max-width: 700px) {
    .site-maintenance { min-height: calc(100vh - 70px); padding: 28px 14px; }
    .site-maintenance > div { padding: 32px 20px; border-radius: 22px; }
    .site-maintenance p { font-size: 16px; }
}

/* =========================================================
   Sprint 10F — Galeria pública no detalhe do imóvel
   ========================================================= */
.public-gallery {
    margin-top: 30px;
    padding-top: 26px;
    border-top: 1px solid rgba(226, 232, 240, .95);
}

.public-gallery-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 18px;
    margin-bottom: 16px;
}

.public-gallery-head h2 {
    margin: 0;
    font-size: 24px;
    letter-spacing: -.03em;
}

.public-gallery-head p {
    margin: 0;
    color: #64748b;
    font-size: 14px;
}

.public-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.public-gallery-item {
    display: block;
    height: 148px;
    border-radius: 16px;
    background-size: cover;
    background-position: center;
    background-color: #e5e7eb;
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(226, 232, 240, .95);
    box-shadow: 0 8px 18px rgba(15, 23, 42, .06);
    transition: transform .18s ease, box-shadow .18s ease;
}

.public-gallery-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 26px rgba(15, 23, 42, .12);
}

.public-gallery-item span {
    position: absolute;
    left: 10px;
    bottom: 10px;
    background: rgba(17, 24, 39, .78);
    color: #fff;
    border-radius: 999px;
    padding: 6px 9px;
    font-size: 11px;
    font-weight: 900;
}

@media (max-width: 900px) {
    .public-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    .public-gallery-head { align-items: flex-start; flex-direction: column; }
    .public-gallery-grid { grid-template-columns: 1fr; }
    .public-gallery-item { height: 220px; }
}



/* =========================================================
   Sprint 10G1 — Lightbox da galeria pública
   ========================================================= */
.public-gallery-item {
    border: none;
    cursor: pointer;
}

.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
}

.gallery-lightbox.active {
    display: block;
}

.gallery-lightbox-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, 0.86);
    backdrop-filter: blur(2px);
}

.gallery-lightbox-dialog {
    position: absolute;
    inset: 24px;
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr) 64px;
    grid-template-rows: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    max-width: 1280px;
    margin: 0 auto;
}

.gallery-lightbox-stage {
    grid-column: 2;
    grid-row: 1;
    height: calc(100vh - 150px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.gallery-lightbox-stage img {
    max-width: 100%;
    max-height: 100%;
    border-radius: 16px;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .35);
    object-fit: contain;
    background: #fff;
}

.gallery-lightbox-close,
.gallery-lightbox-nav {
    border: none;
    border-radius: 999px;
    background: rgba(255,255,255,.14);
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .2s ease, transform .2s ease;
}

.gallery-lightbox-close:hover,
.gallery-lightbox-nav:hover {
    background: rgba(255,255,255,.22);
    transform: scale(1.03);
}

.gallery-lightbox-close {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 44px;
    height: 44px;
    font-size: 32px;
    line-height: 1;
    z-index: 2;
}

.gallery-lightbox-nav {
    width: 52px;
    height: 52px;
    font-size: 36px;
    line-height: 1;
}

.gallery-lightbox-nav.prev {
    grid-column: 1;
    grid-row: 1;
}

.gallery-lightbox-nav.next {
    grid-column: 3;
    grid-row: 1;
}

.gallery-lightbox-meta {
    grid-column: 2;
    grid-row: 2;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    color: #fff;
    padding: 8px 4px;
}

.gallery-lightbox-meta strong {
    font-size: 15px;
    font-weight: 700;
}

.gallery-lightbox-meta span {
    opacity: .86;
    font-size: 14px;
}

body.gallery-lightbox-open {
    overflow: hidden;
}

@media (max-width: 768px) {
    .gallery-lightbox-dialog {
        inset: 16px;
        grid-template-columns: 46px minmax(0, 1fr) 46px;
        gap: 10px;
    }

    .gallery-lightbox-stage {
        height: calc(100vh - 132px);
    }

    .gallery-lightbox-nav {
        width: 42px;
        height: 42px;
        font-size: 28px;
    }

    .gallery-lightbox-meta {
        flex-direction: column;
        align-items: flex-start;
    }
}


/* =========================================================
   Sprint 10G2 — Carrossel de miniaturas no lightbox
   ========================================================= */
.gallery-lightbox-dialog {
    grid-template-rows: minmax(0, 1fr) auto auto;
}

.gallery-lightbox-meta {
    grid-column: 2;
    grid-row: 2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
}

.gallery-lightbox-meta-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.gallery-lightbox-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}

.gallery-lightbox-toggle {
    border: 1px solid rgba(255,255,255,.22);
    background: rgba(255,255,255,.12);
    color: #fff;
    cursor: pointer;
    border-radius: 999px;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 700;
    transition: background .2s ease, transform .2s ease, border-color .2s ease;
}

.gallery-lightbox-toggle:hover {
    background: rgba(255,255,255,.2);
    border-color: rgba(255,255,255,.4);
    transform: translateY(-1px);
}

.gallery-lightbox-strip {
    grid-column: 2;
    grid-row: 3;
    width: 100%;
    min-width: 0;
    padding: 4px 0 10px;
}

.gallery-lightbox-strip[hidden] {
    display: none !important;
}

.gallery-lightbox-strip-track {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 2px 2px 8px;
    scroll-behavior: smooth;
}

.gallery-lightbox-strip-track::-webkit-scrollbar {
    height: 8px;
}

.gallery-lightbox-strip-track::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,.25);
    border-radius: 999px;
}

.gallery-lightbox-thumb {
    flex: 0 0 96px;
    width: 96px;
    height: 72px;
    border-radius: 10px;
    overflow: hidden;
    border: 2px solid transparent;
    padding: 0;
    background: rgba(255,255,255,.08);
    cursor: pointer;
    opacity: .72;
    transition: opacity .2s ease, transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.gallery-lightbox-thumb:hover {
    opacity: .96;
    transform: translateY(-1px);
}

.gallery-lightbox-thumb.active {
    opacity: 1;
    border-color: #fff;
    box-shadow: 0 0 0 2px rgba(255,255,255,.16);
}

.gallery-lightbox-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 768px) {
    .gallery-lightbox-meta {
        flex-direction: column;
        align-items: flex-start;
    }

    .gallery-lightbox-actions {
        width: 100%;
    }

    .gallery-lightbox-toggle {
        width: 100%;
        justify-content: center;
    }

    .gallery-lightbox-thumb {
        flex-basis: 82px;
        width: 82px;
        height: 62px;
    }
}


/* =========================================================
   Sprint 10G3 — Faixa fixa de miniaturas no lightbox
   ========================================================= */
.gallery-lightbox-dialog {
    grid-template-rows: minmax(0,1fr) auto auto;
}

.gallery-lightbox-meta {
    grid-column: 2;
    grid-row: 2;
    display: flex;
    justify-content: center;
    align-items: center;
    padding-top: 4px;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

.gallery-lightbox-strip-shell {
    grid-column: 2;
    grid-row: 3;
    width: min(100%, 980px);
    margin: 0 auto;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 10px 0 8px;
}

.gallery-lightbox-strip {
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.28) transparent;
}

.gallery-lightbox-strip::-webkit-scrollbar {
    height: 8px;
}

.gallery-lightbox-strip::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,.25);
    border-radius: 999px;
}

.gallery-lightbox-strip-track {
    display: flex;
    gap: 10px;
    width: max-content;
    min-width: 100%;
    justify-content: center;
    padding: 4px 2px 8px;
}

.gallery-lightbox-thumb {
    flex: 0 0 96px;
    width: 96px;
    height: 72px;
    border-radius: 10px;
    overflow: hidden;
    border: 2px solid transparent;
    padding: 0;
    background: rgba(255,255,255,.08);
    cursor: pointer;
    opacity: .74;
    transition: opacity .2s ease, transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.gallery-lightbox-thumb:hover {
    opacity: .96;
    transform: translateY(-1px);
}

.gallery-lightbox-thumb.active {
    opacity: 1;
    border-color: #fff;
    box-shadow: 0 0 0 2px rgba(255,255,255,.16);
}

.gallery-lightbox-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.gallery-lightbox-strip-nav {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.18);
    background: rgba(255,255,255,.10);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease, opacity .2s ease;
}

.gallery-lightbox-strip-nav:hover:not(:disabled) {
    transform: translateY(-1px);
    background: rgba(255,255,255,.18);
}

.gallery-lightbox-strip-nav:disabled {
    opacity: .28;
    cursor: default;
}

.gallery-lightbox-strip-shell .gallery-lightbox-strip-nav {
    visibility: hidden;
}

.gallery-lightbox.thumb-strip-scrollable .gallery-lightbox-strip-shell .gallery-lightbox-strip-nav {
    visibility: visible;
}

@media (max-width: 768px) {
    .gallery-lightbox-strip-shell {
        gap: 8px;
        width: 100%;
    }

    .gallery-lightbox-strip-nav {
        width: 36px;
        height: 36px;
        font-size: 24px;
    }

    .gallery-lightbox-thumb {
        flex-basis: 82px;
        width: 82px;
        height: 62px;
    }
}


/* =========================================================
   Sprint 10G4 — contador abaixo da imagem e respiro superior
   ========================================================= */
.gallery-lightbox-dialog {
    align-content: start;
    padding-top: 26px;
    padding-bottom: 18px;
}

.gallery-lightbox-stage {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 20px;
}

.gallery-lightbox-stage img {
    max-height: calc(100vh - 290px);
}

.gallery-lightbox-meta {
    grid-column: 2 !important;
    grid-row: 2 !important;
    position: static !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100%;
    margin: 8px auto 10px !important;
    padding: 0 !important;
    display: flex !important;
    justify-content: center;
    align-items: center;
    text-align: center;
    z-index: 3;
}

#publicGalleryLightboxCounter {
    position: static !important;
    inset: auto !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 56px;
}

.gallery-lightbox-strip-shell {
    grid-column: 2 !important;
    grid-row: 3 !important;
    margin-top: 0 !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-dialog {
        padding-top: 16px;
        padding-bottom: 14px;
    }

    .gallery-lightbox-stage {
        padding-top: 12px;
    }

    .gallery-lightbox-stage img {
        max-height: calc(100vh - 250px);
    }
}


/* =========================================================
   Sprint 10G5 — contador fora da área da foto
   ========================================================= */
.gallery-lightbox-dialog {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    inset: 24px !important;
    padding-top: 52px !important;
    padding-bottom: 18px !important;
    max-width: 1280px !important;
    margin: 0 auto !important;
}

.gallery-lightbox-stage {
    order: 1 !important;
    grid-column: auto !important;
    grid-row: auto !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    padding-top: 0 !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.gallery-lightbox-stage img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: min(100%, 760px) !important;
    max-height: calc(100vh - 285px) !important;
    object-fit: contain !important;
    margin: 0 auto !important;
}

.gallery-lightbox-meta {
    order: 2 !important;
    grid-column: auto !important;
    grid-row: auto !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: 100% !important;
    min-height: 24px !important;
    margin: 10px 0 8px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    pointer-events: none !important;
    color: #fff !important;
    z-index: 4 !important;
}

.gallery-lightbox-meta * {
    pointer-events: none !important;
}

#publicGalleryLightboxCounter {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 54px !important;
    line-height: 1.2 !important;
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.35) !important;
}

.gallery-lightbox-strip-shell {
    order: 3 !important;
    grid-column: auto !important;
    grid-row: auto !important;
    width: min(100%, 980px) !important;
    margin: 0 auto !important;
    padding: 4px 0 8px !important;
}

.gallery-lightbox-nav.prev,
.gallery-lightbox-nav.next {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 5 !important;
}

.gallery-lightbox-nav.prev {
    left: max(18px, calc(50% - 520px)) !important;
}

.gallery-lightbox-nav.next {
    right: max(18px, calc(50% - 520px)) !important;
}

.gallery-lightbox-close {
    z-index: 6 !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-dialog {
        inset: 14px !important;
        padding-top: 48px !important;
        padding-bottom: 12px !important;
    }

    .gallery-lightbox-stage img {
        max-width: 100% !important;
        max-height: calc(100vh - 250px) !important;
    }

    .gallery-lightbox-meta {
        margin: 8px 0 7px !important;
    }

    .gallery-lightbox-nav.prev {
        left: 8px !important;
    }

    .gallery-lightbox-nav.next {
        right: 8px !important;
    }
}


/* =========================================================
   Sprint 10G6 — estrutura real contador fora da foto
   ========================================================= */
.gallery-lightbox-v10g6 .gallery-lightbox-dialog {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    max-width: none !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.gallery-lightbox-v10g6 .gallery-lightbox-content {
    position: absolute !important;
    top: 64px !important;
    left: 76px !important;
    right: 76px !important;
    bottom: 26px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 0 !important;
    z-index: 3 !important;
}

.gallery-lightbox-v10g6 .gallery-lightbox-stage {
    position: relative !important;
    flex: 0 1 auto !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
}

.gallery-lightbox-v10g6 .gallery-lightbox-stage img {
    position: static !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: min(100%, 760px) !important;
    max-height: calc(100vh - 305px) !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    border-radius: 14px !important;
}

.gallery-lightbox-v10g6 .gallery-lightbox-counter-row {
    flex: 0 0 auto !important;
    width: 100% !important;
    min-height: 24px !important;
    margin: 12px 0 10px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center !important;
}

.gallery-lightbox-v10g6 #publicGalleryLightboxCounter {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 54px !important;
    background: transparent !important;
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.45) !important;
}

.gallery-lightbox-v10g6 .gallery-lightbox-meta {
    display: none !important;
}

.gallery-lightbox-v10g6 .gallery-lightbox-strip-shell {
    flex: 0 0 auto !important;
    position: relative !important;
    width: min(100%, 980px) !important;
    margin: 0 auto !important;
    padding: 0 0 8px !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 12px !important;
}

.gallery-lightbox-v10g6 .gallery-lightbox-nav.prev,
.gallery-lightbox-v10g6 .gallery-lightbox-nav.next {
    position: absolute !important;
    top: 48% !important;
    transform: translateY(-50%) !important;
    z-index: 5 !important;
}

.gallery-lightbox-v10g6 .gallery-lightbox-nav.prev {
    left: max(18px, calc(50% - 520px)) !important;
}

.gallery-lightbox-v10g6 .gallery-lightbox-nav.next {
    right: max(18px, calc(50% - 520px)) !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-v10g6 .gallery-lightbox-content {
        top: 58px !important;
        left: 54px !important;
        right: 54px !important;
        bottom: 18px !important;
    }

    .gallery-lightbox-v10g6 .gallery-lightbox-stage img {
        max-width: 100% !important;
        max-height: calc(100vh - 270px) !important;
    }

    .gallery-lightbox-v10g6 .gallery-lightbox-counter-row {
        margin: 9px 0 8px !important;
    }

    .gallery-lightbox-v10g6 .gallery-lightbox-nav.prev {
        left: 8px !important;
    }

    .gallery-lightbox-v10g6 .gallery-lightbox-nav.next {
        right: 8px !important;
    }
}


/* =========================================================
   Sprint 10G7 — contador abaixo da foto em estrutura isolada
   ========================================================= */
.gallery-lightbox-v10g7 .gallery-lightbox-dialog {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-frame {
    position: absolute !important;
    top: 70px !important;
    left: 76px !important;
    right: 76px !important;
    bottom: 24px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 0 !important;
    z-index: 4 !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-photo {
    flex: 0 1 auto !important;
    width: 100% !important;
    min-height: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-photo img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: min(100%, 760px) !important;
    max-height: calc(100vh - 315px) !important;
    object-fit: contain !important;
    border-radius: 14px !important;
    margin: 0 auto !important;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .35) !important;
    background: #fff !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-countline {
    flex: 0 0 auto !important;
    width: 100% !important;
    min-height: 24px !important;
    margin: 12px 0 11px !important;
    padding: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.45) !important;
}

.gallery-lightbox-v10g7 #publicGalleryLightboxCounterV10G7 {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    background: transparent !important;
    color: #fff !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-stage,
.gallery-lightbox-v10g7 .gallery-lightbox-meta,
.gallery-lightbox-v10g7 #publicGalleryLightboxCounter {
    display: none !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-strip-shell {
    flex: 0 0 auto !important;
    width: min(100%, 980px) !important;
    margin: 0 auto !important;
    padding: 0 0 8px !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 12px !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-nav.prev,
.gallery-lightbox-v10g7 .gallery-lightbox-nav.next {
    position: absolute !important;
    top: 48% !important;
    transform: translateY(-50%) !important;
    z-index: 6 !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-nav.prev {
    left: max(18px, calc(50% - 520px)) !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-nav.next {
    right: max(18px, calc(50% - 520px)) !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-close {
    z-index: 7 !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-v10g7 .gallery-lightbox-frame {
        top: 58px !important;
        left: 54px !important;
        right: 54px !important;
        bottom: 16px !important;
    }

    .gallery-lightbox-v10g7 .gallery-lightbox-photo img {
        max-width: 100% !important;
        max-height: calc(100vh - 275px) !important;
    }

    .gallery-lightbox-v10g7 .gallery-lightbox-countline {
        margin: 9px 0 8px !important;
    }

    .gallery-lightbox-v10g7 .gallery-lightbox-nav.prev {
        left: 8px !important;
    }

    .gallery-lightbox-v10g7 .gallery-lightbox-nav.next {
        right: 8px !important;
    }
}


/* =========================================================
   Sprint 10G8 — imagem maior no lightbox
   ========================================================= */
.gallery-lightbox-v10g7 .gallery-lightbox-frame {
    top: 34px !important;
    left: clamp(12px, 2vw, 24px) !important;
    right: clamp(12px, 2vw, 24px) !important;
    bottom: 10px !important;
    width: auto !important;
    max-width: none !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-photo {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-photo img {
    max-width: min(96vw, 1500px) !important;
    max-height: calc(100vh - 150px) !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-countline {
    margin: 8px 0 7px !important;
    min-height: 20px !important;
    font-size: 14px !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-strip-shell {
    width: min(100%, 1180px) !important;
    padding: 0 0 2px !important;
    gap: 8px !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-strip-track {
    gap: 8px !important;
    padding-bottom: 4px !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-thumb {
    flex-basis: 84px !important;
    width: 84px !important;
    height: 62px !important;
    border-radius: 8px !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-strip-nav {
    width: 36px !important;
    height: 36px !important;
    font-size: 24px !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-nav.prev,
.gallery-lightbox-v10g7 .gallery-lightbox-nav.next {
    top: 47% !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-nav.prev {
    left: clamp(10px, 2vw, 28px) !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-nav.next {
    right: clamp(10px, 2vw, 28px) !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-v10g7 .gallery-lightbox-frame {
        top: 50px !important;
        left: 44px !important;
        right: 44px !important;
        bottom: 8px !important;
    }

    .gallery-lightbox-v10g7 .gallery-lightbox-photo img {
        max-width: 100% !important;
        max-height: calc(100vh - 155px) !important;
    }

    .gallery-lightbox-v10g7 .gallery-lightbox-thumb {
        flex-basis: 72px !important;
        width: 72px !important;
        height: 54px !important;
    }

    .gallery-lightbox-v10g7 .gallery-lightbox-strip-nav {
        width: 32px !important;
        height: 32px !important;
        font-size: 22px !important;
    }
}

@media (min-width: 1200px) and (min-height: 800px) {
    .gallery-lightbox-v10g7 .gallery-lightbox-photo img {
        max-height: calc(100vh - 135px) !important;
    }
}


/* =========================================================
   Sprint 10G9 — balanceamento final do lightbox
   ========================================================= */
.gallery-lightbox-v10g7 .gallery-lightbox-frame {
    top: 68px !important;
    left: clamp(18px, 2.6vw, 40px) !important;
    right: clamp(18px, 2.6vw, 40px) !important;
    bottom: 14px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-photo {
    order: 1 !important;
    flex: 0 1 auto !important;
    width: 100% !important;
    min-height: 0 !important;
    padding-top: 8px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-photo img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: min(94vw, 1380px) !important;
    max-height: calc(100vh - 235px) !important;
    object-fit: contain !important;
    margin: 0 auto !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-countline {
    order: 2 !important;
    position: static !important;
    inset: auto !important;
    transform: none !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    min-height: 22px !important;
    margin: 10px 0 10px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    z-index: 5 !important;
}

.gallery-lightbox-v10g7 #publicGalleryLightboxCounterV10G7,
.gallery-lightbox-v10g7 #publicGalleryLightboxCounter {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-strip-shell {
    order: 3 !important;
    width: min(100%, 1160px) !important;
    margin: 0 auto !important;
    padding: 0 0 4px !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-nav.prev,
.gallery-lightbox-v10g7 .gallery-lightbox-nav.next {
    top: 46% !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-v10g7 .gallery-lightbox-frame {
        top: 62px !important;
        left: 42px !important;
        right: 42px !important;
        bottom: 12px !important;
    }

    .gallery-lightbox-v10g7 .gallery-lightbox-photo {
        padding-top: 4px !important;
    }

    .gallery-lightbox-v10g7 .gallery-lightbox-photo img {
        max-width: 100% !important;
        max-height: calc(100vh - 220px) !important;
    }

    .gallery-lightbox-v10g7 .gallery-lightbox-countline {
        margin: 8px 0 8px !important;
        min-height: 20px !important;
    }
}

@media (min-width: 1200px) and (min-height: 800px) {
    .gallery-lightbox-v10g7 .gallery-lightbox-photo img {
        max-height: calc(100vh - 245px) !important;
    }
}


/* =========================================================
   Sprint 10G10 — imagem maior e contador mais afastado
   ========================================================= */
.gallery-lightbox-v10g7 .gallery-lightbox-photo img {
    max-height: calc(100vh - 210px) !important;
}

.gallery-lightbox-v10g7 .gallery-lightbox-countline {
    min-height: 26px !important;
    margin: 14px 0 12px !important;
}

.gallery-lightbox-v10g7 #publicGalleryLightboxCounterV10G7,
.gallery-lightbox-v10g7 #publicGalleryLightboxCounter {
    line-height: 1 !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-v10g7 .gallery-lightbox-photo img {
        max-height: calc(100vh - 205px) !important;
    }

    .gallery-lightbox-v10g7 .gallery-lightbox-countline {
        min-height: 24px !important;
        margin: 12px 0 10px !important;
    }
}

@media (min-width: 1200px) and (min-height: 800px) {
    .gallery-lightbox-v10g7 .gallery-lightbox-photo img {
        max-height: calc(100vh - 220px) !important;
    }
}


/* =========================================================
   Sprint 10G11 — lightbox em grid isolado
   ========================================================= */
.gallery-lightbox-v10g11 .gallery-lightbox-dialog {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-gridframe {
    position: absolute !important;
    top: 62px !important;
    left: clamp(16px, 2.2vw, 34px) !important;
    right: clamp(16px, 2.2vw, 34px) !important;
    bottom: 14px !important;
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) 28px 66px !important;
    row-gap: 14px !important;
    align-items: center !important;
    justify-items: center !important;
    z-index: 5 !important;
    min-height: 0 !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-image-row {
    grid-row: 1 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-image-row img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: min(96vw, 1500px) !important;
    max-height: 100% !important;
    object-fit: contain !important;
    border-radius: 14px !important;
    margin: 0 auto !important;
    box-shadow: 0 18px 48px rgba(0, 0, 0, .35) !important;
    background: #fff !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-counter-row {
    grid-row: 2 !important;
    width: 100% !important;
    height: 28px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-align: center !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.45) !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumbs-row {
    grid-row: 3 !important;
    width: min(100%, 1180px) !important;
    height: 66px !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip {
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-behavior: smooth !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip-track {
    display: flex !important;
    gap: 8px !important;
    width: max-content !important;
    min-width: 100% !important;
    justify-content: center !important;
    padding: 2px 2px 4px !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumb {
    flex: 0 0 82px !important;
    width: 82px !important;
    height: 58px !important;
    border-radius: 8px !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip-nav {
    width: 34px !important;
    height: 34px !important;
    font-size: 24px !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip-nav {
    visibility: hidden;
}

.gallery-lightbox-v10g11.thumb-strip-scrollable .gallery-lightbox-strip-nav {
    visibility: visible;
}

.gallery-lightbox-v10g11 .gallery-lightbox-nav.prev,
.gallery-lightbox-v10g11 .gallery-lightbox-nav.next {
    position: absolute !important;
    top: 46% !important;
    transform: translateY(-50%) !important;
    z-index: 6 !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-nav.prev {
    left: clamp(10px, 2vw, 28px) !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-nav.next {
    right: clamp(10px, 2vw, 28px) !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-stage,
.gallery-lightbox-v10g11 .gallery-lightbox-photo,
.gallery-lightbox-v10g11 .gallery-lightbox-frame,
.gallery-lightbox-v10g11 .gallery-lightbox-meta,
.gallery-lightbox-v10g11 .gallery-lightbox-countline,
.gallery-lightbox-v10g11 #publicGalleryLightboxCounter,
.gallery-lightbox-v10g11 #publicGalleryLightboxCounterV10G7 {
    display: none !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-v10g11 .gallery-lightbox-gridframe {
        top: 58px !important;
        left: 42px !important;
        right: 42px !important;
        bottom: 10px !important;
        grid-template-rows: minmax(0, 1fr) 24px 58px !important;
        row-gap: 10px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-image-row img {
        max-width: 100% !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-thumbs-row {
        height: 58px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-thumb {
        flex-basis: 72px !important;
        width: 72px !important;
        height: 52px !important;
    }
}


/* =========================================================
   Sprint 10G12 — miniaturas totalmente visíveis
   ========================================================= */
.gallery-lightbox-v10g11 .gallery-lightbox-gridframe {
    top: 62px !important;
    bottom: 42px !important;
    grid-template-rows: minmax(0, 1fr) 24px 58px !important;
    row-gap: 10px !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-image-row img {
    max-height: 100% !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-counter-row {
    height: 24px !important;
    font-size: 14px !important;
    line-height: 1 !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumbs-row {
    height: 58px !important;
    align-self: start !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip {
    height: 58px !important;
    padding: 0 !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip-track {
    height: 58px !important;
    align-items: center !important;
    padding: 0 2px !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumb {
    flex: 0 0 76px !important;
    width: 76px !important;
    height: 52px !important;
    border-radius: 8px !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip-nav {
    width: 32px !important;
    height: 32px !important;
    font-size: 22px !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-v10g11 .gallery-lightbox-gridframe {
        top: 58px !important;
        left: 38px !important;
        right: 38px !important;
        bottom: 36px !important;
        grid-template-rows: minmax(0, 1fr) 22px 52px !important;
        row-gap: 8px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-thumbs-row,
    .gallery-lightbox-v10g11 .gallery-lightbox-strip,
    .gallery-lightbox-v10g11 .gallery-lightbox-strip-track {
        height: 52px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-thumb {
        flex-basis: 68px !important;
        width: 68px !important;
        height: 48px !important;
    }
}


/* =========================================================
   Sprint 10G13 — miniaturas menores sem cortar
   Mantém imagem e contador; reduz só a faixa das miniaturas.
   ========================================================= */
.gallery-lightbox-v10g11 .gallery-lightbox-thumbs-row {
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    align-self: start !important;
    overflow: hidden !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip {
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    padding: 0 !important;
    overflow: hidden !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip-track {
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    align-items: center !important;
    padding: 0 2px !important;
    overflow: hidden !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumb {
    flex: 0 0 64px !important;
    width: 64px !important;
    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;
    border-radius: 8px !important;
    overflow: hidden !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip-nav {
    width: 28px !important;
    height: 28px !important;
    font-size: 20px !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-v10g11 .gallery-lightbox-thumbs-row,
    .gallery-lightbox-v10g11 .gallery-lightbox-strip,
    .gallery-lightbox-v10g11 .gallery-lightbox-strip-track {
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-thumb {
        flex-basis: 58px !important;
        width: 58px !important;
        height: 40px !important;
        min-height: 40px !important;
        max-height: 40px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-strip-nav {
        width: 26px !important;
        height: 26px !important;
        font-size: 18px !important;
    }
}


/* =========================================================
   Sprint 10G14 — restaurar miniaturas do lightbox
   Volta o visual das miniaturas para o estado anterior ao 10G13.
   ========================================================= */
.gallery-lightbox-v10g11 .gallery-lightbox-gridframe {
    bottom: 72px !important;
    grid-template-rows: minmax(0, 1fr) 28px 66px !important;
    row-gap: 12px !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumbs-row {
    height: 66px !important;
    min-height: 66px !important;
    max-height: 66px !important;
    align-self: start !important;
    overflow: visible !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip {
    height: 66px !important;
    min-height: 66px !important;
    max-height: 66px !important;
    padding: 0 !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip-track {
    height: 66px !important;
    min-height: 66px !important;
    max-height: 66px !important;
    align-items: center !important;
    padding: 2px 2px 4px !important;
    overflow: visible !important;
    gap: 8px !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumb {
    flex: 0 0 82px !important;
    width: 82px !important;
    height: 58px !important;
    min-height: 58px !important;
    max-height: 58px !important;
    border-radius: 8px !important;
    overflow: hidden !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip-nav {
    width: 34px !important;
    height: 34px !important;
    font-size: 24px !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-v10g11 .gallery-lightbox-gridframe {
        bottom: 60px !important;
        grid-template-rows: minmax(0, 1fr) 24px 58px !important;
        row-gap: 10px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-thumbs-row,
    .gallery-lightbox-v10g11 .gallery-lightbox-strip,
    .gallery-lightbox-v10g11 .gallery-lightbox-strip-track {
        height: 58px !important;
        min-height: 58px !important;
        max-height: 58px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-thumb {
        flex-basis: 72px !important;
        width: 72px !important;
        height: 52px !important;
        min-height: 52px !important;
        max-height: 52px !important;
    }
}


/* =========================================================
   Sprint 10G15 — preencher espaço do lightbox
   Aumenta a imagem principal para ocupar a área vazia entre
   a foto e as miniaturas, mantendo o strip no mesmo lugar.
   ========================================================= */
.gallery-lightbox-v10g11 .gallery-lightbox-image-row {
    align-items: flex-start !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-image-row img {
    width: auto !important;
    height: 100% !important;
    max-height: 100% !important;
    max-width: min(96vw, 1500px) !important;
    object-fit: contain !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-counter-row {
    margin-top: 2px !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-v10g11 .gallery-lightbox-image-row img {
        width: auto !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
    }
}


/* =========================================================
   Sprint 10G16 — preencher espaço mantendo miniaturas fixas
   Estrutura absoluta:
   - imagem ocupa a área até perto do contador;
   - contador fica abaixo da imagem;
   - miniaturas permanecem fixas na parte inferior.
   ========================================================= */
.gallery-lightbox-v10g11 .gallery-lightbox-gridframe {
    position: absolute !important;
    top: 62px !important;
    left: clamp(16px, 2.2vw, 34px) !important;
    right: clamp(16px, 2.2vw, 34px) !important;
    bottom: 72px !important;
    display: block !important;
    min-height: 0 !important;
    z-index: 5 !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-image-row {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 110px !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    overflow: visible !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-image-row img {
    display: block !important;
    width: auto !important;
    height: 100% !important;
    max-height: 100% !important;
    max-width: min(96vw, 1500px) !important;
    object-fit: contain !important;
    margin: 0 auto !important;
    border-radius: 14px !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-counter-row {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 76px !important;
    width: 100% !important;
    height: 24px !important;
    min-height: 24px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    text-align: center !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.45) !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumbs-row {
    position: absolute !important;
    left: 50% !important;
    bottom: 0 !important;
    transform: translateX(-50%) !important;
    width: min(100%, 1180px) !important;
    height: 66px !important;
    min-height: 66px !important;
    max-height: 66px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px !important;
    overflow: visible !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip {
    height: 66px !important;
    min-height: 66px !important;
    max-height: 66px !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-strip-track {
    height: 66px !important;
    min-height: 66px !important;
    max-height: 66px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 2px 2px 4px !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumb {
    flex: 0 0 82px !important;
    width: 82px !important;
    height: 58px !important;
    border-radius: 8px !important;
    overflow: hidden !important;
}

.gallery-lightbox-v10g11 .gallery-lightbox-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

@media (max-width: 768px) {
    .gallery-lightbox-v10g11 .gallery-lightbox-gridframe {
        top: 58px !important;
        left: 38px !important;
        right: 38px !important;
        bottom: 60px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-image-row {
        bottom: 96px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-counter-row {
        bottom: 66px !important;
        height: 22px !important;
        min-height: 22px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-thumbs-row,
    .gallery-lightbox-v10g11 .gallery-lightbox-strip,
    .gallery-lightbox-v10g11 .gallery-lightbox-strip-track {
        height: 58px !important;
        min-height: 58px !important;
        max-height: 58px !important;
    }

    .gallery-lightbox-v10g11 .gallery-lightbox-thumb {
        flex-basis: 72px !important;
        width: 72px !important;
        height: 52px !important;
    }
}


/* =========================================================
   Sprint 10H — formulário público de lead
   ========================================================= */
.lead-form {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.lead-form label {
    display: grid;
    gap: 6px;
    font-size: 13px;
    color: #475569;
    font-weight: 700;
}

.lead-form input,
.lead-form textarea {
    width: 100%;
    border: 1px solid rgba(203, 213, 225, .95);
    border-radius: 12px;
    padding: 11px 12px;
    font: inherit;
    color: #111827;
    background: #fff;
    box-sizing: border-box;
}

.lead-form textarea {
    resize: vertical;
    min-height: 96px;
}

.lead-form .lead-hp {
    position: absolute;
    left: -9999px;
    opacity: 0;
    pointer-events: none;
}

.lead-alert {
    border-radius: 12px;
    padding: 10px 12px;
    font-size: 13px;
    font-weight: 700;
    margin: 12px 0;
}

.lead-alert.success {
    background: #dcfce7;
    color: #166534;
}

.lead-alert.error {
    background: #fee2e2;
    color: #991b1b;
}

.contact-divider {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #94a3b8;
    font-size: 12px;
    margin: 14px 0;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.contact-divider::before,
.contact-divider::after {
    content: "";
    height: 1px;
    background: #e2e8f0;
    flex: 1;
}


/* =========================================================
   Sprint 10K — configurações aplicadas no site público
   ========================================================= */
.site-header {
    background: #ffffff;
    border-bottom: 1px solid rgba(226, 232, 240, .95);
    position: sticky;
    top: 0;
    z-index: 40;
    box-shadow: 0 6px 18px rgba(15, 23, 42, .04);
}

.site-header-inner,
.site-footer-inner {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

.site-header-inner {
    min-height: 74px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
}

.site-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    color: #0f172a;
    min-width: 0;
}

.site-brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: #e60012;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 950;
    letter-spacing: -.04em;
    box-shadow: 0 10px 22px rgba(230, 0, 18, .2);
}

.site-brand-text {
    display: grid;
    gap: 2px;
}

.site-brand-text strong {
    font-size: 18px;
    letter-spacing: -.03em;
}

.site-brand-text small {
    color: #64748b;
    font-size: 12px;
}

.site-nav {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.site-nav a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 12px;
    border-radius: 999px;
    text-decoration: none;
    color: #334155;
    font-weight: 850;
}

.site-nav a:hover,
.site-nav a.active {
    background: #0f172a;
    color: #fff;
}

.site-footer {
    background: #0f172a;
    color: #e5e7eb;
    margin-top: 56px;
    padding: 34px 0;
}

.site-footer-inner {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: flex-start;
}

.site-footer p {
    color: #94a3b8;
    margin: 8px 0 0;
}

.site-footer-contact {
    display: grid;
    gap: 7px;
    text-align: right;
}

.site-footer a {
    color: #fff;
    text-decoration: none;
}

.public-floating-whatsapp {
    position: fixed;
    bottom: 22px;
    z-index: 80;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: 46px;
    padding: 0 16px;
    border-radius: 999px;
    background: #22c55e;
    color: #fff;
    text-decoration: none;
    font-weight: 950;
    box-shadow: 0 16px 32px rgba(34, 197, 94, .26);
}

.public-floating-whatsapp.position-right {
    right: 22px;
}

.public-floating-whatsapp.position-left {
    left: 22px;
}

.public-floating-whatsapp .wa-icon {
    width: 26px;
    height: 26px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.18);
    font-weight: 900;
}

@media (max-width: 760px) {
    .site-header-inner {
        align-items: flex-start;
        flex-direction: column;
        padding: 14px 0;
        gap: 12px;
    }

    .site-nav {
        width: 100%;
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 2px;
    }

    .site-nav a {
        white-space: nowrap;
    }

    .site-footer-inner {
        display: grid;
        gap: 18px;
    }

    .site-footer-contact {
        text-align: left;
    }

    .public-floating-whatsapp {
        left: 16px !important;
        right: 16px !important;
        justify-content: center;
        bottom: 16px;
    }
}

/* =========================================================
   Sprint 10L — SEO, redes sociais e privacidade
   ========================================================= */
.site-social-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.site-social-links a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: #fff;
    text-decoration: none;
    font-weight: 850;
    font-size: 13px;
}

.site-social-links a:hover { background: rgba(255,255,255,.16); }

.public-privacy-section { padding: 48px 0 64px; }

.public-container {
    width: min(1180px, calc(100% - 32px));
    margin: 0 auto;
}

.public-page-header { margin-bottom: 22px; }

.public-page-header h1 {
    margin: 6px 0 8px;
    font-size: clamp(32px, 4vw, 48px);
    letter-spacing: -.05em;
    color: #0f172a;
}

.public-page-header p {
    color: #64748b;
    font-size: 16px;
    max-width: 720px;
}

.public-eyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    background: #fee2e2;
    color: #b91c1c;
    font-weight: 950;
    font-size: 13px;
}

.privacy-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    padding: clamp(22px, 4vw, 36px);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .07);
    color: #334155;
    line-height: 1.75;
    font-size: 16px;
}

.public-lgpd-notice {
    margin-top: 12px;
    padding: 11px 12px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    color: #64748b;
    font-size: 12px;
    line-height: 1.45;
}

.public-lgpd-notice a {
    color: #e60012;
    font-weight: 850;
    text-decoration: none;
}

.public-lgpd-notice a:hover { text-decoration: underline; }

/* Alury 1.0.100 — vitrine pública profissional */
:root {
    --public-ink: #201033;
    --public-muted: #687386;
    --public-line: #e2e6ef;
    --public-surface: #ffffff;
    --public-soft: #f5f6fa;
    --public-accent: #d9041c;
    --public-accent-dark: #aa0013;
    --public-purple: #5217a8;
    --public-shadow: 0 18px 50px rgba(32, 16, 51, .10);
}

html { scroll-behavior: smooth; }
body.public-site { background: #f7f8fb; color: var(--public-ink); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.site-header { z-index: 100; border-bottom: 1px solid rgba(32,16,51,.08); box-shadow: 0 8px 30px rgba(32,16,51,.05); }
.site-header-inner { min-height: 82px; }
.site-brand-mark { box-shadow: 0 12px 26px rgba(217,4,28,.20); }
.site-nav { gap: 8px; }
.site-nav a { border-radius: 12px; font-weight: 760; text-decoration: none; }
.site-nav a:hover, .site-nav a.active { background: rgba(82,23,168,.08); color: var(--public-purple); }
.favorite-count { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; margin-left: 4px; border-radius: 999px; color: #fff; background: var(--public-accent); font-size: 12px; }
.site-nav-toggle, .site-nav-backdrop, .site-nav-mobile-head { display: none; }

.site-hero { background: radial-gradient(circle at 84% 12%, rgba(217,4,28,.27), transparent 30%), radial-gradient(circle at 8% 100%, rgba(119,43,230,.24), transparent 40%), linear-gradient(135deg, #160827, #2c0c43 60%, #3c102f); }
.site-hero h1 { max-width: 780px; letter-spacing: -.045em; }
.site-hero-card { backdrop-filter: blur(12px); border-color: rgba(255,255,255,.18); box-shadow: inset 0 1px rgba(255,255,255,.12); }
.site-btn { min-height: 50px; border-radius: 14px; font-weight: 850; text-decoration: none; }
.site-btn.primary { background: linear-gradient(135deg, var(--public-accent), #f20a26); box-shadow: 0 12px 26px rgba(217,4,28,.18); }
.site-btn.primary:hover { background: var(--public-accent-dark); transform: translateY(-1px); }
.site-btn.whatsapp { background: #0aa94f; color: #fff; border-color: #0aa94f; }
.site-section { padding: clamp(34px, 5vw, 72px) 0; }
.site-section-head { align-items: flex-end; }
.section-kicker, .detail-panel-head > span { display: block; color: var(--public-purple); font-size: 12px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }

.advanced-filter-card { padding: 22px; border: 1px solid var(--public-line); border-radius: 22px; box-shadow: var(--public-shadow); }
.advanced-filter-form { gap: 16px; }
.advanced-filter-form label { color: #354052; font-weight: 800; }
.advanced-filter-form input, .advanced-filter-form select { min-height: 50px; border: 1px solid #d5dae5; border-radius: 13px; background: #fff; }
.results-summary { margin: 24px 0 18px; color: var(--public-muted); }
.results-summary strong { color: var(--public-ink); font-size: 24px; }

.property-grid { gap: 24px; }
.property-card { position: relative; overflow: hidden; border: 1px solid var(--public-line); border-radius: 24px; box-shadow: 0 14px 34px rgba(32,16,51,.07); transition: transform .2s ease, box-shadow .2s ease; }
.property-card:hover { transform: translateY(-3px); box-shadow: var(--public-shadow); }
.property-media { position: relative; height: 270px; overflow: hidden; background: #e9ebf2; }
.property-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.property-card:hover .property-media img { transform: scale(1.025); }
.property-purpose { position: absolute; top: 16px; left: 16px; display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px; border-radius: 999px; color: var(--public-ink); background: rgba(255,255,255,.94); box-shadow: 0 6px 18px rgba(0,0,0,.10); font-size: 12px; font-weight: 900; }
.card-favorite, .icon-action { display: inline-grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1px solid #dfe3ec; border-radius: 50%; background: rgba(255,255,255,.95); color: var(--public-ink); font-size: 25px; cursor: pointer; box-shadow: 0 8px 24px rgba(32,16,51,.12); }
.card-favorite { position: absolute; top: 14px; right: 14px; z-index: 2; }
.card-favorite.active, .icon-action.active { color: var(--public-accent); border-color: rgba(217,4,28,.28); }
.property-body { padding: 22px 22px 12px; }
.property-body h3 { margin: 10px 0 8px; font-size: clamp(21px, 2.3vw, 27px); line-height: 1.15; letter-spacing: -.025em; }
.property-body h3 a { color: var(--public-ink); text-decoration: none; }
.property-code { display: inline-flex; padding: 6px 10px; border-radius: 999px; background: #fff0f2; color: #9d0718; font-weight: 900; letter-spacing: .04em; }
.property-location { color: var(--public-muted); }
.property-price { color: var(--public-ink); font-size: 22px; font-weight: 900; }
.property-features { color: #526074; }
.property-footer { padding: 10px 22px 22px; }
.property-footer .site-btn { width: 100%; }

.property-detail-page { padding-top: 28px; }
.detail-back { display: inline-flex; margin-bottom: 18px; color: #5d6879; font-weight: 800; text-decoration: none; }
.property-detail { overflow: hidden; background: var(--public-surface); border: 1px solid var(--public-line); border-radius: 28px; box-shadow: var(--public-shadow); }
.detail-summary { padding: clamp(22px, 4vw, 48px); }
.detail-badges { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.detail-badges span { padding: 7px 12px; border-radius: 999px; background: #f1eafb; color: var(--public-purple); font-size: 12px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.detail-badges span:first-child { background: #fff0f2; color: #a4081a; }
.detail-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.detail-title-row h1 { max-width: 900px; margin: 0 0 10px; font-size: clamp(32px, 5vw, 58px); line-height: 1.03; letter-spacing: -.05em; }
.detail-actions-compact { display: flex; gap: 10px; flex: 0 0 auto; }
.detail-price { margin: 24px 0 18px; font-size: clamp(28px, 4vw, 42px); }
.detail-cta-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 36px; }
.detail-cta-row .site-btn { min-width: 170px; }

.detail-gallery { position: relative; padding: 18px 18px 0; background: #18141d; }
.detail-gallery-main { display: block; width: 100%; height: min(64vh, 650px); padding: 0; border: 0; border-radius: 18px; overflow: hidden; background: #26212c; cursor: zoom-in; touch-action: pan-y; }
.detail-gallery-main img { width: 100%; height: 100%; object-fit: contain; }
.gallery-count { position: absolute; right: 34px; bottom: 110px; padding: 8px 12px; border-radius: 999px; color: #fff; background: rgba(10,8,14,.72); font-size: 13px; }
.gallery-arrow { position: absolute; top: calc(50% - 42px); z-index: 3; display: grid; place-items: center; width: 52px; height: 52px; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; color: #fff; background: rgba(13,10,17,.62); font-size: 40px; cursor: pointer; }
.gallery-arrow.prev { left: 36px; }
.gallery-arrow.next { right: 36px; }
.detail-gallery-thumbs { display: flex; gap: 10px; padding: 14px 0; overflow-x: auto; scrollbar-width: thin; }
.detail-gallery-thumbs button { flex: 0 0 76px; width: 76px; height: 56px; padding: 2px; overflow: hidden; border: 2px solid transparent; border-radius: 10px; background: transparent; cursor: pointer; }
.detail-gallery-thumbs button.active { border-color: #fff; }
.detail-gallery-thumbs img { width: 100%; height: 100%; object-fit: cover; border-radius: 7px; }
.gallery-swipe-hint { display: none; margin: 0; padding: 0 0 12px; color: #c9c4cf; text-align: center; font-size: 12px; }
.detail-gallery-empty { display: grid; place-items: center; min-height: 360px; color: #fff; font-weight: 800; }

.detail-panel { padding: 30px 0; border-top: 1px solid var(--public-line); }
.detail-panel-head { margin-bottom: 20px; }
.detail-panel-head h2 { margin: 4px 0 0; font-size: clamp(24px, 3vw, 34px); letter-spacing: -.035em; }
.detail-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.detail-item { min-height: 108px; padding: 18px; border: 1px solid var(--public-line); border-radius: 17px; background: var(--public-soft); }
.detail-item span { display: block; margin-bottom: 8px; color: var(--public-muted); font-size: 12px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.detail-item strong { color: var(--public-ink); font-size: 18px; }
.cost-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.cost-grid > div { padding: 20px; border: 1px solid #f0d5da; border-radius: 17px; background: #fff7f8; }
.cost-grid span { display: block; margin-bottom: 8px; color: #765761; font-size: 13px; font-weight: 800; }
.cost-grid strong { color: #8f0616; font-size: 20px; }
.detail-note { margin: 12px 0 0; color: var(--public-muted); font-size: 13px; }
.location-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px; border: 1px solid var(--public-line); border-radius: 17px; background: var(--public-soft); }
.location-summary strong { font-size: 18px; }
.location-summary p { margin: 7px 0 0; color: var(--public-muted); }
.detail-description { max-width: 940px; color: #424e60; font-size: 18px; line-height: 1.75; overflow-wrap: anywhere; }
.detail-description.collapsed { position: relative; max-height: 410px; overflow: hidden; }
.detail-description.collapsed::after { content: ''; position: absolute; right: 0; bottom: 0; left: 0; height: 100px; background: linear-gradient(transparent, #fff); }
.text-expand { margin-top: 14px; padding: 0; border: 0; color: var(--public-purple); background: none; font-weight: 850; cursor: pointer; }
.feature-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.feature-chips span { padding: 10px 14px; border: 1px solid #dce2eb; border-radius: 999px; background: #fff; color: #3c4859; font-weight: 760; }
.contact-card { margin-top: 28px; padding: clamp(24px, 4vw, 42px); border: 1px solid var(--public-line); border-radius: 26px; background: #fff; box-shadow: var(--public-shadow); }
.contact-card .lead-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.contact-card .lead-form label:nth-of-type(4), .contact-card .lead-form .site-btn, .contact-card .lead-form .public-lgpd-notice { grid-column: 1 / -1; }
.contact-card input, .contact-card textarea { border-radius: 13px; }
.similar-section { padding: 54px 0 10px; }

.gallery-lightbox { position: fixed; inset: 0; z-index: 1000; display: none; }
.gallery-lightbox.active { display: block; }
.gallery-lightbox-backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(10,8,14,.94); backdrop-filter: blur(8px); }
.gallery-lightbox-dialog { position: relative; z-index: 2; display: grid; grid-template-rows: minmax(0,1fr) auto auto; width: min(1180px, calc(100% - 40px)); height: min(900px, calc(100dvh - 40px)); margin: 20px auto; padding: 50px 20px 18px; }
.gallery-lightbox-stage { position: relative; display: grid; place-items: center; min-height: 0; touch-action: pan-y; }
.gallery-lightbox-stage > img { width: 100%; height: 100%; max-height: calc(100dvh - 220px); object-fit: contain; border-radius: 14px; }
.gallery-lightbox-close { position: absolute; top: 0; right: 0; z-index: 3; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: #fff; background: rgba(255,255,255,.10); font-size: 30px; cursor: pointer; }
.gallery-lightbox-nav { position: absolute; top: 50%; z-index: 3; display: grid; place-items: center; width: 56px; height: 56px; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; color: #fff; background: rgba(0,0,0,.46); font-size: 42px; cursor: pointer; transform: translateY(-50%); }
.gallery-lightbox-nav.prev { left: 16px; }
.gallery-lightbox-nav.next { right: 16px; }
.gallery-lightbox-counter { padding: 12px; color: #fff; text-align: center; }
.gallery-lightbox-thumbs { display: flex; gap: 10px; justify-content: center; overflow-x: auto; }
.gallery-lightbox-thumbs button { flex: 0 0 72px; width: 72px; height: 54px; padding: 2px; overflow: hidden; border: 2px solid transparent; border-radius: 10px; background: transparent; }
.gallery-lightbox-thumbs button.active { border-color: #fff; }
.gallery-lightbox-thumbs img { width: 100%; height: 100%; object-fit: cover; border-radius: 7px; }
body.gallery-lightbox-open, body.site-nav-open { overflow: hidden; }

@media (max-width: 820px) {
    .site-header-inner { min-height: 74px; padding: 10px 18px; }
    .site-brand { min-width: 0; }
    .site-brand-mark { width: 50px; height: 50px; flex: 0 0 50px; }
    .site-brand-text strong { max-width: calc(100vw - 160px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; }
    .site-brand-text small { font-size: 12px; }
    .site-nav-toggle { display: grid; gap: 5px; place-content: center; width: 52px; height: 52px; padding: 0; border: 1px solid var(--public-line); border-radius: 15px; background: #fff; }
    .site-nav-toggle span:not(.sr-only) { display: block; width: 24px; height: 3px; border-radius: 99px; background: var(--public-ink); }
    .site-nav-backdrop { position: fixed; inset: 0; z-index: 98; background: rgba(17,9,28,.55); backdrop-filter: blur(3px); }
    .site-nav { position: fixed; top: 0; right: 0; bottom: 0; z-index: 99; display: flex; flex-direction: column; align-items: stretch; gap: 6px; width: min(88vw, 390px); padding: 18px; background: #fff; box-shadow: -18px 0 60px rgba(23,10,39,.22); transform: translateX(105%); transition: transform .24s ease; }
    .site-nav a { padding: 15px 14px; font-size: 17px; }
    .site-nav-mobile-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; padding-bottom: 14px; border-bottom: 1px solid var(--public-line); }
    .site-nav-mobile-head strong { font-size: 20px; }
    .site-nav-mobile-head button { width: 44px; height: 44px; border: 0; border-radius: 50%; background: #f1f3f7; font-size: 30px; }
    .site-nav-open .site-nav { transform: translateX(0); }
    .site-nav-open .site-nav-backdrop { display: block; }
    .site-hero { padding-top: 60px; }
    .property-media { height: 245px; }
    .detail-gallery { padding: 0; }
    .detail-gallery-main { height: min(58vh, 520px); border-radius: 0; }
    .gallery-arrow { top: 46%; width: 46px; height: 46px; }
    .gallery-arrow.prev { left: 12px; }
    .gallery-arrow.next { right: 12px; }
    .gallery-count { right: 14px; bottom: 86px; }
    .detail-gallery-thumbs { padding: 12px 14px; }
    .gallery-swipe-hint { display: block; }
    .detail-summary { padding: 24px 20px 30px; }
    .detail-title-row { display: block; }
    .detail-actions-compact { margin-top: 18px; }
    .detail-title-row h1 { font-size: clamp(31px, 9vw, 45px); }
    .detail-price { font-size: 27px; }
    .detail-cta-row { display: grid; grid-template-columns: 1fr 1fr; }
    .detail-cta-row .site-btn:first-child { grid-column: 1 / -1; }
    .detail-list, .cost-grid { grid-template-columns: 1fr 1fr; }
    .detail-item { min-height: 96px; padding: 15px; }
    .detail-description { font-size: 17px; line-height: 1.65; }
    .location-summary { align-items: stretch; flex-direction: column; }
    .contact-card .lead-form { grid-template-columns: 1fr; }
    .contact-card .lead-form label, .contact-card .lead-form .site-btn, .contact-card .lead-form .public-lgpd-notice { grid-column: auto; }
    .gallery-lightbox-dialog { width: 100%; height: 100dvh; margin: 0; padding: 66px 14px 20px; }
    .gallery-lightbox-close { top: 14px; right: 14px; }
    .gallery-lightbox-nav { width: 48px; height: 48px; }
    .gallery-lightbox-nav.prev { left: 8px; }
    .gallery-lightbox-nav.next { right: 8px; }
    .gallery-lightbox-stage > img { max-height: calc(100dvh - 210px); }
}

@media (max-width: 520px) {
    .site-container { width: min(100% - 28px, 1180px); }
    .property-detail-page .site-container { width: 100%; }
    .property-detail-page .detail-back, .property-detail-page .similar-section, .property-detail-page > .site-container > .contact-card { margin-left: 14px; margin-right: 14px; }
    .property-detail { border-right: 0; border-left: 0; border-radius: 0; }
    .detail-gallery-main { height: 400px; }
    .detail-gallery-main img { object-fit: cover; }
    .detail-list, .cost-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
    .detail-item, .cost-grid > div { padding: 14px; }
    .detail-item strong, .cost-grid strong { font-size: 16px; }
    .detail-cta-row { grid-template-columns: 1fr; }
    .detail-cta-row .site-btn:first-child { grid-column: auto; }
    .gallery-lightbox-thumbs button { flex-basis: 62px; width: 62px; height: 48px; }
}

/* =========================================================
   Alury 1.0.100.1 — hierarquia móvel e galeria modal-first
   ========================================================= */
.detail-gallery-modal-first {
    padding: 0;
    background: #e9ebf2;
}

.detail-gallery-modal-first .detail-gallery-main {
    position: relative;
    height: min(62vh, 620px);
    border-radius: 0;
    background: #dfe3ea;
    touch-action: manipulation;
}

.detail-gallery-modal-first .detail-gallery-main img {
    object-fit: cover;
}

.gallery-open-label {
    position: absolute;
    left: 22px;
    bottom: 22px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 46px;
    padding: 0 16px;
    border: 1px solid rgba(255, 255, 255, .76);
    border-radius: 12px;
    color: #201033;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 10px 28px rgba(15, 23, 42, .2);
    font-size: 15px;
    font-weight: 900;
    backdrop-filter: blur(10px);
}

.gallery-open-label > span {
    font-size: 21px;
    line-height: 1;
}

.gallery-open-label small {
    display: inline-grid;
    place-items: center;
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    border-radius: 999px;
    color: #fff;
    background: var(--public-purple);
    font-size: 12px;
}

@media (max-width: 820px) {
    .site-header-inner {
        width: 100%;
        min-height: 76px;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 10px 16px;
    }

    .site-brand {
        flex: 1 1 auto;
        max-width: calc(100% - 64px);
    }

    .site-brand-mark {
        width: 48px;
        height: 48px;
        flex-basis: 48px;
    }

    .site-brand-text {
        overflow: hidden;
    }

    .site-brand-text strong {
        max-width: 100%;
        font-size: 16px;
    }

    .site-nav-toggle {
        flex: 0 0 52px;
    }

    .detail-gallery-modal-first .detail-gallery-main {
        height: clamp(280px, 58vw, 430px);
    }

    .gallery-open-label {
        left: 14px;
        bottom: 14px;
        min-height: 43px;
        padding: 0 14px;
    }

    .detail-title-row h1 {
        font-size: clamp(30px, 8vw, 39px);
    }

    .public-floating-whatsapp {
        left: auto !important;
        right: 16px !important;
        bottom: max(16px, env(safe-area-inset-bottom)) !important;
        width: 58px;
        height: 58px;
        min-height: 58px;
        padding: 0;
        justify-content: center;
        border-radius: 50%;
    }

    .public-floating-whatsapp > span:not(.wa-icon) {
        display: none;
    }

    .public-floating-whatsapp .wa-icon {
        width: 34px;
        height: 34px;
        font-size: 20px;
    }
}

@media (max-width: 520px) {
    .detail-gallery-modal-first .detail-gallery-main {
        height: clamp(270px, 76vw, 390px);
    }

    .detail-summary {
        padding-top: 26px;
    }
}

.about-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    gap: 34px;
    align-items: start;
}
.about-layout h2 { margin: 8px 0 18px; font-size: clamp(30px, 4vw, 48px); line-height: 1.06; letter-spacing: -.045em; }
.about-layout p { margin: 0 0 16px; color: var(--public-muted); font-size: 16px; line-height: 1.75; }
.about-layout aside { padding: 26px; border: 1px solid var(--public-line); border-radius: 20px; background: var(--public-soft); }
.about-layout aside strong { display: block; margin-bottom: 14px; font-size: 18px; }
.about-layout ul { display: grid; gap: 12px; margin: 0; padding-left: 20px; color: #514958; line-height: 1.55; }
.location-grid-page { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.institutional-cta { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-top: 38px; padding: 28px; border-radius: 22px; background: linear-gradient(135deg, #f4eff8, #faf8fb); }
.institutional-cta h2 { margin: 6px 0; font-size: clamp(24px, 3vw, 34px); }
.institutional-cta p { margin: 0; color: var(--public-muted); }

@media (max-width: 900px) {
    .about-layout { grid-template-columns: 1fr; }
    .location-grid-page { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .location-grid-page { grid-template-columns: 1fr; }
    .institutional-cta { align-items: flex-start; flex-direction: column; }
}

/* ================================================================
   19.3.0Y / 1.0.101 — Vitrine publica completa
   Camada final de identidade, densidade e responsividade.
   ================================================================ */
:root {
    --public-primary: var(--tenant-primary, #4c1d95);
    --public-accent: var(--tenant-accent, #d9041c);
    --public-ink: #17131d;
    --public-muted: #6f6877;
    --public-line: #e8e4eb;
    --public-soft: #f7f5f8;
    --public-card: #fff;
    --public-radius: 18px;
    --public-shadow: 0 18px 50px rgba(31, 18, 43, .08);
}

.public-site { color: var(--public-ink); background: #fff; }
.public-site .site-container,
.site-header-inner,
.site-utility-inner,
.site-footer-inner,
.site-footer-bottom { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.site-utility { display: block; background: #17131d; color: #fff; font-size: 12px; }
.site-utility-inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.site-utility-inner > span { color: rgba(255,255,255,.72); }
.site-utility-inner > div { display: flex; gap: 20px; }
.site-utility a { color: #fff; text-decoration: none; }
.site-header { position: sticky; top: 0; z-index: 80; border-bottom: 1px solid rgba(232,228,235,.9); background: rgba(255,255,255,.96); backdrop-filter: blur(16px); }
.site-header-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 10px 0; }
.site-brand { min-width: 0; display: inline-flex; align-items: center; gap: 12px; color: var(--public-ink); text-decoration: none; }
.site-brand-mark { width: 46px; height: 46px; background: linear-gradient(145deg, var(--public-primary), color-mix(in srgb, var(--public-primary), #000 24%)); color: #fff; border-radius: 14px; box-shadow: none; }
.site-brand-logo { width: 128px; height: 52px; display: flex; align-items: center; }
.site-brand-logo img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: left center; }
.site-brand-text strong { display: block; max-width: 230px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; }
.site-brand-text small { display: block; margin-top: 2px; color: var(--public-muted); font-size: 10px; }
.site-nav { display: flex; align-items: center; gap: 2px; }
.site-nav > a { display: inline-flex; align-items: center; gap: 6px; padding: 10px 10px; border-radius: 10px; color: #39323f; font-size: 13px; font-weight: 750; text-decoration: none; }
.site-nav > a:hover, .site-nav > a.active { color: var(--public-primary); background: color-mix(in srgb, var(--public-primary), #fff 93%); }
.site-nav svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.site-nav .site-nav-contact { margin-left: 6px; padding-inline: 15px; color: #fff; background: var(--public-primary); }
.site-nav .site-nav-contact:hover, .site-nav .site-nav-contact.active { color: #fff; background: color-mix(in srgb, var(--public-primary), #000 12%); }
.favorite-count { min-width: 19px; height: 19px; padding: 0 5px; margin-left: 0; background: var(--public-accent); font-size: 10px; }

.site-hero { padding: 62px 0 54px; background: radial-gradient(circle at 10% 0%, color-mix(in srgb, var(--public-primary), transparent 84%), transparent 36%), linear-gradient(135deg, #fbfafc, #f2eef7); }
.site-hero-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(440px, 1.08fr); align-items: center; gap: 54px; }
.site-hero-copy h1 { max-width: 680px; margin: 12px 0 18px; color: #1d1425; font-size: clamp(42px, 5.8vw, 70px); line-height: .98; letter-spacing: -.055em; }
.site-hero-copy > p { max-width: 620px; margin: 0; color: #62596b; font-size: 17px; line-height: 1.65; }
.site-eyebrow, .section-kicker { color: var(--public-primary); font-size: 11px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.site-hero-trust { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.site-hero-trust span { padding: 8px 11px; border: 1px solid #e0d9e6; border-radius: 999px; background: rgba(255,255,255,.72); color: #554c5d; font-size: 11px; }
.site-hero-trust strong { color: var(--public-ink); }
.hero-search-shell { overflow: hidden; border: 1px solid #e4dfe8; border-radius: 24px; background: #fff; box-shadow: var(--public-shadow); }
.hero-search-head { display: flex; justify-content: space-between; gap: 14px; padding: 20px 22px 16px; border-bottom: 1px solid #eeeaf0; }
.hero-search-head strong { font-size: 16px; }
.hero-search-head span { color: var(--public-muted); font-size: 12px; }
.hero-search-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 20px 22px 22px; }
.hero-search-form label { display: grid; gap: 6px; }
.hero-search-form label > span { color: #6b6372; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.hero-search-form select, .hero-search-form input { width: 100%; min-height: 46px; padding: 0 13px; border: 1px solid #ddd7e2; border-radius: 11px; background: #fff; color: var(--public-ink); font: inherit; }
.hero-search-form > .site-btn { grid-column: 1 / -1; min-height: 48px; }
.hero-reference { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 12px; padding-top: 4px; }
.hero-reference a { min-height: 46px; display: inline-flex; align-items: center; padding-inline: 14px; color: var(--public-primary); font-size: 12px; font-weight: 850; text-decoration: none; }

.site-section { padding: 66px 0; }
.site-section:nth-of-type(even):not(.announce-section):not(.home-contact-section) { background: var(--public-soft); }
.site-section-head { margin-bottom: 26px; display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.site-section-head h2 { margin: 7px 0 7px; font-size: clamp(29px, 4vw, 44px); line-height: 1.05; letter-spacing: -.04em; }
.site-section-head p { max-width: 650px; margin: 0; color: var(--public-muted); line-height: 1.6; }
.section-link { display: inline-flex; align-items: center; gap: 8px; color: var(--public-primary); font-size: 13px; font-weight: 900; text-decoration: none; white-space: nowrap; }
.section-link span { font-size: 18px; }
.property-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.property-card { position: relative; overflow: hidden; min-width: 0; border: 1px solid var(--public-line); border-radius: var(--public-radius); background: #fff; box-shadow: 0 10px 28px rgba(34,20,45,.055); transition: transform .2s, box-shadow .2s; }
.property-card:hover { transform: translateY(-3px); box-shadow: var(--public-shadow); }
.property-media { height: 232px; }
.property-media:before { display: none; }
.property-media img { width: 100%; height: 100%; object-fit: cover; }
.property-purpose { top: 13px; left: 13px; min-height: 27px; padding: 0 10px; border-radius: 8px; font-size: 10px; }
.card-favorite { top: 12px; right: 12px; width: 38px; height: 38px; border: 0; border-radius: 10px; color: #2f2935; background: rgba(255,255,255,.94); box-shadow: 0 5px 16px rgba(0,0,0,.13); }
.card-favorite svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.card-favorite.active { color: #b68212; background: #fff7dc; }
.card-favorite.active svg { fill: currentColor; }
.property-body { padding: 18px 18px 12px; }
.property-code { padding: 4px 7px; border-radius: 7px; font-size: 9px; }
.property-body h3 { margin: 9px 0 7px; font-size: 19px; line-height: 1.22; }
.property-location { color: var(--public-muted); font-size: 12px; }
.property-price { margin-top: 13px; color: var(--public-ink); font-size: 20px; }
.property-features { min-height: 19px; margin-top: 9px; color: #554d5d; font-size: 11px; }
.property-footer { padding: 0 18px 18px; }
.property-footer .site-btn { width: 100%; min-height: 42px; }

.listing-hero { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin: 0 0 26px; }
.listing-hero h1, .public-page-header h1 { margin: 7px 0 8px; font-size: clamp(38px, 6vw, 62px); line-height: 1; letter-spacing: -.05em; }
.listing-hero p, .public-page-header p { max-width: 680px; margin: 0; color: var(--public-muted); font-size: 16px; line-height: 1.6; }
.filter-mobile-open { display: none; }
.advanced-filter-card { margin: 0 0 22px; padding: 0; overflow: hidden; border: 1px solid var(--public-line); border-radius: 18px; background: #fff; box-shadow: 0 12px 34px rgba(34,20,45,.055); }
.filter-panel-head { display: none; }
.advanced-filter-form { display: block; padding: 20px; }
.filter-scroll-body { min-width: 0; }
.filter-primary-grid { display: grid; grid-template-columns: minmax(230px,1.45fr) repeat(3,minmax(145px,1fr)); gap: 12px; align-items: end; }
.filter-has-purpose .filter-primary-grid { grid-template-columns: minmax(220px,1.45fr) repeat(4,minmax(125px,1fr)); }
.advanced-filter-form label { display: block; margin-bottom: 7px; color: #51495a; font-size: 12px; font-weight: 780; }
.advanced-filter-form input, .advanced-filter-form select { width: 100%; min-height: 46px; box-sizing: border-box; padding: 0 13px; border: 1px solid #d9d2df; border-radius: 11px; background: #fff; color: var(--public-ink); font: inherit; transition: border-color .18s ease, box-shadow .18s ease; }
.advanced-filter-form input:focus, .advanced-filter-form select:focus { border-color: var(--public-primary); box-shadow: 0 0 0 3px color-mix(in srgb,var(--public-primary),transparent 86%); }
.filter-advanced-fields { margin-top: 16px; border-top: 1px solid #eeeaf0; }
.filter-advanced-fields summary { display: flex; align-items: center; gap: 10px; padding: 15px 2px 0; cursor: pointer; color: var(--public-primary); list-style: none; }
.filter-advanced-fields summary::-webkit-details-marker { display: none; }
.filter-advanced-fields summary::before { content: '+'; display: grid; place-items: center; width: 25px; height: 25px; border-radius: 8px; background: color-mix(in srgb,var(--public-primary),#fff 92%); font-size: 18px; font-weight: 700; }
.filter-advanced-fields[open] summary::before { content: '−'; }
.filter-advanced-fields summary > span { font-size: 13px; font-weight: 850; }
.filter-advanced-fields summary > small { color: var(--public-muted); font-size: 12px; font-weight: 500; }
.filter-advanced-groups { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1.1fr) minmax(180px,.65fr); gap: 12px; padding-top: 15px; }
.filter-field-group { min-width: 0; margin: 0; padding: 15px; border: 1px solid #e7e1e9; border-radius: 14px; background: #fbfafc; }
.filter-field-group legend { padding: 0 7px; color: var(--public-ink); font-size: 12px; font-weight: 850; }
.filter-group-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.filter-sort-group .filter-group-grid { grid-template-columns: 1fr; }
.filter-actions { display: flex; align-items: center; justify-content: flex-end; gap: 15px; margin-top: 18px; padding-top: 17px; border-top: 1px solid #eeeaf0; }
.filter-actions .site-btn { min-width: 158px; }
.filter-clear { color: var(--public-muted); font-size: 12px; font-weight: 800; text-underline-offset: 3px; }
.results-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 22px 0 16px; padding: 0; color: var(--public-muted); font-size: 12px; }
.results-summary strong { color: var(--public-ink); font-size: 17px; }
.public-pagination { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--public-line); color: var(--public-muted); font-size: 12px; }
.public-pagination > div { display: flex; gap: 6px; }
.public-pagination a { min-width: 36px; min-height: 36px; display: inline-flex; align-items: center; justify-content: center; padding: 0 10px; border: 1px solid var(--public-line); border-radius: 9px; color: var(--public-ink); text-decoration: none; }
.public-pagination a.active { border-color: var(--public-primary); color: #fff; background: var(--public-primary); }

.location-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.location-card, .service-card { min-height: 150px; display: flex; flex-direction: column; padding: 20px; border: 1px solid var(--public-line); border-radius: 16px; color: var(--public-ink); background: #fff; text-decoration: none; }
.location-card span, .service-card > span { color: var(--public-primary); font-size: 10px; font-weight: 900; text-transform: uppercase; }
.location-card strong { margin-top: 7px; font-size: 19px; }
.location-card small { margin-top: 5px; color: var(--public-muted); }
.location-card b, .service-card b { margin-top: auto; color: var(--public-primary); font-size: 11px; }
.service-grid, .institutional-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.service-card { min-height: 220px; padding: 24px; }
.service-card strong { margin-top: 22px; font-size: 22px; }
.service-card p { color: var(--public-muted); line-height: 1.6; }
.announce-section, .home-contact-section { padding-top: 22px; padding-bottom: 22px; }
.announce-card, .home-contact-card { display: flex; align-items: center; justify-content: space-between; gap: 34px; padding: 38px 42px; border-radius: 23px; color: #fff; background: linear-gradient(125deg, color-mix(in srgb, var(--public-primary), #000 22%), var(--public-primary)); }
.announce-card h2, .home-contact-card h2 { max-width: 760px; margin: 7px 0 8px; color: #fff; font-size: clamp(28px,4vw,44px); line-height: 1.08; }
.announce-card p, .home-contact-card p { max-width: 700px; margin: 0; color: rgba(255,255,255,.76); line-height: 1.55; }
.announce-card .section-kicker, .home-contact-card .section-kicker { color: rgba(255,255,255,.7); }
.announce-card .site-btn { color: var(--public-primary); background: #fff; }
.home-contact-actions { display: flex; flex-direction: column; gap: 9px; min-width: 210px; }
.home-contact-actions .site-btn.secondary { color: #fff; border-color: rgba(255,255,255,.4); background: transparent; }

.property-detail-page { padding-top: 30px; }
.detail-back { display: inline-flex; margin-bottom: 16px; color: var(--public-muted); font-size: 12px; text-decoration: none; }
.property-detail { overflow: hidden; border: 1px solid var(--public-line); border-radius: 20px; background: #fff; box-shadow: none; }
.detail-gallery { border-radius: 0; }
.detail-gallery-cover { aspect-ratio: 16 / 8.3; max-height: 610px; }
.detail-gallery-photo-count { border-radius: 10px; }
.detail-summary { padding: 30px 32px 38px; }
.detail-title-row h1 { max-width: 900px; font-size: clamp(32px,5vw,54px); }
.detail-price { margin: 19px 0 16px; }
.property-action-bar { display: flex; flex-wrap: wrap; gap: 0; margin: 0 0 24px; border: 1px solid var(--public-line); border-radius: 12px; background: #faf9fb; }
.property-action-bar button, .property-action-bar a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex: 1 1 155px; padding: 0 14px; border: 0; border-right: 1px solid var(--public-line); color: #504858; background: transparent; font: inherit; font-size: 11px; font-weight: 750; text-decoration: none; cursor: pointer; }
.property-action-bar > :last-child { border-right: 0; }
.property-action-bar svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.property-action-bar button.active { color: #9a6b00; background: #fff8df; }
.property-action-bar button.active svg { fill: currentColor; }
.detail-cta-row { margin-bottom: 30px; }
.detail-panel { padding: 24px 0; border-top: 1px solid var(--public-line); }
.detail-list-primary { grid-template-columns: repeat(3,minmax(0,1fr)); }
.cost-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.property-map { overflow: hidden; margin-top: 18px; border: 1px solid var(--public-line); border-radius: 14px; }
.property-map iframe { display: block; width: 100%; height: 310px; border: 0; }
.contact-card { margin-top: 22px; border-radius: 20px; box-shadow: none; }

.public-page-header { max-width: 850px; margin-bottom: 34px; }
.institutional-grid article { min-height: 250px; padding: 26px; border: 1px solid var(--public-line); border-radius: 18px; background: #fff; }
.institutional-grid article > span { color: var(--public-primary); font-size: 11px; font-weight: 900; }
.institutional-grid h2 { margin: 25px 0 10px; font-size: 25px; }
.institutional-grid p { color: var(--public-muted); line-height: 1.65; }
.institutional-grid a { color: var(--public-primary); font-weight: 850; text-decoration: none; }
.finance-layout, .contact-page-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(380px,1.2fr); gap: 28px; align-items: start; }
.finance-copy, .finance-calculator, .contact-page-info, .contact-page-form { padding: 28px; border: 1px solid var(--public-line); border-radius: 19px; background: #fff; }
.finance-copy h2, .contact-page-info h2, .contact-page-form h2 { margin-top: 0; font-size: 28px; }
.finance-copy p, .finance-copy li, .contact-page-info p { color: var(--public-muted); line-height: 1.65; }
.finance-calculator { display: grid; gap: 13px; }
.finance-calculator label { display: grid; gap: 6px; color: #635b6b; font-size: 11px; font-weight: 800; }
.finance-calculator input { min-height: 45px; padding: 0 12px; border: 1px solid #ddd7e2; border-radius: 10px; font: inherit; }
.finance-two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.finance-result { display: grid; gap: 5px; padding: 18px; border-radius: 14px; background: var(--public-soft); }
.finance-result span { color: var(--public-muted); font-size: 10px; text-transform: uppercase; }
.finance-result strong { margin-bottom: 7px; font-size: 21px; }
.finance-result small { color: var(--public-muted); }
.contact-page-info { display: grid; gap: 11px; }
.contact-page-info > a { display: grid; gap: 3px; padding: 14px; border: 1px solid var(--public-line); border-radius: 12px; color: var(--public-ink); text-decoration: none; }
.contact-page-info > a span { color: var(--public-muted); font-size: 12px; }
.contact-page-form .lead-form { margin-top: 18px; }

.site-footer { margin-top: 52px; padding: 54px 0 0; border-top: 1px solid var(--public-line); background: #17131d; color: #fff; }
.site-footer-inner { display: grid; grid-template-columns: 1.25fr .75fr .9fr 1fr; align-items: start; gap: 38px; }
.site-footer strong { color: #fff; }
.site-footer p, .site-footer span { color: rgba(255,255,255,.62); }
.site-footer a { color: rgba(255,255,255,.78); }
.site-footer-links, .site-footer-contact { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; text-align: left; }
.site-footer-links strong, .site-footer-contact strong { margin-bottom: 5px; font-size: 12px; }
.site-footer-links a, .site-footer-contact a, .site-footer-contact span { font-size: 11px; text-decoration: none; }
.site-social-links { display: flex; flex-wrap: wrap; gap: 10px; }
.site-social-links a { font-size: 11px; }
.site-footer-bottom { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 38px; border-top: 1px solid rgba(255,255,255,.1); font-size: 10px; }
.public-floating-whatsapp { right: 18px; left: auto; bottom: 18px; width: auto; min-height: 48px; display: inline-flex; align-items: center; gap: 8px; padding: 0 15px; border-radius: 13px; }
.public-floating-whatsapp svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }

@media (max-width: 1100px) {
    .site-utility { display: none; }
    .site-header-inner { min-height: 68px; }
    .site-nav-toggle { display: inline-flex; }
    .site-hero-grid { grid-template-columns: 1fr; gap: 34px; }
    .site-hero-copy { max-width: 820px; }
    .hero-search-shell { max-width: 760px; }
    .filter-primary-grid, .filter-has-purpose .filter-primary-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .filter-primary-grid .filter-wide { grid-column: 1 / -1; }
    .filter-advanced-groups { grid-template-columns: 1fr 1fr; }
    .filter-sort-group { grid-column: 1 / -1; }
    .filter-sort-group .filter-group-grid { grid-template-columns: minmax(180px,1fr) minmax(0,1fr); }
    .site-footer-inner { grid-template-columns: 1.2fr 1fr 1fr; }
    .site-footer-contact { grid-column: 1 / -1; }
}

/* ================================================================
   19.3.0Y56 / 1.0.101.56 — Contatos responsivos e fonte única
   ================================================================ */
.site-nav-mobile-contacts {
    display: none;
}

@media (min-width: 1101px) {
    .layout-real_estate .site-utility .utility-phone,
    .layout-real_estate .site-utility .utility-email {
        display: none !important;
    }
}

@media (min-width: 768px) and (max-width: 1100px) {
    .layout-real_estate .site-header-institutional {
        display: block;
        min-width: 0;
        margin-left: auto;
    }
    .layout-real_estate .site-header-contact-items {
        display: flex;
        align-items: center;
        justify-content: flex-end;
        gap: 8px;
    }
    .layout-real_estate .site-header-contact-item {
        display: flex;
        align-items: center;
        min-width: 0;
        max-width: 225px;
        gap: 7px;
        padding: 7px 9px;
        border: 1px solid color-mix(in srgb, var(--tenant-header-text, #17131d), transparent 82%);
        border-radius: 8px;
        color: var(--tenant-header-text, #17131d);
        text-decoration: none;
    }
    .layout-real_estate .site-header-contact-item > svg {
        width: 24px;
        height: 24px;
        flex: 0 0 24px;
    }
    .layout-real_estate .site-header-contact-item span {
        min-width: 0;
    }
    .layout-real_estate .site-header-contact-item small {
        display: none;
    }
    .layout-real_estate .site-header-contact-item strong {
        display: block;
        min-width: 0;
        overflow: hidden;
        color: inherit;
        font-size: 11px;
        line-height: 1.2;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .layout-real_estate .site-utility .utility-phone,
    .layout-real_estate .site-utility .utility-email {
        display: none !important;
    }
}

@media (max-width: 767px) {
    .layout-real_estate .site-header-institutional {
        display: none !important;
    }
    .layout-real_estate .site-utility .utility-phone,
    .layout-real_estate .site-utility .utility-email {
        display: none !important;
    }
    .site-nav-mobile-contacts {
        display: grid;
        gap: 8px;
        width: 100%;
        margin-top: auto;
        padding: 14px 18px calc(14px + env(safe-area-inset-bottom));
        border-top: 1px solid color-mix(in srgb, currentColor, transparent 82%);
    }
    .site-nav-mobile-contacts > a {
        display: flex;
        align-items: center;
        min-width: 0;
        gap: 9px;
        padding: 9px 10px;
        border: 1px solid color-mix(in srgb, currentColor, transparent 82%);
        border-radius: 8px;
        color: inherit !important;
        font-size: 13px;
        font-weight: 700;
        line-height: 1.25;
        text-decoration: none;
    }
    .site-nav-mobile-contacts svg {
        width: 18px;
        height: 18px;
        flex: 0 0 18px;
    }
    .site-nav-mobile-contacts span {
        min-width: 0;
        overflow-wrap: anywhere;
    }
}

/* ================================================================
   19.3.0Y4 / 1.0.101.4 — Fechamento do layout público principal
   ================================================================ */
.layout-standard .site-hero-intro .site-hero-copy,
.layout-standard .site-hero-intro .site-hero-copy h1 {
    width: 100%;
    max-width: none;
}

.featured-carousel-controls,
.featured-carousel-dots,
.featured-slide-actions { display: none !important; }
.featured-slide {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
}
.featured-slide-media { display: grid; }
.featured-slide-content { display: flex; }
.featured-slide-content h3 { color: #fff; }
.featured-slide-hint {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    margin-top: 18px;
    color: rgba(255,255,255,.82);
    font-size: 12px;
    font-weight: 850;
}
.featured-slide:focus-visible {
    outline: 4px solid color-mix(in srgb,var(--public-primary),#fff 35%);
    outline-offset: 4px;
}

.favorites-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin: -4px 0 22px;
    padding: 15px 18px;
    border: 1px solid var(--public-line);
    border-radius: 14px;
    background: var(--public-card);
    color: var(--public-muted);
}
.favorites-summary strong { color: var(--public-ink); }
.favorites-empty a { color: var(--public-primary); font-weight: 850; }
.favorites-grid:empty { display: none; }

.property-detail-columns {
    display: block;
    min-width: 0;
}
.layout-standard .property-detail-columns {
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(330px,370px);
    gap: 24px;
    align-items: start;
}
.property-detail-aside { min-width: 0; }
.layout-standard .property-detail-aside,
.layout-standard .property-detail-aside .contact-card {
    position: static !important;
    top: auto !important;
}
.detail-price-card {
    overflow: hidden;
    padding: 24px;
    border: 1px solid color-mix(in srgb,var(--public-primary),transparent 72%);
    border-radius: 20px;
    background: linear-gradient(135deg,color-mix(in srgb,var(--public-primary),#000 14%),var(--public-primary));
    color: #fff;
}
.detail-price-card > span {
    display: block;
    margin-bottom: 7px;
    color: rgba(255,255,255,.74);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.detail-price-card > strong {
    display: block;
    font-size: clamp(25px,2.5vw,34px);
    line-height: 1.12;
    letter-spacing: -.035em;
}
.detail-price-extras {
    display: grid;
    gap: 7px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,.22);
}
.detail-price-extras span {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: rgba(255,255,255,.8);
    font-size: 13px;
}
.detail-price-extras strong { color: #fff; }
.layout-standard .property-detail-aside .contact-card {
    width: 100%;
    margin: 16px 0 0;
    padding: 24px;
    border-radius: 20px;
    box-shadow: none;
}
.layout-standard .property-detail-aside .lead-form {
    display: grid;
    grid-template-columns: minmax(0,1fr);
    gap: 13px;
}
.layout-standard .property-detail-aside .lead-form label,
.layout-standard .property-detail-aside .lead-form .site-btn,
.layout-standard .property-detail-aside .lead-form .public-lgpd-notice {
    grid-column: auto;
    min-width: 0;
}
.layout-standard .property-detail-aside input,
.layout-standard .property-detail-aside textarea { width: 100%; min-width: 0; }
.similar-section {
    position: relative !important;
    z-index: auto !important;
    clear: both;
}

@media (max-width: 980px) {
    .layout-standard .property-detail-columns { grid-template-columns: minmax(0,1fr); }
    .layout-standard .property-detail-aside { margin: 18px 14px 0; }
    .layout-standard .property-detail-aside .contact-card { margin-top: 14px; }
    .favorites-summary { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 700px) {
    .layout-standard .site-hero-intro .site-hero-copy h1 { font-size: clamp(31px,9.4vw,42px); }
    .featured-slide-hint { display: none; }
    .favorites-clear { width: 100%; }
    .layout-standard .property-detail-aside { margin-left: 14px; margin-right: 14px; }
    .detail-price-card,
    .layout-standard .property-detail-aside .contact-card { padding: 21px; }
}

@media (max-width: 780px) {
    .public-site .site-container, .site-header-inner, .site-footer-inner, .site-footer-bottom { width: min(100% - 30px, 1180px); }
    .site-header-inner { padding: 8px 0; flex-direction: row; align-items: center; }
    .site-brand-mark { width: 42px; height: 42px; }
    .site-brand-logo { width: 105px; height: 44px; }
    .site-brand-text strong { max-width: 190px; }
    .site-nav { width: min(88vw, 360px); }
    .site-nav > a { width: 100%; box-sizing: border-box; padding: 13px 15px; font-size: 14px; }
    .site-nav .site-nav-contact { margin-left: 0; }
    .site-hero { padding: 38px 0; }
    .site-hero-copy h1 { font-size: clamp(40px,13vw,58px); }
    .hero-search-form { grid-template-columns: 1fr; padding: 17px; }
    .hero-search-form > .site-btn, .hero-reference { grid-column: auto; }
    .hero-reference { grid-template-columns: 1fr; }
    .hero-search-head { align-items: flex-start; flex-direction: column; padding: 17px; }
    .site-section { padding: 46px 0; }
    .site-section-head { align-items: flex-start; flex-direction: column; }
    .property-grid, .location-grid, .service-grid, .institutional-grid { grid-template-columns: 1fr; }
    .property-card { border-radius: 15px; }
    .property-media { height: 228px; }
    .listing-hero { align-items: flex-start; flex-direction: column; }
    .filter-mobile-open { display: inline-flex; width: 100%; }
    .advanced-filter-card { position: fixed; inset: 0; z-index: 120; display: flex; height: 100dvh; flex-direction: column; overflow: hidden; margin: 0; padding: env(safe-area-inset-top) 0 0; border: 0; border-radius: 0; transform: translateY(105%); transition: transform .24s ease; }
    body.filter-panel-open { width: 100%; height: 100dvh; overflow: hidden; overscroll-behavior: none; }
    body.filter-panel-open .advanced-filter-card { transform: translateY(0); }
    .filter-panel-head { position: relative; z-index: 2; display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 15px; min-height: 68px; padding: 12px 18px; border-bottom: 1px solid var(--public-line); background: #fff; }
    .filter-panel-head strong, .filter-panel-head span { display: block; }
    .filter-panel-head span { margin-top: 3px; color: var(--public-muted); font-size: 11px; }
    .filter-panel-head button { width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid var(--public-line); border-radius: 12px; background: #fff; font-size: 24px; }
    .advanced-filter-form { display: flex; min-height: 0; flex: 1 1 auto; flex-direction: column; padding: 0; }
    .filter-scroll-body { min-height: 0; flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 18px; }
    .filter-primary-grid, .filter-has-purpose .filter-primary-grid, .filter-advanced-groups, .filter-group-grid, .filter-sort-group .filter-group-grid { grid-template-columns: 1fr; }
    .filter-primary-grid .filter-wide, .filter-sort-group { grid-column: auto; }
    .filter-advanced-fields summary { align-items: flex-start; flex-wrap: wrap; }
    .filter-advanced-fields summary > small { width: calc(100% - 35px); margin-left: 35px; }
    .filter-field-group { padding: 14px; }
    .filter-actions { flex: 0 0 auto; align-items: stretch; flex-direction: row; margin: 0; padding: 12px 18px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--public-line); background: #fff; box-shadow: 0 -12px 30px rgba(34,20,45,.08); }
    .filter-actions .site-btn { width: 100%; }
    .filter-clear { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; padding: 0 12px; text-align: center; white-space: nowrap; }
    .results-summary { align-items: flex-start; flex-direction: column; gap: 4px; }
    .public-pagination { align-items: flex-start; flex-direction: column; }
    .public-pagination > div { max-width: 100%; overflow-x: auto; }
    .location-card { min-height: 130px; }
    .announce-card, .home-contact-card { align-items: flex-start; flex-direction: column; padding: 28px 24px; }
    .home-contact-actions { width: 100%; }
    .detail-summary { padding: 22px 18px 28px; }
    .detail-gallery-cover { aspect-ratio: 4 / 3; }
    .property-action-bar { display: grid; grid-template-columns: 1fr 1fr; }
    .property-action-bar button, .property-action-bar a { min-height: 48px; border-right: 0; border-bottom: 1px solid var(--public-line); }
    .property-action-bar > :nth-child(odd) { border-right: 1px solid var(--public-line); }
    .property-action-bar > :nth-last-child(-n+2) { border-bottom: 0; }
    .detail-list-primary, .cost-grid { grid-template-columns: 1fr 1fr; }
    .finance-layout, .contact-page-grid { grid-template-columns: 1fr; }
    .finance-two { grid-template-columns: 1fr; }
    .site-footer-inner { grid-template-columns: 1fr 1fr; }
    .site-footer-brand, .site-footer-contact { grid-column: 1 / -1; }
    .site-footer-bottom { align-items: flex-start; flex-direction: column; justify-content: center; padding: 16px 0; }
    .public-floating-whatsapp { width: 48px; padding: 0; justify-content: center; border-radius: 50%; }
    .public-floating-whatsapp > span:last-child { display: none; }
}

@media (max-width: 430px) {
    .site-brand-text strong { max-width: 150px; font-size: 14px; }
    .detail-list-primary, .cost-grid { grid-template-columns: 1fr; }
    .site-footer-inner { grid-template-columns: 1fr; }
    .site-footer-brand, .site-footer-contact { grid-column: auto; }
}

.property-media.has-photo::after {
    display: none !important;
}

.property-media.has-photo::before {
    background: linear-gradient(180deg, transparent 48%, rgba(0,0,0,.22) 100%);
    border: 0 !important;
    inset: 0 !important;
    border-radius: 0 !important;
}

.detail-card.with-photo::before {
    display: none !important;
}

.detail-media {
    height: 360px;
    margin: -28px -28px 26px;
    border-radius: 24px 24px 0 0;
    background-color: #e5e7eb;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.property-image-upload {
    margin-top: 18px;
}

.property-image-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.property-image-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}

.property-image-preview {
    height: 180px;
    background: #e5e7eb;
    background-size: cover;
    background-position: center;
}

.property-image-body {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.property-image-body strong {
    font-size: 14px;
    line-height: 1.25;
    word-break: break-word;
}

.property-image-body span {
    color: #64748b;
    font-size: 13px;
}

@media (max-width: 900px) {
    .property-image-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ================================================================
   19.3.0Y55 / 1.0.101.55 — Enquadramento único entre todas as páginas
   ================================================================ */
/*
 * A altura real do frame ainda acompanha o conteúdo para recortá-lo sem
 * deixar áreas vazias. A escala da fotografia, porém, usa um canvas estável
 * por breakpoint e não volta a ser calculada pelo background-size: cover.
 */
.layout-real_estate.has-public-hero-image .site-opening-background {
    background-position: center var(--opening-background-y, 0px) !important;
    background-size: auto var(--public-hero-canvas-height) !important;
}

@media (min-width: 1101px) {
    .layout-real_estate.has-public-hero-image {
        --public-hero-canvas-height: 508px;
    }
}

@media (max-width: 1100px) {
    .layout-real_estate.has-public-hero-image {
        --public-hero-canvas-height: 720px;
    }
}

/* ================================================================
   19.3.0Y54 / 1.0.101.54 — Identidade por área e contatos no cabeçalho
   ================================================================ */
.public-site {
    --public-ink: var(--tenant-heading, var(--tenant-secondary, #17131d));
    --public-muted: var(--tenant-muted, #72687b);
    color: var(--tenant-body-text, #39323f);
}

.site-utility {
    background: var(--tenant-utility-bg, var(--public-ink)) !important;
    color: var(--tenant-utility-text, #fff) !important;
}
.site-utility a { color: var(--tenant-utility-text, #fff) !important; }

.site-header {
    background-color: var(--tenant-header-bg, #fff) !important;
    color: var(--tenant-header-text, #17131d);
}

.site-nav {
    background-color: var(--tenant-nav-bg, var(--public-primary)) !important;
    color: var(--tenant-nav-text, #fff);
}
.site-nav > a,
.site-nav-group > a,
.site-nav .site-nav-contact { color: var(--tenant-nav-text, #fff) !important; }

.site-search-banner .hero-search-shell,
.site-hero-compact .hero-search-shell,
.hero-search-widget .hero-search-shell {
    background: color-mix(in srgb, var(--tenant-search-bg, #17131d) var(--tenant-search-opacity, 84%), transparent) !important;
    color: var(--tenant-search-text, #fff);
}
.hero-search-head,
.hero-search-head strong,
.hero-search-head span,
.hero-search-form label > span,
.hero-advanced-search-form label > span,
.hero-advanced-price-range legend {
    color: var(--tenant-search-text, #fff);
}

.site-footer {
    background: var(--tenant-footer-bg, var(--public-ink)) !important;
    color: var(--tenant-footer-text, #fff) !important;
}
.site-footer strong { color: var(--tenant-footer-text, #fff) !important; }
.site-footer p,
.site-footer span,
.site-footer a { color: color-mix(in srgb, var(--tenant-footer-text, #fff), transparent 24%) !important; }
.site-footer a:hover { color: var(--tenant-footer-text, #fff) !important; }

/* Identidade visual oficial das redes; o SVG continua acessível e nítido. */
.site-utility-social-link {
    border-color: rgba(255,255,255,.38) !important;
    color: #fff !important;
    opacity: 1;
}
.site-utility-social-link.social-instagram {
    background: radial-gradient(circle at 32% 105%,#feda75 0 18%,#fa7e1e 32%,#d62976 52%,#962fbf 72%,#4f5bd5 100%) !important;
}
.site-utility-social-link.social-facebook { background: #1877f2 !important; }
.site-utility-social-link.social-linkedin { background: #0a66c2 !important; }
.site-utility-social-link:hover,
.site-utility-social-link:focus-visible {
    filter: brightness(1.08) saturate(1.08);
    transform: translateY(-1px) scale(1.04);
}
.site-utility-social-link svg { color: #fff !important; }

@media (min-width: 1101px) {
    .layout-real_estate .site-header-institutional {
        min-width: 0;
        align-content: center;
    }
    .layout-real_estate .site-header-contact-items {
        min-width: 0;
        gap: clamp(20px,2.4vw,38px);
    }
    .layout-real_estate .site-header-contact-item {
        min-width: clamp(180px,16vw,230px);
        max-width: 270px;
        color: var(--tenant-header-text, #17131d);
    }
    .layout-real_estate .site-header-contact-item small {
        color: color-mix(in srgb, var(--tenant-header-text, #17131d), transparent 38%);
    }
    .layout-real_estate .site-header-contact-item strong {
        max-width: 205px;
        overflow: hidden;
        color: var(--tenant-header-text, #17131d);
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .layout-real_estate.has-public-hero-image .site-header-inner::before {
        background: color-mix(in srgb, var(--tenant-header-bg, #fff) var(--tenant-header-opacity, 82%), transparent) !important;
    }
    .layout-real_estate.has-public-hero-image .site-nav {
        background: color-mix(in srgb, var(--tenant-nav-bg, var(--public-primary)) var(--tenant-nav-opacity, 70%), transparent) !important;
    }
}

@media (max-width: 1100px) {
    .layout-real_estate.has-public-hero-image .site-header {
        background: color-mix(in srgb, var(--tenant-header-bg, #fff) var(--tenant-header-opacity, 82%), transparent) !important;
    }
    .layout-real_estate .site-nav {
        background: var(--tenant-header-bg, #fff) !important;
        color: var(--tenant-header-text, #17131d);
    }
    .layout-real_estate .site-nav > a,
    .layout-real_estate .site-nav-group > a,
    .layout-real_estate .site-nav .site-nav-contact {
        color: var(--tenant-header-text, #17131d) !important;
    }
}

/* Y56: maior especificidade sobre os breakpoints acumulados. */
@media (min-width: 768px) and (max-width: 1100px) {
    .layout-real_estate .site-header-institutional { display: block !important; }
    body.layout-real_estate .site-utility .utility-phone,
    body.layout-real_estate .site-utility .utility-email { display: none !important; }
}

@media (max-width: 767px) {
    .layout-real_estate .site-header-institutional { display: none !important; }
    body.layout-real_estate .site-utility .utility-phone,
    body.layout-real_estate .site-utility .utility-email { display: none !important; }
    .site-nav-mobile-contacts { display: grid !important; }
}

/* ================================================================
   19.3.0Y55 / 1.0.101.55 — Enquadramento único entre todas as páginas
   ================================================================ */
/* O frame pode ser recortado em alturas diferentes, mas a fotografia mantém
   exatamente a mesma escala e o mesmo eixo central em todas as rotas. */
.layout-real_estate.has-public-hero-image .site-opening-background {
    background-position: center var(--opening-background-y, 0px) !important;
    background-size: auto var(--public-hero-canvas-height) !important;
}

@media (min-width: 1101px) {
    .layout-real_estate.has-public-hero-image {
        --public-hero-canvas-height: 508px;
    }
}

@media (max-width: 1100px) {
    .layout-real_estate.has-public-hero-image {
        --public-hero-canvas-height: 720px;
    }
}

@media (max-width: 620px) {
    .property-image-grid {
        grid-template-columns: 1fr;
    }

    .detail-media {
        height: 240px;
        margin: -22px -22px 22px;
    }
}

/* ================================================================
   19.3.0Y1 / 1.0.101.1 — Estúdio de layouts e home imobiliária
   ================================================================ */
.public-site {
    --public-primary: var(--tenant-primary, #4c1d95);
    --public-accent: var(--tenant-accent, #d9041c);
    --public-ink: var(--tenant-secondary, #17131d);
    --public-soft: var(--tenant-background, #f7f5f8);
    --public-card: var(--tenant-surface, #fff);
    background: var(--public-soft);
}
.site-utility { background: var(--public-ink); }
.site-utility-inner > div { align-items: center; }
.utility-favorites { display: inline-flex; align-items: center; gap: 5px; opacity: .86; font-weight: 650 !important; }
.utility-favorites:hover { opacity: 1; }
.utility-favorites svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.utility-favorites small { color: inherit; font-size: 11px; }

.site-hero { position: relative; isolation: isolate; overflow: hidden; }
.site-hero-background { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.site-hero-backdrop { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(12,10,16,.88), rgba(12,10,16,.24)); }
.site-hero.overlay-soft .site-hero-backdrop { opacity: .58; }
.site-hero.overlay-balanced .site-hero-backdrop { opacity: .78; }
.site-hero.overlay-strong .site-hero-backdrop { opacity: .96; }
.site-hero.has-banner { min-height: 460px; display: flex; align-items: flex-end; padding: 58px 0 46px; background: #2c2731; }
.site-hero.has-banner .site-hero-copy h1 { color: #fff; text-shadow: 0 3px 22px rgba(0,0,0,.25); }
.site-hero.has-banner .site-hero-copy > p { color: rgba(255,255,255,.85); }
.site-hero.has-banner .site-eyebrow { color: #fff; }
.site-hero.has-banner .site-hero-trust span { color: rgba(255,255,255,.82); border-color: rgba(255,255,255,.24); background: rgba(0,0,0,.25); }
.site-hero.has-banner .site-hero-trust strong { color: #fff; }

.layout-standard .site-hero { min-height: 500px; }
.layout-standard .site-hero-grid { grid-template-columns: 1fr; align-content: end; gap: 24px; }
.layout-standard .site-hero-copy { max-width: 760px; }
.layout-standard .site-hero-copy h1 { max-width: 720px; font-size: clamp(36px,5vw,62px); }
.layout-standard .hero-search-shell { width: min(100%, 1040px); border-color: rgba(255,255,255,.18); border-radius: 14px; background: rgba(18,16,21,.86); color: #fff; backdrop-filter: blur(10px); }
.layout-standard .hero-search-head { border-color: rgba(255,255,255,.14); }
.layout-standard .hero-search-head span { color: rgba(255,255,255,.68); }
.layout-standard .hero-search-form { grid-template-columns: repeat(4,minmax(0,1fr)) auto; align-items: end; }
.layout-standard .hero-search-form > button { min-height: 46px; }
.layout-standard .hero-reference { grid-column: 1 / -1; }
.layout-standard .hero-reference a,.layout-standard .hero-reference label > span { color: rgba(255,255,255,.82); }

.home-featured-carousel { background: var(--public-card); }
.featured-carousel-controls { display: flex; align-items: center; gap: 10px; }
.featured-carousel-controls button { width: 42px; height: 42px; border: 1px solid var(--public-line); border-radius: 50%; background: var(--public-card); color: var(--public-ink); font-size: 25px; cursor: pointer; }
.featured-carousel-controls span { min-width: 58px; text-align: center; color: var(--public-muted); font-size: 12px; font-weight: 800; }
.featured-carousel-viewport { position: relative; overflow: hidden; border-radius: 20px; background: var(--public-ink); box-shadow: var(--public-shadow); touch-action: pan-y; }
.featured-carousel-track { position: relative; min-height: 410px; }
.featured-slide { position: absolute; inset: 0; display: grid; grid-template-columns: minmax(0,1.08fr) minmax(360px,.92fr); visibility: hidden; opacity: 0; transform: translateX(2%); transition: opacity .45s ease,transform .45s ease; pointer-events: none; }
.featured-slide.active { position: relative; visibility: visible; opacity: 1; transform: none; pointer-events: auto; }
.featured-slide-media { min-height: 410px; display: grid; place-items: center; overflow: hidden; background: #d9dde4; color: #677080; text-decoration: none; }
.featured-slide-media img { width: 100%; height: 100%; min-height: 410px; object-fit: cover; }
.featured-slide-content { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px,4vw,54px); color: #fff; background: var(--public-ink); }
.featured-slide-content .property-code { color: #fff; background: color-mix(in srgb,var(--public-primary),transparent 18%); }
.featured-slide-content h3 { margin: 14px 0 10px; font-size: clamp(27px,3.4vw,44px); line-height: 1.08; letter-spacing: -.045em; }
.featured-slide-content h3 a { color: #fff; text-decoration: none; }
.featured-slide-location { margin: 0 0 13px; color: rgba(255,255,255,.72); }
.featured-slide-description { margin: 0 0 20px; color: rgba(255,255,255,.78); line-height: 1.65; }
.featured-slide-facts { display: grid; gap: 9px; margin-top: auto; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.14); }
.featured-slide-facts span { color: rgba(255,255,255,.72); }
.featured-slide-facts strong { font-size: 24px; }
.featured-slide-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.featured-slide-actions button { display: inline-flex; align-items: center; gap: 7px; border: 1px solid rgba(255,255,255,.22); border-radius: 10px; background: transparent; padding: 10px 13px; color: #fff; cursor: pointer; }
.featured-slide-actions button.active { color: #ffd54a; border-color: rgba(255,213,74,.45); }
.featured-slide-actions svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.featured-carousel-dots { display: flex; justify-content: center; gap: 7px; margin-top: 15px; }
.featured-carousel-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px; background: #cbc5ce; cursor: pointer; transition: width .2s,background .2s; }
.featured-carousel-dots button.active { width: 28px; background: var(--public-primary); }

.home-catalog-tabs { background: var(--public-soft); }
.home-tabs-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; border-bottom: 1px solid var(--public-line); }
.home-tabs-head h2 { margin: 5px 0 18px; }
.home-tab-buttons { display: flex; align-items: end; gap: 3px; }
.home-tab-buttons button { min-height: 48px; border: 1px solid transparent; border-bottom: 0; border-radius: 10px 10px 0 0; background: transparent; padding: 0 20px; color: var(--public-muted); font: inherit; font-weight: 850; cursor: pointer; }
.home-tab-buttons button.active { border-color: var(--public-line); background: var(--public-card); color: var(--public-primary); }
.home-tab-buttons small { display: inline-grid; place-items: center; min-width: 19px; height: 19px; margin-left: 4px; border-radius: 50%; background: var(--public-primary); color: #fff; font-size: 10px; }
.home-tab-panel { animation: homeTabIn .22s ease; }
.home-tab-panel[hidden] { display: none !important; }
.home-tab-more { display: flex; justify-content: center; margin-top: 24px; }
@keyframes homeTabIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: none; } }

/* Componentes estruturais compartilhados pelos seis modelos. */
.menu-centered .site-header-inner { flex-direction: column; justify-content: center; gap: 8px; padding-block: 12px; }
.menu-centered .site-nav { justify-content: center; }
.menu-floating .site-header { border: 0; background: transparent; box-shadow: none; }
.menu-floating .site-header-inner { width: min(1120px,calc(100% - 40px)); min-height: 68px; margin-top: 12px; padding: 8px 14px; border: 1px solid var(--public-line); border-radius: 18px; background: rgba(255,255,255,.95); box-shadow: 0 14px 36px rgba(22,15,28,.11); }
.menu-transparent.public-page-home .site-header { border-bottom-color: rgba(255,255,255,.18); background: color-mix(in srgb,var(--public-ink),transparent 10%); }
.menu-transparent.public-page-home .site-brand,.menu-transparent.public-page-home .site-nav > a { color: #fff; }
.menu-transparent.public-page-home .site-brand-text small { color: rgba(255,255,255,.65); }
.menu-transparent.public-page-home .site-nav > a:hover,.menu-transparent.public-page-home .site-nav > a.active { color: #fff; background: rgba(255,255,255,.12); }

.cards-overlay .property-card { position: relative; min-height: 400px; background: var(--public-ink); }
.cards-overlay .property-media { position: absolute; inset: 0; height: 100%; }
.cards-overlay .property-media:after { content:""; position:absolute; inset:35% 0 0; background:linear-gradient(transparent,rgba(8,8,12,.94)); }
.cards-overlay .property-body,.cards-overlay .property-footer,.cards-overlay .card-favorite { position: relative; z-index: 2; }
.cards-overlay .property-body { margin-top: auto; padding-top: 190px; color: #fff; }
.cards-overlay .property-body h3 a,.cards-overlay .property-price { color: #fff; }
.cards-overlay .property-location,.cards-overlay .property-features { color: rgba(255,255,255,.72); }
.cards-compact .property-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.cards-compact .property-media { height: 165px; }
.cards-compact .property-body { padding: 14px 14px 9px; }
.cards-compact .property-footer { padding: 0 14px 14px; }
.cards-editorial .property-card { border-width: 0 0 2px; border-radius: 0; box-shadow: none; }
.cards-editorial .property-media { height: 260px; border-radius: 0; }
.cards-editorial .property-body,.cards-editorial .property-footer { padding-inline: 0; }
.density-airy .site-section { padding-block: 70px; }
.density-airy .site-container { max-width: 1320px; }
.density-compact .site-section { padding-block: 38px; }
.density-compact .site-container { max-width: 1120px; }
.density-compact .property-grid { gap: 13px; }

.layout-editorial h1,.layout-editorial h2,.layout-boutique h1,.layout-boutique h2,.layout-signature h1,.layout-signature h2 { font-family: Georgia,"Times New Roman",serif; font-weight: 600; }
.layout-panorama .site-hero.has-banner,.layout-immersive .site-hero.has-banner { min-height: min(720px,78vh); }
.layout-panorama .featured-carousel-viewport,.layout-gallery .featured-carousel-viewport { border-radius: 4px; }
.layout-showcase .featured-slide,.layout-gallery .featured-slide { grid-template-columns: 1.35fr .65fr; }
.layout-boutique .site-container { max-width: 1080px; }
.layout-boutique .site-section-head { justify-content: center; text-align: center; }
.layout-urban,.layout-corporate,.layout-compact { --public-radius: 8px; }
.layout-urban .property-card,.layout-corporate .property-card,.layout-compact .property-card,.layout-urban .hero-search-shell,.layout-corporate .hero-search-shell { border-radius: 5px; }
.layout-horizon .site-hero-copy,.layout-neighborhood .site-hero-copy { text-align: center; margin-inline: auto; }
.layout-horizon .site-hero-trust,.layout-neighborhood .site-hero-trust { justify-content: center; }
.layout-atlas .hero-search-form { grid-template-columns: repeat(4,minmax(0,1fr)) auto; }
.layout-residential .property-card,.layout-residential .featured-carousel-viewport,.layout-residential .hero-search-shell { border-radius: 28px; }
.layout-residential .site-btn { border-radius: 999px; }
.layout-signature .featured-slide-content { background: linear-gradient(145deg,#18120d,#3d2e20); }
.layout-neighborhood .section-kicker,.layout-neighborhood .site-eyebrow { display: inline-flex; padding: 6px 10px; border-radius: 999px; background: color-mix(in srgb,var(--public-primary),#fff 88%); }
.layout-loft .site-section-head { transform: translateX(min(3vw,34px)); }
.layout-immersive .featured-carousel-viewport { border-radius: 0; }
.layout-immersive .featured-slide-media { min-height: 520px; }
.layout-immersive .featured-slide-media img { min-height: 520px; }
.detail-gallery .detail-gallery-modal-first,.detail-immersive .detail-gallery-modal-first { margin-inline: calc(50% - 50vw); border-radius: 0; }
.detail-split .detail-content-grid { grid-template-columns: minmax(0,1fr) minmax(360px,.72fr); }

@media (max-width: 980px) {
    .layout-standard .hero-search-form,.layout-atlas .hero-search-form { grid-template-columns: 1fr 1fr; }
    .featured-slide,.layout-showcase .featured-slide,.layout-gallery .featured-slide { grid-template-columns: 1fr; }
    .featured-slide-media,.featured-slide-media img { min-height: 340px; max-height: 430px; }
    .cards-compact .property-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .menu-centered .site-header-inner { flex-direction: row; }
}

@media (max-width: 700px) {
    .site-utility-inner { min-height: 36px; flex-direction: row; align-items: center; }
    .site-utility-inner > span { display: none; }
    .site-utility-inner > div { width: 100%; justify-content: flex-end; gap: 13px; }
    .site-utility-inner > div > a:not(.utility-favorites):not(:first-of-type) { display: none; }
    .layout-standard .site-hero { min-height: 540px; align-items: stretch; padding: 36px 0 24px; }
    .layout-standard .site-hero-grid { align-content: end; }
    .layout-standard .hero-search-form,.layout-atlas .hero-search-form { grid-template-columns: 1fr; }
    .hero-search-head { display: block; }
    .hero-search-head span { display: block; margin-top: 3px; }
    .home-tabs-head { align-items: stretch; flex-direction: column; gap: 4px; }
    .home-tab-buttons { overflow-x: auto; }
    .home-tab-buttons button { flex: 1 0 auto; padding-inline: 16px; }
    .featured-carousel-track { min-height: 0; }
    .featured-slide { position: relative; display: none; }
    .featured-slide.active { display: grid; }
    .featured-slide-media,.featured-slide-media img,.layout-immersive .featured-slide-media,.layout-immersive .featured-slide-media img { min-height: 260px; height: 260px; }
    .featured-slide-content { padding: 24px 20px; }
    .featured-slide-content h3 { font-size: 28px; }
    .featured-slide-description { display: none; }
    .featured-slide-actions { align-items: stretch; flex-direction: column; }
    .featured-slide-actions > * { width: 100%; justify-content: center; }
    .cards-compact .property-grid { grid-template-columns: 1fr; }
    .menu-floating .site-header-inner { width: calc(100% - 24px); }
    .layout-loft .site-section-head { transform: none; }
}

/* ================================================================
   19.3.0Y2 / 1.0.101.2 — Abertura compacta, logo e carrossel estável
   ================================================================ */
.site-utility-inner { justify-content: flex-end; }
.site-brand-logo { width: clamp(140px,16vw,220px); height: 64px; }
.site-brand-logo img { object-fit: contain; object-position: left center; }

.site-hero,
.layout-standard .site-hero {
    min-height: 0;
    display: block;
    overflow: visible;
    padding: 0;
    background: var(--public-soft);
}
.site-hero:after { content: none; display: none; }
.site-hero-intro {
    position: relative;
    z-index: 2;
    padding: 28px 0 22px;
    background: var(--public-soft);
}
.site-hero-intro .site-hero-copy,
.layout-standard .site-hero-intro .site-hero-copy {
    width: min(100%,920px);
    max-width: 920px;
    margin: 0;
}
.site-hero-intro .site-hero-copy h1,
.layout-standard .site-hero-intro .site-hero-copy h1 {
    max-width: 900px;
    margin: 0;
    color: var(--public-ink);
    font-size: clamp(34px,4.2vw,54px);
    line-height: 1.02;
    text-shadow: none;
}
.site-hero-intro .site-hero-copy > p {
    max-width: 760px;
    margin: 12px 0 0;
    color: var(--public-muted);
    font-size: clamp(16px,1.5vw,19px);
}
.site-search-banner {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    min-height: 290px;
    overflow: hidden;
    padding: 30px 0;
    background: linear-gradient(120deg,var(--public-ink),color-mix(in srgb,var(--public-primary),var(--public-ink) 60%));
}
.site-search-background {
    position: absolute;
    z-index: -2;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.site-search-backdrop {
    position: absolute;
    z-index: -1;
    inset: 0;
    background: linear-gradient(90deg,rgba(10,9,13,.72),rgba(10,9,13,.34));
}
.site-search-banner.overlay-soft .site-search-backdrop { opacity: .52; }
.site-search-banner.overlay-balanced .site-search-backdrop { opacity: .76; }
.site-search-banner.overlay-strong .site-search-backdrop { opacity: .95; }
.site-search-banner .hero-search-shell,
.layout-standard .site-search-banner .hero-search-shell {
    width: 100%;
    margin: 0;
    border-color: rgba(255,255,255,.2);
    background: rgba(18,16,21,.86);
    color: #fff;
    backdrop-filter: blur(10px);
}
.site-search-banner .hero-search-head { border-color: rgba(255,255,255,.14); }
.site-search-banner .hero-search-head span { color: rgba(255,255,255,.7); }
.site-search-banner .hero-reference a,
.site-search-banner .hero-reference label > span { color: rgba(255,255,255,.84); }

@media (min-width: 981px) {
    .featured-carousel-track { height: 436px; min-height: 436px; }
    .featured-slide,
    .featured-slide.active { position: absolute; inset: 0; height: 436px; min-height: 0; }
    .featured-slide-media,
    .featured-slide-media img { width: 100%; height: 436px; min-height: 0; max-height: 436px; }
    .featured-slide-media img { object-fit: cover; object-position: center; }
    .featured-slide-content { min-height: 0; height: 436px; overflow: auto; }
}

@media (max-width: 980px) {
    .site-brand-logo { width: 160px; height: 54px; }
    .featured-carousel-track { height: auto; min-height: 0; }
    .featured-slide { position: relative; display: none; height: auto; }
    .featured-slide.active { position: relative; display: grid; height: auto; }
    .featured-slide-media,
    .featured-slide-media img { height: 330px; min-height: 330px; max-height: 330px; object-fit: cover; }
    .featured-slide-content { height: auto; min-height: 330px; overflow: visible; }
}

@media (max-width: 700px) {
    .site-hero-intro { padding: 20px 0 17px; }
    .site-hero-intro .site-hero-copy h1,
    .layout-standard .site-hero-intro .site-hero-copy h1 { font-size: clamp(31px,10vw,42px); }
    .site-hero-intro .site-hero-copy > p { margin-top: 9px; font-size: 15px; }
    .site-search-banner { min-height: 0; padding: 20px 0; }
    .site-search-banner .hero-search-shell { border-radius: 12px; }
    .featured-slide-media,
    .featured-slide-media img { height: 260px; min-height: 260px; max-height: 260px; }
    .featured-slide-content { min-height: 0; }
}

/* ================================================================
   19.3.0Y3 / 1.0.101.3 — Drawer mobile isolado e seguro no iPhone
   ================================================================ */
@media (max-width: 1100px) {
    body.site-nav-open {
        width: 100%;
        height: 100dvh;
        overflow: hidden !important;
        overscroll-behavior: none;
        touch-action: none;
    }

    .site-header-inner {
        min-height: 72px;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px;
    }

    .site-brand {
        flex: 1 1 auto;
        max-width: calc(100% - 68px);
        min-width: 0;
    }

    .site-nav-toggle {
        position: relative;
        z-index: 101;
        flex: 0 0 50px;
        display: grid !important;
        place-content: center !important;
        grid-auto-flow: row !important;
        gap: 5px !important;
        width: 50px !important;
        height: 50px !important;
        min-width: 50px;
        min-height: 50px;
        margin: 0;
        padding: 0 !important;
        overflow: visible;
        border: 1px solid var(--public-line) !important;
        border-radius: 14px !important;
        background: var(--public-card,#fff) !important;
        box-shadow: none;
        appearance: none;
        cursor: pointer;
    }

    .site-nav-toggle span:not(.sr-only) {
        position: static !important;
        display: block !important;
        width: 23px !important;
        height: 3px !important;
        margin: 0 !important;
        border: 0 !important;
        border-radius: 999px !important;
        background: var(--public-ink) !important;
        transform: none !important;
    }

    .site-nav-backdrop {
        position: fixed !important;
        z-index: 998 !important;
        inset: 0 !important;
        display: none;
        width: 100vw;
        height: 100dvh;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: rgba(14,10,19,.58) !important;
        backdrop-filter: blur(3px);
    }

    .site-nav {
        position: fixed !important;
        z-index: 999 !important;
        top: 0 !important;
        right: 0 !important;
        bottom: auto !important;
        left: auto !important;
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 6px !important;
        width: min(88vw,380px) !important;
        height: 100dvh !important;
        max-width: none !important;
        max-height: 100dvh !important;
        margin: 0 !important;
        padding: max(16px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom)) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        border: 0 !important;
        border-radius: 0 !important;
        background: var(--public-card,#fff) !important;
        box-shadow: -18px 0 60px rgba(23,10,39,.24) !important;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translate3d(105%,0,0) !important;
        transition: transform .24s ease,opacity .18s ease,visibility 0s linear .24s !important;
        -webkit-overflow-scrolling: touch;
    }

    body.site-nav-open .site-nav {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translate3d(0,0,0) !important;
        transition: transform .24s ease,opacity .18s ease !important;
    }

    body.site-nav-open .site-nav-backdrop { display: block !important; }

    .site-nav-mobile-head {
        position: sticky;
        z-index: 2;
        top: 0;
        flex: 0 0 auto;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 16px;
        min-height: 62px;
        margin: 0 0 8px !important;
        padding: 0 0 14px !important;
        border-bottom: 1px solid var(--public-line) !important;
        background: var(--public-card,#fff) !important;
    }

    .site-nav-mobile-head strong {
        color: var(--public-ink) !important;
        font-size: 20px !important;
        line-height: 1.2;
    }

    .site-nav-mobile-head button {
        flex: 0 0 44px;
        display: grid;
        place-items: center;
        width: 44px !important;
        height: 44px !important;
        margin: 0;
        padding: 0;
        border: 0 !important;
        border-radius: 50% !important;
        background: var(--public-soft) !important;
        color: var(--public-ink) !important;
        font: inherit;
        font-size: 30px !important;
        line-height: 1;
        appearance: none;
        cursor: pointer;
    }

    .site-nav > a,
    .menu-transparent.public-page-home .site-nav > a {
        flex: 0 0 auto !important;
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        min-height: 48px;
        box-sizing: border-box;
        margin: 0 !important;
        padding: 12px 14px !important;
        overflow: visible;
        border-radius: 11px !important;
        background: transparent;
        color: var(--public-ink) !important;
        font-size: 15px !important;
        line-height: 1.35;
        white-space: normal !important;
        text-decoration: none;
    }

    .site-nav > a:hover,
    .site-nav > a.active,
    .menu-transparent.public-page-home .site-nav > a:hover,
    .menu-transparent.public-page-home .site-nav > a.active {
        background: color-mix(in srgb,var(--public-primary),#fff 92%) !important;
        color: var(--public-primary) !important;
    }

    .site-nav .site-nav-contact,
    .menu-transparent.public-page-home .site-nav .site-nav-contact {
        margin-top: 8px !important;
        background: var(--public-primary) !important;
        color: #fff !important;
    }
}

@media (max-width: 420px) {
    .site-nav { width: min(90vw,360px) !important; }
}

/* Y4 final cascade guard */
.layout-standard .site-hero-intro .site-hero-copy,
.layout-standard .site-hero-intro .site-hero-copy h1 { width: 100%; max-width: none; }
.featured-carousel-controls,
.featured-carousel-dots,
.featured-slide-actions { display: none !important; }
.featured-slide { color: inherit; text-decoration: none; cursor: pointer; }
.featured-slide-content h3 { color: #fff; }
.contact-card,
.layout-standard .property-detail-aside,
.layout-standard .property-detail-aside .contact-card { position: static !important; top: auto !important; }
.layout-standard .detail-cost-panel { display: none; }
.similar-section { position: relative !important; z-index: auto !important; clear: both; }

/* ================================================================
   19.3.0Y6 / 1.0.101.6 — Cinco layouts com composições distintas
   ================================================================ */
.home-featured-spotlight { background: var(--public-card); }
.featured-spotlight-layout {
    display: grid;
    grid-template-columns: minmax(0,1.45fr) minmax(300px,.55fr);
    gap: clamp(24px,4vw,56px);
    align-items: stretch;
}
.featured-spotlight-main {
    display: grid;
    grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr);
    min-height: 520px;
    overflow: hidden;
    border-top: 1px solid var(--public-ink);
    border-bottom: 1px solid var(--public-ink);
    color: var(--public-ink);
    text-decoration: none;
}
.featured-spotlight-media { display: grid; place-items: center; min-height: 520px; overflow: hidden; background: #e7e2dc; }
.featured-spotlight-media img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; transition: transform .45s ease; }
.featured-spotlight-main:hover .featured-spotlight-media img { transform: scale(1.025); }
.featured-spotlight-copy { display: flex; flex-direction: column; justify-content: center; gap: 16px; padding: clamp(26px,4vw,54px); background: color-mix(in srgb,var(--public-soft),#fff 42%); }
.featured-spotlight-copy small { color: var(--public-primary); font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.featured-spotlight-copy strong { font-size: clamp(30px,3.7vw,54px); line-height: .98; letter-spacing: -.045em; }
.featured-spotlight-copy > span { color: var(--public-muted); line-height: 1.55; }
.featured-spotlight-copy b { margin-top: auto; font-size: clamp(21px,2.3vw,30px); }
.featured-spotlight-copy em { color: var(--public-primary); font-style: normal; font-weight: 850; }
.featured-spotlight-list .property-grid { grid-template-columns: 1fr; height: 100%; gap: 18px; }
.featured-spotlight-list .property-card { display: grid; grid-template-columns: 124px 1fr; min-height: 0; border: 0; border-bottom: 1px solid var(--public-line); border-radius: 0; box-shadow: none; }
.featured-spotlight-list .property-media { grid-row: 1 / span 2; width: 124px; height: 100%; min-height: 148px; }
.featured-spotlight-list .property-body { min-width: 0; padding: 10px 0 4px 16px; }
.featured-spotlight-list .property-footer { padding: 4px 0 12px 16px; }
.featured-spotlight-list .property-footer .site-btn { display: none; }

/* Panorama: abertura fotográfica em tela ampla, cartões sobre as imagens. */
.layout-panorama.public-page-home .site-header { position: absolute; z-index: 30; right: 0; left: 0; }
.layout-panorama.public-page-home .site-main { padding-top: 0; }
.layout-panorama .site-hero:has(.site-search-banner.has-banner) { min-height: min(820px,88vh); background: var(--public-ink); }
.layout-panorama .site-hero:has(.site-search-banner.has-banner) .site-hero-intro { position: absolute; z-index: 4; top: 90px; right: 0; left: 0; padding: clamp(44px,8vh,92px) 0 0; background: transparent; color: #fff; }
.layout-panorama .site-hero:has(.site-search-banner.has-banner) .site-hero-copy { max-width: 820px; }
.layout-panorama .site-hero:has(.site-search-banner.has-banner) .site-hero-copy h1 { color: #fff; font-size: clamp(48px,6.8vw,88px); line-height: .95; text-shadow: 0 4px 32px rgba(0,0,0,.38); }
.layout-panorama .site-hero:has(.site-search-banner.has-banner) .site-hero-copy p { max-width: 620px; color: rgba(255,255,255,.84); font-size: 19px; }
.layout-panorama .site-search-banner.has-banner { min-height: min(820px,88vh); display: flex; align-items: flex-end; padding: 0 0 42px; }
.layout-panorama .site-search-banner .site-search-backdrop { background: linear-gradient(180deg,rgba(8,7,12,.4),rgba(8,7,12,.12) 42%,rgba(8,7,12,.8)); }
.layout-panorama .hero-search-shell { max-width: 1180px; margin-inline: auto; border-color: rgba(255,255,255,.22); border-radius: 4px; background: rgba(14,13,18,.82); color: #fff; backdrop-filter: blur(12px); }
.layout-panorama .hero-search-head { border-color: rgba(255,255,255,.16); }
.layout-panorama .hero-search-head span,.layout-panorama .hero-reference a,.layout-panorama .hero-reference label > span { color: rgba(255,255,255,.74); }
.layout-panorama .home-featured-carousel .site-container { max-width: none; padding-inline: 0; }
.layout-panorama .home-featured-carousel .site-section-head { width: min(1240px,calc(100% - 48px)); margin-inline: auto; }
.layout-panorama .featured-carousel-viewport { border-radius: 0; box-shadow: none; }
.layout-panorama .featured-slide { grid-template-columns: minmax(0,1.65fr) minmax(340px,.55fr); }
.layout-panorama .featured-slide-media,.layout-panorama .featured-slide-media img { min-height: 580px; }
.layout-panorama .featured-slide-content { background: var(--public-ink); }
.layout-panorama .property-detail-aside .contact-card { border-radius: 0; }

/* Editorial: página em ritmo de revista, tipografia e destaque assimétrico. */
.layout-editorial { --public-radius: 0px; }
.layout-editorial h1,.layout-editorial h2,.layout-editorial h3 { font-family: Georgia,"Times New Roman",serif; font-weight: 500; }
.layout-editorial .site-header { border-bottom: 1px solid var(--public-ink); box-shadow: none; }
.layout-editorial .site-hero { display: grid; grid-template-columns: minmax(360px,.78fr) minmax(560px,1.22fr); border-bottom: 1px solid var(--public-ink); }
.layout-editorial .site-hero-intro { display: flex; align-items: center; padding: clamp(54px,7vw,108px) 0; }
.layout-editorial .site-hero-intro .site-container { width: 100%; padding-left: max(28px,calc((100vw - 1280px)/2)); padding-right: clamp(26px,5vw,74px); }
.layout-editorial .site-hero-copy h1 { font-size: clamp(48px,5.8vw,82px); line-height: .98; }
.layout-editorial .site-search-banner { display: flex; align-items: center; min-height: 620px; padding: 54px clamp(24px,4vw,66px); }
.layout-editorial .site-search-banner .site-container { width: 100%; padding: 0; }
.layout-editorial .hero-search-shell { border: 1px solid var(--public-ink); border-radius: 0; box-shadow: 18px 18px 0 color-mix(in srgb,var(--public-primary),transparent 74%); }
.layout-editorial .hero-search-form { grid-template-columns: 1fr 1fr; }
.layout-editorial .hero-search-form > button,.layout-editorial .hero-reference { grid-column: 1 / -1; }
.layout-editorial .site-section-head { align-items: end; border-bottom: 1px solid var(--public-ink); padding-bottom: 18px; }
.layout-editorial .property-card,.layout-editorial .site-btn,.layout-editorial .contact-card { border-radius: 0; }
.layout-editorial .property-detail-columns { gap: clamp(34px,5vw,76px); }

/* Atlas: portal objetivo, busca e densidade de catálogo em primeiro lugar. */
.layout-atlas { --public-radius: 6px; }
.layout-atlas .site-header { box-shadow: none; }
.layout-atlas .site-hero-intro { padding: 24px 0 14px; }
.layout-atlas .site-hero-copy h1 { max-width: 980px; font-size: clamp(34px,4vw,54px); }
.layout-atlas .site-hero-copy p { margin-top: 8px; }
.layout-atlas .site-search-banner { padding: 18px 0 24px; }
.layout-atlas .hero-search-shell { border-radius: 6px; box-shadow: none; }
.layout-atlas .hero-search-form { grid-template-columns: repeat(4,minmax(0,1fr)) auto; }
.layout-atlas .hero-reference { grid-column: 1 / -1; }
.layout-atlas .home-featured-grid { border-top: 1px solid var(--public-line); border-bottom: 1px solid var(--public-line); background: var(--public-card); }
.layout-atlas .home-featured-grid .property-grid,.layout-atlas .home-catalog-tabs .property-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; }
.layout-atlas .property-card { border-radius: 5px; box-shadow: none; }
.layout-atlas .property-media { height: 160px; }
.layout-atlas .property-body { padding: 13px 13px 8px; }
.layout-atlas .property-footer { padding: 0 13px 13px; }
.layout-atlas .site-section-head h2 { font-size: clamp(28px,3vw,40px); }
.layout-atlas .home-tabs-head { margin-bottom: 14px; }
.layout-atlas .site-btn { border-radius: 5px; }

/* Residencial: linguagem acolhedora, superfícies suaves e navegação flutuante. */
.layout-residential { --public-radius: 26px; }
.layout-residential .site-header { padding-bottom: 12px; background: transparent; box-shadow: none; }
.layout-residential .site-header-inner { border-radius: 999px; }
.layout-residential .site-hero-intro { padding: 56px 0 30px; text-align: center; }
.layout-residential .site-hero-copy { max-width: 900px; margin-inline: auto; }
.layout-residential .site-hero-copy h1 { font-size: clamp(42px,5.4vw,72px); }
.layout-residential .site-hero-copy p { max-width: 670px; margin-inline: auto; }
.layout-residential .site-search-banner { padding: 28px 0 54px; }
.layout-residential .hero-search-shell { max-width: 1060px; margin-inline: auto; border-radius: 30px; box-shadow: 0 22px 60px rgba(56,35,24,.12); }
.layout-residential .hero-search-form select,.layout-residential .hero-search-form input,.layout-residential .site-btn { border-radius: 999px; }
.layout-residential .featured-carousel-viewport,.layout-residential .property-card,.layout-residential .location-card,.layout-residential .service-card,.layout-residential .contact-card { border-radius: 28px; }
.layout-residential .featured-slide-content { background: color-mix(in srgb,var(--public-ink),#5b4639 22%); }
.layout-residential .home-catalog-tabs { border-radius: 42px 42px 0 0; }
.layout-residential .home-tab-buttons button { border-radius: 999px; border-bottom: 1px solid transparent; }
.layout-residential .home-tab-buttons button.active { border-color: var(--public-line); }

@media (max-width: 1100px) {
    .layout-editorial .site-hero { grid-template-columns: 1fr; }
    .layout-editorial .site-search-banner { min-height: 0; }
    .featured-spotlight-layout { grid-template-columns: 1fr; }
    .featured-spotlight-list .property-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .featured-spotlight-list .property-card { display: flex; }
    .featured-spotlight-list .property-media { width: auto; height: 190px; }
    .featured-spotlight-list .property-body,.featured-spotlight-list .property-footer { padding-left: 16px; padding-right: 16px; }
    .layout-atlas .home-featured-grid .property-grid,.layout-atlas .home-catalog-tabs .property-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 700px) {
    .layout-panorama.public-page-home .site-header { position: relative; }
    .layout-panorama .site-hero:has(.site-search-banner.has-banner) { min-height: 0; }
    .layout-panorama .site-hero:has(.site-search-banner.has-banner) .site-hero-intro { position: relative; top: auto; padding: 34px 0 24px; background: var(--public-soft); color: var(--public-ink); }
    .layout-panorama .site-hero:has(.site-search-banner.has-banner) .site-hero-copy h1 { color: var(--public-ink); font-size: clamp(38px,11vw,50px); text-shadow: none; }
    .layout-panorama .site-hero:has(.site-search-banner.has-banner) .site-hero-copy p { color: var(--public-muted); }
    .layout-panorama .site-search-banner.has-banner { min-height: 580px; padding-bottom: 26px; }
    .layout-panorama .home-featured-carousel .site-section-head { width: calc(100% - 32px); }
    .layout-panorama .featured-slide-media,.layout-panorama .featured-slide-media img { min-height: 290px; height: 290px; }
    .layout-editorial .site-hero-intro { padding: 42px 0 28px; }
    .layout-editorial .site-hero-intro .site-container { padding-inline: 20px; }
    .layout-editorial .site-search-banner { padding: 28px 16px 46px; }
    .layout-editorial .hero-search-shell { box-shadow: 9px 9px 0 color-mix(in srgb,var(--public-primary),transparent 74%); }
    .layout-editorial .hero-search-form { grid-template-columns: 1fr; }
    .featured-spotlight-main { grid-template-columns: 1fr; min-height: 0; }
    .featured-spotlight-media,.featured-spotlight-media img { min-height: 320px; height: 320px; }
    .featured-spotlight-copy { min-height: 290px; }
    .featured-spotlight-list .property-grid { grid-template-columns: 1fr; }
    .layout-atlas .home-featured-grid .property-grid,.layout-atlas .home-catalog-tabs .property-grid { grid-template-columns: 1fr; }
    .layout-atlas .property-media { height: 230px; }
    .layout-residential .site-header { padding: 0; }
    .layout-residential .site-header-inner { border-radius: 0; }
    .layout-residential .site-hero-intro { padding: 38px 0 24px; }
    .layout-residential .site-search-banner { padding: 20px 12px 42px; }
    .layout-residential .hero-search-shell { border-radius: 22px; }
    .layout-residential .home-catalog-tabs { border-radius: 28px 28px 0 0; }
}

/* ================================================================
   19.3.0Y7 / 1.0.101.7 — Navegações próprias por modelo
   ================================================================ */
@media (min-width: 1101px) {
    /* Panorama: navegação cinematográfica incorporada à faixa escura. */
    .layout-panorama .site-header {
        border: 0;
        background: linear-gradient(90deg,color-mix(in srgb,var(--public-ink),#062f48 34%),color-mix(in srgb,var(--public-ink),#075985 48%));
        box-shadow: 0 12px 34px rgba(5,17,27,.18);
        backdrop-filter: blur(18px);
    }
    .layout-panorama .site-header-inner { min-height: 86px; }
    .layout-panorama .site-brand { color: #fff; }
    .layout-panorama .site-brand-mark {
        border: 1px solid rgba(255,255,255,.38);
        border-radius: 8px;
        background: rgba(255,255,255,.12);
        box-shadow: none;
    }
    .layout-panorama .site-brand-text strong { color: #fff; }
    .layout-panorama .site-brand-text small { color: rgba(255,255,255,.66); }
    .layout-panorama .site-brand-logo img { filter: drop-shadow(0 3px 12px rgba(0,0,0,.22)); }
    .layout-panorama .site-nav {
        gap: clamp(14px,1.7vw,28px);
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }
    .layout-panorama .site-nav > a,
    .menu-transparent.layout-panorama.public-page-home .site-nav > a {
        position: relative;
        padding: 13px 0 10px;
        border-radius: 0;
        background: transparent;
        color: rgba(255,255,255,.78);
        box-shadow: none;
        letter-spacing: .01em;
    }
    .layout-panorama .site-nav > a:after {
        content: "";
        position: absolute;
        right: 50%;
        bottom: 2px;
        left: 50%;
        height: 2px;
        background: #fff;
        transition: right .18s ease,left .18s ease;
    }
    .layout-panorama .site-nav > a:hover,
    .layout-panorama .site-nav > a.active,
    .menu-transparent.layout-panorama.public-page-home .site-nav > a:hover,
    .menu-transparent.layout-panorama.public-page-home .site-nav > a.active {
        background: transparent;
        color: #fff;
        box-shadow: none;
    }
    .layout-panorama .site-nav > a:hover:after,
    .layout-panorama .site-nav > a.active:after { right: 0; left: 0; }
    .layout-panorama .site-nav .site-nav-contact,
    .menu-transparent.layout-panorama.public-page-home .site-nav .site-nav-contact {
        margin-left: 4px;
        padding: 12px 20px;
        border: 1px solid rgba(255,255,255,.62);
        border-radius: 999px;
        background: transparent;
        color: #fff;
    }
    .layout-panorama .site-nav .site-nav-contact:after { display: none; }
    .layout-panorama .site-nav .site-nav-contact:hover,
    .layout-panorama .site-nav .site-nav-contact.active {
        border-color: #fff;
        background: #fff;
        color: var(--public-ink);
    }

    /* Editorial: marca centralizada e menu em uma linha editorial separada. */
    .layout-editorial .site-utility { display: none; }
    .layout-editorial .site-header {
        position: relative;
        border: 0;
        background: var(--public-card);
        box-shadow: none;
    }
    .layout-editorial .site-header-inner {
        min-height: 0;
        flex-direction: column;
        gap: 20px;
        padding: 26px 0 0;
    }
    .layout-editorial .site-brand { justify-content: center; text-align: center; }
    .layout-editorial .site-brand-mark {
        width: 58px;
        height: 58px;
        border: 1px solid var(--public-ink);
        border-radius: 0;
        background: transparent;
        color: var(--public-ink);
    }
    .layout-editorial .site-brand-text strong {
        max-width: 520px;
        font-family: Georgia,"Times New Roman",serif;
        font-size: 25px;
        font-weight: 500;
    }
    .layout-editorial .site-brand-text small { text-transform: uppercase; letter-spacing: .12em; }
    .layout-editorial .site-brand-logo { justify-content: center; width: min(320px,38vw); height: 72px; }
    .layout-editorial .site-brand-logo img { object-position: center; }
    .layout-editorial .site-nav {
        width: 100%;
        justify-content: center;
        gap: 0;
        padding: 0;
        border: solid var(--public-ink);
        border-width: 1px 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }
    .layout-editorial .site-nav > a {
        min-height: 54px;
        padding: 17px clamp(16px,2.5vw,34px);
        border-right: 1px solid var(--public-line);
        border-radius: 0;
        background: transparent;
        color: var(--public-ink);
        box-shadow: none;
        font-family: Georgia,"Times New Roman",serif;
        font-size: 14px;
        font-weight: 500;
    }
    .layout-editorial .site-nav > a:first-of-type { border-left: 1px solid var(--public-line); }
    .layout-editorial .site-nav > a:hover,
    .layout-editorial .site-nav > a.active { background: var(--public-ink); color: #fff; box-shadow: none; }
    .layout-editorial .site-nav .site-nav-contact { margin: 0; background: var(--public-primary); color: #fff; }

    /* Atlas: navegação lateral fixa, própria de um portal de grande catálogo. */
    .layout-atlas .site-utility { display: none; }
    .layout-atlas .site-header {
        position: fixed;
        z-index: 120;
        top: 0;
        bottom: 0;
        left: 0;
        width: 252px;
        border: 0;
        background: var(--public-ink);
        box-shadow: 16px 0 42px rgba(14,11,18,.12);
    }
    .layout-atlas .site-header-inner {
        width: 100%;
        height: 100dvh;
        min-height: 0;
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 28px;
        padding: 30px 20px 24px;
    }
    .layout-atlas .site-brand { color: #fff; }
    .layout-atlas .site-brand-mark { border-radius: 5px; box-shadow: none; }
    .layout-atlas .site-brand-text strong { max-width: 145px; color: #fff; white-space: normal; }
    .layout-atlas .site-brand-text small { color: rgba(255,255,255,.58); }
    .layout-atlas .site-brand-logo { width: 100%; height: 76px; }
    .layout-atlas .site-brand-logo img { object-position: left center; }
    .layout-atlas .site-nav {
        flex: 1 1 auto;
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 5px;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }
    .layout-atlas .site-nav > a {
        width: 100%;
        min-height: 46px;
        justify-content: flex-start;
        padding: 13px 14px;
        border-left: 3px solid transparent;
        border-radius: 4px;
        background: transparent;
        color: rgba(255,255,255,.68);
        box-shadow: none;
    }
    .layout-atlas .site-nav > a:hover,
    .layout-atlas .site-nav > a.active {
        border-left-color: var(--public-primary);
        background: rgba(255,255,255,.08);
        color: #fff;
        box-shadow: none;
    }
    .layout-atlas .site-nav .site-nav-contact {
        margin: auto 0 0;
        justify-content: center;
        border: 1px solid var(--public-primary);
        border-left-width: 1px;
        background: var(--public-primary);
        color: #fff;
    }
    .layout-atlas .site-main,
    .layout-atlas .site-footer { margin-left: 252px; }
    .layout-atlas .public-floating-whatsapp.position-left { left: 276px; }

    /* Residencial: cabeçalho-ilha flutuante, com seleção em cápsulas. */
    .layout-residential .site-header {
        position: sticky;
        top: 10px;
        z-index: 90;
        padding: 12px 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        backdrop-filter: none;
    }
    .layout-residential .site-header-inner {
        width: min(1180px,calc(100% - 40px));
        min-height: 74px;
        margin: 0 auto;
        padding: 9px 12px 9px 18px;
        border: 1px solid color-mix(in srgb,var(--public-primary),#fff 80%);
        border-radius: 999px;
        background: rgba(255,255,255,.94);
        box-shadow: 0 18px 50px rgba(55,36,31,.14);
        backdrop-filter: blur(18px);
    }
    .layout-residential .site-brand-mark { border-radius: 50%; box-shadow: none; }
    .layout-residential .site-nav {
        gap: 4px;
        padding: 4px;
        border: 0;
        border-radius: 999px;
        background: color-mix(in srgb,var(--public-primary),#fff 94%);
        box-shadow: none;
    }
    .layout-residential .site-nav > a {
        padding: 11px 15px;
        border-radius: 999px;
        background: transparent;
        box-shadow: none;
    }
    .layout-residential .site-nav > a:hover,
    .layout-residential .site-nav > a.active { background: var(--public-primary); color: #fff; box-shadow: none; }
    .layout-residential .site-nav .site-nav-contact {
        margin-left: 3px;
        padding-inline: 20px;
        background: var(--public-ink);
        color: #fff;
    }
}

/* No drawer móvel, cada modelo preserva a identidade sem perder legibilidade. */
@media (max-width: 1100px) {
    .layout-panorama .site-header {
        border-bottom: 0;
        background: linear-gradient(90deg,color-mix(in srgb,var(--public-ink),#062f48 34%),color-mix(in srgb,var(--public-ink),#075985 48%));
    }
    .layout-panorama .site-brand,.layout-panorama .site-brand-text strong { color: #fff; }
    .layout-panorama .site-brand-text small { color: rgba(255,255,255,.65); }
    .layout-panorama .site-nav-toggle { border-color: rgba(255,255,255,.28) !important; background: rgba(255,255,255,.12) !important; }
    .layout-panorama .site-nav-toggle span { background: #fff !important; }
    .layout-editorial .site-header { border-bottom: 1px solid var(--public-ink); box-shadow: none; }
    .layout-editorial .site-brand-mark { border-radius: 0; background: transparent; color: var(--public-ink); }
    .layout-atlas .site-header { border-bottom: 3px solid var(--public-primary); background: var(--public-ink); }
    .layout-atlas .site-brand,.layout-atlas .site-brand-text strong { color: #fff; }
    .layout-atlas .site-brand-text small { color: rgba(255,255,255,.6); }
    .layout-atlas .site-nav-toggle { border-color: rgba(255,255,255,.22) !important; background: rgba(255,255,255,.1) !important; }
    .layout-atlas .site-nav-toggle span { background: #fff !important; }
    .layout-residential .site-header { padding: 8px 0; background: var(--public-soft); box-shadow: none; }
    .layout-residential .site-header-inner { width: calc(100% - 20px); margin: 0 auto; padding-inline: 12px; border: 1px solid var(--public-line); border-radius: 22px; background: var(--public-card); box-shadow: 0 12px 34px rgba(55,36,31,.1); }
}

/* ================================================================
   19.3.0Y9 / 1.0.101.9 — Identidade escura e Favoritos permanentes
   ================================================================ */
.public-site {
    --public-ink: var(--tenant-secondary, #17131d);
    --public-on-ink: var(--tenant-secondary-contrast, #fff);
    --public-soft: color-mix(in srgb, var(--tenant-background, #f7f5f8), #fff 68%);
    --public-card: var(--tenant-surface, #fff);
}

html { scroll-padding-top: 126px; }
[id] { scroll-margin-top: 126px; }

.site-utility,
.site-footer { background: var(--public-ink) !important; color: var(--public-on-ink) !important; }
.site-utility a,
.site-footer strong { color: var(--public-on-ink) !important; }
.site-footer p,
.site-footer span,
.site-footer a { color: color-mix(in srgb, var(--public-on-ink), transparent 28%) !important; }
.site-footer a:hover { color: var(--public-on-ink) !important; }
.site-footer-bottom { border-top-color: color-mix(in srgb, var(--public-on-ink), transparent 86%); }
.site-btn.primary {
    background: linear-gradient(135deg, var(--public-accent), color-mix(in srgb, var(--public-accent), #000 14%));
    box-shadow: 0 12px 26px color-mix(in srgb, var(--public-accent), transparent 78%);
}

.site-nav-favorites svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.site-nav-favorites { display: none !important; }
.site-nav-favorites small {
    min-width: 19px;
    height: 19px;
    display: inline-grid;
    place-items: center;
    margin-left: 2px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--public-accent);
    color: #fff;
    font-size: 9px;
}

.site-brand-logo { width: clamp(160px, 18vw, 240px); height: 72px; }
.layout-editorial .site-nav > a:hover,
.layout-editorial .site-nav > a.active,
.layout-residential .site-nav .site-nav-contact { color: var(--public-on-ink); }
.layout-atlas .site-brand,
.layout-atlas .site-brand-text strong { color: var(--public-on-ink); }
.layout-atlas .site-brand-text small,
.layout-atlas .site-nav > a { color: color-mix(in srgb, var(--public-on-ink), transparent 28%); }
.layout-atlas .site-nav > a:hover,
.layout-atlas .site-nav > a.active,
.layout-atlas .site-nav .site-nav-contact { color: var(--public-on-ink); }

@media (min-width: 1101px) {
    .layout-editorial .site-nav-favorites,
    .layout-atlas .site-nav-favorites { display: inline-flex !important; }
    .layout-atlas .site-nav-favorites { justify-content: flex-start; }
    .site-footer-bottom { padding-right: 154px; }
}

@media (max-width: 1280px) {
    .public-floating-whatsapp {
        width: 48px;
        min-width: 48px;
        padding: 0;
        justify-content: center;
        border-radius: 50%;
    }
    .public-floating-whatsapp > span:not(.wa-icon) { display: none; }
}

@media (max-width: 1100px) {
    html { scroll-padding-top: 88px; }
    [id] { scroll-margin-top: 88px; }
    .site-brand { max-width: calc(100% - 68px); }
    .site-nav-favorites { display: flex !important; }
    .layout-atlas .site-nav-toggle span { background: var(--public-on-ink) !important; }
    .site-footer-bottom { padding-bottom: 76px; }
}

@media (max-width: 780px) {
    .site-brand-logo { width: 118px; height: 50px; }
}

/* ================================================================
   19.3.0Y11 / 1.0.101.11 — Sexto modelo: Padrão Imobiliário
   ================================================================ */
.site-header-institutional { display: none; }

@media (min-width: 1101px) {
    .layout-real_estate .site-utility-inner { justify-content: flex-end; }
    .layout-real_estate .site-utility .utility-phone,
    .layout-real_estate .site-utility .utility-email { display: none; }
    .layout-real_estate .site-header {
        position: relative;
        top: auto;
        overflow: visible;
        border: 0;
        background: var(--public-card);
        box-shadow: none;
        backdrop-filter: none;
    }
    .layout-real_estate.public-page-home.has-public-hero-image .site-header {
        background: linear-gradient(90deg,rgba(255,255,255,.84),rgba(238,246,252,.72),rgba(255,255,255,.84));
        box-shadow: inset 0 1px 0 rgba(255,255,255,.78),inset 0 -1px 0 rgba(255,255,255,.54);
        backdrop-filter: blur(3px) saturate(.88);
        -webkit-backdrop-filter: blur(3px) saturate(.88);
    }
    .layout-real_estate .site-header-inner {
        position: relative;
        min-height: 240px;
        align-items: center;
        padding: 14px 0 58px;
    }
    .layout-real_estate .site-brand { align-self: stretch; min-width: 340px; }
    .layout-real_estate .site-brand-logo { width: clamp(280px,23vw,360px); height: 156px; }
    .layout-real_estate .site-brand-mark { width: 74px; height: 74px; border-radius: 4px; }
    .layout-real_estate .site-brand-text strong { max-width: 320px; font-size: 20px; }
    .layout-real_estate .site-header-institutional {
        display: grid;
        justify-items: end;
        align-self: stretch;
        gap: 17px;
        margin-left: auto;
    }
    .layout-real_estate .site-header-social {
        display: flex;
        align-items: center;
        gap: 11px;
        color: var(--public-muted);
        font-size: 11px;
    }
    .layout-real_estate .site-header-social a {
        color: var(--public-primary);
        font-weight: 850;
        text-decoration: none;
    }
    .layout-real_estate .site-header-contact-items { display: flex; align-items: center; gap: 42px; }
    .layout-real_estate .site-header-contact-item {
        min-width: 190px;
        display: flex;
        align-items: center;
        gap: 13px;
        padding-bottom: 9px;
        border-bottom: 1px solid color-mix(in srgb,var(--public-primary),transparent 30%);
        color: var(--public-ink);
        text-decoration: none;
    }
    .layout-real_estate .site-header-contact-item > svg {
        width: 48px;
        height: 48px;
        padding: 12px;
        border: 1px solid var(--public-primary);
        color: var(--public-primary);
        fill: none;
        stroke: currentColor;
        stroke-width: 1.7;
    }
    .layout-real_estate .site-header-contact-item span { display: grid; gap: 2px; }
    .layout-real_estate .site-header-contact-item small { color: var(--public-muted); font-size: 10px; }
    .layout-real_estate .site-header-contact-item strong { color: var(--public-ink); font-size: 15px; font-weight: 650; }
    .layout-real_estate .site-nav {
        position: absolute;
        right: auto;
        bottom: 0;
        left: 50%;
        width: 100vw;
        min-height: 50px;
        justify-content: center;
        gap: 0;
        padding: 0 max(20px,calc((100vw - 1180px) / 2));
        border: 0;
        border-radius: 0;
        background: var(--public-primary);
        box-shadow: 0 7px 20px color-mix(in srgb,var(--public-primary),transparent 78%);
        transform: translateX(-50%);
    }
    .layout-real_estate.public-page-home.has-public-hero-image .site-nav {
        background: color-mix(in srgb,var(--public-primary),transparent 30%);
        box-shadow: 0 9px 24px color-mix(in srgb,var(--public-primary),transparent 74%);
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
    }
    .layout-real_estate .site-nav > a {
        min-height: 50px;
        padding: 0 clamp(13px,1.45vw,22px);
        border-radius: 0;
        color: color-mix(in srgb,#fff,transparent 12%);
        background: transparent;
        font-size: 12px;
        font-weight: 650;
        letter-spacing: .015em;
        text-transform: uppercase;
    }
    .layout-real_estate .site-nav > a:hover,
    .layout-real_estate .site-nav > a.active,
    .layout-real_estate .site-nav .site-nav-contact:hover,
    .layout-real_estate .site-nav .site-nav-contact.active {
        color: #fff;
        background: color-mix(in srgb,var(--public-primary),#000 17%);
        box-shadow: inset 0 -3px 0 #fff;
    }
    .layout-real_estate .site-nav .site-nav-contact {
        margin: 0;
        color: color-mix(in srgb,#fff,transparent 12%);
        background: transparent;
    }
    .layout-real_estate.public-page-home .site-search-banner {
        min-height: 480px;
        align-items: flex-end;
        padding: 42px 0 28px;
    }
    .layout-real_estate.public-page-home .site-search-banner > .site-container {
        display: grid;
        align-content: space-between;
        gap: 42px;
        width: 100%;
    }
    .layout-real_estate.public-page-home .site-search-banner .site-hero-intro-overlay {
        padding: 0;
        background: transparent;
        color: #fff;
    }
    .layout-real_estate.public-page-home .site-search-banner .site-hero-copy {
        width: min(100%,920px);
        max-width: 920px;
        margin: 0;
    }
    .layout-real_estate.public-page-home .site-search-banner .site-hero-copy h1 {
        max-width: 900px;
        color: #fff;
        font-size: clamp(40px,4.5vw,64px);
        line-height: .98;
        text-shadow: 0 3px 26px rgba(0,0,0,.56);
    }
    .layout-real_estate.public-page-home .site-search-banner .site-hero-copy > p {
        max-width: 720px;
        margin-top: 12px;
        color: rgba(255,255,255,.9);
        font-size: clamp(16px,1.45vw,20px);
        text-shadow: 0 2px 16px rgba(0,0,0,.62);
    }
    .layout-real_estate.public-page-home.has-public-hero-image .site-hero,
    .layout-real_estate.public-page-home.has-public-hero-image .site-search-banner {
        overflow: visible;
        background: transparent;
    }
    .layout-real_estate.public-page-home.has-public-hero-image .site-search-background {
        top: -240px;
        bottom: auto;
        height: calc(100% + 240px);
    }
    .layout-real_estate.public-page-home.has-public-hero-image .site-search-backdrop {
        background: linear-gradient(180deg,rgba(14,10,10,.48),rgba(14,10,10,.18) 50%,rgba(14,10,10,.58));
    }
    .layout-real_estate .site-search-banner .hero-search-shell {
        width: min(1050px,100%);
        margin-inline: auto;
        border-radius: 4px;
        background: rgba(14,14,16,.84);
        box-shadow: 0 14px 34px rgba(0,0,0,.22);
    }
    .layout-real_estate .hero-search-head { padding: 14px 17px 8px; border: 0; }
    .layout-real_estate .hero-search-form {
        grid-template-columns: repeat(4,minmax(0,1fr)) auto;
        align-items: end;
        gap: 0;
        padding: 0 17px 14px;
    }
    .layout-real_estate .hero-search-form label { gap: 4px; }
    .layout-real_estate .hero-search-form label > span { color: rgba(255,255,255,.7); }
    .layout-real_estate .hero-search-form select {
        border-radius: 0;
        border-right-width: 0;
    }
    .layout-real_estate .hero-search-form > .site-btn {
        grid-column: auto;
        min-height: 46px;
        border-radius: 0 4px 4px 0;
        box-shadow: none;
    }
    .layout-real_estate .hero-reference {
        grid-column: 1 / -1;
        grid-template-columns: minmax(0,1fr) auto;
        gap: 10px;
        padding-top: 11px;
    }
    .layout-real_estate .hero-reference input { border-radius: 3px; }
    .layout-real_estate .home-featured-carousel .site-section-head h2 { font-weight: 450; letter-spacing: -.025em; }
    .layout-real_estate .home-featured-carousel .section-kicker { display: none; }
}

@media (max-width: 1100px) {
    .layout-real_estate .site-header-institutional { display: none; }
    .layout-real_estate .site-header { border-bottom: 3px solid var(--public-primary); }
    .layout-real_estate.public-page-home.has-public-hero-image .site-header {
        background: rgba(255,255,255,.84);
        backdrop-filter: blur(8px);
    }
    .layout-real_estate.public-page-home.has-public-hero-image .site-hero,
    .layout-real_estate.public-page-home.has-public-hero-image .site-search-banner {
        overflow: visible;
        background: transparent;
    }
    .layout-real_estate.public-page-home.has-public-hero-image .site-search-background {
        top: -71px;
        bottom: auto;
        height: calc(100% + 71px);
    }
    .layout-real_estate.public-page-home.has-public-hero-image .site-search-backdrop {
        background: linear-gradient(180deg,rgba(14,10,10,.52),rgba(14,10,10,.22) 42%,rgba(14,10,10,.62));
    }
    .layout-real_estate.public-page-home .site-search-banner {
        min-height: 0;
        padding: 30px 0 24px;
    }
    .layout-real_estate.public-page-home .site-search-banner > .site-container {
        gap: 28px;
    }
    .layout-real_estate.public-page-home .site-search-banner .site-hero-intro-overlay {
        padding: 0;
        background: transparent;
    }
    .layout-real_estate.public-page-home .site-search-banner .site-hero-copy h1 {
        color: #fff;
        font-size: clamp(34px,9vw,48px);
    }
    .layout-real_estate.public-page-home .site-search-banner .site-hero-copy > p {
        color: rgba(255,255,255,.9);
        font-size: 15px;
    }
    .layout-real_estate .site-brand-logo { width: 126px; height: 54px; }
    .layout-real_estate .site-nav-toggle { border-color: color-mix(in srgb,var(--public-primary),transparent 60%); }
    .layout-real_estate .site-nav-toggle span { background: var(--public-primary); }
}

/* ================================================================
   19.3.0Y33 / 1.0.101.33 — Catálogo lateral e busca pública contínua
   ================================================================ */
[data-hero-parallax] {
    transform: translate3d(0,var(--hero-parallax-y,0px),0);
    will-change: transform;
}

.catalog-layout {
    display: grid;
    grid-template-columns: minmax(270px,310px) minmax(0,1fr);
    gap: 28px;
    align-items: start;
}
.catalog-filter-sidebar { min-width: 0; }
.catalog-results { min-width: 0; }
.catalog-results .results-summary { margin-top: 0; }
.catalog-filter-sidebar .advanced-filter-card {
    position: sticky;
    top: 18px;
    margin: 0;
    overflow: visible;
}
.catalog-filter-sidebar .filter-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 18px 15px;
    border-bottom: 1px solid var(--public-line);
}
.catalog-filter-sidebar .filter-panel-head strong,
.catalog-filter-sidebar .filter-panel-head span { display: block; }
.catalog-filter-sidebar .filter-panel-head strong { color: var(--public-ink); font-size: 17px; }
.catalog-filter-sidebar .filter-panel-head span { margin-top: 3px; color: var(--public-muted); font-size: 11px; line-height: 1.45; }
.catalog-filter-sidebar .filter-panel-head button { display: none; }
.catalog-filter-sidebar .advanced-filter-form { padding: 17px; }
.catalog-filter-sidebar .filter-primary-grid,
.catalog-filter-sidebar .filter-has-purpose .filter-primary-grid,
.catalog-filter-sidebar .filter-advanced-groups { grid-template-columns: minmax(0,1fr); }
.catalog-filter-sidebar .filter-primary-grid { gap: 11px; }
.catalog-filter-sidebar .filter-primary-grid .filter-wide,
.catalog-filter-sidebar .filter-sort-group { grid-column: auto; }
.catalog-filter-sidebar .filter-advanced-fields { margin-top: 17px; }
.catalog-filter-sidebar .filter-advanced-fields > summary { display: none; }
.catalog-filter-sidebar .filter-advanced-groups { gap: 13px; padding-top: 0; }
.catalog-filter-sidebar .filter-field-group { padding: 13px; }
.catalog-filter-sidebar .filter-group-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
.catalog-filter-sidebar .filter-sort-group .filter-group-grid { grid-template-columns: 1fr; }
.catalog-filter-sidebar .filter-actions {
    align-items: stretch;
    flex-direction: column-reverse;
    gap: 10px;
    margin-top: 15px;
    padding-top: 15px;
}
.catalog-filter-sidebar .filter-actions .site-btn { width: 100%; min-width: 0; }
.catalog-filter-sidebar .filter-clear { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; }

.site-hero-compact { overflow: visible; padding: 0; background: transparent; }
.site-hero-compact .site-search-banner {
    min-height: 310px;
    align-items: flex-end;
    overflow: visible;
    padding: 54px 0 28px;
}
.site-hero-compact .site-search-backdrop {
    background: linear-gradient(180deg,rgba(14,10,10,.18),rgba(14,10,10,.3) 48%,rgba(14,10,10,.66));
}
.site-hero-compact .hero-search-shell { width: min(1050px,100%); }
.site-hero-compact .hero-search-head { padding-bottom: 8px; }
.site-hero-compact .hero-reference { padding-top: 9px; }

@media (min-width: 1101px) {
    .layout-real_estate .site-nav-group {
        position: relative;
        align-self: stretch;
        display: flex;
    }
    .layout-real_estate .site-nav-group > a {
        min-height: 50px;
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 0 clamp(13px,1.45vw,22px);
        border-radius: 0;
        color: color-mix(in srgb,#fff,transparent 12%);
        background: transparent;
        font-size: 12px;
        font-weight: 650;
        letter-spacing: .015em;
        text-decoration: none;
        text-transform: uppercase;
    }
    .layout-real_estate .site-nav-group > a > span { font-size: 14px; }
    .layout-real_estate .site-nav-group:hover > a,
    .layout-real_estate .site-nav-group:focus-within > a,
    .layout-real_estate .site-nav-group > a.active {
        color: #fff;
        background: color-mix(in srgb,var(--public-primary),#000 17%);
        box-shadow: inset 0 -3px 0 #fff;
    }
    .layout-real_estate .site-nav-group:hover > a > span,
    .layout-real_estate .site-nav-group:focus-within > a > span { transform: none; }
    .layout-real_estate .site-nav-dropdown {
        position: absolute;
        z-index: 140;
        top: 100%;
        left: 0;
        width: 250px;
        max-height: min(470px,calc(100vh - 70px));
        overflow-y: auto;
        padding: 8px;
        border: 1px solid rgba(255,255,255,.16);
        border-top: 0;
        background: color-mix(in srgb,var(--public-primary),#000 10%);
        box-shadow: 0 20px 42px rgba(20,10,24,.24);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-7px);
        transition: opacity .16s ease,transform .16s ease,visibility .16s ease;
    }
    .layout-real_estate .site-nav-group:hover .site-nav-dropdown,
    .layout-real_estate .site-nav-group:focus-within .site-nav-dropdown {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
    .layout-real_estate .site-nav-dropdown a {
        min-height: 38px;
        display: flex;
        align-items: center;
        padding: 8px 11px;
        border-radius: 3px;
        color: rgba(255,255,255,.9);
        font-size: 12px;
        text-decoration: none;
        text-transform: none;
    }
    .layout-real_estate .site-nav-dropdown a:hover,
    .layout-real_estate .site-nav-dropdown a:focus { color: #fff; background: rgba(0,0,0,.18); outline: none; }

    .layout-real_estate.has-public-hero-image.public-page-home .site-header,
    .layout-real_estate.has-public-hero-image.public-page-sale .site-header,
    .layout-real_estate.has-public-hero-image.public-page-rent .site-header,
    .layout-real_estate.has-public-hero-image.public-page-properties .site-header,
    .layout-real_estate.has-public-hero-image.public-page-property .site-header {
        background: linear-gradient(90deg,rgba(255,255,255,.84),rgba(238,246,252,.72),rgba(255,255,255,.84));
        box-shadow: inset 0 1px 0 rgba(255,255,255,.78),inset 0 -1px 0 rgba(255,255,255,.54);
        backdrop-filter: blur(3px) saturate(.88);
        -webkit-backdrop-filter: blur(3px) saturate(.88);
    }
    .layout-real_estate.has-public-hero-image.public-page-home .site-nav,
    .layout-real_estate.has-public-hero-image.public-page-sale .site-nav,
    .layout-real_estate.has-public-hero-image.public-page-rent .site-nav,
    .layout-real_estate.has-public-hero-image.public-page-properties .site-nav,
    .layout-real_estate.has-public-hero-image.public-page-property .site-nav {
        background: color-mix(in srgb,var(--public-primary),transparent 30%);
        box-shadow: 0 9px 24px color-mix(in srgb,var(--public-primary),transparent 74%);
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
    }
    .layout-real_estate.has-public-hero-image .site-hero-compact .site-search-background {
        top: -240px;
        bottom: auto;
        height: calc(100% + 240px);
    }
    .layout-real_estate.has-public-search-hero.has-public-hero-image .site-header {
        background: linear-gradient(90deg,rgba(255,255,255,.84),rgba(238,246,252,.72),rgba(255,255,255,.84));
        box-shadow: inset 0 1px 0 rgba(255,255,255,.78),inset 0 -1px 0 rgba(255,255,255,.54);
        backdrop-filter: blur(3px) saturate(.88);
        -webkit-backdrop-filter: blur(3px) saturate(.88);
    }
    .layout-real_estate.has-public-search-hero.has-public-hero-image .site-nav {
        background: color-mix(in srgb,var(--public-primary),transparent 30%);
        box-shadow: 0 9px 24px color-mix(in srgb,var(--public-primary),transparent 74%);
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
    }
}

@media (max-width: 1180px) and (min-width: 981px) {
    .catalog-layout { grid-template-columns: minmax(250px,285px) minmax(0,1fr); gap: 22px; }
    .catalog-results .property-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 980px) and (min-width: 781px) {
    .catalog-layout { grid-template-columns: minmax(235px,275px) minmax(0,1fr); gap: 20px; }
    .catalog-results .property-grid { grid-template-columns: minmax(0,1fr); }
    .catalog-filter-sidebar .filter-group-grid { grid-template-columns: minmax(0,1fr); }
}

@media (max-width: 1100px) {
    .layout-real_estate .site-nav-group { width: 100%; }
    .layout-real_estate .site-nav-group > a {
        width: 100%;
        min-height: 46px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 13px 15px;
        color: var(--public-ink);
        font-size: 14px;
        font-weight: 750;
        text-decoration: none;
    }
    .layout-real_estate .site-nav-dropdown { display: none; }
    .layout-real_estate.has-public-hero-image.public-page-home .site-header,
    .layout-real_estate.has-public-hero-image.public-page-sale .site-header,
    .layout-real_estate.has-public-hero-image.public-page-rent .site-header,
    .layout-real_estate.has-public-hero-image.public-page-properties .site-header,
    .layout-real_estate.has-public-hero-image.public-page-property .site-header {
        background: rgba(255,255,255,.84);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }
    .layout-real_estate.has-public-hero-image .site-hero-compact .site-search-background {
        top: -71px;
        bottom: auto;
        height: calc(100% + 71px);
    }
    .layout-real_estate.has-public-search-hero.has-public-hero-image .site-header {
        background: rgba(255,255,255,.84);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }
}

@media (max-width: 780px) {
    .catalog-layout { display: block; }
    .catalog-filter-sidebar .advanced-filter-card { position: fixed; top: 0; }
    .catalog-filter-sidebar .filter-panel-head { padding-top: 12px; }
    .catalog-filter-sidebar .filter-panel-head button { display: inline-grid; place-items: center; }
    .catalog-filter-sidebar .filter-advanced-fields > summary { display: none; }
    .catalog-filter-sidebar .filter-group-grid { grid-template-columns: 1fr 1fr; }
    .site-hero-compact .site-search-banner { min-height: 360px; padding: 28px 0 22px; }
    .site-hero-compact .hero-search-form { grid-template-columns: 1fr 1fr; gap: 9px; }
    .site-hero-compact .hero-search-form > .site-btn,
    .site-hero-compact .hero-reference { grid-column: 1 / -1; }
    .site-hero-compact .hero-reference { grid-template-columns: minmax(0,1fr) auto; }
}

@media (max-width: 430px) {
    .catalog-filter-sidebar .filter-group-grid { grid-template-columns: minmax(0,1fr); }
    .site-hero-compact .site-search-banner { min-height: 0; }
    .site-hero-compact .hero-search-form { grid-template-columns: minmax(0,1fr); }
    .site-hero-compact .hero-search-form > .site-btn,
    .site-hero-compact .hero-reference { grid-column: auto; }
    .site-hero-compact .hero-reference { grid-template-columns: minmax(0,1fr); }
}

@media (prefers-reduced-motion: reduce) {
    [data-hero-parallax] { transform: none !important; }
}

/* ================================================================
   19.3.0Y33 / 1.0.101.33 — Exibição, ordenação e mapa do catálogo
   ================================================================ */
.catalog-toolbar {
    min-height: 62px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 12px;
    border: 1px solid var(--public-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(34,20,45,.045);
}
.catalog-view-tools { display: flex; align-items: center; gap: 9px; min-width: 0; }
.catalog-toolbar-label { padding-left: 4px; color: var(--public-muted); font-size: 11px; font-weight: 780; }
.catalog-view-switch { display: inline-flex; padding: 3px; border: 1px solid var(--public-line); border-radius: 10px; background: var(--public-soft); }
.catalog-view-switch button,
.catalog-map-open {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 11px;
    border: 0;
    border-radius: 7px;
    color: #5b5361;
    background: transparent;
    font: inherit;
    font-size: 11px;
    font-weight: 820;
    cursor: pointer;
}
.catalog-view-switch button.active { color: #fff; background: var(--public-primary); box-shadow: 0 5px 14px color-mix(in srgb,var(--public-primary),transparent 72%); }
.catalog-view-switch .public-icon,
.catalog-map-open .public-icon { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.catalog-map-open { border: 1px solid color-mix(in srgb,var(--public-primary),transparent 70%); color: var(--public-primary); background: color-mix(in srgb,var(--public-primary),#fff 95%); }
.catalog-map-open:hover { color: #fff; background: var(--public-primary); }
.catalog-map-open small { min-width: 19px; height: 19px; display: inline-grid; place-items: center; padding: 0 5px; border-radius: 999px; color: #fff; background: var(--public-primary); font-size: 9px; }
.catalog-map-open:hover small { color: var(--public-primary); background: #fff; }
.catalog-map-open:disabled { opacity: .46; cursor: not-allowed; }
.catalog-sort { display: inline-flex; align-items: center; gap: 9px; color: var(--public-muted); font-size: 11px; font-weight: 780; }
.catalog-sort select { min-width: 150px; min-height: 39px; padding: 0 34px 0 11px; border: 1px solid var(--public-line); border-radius: 9px; color: var(--public-ink); background: #fff; font: inherit; font-size: 12px; font-weight: 720; }
.catalog-toolbar + .results-summary { margin-top: 14px; }

.catalog-results[data-catalog-view="list"] .property-grid { grid-template-columns: minmax(0,1fr); gap: 14px; }
.catalog-results[data-catalog-view="list"] .property-card {
    display: grid;
    grid-template-columns: minmax(210px,260px) minmax(0,1fr);
    grid-template-rows: minmax(0,1fr) auto;
    min-height: 220px;
}
.catalog-results[data-catalog-view="list"] .property-media { grid-column: 1; grid-row: 1 / 3; height: 100%; min-height: 220px; }
.catalog-results[data-catalog-view="list"] .property-body { grid-column: 2; grid-row: 1; padding: 20px 64px 10px 22px; }
.catalog-results[data-catalog-view="list"] .property-footer { grid-column: 2; grid-row: 2; padding: 4px 22px 20px; }
.catalog-results[data-catalog-view="list"] .property-footer .site-btn { width: auto; min-width: 150px; }
.catalog-results[data-catalog-view="list"] .property-body h3 { font-size: 22px; }
.catalog-results[data-catalog-view="list"] .card-favorite { top: 16px; right: 16px; }

body.catalog-map-open { overflow: hidden; }
.catalog-map-modal { position: fixed; z-index: 5000; inset: 0; display: none; align-items: center; justify-content: center; padding: 24px; }
.catalog-map-modal.active { display: flex; }
.catalog-map-backdrop { position: absolute; inset: 0; border: 0; background: rgba(21,12,29,.66); backdrop-filter: blur(5px); cursor: default; }
.catalog-map-dialog { position: relative; width: min(1500px,96vw); height: min(900px,92dvh); min-height: 520px; display: flex; flex-direction: column; overflow: hidden; border-radius: 22px; background: #fff; box-shadow: 0 32px 90px rgba(20,8,28,.34); }
.catalog-map-header { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 20px 14px 24px; border-bottom: 1px solid var(--public-line); background: #fff; }
.catalog-map-header span { display: block; color: var(--public-primary); font-size: 9px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.catalog-map-header h2 { margin: 3px 0 2px; color: var(--public-ink); font-size: 25px; line-height: 1.05; }
.catalog-map-header p { margin: 0; color: var(--public-muted); font-size: 11px; }
.catalog-map-close { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 1px solid var(--public-line); border-radius: 12px; color: var(--public-ink); background: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.catalog-map-body { min-height: 0; flex: 1; display: grid; grid-template-columns: minmax(280px,340px) minmax(0,1fr); }
.catalog-map-list { min-width: 0; overflow: hidden; border-right: 1px solid var(--public-line); background: #faf9fb; }
.catalog-map-list > div { height: 100%; overflow-y: auto; padding: 12px; overscroll-behavior: contain; }
.catalog-map-listing { width: 100%; display: grid; grid-template-columns: 92px minmax(0,1fr); gap: 11px; padding: 9px; border: 1px solid transparent; border-radius: 13px; color: var(--public-ink); background: transparent; text-align: left; cursor: pointer; }
.catalog-map-listing + .catalog-map-listing { margin-top: 6px; }
.catalog-map-listing:hover,
.catalog-map-listing.active { border-color: color-mix(in srgb,var(--public-primary),transparent 67%); background: #fff; box-shadow: 0 7px 20px rgba(34,20,45,.065); }
.catalog-map-listing img,
.catalog-map-listing-placeholder { width: 92px; height: 78px; display: grid; place-items: center; border-radius: 9px; object-fit: cover; background: #ebe7ee; color: var(--public-muted); font-size: 26px; }
.catalog-map-listing > span:last-child { min-width: 0; display: flex; flex-direction: column; }
.catalog-map-listing small { color: var(--public-primary); font-size: 8px; font-weight: 880; text-transform: uppercase; }
.catalog-map-listing strong { margin-top: 3px; overflow: hidden; color: var(--public-ink); font-size: 12px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.catalog-map-listing em { margin-top: 4px; overflow: hidden; color: var(--public-muted); font-size: 9px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.catalog-map-listing b { margin-top: auto; padding-top: 5px; color: var(--public-ink); font-size: 10px; }
.catalog-map-canvas { position: relative; min-width: 0; overflow: hidden; background: #dce7e6; cursor: grab; touch-action: none; outline: none; }
.catalog-map-canvas.dragging { cursor: grabbing; }
.catalog-map-tiles,
.catalog-map-markers { position: absolute; inset: 0; overflow: hidden; }
.catalog-map-tiles img { position: absolute; width: 256px; height: 256px; max-width: none; user-select: none; -webkit-user-drag: none; }
.catalog-map-markers { pointer-events: none; }
.catalog-map-pin { position: absolute; z-index: 3; width: 36px; height: 36px; padding: 0; border: 3px solid #fff; border-radius: 50% 50% 50% 0; color: #fff; background: var(--public-primary); box-shadow: 0 6px 16px rgba(26,14,32,.32); transform: translate(-50%,-100%) rotate(-45deg); cursor: pointer; pointer-events: auto; }
.catalog-map-pin span { width: 8px; height: 8px; display: block; margin: auto; border-radius: 50%; background: #fff; }
.catalog-map-pin.active { background: var(--public-accent); transform: translate(-50%,-100%) rotate(-45deg) scale(1.14); }
.catalog-map-controls { position: absolute; z-index: 7; top: 14px; right: 14px; display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(31,23,37,.17); border-radius: 11px; background: #fff; box-shadow: 0 8px 24px rgba(31,23,37,.18); }
.catalog-map-controls button { width: 42px; height: 40px; display: grid; place-items: center; padding: 0; border: 0; border-bottom: 1px solid var(--public-line); color: var(--public-ink); background: #fff; font-size: 21px; cursor: pointer; }
.catalog-map-controls button:last-child { border-bottom: 0; font-size: 18px; }
.catalog-map-controls button:hover { color: var(--public-primary); background: var(--public-soft); }
.catalog-map-preview { position: absolute; z-index: 8; right: 70px; bottom: 18px; width: min(390px,calc(100% - 96px)); display: grid; grid-template-columns: 124px minmax(0,1fr); gap: 13px; padding: 10px; border: 1px solid rgba(31,23,37,.13); border-radius: 15px; background: rgba(255,255,255,.97); box-shadow: 0 18px 45px rgba(31,23,37,.23); backdrop-filter: blur(7px); }
.catalog-map-preview[hidden] { display: none; }
.catalog-map-preview > button { position: absolute; top: 6px; right: 6px; width: 27px; height: 27px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 8px; color: var(--public-muted); background: #fff; font-size: 18px; cursor: pointer; }
.catalog-map-preview [data-map-preview-media] { height: 132px; display: grid; place-items: center; overflow: hidden; border-radius: 10px; color: var(--public-muted); background: var(--public-soft); font-size: 10px; }
.catalog-map-preview [data-map-preview-media] img { width: 100%; height: 100%; object-fit: cover; }
.catalog-map-preview > div:last-child { min-width: 0; display: flex; flex-direction: column; padding: 3px 24px 0 0; }
.catalog-map-preview small { color: var(--public-primary); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.catalog-map-preview strong { margin-top: 4px; overflow: hidden; color: var(--public-ink); font-size: 14px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.catalog-map-preview span { margin-top: 4px; overflow: hidden; color: var(--public-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.catalog-map-preview b { margin-top: 7px; color: var(--public-ink); font-size: 11px; }
.catalog-map-preview .site-btn { width: fit-content; min-height: 31px; margin-top: auto; padding: 0 11px; font-size: 9px; }
.catalog-map-attribution { position: absolute; z-index: 6; right: 4px; bottom: 3px; padding: 2px 5px; color: #3e3744; background: rgba(255,255,255,.84); font-size: 8px; }
.catalog-map-attribution a { color: inherit; }

@media (max-width: 900px) {
    .catalog-toolbar { align-items: stretch; flex-direction: column; }
    .catalog-view-tools { justify-content: space-between; }
    .catalog-sort { justify-content: space-between; padding-top: 9px; border-top: 1px solid var(--public-line); }
    .catalog-sort select { flex: 1; max-width: 220px; }
    .catalog-map-dialog { width: calc(100vw - 24px); height: calc(100dvh - 24px); }
    .catalog-map-body { grid-template-columns: minmax(220px,280px) minmax(0,1fr); }
    .catalog-map-listing { grid-template-columns: 72px minmax(0,1fr); }
    .catalog-map-listing img,
    .catalog-map-listing-placeholder { width: 72px; height: 66px; }
}

@media (max-width: 600px) {
    .catalog-toolbar { padding: 9px; }
    .catalog-toolbar-label { display: none; }
    .catalog-view-tools { gap: 7px; }
    .catalog-view-switch { flex: 1; }
    .catalog-view-switch button { flex: 1; min-width: 0; padding-inline: 8px; }
    .catalog-map-open { min-width: 42px; padding-inline: 9px; }
    .catalog-map-open span { display: none; }
    .catalog-sort { font-size: 10px; }
    .catalog-sort select { min-width: 0; max-width: none; }
    .catalog-toolbar + .results-summary { margin-top: 12px; }
    .catalog-results[data-catalog-view="list"] .property-card { grid-template-columns: 124px minmax(0,1fr); min-height: 190px; border-radius: 13px; }
    .catalog-results[data-catalog-view="list"] .property-media { min-height: 190px; }
    .catalog-results[data-catalog-view="list"] .property-body { padding: 12px 42px 6px 12px; }
    .catalog-results[data-catalog-view="list"] .property-body h3 { margin-top: 7px; font-size: 15px; }
    .catalog-results[data-catalog-view="list"] .property-location { font-size: 10px; }
    .catalog-results[data-catalog-view="list"] .property-price { margin-top: 9px; font-size: 15px; }
    .catalog-results[data-catalog-view="list"] .property-features { min-height: 0; margin-top: 6px; font-size: 9px; }
    .catalog-results[data-catalog-view="list"] .property-footer { padding: 2px 12px 12px; }
    .catalog-results[data-catalog-view="list"] .property-footer .site-btn { width: 100%; min-width: 0; min-height: 34px; padding-inline: 8px; font-size: 9px; }
    .catalog-results[data-catalog-view="list"] .card-favorite { top: 9px; right: 9px; width: 31px; height: 31px; }

    .catalog-map-modal { padding: 0; }
    .catalog-map-dialog { width: 100vw; height: 100dvh; min-height: 0; border-radius: 0; }
    .catalog-map-header { min-height: 72px; padding: max(10px,env(safe-area-inset-top)) 13px 9px 16px; }
    .catalog-map-header h2 { font-size: 20px; }
    .catalog-map-header p { font-size: 9px; }
    .catalog-map-header span { font-size: 8px; }
    .catalog-map-close { width: 39px; height: 39px; }
    .catalog-map-body { height: calc(100dvh - 72px); display: block; }
    .catalog-map-list { display: none; }
    .catalog-map-canvas { width: 100%; height: 100%; }
    .catalog-map-controls { top: 12px; right: 10px; }
    .catalog-map-controls button { width: 39px; height: 38px; }
    .catalog-map-preview { right: 10px; bottom: max(14px,env(safe-area-inset-bottom)); left: 10px; width: auto; grid-template-columns: 102px minmax(0,1fr); }
    .catalog-map-preview [data-map-preview-media] { height: 116px; }
    .catalog-map-attribution { bottom: 1px; }
}

@media (max-width: 390px) {
    .catalog-results[data-catalog-view="list"] .property-card { grid-template-columns: 110px minmax(0,1fr); }
    .catalog-view-switch button span { display: none; }
}

/* ================================================================
   19.3.0Y33 / 1.0.101.33 — mapa privado, fundo fixo e cards uniformes
   ================================================================ */
[data-hero-parallax] {
    transform: none !important;
    will-change: auto;
    object-position: center top;
}

.property-public-label {
    position: absolute;
    z-index: 3;
    top: 13px;
    left: 13px;
    max-width: calc(100% - 70px);
    min-height: 29px;
    display: inline-flex;
    align-items: center;
    padding: 0 11px;
    overflow: hidden;
    border-radius: 8px 8px 8px 2px;
    color: #fff;
    background: #6d28d9;
    box-shadow: 0 7px 18px rgba(18,12,24,.22);
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.property-public-label.tone-red { background: #c51f36; }
.property-public-label.tone-green { background: #198754; }
.property-public-label.tone-blue { background: #1769aa; }
.property-public-label.tone-gold { color: #271b03; background: #e8b43e; }
.property-public-label.tone-gray { background: #56515a; }
.property-public-label + .property-purpose { top: auto; bottom: 13px; }

/* Colunas: o conteúdo e a fotografia nunca alteram a altura do card. */
.catalog-results:not([data-catalog-view="list"]) .property-card {
    height: 492px;
    min-height: 492px;
    max-height: 492px;
}
.catalog-results:not([data-catalog-view="list"]) .property-media {
    flex: 0 0 232px;
    width: 100%;
    height: 232px;
    min-height: 232px;
    max-height: 232px;
}
.catalog-results .property-media img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
}
.catalog-results .property-body { min-width: 0; overflow: hidden; }
.catalog-results .property-card h3,
.catalog-results .property-location,
.catalog-results .property-features {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
}
.catalog-results .property-card h3 { min-height: 47px; -webkit-line-clamp: 2; }
.catalog-results .property-location { min-height: 41px; -webkit-line-clamp: 2; }
.catalog-results .property-features { -webkit-line-clamp: 1; }

/* Lista: altura explícita elimina o crescimento causado por fotos verticais. */
.catalog-results[data-catalog-view="list"] .property-card {
    grid-template-columns: 260px minmax(0,1fr);
    grid-template-rows: minmax(0,1fr) auto;
    width: 100%;
    height: 248px;
    min-height: 248px;
    max-height: 248px;
}
.catalog-results[data-catalog-view="list"] .property-media {
    width: 260px;
    height: 248px;
    min-height: 248px;
    max-height: 248px;
}
.catalog-results[data-catalog-view="list"] .property-body h3 { min-height: 0; -webkit-line-clamp: 2; }
.catalog-results[data-catalog-view="list"] .property-location { min-height: 0; -webkit-line-clamp: 1; }

@media (max-width: 600px) {
    .catalog-results:not([data-catalog-view="list"]) .property-card {
        height: 468px;
        min-height: 468px;
        max-height: 468px;
    }
    .catalog-results:not([data-catalog-view="list"]) .property-media {
        flex-basis: 220px;
        height: 220px;
        min-height: 220px;
        max-height: 220px;
    }
    .catalog-results[data-catalog-view="list"] .property-card {
        grid-template-columns: 124px minmax(0,1fr);
        height: 190px;
        min-height: 190px;
        max-height: 190px;
    }
    .catalog-results[data-catalog-view="list"] .property-media {
        width: 124px;
        height: 190px;
        min-height: 190px;
        max-height: 190px;
    }
    .catalog-results[data-catalog-view="list"] .property-public-label {
        top: 8px;
        left: 8px;
        max-width: calc(100% - 16px);
        min-height: 24px;
        padding-inline: 7px;
        font-size: 8px;
    }
    .catalog-results[data-catalog-view="list"] .property-public-label + .property-purpose { bottom: 8px; }
}

@media (max-width: 390px) {
    .catalog-results[data-catalog-view="list"] .property-card { grid-template-columns: 110px minmax(0,1fr); }
    .catalog-results[data-catalog-view="list"] .property-media { width: 110px; }
}

/* ================================================================
   19.3.0Y37 / 1.0.101.37 — Frame único real da abertura
   ================================================================ */
.layout-real_estate.has-public-hero-image {
    --public-hero-canvas-height: 760px;
    position: relative;
}

/* Este é o único elemento que referencia a fotografia no Padrão Imobiliário.
   Sua altura é medida do início do cabeçalho até o fim do hero. */
.layout-real_estate.has-public-hero-image .site-opening-background {
    position: absolute;
    z-index: 0;
    top: 34px;
    right: 0;
    left: 0;
    height: 720px;
    overflow: hidden;
    pointer-events: none;
    background-color: #dce5eb;
    background-image: var(--public-hero-image);
    background-repeat: no-repeat;
    background-position: center var(--opening-background-y,-34px);
    background-size: auto var(--public-hero-canvas-height);
}

/* Cabeçalho e hero deixam de possuir qualquer fotografia própria. */
.layout-real_estate.has-public-hero-image .site-header,
.layout-real_estate.has-public-hero-image .site-hero,
.layout-real_estate.has-public-hero-image .site-search-banner {
    position: relative;
    z-index: 1;
    background-color: transparent !important;
    background-image: none !important;
    background-attachment: scroll !important;
}
.layout-real_estate.has-public-hero-image .site-search-background {
    display: none !important;
}

@media (min-width: 1101px) {
    /* Branco preservado como película; a fotografia única continua visível. */
    .layout-real_estate.has-public-hero-image .site-header {
        isolation: isolate;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
    .layout-real_estate.has-public-hero-image .site-header-inner::before {
        content: "";
        position: absolute;
        z-index: 0;
        top: 0;
        bottom: 50px;
        left: 50%;
        width: 100vw;
        pointer-events: none;
        background: linear-gradient(
            90deg,
            rgba(255,255,255,.76),
            rgba(245,249,252,.68),
            rgba(255,255,255,.76)
        );
        box-shadow: inset 0 1px 0 rgba(255,255,255,.74),inset 0 -1px 0 rgba(255,255,255,.48);
        transform: translateX(-50%);
    }
    .layout-real_estate.has-public-hero-image .site-brand,
    .layout-real_estate.has-public-hero-image .site-header-institutional,
    .layout-real_estate.has-public-hero-image .site-nav-toggle {
        position: relative;
        z-index: 2;
    }
    /* O menu é apenas cor translúcida, sem URL ou cópia da fotografia. */
    .layout-real_estate.has-public-hero-image .site-nav {
        z-index: 3;
        background: color-mix(in srgb,var(--public-primary),transparent 36%) !important;
        box-shadow: 0 9px 24px color-mix(in srgb,var(--public-primary),transparent 82%);
        backdrop-filter: blur(3px) saturate(.92);
        -webkit-backdrop-filter: blur(3px) saturate(.92);
    }
}

@media (max-width: 1100px) {
    .layout-real_estate.has-public-hero-image {
        --public-hero-canvas-height: 720px;
    }
    .layout-real_estate.has-public-hero-image .site-header {
        background: rgba(255,255,255,.78) !important;
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
    }
    .layout-real_estate.has-public-hero-image .site-nav {
        background: #fff !important;
    }
}

/* ================================================================
   19.3.0Y38 / 1.0.101.38 — Árvore do menu acima da abertura
   ================================================================ */
/* O cabeçalho precisa formar uma camada superior completa. Um z-index alto
   somente no submenu não atravessa o contexto de empilhamento do pai. */
.layout-real_estate.has-public-hero-image .site-header {
    z-index: 80;
}

@media (min-width: 1101px) {
    .layout-real_estate.has-public-hero-image .site-nav {
        z-index: 3;
    }
    .layout-real_estate.has-public-hero-image .site-nav-group:hover,
    .layout-real_estate.has-public-hero-image .site-nav-group:focus-within {
        z-index: 4;
    }
    .layout-real_estate.has-public-hero-image .site-nav-dropdown {
        z-index: 140;
    }
}

/* ================================================================
   19.3.0Y39 / 1.0.101.39 — Indicador fixo dos submenus
   ================================================================ */
/* A seta comunica a existência da árvore, não o seu estado visual. */
.layout-real_estate .site-nav-group > a > span {
    transform: none !important;
}

/* ================================================================
   19.3.0Y40 / 1.0.101.40 — Cabeçalho e redes sociais refinados
   ================================================================ */
.site-utility-inner {
    justify-content: space-between !important;
}
.site-utility-social,
.site-utility-actions {
    display: flex;
    align-items: center;
}
.site-utility-social {
    gap: 3px !important;
}
.site-utility-actions {
    gap: 20px;
    margin-left: auto;
}
.site-utility-social-link {
    width: 27px;
    height: 27px;
    display: inline-grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 50%;
    background: rgba(255,255,255,.07);
    color: inherit !important;
    opacity: .86;
    transition: opacity .16s ease,background-color .16s ease,transform .16s ease;
}
.site-utility-social-link:hover,
.site-utility-social-link:focus-visible {
    background: rgba(255,255,255,.16);
    opacity: 1;
    transform: translateY(-1px);
}
.site-utility-social-link:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}
.site-utility-social-link svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

@media (min-width: 1101px) {
    .layout-real_estate .site-brand-logo {
        width: clamp(260px,21vw,332px);
        height: 144px;
    }
}

.layout-real_estate .site-search-banner .hero-search-shell {
    background: rgba(14,14,16,.78) !important;
    backdrop-filter: blur(4px) saturate(.94);
    -webkit-backdrop-filter: blur(4px) saturate(.94);
}

@media (max-width: 1100px) {
    .layout-real_estate .site-brand-logo {
        width: 120px;
        height: 52px;
    }
    .site-utility-actions {
        gap: 12px;
    }
}

/* ================================================================
   19.3.0Y41 / 1.0.101.41 — Barra superior e abertura otimizadas
   ================================================================ */
.site-utility-inner {
    min-height: 38px;
    justify-content: flex-end !important;
}
.site-utility-actions {
    margin-left: auto;
    justify-content: flex-end;
    gap: 16px;
    white-space: nowrap;
}
.site-utility-social {
    flex: 0 0 auto;
}
.utility-contact {
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: inherit !important;
    font-size: 11px;
    font-weight: 700;
    opacity: .88;
    text-decoration: none;
}
.utility-contact:hover,
.utility-contact:focus-visible {
    opacity: 1;
}
.utility-contact:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}
.utility-contact svg {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}
.layout-real_estate .site-utility .utility-phone,
.layout-real_estate .site-utility .utility-email {
    display: inline-flex;
}

@media (min-width: 1101px) {
    .layout-real_estate .site-brand-logo {
        width: clamp(240px,19vw,300px);
        height: 132px;
    }
    .layout-real_estate.public-page-home .site-search-banner .site-hero-copy {
        width: 100%;
        max-width: none;
    }
    .layout-real_estate.public-page-home .site-search-banner .site-hero-copy h1,
    .layout-real_estate.public-page-home .site-search-banner .site-hero-copy > p {
        width: 100%;
        max-width: none;
    }
}

@media (max-width: 1100px) {
    .layout-real_estate .site-brand-logo {
        width: 112px;
        height: 48px;
    }
    .site-utility-actions {
        gap: 8px;
    }
}

@media (max-width: 780px) {
    .utility-contact {
        width: 27px;
        height: 27px;
        min-height: 27px;
        justify-content: center;
        border: 1px solid rgba(255,255,255,.14);
        border-radius: 50%;
        background: rgba(255,255,255,.07);
    }
    .utility-contact span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }
}

/* ================================================================
   19.3.0Y42 / 1.0.101.42 — Destaque sem rolagem e abertura panorâmica
   ================================================================ */
.layout-real_estate.has-public-hero-image .site-opening-background {
    background-position: center var(--opening-background-y,0px);
    background-size: cover;
}

@media (min-width: 1101px) {
    /* 1920 × 500: o conjunto volta a respeitar a proporção panorâmica da arte. */
    .layout-real_estate.has-public-hero-image {
        --public-hero-canvas-height: 508px;
    }
    .layout-real_estate.has-public-hero-image .site-opening-background {
        top: 38px;
        height: 508px;
    }
    .layout-real_estate .site-header-inner {
        min-height: 178px;
        padding: 8px 0 50px;
    }
    .layout-real_estate .site-brand {
        min-width: 230px;
        align-self: center;
    }
    .layout-real_estate .site-brand-logo {
        width: clamp(190px,15vw,220px);
        height: 100px;
    }
    .layout-real_estate.public-page-home .site-search-banner {
        min-height: 330px;
        padding: 24px 0 22px;
    }
    .layout-real_estate.public-page-home .site-search-banner > .site-container {
        gap: 24px;
    }
    .layout-real_estate.public-page-home .site-search-banner .site-hero-copy h1 {
        font-size: clamp(38px,4vw,56px);
    }
}

@media (min-width: 981px) {
    /* Todos os slides mantêm a mesma dimensão e nenhum conteúdo recebe rolagem. */
    .layout-real_estate .home-featured-carousel .site-container {
        width: min(calc(100% - 40px),1320px);
        max-width: none;
    }
    .layout-real_estate .featured-carousel-track {
        height: 480px;
        min-height: 480px;
    }
    .layout-real_estate .featured-slide,
    .layout-real_estate .featured-slide.active {
        height: 480px;
        min-height: 480px;
        grid-template-columns: minmax(0,1fr) minmax(540px,1fr);
    }
    .layout-real_estate .featured-slide.active {
        position: absolute;
    }
    .layout-real_estate .featured-slide-media,
    .layout-real_estate .featured-slide-media img {
        height: 100%;
        min-height: 480px;
        max-height: 480px;
    }
    .layout-real_estate .featured-slide-media img {
        object-fit: cover;
        object-position: center;
    }
    .layout-real_estate .featured-slide-content {
        height: 480px;
        min-height: 480px;
        overflow: hidden;
        padding: clamp(30px,3vw,40px);
    }
    .layout-real_estate .featured-slide-content h3 {
        display: -webkit-box;
        overflow: hidden;
        font-size: clamp(28px,2.65vw,36px);
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }
    .layout-real_estate .featured-slide-description {
        display: -webkit-box;
        overflow: hidden;
        line-height: 1.55;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 4;
    }
}

/* ================================================================
   19.3.0Y43 / 1.0.101.43 — Busca rápida compacta
   ================================================================ */
@media (min-width: 1101px) {
    .layout-real_estate .site-search-banner .hero-search-shell,
    .layout-real_estate .site-hero-compact .hero-search-shell {
        width: min(920px,100%);
    }
    .layout-real_estate .site-search-banner .hero-search-head {
        padding: 10px 14px 6px;
    }
    .layout-real_estate .site-search-banner .hero-search-head strong {
        font-size: 14px;
    }
    .layout-real_estate .site-search-banner .hero-search-head span {
        font-size: 10px;
    }
    .layout-real_estate .site-search-banner .hero-search-form {
        padding: 0 14px 10px;
    }
    .layout-real_estate .site-search-banner .hero-search-form select,
    .layout-real_estate .site-search-banner .hero-search-form input {
        min-height: 40px;
        padding-inline: 10px;
        font-size: 14px;
    }
    .layout-real_estate .site-search-banner .hero-search-form > .site-btn {
        min-height: 40px;
        padding-inline: 14px;
        font-size: 13px;
    }
    .layout-real_estate .site-search-banner .hero-reference {
        gap: 8px;
        padding-top: 7px;
    }
    .layout-real_estate .site-search-banner .hero-reference a {
        min-height: 40px;
        padding-inline: 10px;
        font-size: 11px;
    }
    .layout-real_estate.public-page-home .site-search-banner > .site-container {
        gap: 20px;
    }
}

/* ================================================================
   19.3.0Y44 / 1.0.101.44 — Modos de busca alternáveis
   ================================================================ */
.hero-search-widget {
    width: 100%;
    margin-inline: auto;
}
.hero-search-widget .hero-search-shell {
    width: 100%;
}
[data-search-panel][hidden] {
    display: none !important;
}
.hero-search-mode-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 7px;
}
.hero-search-mode-actions button,
.hero-search-mode-actions a {
    min-height: 27px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border: 1px solid rgba(255,255,255,.76);
    border-radius: 4px;
    background: rgba(12,12,14,.58);
    color: #fff;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
}
.hero-search-mode-actions button:hover,
.hero-search-mode-actions a:hover,
.hero-search-mode-actions button:focus-visible,
.hero-search-mode-actions a:focus-visible {
    border-color: #fff;
    background: rgba(12,12,14,.82);
    outline: 2px solid rgba(255,255,255,.5);
    outline-offset: 2px;
}
.hero-code-search-form {
    display: grid;
    grid-template-columns: minmax(260px,420px) auto;
    justify-content: center;
    align-items: end;
    gap: 0;
    padding: 10px 14px 12px;
}
.hero-code-search-form label {
    display: block;
}
.hero-code-search-form input {
    width: 100%;
    min-height: 40px;
    padding: 0 12px;
    border: 1px solid #ddd7e2;
    border-radius: 3px 0 0 3px;
    background: #fff;
    color: var(--public-ink);
    font: inherit;
    font-size: 14px;
}
.hero-code-search-form .site-btn {
    min-height: 40px;
    padding-inline: 16px;
    border-radius: 0 4px 4px 0;
    box-shadow: none;
}

@media (min-width: 1101px) {
    .layout-real_estate .hero-search-widget {
        width: min(920px,100%);
    }
    .layout-real_estate .hero-search-widget .hero-search-shell {
        width: 100%;
    }
}

@media (max-width: 1100px) {
    .hero-search-widget {
        width: min(760px,100%);
    }
    .hero-code-search-form {
        grid-template-columns: minmax(0,1fr) auto;
        padding: 14px 17px 17px;
    }
}

@media (max-width: 620px) {
    .hero-search-mode-actions {
        flex-wrap: wrap;
    }
    .hero-code-search-form {
        grid-template-columns: minmax(0,1fr);
        gap: 9px;
    }
    .hero-code-search-form input,
    .hero-code-search-form .site-btn {
        border-radius: 10px;
    }
    .hero-code-search-form .site-btn {
        width: 100%;
    }
}

/* ================================================================
   19.3.0Y45 / 1.0.101.45 — Busca integrada em três modos
   ================================================================ */
.hero-search-mode-actions button.active {
    border-color: #fff;
    background: #fff;
    color: var(--public-primary);
    box-shadow: 0 3px 12px rgba(0,0,0,.16);
}
.hero-search-mode-actions button.active:hover,
.hero-search-mode-actions button.active:focus-visible {
    background: #fff;
    color: var(--public-primary);
}
.hero-advanced-search-form {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    align-items: end;
    gap: 8px;
    padding: 8px 14px 12px;
}
.hero-advanced-search-form label {
    min-width: 0;
    display: grid;
    gap: 3px;
}
.hero-advanced-search-form label > span {
    overflow: hidden;
    color: rgba(255,255,255,.72);
    font-size: 9px;
    font-weight: 850;
    line-height: 1.15;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.hero-advanced-search-form select,
.hero-advanced-search-form input {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    padding: 0 9px;
    border: 1px solid #ddd7e2;
    border-radius: 4px;
    background: #fff;
    color: var(--public-ink);
    font: inherit;
    font-size: 12px;
}
.hero-advanced-search-form > .site-btn {
    min-height: 38px;
    padding-inline: 12px;
    border-radius: 4px;
    box-shadow: none;
    font-size: 12px;
}

@media (min-width: 1101px) {
    .layout-real_estate .hero-search-widget[data-search-mode="quick"] .hero-search-shell,
    .layout-real_estate .hero-search-widget[data-search-mode="code"] .hero-search-shell {
        height: 100px;
        min-height: 100px;
    }
    .layout-real_estate .hero-search-widget[data-search-mode="code"] .hero-code-search-form {
        min-height: 62px;
        align-content: center;
    }
}

@media (max-width: 1100px) {
    .hero-advanced-search-form {
        grid-template-columns: repeat(3,minmax(0,1fr));
        padding: 12px 17px 17px;
    }
}

@media (max-width: 620px) {
    .hero-search-mode-actions {
        gap: 6px;
    }
    .hero-search-mode-actions button {
        flex: 1 1 auto;
        padding-inline: 8px;
    }
    .hero-advanced-search-form {
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: 8px;
    }
    .hero-advanced-search-form > .site-btn {
        grid-column: 1 / -1;
        width: 100%;
    }
}

/* ================================================================
   19.3.0Y54 / 1.0.101.54 — Busca avançada e barra móvel alinhadas
   ================================================================ */
.hero-advanced-search-form select,
.hero-advanced-search-form input {
    height: 38px;
    min-height: 38px;
    box-sizing: border-box;
    padding-block: 0;
}
.hero-advanced-price-range {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
.hero-advanced-price-range legend {
    width: 100%;
    margin: 0 0 3px;
    padding: 0;
    overflow: hidden;
    color: rgba(255,255,255,.72);
    font-size: 9px;
    font-weight: 850;
    line-height: 1.15;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}
.hero-advanced-price-range > div {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 5px;
}

@media (max-width: 1100px) {
    .layout-real_estate .site-utility {
        position: relative;
        z-index: 90;
        display: block !important;
        min-height: 34px;
    }
    .layout-real_estate .site-utility-inner {
        min-height: 34px;
    }
    .layout-real_estate .site-utility-actions {
        width: 100%;
        justify-content: flex-end;
        gap: 8px;
    }
    .layout-real_estate .site-utility .utility-phone,
    .layout-real_estate .site-utility .utility-email {
        display: inline-flex !important;
    }
}

@media (max-width: 620px) {
    .hero-advanced-search-form > label,
    .hero-advanced-price-range {
        align-self: end;
    }
    .hero-advanced-price-range {
        grid-column: 1 / -1;
    }
    .hero-advanced-search-form select,
    .hero-advanced-search-form input {
        width: 100%;
        height: 38px !important;
        min-height: 38px !important;
        border-radius: 6px;
        font-size: 12px;
        line-height: 38px;
    }
    .hero-advanced-search-form > .site-btn {
        height: 44px;
        min-height: 44px;
        padding-block: 0;
    }
    .layout-real_estate .site-utility-inner {
        width: calc(100% - 24px);
    }
    .layout-real_estate .site-utility-social,
    .layout-real_estate .site-utility-actions {
        gap: 6px !important;
    }
    .layout-real_estate .utility-favorites {
        min-width: 31px;
        min-height: 27px;
        justify-content: center;
        padding: 0 6px;
        border: 1px solid rgba(255,255,255,.14);
        border-radius: 999px;
        background: rgba(255,255,255,.07);
    }
    .layout-real_estate .utility-favorites > span {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }
}

/* ================================================================
   19.3.0Y55 / 1.0.101.55 — Canvas definitivo e invariável
   ================================================================ */
/* A altura do frame acompanha o conteúdo apenas para recorte. A escala e o
   eixo central da fotografia permanecem iguais na home e nas demais rotas. */
.layout-real_estate.has-public-hero-image .site-opening-background {
    background-position: center var(--opening-background-y, 0px) !important;
    background-size: auto var(--public-hero-canvas-height) !important;
}

@media (min-width: 1101px) {
    .layout-real_estate.has-public-hero-image {
        --public-hero-canvas-height: 508px;
    }
}

@media (max-width: 1100px) {
    .layout-real_estate.has-public-hero-image {
        --public-hero-canvas-height: 720px;
    }
}

/* ================================================================
   19.3.0Y54 / 1.0.101.54 — Identidade por área e contatos no cabeçalho
   ================================================================ */
.public-site {
    --public-ink: var(--tenant-heading, var(--tenant-secondary, #17131d));
    --public-muted: var(--tenant-muted, #72687b);
    color: var(--tenant-body-text, #39323f);
}
.site-utility {
    background: var(--tenant-utility-bg, var(--public-ink)) !important;
    color: var(--tenant-utility-text, #fff) !important;
}
.site-utility a { color: var(--tenant-utility-text, #fff) !important; }
.site-header {
    background-color: var(--tenant-header-bg, #fff) !important;
    color: var(--tenant-header-text, #17131d);
}
.site-nav {
    background-color: var(--tenant-nav-bg, var(--public-primary)) !important;
    color: var(--tenant-nav-text, #fff);
}
.site-nav > a,
.site-nav-group > a,
.site-nav .site-nav-contact { color: var(--tenant-nav-text, #fff) !important; }
.site-search-banner .hero-search-shell,
.site-hero-compact .hero-search-shell,
.hero-search-widget .hero-search-shell {
    background: color-mix(in srgb, var(--tenant-search-bg, #17131d) var(--tenant-search-opacity, 84%), transparent) !important;
    color: var(--tenant-search-text, #fff);
}
.hero-search-head,
.hero-search-head strong,
.hero-search-head span,
.hero-search-form label > span,
.hero-advanced-search-form label > span,
.hero-advanced-price-range legend { color: var(--tenant-search-text, #fff); }
.site-footer {
    background: var(--tenant-footer-bg, var(--public-ink)) !important;
    color: var(--tenant-footer-text, #fff) !important;
}
.site-footer strong { color: var(--tenant-footer-text, #fff) !important; }
.site-footer p,
.site-footer span,
.site-footer a { color: color-mix(in srgb, var(--tenant-footer-text, #fff), transparent 24%) !important; }
.site-footer a:hover { color: var(--tenant-footer-text, #fff) !important; }

.site-utility-social-link {
    border-color: rgba(255,255,255,.38) !important;
    color: #fff !important;
    opacity: 1;
}
.site-utility-social-link.social-instagram {
    background: radial-gradient(circle at 32% 105%,#feda75 0 18%,#fa7e1e 32%,#d62976 52%,#962fbf 72%,#4f5bd5 100%) !important;
}
.site-utility-social-link.social-facebook { background: #1877f2 !important; }
.site-utility-social-link.social-linkedin { background: #0a66c2 !important; }
.site-utility-social-link:hover,
.site-utility-social-link:focus-visible {
    filter: brightness(1.08) saturate(1.08);
    transform: translateY(-1px) scale(1.04);
}
.site-utility-social-link svg { color: #fff !important; }

@media (min-width: 1101px) {
    .layout-real_estate .site-header-institutional {
        min-width: 0;
        align-content: center;
    }
    .layout-real_estate .site-header-contact-items {
        min-width: 0;
        gap: clamp(20px,2.4vw,38px);
    }
    .layout-real_estate .site-header-contact-item {
        min-width: clamp(180px,16vw,230px);
        max-width: 270px;
        color: var(--tenant-header-text, #17131d);
    }
    .layout-real_estate .site-header-contact-item small {
        color: color-mix(in srgb, var(--tenant-header-text, #17131d), transparent 38%);
    }
    .layout-real_estate .site-header-contact-item strong {
        max-width: 205px;
        overflow: hidden;
        color: var(--tenant-header-text, #17131d);
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .layout-real_estate.has-public-hero-image .site-header-inner::before {
        background: color-mix(in srgb, var(--tenant-header-bg, #fff) var(--tenant-header-opacity, 82%), transparent) !important;
    }
    .layout-real_estate.has-public-hero-image .site-nav {
        background: color-mix(in srgb, var(--tenant-nav-bg, var(--public-primary)) var(--tenant-nav-opacity, 70%), transparent) !important;
    }
}

@media (max-width: 1100px) {
    .layout-real_estate.has-public-hero-image .site-header {
        background: color-mix(in srgb, var(--tenant-header-bg, #fff) var(--tenant-header-opacity, 82%), transparent) !important;
    }
    .layout-real_estate .site-nav {
        background: var(--tenant-header-bg, #fff) !important;
        color: var(--tenant-header-text, #17131d);
    }
    .layout-real_estate .site-nav > a,
    .layout-real_estate .site-nav-group > a,
    .layout-real_estate .site-nav .site-nav-contact {
        color: var(--tenant-header-text, #17131d) !important;
    }
}
