/* =====================================================
   GOMES JUNIOR — SUBPÁGINAS
   Port fiel do design React/Tailwind para CSS clássico.
   Cobre: institucional, regiao, contato, trabalhe-conosco,
   empreendimentos (lista), empreendimento (detalhe),
   blog (lista), post, 404, política de privacidade.
   ===================================================== */

/* ---------- Tokens auxiliares ---------- */
.sub { background: #fff }
.sub-soft { background: var(--color-bg-soft) }
.has-text-centered { text-align: center }

.container-7xl {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 24px;
    width: 100%;
    
}

.section-py { padding: 80px 0 }
.section-py-lg { padding: 96px 0 }
.emp-listing-page.section-py { padding-top: 80px }

@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    .section-py { padding: 56px 0 }
    .section-py-lg { padding: 64px 0 }
    .emp-listing-page.section-py { padding-top: 48px }
}

.tag-pill {
    display: inline-block;
    padding: 6px 16px;
    background: var(--color-bg-soft);
    border-radius: var(--radius-full);
    margin-bottom: 24px;
}
.tag-pill span {
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-gray-600);
}
.tag-pill.on-light { background: #fff }

.accent-bar {
    height: 4px;
    width: 64px;
    background: var(--color-primary);
    margin-bottom: 24px;
    border-radius: 2px;
}
.accent-bar.center { margin-left: auto; margin-right: auto }

.heading-1 {
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 24px;
    line-height: 1.15;
}
.heading-2 {
    font-size: 1.875rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 16px;
    line-height: 1.2;
}
.heading-3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 12px;
}
.lead-text {
    font-size: 1.125rem;
    color: var(--color-gray-700);
    line-height: 1.7;
    max-width: 768px;
}
.lead-text.center { margin-left: auto; margin-right: auto; text-align: center }

@media (min-width: 1024px) {
    .heading-1 { font-size: 3rem }
    .heading-2 { font-size: 2.25rem }
    .lead-text { font-size: 1.25rem }
}

/* Botões em estilo React */
.btn-react {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #fff;
    padding: 14px 32px;
    border-radius: var(--radius);
    font-size: 1rem;
    font-weight: 500;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: var(--btn-base-fill, transparent);
    transition: color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1)), border-color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1)), background-color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
    cursor: pointer;
    border: 1px solid transparent;
    --btn-base-fill: var(--color-primary);
    --btn-hover-fill: var(--color-dark);
    --btn-hover-color: #fff;
    --btn-hover-border: var(--color-dark);
}

.btn-react::before,
.btn-soft::before,
.btn-emp-cta::before,
body.page-institucional .inst-btn::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    background: var(--btn-hover-fill, var(--color-dark));
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .45s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
    z-index: -1;
}

.btn-react > *,
.btn-soft > *,
.btn-emp-cta > *,
body.page-institucional .inst-btn > * {
    position: relative;
    z-index: 1;
}

.btn-react.btn-block { width: 100%; padding: 16px }
.btn-react .arrow { transition: transform .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1)); display: inline-flex }

.btn-soft {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: var(--color-gray-700);
    padding: 14px 32px;
    border-radius: var(--radius);
    font-weight: 500;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: var(--btn-base-fill, transparent);
    transition: color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1)), border-color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1)), background-color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
    border: 1px solid transparent;
    cursor: pointer;
    --btn-base-fill: var(--color-bg-soft);
    --btn-hover-fill: var(--color-dark);
    --btn-hover-color: #fff;
    --btn-hover-border: var(--color-dark);
}

/* ==========================================================
   HERO ESCURO COM IMAGEM (Institucional, CTA banners)
   ========================================================== */
.hero-dark {
    position: relative;
    height: 500px;
    display: flex;
    align-items: center;
    overflow: hidden;
}
.hero-dark.tall { height: 600px }
.hero-dark .bg {
    position: absolute;
    inset: 0;
}
.hero-dark .bg img {
    width: 100%; height: 100%;
    object-fit: cover;
}
.hero-dark .overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to right, rgba(46,46,46,0.95), rgba(46,46,46,0.8) 50%, transparent);
}
.hero-dark .overlay.center {
    background: rgba(46,46,46,0.8);
}
.hero-dark .container-7xl {
    position: relative;
    z-index: 2;
}
.hero-dark h1 {
    font-size: 2.5rem;
    color: #fff;
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: 24px;
    max-width: 720px;
}
.hero-dark .hero-sub {
    font-size: 1.125rem;
    color: rgba(255,255,255,0.9);
    line-height: 1.6;
    max-width: 720px;
}
.hero-dark .hero-sub.center { margin-left: auto; margin-right: auto; text-align: center }
.hero-dark.center-text h1 { max-width: none; text-align: center }
.hero-dark.center-text { text-align: center }

@media (min-width: 1024px) {
    .hero-dark h1 { font-size: 4.5rem }
    .hero-dark.tall { height: 600px }
    .hero-dark .hero-sub { font-size: 1.5rem }
}

/* Hero claro (Contato, Trabalhe Conosco, Blog, Empreendimentos lista) */
.hero-light {
    padding: 80px 0;
    background: #fff;
}
.hero-light.soft { background: var(--color-bg-soft) }
.hero-light.center { text-align: center }
.hero-light h1 {
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 24px;
    line-height: 1.15;
}
.hero-light p {
    font-size: 1.25rem;
    color: var(--color-gray-700);
    line-height: 1.6;
    max-width: 768px;
}
.hero-light.center p { margin-left: auto; margin-right: auto }

@media (min-width: 1024px) {
    .hero-light { padding: 96px 0 }
    .hero-light h1 { font-size: 3rem }
}

/* Hero estilo Região com fonte script */
.hero-region {
    position: relative;
    padding: 128px 0;
    overflow: hidden;
    min-height: 600px;
    display: flex;
    align-items: center;
    background: #fff;
}
.hero-region .bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: bottom;
    background-repeat: no-repeat;
}
.hero-region .container-7xl { position: relative; z-index: 2 }
.hero-region .script-title {
    font-family: var(--font-script);
    font-size: 4.5rem;
    color: var(--color-dark);
    margin-bottom: 24px;
    line-height: 1;
}
.hero-region .subtitle {
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--color-dark);
    margin-bottom: 32px;
}
.hero-region .desc {
    font-size: 1.125rem;
    color: var(--color-gray-700);
    line-height: 1.7;
    max-width: 720px;
}

@media (min-width: 1024px) {
    .hero-region .script-title { font-size: 6rem }
    .hero-region .subtitle { font-size: 1.875rem }
}

/* ==========================================================
   GRIDS GENÉRICOS DE CARDS
   ========================================================== */
.grid-cols-2 { display: grid; grid-template-columns: 1fr; gap: 24px }
.grid-cols-3 { display: grid; grid-template-columns: 1fr; gap: 24px }
.grid-cols-4 { display: grid; grid-template-columns: 1fr; gap: 32px }
.gap-6 { gap: 24px }
.gap-8 { gap: 32px }
.gap-12 { gap: 48px }
.gap-16 { gap: 64px }

@media (min-width: 768px) {
    .grid-cols-2 { grid-template-columns: repeat(2, 1fr) }
    .grid-cols-3 { grid-template-columns: repeat(2, 1fr) }
    .grid-cols-4 { grid-template-columns: repeat(2, 1fr) }
}
@media (min-width: 1024px) {
    .grid-cols-3 { grid-template-columns: repeat(3, 1fr) }
    .grid-cols-4 { grid-template-columns: repeat(4, 1fr) }
}

/* Stats (Institucional, Região) */
.stat-card {
    background: var(--color-bg-soft);
    padding: 32px;
    border-radius: var(--radius);
}
.stat-card .num {
    font-size: 3rem;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 8px;
    line-height: 1;
}
.stat-card .lbl {
    font-size: 1.125rem;
    font-weight: 500;
    color: var(--color-dark);
}
.stat-card.compact { padding: 24px }
.stat-card.compact .num { font-size: 2.25rem }
.stat-card.compact .lbl { font-size: 1rem; font-weight: 400; color: var(--color-gray-700) }

/* Layout 2 colunas Institucional (texto + stats) */
.split-text-stats {
    display: grid;
    grid-template-columns: 1fr;
    gap: 64px;
    align-items: start;
}
@media (min-width: 1024px) {
    .split-text-stats { grid-template-columns: 1.2fr 0.8fr }
}
.split-text-stats .col-stats { display: flex; flex-direction: column; gap: 24px }
.split-text-stats .text-block { display: flex; flex-direction: column; gap: 24px }
.split-text-stats .text-block p {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--color-gray-700);
}
@media (min-width: 1024px) {
    .split-text-stats .text-block p { font-size: 1.125rem }
}

/* Valor card (Institucional) */
.value-card {
    background: #fff;
    padding: 32px;
    border-radius: var(--radius);
    text-align: center;
    transition: box-shadow .2s ease;
}
.value-card:hover { box-shadow: var(--shadow-lg) }
.value-card .icon-wrap {
    width: 64px; height: 64px;
    background: var(--color-primary);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    margin: 0 auto 24px;
}
.value-card .icon-wrap svg { width: 32px; height: 32px }
.value-card h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 12px;
}
.value-card p { color: var(--color-gray-700); line-height: 1.6 }

/* Benefit card (Trabalhe Conosco, sem fundo) */
.benefit-card { text-align: center }
.benefit-card .icon-wrap {
    width: 64px; height: 64px;
    background: var(--color-primary);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    margin: 0 auto 16px;
}
.benefit-card .icon-wrap svg { width: 32px; height: 32px }
.benefit-card h3 {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 8px;
}
.benefit-card p { color: var(--color-gray-700); line-height: 1.6 }

/* Section head centralizado com barra */
.section-head-center {
    text-align: center;
    margin-bottom: 64px;
}
.section-head-center h2 {
    font-size: 1.875rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 16px;
    line-height: 1.2;
}
.section-head-center p {
    font-size: 1.125rem;
    color: var(--color-gray-700);
    max-width: 640px;
    margin: 0 auto;
}
@media (min-width: 1024px) {
    .section-head-center h2 { font-size: 2.25rem }
}

/* ==========================================================
   PALAVRA DO PRESIDENTE
   ========================================================== */
.president-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 48px;
    align-items: center;
}
@media (min-width: 1024px) {
    .president-grid { grid-template-columns: 1fr 1fr; gap: 64px }
    .president-grid .col-img { order: 1 }
    .president-grid .col-text { order: 2 }
}
.president-img {
    position: relative;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,.25);
    aspect-ratio: 4/5;
}
.president-img img { width: 100%; height: 100%; object-fit: cover }
.president-quote-icon {
    width: 48px; height: 48px;
    color: var(--color-primary);
    opacity: 0.2;
    margin-bottom: 24px;
}
.president-text { display: flex; flex-direction: column; gap: 20px }
.president-text p {
    font-size: 1rem;
    color: var(--color-gray-700);
    line-height: 1.7;
}
.president-text p.italic { font-style: italic }
@media (min-width: 1024px) {
    .president-text p { font-size: 1.125rem }
}
.president-sign {
    margin-top: 32px;
    padding-top: 32px;
    border-top: 1px solid #e5e7eb;
}
.president-sign .name {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-dark);
}
.president-sign .role {
    font-size: 1.125rem;
    color: var(--color-gray-600);
}

/* ==========================================================
   CARDS DE CONTATO (Institucional / Contato / Footer info)
   ========================================================== */
.contact-info-card {
    background: #fff;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 32px;
}
@media (min-width: 1024px) {
    .contact-info-card { padding: 48px }
}
.contact-info-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}
@media (min-width: 768px) {
    .contact-info-grid { grid-template-columns: repeat(2, 1fr) }
}
@media (min-width: 1024px) {
    .contact-info-grid { grid-template-columns: repeat(4, 1fr) }
}
.contact-info-item .ic {
    width: 48px; height: 48px;
    background: var(--color-primary);
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    margin-bottom: 16px;
}
.contact-info-item .ic svg { width: 24px; height: 24px }
.contact-info-item h3 {
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 8px;
}
.contact-info-item p,
.contact-info-item a {
    color: var(--color-gray-700);
    font-size: 0.875rem;
    line-height: 1.5;
}
.contact-info-item a:hover { color: var(--color-primary) }

/* Linha tipo "ícone + texto" Contato */
.info-row {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
.info-row .ic {
    width: 48px; height: 48px;
    background: var(--color-primary);
    border-radius: var(--radius);
    display: flex; align-items: center; justify-content: center;
    color: #fff; flex-shrink: 0;
}
.info-row .ic svg { width: 24px; height: 24px }
.info-row h3 {
    font-weight: 700;
    font-size: 1.125rem;
    color: var(--color-dark);
    margin-bottom: 4px;
}
.info-row p { color: var(--color-gray-700); line-height: 1.5 }

/* ==========================================================
   ATRAÇÕES (Região)
   ========================================================== */
.attractions-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
@media (min-width: 768px) {
    .attractions-grid { grid-template-columns: repeat(2, 1fr) }
}
@media (min-width: 1024px) {
    .attractions-grid { grid-template-columns: repeat(3, 1fr) }
}
.attraction-card {
    background: #fff;
    padding: 24px;
    border-radius: var(--radius);
}
.attraction-card h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 8px;
}
.attraction-card p {
    color: var(--color-gray-700);
    line-height: 1.6;
    margin-bottom: 12px;
}
.attraction-card .distance {
    font-size: 0.875rem;
    color: var(--color-primary);
    font-weight: 500;
}

/* Iframe wrapper aspect */
.aspect-21-9 {
    aspect-ratio: 21/9;
    border-radius: var(--radius);
    overflow: hidden;
}
.aspect-4-3 {
    aspect-ratio: 4/3;
    border-radius: var(--radius);
    overflow: hidden;
}
.aspect-16-9 {
    aspect-ratio: 16/9;
    border-radius: var(--radius);
    overflow: hidden;
}
.aspect-21-9 iframe,
.aspect-4-3 iframe,
.aspect-16-9 iframe {
    width: 100%; height: 100%; border: 0;
}

/* ==========================================================
   FORMULÁRIOS (Contato, Trabalhe Conosco, Tenho Interesse)
   ========================================================== */
.form-react .form-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 24px;
}
@media (min-width: 768px) {
    .form-react .form-row.cols-2 { grid-template-columns: 1fr 1fr }
}
.form-react .form-group { margin-bottom: 24px }
.form-react label {
    display: block;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--color-gray-700);
    margin-bottom: 8px;
}
.form-react .form-control,
.form-react input[type="text"],
.form-react input[type="email"],
.form-react input[type="tel"],
.form-react input[type="file"],
.form-react select,
.form-react textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #d1d5db;
    border-radius: var(--radius);
    font-family: var(--font-base);
    font-size: 1rem;
    color: var(--color-text);
    background: #fff;
    transition: border-color .2s ease;
}
.form-react .form-control:focus,
.form-react input:focus,
.form-react select:focus,
.form-react textarea:focus {
    outline: none;
    border-color: var(--color-primary);
}
.form-react textarea { resize: vertical; min-height: 120px }

/* ==========================================================
   VAGAS ABERTAS (Trabalhe Conosco)
   ========================================================== */
.vagas-list { display: flex; flex-direction: column; gap: 0 }
.vaga-card {
    padding: 0 0 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.vaga-card:not(:last-child) {
    border-bottom: 1px solid rgba(17, 24, 39, 0.12);
    margin-bottom: 28px;
}
@media (min-width: 1024px) {
    .vaga-card { padding: 0 0 28px; flex-direction: row; align-items: center; justify-content: space-between }
}
.vaga-card h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 8px;
}
.vaga-card .meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 0.875rem;
    color: var(--color-gray-600);
}
.vaga-card .actions { white-space: nowrap }

.jobs-board {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.jobs-heading {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.jobs-heading .lead-text {
    margin: 0;
}

.jobs-benefits {
    margin-top: 40px;
}

.jobs-benefits .benefit-card {
    max-width: 260px;
    margin: 0 auto;
}

.jobs-section-divider {
    width: 100%;
    height: 1px;
    margin-top: 40px;
    background: rgba(17, 24, 39, 0.12);
}

.jobs-filter-panel,
.jobs-empty,
.jobs-bank,
.job-detail-shell,
.jobs-apply-shell {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}

.jobs-filter-panel {
    padding: 0 0 12px;
}

.jobs-filter-form {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
}

.jobs-filter-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.jobs-filter-field label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-gray-700);
}

.jobs-filter-field select {
    width: 100%;
    min-height: 52px;
    border: 1px solid rgba(17, 24, 39, 0.12);
    border-radius: var(--radius);
    background: #fff;
    color: var(--color-dark);
    padding: 0 16px;
}

.jobs-filter-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: end;
}

.btn-emp-ghost {
    color: var(--color-dark);
    border-color: rgba(17, 24, 39, 0.12);
    --btn-base-fill: transparent;
    --btn-hover-fill: var(--color-dark);
    --btn-hover-color: #fff;
    --btn-hover-border: var(--color-dark);
}

.jobs-empty {
    padding: 8px 0 0;
    text-align: left;
}

.jobs-empty h3 {
    margin-bottom: 12px;
    color: var(--color-dark);
}

.jobs-empty p {
    margin: 0;
    color: var(--color-gray-600);
}

.jobs-bank {
    padding: 32px 0 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
    border-top: 1px solid rgba(17, 24, 39, 0.12);
}

.jobs-bank-eyebrow,
.jobs-apply-selected-label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-primary);
}

.jobs-bank h3,
.jobs-apply-selected h2 {
    margin: 10px 0 12px;
    color: var(--color-dark);
}

.jobs-apply-selected p {
    margin: 0;
    color: var(--color-gray-600);
}

.jobs-bank p {
    margin: 0;
    color: var(--color-gray-600);
}

.hero-job-detail .job-detail-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    color: var(--color-gray-600);
    font-size: 0.9375rem;
}

.job-detail-shell {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.job-detail-body {
    width: 100%;
    max-width: 920px;
}

.job-detail-body h2 {
    margin-bottom: 20px;
}

.job-detail-content {
    max-width: 920px;
    color: var(--color-gray-700);
    line-height: 1.8;
}

.job-detail-content p:last-child {
    margin-bottom: 0;
}

.job-detail-actions,
.jobs-apply-submit {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding-top: 24px;
    border-top: 1px solid rgba(17, 24, 39, 0.12);
}

.jobs-apply-shell {
    width: 100%;
    max-width: 860px;
    margin: 0 auto;
}

.work-form-section {
    background: #fff;
}

.jobs-apply-selected {
    text-align: center;
    margin-bottom: 0;
}

.jobs-apply-form {
    width: 100%;
}

.jobs-apply-file {
    display: grid;
    gap: 10px;
}

.jobs-apply-file-name {
    font-size: 0.875rem;
    color: var(--color-gray-600);
}

@media (min-width: 1024px) {
    .jobs-filter-form {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        align-items: end;
    }

    .jobs-filter-actions {
        justify-content: flex-end;
    }

    .jobs-bank {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
    }
}

@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    .jobs-bank { padding-top: 24px }

    .job-detail-actions,
    .jobs-apply-submit {
        flex-direction: column;
    }

    .job-detail-actions .btn-emp-cta,
    .jobs-apply-submit .btn-emp-cta {
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================================
   BLOG LISTAGEM — categorias filtro
   ========================================================== */
.blog-cats {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 48px;
}
.blog-cat-pill {
    padding: 8px 24px;
    border-radius: var(--radius-full);
    background: var(--color-bg-soft);
    color: var(--color-gray-700);
    font-size: 0.875rem;
    transition: background .2s ease, color .2s ease;
    display: inline-block;
}
.blog-cat-pill:hover { background: #d1d5db }
.blog-cat-pill.is-active {
    background: var(--color-primary);
    color: #fff;
}
.blog-cat-pill.is-active:hover { background: var(--color-primary-dark) }

/* ==========================================================
   POST — header bg-soft + voltar + featured
   ========================================================== */
.post-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--color-primary);
    font-size: 0.875rem;
    margin-bottom: 24px;
    transition: color .2s ease;
}
.post-back:hover { color: var(--color-primary-dark) }
.post-back svg { width: 16px; height: 16px }

.post-header {
    background: var(--color-bg-soft);
    padding: 64px 0 48px;
}
.post-header .post-cat {
    display: inline-block;
    padding: 6px 16px;
    background: #fff;
    border-radius: var(--radius-full);
    font-size: 0.8125rem;
    color: var(--color-gray-700);
    margin-bottom: 24px;
}
.post-header h1 {
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 24px;
    line-height: 1.15;
    max-width: 900px;
}
.post-header .post-meta {
    color: var(--color-gray-600);
    font-size: 0.9375rem;
}
@media (min-width: 1024px) {
    .post-header { padding: 80px 0 56px }
    .post-header h1 { font-size: 3rem }
}

.post-featured {
    aspect-ratio: 21/9;
    overflow: hidden;
    border-radius: var(--radius);
}
.post-featured img { width: 100%; height: 100%; object-fit: cover }

.post-featured-section {
    padding-bottom: 20px;
}

.post-content-section {
    padding-top: 14px;
}

@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    .post-featured-section {
        padding-bottom: 18px;
    }

    .post-content-section {
        padding-top: 12px;
    }
}

.post-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}
@media (min-width: 1024px) {
    .post-layout { grid-template-columns: minmax(0, 1fr) 280px; gap: 48px }
}
.post-main { min-width: 0 }
.post-content-section .blog-sidebar { min-width: 0 }
@media (min-width: 1024px) {
    .post-content-section .blog-sidebar {
        position: relative;
        top: auto;
        min-height: 1px;
    }
}
.post-sidebar-spacer { display: none }
@media (min-width: 1024px) { .post-sidebar-spacer { display: block } }

.post-meta-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    color: var(--color-gray-600);
}
.post-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9375rem;
}
.post-meta-item svg {
    width: 18px;
    height: 18px;
}

.post-body .content-prose {
    max-width: none;
    margin: 0;
}
.post-body .content-prose h2:first-child { margin-top: 0 }

.privacy-policy-content {
    max-width: 860px;
    margin: 0;
}

body.page-politica .hero-light,
body.page-politica-de-privacidade .hero-light {
    padding-top: calc(var(--header-height) + 28px);
}

@media (min-width: 1024px) {
    body.page-politica .hero-light,
    body.page-politica-de-privacidade .hero-light {
        padding-top: calc(var(--header-height) + 56px);
    }
}

.privacy-policy-content h2 {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--color-dark);
    margin: 32px 0 14px;
    line-height: 1.3;
}

.privacy-policy-content h2:first-child {
    margin-top: 0;
}

.privacy-policy-content p,
.privacy-policy-content li {
    font-size: 1rem;
    line-height: 1.9;
    color: var(--color-gray-700);
}

.privacy-policy-content p {
    margin-bottom: 14px;
}

.privacy-policy-content ul {
    margin: 0 0 18px 0;
    padding-left: 22px;
}

.privacy-policy-content li + li {
    margin-top: 4px;
}

.privacy-policy-content a {
    color: var(--color-primary);
}

@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    .privacy-policy-content h2 {
        font-size: 1.2rem;
        margin-top: 26px;
    }

    .privacy-policy-content p,
    .privacy-policy-content li {
        font-size: 0.96rem;
        line-height: 1.8;
    }
}

.post-gallery {
    margin-top: 56px;
}
.post-gallery h2 {
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 24px;
}
.post-gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
@media (min-width: 768px) {
    .post-gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) }
}
.post-gallery-card {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.post-gallery-item {
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: var(--radius);
    position: relative;
    isolation: isolate;
}
.post-gallery-item::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: 0;
    background: rgba(15, 23, 42, 0);
    transition: background .35s ease, opacity .35s ease;
    pointer-events: none;
}
.post-gallery-item::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 48px;
    height: 48px;
    background: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ffffff'%3E%3Ccircle cx='12' cy='12' r='9' stroke-width='0.6'/%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='0.6' d='M12 8v8M8 12h8'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    opacity: 0;
    transform: translate(-50%, -50%) scale(.82);
    transition: opacity .3s ease, transform .35s cubic-bezier(.22,1,.36,1);
    z-index: 2;
    pointer-events: none;
}
.post-gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.post-gallery-item:hover img,
.post-gallery-item:focus-visible img { transform: scale(1.05) }
.post-gallery-item:hover::before,
.post-gallery-item:focus-visible::before {
    opacity: 1;
    background: rgba(15, 23, 42, .32);
}
.post-gallery-item:hover::after,
.post-gallery-item:focus-visible::after {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.post-gallery-caption {
    margin: 0;
    font-size: .9375rem;
    line-height: 1.6;
    color: var(--color-gray-700);
}

.post-share {
    margin-top: 48px;
    padding-top: 32px;
    border-top: 1px solid #e5e7eb;
}
.post-share-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}
.post-share-head i {
    font-size: 1rem;
    line-height: 1;
    color: #ef4444;
}
.post-share-head h3 {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.2;
}
.post-share-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
.post-share-link {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #fff;
    text-decoration: none;
    transition: transform .2s ease, opacity .2s ease;
}
.post-share-link:hover {
    transform: translateY(-2px);
    opacity: .9;
}
.post-share-link i {
    font-size: 18px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.post-share-link.is-facebook i { font-size: 17px }
.post-share-link.is-twitter i { font-size: 18px }
.post-share-link.is-linkedin i { font-size: 17px }
.post-share-link.is-mail i { font-size: 17px }
.post-share-link.is-facebook { background: #1877f2 }
.post-share-link.is-twitter { background: #1d9bf0 }
.post-share-link.is-linkedin { background: #0a66c2 }
.post-share-link.is-mail { background: #4b5563 }

.post-related-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}
@media (min-width: 768px) {
    .post-related-grid { grid-template-columns: repeat(2, 1fr) }
}
@media (min-width: 1024px) {
    .post-related-grid { grid-template-columns: repeat(3, 1fr) }
}

/* ==========================================================
   EMPREENDIMENTOS — LISTAGEM (filtros + cards aspect 3/4)
   ========================================================== */
.emp-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 48px;
}
.emp-filter-pill {
    padding: 8px 24px;
    border-radius: var(--radius-full);
    background: var(--color-bg-soft);
    color: var(--color-gray-700);
    transition: background .2s ease, color .2s ease;
    display: inline-block;
}
.emp-filter-pill:hover { background: #d1d5db }
.emp-filter-pill.is-active {
    background: var(--color-primary);
    color: #fff;
}
.emp-filter-pill.is-active:hover { background: var(--color-primary-dark) }

.emp-list-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
@media (min-width: 768px) {
    .emp-list-grid { grid-template-columns: repeat(2, 1fr) }
}
@media (min-width: 1024px) {
    .emp-list-grid { grid-template-columns: repeat(3, 1fr) }
}
.emp-list-card { display: block; cursor: pointer }
.emp-list-card .img-wrap {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius);
    margin-bottom: 16px;
    aspect-ratio: 3/4;
}
.emp-list-card .img-wrap img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.emp-list-card:hover .img-wrap img { transform: scale(1.05) }
.emp-list-card .status-badge {
    position: absolute;
    top: 16px; left: 16px;
    background: var(--color-primary);
    color: #fff;
    padding: 6px 12px;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--radius-full);
    z-index: 3;
}
.emp-list-card .info { padding: 0 16px }
.emp-list-card h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 8px;
    transition: color .2s ease;
}
.emp-list-card:hover h3 { color: var(--color-primary) }
.emp-list-card .meta {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-gray-600);
    font-size: 0.875rem;
    margin-bottom: 4px;
}
.emp-list-card .meta svg { width: 16px; height: 16px; color: var(--color-primary); flex-shrink: 0 }

/* ==========================================================
   EMPREENDIMENTO — DETALHE
   ========================================================== */
.emp-hero {
    position: relative;
    height: 500px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}
.emp-hero .bg { position: absolute; inset: 0 }
.emp-hero .bg picture { display: block; width: 100%; height: 100% }
.emp-hero .bg img { width: 100%; height: 100%; object-fit: cover; display: block }
.emp-hero .overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(46,46,46,0.95), rgba(46,46,46,0.4) 50%, transparent);
}
.emp-hero .container-7xl {
    position: relative;
    z-index: 2;
    padding-bottom: 48px;
}
.emp-hero .status-badge {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    padding: 8px 16px;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--radius-full);
    margin-bottom: 16px;
}
.emp-hero h1 {
    font-size: 2.5rem;
    color: #fff;
    font-weight: 700;
    line-height: 1.1;
    margin-bottom: 16px;
    max-width: 720px;
}
.emp-hero .location {
    display: flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,0.9);
    font-size: 1rem;
}
.emp-hero .location svg { width: 20px; height: 20px }

@media (min-width: 1024px) {
    .emp-hero { height: 600px }
    .emp-hero h1 { font-size: 4rem }
    .emp-hero .location { font-size: 1.125rem }
    .emp-hero .container-7xl { padding-bottom: 64px }
}

/* Características em grade com check */
.features-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}
@media (min-width: 640px) {
    .features-grid { grid-template-columns: repeat(2, 1fr) }
}
@media (min-width: 1024px) {
    .features-grid { grid-template-columns: repeat(3, 1fr) }
}
.feature-item {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--color-bg-soft);
    padding: 16px 20px;
    border-radius: var(--radius);
}
.feature-item .check {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--color-primary);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.feature-item .check svg { width: 16px; height: 16px }
.feature-item span { color: var(--color-dark); font-weight: 500 }

/* Galeria detalhe */
.emp-gallery {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}
@media (min-width: 768px) {
    .emp-gallery { grid-template-columns: repeat(2, 1fr) }
}
@media (min-width: 1024px) {
    .emp-gallery { grid-template-columns: repeat(3, 1fr) }
}
.emp-gallery .item {
    aspect-ratio: 4/3;
    overflow: hidden;
    border-radius: var(--radius);
    box-shadow: var(--shadow-md);
}
.emp-gallery .item img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.emp-gallery .item:hover img { transform: scale(1.05) }

/* Form Tenho Interesse 2 col */
.form-grid-2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}
@media (min-width: 768px) {
    .form-grid-2 { grid-template-columns: repeat(2, 1fr) }
}

/* ==========================================================
   404 — Padrão visual Bemavi (paleta areia/cream/taupe)
   ========================================================== */
.notfound {
    --nf-bg: #d0c9bd;
    --nf-sand: #c1b4a2;
    --nf-taupe: #b1a086;
    --nf-text: #50423f;
    --nf-muted: #6f5f47;
    --nf-dark: #413532;
    --nf-deep: #231b1a;
    --nf-cream: #ebe7e4;
    position: relative;
    min-height: 100vh;
    padding: 200px 0 120px;
    background: var(--nf-bg);
    color: var(--nf-text);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    font-weight: 300;
}

.notfound-bg {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse 72% 58% at 50% 38%, rgba(35, 27, 26, 0.12), transparent 70%);
    pointer-events: none;
}

.notfound-content {
    position: relative;
    z-index: 1;
    max-width: 1024px;
}

.notfound-eyebrow {
    text-transform: uppercase;
    letter-spacing: 5.4px;
    font-size: 14px;
    color: var(--nf-taupe);
    margin-bottom: 28px;
    font-weight: 400;
}

.notfound .big {
    font-size: 10rem;
    font-weight: 200;
    color: transparent;
    -webkit-text-stroke: 2px var(--nf-taupe);
    text-stroke: 2px var(--nf-taupe);
    line-height: 0.9;
    margin-bottom: 32px;
    letter-spacing: -2px;
}

.notfound h1 {
    font-size: 1.5rem;
    font-weight: 300;
    text-transform: uppercase;
    letter-spacing: 4px;
    color: var(--nf-dark);
    margin-bottom: 24px;
}

.notfound .notfound-lead,
.notfound p:not(.big):not(.notfound-eyebrow) {
    font-size: 1.0625rem;
    font-weight: 300;
    color: var(--nf-muted);
    margin-bottom: 48px;
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.7;
}

.notfound .actions {
    display: flex;
    flex-direction: column;
    gap: 16px;
    justify-content: center;
    align-items: center;
    margin-bottom: 80px;
}

/* Botões: padrão Bemavi (.bemavi-button-dark / .bemavi-button-light) —
   formato e animação definidos em bemavi-home.css, mesmo min-width para ambos */
.notfound .actions { align-items: center }

.notfound .links {
    margin-top: 16px;
    padding-top: 56px;
    border-top: 1px solid rgba(177, 160, 134, 0.35);
}

.notfound .links h2 {
    font-size: 0.875rem;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: var(--nf-taupe);
    margin-bottom: 28px;
}

.notfound .links-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    max-width: 720px;
    margin: 0 auto;
}

.notfound .links-grid a {
    color: var(--nf-text);
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 0.8125rem;
    font-weight: 400;
    transition: color .3s ease, letter-spacing .3s ease;
    padding: 6px 0;
}

.notfound .links-grid a:hover {
    color: var(--nf-deep);
    letter-spacing: 3px;
}

@media (min-width: 640px) {
    .notfound .actions { flex-direction: row }
    .notfound .links-grid { grid-template-columns: repeat(2, 1fr) }
}

@media (min-width: 1024px) {
    .notfound { padding: 200px 0 140px }
    .notfound .big { font-size: 14rem }
    .notfound h1 { font-size: 2.25rem; letter-spacing: 5px }
    .notfound .links-grid { grid-template-columns: repeat(4, 1fr) }
}

/* ==========================================================
   CTA banner final (Institucional)
   ========================================================== */
.cta-banner {
    position: relative;
    padding: 128px 0;
    overflow: hidden;
}
.cta-banner .bg { position: absolute; inset: 0 }
.cta-banner .bg img { width: 100%; height: 100%; object-fit: cover }
.cta-banner .overlay {
    position: absolute; inset: 0;
    background: rgba(46,46,46,0.8);
}
.cta-banner .inner {
    position: relative;
    z-index: 2;
    max-width: 768px;
    margin: 0 auto;
    padding: 0 24px;
    text-align: center;
}
.cta-banner h2 {
    font-size: 2.25rem;
    color: #fff;
    font-weight: 700;
    margin-bottom: 24px;
    line-height: 1.15;
}
.cta-banner p {
    font-size: 1.25rem;
    color: rgba(255,255,255,0.9);
    line-height: 1.6;
    margin-bottom: 32px;
}
@media (min-width: 1024px) {
    .cta-banner h2 { font-size: 3rem }
    .cta-banner p { font-size: 1.5rem }
}

/* ==========================================================
   TIMELINE EMPREENDIMENTOS (institucional)
   ========================================================== */
.timeline-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    position: relative;
}
@media (min-width: 768px) {
    .timeline-grid { grid-template-columns: repeat(3, 1fr) }
}
.timeline-line {
    display: none;
}
@media (min-width: 1024px) {
    .timeline-wrap { position: relative }
    .timeline-line {
        display: block;
        position: absolute;
        top: 50%;
        left: 0; right: 0;
        height: 2px;
        background: #d1d5db;
        transform: translateY(-50%);
    }
}
.timeline-card {
    background: #fff;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    transition: box-shadow .2s ease;
    position: relative;
    display: block;
}
.timeline-card:hover { box-shadow: 0 20px 25px -5px rgba(0,0,0,.1) }
.timeline-card .img-wrap {
    aspect-ratio: 4/3;
    overflow: hidden;
}
.timeline-card .img-wrap img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.timeline-card:hover .img-wrap img { transform: scale(1.05) }
.timeline-card:hover .emp-card-media::before,
.timeline-card:focus-visible .emp-card-media::before {
    background: rgba(15, 23, 42, .32);
}
.timeline-card:hover .emp-card-media::after,
.timeline-card:focus-visible .emp-card-media::after {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.timeline-card .body { padding: 24px }
.timeline-card .badge {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    padding: 4px 12px;
    font-size: 0.75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--radius-full);
    margin-bottom: 12px;
}
.timeline-card h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 8px;
    transition: color .2s ease;
}
.timeline-card:hover h3 { color: var(--color-primary) }
.timeline-card .loc {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--color-gray-600);
    font-size: 0.875rem;
}
.timeline-card .loc svg { width: 16px; height: 16px; color: var(--color-primary) }

/* ==========================================================
   GRID GENÉRICO 2 colunas (split textual)
   ========================================================== */
.split-2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 48px;
    align-items: start;
}
@media (min-width: 1024px) {
    .split-2 { grid-template-columns: 1fr 1fr; gap: 64px }
}

/* ==========================================================
   ALERTS
   ========================================================== */
.alert {
    padding: 16px 20px;
    border-radius: var(--radius);
    margin-bottom: 24px;
    font-size: 0.9375rem;
}
.alert-success { background: #dcfce7; color: #166534; border: 1px solid #86efac }
.alert-error { background: #fee2e2; color: #991b1b; border: 1px solid #fca5a5 }


/* ==========================================================
   (REMOVIDO) Override do smooth-scroll-west
   Era usado para corrigir corte do footer em subpaginas, mas
   quebrava o scroll suave. Solucao agora e em JS:
   forcar recalculo (resize) apos load das imagens.
   Ver: assets/js/main.js -> recalcSmoothScroll()
   ========================================================== */

/* ==========================================================
   CENTRAL DE VENDAS - photos grid (Institucional)
   ========================================================== */
.cv-photos-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    margin-bottom: 64px;
}
@media (min-width: 768px) {
    .cv-photos-grid { grid-template-columns: repeat(3, 1fr) }
}
.cv-photo {
    aspect-ratio: 4 / 3;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    background: var(--color-bg-soft);
}
.cv-photo img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
    display: block;
}
.cv-photo:hover img { transform: scale(1.05) }


/* ==========================================================
   EMPREENDIMENTO DETALHE - sections (vokkan-style)
   ========================================================== */

/* Status badges para cronograma */
.crono-status {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 0.875rem;
    font-weight: 500;
    white-space: nowrap;
}
.crono-status.success { background: #dcfce7; color: #166534 }
.crono-status.warning { background: #fef9c3; color: #854d0e }
.crono-status.default { background: #f3f4f6; color: #374151 }

/* Cronograma list */
.cronograma-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.cronograma-item {
    background: #fff;
    padding: 20px 24px;
    border-radius: var(--radius);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.cronograma-item .left {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
    flex: 1;
}
.cronograma-item .ic {
    width: 32px; height: 32px;
    color: var(--color-primary);
    flex-shrink: 0;
}
.cronograma-item .ic svg { width: 100%; height: 100% }
.cronograma-item .etapa {
    font-weight: 700;
    color: var(--color-dark);
    font-size: 1.0625rem;
    margin: 0;
    
}
.cronograma-item .data {
    font-size: 0.875rem;
    color: var(--color-gray-600);
    margin: 2px 0 0;
}

/* Cronograma com barra de progresso (estagios_obras) */
.cronograma-item .progress-wrap {
    flex: 1;
    min-width: 200px;
    display: flex;
    align-items: center;
    gap: 12px;
}
.cronograma-item .progress-bar {
    flex: 1;
    height: 8px;
    background: #e5e7eb;
    border-radius: 4px;
    overflow: hidden;
}
.cronograma-item .progress-bar > span {
    display: block;
    height: 100%;
    background: var(--color-primary);
    border-radius: 4px;
    transition: width .6s ease;
}
.cronograma-item .progress-pct {
    font-weight: 700;
    color: var(--color-dark);
    min-width: 48px;
    text-align: right;
}

/* Quem Assina (Parceiros) */
.assina-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}
@media (min-width: 768px) {
    .assina-grid { grid-template-columns: repeat(3, 1fr) }
}
.assina-card {
    text-align: center;
    background: #fff;
    padding: 32px 24px;
    border-radius: var(--radius);
    box-shadow: var(--shadow-md);
}
.assina-card .ic {
    width: 64px; height: 64px;
    margin: 0 auto 20px;
    color: var(--color-primary);
}
.assina-card .ic svg,
.assina-card .ic img { width: 100%; height: 100%; object-fit: contain }
.assina-card h3 {
    font-weight: 700;
    color: var(--color-dark);
    font-size: 1.125rem;
    margin-bottom: 8px;
}
.assina-card .role {
    color: var(--color-primary);
    font-weight: 600;
    font-size: 0.9375rem;
    margin-bottom: 12px;
}
.assina-card p { color: var(--color-gray-700); font-size: 0.9375rem; line-height: 1.6 }

/* Proximidades */
.prox-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
@media (min-width: 768px) {
    .prox-grid { grid-template-columns: repeat(3, 1fr) }
}
.prox-card {
    background: #ffffff;
    padding: 28px 24px;
    border-radius: var(--radius);
    position: relative;
    overflow: hidden;
    transition: box-shadow .3s ease;
    box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.prox-card::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--color-primary), #b87030);
    border-radius: 0 0 var(--radius) var(--radius);
    transition: width .45s cubic-bezier(.22,1,.36,1);
}
.prox-card:hover { box-shadow: var(--shadow-md) }
.prox-card:hover::after { width: 100% }
.prox-card .ic {
    width: 36px; height: 36px;
    color: var(--color-primary);
    margin-bottom: 16px;
}
.prox-card .ic svg { width: 100%; height: 100% }
.prox-card h3 {
    font-weight: 700;
    color: var(--color-dark);
    font-size: 1.125rem;
    margin-bottom: 8px;
}
.prox-card p { color: var(--color-gray-700); font-size: 0.9375rem }

/* Diferenciais (Lista vertical com imagens) */
.dif-list { display: flex; flex-direction: column; gap: 48px }
.dif-item {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: center;
}
@media (min-width: 1024px) {
    .dif-item { grid-template-columns: 1fr 1fr; gap: 64px }
    .dif-item:nth-child(even) .dif-img { order: 2 }
    .dif-item:nth-child(even) .dif-text { order: 1 }
}
.dif-img {
    aspect-ratio: 4/3;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    background: var(--color-bg-soft);
}
.dif-img img { width: 100%; height: 100%; object-fit: cover; display: block }
.dif-text h3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 16px;
    text-transform: uppercase;
    letter-spacing: .02em;
}
.dif-text .body { color: var(--color-gray-700); line-height: 1.7 }
.dif-text .body p { margin-bottom: 12px }

/* Plantas */
.plantas-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}
@media (min-width: 768px) {
    .plantas-grid { grid-template-columns: repeat(2, 1fr) }
}
.planta-card {
    background: #fff;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: transform .3s ease, box-shadow .3s ease;
}
.planta-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg) }
.planta-card .img {
    aspect-ratio: 4/3;
    background: var(--color-bg-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.planta-card .img img { max-width: 100%; max-height: 100%; object-fit: contain }
.planta-card .body { padding: 24px }
.planta-card h3 {
    font-weight: 700;
    color: var(--color-dark);
    font-size: 1.125rem;
    margin-bottom: 12px;
}
.planta-card .specs {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    margin-bottom: 12px;
    font-size: 0.875rem;
    color: var(--color-gray-700);
}
.planta-card .specs span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.planta-card .specs svg { width: 16px; height: 16px; color: var(--color-primary) }
.planta-card .desc { color: var(--color-gray-700); font-size: 0.9375rem; line-height: 1.6 }

/* Etapa atual da obra (etapa_titulo / etapa_texto) */
.etapa-obra {
    background: var(--color-bg-soft);
    border-radius: var(--radius);
    padding: 48px;
}
@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) { .etapa-obra { padding: 28px } }
.etapa-obra-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}
@media (min-width: 1024px) {
    .etapa-obra-grid { grid-template-columns: 1.4fr 1fr; gap: 48px }
}
.etapa-obra h2 { font-size: 1.875rem; margin-bottom: 16px; color: var(--color-dark) }
.etapa-obra .body { color: var(--color-gray-700); line-height: 1.75; margin-bottom: 24px }
.etapa-obra .imgs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
.etapa-obra .imgs img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    border-radius: 12px;
}
.etapa-obra .img-side img {
    width: 100%;
    aspect-ratio: 3/4;
    object-fit: cover;
    border-radius: var(--radius);
}

/* Galeria por categoria - tabs */
.gallery-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin-bottom: 32px;
}
.gallery-tab {
    background: var(--color-bg-soft);
    color: var(--color-dark);
    border: none;
    padding: 10px 20px;
    border-radius: 999px;
    font-size: 0.9375rem;
    font-weight: 500;
    cursor: pointer;
    transition: background .2s, color .2s;
}
.gallery-tab.active,
.gallery-tab:hover {
    background: var(--color-primary);
    color: #fff;
}
.gallery-panel { display: none }
.gallery-panel.active { display: grid }

/* Itens (icon grid) */
.itens-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 16px;
    text-align: center;
}
@media (min-width: 640px) { .itens-grid { grid-template-columns: repeat(3, 1fr) } }
@media (min-width: 1024px) { .itens-grid { grid-template-columns: repeat(6, 1fr) } }
.iten-cell img,
.iten-cell svg {
    width: 56px; height: 56px;
    margin: 0 auto 12px;
    object-fit: contain;
    color: var(--color-primary);
}
.iten-cell .label {
    font-weight: 500;
    color: var(--color-dark);
    font-size: 0.9375rem;
    line-height: 1.3;
}

/* Vídeos da obra (lista) */
.videos-obras-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
@media (min-width: 768px) { .videos-obras-grid { grid-template-columns: repeat(2, 1fr) } }
@media (min-width: 1024px) { .videos-obras-grid { grid-template-columns: repeat(3, 1fr) } }
.video-obra-card {
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    background: #000;
    position: relative;
}
.video-obra-card .thumb {
    aspect-ratio: 16/9;
    position: relative;
    display: block;
}
.video-obra-card .thumb img { width:100%; height:100%; object-fit:cover; opacity:.85 }
.video-obra-card .play {
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
    color:#fff;
}
.video-obra-card .play svg { width:64px; height:64px }
.video-obra-card .lbl {
    position:absolute; left:16px; bottom:16px;
    color:#fff; font-weight:600; font-size:0.9375rem;
    text-shadow: 0 1px 4px rgba(0,0,0,.5);
}

/* Hero compactador - full width status badge stack */
.emp-quick-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 24px;
}
@media (min-width: 768px) { .emp-quick-stats { grid-template-columns: repeat(4, 1fr) } }
.quick-stat {
    background: #fff;
    padding: 20px;
    border-radius: var(--radius);
    text-align: center;
    box-shadow: var(--shadow-sm);
}
.quick-stat .ic {
    width: 32px; height: 32px;
    color: var(--color-primary);
    margin: 0 auto 8px;
}
.quick-stat .ic svg { width: 100%; height: 100% }
.quick-stat .num {
    font-weight: 700;
    color: var(--color-dark);
    font-size: 1rem;
    line-height: 1.3;
}
.quick-stat .lbl {
    color: var(--color-gray-600);
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-top: 4px;
}

/* Section helper for Empreendimento sub */
.heading-3 {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 24px;
}


/* CountUp number target reservado para evitar layout shift */
.count-up { display: inline-block; font-variant-numeric: tabular-nums }

/* ==========================================================
   EMPREENDIMENTO - tweaks React-style (left-aligned titles, 
   transparent assina cards on grey, big main video, etc.)
   ========================================================== */

/* Section title estilo React: left-aligned, sem accent bar, font-bold */
.emp-section-title {
    font-size: clamp(1.875rem, 2.5vw, 2.25rem);
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 48px;
    text-align: left;
}
.emp-section-title-accent {
    color: var(--color-primary);
}
@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    .emp-section-title { margin-bottom: 32px; font-size: 1.625rem }
}

/* Quem Assina: cards SEM fundo branco/sombra (sentam direto no cinza da seção) */
section.sub-soft #quem-assina,
#quem-assina .assina-card,
.sub-soft .assina-card {
    background: transparent !important;
    box-shadow: none !important;
    padding: 16px 12px;
}
#quem-assina .assina-card .body { color: var(--color-gray-700); font-size: 0.9375rem; line-height: 1.6; margin-top: 8px }

/* Vídeo principal da Obra - full container width, 16:9, sombra */
.video-obra-main {
    width: 100%;
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    background: #000;
    box-shadow: var(--shadow-lg);
    aspect-ratio: 16 / 9;
}
.video-obra-main .emp-video-thumb-link-main {
    width: 100%;
    height: 100%;
}
.video-obra-main iframe {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}
.video-obra-caption {
    margin: 16px 0 0;
    color: var(--color-gray-700);
    font-size: 0.9375rem;
    text-align: left;
}


/* ===================================================
   O EMPREENDIMENTO — layout React
   single-col max-w-4xl, sem split, texto gray-700
   =================================================== */
.conceito-inner {
    max-width: 896px; /* Tailwind max-w-4xl */
}
.conceito-h2 {
    margin-bottom: 24px !important; /* React mb-6 */
}
.conceito-desc {
    font-size: 1.25rem;   /* text-xl */
    color: #374151;       /* gray-700 */
    line-height: 1.75;
    margin-bottom: 24px;
    font-weight: 400;
}
.conceito-concept,
.conceito-concept p {
    font-size: 1.125rem;  /* text-lg */
    color: #374151;       /* gray-700 */
    line-height: 1.75;
    margin: 0;
}
.conceito-concept p + p { margin-top: 16px; }
/* evita que links dentro do texto herdem cor azul/primary */
.conceito-desc a, .conceito-concept a { color: inherit; }


/* ============================================================
   PAGE HERO BANNER (Blog, Contato, etc.) — estilo React
   ============================================================ */
.page-hero-banner {
    position: relative;
    margin-top: var(--header-height);
    overflow: hidden;
    background: #fff;
}

body.page-contato .smooth-scroll-content {
    padding-top: 0;
}

body.page-vaga .smooth-scroll-content,
body.page-vagas-cadastro .smooth-scroll-content,
body.page-vagas-cadastro-vaga .smooth-scroll-content {
    padding-top: 0;
}

body.page-politica .smooth-scroll-content,
body.page-politica-de-privacidade .smooth-scroll-content {
    padding-top: 0;
}
.page-hero-banner .bg { position: relative; z-index: 1 }
.page-hero-banner .bg picture { display: block; width: 100% }
.page-hero-banner .bg img { display: block; width: 100%; height: auto; opacity: 1 }
.page-hero-banner .overlay {
    position: absolute; inset: 0; z-index: 2;
    background: linear-gradient(110deg, rgba(20,14,8,0.34) 0%, rgba(20,14,8,0.14) 44%, rgba(20,14,8,0) 72%);
    pointer-events: none;
}
.page-hero-banner .container-7xl {
    position: absolute;
    inset: 0;
    z-index: 3;
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 32px 52px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.page-hero-banner .accent-bar { width: 64px; height: 4px; background: var(--color-primary); margin-bottom: 24px; border-radius: 2px }
.page-hero-banner .page-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: 20px;
}
.page-hero-banner .page-hero-eyebrow::before {
    content: '';
    width: 28px;
    height: 2px;
    background: var(--color-primary);
}
body.page-contato .page-hero-banner .page-hero-eyebrow {
    color: #fff;
}

body.page-contato .page-hero-banner .page-hero-eyebrow::before {
    background: #fff;
}
.page-hero-banner h1 {
    color: #fff; font-weight: 700; line-height: 1.1;
    font-size: clamp(2.25rem, 4vw, 48px); margin: 0 0 16px;
}
.page-hero-banner p {
    color: rgba(255,255,255,.9); font-size: clamp(1rem, 1.4vw, 1.25rem);
    line-height: 1.6; max-width: 720px; margin: 0;
}
.page-hero-banner.page-hero-contato {
    min-height: 0;
    margin-top: var(--header-height);
   
}
.page-hero-banner.page-hero-contato .bg img {
    object-position: center top; 
   
}
.page-hero-banner.page-hero-contato .overlay {
    background: linear-gradient(110deg, rgba(18,12,6,0.34) 0%, rgba(18,12,6,0.12) 46%, rgba(18,12,6,0) 72%);
}
.page-hero-banner.page-hero-contato .container-7xl {
    padding: 0 32px 52px;
}
@media (min-width: 1024px) {
    .page-hero-banner .container-7xl { padding: 0 24px 52px }
}

@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    body.page-contato {
        margin-top: -24px;
    }

    .page-hero-banner .container-7xl { padding: 0 20px 28px }
}

/* ============================================================
   EMPREENDIMENTO — O EMPREENDIMENTO (split: fachada + box)
   ============================================================ */
.emp-conceito-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: start;
}
.emp-conceito-grid > * {
    min-width: 0;
}
@media (min-width: 1024px) {
    .emp-conceito-grid { grid-template-columns: 1.1fr 1.1fr; gap: 48px; align-items: start }
}
.emp-conceito-img {
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    background: #f3f3f3;
    aspect-ratio: 592 / 800;
    min-height: 320px;
    width: 100%;
    max-width: 592px;
}
.emp-conceito-img img {
    width: 100%; height: 100%; display: block; object-fit: cover;
}
.emp-conceito-box {
    background: var(--color-bg-soft);
    padding: clamp(28px, 3vw, 44px);
    border-radius: var(--radius);
    min-height: 320px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}
@media (min-width: 1024px) {
    .emp-conceito-img {
        justify-self: start;
        align-self: start;
        min-height: 0;
    }
    .emp-conceito-box {
        align-self: start;
        max-height: none;
    }
}
.emp-conceito-logo {
    width: 100%;
    max-width: 400px;
    margin: 0 0 24px;
}
.emp-conceito-logo img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 320px;
    margin: 0;
}
.emp-conceito-title {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--color-dark);
    margin: 0 0 24px;
}
.emp-conceito-desc {
    font-size: .9375rem;
    color: var(--color-primary);
    font-weight: 600;
    line-height: 1.75;
    margin: 0 0 16px;
    text-align: left;
    align-self: stretch;
    max-width: none;
}
.emp-conceito-body { color: var(--color-gray-700); font-size: .9375rem; line-height: 1.75; margin-bottom: 24px }
.emp-conceito-body p { margin: 0 0 12px }
.emp-conceito-body p:last-child { margin-bottom: 0 }
.emp-conceito-stats {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-bottom: 24px;
}
.emp-conceito-stats .stat { display: flex; align-items: center; gap: 12px; color: var(--color-gray-700); font-size: .9375rem }
.emp-conceito-stats .stat svg { width: 22px; height: 22px; color: var(--color-primary); flex-shrink: 0 }

.btn-emp-cta {
    display: inline-block;
    color: #fff;
    padding: 14px 32px;
    border-radius: var(--radius);
    font-size: .875rem;
    font-weight: 500;
    max-width: 390px;
    text-transform: uppercase;
    letter-spacing: .05em;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: var(--btn-base-fill, transparent);
    transition: color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1)), border-color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1)), background-color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    --btn-base-fill: var(--color-dark);
    --btn-hover-fill: var(--color-primary);
    --btn-hover-color: #fff;
    --btn-hover-border: var(--color-primary);
}

.btn-emp-cta svg {
    transition: transform .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
}

.emp-conceito-box .btn-emp-cta {
    align-self: flex-start;
    width: auto;
    max-width: none;
}
.emp-conceito-cta {
    margin-top: auto;
    padding-top: 20px;
}

/* ============================================================
    CARACTERÍSTICAS — cards com ícone na cor principal (vindo do q-admin)
    ============================================================ */
.caracteristicas-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
@media (min-width: 640px) { .caracteristicas-cards { grid-template-columns: repeat(2, 1fr) } }
@media (min-width: 768px) { .caracteristicas-cards { grid-template-columns: repeat(3, 1fr) } }
@media (min-width: 1024px) { .caracteristicas-cards { grid-template-columns: repeat(4, 1fr) } }

.caracteristica-card {
    background: #f5f5f5;
    padding: 24px;
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 16px;
}
.caracteristica-card .ic {
    width: 50px; height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
}
.caracteristica-card .ic img {
    width: 100%; height: 100%;
    object-fit: contain;
    display: block;
    filter: var(--color-primary-filter);
}
.caracteristica-card .ic svg {
    width: 100%; height: 100%;
    object-fit: contain;
    display: block;
}
.caracteristica-card .lbl {
    color: var(--color-gray-700);
    font-weight: 500;
    font-size: .9375rem;
    line-height: 1.35;
    text-align: center;
}

/* ============================================================
   GALERIA estilo React (scroll horizontal + setas)
   ============================================================ */
.emp-media-slider {
    position: relative;
}
.emp-media-viewport {
    min-width: 0;
    width: 100%;
    overflow: hidden;
   
}
.emp-media-arrow {
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1px solid rgba(46,46,46,.12);
    background: #fff;
    color: var(--color-dark);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-md);
    cursor: pointer;
    transform: translateY(-50%);
    transition: background-color .2s ease, color .2s ease, transform .2s ease, opacity .2s ease;
}
.emp-media-arrow.prev {
    left: -74px;
}
.emp-media-arrow.next {
    right: -74px;
}
@media (max-width: 1399px) {
    .emp-media-arrow.prev {
        left: 12px;
    }
    .emp-media-arrow.next {
        right: 12px;
    }
}
.emp-media-arrow:hover:not([disabled]) {
    background: var(--color-primary);
    color: #fff;
    transform: translateY(calc(-50% - 1px));
}
.emp-media-arrow[disabled] {
    opacity: .45;
    cursor: default;
    pointer-events: none;
    box-shadow: none;
}
.emp-media-arrow svg {
    width: 20px;
    height: 20px;
}
.emp-gallery-react {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: visible;
    gap: 16px;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.emp-gallery-react::-webkit-scrollbar,
.emp-crono-fotos-grid::-webkit-scrollbar {
    display: none;
}
.emp-gallery-react .gal-card,
.emp-crono-fotos-grid .gal-card {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
    scroll-snap-align: start;
}
.emp-gallery-react .gal-item,
.emp-crono-fotos-grid .gal-item {
    position: relative;
    height: clamp(280px, 31vw, 420px);
    overflow: hidden;
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    background: #e7e2da;
    display: block;
    cursor: pointer;
    isolation: isolate;
    width: 100%;
}
.emp-gallery-react .gal-card {
    width: clamp(260px, calc((100% - 32px) / 3), 420px);
}
.emp-gallery-caption {
    margin: 0;
    font-size: .9375rem;
    line-height: 1.6;
    color: var(--color-gray-700);
}
.emp-gallery-react .gal-item::before,
.emp-crono-fotos-grid .gal-item::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: 0;
    background: rgba(15, 23, 42, 0);
    transition: background .35s ease, opacity .35s ease;
    pointer-events: none;
}
.emp-gallery-react .gal-item::after,
.emp-crono-fotos-grid .gal-item::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 48px;
    height: 48px;
    background: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ffffff'%3E%3Ccircle cx='12' cy='12' r='9' stroke-width='0.6'/%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='0.6' d='M12 8v8M8 12h8'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    opacity: 0;
    transform: translate(-50%, -50%) scale(.82);
    transition: opacity .3s ease, transform .35s cubic-bezier(.22,1,.36,1);
    z-index: 2;
    pointer-events: none;
}
.emp-gallery-react .gal-item img,
.emp-crono-fotos-grid .gal-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.emp-gallery-react .gal-item:hover img,
.emp-gallery-react .gal-item:focus-visible img,
.emp-crono-fotos-grid .gal-item:hover img,
.emp-crono-fotos-grid .gal-item:focus-visible img { transform: scale(1.05) }
.emp-gallery-react .gal-item:hover::before,
.emp-gallery-react .gal-item:focus-visible::before,
.emp-crono-fotos-grid .gal-item:hover::before,
.emp-crono-fotos-grid .gal-item:focus-visible::before {
    opacity: 1;
    background: rgba(15, 23, 42, .32);
}
.emp-gallery-react .gal-item:hover::after,
.emp-gallery-react .gal-item:focus-visible::after,
.emp-crono-fotos-grid .gal-item:hover::after,
.emp-crono-fotos-grid .gal-item:focus-visible::after {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.emp-gallery-react .gal-item .zoom,
.emp-crono-fotos-grid .gal-item .zoom {
    display: none;
}
.emp-gallery-react .gal-item .zoom svg,
.emp-crono-fotos-grid .gal-item .zoom svg {
    width: 22px;
    height: 22px;
    color: #fff;
    background: transparent;
    padding: 0;
    box-sizing: border-box;
    stroke-width: 1.8;
    filter: none;
}
@media (max-width: 1199px) {
    .emp-gallery-react .gal-card {
        width: calc((100% - 16px) / 2);
    }
    .emp-gallery-react .gal-item {
        height: clamp(260px, 36vw, 380px);
    }
}
@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    body.page-empreendimento,
    body.page-empreendimento .smooth-scroll-container,
    body.page-empreendimento .smooth-scroll-content,
    body.page-empreendimento .container-7xl,
    body.page-empreendimento section {
        overflow-x: clip;
    }
    .emp-conceito-img {
        width: 100%;
        max-width: 100%;
        min-height: 500px;
        aspect-ratio: 4 / 3;
    }
    .emp-conceito-img img {
        width: 100%;
        max-width: 100%;
    
    }
    .emp-media-slider {
        overflow: hidden;
    }
    .emp-media-slider {
        padding: 0 4px;
    }
    .emp-media-arrow {
        width: 40px;
        height: 40px;
    }
    .emp-media-arrow.prev {
        left: 8px;
    }
    .emp-media-arrow.next {
        right: 8px;
    }
    #galeria .emp-media-slider,
    #cronograma .emp-media-slider-obras {
        display: grid;
        grid-template-columns: 1fr auto auto 1fr;
        align-items: start;
        gap: 14px 10px;
        overflow: visible;
        padding: 0;
    }
    #galeria .emp-media-viewport,
    #cronograma .emp-media-slider-obras .emp-media-viewport {
        grid-column: 1 / -1;
        grid-row: 1;
    }
    #galeria .emp-media-arrow,
    #cronograma .emp-media-slider-obras .emp-media-arrow {
        position: static;
        grid-row: 2;
        transform: none;
    }
    #galeria .emp-media-arrow.prev,
    #cronograma .emp-media-slider-obras .emp-media-arrow.prev {
        grid-column: 2;
        left: auto;
        justify-self: end;
    }
    #galeria .emp-media-arrow.next,
    #cronograma .emp-media-slider-obras .emp-media-arrow.next {
        grid-column: 3;
        right: auto;
        justify-self: start;
    }
    #galeria .emp-media-arrow:hover:not([disabled]),
    #cronograma .emp-media-slider-obras .emp-media-arrow:hover:not([disabled]) {
        transform: translateY(-1px);
    }
    #galeria .emp-gallery-react .gal-card,
    #cronograma .emp-crono-fotos-grid .gal-card {
        width: 100%;
        min-width: 100%;
        max-width: 100%;
    }
    .emp-gallery-react .gal-card,
    .emp-crono-fotos-grid .gal-card {
        width: 82vw;
    }
    .emp-gallery-react .gal-item,
    .emp-crono-fotos-grid .gal-item {
        height: min(72vw, 360px);
    }
    .emp-gallery-react .gal-item::after,
    .emp-crono-fotos-grid .gal-item::after {
        width: 42px;
        height: 42px;
    }
}

/* ============================================================
   PLANTAS DO APARTAMENTO (split selector + image)
   ============================================================ */
.emp-plantas-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: start;
}
@media (min-width: 1024px) { .emp-plantas-grid { grid-template-columns: 380px 1fr; gap: 48px } }
.emp-plantas-sub {
    color: var(--color-gray-600);
    text-transform: uppercase;
    letter-spacing: .05em;
    font-size: .9375rem;
    margin: 0 0 32px;
}
.emp-plantas-select { margin-bottom: 32px }
.emp-plantas-switcher {
    display: none;
}
.emp-plantas-select label {
    display: block;
    font-size: .75rem;
    color: var(--color-gray-500);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: 8px;
}
.emp-plantas-select select {
    width: 100%;
    padding: 12px 0;
    border: 0;
    border-bottom: 1px solid #d1d5db;
    background: transparent;
    font-size: 1rem;
    color: var(--color-primary);
    font-weight: 500;
    outline: none;
    appearance: auto;
}
.emp-plantas-specs .planta-spec-list {
    list-style: none;
    margin: 0; padding: 0;
    display: flex; flex-direction: column; gap: 16px;
}
.emp-plantas-specs .planta-desc {
    margin-top: 28px;
    color: var(--color-gray-700);
    font-size: .9375rem;
    line-height: 1.75;
}
.emp-plantas-specs .planta-desc p { margin: 0 0 12px }
.emp-plantas-specs .planta-desc p:last-child { margin-bottom: 0 }
.emp-plantas-specs .planta-spec-list.is-switching,
.emp-plantas-specs .planta-desc.is-switching,
.emp-plantas-img .planta-img-wrap.is-switching {
    animation: empPlantaFadeIn 1.18s cubic-bezier(.22,1,.36,1) both;
    will-change: opacity, transform;
}
.emp-plantas-specs .planta-spec-list.is-leaving,
.emp-plantas-specs .planta-desc.is-leaving,
.emp-plantas-img .planta-img-wrap.is-leaving {
    animation: empPlantaFadeOut .46s cubic-bezier(.4,0,.2,1) both;
    will-change: opacity, transform;
}
.emp-plantas-specs li { display: flex; align-items: center; gap: 12px; color: var(--color-gray-700); font-size: .875rem }
.emp-plantas-specs li svg,
.emp-plantas-specs li img { width: 20px; height: 20px; color: var(--color-primary); flex-shrink: 0 }
.emp-plantas-specs li img {
    object-fit: contain;
    display: block;
    filter: var(--color-primary-filter);
}
.emp-plantas-img {
    background: #f8f8f8;
    padding: 0 32px;
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
   
}
.emp-plantas-media {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.emp-plantas-switcher {
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}
.emp-planta-pill {
    appearance: none;
    border: 1px solid rgba(17, 24, 39, 0.08);
    padding: 11px 20px;
    border-radius: var(--radius);
    background: #f8f8f8;
    color: var(--color-gray-700);
    font-size: .8125rem;
    font-weight: 500;
    letter-spacing: .05em;
    text-transform: uppercase;
    box-shadow: 0 10px 24px rgba(15, 23, 42, 0.04);
    position: relative;
    overflow: hidden;
    isolation: isolate;
    width: 100%;
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    transition: color .45s cubic-bezier(0.22, 1, 0.36, 1), border-color .45s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .45s cubic-bezier(0.22, 1, 0.36, 1);
}
.emp-planta-pill::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    background: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .45s cubic-bezier(0.22, 1, 0.36, 1);
    z-index: -1;
}
.emp-planta-pill:hover {
    color: #fff;
    border-color: var(--color-primary);
    box-shadow: 0 14px 30px rgba(180, 112, 32, 0.16);
}
.emp-planta-pill:hover::before,
.emp-planta-pill:focus-visible::before,
.emp-planta-pill.is-active::before {
    transform: scaleX(1);
}
.emp-planta-pill.is-active {
    border-color: var(--color-primary);
    color: #fff;
    box-shadow: 0 18px 36px rgba(180, 112, 32, .22);
}
.emp-planta-pill:focus-visible {
    outline: 2px solid rgba(180, 112, 32, .28);
    outline-offset: 2px;
}
.emp-plantas-toolbar {
    display: flex;
    justify-content: flex-end;
}
.emp-planta-rotate {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(46,46,46,.12);
    background: #fff;
    color: var(--color-dark);
    border-radius: 999px;
    padding: 10px 16px;
    font-size: .8125rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.emp-planta-rotate:hover {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}
.emp-planta-rotate svg {
    width: 18px;
    height: 18px;
}
.emp-plantas-img .planta-img-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 32px 0;
    box-sizing: border-box;
}
.emp-plantas-img .planta-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: none;
    overflow: hidden;
    cursor: pointer;
    isolation: isolate;
    text-decoration: none;
    line-height: 0;
}
.emp-plantas-img .planta-link img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: none;
    object-fit: contain;
}
.emp-plantas-img .planta-link::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: 0;
    background: rgba(15, 23, 42, 0);
    transition: background .35s ease, opacity .35s ease;
    pointer-events: none;
}
.emp-plantas-img .planta-link::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 48px;
    height: 48px;
    background: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ffffff'%3E%3Ccircle cx='12' cy='12' r='9' stroke-width='0.6'/%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='0.6' d='M12 8v8M8 12h8'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    opacity: 0;
    transform: translate(-50%, -50%) scale(.82);
    transition: opacity .3s ease, transform .35s cubic-bezier(.22,1,.36,1);
    z-index: 2;
    pointer-events: none;
}
.emp-plantas-img img {
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: none;
    object-fit: contain;
    transform: rotate(var(--plant-rotation, 0deg)) scale(var(--plant-scale, 1));
    transform-origin: center center;
    transition: transform .5s ease;
}
.emp-plantas-img .planta-link:hover img,
.emp-plantas-img .planta-link:focus-visible img {
    transform: rotate(var(--plant-rotation, 0deg)) scale(1.05);
}
.emp-plantas-img .planta-link:hover::before,
.emp-plantas-img .planta-link:focus-visible::before {
    opacity: 1;
  
}
.emp-plantas-img .planta-link:hover::after,
.emp-plantas-img .planta-link:focus-visible::after {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.emp-plantas-img .planta-link .zoom {
    display: none;
}
@media (min-width: 1024px) {
    .emp-plantas-select {
        display: none;
    }

    .emp-plantas-img {
        padding: 0 32px;
       
    }

    .emp-plantas-switcher {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        width: 100%;
        align-items: stretch;
    }

    .emp-plantas-img .planta-img-wrap {
        padding: 32px 0;
        align-items: center;
    }
}

@keyframes empPlantaFadeIn {
    from {
        opacity: 0;
        transform: translateY(22px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes empPlantaFadeOut {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-6px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .emp-plantas-specs .planta-spec-list.is-switching,
    .emp-plantas-specs .planta-desc.is-switching,
    .emp-plantas-specs .planta-spec-list.is-leaving,
    .emp-plantas-specs .planta-desc.is-leaving,
    .emp-plantas-img .planta-img-wrap.is-leaving,
    .emp-plantas-img .planta-img-wrap.is-switching {
        animation: none;
    }

    .emp-plantas-img img {
        transition: none;
    }
}

@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    .emp-plantas-img .planta-link::after {
        width: 42px;
        height: 42px;
    }
}

/* ============================================================
   LOCALIZAÇÃO
   ============================================================ */
.emp-loc-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 32px;
    flex-wrap: wrap;
}
.emp-loc-heading { max-width: 560px }
.emp-loc-name {
    margin: 0;
    color: var(--color-primary);
    font-size: clamp(1.125rem, 2vw, 1.5rem);
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.emp-loc-meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 16px;
    flex-wrap: wrap;
    margin-left: auto;
}
.emp-loc-address {
    margin: 0;
    color: var(--color-gray-700);
    font-size: 1rem;
    line-height: 1.6;
    text-align: right;
}
.emp-loc-open {
    background: transparent;
    color: var(--color-gray-700);
    padding: 0;
    border-radius: 0;
    font-size: .875rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
    white-space: nowrap;
}
.emp-loc-open:hover { color: var(--color-primary) }
.emp-loc-open svg { width: 14px; height: 14px }
.emp-loc-media {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    aspect-ratio: 21 / 9;
    background: #f3f1ed;
}
.emp-loc-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
.emp-loc-link-only {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

@media (max-width: 991px) {
    .emp-loc-head {
        align-items: flex-start;
        margin-bottom: 24px;
    }

    .emp-loc-meta {
        width: 100%;
        justify-content: space-between;
        margin-left: 0;
    }

    .emp-loc-address {
        text-align: left;
    }

    .emp-loc-media {
        aspect-ratio: 16 / 10;
    }
}

@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    .emp-loc-meta {
        gap: 10px;
    }

    .emp-loc-address {
        font-size: .9375rem;
    }

    .emp-loc-media {
        aspect-ratio: 4 / 3;
    }
}

/* ============================================================
   CRONOGRAMA com barra de progresso (estilo React)
   ============================================================ */
.emp-crono-head {
    display: flex; align-items: flex-end; justify-content: space-between;
    margin-bottom: 32px; gap: 16px; flex-wrap: wrap;
}
.emp-crono-update { color: var(--color-gray-600); font-size: .875rem; margin: 0 }
section#cronograma {
    position: relative;
}
section#cronograma::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    width: min(var(--container), calc(100% - 40px));
    height: 1px;
    background: rgba(255, 255, 255, 0.92);
    transform: translateX(-50%);
}
.emp-crono-summary {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 20px 120px;
    margin-bottom: 40px;
    margin-top: 60px;
}
.emp-crono-summary-item {
    margin: 0;
    color: #5f6b7a;
    font-size: 1.125rem;
    line-height: 1.4;
}
.emp-crono-summary-item strong {
    color: var(--color-dark);
    font-weight: 700;
}
.emp-crono-list { display: flex; flex-direction: column; gap: 24px; margin-bottom: 48px }
.emp-crono-item .row {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 8px; gap: 12px;
}
.emp-crono-item .etapa {
    font-weight: 700; font-size: 1rem; color: var(--color-dark); margin: 0;
}
.emp-crono-item .right { display: flex; align-items: center; gap: 12px }
.emp-crono-item .perc { font-size: 1.25rem; font-weight: 700; color: #4a4a4a }
.emp-crono-item .status {
    padding: 4px 10px;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 500;
}
.emp-crono-item .status-success { background: #d1fae5; color: #047857 }
.emp-crono-item .status-warning { background: #fef3c7; color: #b45309 }
.emp-crono-item .status-default { background: #f3f4f6; color: #4b5563 }
.emp-crono-item .bar {
    width: 100%; height: 2px;
    background: rgba(150, 86, 3, .18);
    background: color-mix(in srgb, var(--color-primary) 18%, transparent);
    border-radius: 999px; overflow: hidden;
}
.emp-crono-item .bar .fill { height: 100%; transition: width .5s ease }
.emp-crono-item-total {
    margin-bottom: 40px;
}
.emp-crono-item-total .etapa,
.emp-crono-item-total .perc {
    color: var(--color-primary);
}
.emp-crono-item-total .bar {
    background: rgba(150, 86, 3, .18);
    background: color-mix(in srgb, var(--color-primary) 18%, transparent);
}
.emp-crono-item-total .bar .fill {
    background: var(--color-primary);
}
.emp-crono-item .bar-success,
.emp-crono-item .bar-warning,
.emp-crono-item .bar-default { background: var(--color-primary) }

.emp-crono-fotos h3,
.emp-crono-videos h3 { font-size: 1.25rem; font-weight: 700; color: var(--color-dark); margin: 0 0 24px }
.emp-crono-fotos-grid {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: visible;
    gap: 20px;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scroll-padding-inline: 0;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.emp-crono-fotos-grid .gal-card {
    width: calc((100% - 60px) / 4);
    min-width: calc((100% - 60px) / 4);
    max-width: calc((100% - 60px) / 4);
    scroll-snap-stop: always;
}
.emp-crono-fotos-grid .foto {
    height: clamp(180px, 18vw, 240px);
}
.emp-crono-videos {
    margin-top: 48px;
    --emp-crono-video-arrow-offset: 18px;
}
.emp-crono-videos .emp-media-slider-obras .emp-media-arrow {
    top: calc(50% + var(--emp-crono-video-arrow-offset));
}
.emp-crono-videos-grid {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: visible;
    gap: 24px;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scroll-padding-inline: 0;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.emp-crono-videos-grid::-webkit-scrollbar { display: none }
.emp-crono-video-card {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: calc((100% - 48px) / 3);
    min-width: calc((100% - 48px) / 3);
    max-width: calc((100% - 48px) / 3);
    scroll-snap-align: start;
    scroll-snap-stop: always;
}
.emp-crono-video-period {
    margin: 0;
    color: var(--color-gray-500);
    font-size: .875rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.emp-crono-video-title {
    margin: 0;
    color: var(--color-dark);
    font-size: 1rem;
    font-weight: 700;
}
.emp-crono-video-frame {
    position: relative;
    padding-top: 56.25%;
    overflow: hidden;
    border-radius: 24px;
    background: #111827;
    box-shadow: 0 18px 45px rgba(15, 23, 42, .14);
}
.emp-crono-video-frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.emp-video-thumb-link {
    position: absolute;
    inset: 0;
    display: block;
    overflow: hidden;
    background: #111827;
    isolation: isolate;
}
.emp-video-thumb-link img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transform: scale(1);
    transition: transform .7s cubic-bezier(.22,1,.36,1), filter .45s ease;
}
.emp-video-thumb-link::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(15, 23, 42, .22) 0%, rgba(15, 23, 42, .58) 100%);
    transition: background .45s ease, opacity .45s ease;
}
.emp-video-play {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    --emp-video-play-scale: 1;
    --emp-video-play-hover-scale: 1.08;
    transform: translate(-50%, -50%) scale(var(--emp-video-play-scale));
    transform-origin: center center;
    transition: transform .45s cubic-bezier(.22,1,.36,1);
}
.emp-video-play-core {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s cubic-bezier(.22,1,.36,1), background-color .35s ease, border-color .35s ease;
}
.emp-video-play-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: color .35s ease, filter .35s ease;
}
.emp-video-play-card {
    width: 110px;
    height: 110px;
}
.emp-video-play-core-card {
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, rgba(15, 23, 42, .18) 0%, rgba(15, 23, 42, 0) 72%);
}
.emp-video-play-icon-card {
    color: #fff;
    filter: drop-shadow(0 10px 22px rgba(15, 23, 42, .18));
}
.emp-video-play-main {
    width: 320px;
    height: 320px;
}
.emp-video-play-ring {
    position: absolute;
    inset: 0;
    display: block;
    color: #fff;
    animation: empVideoPlaySpin 13s linear infinite;
    filter: drop-shadow(0 8px 26px rgba(15, 23, 42, .2));
}
.emp-video-play-ring svg {
    width: 100%;
    height: 100%;
    display: block;
}
.emp-video-play-ring text {
    fill: currentColor;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: .2px;
    text-transform: uppercase;
}
.emp-video-play-core-main {
    width: auto;
    height: auto;
    border-radius: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    backdrop-filter: none;
}
.emp-video-thumb-link:hover img,
.emp-video-thumb-link:focus-visible img {
    transform: scale(1.05);
    filter: saturate(1.05);
}
.emp-video-thumb-link:hover::before,
.emp-video-thumb-link:focus-visible::before {
    background: linear-gradient(180deg, rgba(15, 23, 42, .14) 0%, rgba(15, 23, 42, .42) 100%);
}
.emp-video-thumb-link:hover .emp-video-play,
.emp-video-thumb-link:focus-visible .emp-video-play {
    transform: translate(-50%, -50%) scale(var(--emp-video-play-hover-scale));
}
.emp-video-thumb-link:hover .emp-video-play-core-card,
.emp-video-thumb-link:focus-visible .emp-video-play-core-card {
    transform: scale(1.04);
}
.emp-video-thumb-link:hover .emp-video-play-icon-card,
.emp-video-thumb-link:focus-visible .emp-video-play-icon-card {
    color: var(--color-primary);
}
.emp-video-thumb-link:hover .emp-video-play-core-main,
.emp-video-thumb-link:focus-visible .emp-video-play-core-main {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
}
.emp-video-thumb-link:focus-visible {
    outline: 2px solid rgba(150, 86, 3, .32);
    outline-offset: 4px;
}
.emp-video-play-icon-main {
    color: #fff;
    transform: translateX(8px);
    filter: drop-shadow(0 12px 24px rgba(15, 23, 42, .28));
    transition: color .35s ease, transform .45s cubic-bezier(.22,1,.36,1), filter .35s ease;
}
.emp-video-thumb-link:hover .emp-video-play-icon-main,
.emp-video-thumb-link:focus-visible .emp-video-play-icon-main {
    color: var(--color-primary);
    transform: translateX(8px) scale(1.06);
}
.emp-video-play-icon-main svg {
    width: 68px;
    height: 78px;
    display: block;
}
@keyframes empVideoPlaySpin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}
@media (max-width: 1199px) {
    .emp-crono-fotos-grid .gal-card {
        width: calc((100% - 40px) / 3);
        min-width: calc((100% - 40px) / 3);
        max-width: calc((100% - 40px) / 3);
    }
    .emp-crono-fotos-grid .foto {
        height: clamp(180px, 24vw, 220px);
    }
    .emp-crono-videos-grid {
        gap: 20px;
    }
    .emp-crono-video-card {
        width: calc((100% - 20px) / 2);
        min-width: calc((100% - 20px) / 2);
        max-width: calc((100% - 20px) / 2);
    }
    .emp-video-play-card {
        width: 96px;
        height: 96px;
    }
    .emp-video-play-main {
        width: 272px;
        height: 272px;
    }
    .emp-video-play-ring text {
        font-size: 15px;
        letter-spacing: .15px;
    }
    .emp-video-play-core-main {
        width: auto;
        height: auto;
    }
    .emp-video-play-icon-main svg {
        width: 60px;
        height: 69px;
    }
}
@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    .emp-crono-summary {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
        margin-bottom: 32px;
    }
    .emp-crono-summary-item {
        font-size: 1rem;
    }
    .emp-crono-fotos-grid {
        gap: 12px;
    }
    .emp-crono-fotos-grid .gal-card {
        width: 100%;
        min-width: 100%;
        max-width: 100%;
    }
    .emp-crono-fotos-grid .foto {
        height: min(72vw, 320px);
    }
    .emp-crono-videos {
        margin-top: 32px;
    }
    .emp-crono-videos-grid {
        gap: 20px;
    }
    .emp-crono-video-card {
        width: 100%;
        min-width: 100%;
        max-width: 100%;
    }
    .emp-crono-video-frame {
        border-radius: 20px;
    }
    .emp-video-play-card {
        width: 84px;
        height: 84px;
    }
    .emp-video-play-icon-card svg {
        width: 30px;
        height: 34px;
    }
    .emp-video-play-main {
        width: 220px;
        height: 220px;
    }
    .emp-video-play-ring text {
        font-size: 13px;
        letter-spacing: .1px;
    }
    .emp-video-play-core-main {
        width: auto;
        height: auto;
    }
    .emp-video-play-icon-main svg {
        width: 52px;
        height: 60px;
    }
}
@media (max-width: 575px) {
    .emp-video-play-main {
        --emp-video-play-scale: .77;
        --emp-video-play-hover-scale: .83;
    }
}
@media (prefers-reduced-motion: reduce) {
    .emp-video-play-ring {
        animation: none;
    }

    .emp-video-thumb-link img,
    .emp-video-thumb-link::before,
    .emp-video-play,
    .emp-video-play-core {
        transition: none;
    }
}

body.emp-lightbox-open { overflow: hidden }
.emp-lightbox[hidden] { display: none }
.emp-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(15,23,42,.82);
    opacity: 0;
    visibility: hidden;
    transition: opacity .24s ease, visibility 0s linear .24s;
}
.emp-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    transition: opacity .24s ease;
}
.emp-lightbox-dialog {
    position: relative;
    width: min(1120px, 100%);
    max-height: 100%;
}
.emp-lightbox-figure {
    margin: 0;
    background: #0f172a;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 28px 80px rgba(15,23,42,.35);
}
.emp-lightbox-image {
    display: block;
    width: 100%;
    max-height: min(80vh, 920px);
    object-fit: contain;
    background: #0b1120;
}
.emp-lightbox-caption {
    padding: 14px 18px;
    color: #f3f4f6;
    background: rgba(15,23,42,.92);
    text-align: center;
    font-size: .95rem;
    line-height: 1.6;
}
.emp-lightbox-close {
    position: absolute;
    top: 16px;
    right: 16px;
    z-index: 2;
    width: 44px;
    height: 44px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.94);
    color: #111827;
    box-shadow: 0 10px 25px rgba(15,23,42,.18);
    transition: transform .2s ease, background .2s ease;
}
.emp-lightbox-close:hover {
    background: #fff;
    transform: scale(1.05);
}
.emp-lightbox-close span {
    position: absolute;
    width: 18px;
    height: 2px;
    border-radius: 999px;
    background: currentColor;
}
.emp-lightbox-close span:first-child { transform: rotate(45deg) }
.emp-lightbox-close span:last-child { transform: rotate(-45deg) }
@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    .emp-lightbox {
        padding: 16px;
    }
    .emp-lightbox-figure {
        border-radius: 16px;
    }
    .emp-lightbox-image {
        max-height: 72vh;
    }
    .emp-lightbox-close {
        top: 12px;
        right: 12px;
        width: 40px;
        height: 40px;
    }
}

/* ============================================================
   TENHO INTERESSE — fundo cinza claro estilo React
   ============================================================ */
.emp-interesse {
    background: #d8d6d2;
}
.emp-interesse .container-7xl { max-width: 1240px }
.emp-interesse-card {
    background: #cbc7c0;
    border-radius: 24px;
    padding: clamp(20px, 3vw, 44px);
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(20px, 3vw, 36px);
    align-items: stretch;
}
.emp-interesse-media {
    min-height: 320px;
    border-radius: 18px;
    overflow: hidden;
    background: #b8b3aa;
}
.emp-interesse-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.emp-interesse-content { display: flex; flex-direction: column; justify-content: center }
.emp-interesse-head { margin-bottom: 40px; text-align: center }

/* ============================================================
   REGIAO — layout fiel ao prototipo HTML, preservando shell global
   ============================================================ */
body.page-regiao {
    overflow-x: hidden;
}

body.page-regiao .smooth-scroll-content {
    padding-top: 0;
}

body.page-regiao .hero-region {
    position: relative;
    margin-top: var(--header-height);
    display: block;
    min-height: 0;
    align-items: stretch;
    overflow: hidden;
    padding: 0;
    background: #fff;
}

body.page-regiao .hero-bg {
    position: relative;
    inset: auto;
    background: none;
}

body.page-regiao .hero-bg picture {
    display: block;
    width: 100%;
}

body.page-regiao .hero-bg img {
    display: block;
    width: 100%;
    height: auto;
}

body.page-regiao .hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, rgba(20,14,7,0.24) 0%, rgba(20,14,7,0.10) 42%, rgba(20,14,7,0) 72%);
    pointer-events: none;
}

body.page-regiao .hero-line {
    position: absolute;
    inset-block: 0;
    inset-inline-start: 50%;
    width: 2px;
    background: linear-gradient(to bottom, transparent 0%, var(--color-primary) 30%, var(--color-primary) 80%, transparent 100%);
    opacity: 0;
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 1.6s cubic-bezier(0.16,1,0.3,1) 0.5s, opacity 0.4s ease 0.5s;
}

body.page-regiao .hero-region.ready .hero-line {
    transform: scaleY(1);
    opacity: 0.4;
}

body.page-regiao .hero-content {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    background: transparent;
    padding: 0 32px 52px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: auto;
}

body.page-regiao .hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 20px;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.6s ease 0.3s, transform 0.6s ease 0.3s;
}

body.page-regiao .hero-eyebrow::before {
    content: '';
    width: 28px;
    height: 2px;
    background: #fff;
}

body.page-regiao .hero-region.ready .hero-eyebrow {
    opacity: 1;
    transform: none;
}

body.page-regiao .hero-title {
    font-family: var(--font-script);
    font-size: clamp(96px, 14vw, 96px);
    font-weight: 400;
    color: #fff;
    line-height: 0.78;
    margin-bottom: 28px;
    max-width: 720px;
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.8s ease 0.5s, transform 0.8s ease 0.5s;
}

body.page-regiao .hero-region.ready .hero-title {
    opacity: 1;
    transform: none;
}

body.page-regiao .hero-subtitle {
    font-size: clamp(14px, 1.5vw, 20px);
    font-weight: 400;
    color: rgba(255,255,255,0.75);
    max-width: 500px;
    line-height: 1.65;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.7s ease 0.7s, transform 0.7s ease 0.7s;
}

body.page-regiao .hero-region.ready .hero-subtitle {
    opacity: 1;
    transform: none;
}

body.page-regiao .scroll-cue {
    position: absolute;
    bottom: 32px;
    inset-inline-start: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    opacity: 0;
    transition: opacity 0.6s ease 1.2s;
}

body.page-regiao .hero-region.ready .scroll-cue {
    opacity: 1;
}

body.page-regiao .scroll-cue span {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
}

body.page-regiao .scroll-mouse {
    width: 20px;
    height: 32px;
    border: 1.5px solid rgba(255,255,255,0.25);
    border-radius: 10px;
    position: relative;
}

body.page-regiao .scroll-mouse::after {
    content: '';
    position: absolute;
    top: 4px;
    inset-inline-start: 50%;
    transform: translateX(-50%);
    width: 2.5px;
    height: 7px;
    background: var(--color-primary);
    border-radius: 2px;
    animation: regiaoScrollBob 2.2s ease infinite;
}

@keyframes regiaoScrollBob {
    0%, 100% {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }

    75% {
        opacity: 0;
        transform: translateX(-50%) translateY(13px);
    }
}

body.page-regiao .ticker {
        background: rgba(255, 255, 255, 0.96);
    padding: 14px 0;
    overflow: hidden;
}

body.page-regiao .ticker-track {
    display: flex;
    width: max-content;
    animation: regiaoTickerMove 28s linear infinite;
}

body.page-regiao .ticker-item {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary);
    padding: 0 28px;
    white-space: nowrap;
    flex-shrink: 0;
}

body.page-regiao .ticker-sep {
    color: rgba(227,30,36,0.45);
}

@keyframes regiaoTickerMove {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

body.page-regiao .stats-section {
    background: var(--color-dark);
    position: relative;
    overflow: hidden;
}

body.page-regiao .stats-grid {
    position: relative;
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

body.page-regiao .stat-item {
    padding: 64px 40px;
    text-align: center;
    border-inline-end: 1px solid rgba(255,255,255,0.07);
    position: relative;
    transition: background 0.3s;
}

body.page-regiao .stat-item:last-child {
    border-inline-end: none;
}

body.page-regiao .stat-item:hover {
    background: rgba(255,255,255,0.03);
}

body.page-regiao .stat-item::after {
    content: '';
    position: absolute;
    inset-block-end: 0;
    inset-inline: 0;
    height: 2px;
    background: var(--color-primary);
    transform: scaleX(0);
    transform-origin: inline-start;
    transition: transform 0.5s cubic-bezier(0.16,1,0.3,1);
}

body.page-regiao .stat-item:hover::after {
    transform: scaleX(1);
}

body.page-regiao .stat-num {
    font-size: clamp(40px, 5vw, 68px);
    font-weight: 800;
    color: #fff;
    line-height: 1;
    margin-bottom: 10px;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

body.page-regiao .stat-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.72);
}

body.page-regiao [data-reveal] {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity 0.75s ease, transform 0.75s ease;
}

body.page-regiao [data-reveal="left"] {
    transform: translateX(-36px);
}

body.page-regiao [data-reveal="right"] {
    transform: translateX(36px);
}

body.page-regiao [data-reveal="scale"] {
    transform: scale(0.96);
}

body.page-regiao [data-reveal].visible {
    opacity: 1;
    transform: none;
}

body.page-regiao [data-delay="1"] {
    transition-delay: 0.1s;
}

body.page-regiao [data-delay="2"] {
    transition-delay: 0.2s;
}

body.page-regiao [data-delay="3"] {
    transition-delay: 0.3s;
}

body.page-regiao [data-delay="4"] {
    transition-delay: 0.4s;
}

body.page-regiao [data-delay="5"] {
    transition-delay: 0.5s;
}

body.page-regiao [data-delay="6"] {
    transition-delay: 0.6s;
}

body.page-regiao .about-section {
    padding: 112px 32px;
    background: #fff;
}

body.page-regiao .about-inner {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 96px;
    align-items: start;
}

body.page-regiao .eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: 16px;
}

body.page-regiao .eyebrow::before {
    content: '';
    width: 22px;
    height: 2px;
    background: var(--color-primary);
    flex-shrink: 0;
}

body.page-regiao .section-heading {
    font-family: var(--font-base);
    font-size: clamp(32px, 3.5vw, 36px);
    font-weight: 700;
    color: var(--color-dark);
    line-height: 1.12;
    letter-spacing: -0.03em;
    margin-bottom: 32px;
}

body.page-regiao .body-text p {
    font-size: 15px;
    line-height: 1.85;
    color: var(--color-text-muted);
    margin-bottom: 18px;
}

body.page-regiao .body-text p:last-child {
    margin-bottom: 0;
}

body.page-regiao .body-text strong {
    color: var(--color-text);
    font-weight: 600;
}

body.page-regiao .pull-quote {
    border-inline-start: 3px solid var(--color-primary);
    background: var(--color-bg-soft);
    padding: 28px 32px;
    border-radius: 0 6px 6px 0;
    margin-bottom: 32px;
}

body.page-regiao .pull-quote p {
    font-family: var(--font-base);
    font-size: clamp(18px, 2vw, 20px);
    font-style: italic;
    line-height: 1.5;
    color: var(--color-dark);
}

body.page-regiao .attractions-section {
    padding: 112px 32px;
    background: var(--color-bg-soft);
    position: relative;
    overflow: hidden;
}

body.page-regiao .bg-word {
    position: absolute;
    inset-block-start: 40px;
    inset-inline-end: -20px;
    font-size: clamp(80px, 13vw, 180px);
    font-weight: 900;
    color: rgba(46,46,46,0.05);
    line-height: 1;
    pointer-events: none;
    user-select: none;
    white-space: nowrap;
    letter-spacing: -0.03em;
}

body.page-regiao .section-intro {
    max-width: var(--container);
    margin: 0 auto 60px;
}

body.page-regiao .cards-grid {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

body.page-regiao .acard {
    position: relative;
    border-radius: 14px;
    overflow: hidden;
    height: 360px;
    background: #111;
    cursor: default;
    box-shadow: 0 6px 28px rgba(0,0,0,0.14);
    transition: box-shadow 0.55s ease, transform 0.55s cubic-bezier(0.16,1,0.3,1);
}

body.page-regiao .attractions-section .acard[data-reveal] {
    opacity: 0;
    transform: translateY(36px);
    filter: none;
    transition: opacity 0.75s ease, transform 0.75s ease;
}

body.page-regiao .attractions-section .acard[data-reveal].visible {
    opacity: 1;
    transform: none;
    filter: none;
}

body.page-regiao .acard::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(5,5,5,0.92) 0%, rgba(5,5,5,0.48) 48%, rgba(5,5,5,0.08) 100%);
    transition: background 0.5s ease;
    z-index: 1;
}

body.page-regiao .acard::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: var(--card-img);
    background-size: cover;
    background-position: center;
    transform: scale(1);
    transition: transform 0.85s cubic-bezier(0.16,1,0.3,1);
    will-change: transform;
    z-index: 0;
}

body.page-regiao .acard:hover {
    box-shadow: 0 24px 64px rgba(0,0,0,0.32);
    transform: translateY(-8px);
}

body.page-regiao .acard:hover::before {
    background: linear-gradient(to top, rgba(5,5,5,0.96) 0%, rgba(5,5,5,0.58) 52%, rgba(5,5,5,0.14) 100%);
}

body.page-regiao .acard:hover::after {
    transform: scale(1.09);
}

body.page-regiao .acard-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 28px;
}

body.page-regiao .acard-num {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.20em;
    color: var(--color-primary);
    margin-bottom: 10px;
}

body.page-regiao .acard h3 {
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
    margin-bottom: 0;
    transition: color 0.35s ease;
}

body.page-regiao .acard p {
    font-size: 13px;
    color: rgba(255,255,255,0.76);
    line-height: 1.65;
    margin-top: 0;
    margin-bottom: 16px;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(8px);
    transition: max-height 0.82s cubic-bezier(0.22,1,0.36,1), margin-top 0.82s cubic-bezier(0.22,1,0.36,1), opacity 0.48s ease 0.08s, transform 0.82s cubic-bezier(0.22,1,0.36,1);
}

body.page-regiao .acard:hover p {
    max-height: 96px;
    margin-top: 10px;
    opacity: 1;
    transform: none;
}

body.page-regiao .dist-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    color: rgba(255,255,255,0.88);
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.18);
    padding: 6px 14px;
    border-radius: 100px;
    backdrop-filter: blur(8px);
    width: fit-content;
    transition: background 0.45s ease, border-color 0.45s ease, transform 0.82s cubic-bezier(0.22,1,0.36,1);
}

body.page-regiao .dist-pill svg {
    width: 11px;
    height: 11px;
    fill: rgba(255,255,255,0.88);
    flex-shrink: 0;
}

body.page-regiao .acard:hover .dist-pill {
    background: rgba(255,255,255,0.18);
    border-color: rgba(255,255,255,0.30);
    transform: translateY(-1px);
}

body.page-regiao .map-section {
    padding: 112px 32px;
    background: #fff;
}

body.page-regiao .map-inner {
    max-width: var(--container);
    margin: 0 auto;
}

body.page-regiao .region-map-intro {
    margin-bottom: 40px;
}

body.page-regiao .map-wrap {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 24px 64px rgba(0,0,0,0.10);
}

body.page-regiao .map-wrap iframe {
    width: 100%;
    aspect-ratio: 21 / 8;
    min-height: 280px;
    display: block;
    border: none;
}

body.page-regiao .map-pin {
    position: absolute;
    inset-block-start: 20px;
    inset-inline-start: 20px;
    background: #fff;
    border-radius: 6px;
    padding: 12px 18px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.14);
    display: flex;
    align-items: center;
    gap: 10px;
    z-index: 2;
}

body.page-regiao .pin-dot {
    width: 10px;
    height: 10px;
    background: var(--color-primary);
    border-radius: 50%;
    animation: regiaoPinPulse 2.5s ease infinite;
}

@keyframes regiaoPinPulse {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(227,30,36,0.4);
    }

    50% {
        box-shadow: 0 0 0 8px rgba(227,30,36,0);
    }
}

body.page-regiao .pin-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--color-dark);
}

@media (max-width: 1024px) {
    body.page-regiao .about-inner {
        grid-template-columns: 1fr;
        gap: 56px;
    }

    body.page-regiao .cards-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    body.page-regiao .stats-grid {
        grid-template-columns: 1fr;
    }

    body.page-regiao .stat-item {
        border-inline-end: none;
        border-bottom: 1px solid rgba(255,255,255,0.07);
    }

    body.page-regiao .stat-item:last-child {
        border-bottom: none;
    }
}

@media (max-width: 640px) {
    body.page-regiao .cards-grid {
        grid-template-columns: 1fr;
    }
body.page-regiao {
margin-top: -24px;
}
    body.page-regiao .map-wrap iframe {
        aspect-ratio: 4 / 3;
    }

    body.page-regiao .hero-title {
        font-size: clamp(72px, 24vw, 128px);
    }

    body.page-regiao .about-section,
    body.page-regiao .attractions-section,
    body.page-regiao .map-section {
        padding-inline: 20px;
    }

    body.page-regiao .hero-content {
        padding: 0 20px 40px;
    }
}

/* ============================================================
   INSTITUCIONAL — layout fiel ao prototipo HTML, preservando shell global
   ============================================================ */
body.page-institucional {
    overflow-x: hidden;
    --institutional-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    
}

body.page-institucional .smooth-scroll-content {
    padding-top: 0;
}

body.page-institucional .hero-institucional {
    position: relative;
    margin-top: var(--header-height);
    overflow: hidden;
    padding: 0;
    background: #fff;
}

body.page-institucional .hero-bg {
    position: relative;
    inset: auto;
    background: none;
}

body.page-institucional .hero-bg picture {
    display: block;
    width: 100%;
}

body.page-institucional .hero-bg img {
    display: block;
    width: 100%;
    height: auto;
}

body.page-institucional .hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(22,14,7,0.18) 0%, rgba(22,14,7,0.08) 36%, rgba(22,14,7,0) 70%);
    pointer-events: none;
}

body.page-institucional .hero-line {
    position: absolute;
    inset-block: 0;
    inset-inline-start: 50%;
    width: 2px;
    background: linear-gradient(to bottom, transparent 0%, var(--color-primary) 30%, var(--color-primary) 80%, transparent 100%);
    opacity: 0;
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 1.6s var(--institutional-ease-out) 0.5s, opacity 0.4s ease 0.5s;
}

body.page-institucional .hero-institucional.ready .hero-line {
    transform: scaleY(1);
    opacity: 0.4;
}

body.page-institucional .hero-content {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 32px 52px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 0;
    background: transparent;
}

body.page-institucional .hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 20px;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.6s ease 0.3s, transform 0.6s ease 0.3s;
}

body.page-institucional .hero-eyebrow::before {
    content: '';
    width: 28px;
    height: 2px;
    background: #fff;
}

body.page-institucional .hero-institucional.ready .hero-eyebrow {
    opacity: 1;
    transform: none;
}

body.page-institucional .hero-title {
    font-family: var(--font-base);
    font-size: 48px;
    font-weight: 700;
    font-style: normal;
    color: #fff;
    line-height: 0.95;
    margin-bottom: 28px;
    max-width: 720px;
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.8s ease 0.5s, transform 0.8s ease 0.5s;
}

body.page-institucional .hero-institucional.ready .hero-title {
    opacity: 1;
    transform: none;
}

body.page-institucional .hero-subtitle {
    font-size: 20px;
    font-weight: 400;
    color: rgba(255,255,255,0.75);
    max-width: 500px;
    line-height: 1.65;
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.7s ease 0.7s, transform 0.7s ease 0.7s;
}

body.page-institucional .hero-institucional.ready .hero-subtitle {
    opacity: 1;
    transform: none;
}

body.page-institucional .scroll-cue {
    position: absolute;
    bottom: 32px;
    inset-inline-start: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    opacity: 0;
    transition: opacity 0.6s ease 1.2s;
}

body.page-institucional .hero-institucional.ready .scroll-cue {
    opacity: 1;
}

body.page-institucional .scroll-cue span {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.4);
}

body.page-institucional .scroll-mouse {
    width: 20px;
    height: 32px;
    border: 1.5px solid rgba(255,255,255,0.25);
    border-radius: 10px;
    position: relative;
}

body.page-institucional .scroll-mouse::after {
    content: '';
    position: absolute;
    top: 4px;
    inset-inline-start: 50%;
    transform: translateX(-50%);
    width: 2.5px;
    height: 7px;
    background: var(--color-primary);
    border-radius: 2px;
    animation: institucionalScrollBob 2.2s ease infinite;
}

@keyframes institucionalScrollBob {
    0%, 100% {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }

    75% {
        opacity: 0;
        transform: translateX(-50%) translateY(13px);
    }
}

body.page-institucional .ticker {
    background: rgba(255, 255, 255, 0.96);
    padding: 14px 0;
    overflow: hidden;
}

body.page-institucional .ticker-track {
    display: flex;
    width: max-content;
    animation: institucionalTickerMove 28s linear infinite;
}

body.page-institucional .ticker-item {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-primary);
    padding: 0 28px;
    white-space: nowrap;
    flex-shrink: 0;
}

body.page-institucional .ticker-sep {
    color: rgba(227,30,36,0.45);
}

@keyframes institucionalTickerMove {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(-50%);
    }
}

body.page-institucional .stats-section {
    background: var(--color-dark);
    position: relative;
    overflow: hidden;
}

body.page-institucional .stats-grid {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

body.page-institucional .stat-item {
    padding: 64px 40px;
    text-align: center;
    border-inline-end: 1px solid rgba(255,255,255,0.07);
    position: relative;
    transition: background 0.3s;
}

body.page-institucional .stat-item:last-child {
    border-inline-end: none;
}

body.page-institucional .stat-item:hover {
    background: rgba(255,255,255,0.03);
}

body.page-institucional .stat-item::after {
    content: '';
    position: absolute;
    inset-block-end: 0;
    inset-inline: 0;
    height: 2px;
    background: var(--color-primary);
    transform: scaleX(0);
    transform-origin: inline-start;
    transition: transform 0.5s var(--institutional-ease-out);
}

body.page-institucional .stat-item:hover::after {
    transform: scaleX(1);
}

body.page-institucional .stat-num {
    font-size: clamp(40px, 5vw, 68px);
    font-weight: 800;
    color: #fff;
    line-height: 1;
    margin-bottom: 10px;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

body.page-institucional .stat-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.72);
}

body.page-institucional [data-reveal] {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity 0.75s ease, transform 0.75s ease;
}

body.page-institucional [data-reveal="left"] {
    transform: translateX(-36px);
}

body.page-institucional [data-reveal="right"] {
    transform: translateX(36px);
}

body.page-institucional [data-reveal="scale"] {
    transform: scale(0.96);
}

body.page-institucional [data-reveal].visible {
    opacity: 1;
    transform: none;
}

body.page-institucional [data-delay="1"] {
    transition-delay: 0.1s;
}

body.page-institucional [data-delay="2"] {
    transition-delay: 0.2s;
}

body.page-institucional [data-delay="3"] {
    transition-delay: 0.3s;
}

body.page-institucional [data-delay="4"] {
    transition-delay: 0.4s;
}

body.page-institucional [data-delay="5"] {
    transition-delay: 0.5s;
}

body.page-institucional [data-delay="6"] {
    transition-delay: 0.6s;
}

body.page-institucional .eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: 16px;
}

body.page-institucional .eyebrow::before {
    content: '';
    width: 22px;
    height: 2px;
    background: var(--color-primary);
    flex-shrink: 0;
}

body.page-institucional .section-heading {
    font-family: var(--font-base);
    font-size: clamp(32px, 3.5vw, 36px) !important;
    font-weight: 600;
    color: var(--color-dark);
    line-height: 1.12;
    margin-bottom: 24px;
}

body.page-institucional .bg-word {
    position: absolute;
    inset-block-start: 40px;
    inset-inline-end: -20px;
    font-size: clamp(80px, 13vw, 180px);
    font-weight: 900;
    color: rgba(46,46,46,0.05);
    line-height: 1;
    pointer-events: none;
    user-select: none;
    white-space: nowrap;
    letter-spacing: -0.03em;
}

body.page-institucional .historia-section {
    padding: 112px 32px;
    background: var(--color-bg-soft);
    position: relative;
    overflow: hidden;
}

body.page-institucional .historia-inner {
    max-width: var(--container);
    margin: 0 auto;
}

body.page-institucional .historia-intro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start;
    margin-bottom: 4px;
}

body.page-institucional .historia-body-text p {
    font-size: 15px;
    line-height: 1.85;
    color: var(--color-text-muted);
    margin-bottom: 18px;
}

body.page-institucional .historia-body-text p:last-child {
    margin-bottom: 0;
}

body.page-institucional .historia-body-text strong {
    color: var(--color-text);
    font-weight: 600;
}

body.page-institucional .pull-quote {
    border-inline-start: 3px solid var(--color-primary);
    background: rgba(255,255,255,0.65);
    padding: 32px 36px;
    border-radius: 0 6px 6px 0;
}

body.page-institucional .pull-quote p {
    font-family: var(--font-base);
    font-size: clamp(18px, 2vw, 20px);
    font-style: italic;
    line-height: 1.55;
    color: var(--color-dark);
}

body.page-institucional .historia-blocks {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3px;
    margin-top: 40px;
}

body.page-institucional .hist-heading {
    overflow: hidden;
}

body.page-institucional .hist-line {
    display: block;
    overflow: hidden;
}

body.page-institucional .hist-line-inner {
    display: block;
    transform: translateY(110%);
    opacity: 0;
    transition: transform 1.05s var(--institutional-ease-out), opacity 0.7s ease;
}

body.page-institucional .hist-heading.heading-in .hist-line-inner {
    opacity: 1;
    transform: none;
}

body.page-institucional .hist-heading.heading-in .hist-line:nth-child(2) .hist-line-inner {
    transition-delay: 0.14s;
}

body.page-institucional .historia-divider {
    border: none;
    outline: none;
    height: 1px;
    background: rgba(46,46,46,0.12);
    width: 0;
    margin-top: 80px;
    transition: width 1.2s var(--institutional-ease-out);
}

body.page-institucional .historia-divider.div-in {
    width: 100%;
}

body.page-institucional .hist-block {
    background: #fff;
    padding: 56px 44px 52px;
    position: relative;
    overflow: hidden;
    transition: transform 0.35s var(--institutional-ease-out), box-shadow 0.35s ease;
}

body.page-institucional .hist-block[data-reveal] {
    opacity: 0;
    transform: translateY(72px) scale(0.975);
    clip-path: inset(0 0 100% 0);
    transition: opacity 0.95s var(--institutional-ease-out), transform 0.95s var(--institutional-ease-out), clip-path 1.05s var(--institutional-ease-out), box-shadow 0.35s ease;
}

body.page-institucional .historia-blocks .hist-block[data-reveal]:nth-child(1) {
    transition-delay: 0s;
}

body.page-institucional .historia-blocks .hist-block[data-reveal]:nth-child(2) {
    transition-delay: 0.15s;
}

body.page-institucional .historia-blocks .hist-block[data-reveal]:nth-child(3) {
    transition-delay: 0.3s;
}

body.page-institucional .historia-blocks .hist-block[data-reveal]:nth-child(4) {
    transition-delay: 0.45s;
}

body.page-institucional .hist-block[data-reveal].visible {
    opacity: 1;
    transform: none;
    clip-path: inset(0 0 0 0);
}

body.page-institucional .hist-block::before {
    content: '';
    position: absolute;
    inset-block-start: 0;
    inset-inline: 0;
    height: 3px;
    background: var(--color-primary);
    transform: scaleX(0);
    transform-origin: inline-start;
    transition: transform 0.65s var(--institutional-ease-out);
}

body.page-institucional .hist-block.visible::before {
    transform: scaleX(1);
    transition-delay: 0.6s;
}

body.page-institucional .hist-block:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 56px rgba(0,0,0,0.11);
}

body.page-institucional .hist-num {
    position: relative;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.18em;
    color: var(--color-primary);
    margin-bottom: 24px;
}

body.page-institucional .hist-num::after {
    content: attr(data-num);
    position: absolute;
    inset-block-start: -28px;
    inset-inline-end: 0;
    font-size: 100px;
    font-weight: 900;
    letter-spacing: -0.04em;
    color: rgba(46,46,46,0.045);
    line-height: 1;
    pointer-events: none;
    user-select: none;
    transition: color 0.4s ease;
}

body.page-institucional .hist-block:hover .hist-num::after {
    color: rgba(227,30,36,0.07);
}

body.page-institucional .hist-block h3 {
    font-size: 17px;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 14px;
    line-height: 1.3;
}

body.page-institucional .hist-block p {
    font-size: 14px;
    line-height: 1.85;
    color: var(--color-text-muted);
}

body.page-institucional .valores-section {
    padding: 112px 32px;
    background: #fff;
    position: relative;
    overflow: hidden;
}

body.page-institucional .valores-inner,
body.page-institucional .vendas-inner,
body.page-institucional .emp-inner {
    max-width: var(--container);
    margin: 0 auto;
}

body.page-institucional .section-intro {
    margin-bottom: 60px;
}

body.page-institucional .valores-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 3px;
}

body.page-institucional .valor-card {
    background: var(--color-bg-soft);
    padding: 48px 36px;
    position: relative;
    overflow: hidden;
    transition: background 0.3s;
}

body.page-institucional .valor-card::after {
    content: '';
    position: absolute;
    inset-block-end: 0;
    inset-inline: 0;
    height: 3px;
    background: var(--color-primary);
    transform: scaleX(0);
    transform-origin: inline-start;
    transition: transform 0.4s var(--institutional-ease-out);
}

body.page-institucional .valor-card:hover {
    background: #fff;
}

body.page-institucional .valor-card:hover::after {
    transform: scaleX(1);
}

body.page-institucional .valor-num {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: var(--color-primary);
    margin-bottom: 28px;
}

body.page-institucional .valor-icon {
    width: 36px;
    height: 36px;
    color: var(--color-dark);
    margin-bottom: 20px;
}

body.page-institucional .valor-card h3 {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 12px;
}

body.page-institucional .valor-card p {
    font-size: 13px;
    line-height: 1.75;
    color: var(--color-text-muted);
}

body.page-institucional .presidente-section {
    padding: 0;
    background: #fff;
}

body.page-institucional .presidente-grid {
    width: 100%;
    max-width: none;
    margin: 0;
    display: grid;
    grid-template-columns: minmax(0, 50%) minmax(0, 50%);
    height: 870px;
    min-height: 870px;
    border-radius: 0;
    overflow: hidden;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
    align-items: stretch;
}

body.page-institucional .presidente-grid::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(255,255,255,0.94) 0%, rgba(255,255,255,0.86) 36%, rgba(255,255,255,0.48) 68%, rgba(255,255,255,0.12) 100%);
    pointer-events: none;
}

@media (min-width: 1024px) {
    body.page-institucional .presidente-grid::before {
        display: none;
    }
}

@media (min-width: 1600px) {
    body.page-institucional .presidente-grid {
        background-size: 1920px auto;
        background-position: center center;
    }
}

body.page-institucional .presidente-img {
    position: relative;
    z-index: 2;
    grid-column: 2;
    grid-row: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 24px max(32px, calc((100vw - var(--container)) / 2 + 24px)) 24px 24px;
}

body.page-institucional .presidente-img img {
    width: auto;
    max-width: 100%;
    height: min(100%, 760px);
    max-height: 100%;
    object-fit: contain;
    object-position: bottom center;
    filter: none;
    border-radius: 0;
    box-shadow: none;
    transform: translateY(18px) scale(1.02);
    transition: transform 1.8s var(--institutional-ease-out);
}

body.page-institucional .presidente-img.visible img {
    transform: translateY(0) scale(1);
}

body.page-institucional .presidente-img::after {
    display: none;
}

body.page-institucional .presidente-body {
    grid-column: 1;
    grid-row: 1;
    position: relative;
    z-index: 2;
    height: 100%;
    max-width: none;
    padding: 52px 40px 36px max(32px, calc((100vw - var(--container)) / 2 + 24px));
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    margin-top: 50px;

}

body.page-institucional .pres-eyebrow {
    display: flex;
    align-items: center;
    gap: 10px;
    box-sizing: border-box;
    padding-left: 16px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #a10404;
    margin-bottom: 24px;
}

body.page-institucional .pres-eyebrow::before {
    content: '';
    width: 22px;
    height: 2px;
    background: #a10404;
}

body.page-institucional .pres-heading {
    box-sizing: border-box;
    padding-left: 16px;
    font-family: var(--font-base);
    font-size: clamp(26px, 2.5vw, 30px);
    font-weight: 700;
    font-style: normal;
    color: var(--color-text);
    line-height: 1.08;
    margin-bottom: 50px;
    max-width: 440px;
}

body.page-institucional .quote-mark {
    display: none;
}

body.page-institucional .pres-copy {
    box-sizing: border-box;
    padding-left: 16px;
    max-width: 520px;
}

body.page-institucional .pres-copy p {
    font-family: var(--font-base);
    font-size: 16px;
    line-height: 1.48;
    color: var(--color-text);
    font-style: normal;
    margin-bottom: 14px;
}

body.page-institucional .pres-copy p:last-child {
    margin-bottom: 0;
}

body.page-institucional .pres-brand {
    color: #a10404;
    font-weight: 700;
}

body.page-institucional .pres-copy strong {
    color: var(--color-text);
    font-style: normal;
    font-weight: 700;
}

body.page-institucional .pres-bio {
    box-sizing: border-box;
    padding-left: 16px;
    font-family: var(--font-base);
    font-size: 16px;
    line-height: 1.48;
    color: var(--color-gray-700);
    margin-top: 24px;
    margin-bottom: 0;
    max-width: 520px;
}

body.page-institucional .pres-sign {
    border-block-start: 1.7px solid rgba(161,4,4,0.55);
    box-sizing: border-box;
    padding-left: 16px;
    padding-block-start: 46px;
    max-width: 520px;
    margin-top: 60px;
}

body.page-institucional .pres-sign .name {
    font-family: var(--font-base);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-text);
}

body.page-institucional .pres-sign .role {
    font-family: var(--font-base);
    font-size: 0.8125rem;
    color: var(--color-gray-600);
    font-weight: 500;
    letter-spacing: normal;
    text-transform: none;
    margin-top: 4px;
}

@media (min-width: 1024px) and (max-width: 1599px) {
    body.page-institucional .bg-word,
    body.page-regiao .bg-word {
        font-size: 140px;
    }

    body.page-institucional .pres-heading {
        font-size: 24px;
    }

    body.page-institucional .pres-copy p,
    body.page-institucional .pres-bio {
        font-size: 14px;
    }

    body.page-institucional .pres-sign .name {
        font-size: 16px;
    }
}

body.page-institucional .vendas-section {
    padding: 112px 32px;
    background: #fff;
}

body.page-institucional .vendas-subtitle {
    font-size: 15px;
    color: var(--color-text-muted);
    margin-top: 8px;
    margin-bottom: 48px;
}

body.page-institucional .photos-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    margin-bottom: 4px;
}

body.page-institucional .cv-photo {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    position: relative;
    clip-path: inset(100% 0 0 0);
    transition: clip-path 1.1s var(--institutional-ease-out);
}

body.page-institucional .cv-photo:nth-child(1) {
    transition-delay: 0s;
}

body.page-institucional .cv-photo:nth-child(2) {
    transition-delay: 0.17s;
}

body.page-institucional .cv-photo:nth-child(3) {
    transition-delay: 0.34s;
}

body.page-institucional .cv-photo.photo-in {
    clip-path: inset(0 0 0 0);
}

body.page-institucional .cv-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.1);
    filter: grayscale(18%) brightness(0.92);
    transition: transform 1.4s var(--institutional-ease-out), filter 0.8s ease;
}

body.page-institucional .cv-photo.photo-in img {
    transform: scale(1);
    filter: grayscale(0) brightness(1);
}

body.page-institucional .cv-photo:hover img {
    transform: scale(1.05);
    filter: grayscale(0) brightness(1.04);
}

body.page-institucional .cv-label {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(26,26,26,0.78) 0%, transparent 55%);
    display: flex;
    align-items: flex-end;
    padding: 22px 24px;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.35s ease, transform 0.35s ease;
}

body.page-institucional .cv-photo:hover .cv-label {
    opacity: 1;
    transform: none;
}

body.page-institucional .cv-label-text {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.92);
    display: flex;
    align-items: center;
    gap: 9px;
}

body.page-institucional .cv-label-text::before {
    content: '';
    width: 20px;
    height: 2px;
    background: var(--color-primary);
    flex-shrink: 0;
}

body.page-institucional .contact-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border: 1px solid #e9e9e9;
}

body.page-institucional .contact-item {
    padding: 40px 28px;
    border-inline-end: 1px solid #e9e9e9;
    position: relative;
    overflow: hidden;
    transition: background 0.25s ease;
}

body.page-institucional .contact-item:last-child {
    border-inline-end: none;
}

body.page-institucional .contact-item::before {
    content: '';
    position: absolute;
    inset-block-start: 0;
    inset-inline: 0;
    height: 3px;
    background: var(--color-primary);
    transform: scaleX(0);
    transform-origin: inline-start;
    transition: transform 0.4s var(--institutional-ease-out);
}

body.page-institucional .contact-item:hover {
    background: #fafafa;
}

body.page-institucional .contact-item:hover::before {
    transform: scaleX(1);
}

body.page-institucional .contact-ic-wrap {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(227,30,36,0.08);
    border-radius: 6px;
    margin-bottom: 18px;
    opacity: 0;
    transform: scale(0.5) translateY(10px);
    transition: opacity 0.5s var(--institutional-ease-out), transform 0.5s var(--institutional-ease-out);
}

body.page-institucional .contact-item:nth-child(1) .contact-ic-wrap {
    transition-delay: 0.35s;
}

body.page-institucional .contact-item:nth-child(2) .contact-ic-wrap {
    transition-delay: 0.5s;
}

body.page-institucional .contact-item:nth-child(3) .contact-ic-wrap {
    transition-delay: 0.65s;
}

body.page-institucional .contact-item:nth-child(4) .contact-ic-wrap {
    transition-delay: 0.8s;
}

body.page-institucional .contact-item.visible .contact-ic-wrap {
    opacity: 1;
    transform: scale(1) translateY(0);
}

body.page-institucional .contact-ic {
    width: 22px;
    height: 22px;
    color: var(--color-primary);
}

body.page-institucional .contact-item h3 {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--color-text-muted);
    margin-bottom: 10px;
}

body.page-institucional .contact-item p,
body.page-institucional .contact-item a {
    font-size: 14px;
    color: var(--color-text);
    line-height: 1.6;
}

body.page-institucional .contact-item a {
    transition: color 0.2s;
}

body.page-institucional .contact-item a:hover {
    color: var(--color-primary);
}

body.page-institucional .emp-section {
    padding: 112px 32px;
    background: var(--color-bg-soft);
    position: relative;
    overflow: hidden;
}

body.page-institucional .emp-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 56px;
}

body.page-institucional .emp-card {
    position: relative;
    overflow: hidden;
    aspect-ratio: 3 / 4;
    display: block;
}

body.page-institucional .emp-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.9s var(--institutional-ease-out);
}

body.page-institucional .emp-card:hover img {
    transform: scale(1.06);
}

body.page-institucional .emp-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.08) 60%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 36px;
}

body.page-institucional .emp-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    padding: 4px 10px;
    margin-bottom: 12px;
    align-self: flex-start;
}

body.page-institucional .emp-badge.lancamento {
    background: var(--color-primary);
    color: #fff;
}

body.page-institucional .emp-badge.entregue {
    background: rgba(255,255,255,0.12);
    color: rgba(255,255,255,0.85);
    border: 1px solid rgba(255,255,255,0.25);
}

body.page-institucional .emp-card h3 {
    font-size: 20px;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
    margin-bottom: 10px;
}

body.page-institucional .emp-loc {
    font-size: 12px;
    color: rgba(255,255,255,0.5);
    display: flex;
    align-items: center;
    gap: 5px;
}

body.page-institucional .emp-loc svg {
    width: 12px;
    height: 12px;
    flex-shrink: 0;
}

body.page-institucional .emp-cta {
    display: flex;
    justify-content: center;
}

body.page-institucional .cta-section {
    position: relative;
    overflow: hidden;
    padding: 160px 32px;
}

body.page-institucional .cta-bg {
    position: absolute;
    inset: -15% 0 -5%;
    background-size: cover;
    background-position: center 45%;
    background-image: var(--cta-bg-desktop);
    will-change: transform;
}

body.page-institucional .cta-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.72);
}

body.page-institucional .cta-content {
    position: relative;
    z-index: 2;
    max-width: var(--container);
    margin: 0 auto;
    text-align: center;
}

body.page-institucional .cta-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: 20px;
}

body.page-institucional .cta-eyebrow::before,
body.page-institucional .cta-eyebrow::after {
    content: '';
    width: 22px;
    height: 2px;
    background: var(--color-primary);
}

body.page-institucional .cta-content h2 {
    font-family: var(--font-script);
    font-size: clamp(40px, 6vw, 88px);
    font-weight: 400;
    font-style: normal;
    color: #fff;
    line-height: 1.05;
    margin-bottom: 24px;
    max-width: 820px;
    margin-inline: auto;
}

body.page-institucional .cta-content p {
    font-size: 16px;
    color: rgba(255,255,255,0.62);
    max-width: 560px;
    margin-inline: auto;
    line-height: 1.8;
    margin-bottom: 52px;
}

body.page-institucional .inst-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 16px 36px;
    border-radius: var(--radius);
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: var(--btn-base-fill, transparent);
    transition: color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1)), border-color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1)), background-color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
}

body.page-institucional .inst-btn svg {
    width: 16px;
    height: 16px;
    transition: transform .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
}

body.page-institucional .inst-btn-primary {
    color: #fff;
    border: 1.5px solid transparent;
    --btn-base-fill: var(--color-primary);
    --btn-hover-fill: var(--color-dark);
    --btn-hover-color: #fff;
    --btn-hover-border: var(--color-dark);
}

body.page-institucional .inst-btn-outline {
    border: 1.5px solid rgba(255,255,255,0.35);
    color: #fff;
    --btn-base-fill: transparent;
    --btn-hover-fill: #fff;
    --btn-hover-color: var(--color-dark);
    --btn-hover-border: #fff;
}

@media (hover: hover) and (pointer: fine) {
    .btn-react:hover,
    .btn-soft:hover,
    .btn-emp-cta:hover,
    body.page-institucional .inst-btn:hover {
        color: var(--btn-hover-color, #fff);
        border-color: var(--btn-hover-border, transparent);
    }

    .btn-react:hover::before,
    .btn-soft:hover::before,
    .btn-emp-cta:hover::before,
    body.page-institucional .inst-btn:hover::before {
        transform: scaleX(1);
    }

    .btn-react:hover .arrow,
    body.page-institucional .inst-btn:hover svg {
        transform: translateX(6px);
    }
}

@media (max-width: 1024px) {
    body.page-institucional .historia-intro {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    body.page-institucional .historia-blocks {
        grid-template-columns: 1fr;
    }

    body.page-institucional .valores-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    body.page-institucional .presidente-grid {
        grid-template-columns: 1fr;
        height: auto;
        min-height: auto;
    }

    body.page-institucional .presidente-img {
        grid-column: 1;
        grid-row: 2;
        padding: 0 32px 32px;
        height: auto;
    }

    body.page-institucional .presidente-img::after {
        display: none;
    }

    body.page-institucional .presidente-body {
        grid-column: 1;
        grid-row: 1;
        max-width: none;
        padding: 48px 40px 24px;
        margin-top: 0;
    }

    body.page-institucional .presidente-img img {
        width: min(100%, 360px);
        height: auto;
    }

    body.page-institucional .photos-grid {
        grid-template-columns: 1fr;
    }

    body.page-institucional .emp-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    body.page-institucional .stats-grid {
        grid-template-columns: 1fr;
    }

    body.page-institucional .stat-item {
        border-inline-end: none;
        border-bottom: 1px solid rgba(255,255,255,0.07);
    }

    body.page-institucional .stat-item:last-child {
        border-bottom: none;
    }
}

@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    body.page-institucional .cta-bg {
        background-image: var(--cta-bg-mobile, var(--cta-bg-desktop));
        background-position: center center;
    }

    body.page-institucional .presidente-body {
        overflow-x: clip;
    }

    body.page-institucional .presidente-grid {
        overflow-x: clip;
    }

    body.page-institucional .pres-eyebrow,
    body.page-institucional .pres-heading,
    body.page-institucional .pres-copy,
    body.page-institucional .pres-bio,
    body.page-institucional .pres-sign {
        padding-left: 0;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    body.page-institucional .pres-heading {
        overflow-wrap: anywhere;
        hyphens: auto;
    }

    body.page-institucional .pres-copy p,
    body.page-institucional .pres-bio {
        overflow-wrap: break-word;
    }
}

@media (max-width: 640px) {
    body.page-institucional .presidente-section {
        padding: 0 0 40px;
    }
    body.page-institucional {

    margin-top: -24px;
}


    body.page-institucional .historia-section,
    body.page-institucional .valores-section,
    body.page-institucional .vendas-section,
    body.page-institucional .emp-section,
    body.page-institucional .cta-section {
        padding-inline: 20px;
    }

    body.page-institucional .hero-content {
        padding: 0 20px 28px;
    }



    body.page-institucional .valores-grid,
    body.page-institucional .emp-grid {
        grid-template-columns: 1fr;
    }

    body.page-institucional .contact-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    body.page-institucional .contact-item {
        border-bottom: 1px solid #e9e9e9;
    }

    body.page-institucional .cta-section {
        padding-block: 100px;
    }

    body.page-institucional .presidente-body {
        padding: 40px 20px 16px;
    }

    body.page-institucional .presidente-grid {
        border-radius: 0;
    }

    body.page-institucional .presidente-img {
        padding: 0 20px 24px;
    }

    body.page-institucional .pres-heading {
        font-size: clamp(28px, 11.5vw, 42px);
        line-height: 1;
        margin-bottom: 32px;
    }

    body.page-institucional .pres-copy p,
    body.page-institucional .pres-bio {
        font-size: 15px;
    }

    body.page-institucional .pres-sign {
        margin-top: 40px;
        padding-block-start: 28px;
    }
}

.emp-interesse-sub { color: var(--color-gray-700); font-size: 1rem; margin: 0; line-height: 1.6 }
@media (min-width: 992px) {
    .emp-interesse-card {
        grid-template-columns: minmax(340px, 44%) minmax(0, 56%);
        min-height: 640px;
    }
    .emp-interesse-media { min-height: 560px }
    .emp-interesse-head { text-align: left }
}
.form-emp-interesse .row-3 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    margin-bottom: 24px;
}
@media (min-width: 768px) {
    .form-emp-interesse .row-3 { grid-template-columns: repeat(2, 1fr) }
    .form-emp-interesse .row-3 .form-line:last-child { grid-column: 1 / -1 }
}
@media (min-width: 1280px) {
    .form-emp-interesse .row-3 { grid-template-columns: repeat(3, 1fr) }
    .form-emp-interesse .row-3 .form-line:last-child { grid-column: auto }
}
.form-emp-interesse .form-line { margin-bottom: 24px }
.form-emp-interesse input:not([type="file"]),
.form-emp-interesse textarea,
.form-emp-interesse select {
    width: 100%;
    padding: 0 0 12px;
    border: 0;
    border-bottom: 2px solid #9ca3af;
    background: transparent;
    font-size: 1rem;
    color: var(--color-dark);
    outline: none;
    border-radius: 0;
    transition: border-color .2s ease;
    resize: none;
    font-family: inherit;
}
.form-emp-interesse select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 32px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23222529' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right center;
    background-size: 16px 16px;
    cursor: pointer;
}
.form-emp-interesse input[type="file"] {
    width: 100%;
    padding: 10px 0 0;
    border: 0;
    background: transparent;
    font-size: 1rem;
    color: var(--color-dark);
    font-family: inherit;
}
.form-emp-interesse input[type="file"]::file-selector-button {
    margin-right: 16px;
    padding: 12px 18px;
    border: 0;
    border-radius: var(--radius);
    background: var(--color-dark);
    color: #fff;
    font: inherit;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: background-color .2s ease, transform .2s ease;
}
.form-emp-interesse input[type="file"]::file-selector-button:hover {
    background: #1a1a1a;
}
.form-emp-interesse input::placeholder,
.form-emp-interesse textarea::placeholder { color: var(--color-dark); }
.form-emp-interesse input:not([type="file"]):focus,
.form-emp-interesse textarea:focus,
.form-emp-interesse select:focus { border-bottom-color: var(--color-dark) }
.form-privacy-consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 8px 0 28px;
    color: var(--color-gray-700);
    font-size: 0.9375rem;
    line-height: 1.6;
}
.form-privacy-consent input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    flex: 0 0 auto;
    accent-color: var(--color-primary);
}
.form-privacy-consent label {
    margin: 0;
    cursor: pointer;
}
.form-privacy-consent a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.form-privacy-consent a:hover {
    color: var(--color-primary-dark);
}
/* TEMPORÁRIO: com o .form-privacy-consent comentado no HTML, a linha do botão
   colava no campo de currículo. Repõe o respiro das margens do aceite (8px + 28px).
   Remover este bloco ao reativar a Política de Privacidade. */
.jobs-apply-form-no-privacy .jobs-apply-submit {
    margin-top: 36px;
}
.btn-emp-send { padding: 16px 48px; font-size: 1rem }

body.page-contato .contact-main-section {
    padding-bottom: 0;
}

body.page-contato .contact-content-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 56px;
    align-items: start;
}

@media (min-width: 992px) {
    body.page-contato .contact-content-grid {
        grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
        gap: 80px;
    }
}

body.page-contato .contact-form-column,
body.page-contato .contact-info-column {
    min-width: 0;
}

body.page-contato .contact-form-column .heading-2,
body.page-contato .contact-info-column .heading-2 {
    margin-bottom: 40px;
}

body.page-contato .contact-form-empreendimento .row-3 {
    margin-bottom: 28px;
}

body.page-contato .contact-form-empreendimento .row-3 .form-line {
    margin-bottom: 0;
}

body.page-contato .contact-form-empreendimento .contact-form-subject {
    margin-bottom: 28px;
}

body.page-contato .contact-form-empreendimento .contact-form-message {
    margin-bottom: 40px;
}

body.page-contato .contact-form-empreendimento textarea {
    min-height: 160px;
}

body.page-contato .contact-form-submit {
    display: flex;
    justify-content: flex-start;
}

body.page-contato .contact-info-stack {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}

body.page-contato .contact-info-stack .info-row {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    column-gap: 20px;
    align-items: start;
    min-height: 126px;
}

body.page-contato .contact-info-stack .info-row h3 {
    margin-bottom: 8px;
}

body.page-contato .contact-info-stack .info-row p {
    margin: 0;
    line-height: 1.7;
}

body.page-contato .contact-map-band {
    width: 100%;
    margin-top: clamp(56px, 7vw, 88px);
}

body.page-contato .contact-map-band iframe {
    display: block;
    width: 100%;
    height: clamp(380px, 42vw, 560px);
    border: 0;
}

@media (max-width: 768px), (max-width: 1024px) and (orientation: portrait) {
    body.page-contato .contact-form-column .heading-2,
    body.page-contato .contact-info-column .heading-2 {
        margin-bottom: 32px;
    }

    body.page-contato .contact-map-band {
        margin-top: 48px;
    }

    body.page-contato .contact-map-band iframe {
        height: 360px;
    }
}

    body.page-trabalhe-conosco .work-form-shell {
        max-width: 900px !important;
    }

    body.page-trabalhe-conosco .work-form-section .heading-2 {
        margin-bottom: 18px;
    }

    body.page-trabalhe-conosco .work-form-section .lead-text.center {
        max-width: 760px;
        margin-bottom: 44px !important;
    }

    body.page-trabalhe-conosco .trabalhe-form-empreendimento .row-2 {
        display: grid;
        grid-template-columns: 1fr;
        gap: 32px;
        margin-bottom: 28px;
    }

    @media (min-width: 768px) {
        body.page-trabalhe-conosco .trabalhe-form-empreendimento .row-2 {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    body.page-trabalhe-conosco .trabalhe-form-empreendimento .row-2 .form-line {
        margin-bottom: 0;
    }

    body.page-trabalhe-conosco .trabalhe-form-empreendimento .trabalhe-form-message {
        margin-bottom: 36px;
    }

    body.page-trabalhe-conosco .trabalhe-form-empreendimento textarea {
        min-height: 150px;
    }

    body.page-trabalhe-conosco .trabalhe-form-empreendimento .trabalhe-form-file {
        margin-bottom: 40px;
    }

    body.page-trabalhe-conosco .trabalhe-form-empreendimento .trabalhe-form-file label {
        display: block;
        margin-bottom: 14px;
        font-size: 0.875rem;
        font-weight: 500;
        color: var(--color-gray-700);
    }

    body.page-trabalhe-conosco .trabalhe-form-submit {
        display: flex;
        justify-content: center;
    }

/* ============================================================
   OUTROS EMPREENDIMENTOS
   ============================================================ */
.emp-outros-sub { color: var(--color-gray-700); font-size: 1.125rem; margin: 0 }
.emp-outros-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}
@media (min-width: 768px)  { .emp-outros-grid { grid-template-columns: repeat(2, 1fr) } }
@media (min-width: 1024px) { .emp-outros-grid { grid-template-columns: repeat(3, 1fr) } }
.emp-outros-card { display: block; text-decoration: none; color: inherit; cursor: pointer; }
.emp-outros-card .img {
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: var(--radius);
    margin-bottom: 16px;
}
.emp-outros-card .img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease }
.emp-outros-card:hover .img img { transform: scale(1.05) }
.emp-outros-card .img .badge {
    position: absolute;
    top: 16px; left: 16px;
    background: var(--color-primary);
    color: #fff;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .05em;
    z-index: 3;
}
.emp-outros-card .body { padding: 0 16px }
.emp-outros-card .body h3 {
    font-size: 1.25rem; font-weight: 700; color: var(--color-dark); margin: 0 0 8px;
    transition: color .2s ease;
}
.emp-outros-card:hover .body h3 { color: var(--color-primary) }
.emp-outros-card .meta {
    display: flex; align-items: center; gap: 8px;
    color: var(--color-gray-600);
    font-size: .875rem;
    margin-bottom: 4px;
}
.emp-outros-card .meta svg { width: 16px; height: 16px; color: var(--color-primary); flex-shrink: 0 }

/* ============================================================
   BLOG estilo React (com sidebar de categorias)
   ============================================================ */
.blog-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}
body.page-blog .blog-hero-intro {
    padding-bottom: 28px;
}
body.page-blog .blog-hero-intro + .section-py.sub {
    padding-top: 24px;
}
@media (min-width: 1024px) {
    .blog-layout { grid-template-columns: 1fr 280px; gap: 48px }
}
.blog-grid-react {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
}
@media (min-width: 768px) { .blog-grid-react { grid-template-columns: repeat(2, 1fr) } }
.blog-card-react {
    display: block; text-decoration: none; color: inherit;
    cursor: pointer;
}
.blog-card-react .img {
    position: relative;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-radius: var(--radius);
    margin-bottom: 16px;
    isolation: isolate;
}
.blog-card-react .img::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: 0;
    background: rgba(15, 23, 42, 0);
    transition: background .35s ease, opacity .35s ease;
    pointer-events: none;
}
.blog-card-react .img::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 48px;
    height: 48px;
    background: transparent;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23ffffff'%3E%3Ccircle cx='12' cy='12' r='9' stroke-width='0.6'/%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='0.6' d='M12 8v8M8 12h8'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    opacity: 0;
    transform: translate(-50%, -50%) scale(.82);
    transition: opacity .3s ease, transform .35s cubic-bezier(.22,1,.36,1);
    z-index: 2;
    pointer-events: none;
}
.blog-card-react .img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease }
.blog-card-react:hover .img img,
.blog-card-react:focus-visible .img img { transform: scale(1.05) }
.blog-card-react:hover .img::before,
.blog-card-react:focus-visible .img::before {
    opacity: 1;
    background: rgba(15, 23, 42, .32);
}
.blog-card-react:hover .img::after,
.blog-card-react:focus-visible .img::after {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}
.blog-card-react .body { padding: 0 16px }
.blog-card-react .cat-pill {
    display: inline-block;
    padding: 4px 12px;
    background: var(--color-bg-soft);
    border-radius: 999px;
    font-size: .8125rem;
    color: var(--color-gray-700);
    margin-bottom: 12px;
}
.blog-card-react h3 {
    font-size: 1.25rem; font-weight: 700;
    margin: 0 0 8px; color: var(--color-dark);
    line-height: 1.3;
    display: -webkit-box; line-clamp: 2; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    transition: color .2s ease;
}
.blog-card-react:hover h3 { color: var(--color-primary) }
.blog-card-react .resumo {
    color: var(--color-gray-600);
    font-size: .9375rem;
    line-height: 1.5;
    margin: 0 0 16px;
    display: -webkit-box; line-clamp: 2; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.blog-card-react .footer {
    display: flex; align-items: center; justify-content: space-between;
}
.blog-card-react .date {
    display: flex; align-items: center; gap: 6px;
    color: var(--color-gray-500); font-size: .875rem;
}
.blog-card-react .date svg { width: 16px; height: 16px }
.blog-card-react .ler-mais {
    display: flex; align-items: center; gap: 8px;
    color: var(--color-primary); font-size: .875rem;
    transition: gap .2s ease;
}
.blog-card-react:hover .ler-mais { gap: 12px }

/* Sidebar */
.blog-sidebar { align-self: start; min-width: 0 }
@media (min-width: 1024px) {
    .blog-layout > .blog-sidebar,
    .post-content-section .blog-sidebar {
        align-self: stretch;
        position: relative;
    }
}
.blog-sidebar-box {
    background: var(--color-bg-soft);
    border-radius: var(--radius);
    padding: 24px;
}
.blog-sidebar-box.is-fixed {
    position: fixed;
    top: 24px;
    z-index: 40;
}
.blog-sidebar-box.is-bottom {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
}
.blog-sidebar-box .head {
    display: flex; align-items: center; gap: 8px;
    margin-bottom: 24px;
}
.blog-sidebar-box .head svg { color: var(--color-primary) }
.blog-sidebar-box .head h3 { font-size: 1.125rem; font-weight: 700; color: var(--color-dark); margin: 0 }
.blog-cat-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px }
.blog-cat-list a {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 16px;
    border-radius: 8px;
    background: #fff;
    color: var(--color-gray-700);
    text-decoration: none;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition: color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
}
.blog-cat-list a::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: var(--color-primary);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .45s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
    z-index: 0;
}
.blog-cat-list a > * {
    position: relative;
    z-index: 1;
}
.blog-cat-list a.is-active {
    background: var(--color-primary);
    color: #fff;
}
.blog-cat-list .count {
    font-size: 0.875rem;
    color: inherit;
    opacity: .75;
}

@media (hover: hover) and (pointer: fine) {
    .blog-cat-list a:hover,
    .blog-cat-list a:focus-visible {
        color: #fff;
    }

    .blog-cat-list a:hover::before,
    .blog-cat-list a:focus-visible::before {
        transform: scaleX(1);
    }
}

.post-related-section {
    border-top: 1px solid #e5e7eb;
}
.post-related-title {
    font-size: 2.25rem;
    font-weight: 700;
    color: var(--color-dark);
    margin-bottom: 48px;
}
.post-related-card {
    background: var(--color-bg-soft);
    border-radius: var(--radius);
    overflow: hidden;
}
.post-related-card .img {
    margin-bottom: 0;
    border-radius: 0;
}
.post-related-card .body {
    padding: 24px;
}
.post-related-card h3 {
    margin-bottom: 0;
}
.post-related-cta {
    text-align: center;
    margin-top: 48px;
}
.post-related-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 14px 28px;
    border-radius: 14px;
    color: #fff;
    text-decoration: none;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: var(--color-primary);
    border: 1px solid transparent;
    transition: color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1)), border-color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1)), background-color .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
}

.post-related-button::before {
    content: '';
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    background: var(--color-dark);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .45s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
    z-index: -1;
}

.post-related-button > * {
    position: relative;
    z-index: 1;
}

.post-related-button svg {
    width: 18px;
    height: 18px;
    transition: transform .35s var(--ease-cta, cubic-bezier(0.22, 1, 0.36, 1));
}

@media (hover: hover) and (pointer: fine) {
    .btn-emp-cta:hover svg,
    .post-related-button:hover svg {
        transform: translateX(6px);
    }

    .post-related-button:hover {
        color: #fff;
        border-color: var(--color-dark);
    }

    .post-related-button:hover::before {
        transform: scaleX(1);
    }
}

/* Logo do banner das páginas internas → link para a Home.
   display:contents faz o <a> não gerar caixa, então o layout e as animações
   de reveal da logo (que miram a <img>) seguem idênticos.
   As logos têm `pointer-events:none` (eram decorativas), então o clique
   atravessava — reativamos o ponteiro na <img> para o link funcionar. */
.bemavi-hero-logo-link {
    display: contents;
}

.bemavi-hero-logo-link img {
    cursor: pointer;
    pointer-events: auto;
}
