/* =========================================================
   NOVA VITA — Site público (estrutura e páginas)
   ========================================================= */

/* ---------- Layout base ---------- */
.container {
    width: min(100% - 2.5rem, var(--container));
    margin-inline: auto;
}

.container--wide { width: min(100% - 2.5rem, var(--container-wide)); }
.container--narrow { width: min(100% - 2.5rem, var(--container-narrow)); }
.container--reading { width: min(100% - 2.5rem, var(--container-reading)); }

.section { padding: var(--section-lg) 0; }
.section--xl { padding: var(--section-xl) 0; }
.section--md { padding: var(--section-md) 0; }
.section--sm { padding: var(--section-sm) 0; }
.section--flush { padding: 0; }
.section--alt { background: var(--color-background-alt); }
.section--soft { background: #eeece5; }
.section--dark {
    background: var(--color-primary-dark);
    color: rgba(247,245,239,.92);
}

.display {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(2.75rem, 5vw, 4.75rem);
    line-height: 1.02;
    letter-spacing: .01em;
    max-width: 18ch;
}

.display-sm {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(2rem, 3.4vw, 3.4rem);
    line-height: 1.12;
}

.lead {
    color: var(--color-text-soft);
    font-size: 1.05rem;
    line-height: 1.7;
    max-width: 38rem;
}

.reading { max-width: var(--container-reading); }

.eyebrow {
    font-size: .72rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: 1rem;
}

.section--dark .eyebrow { color: var(--color-accent); }

.text-link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: .78rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-top: 1.25rem;
}

.text-link .arrow,
.property-card__arrow {
    display: inline-block;
    transition: transform .3s var(--ease);
}

.text-link:hover .arrow,
.property-card:hover .property-card__arrow {
    transform: translateX(4px);
}

.section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1rem;
    margin-bottom: 2rem;
}

.breadcrumbs {
    font-size: .82rem;
    color: var(--color-text-soft);
    margin-bottom: 1.4rem;
}

.breadcrumbs a:hover { color: var(--color-primary); }

/* ---------- Header ---------- */
.site-header {
    position: fixed;
    inset: 0 0 auto;
    z-index: 100;
    height: var(--header-h);
    display: flex;
    align-items: center;
    transition: background .35s var(--ease), box-shadow .35s var(--ease), color .35s var(--ease);
    color: #fff;
}

.site-header.is-scrolled,
.site-header.is-solid {
    background: rgba(247,245,239,.96);
    color: var(--color-text);
    box-shadow: 0 8px 30px rgba(0,0,0,.05);
    backdrop-filter: blur(8px);
}

.site-header__inner {
    width: min(100% - 2.5rem, var(--container));
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(180px, 260px) 1fr minmax(140px, 180px);
    align-items: center;
    min-height: var(--header-h);
    gap: 1rem;
}

.brand {
    justify-self: start;
    font-family: var(--font-display);
    font-size: 1.45rem;
    letter-spacing: .08em;
    font-weight: 500;
    line-height: 1;
}

.brand img {
    height: 82px;
    width: auto;
    max-width: 360px;
    object-fit: contain;
    display: block;
}

.site-nav {
    justify-self: center;
    display: flex;
    align-items: center;
    gap: 1.35rem;
}

.site-nav a {
    position: relative;
    font-size: .78rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    opacity: .92;
    white-space: nowrap;
}

.site-nav a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -4px;
    width: 0;
    height: 1px;
    background: currentColor;
    transition: width .3s var(--ease);
}

.site-nav a:hover::after,
.site-nav a.is-active::after { width: 100%; }

.header-cta {
    justify-self: end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid currentColor;
    border-radius: 6px;
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}

.header-cta:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

.nav-toggle {
    display: none;
    justify-self: end;
    width: 42px;
    height: 42px;
    place-items: center;
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
}

.mobile-drawer {
    position: fixed;
    inset: 0;
    z-index: 120;
    pointer-events: none;
}

.mobile-drawer__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(37,37,31,.45);
    opacity: 0;
    transition: opacity .3s var(--ease);
}

.mobile-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    width: min(86vw, 360px);
    height: 100%;
    background: var(--color-background);
    color: var(--color-text);
    padding: 1.5rem;
    transform: translateX(100%);
    transition: transform .35s var(--ease);
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.mobile-drawer__top {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.mobile-drawer.is-open { pointer-events: auto; }
.mobile-drawer.is-open .mobile-drawer__backdrop { opacity: 1; }
.mobile-drawer.is-open .mobile-drawer__panel { transform: none; }

.mobile-drawer nav {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.mobile-drawer nav a {
    font-family: var(--font-display);
    font-size: 1.7rem;
}

/* ---------- Heroes ---------- */
.home-hero,
.page-hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    color: #fff;
    overflow: hidden;
}

.home-hero { min-height: 90vh; }
.page-hero--image,
.page-hero--properties { min-height: 58vh; }
.page-hero--editorial { min-height: 62vh; }
.page-hero--minimal { min-height: 42vh; }

/* A tag do banner fica abaixo da logo do header, em todas as páginas com banner. */
.home-hero,
.page-hero:not(.page-hero--split) {
    padding-top: calc(var(--header-h) + 3.25rem);
}

.hero-slider {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero-slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1.4s var(--ease);
}

.hero-slide.is-active {
    opacity: 1;
    z-index: 1;
}

.hero-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1);
}

.hero-slide.is-zooming img {
    animation: heroZoomIn 7s linear forwards;
}

@keyframes heroZoomIn {
    from { transform: scale(1); }
    to { transform: scale(1.08); }
}

.hero-slide-copy { display: none; }

.hero-slide-copy.is-active {
    display: block;
    animation: heroCopyIn .8s var(--ease);
}

@keyframes heroCopyIn {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: none; }
}

.hero-subtitle {
    margin-top: .85rem;
    font-size: 1.05rem;
    letter-spacing: .04em;
    color: rgba(255,255,255,.88);
}

.hero-dots {
    position: absolute;
    left: 50%;
    bottom: 4.2rem;
    z-index: 3;
    transform: translateX(-50%);
    display: flex;
    gap: .45rem;
}

.hero-dots button {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: 0;
    padding: 0;
    background: rgba(255,255,255,.35);
    cursor: pointer;
}

.hero-dots button.is-active {
    background: #fff;
    transform: scale(1.2);
}

.manifesto-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .85rem;
    margin-top: 1.75rem;
    overflow: visible;
    padding-bottom: .5rem;
}

.manifesto-gallery__item {
    margin: 0;
    padding: 0;
    border: none;
    appearance: none;
    aspect-ratio: 3 / 4;
    overflow: visible;
    background: transparent;
    cursor: pointer;
    position: relative;
    display: block;
    width: 100%;
    text-align: left;
    transition: transform .55s var(--ease);
}

.manifesto-gallery__frame {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: 2px;
    position: relative;
    background: var(--color-background-alt);
    transition:
        transform .55s var(--ease),
        box-shadow .55s var(--ease);
    box-shadow: 0 4px 14px rgba(20, 24, 19, .08);
}

.manifesto-gallery__frame::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 2px solid transparent;
    border-radius: 2px;
    transition: border-color .35s var(--ease);
    pointer-events: none;
    z-index: 2;
}

.manifesto-gallery__item.is-active .manifesto-gallery__frame::after {
    border-color: var(--color-accent, #b4a27b);
}

.manifesto-gallery__item:hover {
    z-index: 3;
}

.manifesto-gallery__item:hover .manifesto-gallery__frame {
    transform: translateY(-6px) scale(1.04);
    box-shadow: 0 26px 52px rgba(20, 24, 19, .28);
}

.manifesto-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .65s var(--ease);
}

.manifesto-gallery__item:hover img { transform: scale(1.12); }

.manifesto-feature {
    position: relative;
}

.manifesto-feature__slides {
    position: absolute;
    inset: 0;
}

.manifesto-feature__slide {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    visibility: hidden;
    transition:
        opacity .85s var(--ease),
        visibility .85s var(--ease);
}

.manifesto-feature__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.08);
    transition: transform 1.15s var(--ease);
}

.manifesto-feature__slide.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 1;
}

.manifesto-feature__slide.is-active img {
    transform: scale(1);
}

.brand-logos {
    display: grid;
    align-items: center;
    justify-items: start;
}
.brand-logo-header,
.brand img.brand-logo-header,
.brand-logos .brand-logo-header {
    height: 82px;
    width: auto;
    max-width: 360px;
    object-fit: contain;
    display: block;
}
.brand-logos .brand-logo-header {
    grid-area: 1 / 1;
    transition: opacity .4s ease;
}
.brand-logos .brand-logo--solid {
    opacity: 0;
}
.site-header.is-scrolled .brand-logos .brand-logo--transparent,
.site-header.is-solid .brand-logos .brand-logo--transparent {
    opacity: 0;
}
.site-header.is-scrolled .brand-logos .brand-logo--solid,
.site-header.is-solid .brand-logos .brand-logo--solid {
    opacity: 1;
}

.brand-logo-footer {
    height: auto;
    width: auto;
    max-height: 88px;
    max-width: 240px;
    object-fit: contain;
    display: block;
    margin-bottom: 1rem;
}

.mobile-drawer__top .brand-logo-header {
    height: 56px;
    max-width: 260px;
}

@media (prefers-reduced-motion: reduce) {
    .hero-slide.is-zooming img {
        animation: none !important;
        transform: none !important;
    }
    .hero-slide-copy.is-active {
        animation: none !important;
    }
    .brand-logos .brand-logo-header {
        transition: none;
    }
}

.page-hero__media,
.hero-media {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.page-hero__media img,
.hero-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.page-hero__media video,
.page-hero__media iframe {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border: 0;
    pointer-events: none;
}

.page-hero--video .page-hero__media iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100vw;
    height: 56.25vw;
    min-height: 100%;
    min-width: 177.77vh;
    transform: translate(-50%, -50%);
}

.page-hero:not(.page-hero--split) .hero-subtitle {
    color: rgba(255, 255, 255, .92);
    font-size: clamp(1rem, 1.5vw, 1.2rem);
    letter-spacing: .06em;
    text-transform: uppercase;
    margin-top: 1rem;
    max-width: 36rem;
    line-height: 1.45;
    text-shadow: 0 1px 12px rgba(0, 0, 0, .28);
}

.page-hero:not(.page-hero--split) .hero-actions .btn-outline {
    color: #fff;
    border-color: rgba(255, 255, 255, .72);
}

.page-hero:not(.page-hero--split) .hero-actions .btn-outline:hover {
    background: rgba(255, 255, 255, .12);
}

#intro, #lifestyle, #day, #location, #structure, #for_whom, #vision, #properties, #faq, #cta {
    scroll-margin-top: calc(var(--header-h, 72px) + .75rem);
}

.page-hero__overlay,
.hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(20,24,19,.58) 0%, rgba(20,24,19,.24) 48%, rgba(20,24,19,.08) 100%),
        linear-gradient(0deg, rgba(20,24,19,.42) 0%, transparent 55%);
}

.page-hero:not(.page-hero--split) .page-hero__overlay {
    background:
        linear-gradient(180deg, rgba(20,24,19,.45) 0%, rgba(20,24,19,.28) 42%, rgba(20,24,19,.68) 100%),
        linear-gradient(90deg, rgba(20,24,19,.42) 0%, rgba(20,24,19,.18) 55%, rgba(20,24,19,.22) 100%);
}

.page-hero__content,
.hero-content {
    position: relative;
    z-index: 2;
    padding-bottom: 3.5rem;
}

/* Banner padrão (Sobre / Venda / Imóveis / Alphavita / Contato):
   mesma largura do .container — alinha com o título da seção abaixo.
   Home e Michelle (split) ficam de fora. */
.page-hero:not(.page-hero--split) .page-hero__content {
    padding-bottom: 3.25rem;
    max-width: none;
}

.page-hero:not(.page-hero--split) .display {
    font-size: clamp(2.35rem, 4.2vw, 3.65rem);
    max-width: min(28ch, 100%);
    line-height: 1.04;
    letter-spacing: .005em;
    color: #fff;
    text-shadow: 0 1px 18px rgba(0, 0, 0, .22);
}

.page-hero:not(.page-hero--split) .lead {
    color: rgba(255, 255, 255, .92);
    font-size: 1.05rem;
    line-height: 1.65;
    max-width: min(40rem, 100%);
    margin-top: 1rem;
    text-shadow: 0 1px 12px rgba(0, 0, 0, .28);
}

.page-hero:not(.page-hero--split) .eyebrow {
    color: rgba(180, 162, 123, .95);
}

.home-hero .hero-content {
    width: min(100% - 2.5rem, var(--container));
    margin: 0 auto;
    padding-bottom: 5.5rem;
    padding-left: clamp(0px, 2vw, 1.5rem);
}

.home-hero .display {
    max-width: min(1050px, 100%);
    font-size: clamp(2.75rem, 5vw, 4.75rem);
}

.home-hero .hero-lead {
    color: rgba(255,255,255,.85);
    margin-top: 1.2rem;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 2rem;
}

.hero-actions--center { justify-content: center; }

.scroll-indicator {
    position: absolute;
    left: 50%;
    bottom: 1.4rem;
    z-index: 2;
    transform: translateX(-50%);
    width: 1px;
    height: 42px;
    background: rgba(255,255,255,.45);
}

.scroll-indicator span {
    position: absolute;
    inset: 0 auto auto 50%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #fff;
    transform: translateX(-50%);
    animation: scrollDot 1.8s infinite;
}

@keyframes scrollDot {
    0% { top: 0; opacity: 1; }
    100% { top: 36px; opacity: 0; }
}

.page-hero--split {
    min-height: auto;
    color: var(--color-text);
    background: var(--color-background);
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: stretch;
}

.page-hero--split .page-hero__media {
    position: relative;
    min-height: 78vh;
    inset: auto;
}

.page-hero--split .page-hero__overlay { display: none; }

.page-hero--split .page-hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: calc(var(--header-h) + 3.25rem) 8% 3rem;
    color: var(--color-text);
}

.page-hero--split .lead { color: var(--color-text-soft); }

/* ---------- Editorial media / grids ---------- */
.manifesto-grid,
.editorial-grid {
    display: grid;
    grid-template-columns: .9fr .85fr;
    gap: 4rem;
    align-items: center;
}

.editorial-media {
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: var(--color-background-alt);
}

.editorial-media--wide { aspect-ratio: 16 / 10; }
.editorial-media--landscape { aspect-ratio: 4 / 3; }

.editorial-media img,
.editorial-reveal img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.manifesto-grid .editorial-media {
    aspect-ratio: 4 / 5;
    transform: translateY(18px);
}

.manifesto-subtitle {
    margin: 1rem 0;
    color: var(--color-accent);
    letter-spacing: .04em;
}

.section-subtitle {
    margin: 1rem 0 0;
    max-width: 36rem;
    font-family: var(--font-display, "Cormorant Garamond", Georgia, serif);
    font-size: clamp(1.2rem, 2.1vw, 1.55rem);
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: .01em;
    color: var(--color-text);
}

.section-subtitle--on-dark {
    color: rgba(247, 245, 239, .92);
}

.section-body {
    margin-top: 1rem;
    max-width: 38rem;
    font-size: 1.02rem;
    line-height: 1.7;
    color: var(--color-text-soft, #5c5d56);
}

.section-body--on-dark {
    color: rgba(247, 245, 239, .78);
}

.editorial-grid .hero-actions,
.property-living .hero-actions,
.container--reading .hero-actions,
.container--narrow .hero-actions,
.section--dark .hero-actions,
.life-pillars + .hero-actions {
    margin-top: 1.75rem;
}

.home-cta-btn { margin-top: 1.5rem; }

/* ---------- Property cards ---------- */
.property-card {
    display: block;
    min-width: 0;
    background: transparent;
    overflow: visible;
}

.property-card__media {
    position: relative;
    overflow: hidden;
    background: var(--color-background-alt);
}

.property-card--home .property-card__media { aspect-ratio: 1.28 / 1; }
.property-card--listing .property-card__media { aspect-ratio: 1.2 / 1; }
.property-card--similar .property-card__media,
.property-card--compact .property-card__media { aspect-ratio: 4 / 3; }

.property-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .7s var(--ease);
}

.property-card:hover .property-card__media img { transform: scale(1.025); }

.property-card__tags {
    position: absolute;
    top: .85rem;
    left: .85rem;
    right: .85rem;
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    align-items: flex-start;
    pointer-events: none;
}

.property-card__purpose {
    display: inline-block;
    background: rgba(20, 24, 19, .58);
    color: rgba(247, 245, 239, .95);
    font-size: .62rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: .32rem .62rem;
    border-radius: 6px;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.property-card__purpose--rent {
    background: rgba(79, 83, 53, .72);
}

.property-card__badge {
    background: rgba(247, 245, 239, .94);
    color: var(--color-primary-dark);
    font-size: .62rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    padding: .32rem .62rem;
    border-radius: 6px;
}

.property-card__body { padding: 1.15rem 0 0; }

.property-card__meta {
    color: var(--color-text-soft);
    font-size: .78rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: .55rem;
}

.property-card__title {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 1.9vw, 1.85rem);
    line-height: 1.05;
    margin-bottom: .85rem;
    font-weight: 500;
    overflow-wrap: normal;
    transition: color .25s var(--ease);
}

.property-card:hover .property-card__title { color: var(--color-primary); }

.property-card__specs {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1.15rem;
    color: var(--color-text-soft);
    font-size: .82rem;
    margin-bottom: .95rem;
}

.property-card__price {
    font-size: 1.05rem;
    font-weight: 500;
    letter-spacing: .02em;
}

.property-card__cta {
    margin-top: .85rem;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .74rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-primary);
}

.property-results-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 48px 36px;
}

.property-results-grid--home {
    gap: 42px 38px;
}

.property-results-grid--home:has(> :only-child) {
    grid-template-columns: minmax(0, 420px);
}

.property-results-grid--home:has(> :nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.property-results-grid--similar {
    gap: 36px 28px;
}

/* ---------- Diff list ---------- */
.diff-list {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
}

/* Venda — O que o proprietário recebe (anexo 2): 2 colunas */
.diff-list--receive {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(2.25rem, 4vw, 3.25rem) clamp(2.5rem, 5vw, 4.5rem);
    margin-top: clamp(2rem, 4vw, 3rem);
}

.diff-intro {
    margin-top: 1.1rem;
    max-width: 42rem;
}

.diff-item {
    padding-top: 0;
    border-top: 0;
    transition: transform .3s var(--ease);
}

.diff-item:hover {
    transform: translateY(-3px);
}

.diff-item__head {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: 1rem;
}

.diff-item__num {
    flex: 0 0 auto;
    font-size: .75rem;
    letter-spacing: .16em;
    color: var(--color-accent);
    margin-bottom: 0;
    transition: color .3s var(--ease);
}

.diff-item__line {
    flex: 1 1 auto;
    height: 1px;
    background: var(--color-border);
    transition: background .3s var(--ease);
}

.diff-item:hover .diff-item__num { color: var(--color-primary); }
.diff-item:hover .diff-item__line { background: var(--color-primary); }

.diff-item h3 {
    font-family: var(--font-display);
    font-size: 1.6rem;
    font-weight: 500;
    margin-bottom: .6rem;
}

.diff-list--receive .diff-item h3 {
    font-size: clamp(1.45rem, 2.2vw, 1.85rem);
    font-weight: 400;
    margin-bottom: .55rem;
}

.diff-item p {
    color: var(--color-text-soft);
    font-size: .92rem;
}

.diff-list--receive .diff-item p {
    max-width: 34rem;
    font-size: .95rem;
    line-height: 1.65;
}

/* ---------- Home Alphavita ---------- */
.alphavita-feature {
    position: relative;
    min-height: 640px;
    overflow: hidden;
    background: var(--color-background-alt);
}

.alphavita-feature__media {
    position: absolute;
    inset: 0;
}

.alphavita-feature__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.alphavita-feature__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(20,24,19,.15) 0%, rgba(20,24,19,.35) 55%, rgba(20,24,19,.55) 100%);
}

.alphavita-feature__panel {
    position: relative;
    z-index: 2;
    margin-left: auto;
    width: min(100%, 460px);
    min-height: 640px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 5vw, 3.5rem);
    background: rgba(247,245,239,.94);
    backdrop-filter: blur(6px);
}

.alphavita-feature__panel .section-num {
    font-size: .72rem;
    letter-spacing: .16em;
    color: var(--color-accent);
    margin-bottom: 1rem;
}

/* legacy class kept as alias for other pages */
.alphavita-band {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 0;
    background: var(--color-background);
    overflow: hidden;
}

.alphavita-band__media {
    min-height: 420px;
    overflow: hidden;
    background: var(--color-background-alt);
}

.alphavita-band__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.alphavita-band__panel {
    padding: clamp(2rem, 5vw, 4rem);
    background: var(--color-background-alt);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.alphavita-band__panel .section-num {
    font-size: .72rem;
    letter-spacing: .16em;
    color: var(--color-accent);
    margin-bottom: 1rem;
}

/* ---------- Home Michelle ---------- */
.michelle-home {
    display: grid;
    grid-template-columns: .85fr 1fr;
    gap: 3.5rem;
    align-items: center;
}

.michelle-home__media {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--color-background-alt);
}

.michelle-home__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.michelle-home__line {
    width: 48px;
    height: 1px;
    background: var(--color-accent);
    margin: 1.2rem 0;
}

.michelle-home__quote {
    margin: 0 0 1rem;
    font-family: var(--font-display);
    font-size: 1.4rem;
}

/* ---------- Uma nova fase ---------- */
.phase-layout {
    display: grid;
    grid-template-columns: minmax(240px, 0.42fr) 1fr;
    gap: clamp(1.25rem, 2.5vw, 2.75rem);
    align-items: start;
}

.phase-layout__head {
    padding-top: .15rem;
}

.phase-layout__head .display-sm {
    max-width: 14ch;
    line-height: 1.08;
}

.phase-topics {
    list-style: none;
    margin: 1.35rem 0 0;
    padding: 0;
    display: grid;
    gap: .65rem;
}

.phase-topics li {
    position: relative;
    padding-left: 1.1rem;
    font-size: .95rem;
    line-height: 1.5;
    color: var(--color-text-soft);
}

.phase-topics li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .62em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-accent, #b4a27b);
}

.phase-grid {
    display: grid;
    gap: 16px;
    min-width: 0;
}

.phase-grid__row {
    display: grid;
    gap: 16px;
}

.phase-grid__row--a { grid-template-columns: 1.1fr .9fr; }
.phase-grid__row--b { grid-template-columns: .9fr 1.1fr; }

.phase-grid__item {
    position: relative;
    overflow: hidden;
    background: var(--color-background-alt);
    min-height: 300px;
}

.phase-grid__row--a .phase-grid__item { min-height: 360px; }

.phase-grid__item img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .7s var(--ease);
}

.phase-grid__item:hover img { transform: scale(1.03); }

.phase-grid__item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 35%, rgba(20,24,19,.62) 100%);
    z-index: 1;
}

.phase-grid__caption {
    position: absolute;
    left: 1.25rem;
    right: 1.25rem;
    bottom: 1.25rem;
    z-index: 2;
    color: #fff;
}

.phase-grid__caption strong {
    display: block;
    font-family: var(--font-display);
    font-size: 1.55rem;
    font-weight: 500;
    margin-bottom: .35rem;
}

.phase-grid__caption span {
    display: block;
    font-size: .9rem;
    opacity: .88;
    line-height: 1.45;
}

/* ---------- CTA / Footer ---------- */
.cta-band {
    position: relative;
    z-index: 1;
    min-height: 460px;
    display: grid;
    place-items: center;
    text-align: center;
    color: #fff;
    overflow: hidden;
}

.cta-band__content {
    position: relative;
    z-index: 2;
    padding: 4rem 1.25rem;
    max-width: 900px;
}

.cta-band__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.cta-band--solid {
    background-color: #686e50;
}

.cta-band--solid .hero-media,
.cta-band--solid .cta-band__overlay {
    display: none;
}

.cta-band--solid {
    color: #292a24;
}

.cta-band--solid .btn-outline {
    border-color: rgba(41, 42, 36, 0.45);
    color: #292a24;
    background: transparent;
}

.cta-band--solid .btn-outline:hover {
    background: rgba(41, 42, 36, 0.06);
    color: #292a24;
}

.cta-band__subtitle {
    margin: .75rem auto 0;
    max-width: 32rem;
    opacity: .92;
}

.cta-band__text {
    margin: 1rem auto 1.8rem;
    max-width: 28rem;
    opacity: .9;
}

.site-footer {
    position: relative;
    z-index: 1;
    background: var(--color-primary-dark);
    color: rgba(247,245,239,.86);
    padding: 4.5rem 0 2rem;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
    gap: 2rem;
    margin-bottom: 3rem;
}

.site-footer a:hover { color: #fff; }

.site-footer h4 {
    font-size: .75rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    margin-bottom: 1rem;
    color: var(--color-accent);
}

.site-footer .brand {
    color: #fff;
    margin-bottom: 1rem;
}

.footer-bottom {
    border-top: 1px solid rgba(255,255,255,.12);
    padding-top: 1.25rem;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    font-size: .82rem;
    color: rgba(247,245,239,.65);
}

/* ---------- Editorial forms ---------- */
.editorial-form { max-width: 820px; }
.editorial-form__header { margin-bottom: 2rem; }
.editorial-form__header h2,
.editorial-form__header .display-sm { margin-bottom: .6rem; }

.editorial-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.4rem 1.75rem;
}

.editorial-field {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.editorial-field--full { grid-column: 1 / -1; }

.editorial-field label {
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text-soft);
}

.editorial-field input,
.editorial-field select,
.editorial-field textarea,
.editorial-input {
    width: 100%;
    min-height: 50px;
    background: transparent;
    border: 0;
    border-bottom: 1px solid #cdc9bd;
    border-radius: 0;
    padding: 10px 0;
    color: var(--color-text);
    font: inherit;
    appearance: none;
    box-shadow: none;
}

.editorial-field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%236f7067' stroke-width='1.4' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0 center;
    padding-right: 1.4rem;
}

.editorial-field textarea {
    min-height: 110px;
    resize: vertical;
}

.editorial-field input:focus,
.editorial-field select:focus,
.editorial-field textarea:focus,
.editorial-input:focus {
    outline: none;
    border-bottom-color: var(--color-primary);
    box-shadow: none;
}

.editorial-form--soft {
    background: #eeece5;
    padding: clamp(1.75rem, 4vw, 3rem);
}

.editorial-options {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

.editorial-options label {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-height: 36px;
    padding: 0 .85rem;
    border: 1px solid var(--color-border);
    font-size: .72rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    color: var(--color-text-soft);
    transition: .2s var(--ease);
}

.editorial-options input { display: none; }

.editorial-options label:has(input:checked),
.editorial-options label.is-active {
    background: rgba(79,83,53,.1);
    border-color: var(--color-primary);
    color: var(--color-primary-dark);
}

.editorial-field--motivo {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}

.editorial-field--motivo > legend {
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text-soft);
    margin-bottom: .75rem;
    padding: 0;
}

.editorial-options--stack {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 1.5rem;
    row-gap: .85rem;
    align-items: start;
    width: 100%;
}

.editorial-options--stack label {
    min-height: 0;
    width: auto;
    max-width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    text-transform: none;
    letter-spacing: 0;
    font-size: .95rem;
    line-height: 1.35;
    color: var(--color-text);
    gap: .65rem;
    align-items: center;
}

.editorial-field .editorial-options--stack input[type="radio"],
.editorial-options--stack input[type="radio"] {
    display: inline-block;
    box-sizing: border-box;
    appearance: none;
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    min-width: 16px;
    min-height: 16px;
    max-width: 16px;
    max-height: 16px;
    margin: 0;
    padding: 0;
    border: 1px solid #515640;
    border-bottom: 1px solid #515640;
    border-radius: 50%;
    background: transparent;
    position: relative;
    flex-shrink: 0;
    cursor: pointer;
    box-shadow: none;
}

.editorial-options--stack input[type="radio"]:checked::after {
    content: "";
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: #596047;
}

.editorial-options--stack label:has(input:checked),
.editorial-options--stack label.is-active {
    background: transparent;
    border-color: transparent;
    color: var(--color-text);
}

@media (max-width: 600px) {
    .editorial-options--stack {
        grid-template-columns: 1fr;
    }
}

.editorial-form__actions { margin-top: 1.75rem; }

/* ---------- Properties search ---------- */
.property-search {
    margin-top: -2.4rem;
    position: relative;
    z-index: 5;
}

.property-search__panel {
    background: #fff;
    border: 1px solid rgba(37, 37, 31, .1);
    box-shadow: 0 18px 48px rgba(20, 24, 19, .08);
    padding: 1.15rem 1.2rem 1.2rem;
    border-radius: 6px;
}

.property-search__main {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .75rem;
    align-items: center;
    background: var(--color-background-alt, #f7f5ef);
    border: 1px solid rgba(37, 37, 31, .08);
    padding: .55rem .55rem .55rem 1rem;
    border-radius: 6px;
}

.property-search__main input {
    border: 0;
    background: transparent;
    min-height: 44px;
    font-size: 1rem;
    width: 100%;
    color: var(--color-text);
}

.property-search__main input::placeholder {
    color: rgba(37, 37, 31, .45);
}

.property-search__main input:focus { outline: none; }

.property-search__chips {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
    gap: .65rem;
    margin-top: 1rem;
    align-items: stretch;
}

.property-search__field {
    min-width: 0;
}

.property-search__chips select,
.property-search__chips input,
.property-search__more select,
.property-search__more input,
.property-search__field select,
.property-search__field input {
    width: 100%;
    min-height: 46px;
    border: 1px solid rgba(37, 37, 31, .12);
    background: #fff;
    padding: 0 .9rem;
    font-size: .84rem;
    color: var(--color-text);
    appearance: none;
    -webkit-appearance: none;
    border-radius: 6px;
    transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}

.property-search__field select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23666' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right .85rem center;
    padding-right: 2.1rem;
    cursor: pointer;
}

.property-search__chips select:focus,
.property-search__chips input:focus,
.property-search__more input:focus,
.property-search__field select:focus,
.property-search__field input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(79, 83, 53, .1);
}

.property-search__more-btn {
    min-height: 46px;
    padding: 0 1rem;
    border: 1px solid rgba(37, 37, 31, .12);
    background: transparent;
    font-size: .7rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text-soft);
    cursor: pointer;
    white-space: nowrap;
    border-radius: 6px;
    transition: color .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease);
}

.property-search__more-btn:hover,
.property-search__more-btn[aria-expanded="true"] {
    color: var(--color-primary-dark);
    border-color: var(--color-primary);
    background: rgba(79, 83, 53, .04);
}

.property-search__more {
    display: none;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(37, 37, 31, .08);
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .75rem;
    align-items: center;
}

.property-search__more.is-open { display: grid; }

.property-search__mobile-actions {
    display: none;
    gap: .6rem;
    margin-top: 1rem;
}

.property-search__mobile-actions select {
    min-height: 46px;
    border: 1px solid rgba(37, 37, 31, .12);
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23666' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .85rem center;
    padding: 0 2.1rem 0 .9rem;
    font-size: .84rem;
    appearance: none;
    -webkit-appearance: none;
    border-radius: 6px;
}

.filters-drawer {
    position: fixed;
    inset: 0;
    z-index: 130;
    pointer-events: none;
}

.filters-drawer.is-open { pointer-events: auto; }

.filters-drawer__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(37,37,31,.4);
    opacity: 0;
    transition: opacity .3s var(--ease);
}

.filters-drawer.is-open .filters-drawer__backdrop { opacity: 1; }

.filters-drawer__panel {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    max-height: 86vh;
    overflow: auto;
    background: var(--color-background);
    padding: 1.25rem 1.25rem 1.75rem;
    transform: translateY(105%);
    transition: transform .35s var(--ease);
    border-radius: 16px 16px 0 0;
}

.filters-drawer.is-open .filters-drawer__panel { transform: none; }

.results-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1.5rem;
    margin: 2.5rem 0 1.75rem;
}

.results-head h2 {
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 500;
    margin: 0 0 .35rem;
}

.results-head__count {
    margin: 0;
    color: var(--color-text-soft);
    font-size: .92rem;
}

.results-sort {
    display: flex;
    align-items: center;
    gap: .65rem;
    flex-shrink: 0;
}

.results-sort__label {
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-text-soft);
    white-space: nowrap;
}

.results-sort__control {
    position: relative;
    min-width: 180px;
}

.results-sort__control select {
    width: 100%;
    min-height: 44px;
    border: 1px solid rgba(37, 37, 31, .14);
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23666' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right .9rem center;
    padding: 0 2.2rem 0 1rem;
    font-size: .84rem;
    color: var(--color-text);
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    border-radius: 6px;
    transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}

.results-sort__control select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(79, 83, 53, .1);
}

.curadoria-band {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 2.5rem;
    align-items: center;
    margin: 4rem 0;
    padding: 2.5rem 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.curadoria-band__media {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--color-background-alt);
    border-radius: 6px;
}

.curadoria-band__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.find-duo {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin: 3.5rem 0 1rem;
}

.find-card {
    position: relative;
    min-height: 420px;
    overflow: hidden;
    border-radius: 6px;
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 1.75rem;
    isolation: isolate;
}

.find-card__media,
.find-card__shade {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.find-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .8s var(--ease);
}

.find-card:hover .find-card__media img {
    transform: scale(1.04);
}

.find-card__shade {
    background:
        linear-gradient(180deg, rgba(20,24,19,.72) 0%, rgba(20,24,19,.48) 38%, rgba(20,24,19,.78) 100%),
        linear-gradient(90deg, rgba(20,24,19,.35) 0%, transparent 70%);
}

.find-card__top,
.find-card__bottom {
    position: relative;
    z-index: 1;
}

.find-card__kicker {
    font-size: .68rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: rgba(255,255,255,.88);
    margin-bottom: .85rem;
    text-shadow: 0 1px 10px rgba(0,0,0,.35);
}

.find-card__title {
    font-family: var(--font-body);
    font-size: clamp(1.35rem, 2.2vw, 1.85rem);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    line-height: 1.2;
    max-width: 14ch;
    margin: 0;
    color: #fff;
    text-shadow: 0 1px 14px rgba(0,0,0,.4);
}

.find-card__text {
    margin-top: 1rem;
    max-width: 28rem;
    font-size: 1rem;
    font-weight: 500;
    line-height: 1.6;
    color: #fff;
    text-shadow: 0 1px 12px rgba(0,0,0,.45);
}

.find-card__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 1rem;
    border-radius: 6px;
    border: 1px solid rgba(255,255,255,.35);
    background: rgba(20,24,19,.45);
    color: #fff;
    font-size: .72rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    cursor: pointer;
    transition: background .25s var(--ease), border-color .25s var(--ease);
}

.find-card__btn:hover {
    background: rgba(20,24,19,.7);
    border-color: rgba(255,255,255,.55);
    color: #fff;
}

.properties-final-cta {
    position: relative;
    margin: 1rem 0 0;
    min-height: clamp(380px, 48vw, 520px);
    border-radius: 6px;
    overflow: hidden;
    display: grid;
    place-items: center;
    text-align: center;
    color: #fff;
}

.properties-final-cta__media,
.properties-final-cta__shade {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.properties-final-cta__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.02);
}

.properties-final-cta__shade {
    background:
        linear-gradient(180deg, rgba(20,24,19,.58) 0%, rgba(20,24,19,.42) 45%, rgba(20,24,19,.72) 100%),
        linear-gradient(90deg, rgba(20,24,19,.28) 0%, transparent 50%, rgba(20,24,19,.28) 100%);
}

.properties-final-cta__content {
    position: relative;
    z-index: 1;
    width: min(100% - 2.5rem, 720px);
    padding: 3.5rem 0;
}

.properties-final-cta__kicker {
    font-size: .7rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: rgba(255,255,255,.82);
    margin: 0 0 1rem;
    text-shadow: 0 1px 10px rgba(0,0,0,.3);
}

.properties-final-cta__title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3.1rem);
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: .01em;
    margin: 0 auto;
    max-width: 22ch;
    color: #fff;
    text-shadow: 0 1px 18px rgba(0,0,0,.35);
}

.properties-final-cta__text {
    margin: 1.15rem auto 0;
    max-width: 34rem;
    font-size: 1.05rem;
    font-weight: 500;
    line-height: 1.6;
    color: #fff;
    text-shadow: 0 1px 12px rgba(0,0,0,.4);
}

.properties-final-cta__btn {
    margin-top: 1.75rem;
    min-width: 220px;
}

.nv-modal {
    position: fixed;
    inset: 0;
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    visibility: hidden;
    pointer-events: none;
}

.nv-modal.is-open {
    visibility: visible;
    pointer-events: auto;
}

.nv-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(20,24,19,.55);
    opacity: 0;
    transition: opacity .35s var(--ease);
}

.nv-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(100%, 640px);
    max-height: min(90vh, 860px);
    overflow: auto;
    background: var(--color-background, #f7f5ef);
    border-radius: 6px;
    padding: 1.5rem 1.4rem 1.6rem;
    box-shadow: 0 24px 64px rgba(20,24,19,.28);
    opacity: 0;
    transform: translateY(18px) scale(.985);
    transition:
        opacity .4s var(--ease),
        transform .45s var(--ease);
}

.nv-modal.is-visible .nv-modal__backdrop { opacity: 1; }

.nv-modal.is-visible .nv-modal__dialog {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.nv-modal.is-leaving .nv-modal__backdrop { opacity: 0; }

.nv-modal.is-leaving .nv-modal__dialog {
    opacity: 0;
    transform: translateY(10px) scale(.99);
}

.nv-modal__dialog--wide { width: min(100%, 760px); }

.nv-modal__head {
    display: flex;
    justify-content: space-between;
    align-items: start;
    gap: 1rem;
    margin-bottom: 1.25rem;
    transition: opacity .3s var(--ease), transform .3s var(--ease);
}

.nv-modal__head h3 {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 500;
    margin: 0;
    line-height: 1.15;
}

.nv-modal__close {
    border: 0;
    background: transparent;
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    color: var(--color-text-soft);
    padding: .2rem;
}

.nv-modal__body {
    transition: opacity .28s var(--ease), transform .28s var(--ease);
}

.nv-modal.is-success .nv-modal__head,
.nv-modal.is-success .nv-modal__body {
    opacity: 0;
    transform: translateY(-8px);
    pointer-events: none;
    position: absolute;
    visibility: hidden;
}

.nv-modal__success {
    display: none;
    text-align: center;
    padding: 2.4rem 1rem 2.2rem;
    opacity: 0;
    transform: translateY(12px);
}

.nv-modal.is-success .nv-modal__success {
    display: block;
    animation: nvModalSuccessIn .55s var(--ease) forwards;
}

.nv-modal__success-icon {
    width: 52px;
    height: 52px;
    margin: 0 auto 1.15rem;
    border-radius: 50%;
    border: 1.5px solid var(--color-primary);
    display: grid;
    place-items: center;
    color: var(--color-primary);
    transform: scale(.85);
    opacity: 0;
    animation: nvModalCheckIn .5s .12s var(--ease) forwards;
}

.nv-modal__success-icon svg {
    width: 22px;
    height: 22px;
}

.nv-modal__success h4 {
    font-family: var(--font-display);
    font-size: clamp(1.55rem, 2.5vw, 2rem);
    font-weight: 500;
    margin: 0 0 .65rem;
    line-height: 1.15;
}

.nv-modal__success p {
    margin: 0 auto;
    max-width: 28rem;
    color: var(--color-text-soft);
    font-size: .98rem;
    line-height: 1.55;
}

@keyframes nvModalSuccessIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes nvModalCheckIn {
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .nv-modal__backdrop,
    .nv-modal__dialog,
    .nv-modal__head,
    .nv-modal__body,
    .nv-modal__success,
    .nv-modal__success-icon {
        transition: none !important;
        animation: none !important;
    }

    .nv-modal.is-visible .nv-modal__dialog,
    .nv-modal.is-success .nv-modal__success,
    .nv-modal__success-icon {
        opacity: 1;
        transform: none;
    }
}

.nv-modal .editorial-field--choice {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem .9rem;
}

.nv-modal .editorial-field--choice label {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .88rem;
    text-transform: none;
    letter-spacing: 0;
    color: var(--color-text);
    cursor: pointer;
}

.nv-modal .editorial-field--choice input {
    width: auto;
    min-height: 0;
}

.nv-modal__dialog--property {
    width: min(100% - 1.5rem, 1180px);
    max-height: min(92vh, 860px);
    padding: 0;
    overflow: hidden;
}

.nv-modal--property .nv-modal__close {
    position: absolute;
    top: .85rem;
    right: .85rem;
    z-index: 5;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,.92);
    border: 1px solid var(--color-border);
}

.property-modal-layout {
    display: grid;
    grid-template-columns: 1.45fr .55fr;
    min-height: min(92vh, 860px);
}

.property-modal-gallery {
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #111;
    color: #fff;
}

.property-modal-gallery__stage {
    position: relative;
    flex: 1;
    min-height: 320px;
    background: #111;
    overflow: hidden;
}

.property-modal-gallery__layer {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
    z-index: 1;
    opacity: 0;
    transform: scale(1.035) translate3d(0, 0, 0);
    transition:
        opacity .62s cubic-bezier(.25, 1, .35, 1),
        transform .72s cubic-bezier(.25, 1, .35, 1);
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.property-modal-gallery__layer.is-active {
    opacity: 1;
    transform: scale(1) translate3d(0, 0, 0);
    z-index: 2;
}

.property-modal-gallery__layer.is-pre-enter {
    opacity: 0;
    z-index: 3;
    transform: scale(1.04) translate3d(calc(var(--gallery-slide-dir, 1) * 2.2%), 0, 0);
    transition: none;
}

.property-modal-gallery__layer.is-entering {
    opacity: 1;
    z-index: 3;
    transform: scale(1) translate3d(0, 0, 0);
}

.property-modal-gallery__layer.is-leaving {
    opacity: 0;
    z-index: 1;
    transform: scale(1.015) translate3d(calc(var(--gallery-slide-dir, 1) * -1.8%), 0, 0);
}

.property-modal-gallery__layer.is-instant {
    transition: none !important;
}

.property-modal-gallery__stage[data-gallery-dir="-1"] {
    --gallery-slide-dir: -1;
}

.property-modal-gallery__stage[data-gallery-dir="1"] {
    --gallery-slide-dir: 1;
}

@media (prefers-reduced-motion: reduce) {
    .property-modal-gallery__layer {
        transition: none;
    }
}

.property-modal-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.14);
    color: #fff;
    font-size: 1.5rem;
    cursor: pointer;
    z-index: 3;
}

.property-modal-gallery__nav--prev { left: 1rem; }
.property-modal-gallery__nav--next { right: 1rem; }

.property-modal-gallery__counter {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    font-size: .78rem;
    letter-spacing: .08em;
    color: rgba(255,255,255,.82);
    z-index: 3;
}

.property-modal-gallery__thumbs {
    display: flex;
    gap: .45rem;
    padding: .75rem 1rem 1rem;
    overflow-x: auto;
    background: rgba(0,0,0,.35);
    position: relative;
    z-index: 3;
}

.property-modal-gallery__thumb {
    flex: 0 0 72px;
    width: 72px;
    height: 54px;
    padding: 0;
    border: 2px solid transparent;
    overflow: hidden;
    cursor: pointer;
    opacity: .72;
}

.property-modal-gallery__thumb.is-active {
    border-color: #fff;
    opacity: 1;
}

.property-modal-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.property-modal-form {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 0;
    background: var(--color-background);
    border-left: 1px solid var(--color-border);
    overflow: hidden;
}

.property-modal-form__scroll {
    flex: 1;
    overflow-y: auto;
    padding: 1.5rem 1.35rem 1rem;
}

.property-modal-form__head {
    margin-bottom: 1.25rem;
}

.property-modal-form__head .display-sm {
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    margin-bottom: .35rem;
}

.property-modal-form__head .lead {
    font-size: .92rem;
    color: var(--color-text-soft);
}

.editorial-form--compact .editorial-form__grid--compact {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .85rem 1rem;
}

.editorial-form--compact .editorial-field label {
    font-size: .72rem;
}

.editorial-form--compact .editorial-field input,
.editorial-form--compact .editorial-field textarea {
    min-height: 42px;
    padding: .55rem .75rem;
    font-size: .92rem;
}

.editorial-options--compact {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1rem;
    font-size: .88rem;
}

.property-modal-form__actions {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    padding: 1rem 1.35rem calc(1.15rem + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--color-border);
    background: var(--color-background);
    flex-shrink: 0;
}

.property-modal-form__actions .btn {
    width: 100%;
    justify-content: center;
}

.property-explore-grid__btn {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.property-explore-grid__btn img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.nv-modal--property.is-success .property-modal-layout,
.nv-modal--property.is-success .nv-modal__close {
    opacity: 0;
    pointer-events: none;
}

/* ---------- Property single ---------- */
.property-single {
    padding-top: calc(var(--header-h) + 1.25rem);
    padding-bottom: 0;
}

.has-sticky-cta {
    padding-bottom: 0;
}

.property-final-cta {
    position: relative;
    z-index: 1;
    min-height: 420px;
    display: grid;
    place-items: center;
    text-align: center;
    color: #fff;
    overflow: hidden;
    margin: 2rem 0 0;
}

/* Espaço da sticky bar dentro do footer (fundo verde) — sem faixa branca depois */
body:has([data-sticky-bar]) .site-footer {
    padding-bottom: calc(2rem + 80px);
    margin-bottom: 0;
}

body:has([data-sticky-bar]),
html:has([data-sticky-bar]) {
    padding-bottom: 0;
    margin-bottom: 0;
}

/* CTA colado no footer */
body:has(.property-final-cta) .site-footer {
    margin-top: 0;
}

body:has(.property-final-cta) main {
    display: block;
}

.property-single > .property-final-cta:last-of-type {
    margin-bottom: 0;
}

.property-hero-banner {
    position: relative;
    width: min(100% - 2rem, calc(var(--container-wide, var(--container)) + 4rem));
    margin: 0 auto 2.25rem;
    overflow: hidden;
    background: var(--color-background-alt);
}

.property-hero-banner__grid {
    display: grid;
    grid-template-columns: 1.65fr 1fr;
    gap: .55rem;
    min-height: clamp(420px, 58vh, 680px);
}

.property-hero-banner__main,
.property-hero-banner__cell {
    position: relative;
    overflow: hidden;
    padding: 0;
    border: 0;
    background: var(--color-background-alt);
    cursor: pointer;
    min-height: 0;
}

.property-hero-banner__main {
    display: grid;
    grid-template: 1fr / 1fr;
    width: 100%;
    height: 100%;
    min-height: clamp(420px, 58vh, 680px);
}

.property-hero-banner__main > img,
.property-hero-banner__main > .property-hero-banner__video,
.property-hero-banner__main > .property-hero-banner__overlay {
    grid-area: 1 / 1;
}

.property-hero-banner__cell {
    display: grid;
    grid-template: 1fr / 1fr;
    width: 100%;
    height: 100%;
}

.property-hero-banner__side {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: .55rem;
    min-height: clamp(420px, 58vh, 680px);
}

.property-hero-banner__main img,
.property-hero-banner__main video,
.property-hero-banner__main iframe,
.property-hero-banner__cell img {
    grid-area: 1 / 1;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
}

.property-hero-banner__main .property-hero-banner__video,
.property-hero-banner__main .property-hero-banner__video video,
.property-hero-banner__main .property-hero-banner__video iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 0;
}

.property-hero-banner__video {
    width: 100%;
    height: 100%;
}

.property-hero-banner__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20,20,16,.08) 0%, rgba(20,20,16,.02) 45%, rgba(20,20,16,.18) 100%);
    pointer-events: none;
}

.property-hero-banner__cell--last::after {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(20,20,16,.28);
    pointer-events: none;
}

.property-hero-banner__see-all {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: grid;
    place-items: center;
    padding: .75rem;
    color: #fff;
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    text-align: center;
    pointer-events: none;
}

.property-hero-banner__exclusive {
    position: absolute;
    top: 1.25rem;
    left: 1.25rem;
    z-index: 4;
    pointer-events: none;
}

.property-hero-banner__exclusive img {
    max-height: 72px;
    width: auto;
    display: block;
    filter: drop-shadow(0 4px 16px rgba(0,0,0,.18));
}

.property-hero-banner__exclusive-default {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 14px;
    background: rgba(247,245,239,.94);
    border: 1px solid rgba(255,255,255,.65);
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-accent);
    backdrop-filter: blur(6px);
}

.property-hero-banner__count {
    display: none;
}

.property-summary {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 2rem 3rem;
    align-items: end;
    margin-bottom: 3rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--color-border);
}

.property-summary__tags {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-bottom: .85rem;
}

.property-summary__tag {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    background: rgba(74,80,61,.08);
    color: var(--color-accent);
    font-size: .68rem;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.property-summary__tag--accent {
    background: var(--color-accent);
    color: #fff;
}

.property-summary__title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 3.8vw, 3.2rem);
    line-height: 1.05;
    font-weight: 500;
    max-width: 18ch;
    margin-bottom: .65rem;
}

.property-summary__location {
    display: flex;
    align-items: center;
    gap: .45rem;
    color: var(--color-text-soft);
    margin-bottom: .55rem;
}

.property-summary__specs {
    color: var(--color-text-soft);
    font-size: .92rem;
}

.property-summary__aside {
    text-align: right;
}

.property-summary__price-label {
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text-soft);
    margin-bottom: .25rem;
}

.property-summary__price {
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    font-weight: 500;
    margin-bottom: 1rem;
}

.property-summary__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .75rem;
}

.property-summary__aside .property-summary__actions {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.property-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) min(360px, 32%);
    gap: 2rem 2.5rem;
    align-items: start;
    margin-bottom: 3rem;
}

.property-detail-main {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1.15rem;
}

.property-detail-main > .property-panels {
    margin-bottom: 0;
    gap: 1.15rem;
}

.property-detail-main > .property-panel,
.property-detail-main > .property-block {
    margin: 0;
}

.property-block:not(.property-panel) {
    background: #fff;
    border: 1px solid rgba(20,20,16,.08);
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(20,20,16,.04);
    padding: 1.5rem 1.4rem;
}

.property-block.property-panel--split {
    padding: 0;
}

.property-panel--split .property-panel__content .eyebrow {
    margin-top: 0;
}

.property-living-panel .property-panel__content,
.property-consultancy-panel .property-panel__content {
    padding-top: 1.75rem;
}

.property-location-full {
    width: 100%;
    box-sizing: border-box;
}

.property-similar-section {
    margin-top: 2.5rem;
    width: 100%;
}

.property-results-grid--similar {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem 1.25rem;
    width: 100%;
}

@media (max-width: 1100px) {
    .property-results-grid--similar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .property-results-grid--similar {
        grid-template-columns: 1fr;
    }
}

.property-detail-sidebar {
    grid-column: 2;
    grid-row: 1;
    position: sticky;
    top: calc(var(--header-h) + 1.25rem);
    align-self: start;
    z-index: 4;
    max-height: none;
    overflow: visible;
}

.property-sidebar-form {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    box-shadow: 0 16px 40px rgba(20,20,16,.06);
    padding: 1.2rem 1.15rem 1rem;
    max-height: none;
    overflow: visible;
}

.property-sidebar-form .editorial-form--compact .editorial-field input,
.property-sidebar-form .editorial-form--compact .editorial-field textarea {
    min-height: 38px;
    padding: .45rem .65rem;
}

.property-sidebar-form .editorial-form--compact .editorial-field textarea {
    min-height: 72px;
}

.property-sidebar-form .property-visit-form__head {
    margin-bottom: .95rem;
}

.property-sidebar-form .property-visit-form__head .display-sm {
    font-size: 1.35rem;
    margin-bottom: .25rem;
}

.property-sidebar-form .editorial-form__grid--compact {
    gap: .7rem .85rem;
}

.property-sidebar-form .property-visit-form__actions {
    margin-top: .95rem;
    padding-top: .85rem;
}

.property-visit-form__head {
    margin-bottom: 1.15rem;
}

.property-visit-form__head .display-sm {
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    margin-bottom: .35rem;
}

.property-visit-form__head .lead {
    font-size: .92rem;
    color: var(--color-text-soft);
}

.property-visit-form__actions {
    display: flex;
    flex-direction: column;
    gap: .65rem;
    margin-top: 1.15rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.property-visit-form__actions .btn {
    width: 100%;
    justify-content: center;
}

.property-panels {
    display: grid;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.property-panel {
    background: #fff;
    border: 1px solid rgba(20,20,16,.08);
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(20,20,16,.04);
    padding: 1.5rem 1.4rem;
}

.property-panel--split {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    gap: 1.25rem;
    align-items: stretch;
    padding: 0;
    overflow: hidden;
}

.property-panel--split .property-panel__media {
    min-height: 220px;
    background: #eceae3;
}

.property-panel--split .property-panel__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.property-panel--split .property-panel__content {
    padding: 1.65rem 1.5rem;
}

.property-panel--split:not(:has(.property-panel__media)) .property-panel__content,
.property-panel--split .property-panel__content:only-child {
    padding: 1.5rem 1.4rem;
    grid-column: 1 / -1;
}

.property-about.property-panel--split .property-panel__content {
    padding-right: 1.4rem;
}

.property-about.property-panel--split .eyebrow {
    margin-top: 1.35rem;
}

.property-special {
    background: #fff;
    border: 1px solid rgba(20,20,16,.08);
    border-radius: 12px;
    padding: 1.75rem 1.5rem;
    margin-bottom: 1.5rem;
}

.property-special__body {
    margin-top: 1.15rem;
    color: var(--color-text-soft);
    line-height: 1.8;
}

.rich-content h3 {
    font-family: var(--font-display);
    font-size: 1.35rem;
    margin: 1.25rem 0 .65rem;
    color: var(--color-text);
}

.rich-content ul,
.rich-content ol {
    padding-left: 1.2rem;
    margin: .75rem 0;
}

.rich-content p {
    margin: 0 0 .85rem;
}

.property-details-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.75rem 2rem;
    margin-top: 2rem;
}

.property-details-item {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: .9rem 1rem;
    align-items: start;
}

.property-details-item__icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: #f3f2ed;
    display: grid;
    place-items: center;
    color: #555;
    flex-shrink: 0;
}

.property-details-item__icon svg,
.property-details-item__icon img {
    width: 22px;
    height: 22px;
    object-fit: contain;
}

.property-details-item__body {
    min-width: 0;
}

.property-details-item h3 {
    margin: 0 0 .4rem;
    font-size: 1.05rem;
    line-height: 1.3;
}

.property-details-item p {
    margin: 0;
    color: var(--color-text-soft);
    line-height: 1.6;
    font-size: .95rem;
    max-width: none;
}

.property-explore-links {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    margin-top: 1.25rem;
}

.property-location__intro {
    margin-top: 1rem;
    color: var(--color-text-soft);
    line-height: 1.7;
}

.property-location__highlights {
    list-style: none;
    padding: 0;
    margin: 1.25rem 0 0;
    display: grid;
    gap: .75rem;
}

.property-location__highlights li {
    display: grid;
    gap: .15rem;
}

.property-location__highlights strong {
    font-size: .95rem;
}

.property-location__highlights span {
    color: var(--color-text-soft);
    font-size: .9rem;
}

.property-panel__title {
    font-family: var(--font-body);
    font-size: 1.05rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: var(--color-text);
}

.property-panel__eyebrow {
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-text-soft);
    margin: -.35rem 0 1rem;
}

.property-panel__headline {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    line-height: 1.15;
    font-weight: 500;
    margin-bottom: .85rem;
    max-width: 22ch;
}

.property-panel__text {
    color: var(--color-text-soft);
    line-height: 1.75;
}

.property-overview-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.1rem 1.5rem;
}

.property-overview-item {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    min-width: 0;
}

.property-overview-item__icon {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: rgba(74,80,61,.08);
    color: var(--color-accent);
}

.property-overview-item__icon svg {
    width: 18px;
    height: 18px;
    display: block;
}

.property-overview-item__icon-img {
    width: 18px;
    height: 18px;
    object-fit: contain;
    display: block;
}

.property-overview-item__label {
    display: block;
    font-size: .72rem;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--color-text-soft);
    margin-bottom: .15rem;
}

.property-overview-item__value {
    display: block;
    font-size: .98rem;
    font-weight: 600;
    color: var(--color-text);
    line-height: 1.3;
}

.property-about {
    margin-bottom: 2.5rem;
}

.property-about .display-sm {
    margin-bottom: 1rem;
}

.property-about__body {
    color: var(--color-text-soft);
    line-height: 1.8;
    max-width: 760px;
}

.property-intro { margin-bottom: 1.75rem; }

.property-intro__badge {
    display: inline-block;
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--color-accent);
    margin-bottom: .85rem;
}

.property-intro__title {
    font-family: var(--font-display);
    font-size: clamp(2.4rem, 4.5vw, 3.8rem);
    line-height: 1.05;
    font-weight: 500;
    max-width: 14ch;
    margin-bottom: .7rem;
}

.property-intro__meta {
    color: var(--color-text-soft);
    margin-bottom: 1rem;
}

.property-intro__specs {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem 1.4rem;
    color: var(--color-text-soft);
    font-size: .9rem;
    margin-bottom: 1.1rem;
}

.property-intro__price {
    font-size: clamp(1.35rem, 2vw, 1.7rem);
    font-weight: 500;
}

.property-gallery {
    position: relative;
    display: grid;
    grid-template-columns: 1.7fr .8fr;
    gap: .55rem;
    margin-bottom: 2.75rem;
    min-height: 620px;
}

.property-gallery--single {
    grid-template-columns: 1fr;
    min-height: 520px;
}

.property-gallery__main,
.property-gallery__side figure {
    overflow: hidden;
    background: var(--color-background-alt);
    margin: 0;
    height: 100%;
}

.property-gallery__main { min-height: 620px; }
.property-gallery--single .property-gallery__main {
    min-height: 520px;
    aspect-ratio: 16 / 9;
}

.property-gallery__side {
    display: grid;
    grid-template-rows: 1fr 1fr;
    gap: .55rem;
    min-height: 620px;
}

.property-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    cursor: pointer;
}

.property-gallery__all {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    z-index: 3;
    min-height: 36px;
    padding: 0 12px;
    background: rgba(247,245,239,.94);
    border: 0;
    font-size: .7rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
}

.property-main {
    display: grid;
    grid-template-columns: 1.35fr .85fr;
    gap: 3rem;
    margin-bottom: 3.5rem;
    align-items: start;
}

.property-main__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin: 1.4rem 0 1rem;
}

.property-main__tools {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.property-main__panel {
    border-top: 1px solid var(--color-border);
    padding-top: 1.4rem;
}

.property-main__panel .price {
    font-size: 1.55rem;
    font-weight: 500;
    margin-bottom: .35rem;
}

.property-main__panel .code {
    color: var(--color-text-soft);
    font-size: .88rem;
    margin-bottom: 1.25rem;
}

.property-specifications {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem 1.25rem;
    margin-top: 1.75rem;
    padding-top: 1.75rem;
    border-top: 1px solid var(--color-border);
}

.property-spec {
    border-top: 1px solid var(--color-border);
    padding-top: .9rem;
}

.property-spec strong {
    display: block;
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 500;
    line-height: 1;
    margin-bottom: .35rem;
}

.property-spec span {
    font-size: .7rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--color-text-soft);
}

.property-story {
    display: grid;
    grid-template-columns: .35fr .65fr;
    gap: 2.5rem;
    align-items: start;
}

.property-story h2 {
    position: sticky;
    top: calc(var(--header-h) + 1rem);
}

.property-story__body {
    max-width: 680px;
    color: var(--color-text-soft);
    line-height: 1.75;
}

.property-features-rich {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.75rem 2.5rem;
}

.property-features-rich article {
    border-top: 1px solid var(--color-border);
    padding-top: 1rem;
}

.property-features-rich .num {
    font-size: .72rem;
    letter-spacing: .14em;
    color: var(--color-accent);
    margin-bottom: .55rem;
}

.property-features-rich h3 {
    font-family: var(--font-display);
    font-size: 1.55rem;
    font-weight: 500;
    margin-bottom: .45rem;
}

.property-features-rich p {
    color: var(--color-text-soft);
    font-size: .95rem;
}

.property-living,
.property-consultancy {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 3rem;
    align-items: center;
}

.property-living__media,
.property-consultancy__media {
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: var(--color-background-alt);
}

.property-living__media img,
.property-consultancy__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.property-gallery-section {
    overflow: hidden;
}

.property-gallery-section .display-sm {
    margin-top: .35rem;
}

.property-media-block {
    margin-top: 2rem;
}

.property-media-block__label {
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--color-text-soft);
    margin: 0 0 .85rem;
}

.property-media-block__single {
    width: 100%;
    overflow: hidden;
    background: var(--color-background-alt);
}

.property-media-block__single img {
    width: 100%;
    height: auto;
    display: block;
}

.property-media-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.property-media-embed {
    position: relative;
    background: #000;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.property-media-embed iframe,
.property-media-embed video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.property-media-embed__title {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0;
    padding: .45rem .65rem;
    background: rgba(0,0,0,.55);
    color: #fff;
    font-size: .78rem;
}

.property-media-block__single.property-media-embed {
    aspect-ratio: 16 / 9;
}

.property-explore-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: 240px;
    gap: .6rem;
    margin-top: 1.75rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.property-explore-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.property-explore-grid--single {
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: minmax(300px, 420px);
}

.property-explore-grid figure {
    margin: 0;
    overflow: hidden;
    background: var(--color-background-alt);
    min-width: 0;
    height: 100%;
}

.property-explore-grid .property-explore-grid__btn {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    overflow: hidden;
}

.property-explore-grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    cursor: pointer;
}

.property-location {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 2.5rem;
    align-items: center;
}

.property-location iframe {
    width: 100%;
    height: 380px;
    border: 0;
}

.visit-layout {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 3rem;
    align-items: start;
}

.visit-layout .lead {
    margin-top: 1rem;
    text-align: left;
}

.similar-head { margin-bottom: 1.75rem; }
.similar-head p {
    color: var(--color-text-soft);
    margin-top: .4rem;
}

.property-final-cta {
    position: relative;
    z-index: 1;
    min-height: 420px;
    display: grid;
    place-items: center;
    text-align: center;
    color: #fff;
    overflow: hidden;
    margin-top: 2rem;
    margin-bottom: 0;
}

.property-final-cta__content {
    position: relative;
    z-index: 2;
    padding: 3rem 1.25rem;
    max-width: 720px;
}

.property-final-cta .display-sm,
.property-final-cta .lead {
    color: inherit;
}

.property-final-cta .display-sm p,
.property-final-cta .lead p,
.eyebrow > p,
.display-sm > p {
    margin: 0;
}

.sticky-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;
    background: rgba(255,255,255,.98);
    border-top: 1px solid var(--color-border);
    transform: translateY(0);
    backdrop-filter: blur(8px);
    box-shadow: 0 -8px 24px rgba(20,20,16,.06);
}

.sticky-bar.is-visible { transform: translateY(0); }

.sticky-bar__actions {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-shrink: 0;
}

.sticky-bar__inner {
    width: min(100% - 2rem, var(--container));
    margin: 0 auto;
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.lightbox {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: rgba(20,20,16,.92);
    display: none;
    place-items: center;
    color: #fff;
}

.lightbox.is-open { display: grid; }

.lightbox img {
    max-width: min(92vw, 1100px);
    max-height: 82vh;
    object-fit: contain;
}

.lightbox__close,
.lightbox__prev,
.lightbox__next {
    position: absolute;
    color: #fff;
    background: transparent;
    border: 0;
    font-size: 1.6rem;
    cursor: pointer;
}

.lightbox__close { top: 1rem; right: 1rem; }
.lightbox__prev { left: 1rem; }
.lightbox__next { right: 1rem; }
.lightbox__counter { position: absolute; bottom: 1.2rem; }

.pagination {
    display: flex;
    gap: .4rem;
    justify-content: center;
    margin-top: 2.5rem;
}

.pagination a,
.pagination span {
    min-width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border: 1px solid var(--color-border);
    font-size: .85rem;
}

.pagination .is-current {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

/* ---------- About / Michelle / Alphavita / Sell / Contact ---------- */
.about-manifesto { padding: var(--section-xl) 0; }

.about-manifesto .display {
    max-width: 16ch;
    font-size: clamp(2.8rem, 6vw, 5.2rem);
}

/* ---------- Sobre — Hero (anexo 1) ---------- */
.about-hero {
    padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(3rem, 6vw, 5rem);
    background: #f7f5ef;
}
.about-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: clamp(1.5rem, 4vw, 3.5rem);
    align-items: stretch;
}
.about-hero__copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: .35rem 0 0;
}
.about-hero__tag {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .55rem;
    margin: 0 0 1.35rem;
    font-size: .68rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 600;
}
.about-hero__tag-line {
    display: block;
    width: 2.8rem;
    height: 1px;
    background: rgba(79, 83, 53, .4);
}
.about-hero__title {
    margin: 0 0 1.25rem;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(2.2rem, 4.2vw, 3.5rem);
    line-height: 1.08;
    letter-spacing: .01em;
    text-transform: uppercase;
    color: #25251f;
    max-width: none;
}
.about-hero__body {
    margin: 0 0 1.5rem;
    max-width: 28rem;
    color: #5c5d56;
    line-height: 1.65;
    font-size: .98rem;
}
.about-hero__cta {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-bottom: auto;
    padding-bottom: .15rem;
    border-bottom: 1px solid rgba(37, 37, 31, .55);
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 600;
    color: #25251f;
    text-decoration: none;
    width: fit-content;
}
.about-hero__cta:hover { opacity: .72; }
.about-hero__words {
    list-style: none;
    margin: 2.75rem 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .45rem;
    font-size: .62rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 600;
}
.about-hero__media {
    position: relative;
    min-height: clamp(360px, 52vh, 560px);
    overflow: hidden;
    background: #e8e5dc;
}
.about-hero__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.about-hero__caption {
    position: absolute;
    left: 1.1rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    margin: 0;
    max-width: 9.5rem;
    font-size: .58rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(255,255,255,.92);
    font-weight: 600;
    line-height: 1.45;
    text-shadow: 0 1px 8px rgba(0,0,0,.25);
}
.about-hero__caption-line {
    display: block;
    width: 2.4rem;
    height: 1px;
    margin-top: .55rem;
    background: rgba(255,255,255,.75);
}
.about-hero__badge {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    width: clamp(3.4rem, 6vw, 4.25rem);
    min-height: clamp(9rem, 22vw, 12.5rem);
    padding: 1.1rem .55rem;
    background: #4f5335;
    color: #f7f5ef;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    text-align: center;
    font-size: .58rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 600;
    line-height: 1.35;
}

.about-hero__badge span {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
    max-height: 100%;
}

.about-hero__badge i {
    display: block;
    width: 1.6rem;
    height: 1px;
    flex: 0 0 auto;
    background: rgba(247,245,239,.55);
}
@media (max-width: 960px) {
    .about-hero__grid { grid-template-columns: 1fr; }
    .about-hero__title { max-width: 100%; }
    .about-hero__media { min-height: 340px; }
    .about-hero__words { margin-top: 1.75rem; }
}

/* ---------- Sobre — Manifesto (anexo 1) ---------- */
.about-manifesto {
    padding: clamp(2.75rem, 5.5vw, 4.5rem) 0;
    background: #f7f5ef;
}
.about-manifesto__grid {
    display: grid;
    grid-template-columns: minmax(16rem, 1.15fr) minmax(0, 1.85fr);
    gap: clamp(1.5rem, 3.5vw, 3rem);
    align-items: start;
}
.about-manifesto__rail {
    align-self: stretch;
    min-height: 100%;
}
.about-manifesto__rail-media {
    overflow: hidden;
    background: #e8e5dc;
    height: 100%;
    min-height: clamp(420px, 70vh, 720px);
}
.about-manifesto__rail-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.about-manifesto__main { min-width: 0; padding-top: .15rem; }
.about-manifesto__head { margin-bottom: 1.1rem; }
.about-manifesto__kicker {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 0 0 .55rem;
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 600;
}
.about-manifesto__kicker i {
    flex: 1;
    height: 1px;
    background: rgba(79, 83, 53, .25);
}
.about-manifesto__note {
    margin: 0;
    font-size: .88rem;
    font-style: italic;
    color: #8a877c;
}
.about-manifesto__title {
    margin: 0 0 1.75rem;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(2rem, 3.8vw, 3.2rem);
    line-height: 1.08;
    letter-spacing: .01em;
    text-transform: uppercase;
    color: #25251f;
    max-width: none;
}
.about-manifesto__split {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: start;
}
.about-manifesto__list {
    display: flex;
    flex-direction: column;
    gap: .55rem;
}
.about-manifesto__item {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: .95rem;
    padding: .85rem 1rem;
    background: rgba(255,255,255,.72);
    border: 1px solid rgba(79, 83, 53, .1);
}
.about-manifesto__item-icon {
    flex: 0 0 1.55rem;
    width: 1.55rem;
    height: 1.55rem;
    color: #4f5335;
    display: grid;
    place-items: center;
}
.about-manifesto__item-icon svg,
.about-manifesto__item-icon img {
    width: 1.35rem;
    height: 1.35rem;
    display: block;
    object-fit: contain;
}
.about-manifesto__item-icon + p,
.about-manifesto__item p {
    margin: 0;
    flex: 1;
    min-width: 0;
    font-size: .95rem;
    color: #2f321f;
    line-height: 1.4;
    border-left: 1px solid rgba(79, 83, 53, .18);
    padding-left: .95rem;
}
.about-manifesto__quote {
    margin: 0;
    padding: .35rem 0 0;
}
.about-manifesto__quote-mark {
    display: block;
    font-family: var(--font-display);
    font-size: 3.5rem;
    line-height: .8;
    color: #4f5335;
    margin-bottom: .35rem;
}
.about-manifesto__quote p {
    margin: 0 0 1.35rem;
    color: #5c5d56;
    line-height: 1.7;
    font-size: .95rem;
}
.about-manifesto__quote footer {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .55rem;
    font-size: .58rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 600;
}
.about-manifesto__quote footer i {
    display: block;
    width: 2.6rem;
    height: 1px;
    background: rgba(79, 83, 53, .3);
}
@media (max-width: 980px) {
    .about-manifesto__grid { grid-template-columns: 1fr; }
    .about-manifesto__rail-media { min-height: 320px; }
    .about-manifesto__split { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .about-manifesto__rail-media { min-height: 260px; }
}

/* ---------- Sobre — Quem somos (anexo 1) ---------- */
.about-who {
    padding: clamp(3rem, 6vw, 5rem) 0;
    background: #f7f5ef;
}
.about-who__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.05fr);
    gap: clamp(1.75rem, 4vw, 3.25rem);
    align-items: start;
}
.about-who__copy { min-width: 0; }
.about-who__tag,
.about-who__right-tag {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin: 0 0 1.35rem;
    font-size: .66rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 600;
}
.about-who__tag i,
.about-who__right-tag i {
    display: block;
    width: 2.6rem;
    height: 1px;
    background: rgba(79, 83, 53, .35);
}
.about-who__right-tag {
    justify-content: flex-start;
    margin-bottom: .85rem;
}
.about-who__title {
    margin: 0 0 1.5rem;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(2rem, 3.6vw, 3rem);
    line-height: 1.1;
    letter-spacing: .01em;
    text-transform: uppercase;
    color: #4f5335;
    max-width: none;
}
.about-who__body {
    margin: 0 0 2.25rem;
    color: #4a4b44;
    font-size: .98rem;
    line-height: 1.7;
    max-width: 36rem;
}
.about-who__features {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
}
.about-who__feature {
    padding: 0 .85rem;
    text-align: center;
    border-right: 1px solid rgba(79, 83, 53, .16);
}
.about-who__feature:first-child { padding-left: 0; }
.about-who__feature:last-child {
    border-right: 0;
    padding-right: 0;
}
.about-who__feature-icon {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    margin: 0 auto .65rem;
    color: #4f5335;
}
.about-who__feature-icon svg,
.about-who__feature-icon img {
    width: 1.45rem;
    height: 1.45rem;
    display: block;
    object-fit: contain;
}
.about-who__feature h3 {
    margin: 0 0 .35rem;
    font-size: .62rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #2f321f;
    font-weight: 700;
}
.about-who__feature p {
    margin: 0;
    font-size: .78rem;
    line-height: 1.4;
    color: #6f7067;
}
.about-who__visual { min-width: 0; }
.about-who__media {
    position: relative;
    min-height: clamp(380px, 48vh, 560px);
    overflow: visible;
    background: #e8e5dc;
}
.about-who__media img {
    width: 100%;
    height: 100%;
    min-height: clamp(380px, 48vh, 560px);
    object-fit: cover;
    display: block;
}
.about-who__side-caption {
    position: absolute;
    right: .85rem;
    top: 50%;
    transform: translateY(-50%) rotate(180deg);
    writing-mode: vertical-rl;
    margin: 0;
    z-index: 2;
    font-family: var(--font-display);
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: rgba(255,255,255,.92);
    text-shadow: 0 1px 10px rgba(0,0,0,.28);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
}
.about-who__side-caption i {
    display: block;
    width: 1.8rem;
    height: 1px;
    background: rgba(255,255,255,.75);
}
.about-who__stat {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 3;
    width: min(100%, 15.5rem);
    padding: 1.25rem 1.15rem 1.35rem;
    background: #4f5335;
    color: #f7f5ef;
}
.about-who__stat-title {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2rem, 3vw, 2.6rem);
    line-height: 1;
    font-weight: 500;
    text-transform: uppercase;
}
.about-who__stat-sub {
    margin: .2rem 0 0;
    font-size: .62rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-weight: 600;
    opacity: .92;
}
.about-who__stat-line {
    display: block;
    width: 2.4rem;
    height: 1px;
    margin: .85rem 0;
    background: rgba(247,245,239,.55);
}
.about-who__stat-text {
    margin: 0;
    font-size: .78rem;
    line-height: 1.5;
    opacity: .9;
}
@media (max-width: 980px) {
    .about-who__grid { grid-template-columns: 1fr; }
    .about-who__features { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 0; }
    .about-who__feature {
        border-right: 0;
        padding: .35rem .75rem;
        border-bottom: 1px solid rgba(79, 83, 53, .12);
    }
    .about-who__feature:nth-child(odd) { padding-left: 0; }
    .about-who__feature:nth-child(even) { padding-right: 0; }
}
@media (max-width: 640px) {
    .about-who__features { grid-template-columns: 1fr 1fr; }
    .about-who__stat { width: min(100%, 13.5rem); }
}

.about-meaning {
    position: relative;
    padding: clamp(3rem, 6vw, 5.5rem) 0;
    overflow: hidden;
    background: #f7f5ef;
}
.about-meaning__watermark {
    position: absolute;
    right: -2%;
    top: 8%;
    z-index: 0;
    max-width: 58%;
    font-family: var(--font-display);
    font-size: clamp(4.5rem, 12vw, 11rem);
    line-height: .88;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: transparent;
    -webkit-text-stroke: 1px rgba(79, 83, 53, .12);
    pointer-events: none;
    white-space: pre-line;
}
.about-meaning__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) auto minmax(0, 1.35fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: stretch;
}
.about-meaning__copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding-top: .2rem;
}
.about-meaning__tag,
.about-meaning__bottom,
.about-meaning__footer {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin: 0;
    font-size: .62rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 600;
    line-height: 1.45;
}
.about-meaning__tag i,
.about-meaning__bottom i,
.about-meaning__footer i {
    display: block;
    width: 1.6rem;
    height: 1px;
    margin-top: .45em;
    background: rgba(79, 83, 53, .4);
    flex: 0 0 auto;
}
.about-meaning__tag { margin-bottom: 1.35rem; }
.about-meaning__title {
    margin: 0 0 1.5rem;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    line-height: 1.05;
    letter-spacing: .01em;
    text-transform: uppercase;
    color: #25251f;
    max-width: none;
}
.about-meaning__lines {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .45rem;
    color: #4a4b44;
    font-size: .98rem;
    line-height: 1.55;
}
.about-meaning__callout {
    margin: 0 0 1.75rem;
    padding: 1rem 1.1rem 1.1rem 1.15rem;
    background: #edf0e8;
    border-left: 2px solid #4f5335;
    max-width: 28rem;
}
.about-meaning__callout p {
    margin: 0;
    font-family: var(--font-display);
    font-size: 1.05rem;
    line-height: 1.45;
    color: #2f321f;
}
.about-meaning__callout strong {
    font-weight: 600;
}
.about-meaning__bottom {
    margin-top: auto;
    padding-top: 1rem;
}
.about-meaning__rail {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .85rem;
    padding: 1rem 0;
    align-self: center;
}
.about-meaning__rail-line {
    display: block;
    width: 1px;
    height: 2.4rem;
    background: rgba(79, 83, 53, .28);
}
.about-meaning__rail ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .55rem;
    text-align: center;
    font-size: .58rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 600;
}
.about-meaning__rail-rule {
    display: block;
    width: 2.2rem;
    height: 1px;
    background: rgba(79, 83, 53, .28);
}
.about-meaning__visual {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .85rem;
}
.about-meaning__media {
    position: relative;
    overflow: hidden;
    min-height: clamp(360px, 52vh, 620px);
    background: #e8e5dc;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 12%, #000 100%);
}
.about-meaning__media img {
    width: 100%;
    height: 100%;
    min-height: clamp(360px, 52vh, 620px);
    object-fit: cover;
    display: block;
}
.about-meaning__footer {
    justify-content: flex-end;
    text-align: right;
}
@media (max-width: 980px) {
    .about-meaning__grid {
        grid-template-columns: 1fr;
    }
    .about-meaning__rail {
        flex-direction: row;
        justify-content: flex-start;
        gap: 1rem;
        padding: 0;
    }
    .about-meaning__rail-line { width: 2.2rem; height: 1px; }
    .about-meaning__rail ul {
        flex-direction: row;
        flex-wrap: wrap;
        gap: .55rem 1rem;
        text-align: left;
    }
    .about-meaning__watermark {
        max-width: 90%;
        right: 0;
        opacity: .7;
    }
    .about-meaning__media {
        -webkit-mask-image: none;
        mask-image: none;
        min-height: 340px;
    }
}

/* ---------- Sobre — Visão (anexo 41) ---------- */
.about-vision {
    padding: clamp(3rem, 6vw, 5.5rem) 0 clamp(2.5rem, 5vw, 4rem);
    background: #f7f5ef;
    color: #2f321f;
}

.about-vision__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: clamp(1.75rem, 4vw, 3.5rem);
    align-items: start;
}

.about-vision__copy { min-width: 0; padding-top: .2rem; }

.about-vision__tag {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin: 0 0 1.35rem;
    font-size: .66rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 600;
}

.about-vision__tag i {
    display: block;
    width: 2.6rem;
    height: 1px;
    background: rgba(79, 83, 53, .4);
}

.about-vision__title {
    margin: 0 0 1.35rem;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(1.85rem, 3.4vw, 2.85rem);
    line-height: 1.12;
    letter-spacing: .01em;
    text-transform: uppercase;
    color: #3f432a;
    max-width: none;
}

.about-vision__body {
    margin: 0 0 1.75rem;
    max-width: 36rem;
    font-size: .96rem;
    line-height: 1.75;
    color: #5a5b54;
}

.about-vision__callout {
    border-left: 1px solid rgba(79, 83, 53, .35);
    padding: .15rem 0 .15rem 1.15rem;
    max-width: 28rem;
}

.about-vision__callout-lead {
    margin: 0 0 .45rem;
    font-size: .78rem;
    line-height: 1.45;
    color: #6f7067;
}

.about-vision__callout-text {
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    font-weight: 500;
    line-height: 1.3;
    color: #3f432a;
    font-style: italic;
}

.about-vision__visual { min-width: 0; }

.about-vision__media {
    position: relative;
    overflow: hidden;
    min-height: clamp(320px, 42vw, 520px);
    background: #d9d4c8;
}

.about-vision__media > img {
    width: 100%;
    height: 100%;
    min-height: inherit;
    object-fit: cover;
    display: block;
}

.about-vision__side {
    position: absolute;
    left: .9rem;
    top: 50%;
    transform: translateY(-50%) rotate(180deg);
    writing-mode: vertical-rl;
    margin: 0;
    z-index: 2;
    font-size: .62rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: rgba(247, 245, 239, .95);
    font-weight: 600;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
    pointer-events: none;
    white-space: nowrap;
}

.about-vision__caption {
    position: absolute;
    right: 1.15rem;
    bottom: 1.15rem;
    left: auto;
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 0;
    max-width: min(52%, 18rem);
    justify-content: flex-end;
    text-align: right;
    font-size: .58rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: rgba(247, 245, 239, .95);
    font-weight: 600;
    line-height: 1.35;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

.about-vision__caption i {
    display: block;
    width: 2.4rem;
    height: 1px;
    flex: 0 0 auto;
    background: rgba(247, 245, 239, .7);
}

.about-vision__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(7.5rem, 9.5rem);
    gap: 1.25rem;
    margin-top: clamp(2rem, 4vw, 3rem);
    align-items: stretch;
}

.about-vision__cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem 1.15rem;
    min-width: 0;
}

.about-vision__card {
    min-width: 0;
    text-align: center;
}

.about-vision__card-media {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: visible;
    margin-bottom: 1.15rem;
    background: #e4e0d6;
}

.about-vision__card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.about-vision__card-icon {
    position: absolute;
    left: .55rem;
    top: -.7rem;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 50%;
    background: #fff;
    color: #4f5335;
    box-shadow: 0 2px 10px rgba(47, 50, 31, .12);
}

.about-vision__card-icon svg,
.about-vision__card-icon img {
    width: 1.15rem;
    height: 1.15rem;
    display: block;
    object-fit: contain;
}

.about-vision__card h3 {
    margin: 0 0 .55rem;
    font-family: var(--font-display);
    font-size: clamp(.95rem, 1.5vw, 1.15rem);
    font-weight: 500;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #3f432a;
}

.about-vision__card-rule {
    display: block;
    width: 2.1rem;
    height: 1px;
    margin: 0 auto;
    background: rgba(79, 83, 53, .35);
}

.about-vision__end {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 100%;
    padding: 1.25rem 1rem;
    background: #4f5335;
    color: rgba(247, 245, 239, .92);
    overflow: hidden;
    text-align: center;
}

.about-vision__end::before {
    content: "";
    position: absolute;
    inset: 12% 18%;
    background:
        radial-gradient(ellipse at 30% 40%, rgba(247, 245, 239, .08) 0, transparent 55%),
        radial-gradient(ellipse at 70% 65%, rgba(247, 245, 239, .06) 0, transparent 50%);
    pointer-events: none;
}

.about-vision__end span {
    position: relative;
    z-index: 1;
    writing-mode: horizontal-tb;
    transform: none;
    font-family: var(--font-display);
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 500;
    line-height: 1.35;
    text-align: center;
}

.about-vision__foot {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 1.25rem 2rem;
    margin-top: clamp(2rem, 4vw, 3rem);
    padding-top: 1.35rem;
    border-top: 1px solid rgba(79, 83, 53, .18);
}

.about-vision__brand img {
    display: block;
    height: clamp(3.6rem, 5.5vw, 5rem);
    width: auto;
}

.about-vision__foot-center,
.about-vision__foot-right {
    margin: 0;
    font-size: .62rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 600;
}

.about-vision__foot-center {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    text-align: center;
}

.about-vision__foot-center i {
    display: block;
    width: 2rem;
    height: 1px;
    background: rgba(79, 83, 53, .35);
}

.about-vision__foot-right { text-align: right; }

/* ---------- Folhas decorativas (SVG) ---------- */
.about-hero,
.about-manifesto,
.about-who,
.about-meaning,
.about-service,
.about-vision,
.about-quote,
.cta-band {
    position: relative;
}

.about-hero__grid,
.about-manifesto__grid,
.about-who__grid,
.about-meaning__grid,
.about-service > .container {
    position: relative;
}

.section-leaves {
    position: absolute;
    z-index: 0;
    pointer-events: none;
    color: #4f5335;
    opacity: .09;
    line-height: 0;
}

.section-leaves--dark {
    color: #f7f5ef;
    opacity: .12;
}

.section-leaves--panel {
    color: #f7f5ef;
    opacity: .2;
}

.section-leaves__svg {
    display: block;
    width: 100%;
    height: auto;
}

/* Variantes — sempre insetas, nunca coladas/cortadas na borda */
.section-leaves--sprig {
    left: max(1.25rem, 4%);
    bottom: max(1.5rem, 6%);
    width: min(120px, 18vw);
}

.section-leaves--fan {
    right: max(1.5rem, 5%);
    bottom: max(2rem, 8%);
    width: min(150px, 20vw);
    opacity: .08;
}

.section-leaves--pair {
    left: max(1.5rem, 5%);
    top: max(2rem, 10%);
    width: min(130px, 18vw);
    opacity: .08;
}

.section-leaves--trail {
    right: max(1.5rem, 4%);
    bottom: max(1.25rem, 5%);
    width: min(200px, 28vw);
    opacity: .07;
}

.section-leaves--corner {
    right: max(1.25rem, 3%);
    top: max(1.5rem, 6%);
    width: min(110px, 16vw);
    opacity: .08;
}

.section-leaves--mono {
    left: max(1.5rem, 4%);
    top: max(2rem, 12%);
    width: min(100px, 15vw);
    opacity: .08;
}

.section-leaves--twin {
    right: max(2rem, 6%);
    top: max(2rem, 10%);
    width: min(90px, 14vw);
    opacity: .07;
}

.about-who__stat {
    overflow: hidden;
}

.about-vision__end {
    overflow: hidden;
}

.about-who__stat > .section-leaves--panel {
    right: .35rem;
    bottom: .2rem;
    left: auto;
    top: auto;
    width: 5.5rem;
    opacity: .22;
}

.about-vision__end > .section-leaves--panel {
    right: .4rem;
    bottom: .35rem;
    left: auto;
    top: auto;
    width: 6.5rem;
    opacity: .26;
}

.about-who__stat > *:not(.section-leaves),
.about-vision__end > *:not(.section-leaves) {
    position: relative;
    z-index: 1;
}

.about-quote > .section-leaves {
    right: max(1.5rem, 5%);
    bottom: max(2rem, 10%);
    width: min(120px, 18vw);
    opacity: .12;
}

.cta-band > .section-leaves {
    left: max(1.5rem, 4%);
    bottom: max(1.5rem, 8%);
    width: min(110px, 16vw);
    opacity: .12;
}

@media (max-width: 640px) {
    .section-leaves--sprig,
    .section-leaves--fan,
    .section-leaves--pair,
    .section-leaves--trail,
    .section-leaves--corner,
    .section-leaves--mono,
    .section-leaves--twin {
        width: min(88px, 26vw);
        opacity: .06;
    }
}

@media (max-width: 980px) {
    .about-vision__hero { grid-template-columns: 1fr; }
    .about-vision__row {
        grid-template-columns: 1fr;
    }
    .about-vision__end {
        min-height: 6.5rem;
    }
    .about-vision__cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .about-vision__cards { grid-template-columns: 1fr 1fr; gap: 1.25rem .85rem; }
    .about-vision__side {
        left: .75rem;
        font-size: .55rem;
    }
    .about-vision__caption {
        max-width: 70%;
        font-size: .52rem;
    }
    .about-vision__foot {
        grid-template-columns: 1fr;
        text-align: center;
        justify-items: center;
        gap: .85rem;
    }
    .about-vision__foot-right { text-align: center; }
}

.about-quote,
.michelle-quote {
    position: relative;
    min-height: 58vh;
    display: grid;
    place-items: center;
    overflow: hidden;
    color: #fff;
    text-align: center;
}

.about-quote__content {
    position: relative;
    z-index: 2;
    max-width: 720px;
    padding: 2rem;
}

.michelle-method,
.life-pillars {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    margin-top: 2rem;
}

.life-pillars {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 1.25rem 1.75rem;
    margin-top: 1.75rem;
    padding-top: 0;
    border-top: 0;
}

.michelle-method article,
.life-pillars article {
    border-top: 1px solid var(--color-border);
    padding-top: 1rem;
}

.life-pillars article {
    border-top: 0;
    padding-top: 0;
}

.life-pillars__head {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-bottom: .7rem;
}

.life-pillars__num {
    flex: 0 0 auto;
    font-size: .68rem;
    letter-spacing: .14em;
    color: var(--color-accent);
    opacity: .9;
}

.life-pillars__line {
    flex: 1 1 auto;
    height: 1px;
    background: var(--color-border);
}

.michelle-method h3,
.life-pillars h3 {
    font-family: var(--font-display);
    font-size: 1.55rem;
    font-weight: 500;
    margin-bottom: .45rem;
}

.life-pillars h3 {
    font-size: 1.15rem;
    line-height: 1.25;
    margin: 0 0 .3rem;
    letter-spacing: .01em;
}

.life-pillars p {
    color: var(--color-text-soft);
    font-size: .88rem;
    line-height: 1.45;
    margin: 0;
    max-width: 28ch;
}

.michelle-quote blockquote {
    position: relative;
    z-index: 2;
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    max-width: 18ch;
    line-height: 1.2;
    margin: 0;
}

.michelle-story .lead,
.section-center {
    margin-top: 1.2rem;
}

.section-center { text-align: center; }

.section-center .lead {
    margin-left: auto;
    margin-right: auto;
}

.process-track {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1rem;
    margin-top: 2rem;
}

.process-track article {
    border-top: 1px solid var(--color-border);
    padding-top: .9rem;
}

.process-track .num {
    font-size: .72rem;
    letter-spacing: .14em;
    color: var(--color-accent);
    margin-bottom: .5rem;
}

.process-track h3 {
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 500;
}

.sell-form-layout,
.contact-layout {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 3rem;
    align-items: start;
}

.contact-direct a {
    display: block;
    margin: .35rem 0;
    color: var(--color-primary);
}

.faq-list details,
.faq-list .faq-item {
    border-bottom: 1px solid var(--color-border);
    padding: 0;
}

.faq-list summary,
.faq-list .faq-item__q {
    cursor: pointer;
    font-family: var(--font-display);
    font-size: clamp(1.15rem, 2.2vw, 1.4rem);
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 0;
    color: var(--color-text);
}

.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::marker { content: ''; }

.faq-list .faq-item__q::after {
    content: '+';
    flex: 0 0 auto;
    width: 1.5rem;
    height: 1.5rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    display: grid;
    place-items: center;
    font-size: .95rem;
    line-height: 1;
    color: var(--color-primary);
    transition: transform .2s ease, background .2s ease, color .2s ease;
}

.faq-list details[open] > .faq-item__q::after {
    content: '−';
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    color: #fff;
}

.faq-list .faq-item__a {
    padding: 0 0 1.15rem;
}

.faq-list p,
.faq-list .faq-item__a p {
    color: var(--color-text-soft);
    margin: 0;
    max-width: 42rem;
    line-height: 1.65;
}

.landing-header {
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.5rem;
    background: rgba(247,245,239,.92);
    position: sticky;
    top: 0;
    z-index: 50;
}

.landing-footer {
    background: var(--color-primary-dark);
    color: rgba(247,245,239,.8);
    text-align: center;
    padding: 2rem 1rem;
    font-size: .85rem;
}

/* legacy mosaic kept for safety but unused on home */
.mosaic {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
}

.mosaic__item {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 10;
}

.mosaic__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.property-special--full .property-special__body { max-width:none; width:100%; }
.property-location__map { margin-top:1.5rem; }
.property-location__map iframe { width:100%; height:420px; border:0; display:block; }
.property-location__highlights--4 {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1.25rem 1.5rem;
  list-style:none;
  margin:1.75rem 0 0;
  padding:0;
}
.property-location__highlights--4 li { display:flex; flex-direction:column; gap:.35rem; }
.property-location__highlight-icon {
  display:inline-flex;
  width:2rem;
  height:2rem;
  color:var(--color-primary-dark, #303522);
  margin-bottom:.15rem;
}
.property-location__highlight-icon svg { width:100%; height:100%; }
.property-location__highlight-icon img,
.property-location__highlight-icon .property-overview-item__icon-img {
  width:100%;
  height:100%;
  object-fit:contain;
}
.property-location__highlights--4 strong { font-size:1.05rem; }
.property-living-panel, .property-consultancy-panel { margin-top:0; }
@media (max-width:1000px) {
  .property-location__highlights--4 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .property-location__highlights--4 { grid-template-columns:1fr; }
}

/* ---------- Alphavita Localizacao ---------- */
.alpha-location {
    background: #eeece5;
    position: relative;
    overflow: hidden;
}

.alpha-location--bg-image {
    background-color: #eeece5;
}

.alpha-location--bg-image::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(238, 236, 229, .72);
    pointer-events: none;
}

.alpha-location > .container {
    position: relative;
    z-index: 1;
}

.alpha-location__top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: clamp(1.75rem, 4vw, 3.5rem);
    align-items: center;
}

.alpha-location__tag {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin: 0 0 1.1rem;
    font-size: .72rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 500;
}

.alpha-location__tag-line {
    flex: 1 1 auto;
    max-width: 7rem;
    height: 1px;
    background: rgba(79, 83, 53, .28);
}

.alpha-location__title {
    margin: 0 0 1rem;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(2.1rem, 4.2vw, 3.35rem);
    line-height: 1.08;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--color-primary-dark, #2f321f);
}

.alpha-location__subtitle {
    margin: 0 0 .85rem;
    font-size: 1.05rem;
    color: #4a4b45;
}

.alpha-location__body {
    margin: 0;
    max-width: 34rem;
    font-size: .98rem;
    line-height: 1.65;
    color: #5c5d56;
}

.alpha-location__rule {
    display: block;
    width: 4.5rem;
    height: 1px;
    margin: 1.35rem 0 1rem;
    background: rgba(79, 83, 53, .28);
}

.alpha-location__keywords {
    margin: 0;
    font-size: .7rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 500;
}

.alpha-location__map {
    min-width: 0;
}

.alpha-location__map-frame {
    position: relative;
    display: block;
    width: 100%;
    border-radius: 14px;
    overflow: hidden;
    background: #e7e4db;
    box-shadow: 0 18px 40px rgba(40, 42, 30, .08);
    aspect-ratio: 4 / 3;
    isolation: isolate;
}

.alpha-location__map-media {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.alpha-location__map-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.alpha-location__map-media--empty {
    background:
        linear-gradient(135deg, rgba(255,255,255,.35), transparent 40%),
        repeating-linear-gradient(0deg, transparent, transparent 22px, rgba(79,83,53,.05) 22px, rgba(79,83,53,.05) 23px),
        repeating-linear-gradient(90deg, transparent, transparent 22px, rgba(79,83,53,.05) 22px, rgba(79,83,53,.05) 23px),
        #e4e1d7;
}

.alpha-location__compass {
    position: absolute;
    top: .85rem;
    right: .85rem;
    z-index: 2;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: .1rem;
    color: #3f4234;
    opacity: .75;
    pointer-events: none;
}

.alpha-location__compass small {
    font-size: .62rem;
    letter-spacing: .08em;
    font-weight: 600;
}

.alpha-location__pin {
    position: absolute;
    left: 50%;
    top: 46%;
    z-index: 2;
    transform: translate(-50%, -50%);
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    width: max-content;
    max-width: calc(100% - 2rem);
    padding: .55rem .8rem;
    background: #2f321f;
    color: #f4f1ea;
    border-radius: 4px;
    font-size: .68rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    font-weight: 600;
    white-space: nowrap;
    box-shadow: 0 10px 24px rgba(20, 24, 19, .22);
    pointer-events: none;
}

.alpha-location__pin-ico {
    display: inline-flex;
    flex: 0 0 auto;
    color: #cfc6b0;
}

.alpha-location__map-cta {
    position: absolute;
    right: .9rem;
    bottom: .9rem;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    width: max-content;
    max-width: calc(100% - 1.8rem);
    padding: .55rem .85rem;
    background: #fff;
    border: 1px solid rgba(79, 83, 53, .18);
    border-radius: 4px;
    color: #2f321f;
    font-size: .68rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 600;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(20, 24, 19, .1);
    transition: background .2s ease, transform .2s ease;
}

.alpha-location__map-cta:hover {
    background: #f7f5ef;
    transform: translateY(-1px);
}

.alpha-location__topics {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0;
    margin-top: clamp(2.25rem, 4vw, 3.25rem);
    padding-top: clamp(1.5rem, 3vw, 2rem);
    border-top: 1px solid rgba(79, 83, 53, .14);
}

.alpha-location__topic {
    padding: 0 1rem;
    border-right: 1px solid rgba(79, 83, 53, .14);
    min-width: 0;
}

.alpha-location__topic:first-child {
    padding-left: 0;
}

.alpha-location__topic:last-child {
    border-right: 0;
    padding-right: 0;
}

.alpha-location__topic-icon {
    width: 1.65rem;
    height: 1.65rem;
    color: #2f321f;
    margin-bottom: .7rem;
}

.alpha-location__topic-icon svg,
.alpha-location__topic-icon img,
.alpha-location__topic-icon .property-overview-item__icon-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}

.alpha-location__topic-line {
    display: block;
    width: 1.75rem;
    height: 1px;
    background: rgba(79, 83, 53, .28);
    margin-bottom: .85rem;
}

.alpha-location__topic h3 {
    margin: 0 0 .55rem;
    font-family: var(--font-body, inherit);
    font-size: .72rem;
    line-height: 1.35;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 600;
    color: #2f321f;
}

.alpha-location__topic p {
    margin: 0;
    font-size: .84rem;
    line-height: 1.5;
    color: #5c5d56;
}

@media (max-width: 1100px) {
    .alpha-location__topics {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        row-gap: 1.75rem;
    }
    .alpha-location__topic:nth-child(3n) { border-right: 0; padding-right: 0; }
    .alpha-location__topic:nth-child(3n + 1) { padding-left: 0; }
    .alpha-location__topic:not(:nth-child(3n)) { padding-right: 1rem; }
    .alpha-location__topic:not(:nth-child(3n + 1)) { padding-left: 1rem; }
}

@media (max-width: 860px) {
    .alpha-location__top {
        grid-template-columns: 1fr;
    }
    .alpha-location__map-frame {
        aspect-ratio: 16 / 11;
        max-width: 640px;
    }
}

@media (max-width: 640px) {
    .alpha-location__topics {
        grid-template-columns: 1fr 1fr;
        row-gap: 1.5rem;
    }
    .alpha-location__topic {
        padding: 0 .75rem;
        border-right: 1px solid rgba(79, 83, 53, .14);
    }
    .alpha-location__topic:nth-child(2n) { border-right: 0; padding-right: 0; }
    .alpha-location__topic:nth-child(2n + 1) { padding-left: 0; }
    .alpha-location__pin {
        font-size: .58rem;
        padding: .45rem .65rem;
        white-space: normal;
        text-align: center;
        justify-content: center;
    }
}

/* ---------- Alphavita Estrutura ---------- */
.alpha-structure {
    background: #f5f3ef;
    position: relative;
    overflow: hidden;
}
.alpha-structure--bg-image::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(245, 243, 239, .78);
    pointer-events: none;
}
.alpha-structure > .container { position: relative; z-index: 1; }
.alpha-structure__layout {
    display: flex;
    flex-direction: column;
    gap: clamp(2rem, 4vw, 3.25rem);
    min-width: 0;
}
.alpha-structure__banner {
    position: relative;
    width: 100%;
    aspect-ratio: 3.6 / 1;
    overflow: hidden;
    background: #e4e0d6;
    scroll-margin-top: calc(var(--header-h) + 16px);
}
.alpha-structure__banner.is-empty {
    background:
        linear-gradient(160deg, rgba(79, 83, 53, .16), rgba(79, 83, 53, .04)),
        #e4e0d6;
}
.alpha-structure__banner-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    opacity: 0;
    transform: scale(1.045);
    transition: opacity .45s ease, transform .5s cubic-bezier(.22, .61, .36, 1);
}
.alpha-structure__banner-img.is-current {
    opacity: 1;
    transform: scale(1);
    z-index: 1;
}
.alpha-structure__content { min-width: 0; padding: .15rem 0 .5rem; }
.alpha-structure__tag {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin: 0 0 1rem;
    font-size: .72rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: #8a877c;
    font-weight: 500;
}
.alpha-structure__tag-line {
    flex: 1 1 auto;
    height: 1px;
    background: rgba(196, 165, 116, .55);
}
.alpha-structure__title {
    margin: 0 0 1rem;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(2rem, 3.8vw, 3.1rem);
    line-height: 1.08;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #1f2118;
}
.alpha-structure__title-accent {
    color: #4f5335;
    display: block;
}
.alpha-structure__subtitle {
    margin: 0 0 .75rem;
    color: #5c5d56;
    font-size: 1rem;
}
.alpha-structure__body {
    margin: 0 0 1.75rem;
    max-width: 38rem;
    color: #5c5d56;
    font-size: .96rem;
    line-height: 1.65;
}
.alpha-structure__topics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    align-items: stretch;
}
.alpha-structure__card {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    padding: 1.15rem 1.1rem 3.35rem;
    border: 1px solid rgba(79, 83, 53, .16);
    border-radius: 12px;
    background: rgba(255, 255, 255, .72);
    transition: border-color .25s ease, background .25s ease;
}
.alpha-structure__card.is-active {
    border-color: #4f5335;
    background: rgba(79, 83, 53, .06);
}
.alpha-structure__card-select {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: inherit;
    background: transparent;
    color: inherit;
    cursor: pointer;
}
.alpha-structure__card-select:focus {
    outline: none;
}
.alpha-structure__card-select:focus-visible {
    outline: 2px solid #4f5335;
    outline-offset: -3px;
}
.alpha-structure__card-icon {
    width: 1.55rem;
    height: 1.55rem;
    color: #4f5335;
    margin-bottom: .85rem;
}
.alpha-structure__card-icon svg,
.alpha-structure__card-icon img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
}
.alpha-structure__title,
.alpha-structure__card h3,
.alpha-structure__card p {
    overflow-wrap: break-word;
}
.alpha-structure__card h3 {
    margin: 0 0 .45rem;
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 500;
    color: #2f321f;
    line-height: 1.2;
}
.alpha-structure__card p {
    margin: 0 0 1rem;
    flex: 1 1 auto;
    font-size: .84rem;
    line-height: 1.5;
    color: #6a6b63;
}
.alpha-structure__card-btn {
    position: absolute;
    right: 1rem;
    bottom: 1rem;
    z-index: 2;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border-radius: 999px;
    border: 1px solid rgba(79, 83, 53, .28);
    color: #4f5335;
    text-decoration: none;
    background: transparent;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.alpha-structure__card.is-active .alpha-structure__card-btn {
    background: #4f5335;
    border-color: #4f5335;
    color: #f5f3ef;
}
a.alpha-structure__card-btn:hover {
    background: #4f5335;
    border-color: #4f5335;
    color: #f5f3ef;
}
a.alpha-structure__card-btn:focus-visible {
    outline: 2px solid #4f5335;
    outline-offset: 3px;
}
.alpha-structure__foot {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.25rem;
    margin-top: 1.5rem;
    padding-top: .35rem;
}
.alpha-structure__note {
    margin: 0;
    max-width: 22rem;
    font-size: .72rem;
    line-height: 1.45;
    color: #8a877c;
}
.alpha-structure__motto {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .4rem;
    margin: 0;
    font-size: .62rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #c4a574;
    font-weight: 600;
    white-space: nowrap;
}
.alpha-structure__motto-line {
    display: block;
    width: 2.6rem;
    height: 1px;
    background: #c4a574;
}
@media (max-width: 980px) {
    .alpha-structure__banner { aspect-ratio: 2.4 / 1; }
    .alpha-structure__title { font-size: clamp(1.85rem, 4.2vw, 2.6rem); }
    .alpha-structure__topics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .alpha-structure__banner { aspect-ratio: 16 / 9; }
    .alpha-structure__title { font-size: clamp(1.7rem, 8.5vw, 2.25rem); }
    .alpha-structure__topics { grid-template-columns: 1fr; }
    .alpha-structure__foot { flex-direction: column; align-items: flex-start; }
    .alpha-structure__motto { align-items: flex-start; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
    .alpha-structure__banner-img,
    .alpha-structure__card,
    .alpha-structure__card-btn {
        transition: none;
    }
    .alpha-structure__banner-img {
        transform: none;
    }
}
/* ---------- Alphavita Para quem e ---------- */
.alpha-forwhom {
    background: #f7f6f2;
    position: relative;
    overflow: hidden;
}
.alpha-forwhom--bg-image::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(247, 246, 242, .78);
    pointer-events: none;
}
.alpha-forwhom > .container { position: relative; z-index: 1; }
.alpha-forwhom__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr) minmax(0, 1.05fr);
    gap: clamp(1.25rem, 3vw, 2.5rem);
    align-items: stretch;
}
.alpha-forwhom__copy { min-width: 0; padding-top: .35rem; }
.alpha-forwhom__tag {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .55rem;
    margin: 0 0 1.1rem;
    font-family: var(--font-display);
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 500;
}
.alpha-forwhom__tag-line {
    display: block;
    width: 2.6rem;
    height: 1px;
    background: rgba(79, 83, 53, .35);
}
.alpha-forwhom__title {
    margin: 0 0 1.1rem;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(1.85rem, 3.4vw, 2.75rem);
    line-height: 1.12;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #2a2c22;
}
.alpha-forwhom__subtitle {
    margin: 0 0 .75rem;
    color: #5c5d56;
}
.alpha-forwhom__body {
    margin: 0;
    max-width: 26rem;
    font-size: .95rem;
    line-height: 1.65;
    color: #5c5d56;
}
.alpha-forwhom__rule {
    display: block;
    width: 3.2rem;
    height: 1px;
    margin: 1.35rem 0 1rem;
    background: rgba(79, 83, 53, .35);
}
.alpha-forwhom__bottom {
    margin: 0;
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 500;
}
.alpha-forwhom__media {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    background: #e7e4db;
}
.alpha-forwhom__media img,
.alpha-forwhom__media-empty {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.alpha-forwhom__media-empty {
    background: linear-gradient(160deg, rgba(79,83,53,.16), rgba(79,83,53,.04)), #ddd8cc;
}
.alpha-forwhom__overlay {
    position: absolute;
    top: 1.2rem;
    right: 1rem;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin: 0;
    max-width: 8.5rem;
    text-align: left;
    font-size: .58rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #fff;
    font-weight: 600;
    line-height: 1.4;
    text-shadow: 0 1px 8px rgba(0,0,0,.25);
}
.alpha-forwhom__overlay-line {
    flex: 0 0 auto;
    width: 1px;
    min-height: 2.6rem;
    background: rgba(255,255,255,.85);
}
.alpha-forwhom__list {
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding-top: .2rem;
}
.alpha-forwhom__list-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .45rem;
    margin: 0 0 1.1rem;
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 600;
}
.alpha-forwhom__list-head-lines,
.alpha-forwhom__list-foot-lines {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.alpha-forwhom__list-head-lines i,
.alpha-forwhom__list-foot-lines i {
    display: block;
    width: 2.4rem;
    height: 1px;
    background: rgba(79, 83, 53, .35);
}
.alpha-forwhom__items {
    list-style: none;
    margin: 0;
    padding: 0;
}
.alpha-forwhom__item {
    display: grid;
    grid-template-columns: 2.4rem 1fr;
    gap: .85rem;
    align-items: center;
    padding: .95rem 0;
    border-top: 1px solid rgba(79, 83, 53, .14);
}
.alpha-forwhom__item:last-child { border-bottom: 1px solid rgba(79, 83, 53, .14); }
.alpha-forwhom__item-icon {
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 999px;
    border: 1px solid rgba(79, 83, 53, .22);
    display: grid;
    place-items: center;
    color: #4f5335;
    background: rgba(255,255,255,.45);
}
.alpha-forwhom__item-icon svg,
.alpha-forwhom__item-icon img {
    width: 1.15rem;
    height: 1.15rem;
    display: block;
    object-fit: contain;
}
.alpha-forwhom__item p {
    margin: 0;
    font-family: var(--font-display);
    font-size: .98rem;
    line-height: 1.4;
    color: #2f321f;
}
.alpha-forwhom__list-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .85rem;
    margin: 1.15rem 0 0;
    font-size: .62rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #6f7067;
    font-weight: 600;
}
@media (max-width: 1100px) {
    .alpha-forwhom__grid {
        grid-template-columns: 1fr 1fr;
    }
    .alpha-forwhom__list { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
    .alpha-forwhom__grid { grid-template-columns: 1fr; }
    .alpha-forwhom__media { min-height: 380px; }
}

/* Alphavita — Visão Nova Vita */
.alpha-vision {
    position: relative;
    overflow: hidden;
    padding: clamp(3.5rem, 7vw, 5.5rem) 0;
    background: var(--color-primary-dark);
    color: rgba(247, 245, 239, .92);
    text-align: center;
}
.alpha-vision--has-media {
    min-height: clamp(420px, 52vh, 620px);
    display: grid;
    place-items: center;
}
.alpha-vision__shade {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(48, 53, 34, .78) 0%, rgba(48, 53, 34, .62) 45%, rgba(48, 53, 34, .8) 100%);
}
.alpha-vision__content {
    position: relative;
    z-index: 2;
    max-width: 48rem;
}
.alpha-vision .eyebrow {
    color: var(--color-accent);
}
.alpha-vision .display-sm {
    color: #fff;
    max-width: 18ch;
    margin-inline: auto;
}
.alpha-vision .section-body--on-dark,
.alpha-vision .section-subtitle--on-dark {
    margin-inline: auto;
    max-width: 40rem;
}
.alpha-vision .hero-actions {
    justify-content: center;
}