:root{--bg:#fff;--text:#0f172a;--muted:#64748b;--soft:#f1f5f9;--border:#e2e8f0;--primary:#2563eb;--primary-dark:#1d4ed8;--dark:#020617;--card:#fff;--radius:22px;--shadow:0 20px 50px rgba(15,23,42,.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);line-height:1.6}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1120px,calc(100% - 32px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.header-inner{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand,.footer-brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.25rem}.brand-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--primary);color:#fff}.main-nav{display:flex;align-items:center;gap:6px}.main-nav a{padding:10px 14px;border-radius:12px;color:var(--muted);font-weight:600;font-size:.95rem}.main-nav a:hover,.main-nav a.active{color:var(--primary);background:#eff6ff}.menu-toggle{display:none;border:0;background:transparent;font-size:1.6rem}.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:11px 18px;font-weight:700;border:1px solid transparent;cursor:pointer;transition:.2s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{border-color:var(--border);background:#fff;color:var(--text)}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-light{background:#fff;color:var(--text)}.full{width:100%}.hero{position:relative;min-height:calc(100vh - 72px);display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden}.hero-bg{position:absolute;inset:0;background:linear-gradient(rgba(2,6,23,.55),rgba(2,6,23,.72)),#0f172a center/cover}.hero-content{position:relative;z-index:1}.hero h1{font-size:clamp(2.5rem,6vw,4.8rem);line-height:1.05;margin:0 0 24px;letter-spacing:-.04em}.hero p{font-size:clamp(1.1rem,2vw,1.45rem);max-width:760px;margin:0 auto 32px;color:#e2e8f0}.hero-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.section{padding:88px 0}.section-muted{background:var(--soft)}.section-heading{text-align:center;margin-bottom:42px}.section-heading h2,.page-header h1{font-size:clamp(2rem,4vw,3rem);line-height:1.1;margin:0 0 12px}.section-heading p,.page-header p{color:var(--muted);font-size:1.1rem;max-width:720px;margin-inline:auto}.stats{padding:52px 0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}.stats strong{display:block;font-size:2.4rem}.stats span{color:var(--muted)}.property-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.property-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:.25s}.property-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.property-image{position:relative;aspect-ratio:4/3;overflow:hidden}.property-image img{width:100%;height:100%;object-fit:cover;transition:.45s}.property-card:hover img{transform:scale(1.06)}.badge{position:relative;display:inline-flex;border-radius:999px;padding:6px 12px;font-size:.78rem;font-weight:800;color:#fff}.property-image .badge{position:absolute;top:16px;left:16px}.badge.venda{background:var(--primary)}.badge.locacao{background:#0f172a}.property-content{padding:22px}.property-content h3{font-size:1.22rem;line-height:1.25;margin:0 0 10px}.muted{color:var(--muted)}.property-meta{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:.94rem;margin:14px 0}.property-footer{border-top:1px solid var(--border);padding-top:18px;margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.property-footer strong{font-size:1.25rem;color:var(--primary)}.process-grid,.services-grid,.testimonials-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.process-grid>div,.services-grid>div,blockquote,.form-card,.contact-info,.why-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:26px;box-shadow:0 8px 24px rgba(15,23,42,.05)}.process-grid span{display:inline-flex;font-size:2rem;font-weight:900;color:var(--primary);margin-bottom:10px}.cta{background:var(--primary);color:#fff;text-align:center;padding:80px 0}.cta h2{font-size:clamp(2rem,4vw,3rem);margin:0 0 12px}.cta p{font-size:1.2rem;color:#dbeafe;margin:0 auto 28px;max-width:760px}.page-header{padding:70px 0}.filter-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:34px;flex-wrap:wrap}.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.empty-state{text-align:center;padding:70px 0}.detail-grid,.contact-grid,.about-hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.detail-image,.about-hero img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover}.about-hero img{aspect-ratio:3/4}.detail-info h1{font-size:clamp(2rem,4vw,3.4rem);line-height:1.05;margin:18px 0 10px}.detail-price{display:block;font-size:2rem;color:var(--primary);margin:18px 0}.detail-meta{margin:24px 0}.testimonials-grid{grid-template-columns:repeat(3,1fr)}blockquote{margin:0;font-size:1.05rem}cite{display:block;margin-top:16px;color:var(--muted);font-style:normal;font-weight:700}.form-card h2,.contact-info h2{margin-top:0}form{display:grid;gap:18px}label{display:grid;gap:7px;font-weight:700}input,textarea{width:100%;border:1px solid var(--border);border-radius:12px;padding:13px 14px;font:inherit;color:var(--text);background:#fff}textarea{min-height:150px;resize:vertical}small{color:#dc2626}.alert{padding:14px 16px;border-radius:12px;margin-bottom:16px}.success{background:#dcfce7;color:#166534}.contact-info{align-self:start}.why-card{margin-top:24px;background:var(--soft)}.why-card ul{padding-left:20px}.site-footer{background:var(--dark);color:#cbd5e1;padding:54px 0 28px}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:28px}.footer-grid h3{color:#fff;margin:0 0 14px}.footer-grid a{display:block;color:#cbd5e1;margin:8px 0}.social-links{display:flex;gap:12px;flex-wrap:wrap}.footer-bottom{border-top:1px solid #1e293b;margin-top:34px;padding-top:24px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.center{text-align:center}.mt-40{margin-top:40px}@media(max-width:900px){.main-nav{display:none;position:absolute;top:72px;left:0;right:0;background:#fff;border-bottom:1px solid var(--border);padding:16px;flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.menu-toggle{display:block}.nav-cta{width:100%}.stats-grid,.property-grid,.process-grid,.services-grid,.footer-grid,.detail-grid,.contact-grid,.about-hero{grid-template-columns:1fr 1fr}.testimonials-grid{grid-template-columns:1fr}.hero{min-height:720px}}@media(max-width:640px){.container{width:min(100% - 24px,1120px)}.section{padding:64px 0}.stats-grid,.property-grid,.process-grid,.services-grid,.footer-grid,.detail-grid,.contact-grid,.about-hero{grid-template-columns:1fr}.property-footer{align-items:flex-start;flex-direction:column}.footer-bottom{display:block}.hero-actions .btn{width:100%}.filter-row{align-items:flex-start}.filters{align-items:flex-start}.about-hero img{order:-1}.main-nav a{width:100%}}

/* Imóvel em destaque / carousel da home */
.featured-carousel{position:relative;height:min(680px,62vh);min-height:500px;border-radius:32px;overflow:hidden;background:#020617;box-shadow:var(--shadow);margin-bottom:64px}.featured-slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .45s ease}.featured-slide.active{opacity:1;pointer-events:auto}.featured-slide img{width:100%;height:100%;object-fit:cover}.featured-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(2,6,23,.92),rgba(2,6,23,.42),rgba(2,6,23,.12))}.featured-content{position:absolute;left:0;right:0;bottom:0;padding:42px;color:#fff;display:grid;gap:18px;max-width:850px}.featured-tags{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.featured-location{color:#e2e8f0;font-weight:700}.featured-content h3{font-size:clamp(2rem,5vw,3.8rem);line-height:1.05;margin:0;letter-spacing:-.04em}.featured-content p{font-size:1.08rem;color:#e2e8f0;max-width:680px;margin:0}.featured-meta{display:flex;gap:16px;flex-wrap:wrap;color:#f8fafc;font-weight:700}.featured-meta span{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.12);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:9px 13px}.featured-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.featured-actions strong{font-size:clamp(1.8rem,3vw,2.6rem)}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:48px;height:48px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.14);backdrop-filter:blur(10px);color:#fff;font-size:2rem;line-height:1;cursor:pointer;transition:.2s}.carousel-btn:hover{background:rgba(255,255,255,.26)}.carousel-btn.prev{left:18px}.carousel-btn.next{right:18px}.carousel-dots{position:absolute;right:28px;bottom:28px;display:flex;gap:8px;z-index:6}.dot{width:10px;height:10px;border:0;border-radius:999px;background:rgba(255,255,255,.45);cursor:pointer;transition:.2s}.dot.active{width:32px;background:#fff}.more-properties h3{font-size:1.7rem;margin:0 0 24px}@media(max-width:640px){.featured-carousel{height:auto;min-height:620px;border-radius:24px}.featured-content{padding:28px 22px 72px}.featured-meta{gap:8px}.featured-meta span{font-size:.88rem}.featured-actions{align-items:flex-start;flex-direction:column}.carousel-btn{display:none}.carousel-dots{left:22px;right:auto;bottom:24px}}

/* Etapa 3: busca, detalhes completos do imóvel e contato do corretor */
:root{--primary:#c49355;--primary-dark:#a9793d;--accent:#c49355}.btn-dark{background:#1f2933;color:#fff}.btn-dark:hover{background:#111827}.home-search{margin:34px auto 0;background:rgba(255,255,255,.96);border-radius:8px;padding:20px;display:grid;grid-template-columns:1.1fr 1.1fr 1fr 1fr 1.4fr auto auto;gap:10px;box-shadow:0 18px 50px rgba(2,6,23,.22);max-width:1180px}.home-search select,.home-search input,.property-search select,.property-search input{width:100%;border:1px solid var(--border);border-radius:7px;padding:14px 16px;font:inherit;color:#555;background:#fff}.property-search{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:22px;margin-bottom:28px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;box-shadow:0 8px 24px rgba(15,23,42,.05)}.property-search input{grid-column:span 2}.property-card-body{padding:22px}.property-card-top{display:flex;gap:8px;align-items:center;margin-bottom:12px}.badge.destaque{background:var(--accent);border-radius:3px}.property-code{font-size:.9rem;color:var(--muted);margin:0 0 8px}.property-card-body h3{font-size:1.22rem;line-height:1.25;margin:0 0 10px}.property-card-body strong{font-size:1.24rem;color:var(--primary)}.property-image-link{display:block;aspect-ratio:4/3;overflow:hidden}.property-image-link img{width:100%;height:100%;object-fit:cover;transition:.45s}.property-card:hover .property-image-link img{transform:scale(1.06)}
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 365px;gap:28px;align-items:start}.detail-main{display:grid;gap:20px}.detail-panel,.broker-card{background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(15,23,42,.06)}.detail-panel{padding:28px}.detail-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;border-bottom:1px dashed var(--border);padding-bottom:22px;margin-bottom:24px}.code-highlight{color:var(--primary)}.detail-icons{display:flex;gap:18px;color:#b5b5b5;font-size:1.45rem}.detail-panel h1{font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.08;margin:0 0 8px}.detail-panel h2{color:var(--primary);font-size:1.05rem;margin:28px 0 14px}.detail-stats{display:flex;gap:28px;flex-wrap:wrap;margin:28px 0}.detail-stats div{display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:end}.detail-stats span{font-size:1.7rem;color:var(--primary);grid-row:span 2}.detail-stats small{color:#111827;font-weight:500}.detail-stats strong{font-size:1rem;color:#111827}.price-line,.finance-line{font-size:1.05rem;font-weight:800;color:#747474}.feature-list-detail{columns:2;list-style:none;padding:0;margin:10px 0 0}.feature-list-detail li{break-inside:avoid;margin:0 0 12px;padding-left:24px;position:relative}.feature-list-detail li:before{content:'✓';position:absolute;left:0;color:var(--primary);font-weight:900}.contact-call{margin-top:28px}.broker-card{position:sticky;top:92px;overflow:hidden}.broker-header{text-align:center;padding:24px 20px}.broker-header h2{font-size:1.25rem;margin:0 0 18px}.broker-header h2 span{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--primary);color:#fff;font-size:.9rem}.broker-header p{margin:9px 0;color:#737373}.broker-card>.btn{margin:0 16px 14px;width:calc(100% - 32px);border-radius:5px}.broker-form{gap:0}.broker-form label{padding:16px 20px;border-top:1px solid var(--border);gap:8px;font-size:.9rem}.broker-form input,.broker-form textarea{border:0;border-radius:0;padding:0;color:#777}.broker-form textarea{min-height:130px}.broker-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:16px}.broker-actions+.btn{margin:0 16px 16px;width:calc(100% - 32px);border-radius:5px}.broker-card .alert{margin:12px 16px}.detail-image{border-radius:8px;aspect-ratio:16/9}.featured-actions strong{color:#fff}
@media(max-width:1000px){.home-search,.property-search{grid-template-columns:1fr 1fr}.property-search input{grid-column:auto}.detail-layout{grid-template-columns:1fr}.broker-card{position:static}}@media(max-width:640px){.home-search,.property-search{grid-template-columns:1fr;padding:14px}.detail-panel{padding:20px}.detail-toolbar{align-items:flex-start;flex-direction:column}.detail-stats{gap:16px}.feature-list-detail{columns:1}.broker-actions{grid-template-columns:1fr}.hero{min-height:820px}}

/* Painel administrativo - Etapa 4 */
.admin-body,
.admin-login-body {
    background: #f4f6f8;
    color: #263238;
}

.admin-login-body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
}

.admin-login-card {
    width: min(440px, 100%);
    background: #fff;
    border-radius: 18px;
    padding: 32px;
    box-shadow: 0 16px 40px rgba(0,0,0,.08);
    display: grid;
    gap: 14px;
}

.admin-login-card h1 {
    margin: 0;
    font-size: 28px;
}

.admin-login-card p {
    margin: 0 0 8px;
    color: #667085;
}

.admin-login-card input,
.admin-form input,
.admin-form select,
.admin-form textarea,
.admin-filter input {
    width: 100%;
    border: 1px solid #d9dee7;
    border-radius: 10px;
    padding: 12px 14px;
    font: inherit;
    background: #fff;
}

.admin-login-card label,
.admin-form label {
    font-weight: 700;
    display: grid;
    gap: 8px;
}

.admin-shell {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 260px 1fr;
}

.admin-sidebar {
    background: #111827;
    color: #fff;
    padding: 24px;
}

.admin-brand {
    display: grid;
    gap: 4px;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(255,255,255,.14);
    margin-bottom: 18px;
}

.admin-brand strong {
    font-size: 20px;
}

.admin-brand span {
    color: #cbd5e1;
    font-size: 14px;
}

.admin-nav {
    display: grid;
    gap: 8px;
}

.admin-nav a {
    color: #e5e7eb;
    text-decoration: none;
    padding: 12px 14px;
    border-radius: 10px;
}

.admin-nav a:hover {
    background: rgba(255,255,255,.10);
}

.admin-main {
    padding: 32px;
    overflow-x: auto;
}

.admin-page-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 24px;
}

.admin-page-head h1 {
    margin: 0;
    font-size: 30px;
}

.admin-page-head p {
    margin: 6px 0 0;
    color: #667085;
}

.admin-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    border-radius: 10px;
    padding: 12px 16px;
    background: #e5e7eb;
    color: #111827;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
}

.admin-btn.primary {
    background: #c89352;
    color: #fff;
}

.admin-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.admin-stats div,
.admin-card,
.admin-table-card,
.admin-message-card {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(0,0,0,.06);
}

.admin-stats div {
    padding: 22px;
    display: grid;
    gap: 4px;
}

.admin-stats strong {
    font-size: 34px;
    color: #c89352;
}

.admin-stats span {
    color: #667085;
}

.admin-card {
    padding: 24px;
    margin-bottom: 18px;
}

.admin-card h2 {
    margin-top: 0;
}

.admin-filter {
    display: flex;
    gap: 12px;
    margin-bottom: 18px;
}

.admin-table-card {
    overflow-x: auto;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 900px;
}

.admin-table th,
.admin-table td {
    padding: 14px 16px;
    border-bottom: 1px solid #eef0f4;
    text-align: left;
    vertical-align: top;
}

.admin-table th {
    color: #667085;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.admin-badge {
    display: inline-flex;
    margin-left: 8px;
    background: #c89352;
    color: #fff;
    border-radius: 99px;
    padding: 4px 8px;
    font-size: 12px;
}

.admin-actions {
    white-space: nowrap;
}

.admin-actions a {
    color: #2563eb;
    font-weight: 700;
    text-decoration: none;
    margin-right: 10px;
}

.admin-actions a.danger {
    color: #dc2626;
}

.admin-form {
    display: grid;
    gap: 18px;
}

.admin-grid {
    display: grid;
    gap: 16px;
}

.admin-grid.two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.admin-grid.six {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.admin-span-2 {
    grid-column: span 2;
}

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

.admin-checks label {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #f8fafc;
    border: 1px solid #eef0f4;
    border-radius: 12px;
    padding: 12px;
}

.admin-checks input {
    width: auto;
}

.admin-form-actions {
    display: flex;
    gap: 12px;
    margin-bottom: 30px;
}

.admin-alert {
    padding: 14px 16px;
    border-radius: 12px;
    margin-bottom: 18px;
    font-weight: 700;
}

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

.admin-message-list {
    display: grid;
    gap: 16px;
}

.admin-message-card {
    padding: 22px;
    display: grid;
    grid-template-columns: 320px 1fr;
    gap: 24px;
}

.admin-message-card h2 {
    margin-top: 0;
}

.admin-message-text {
    background: #f8fafc;
    border-radius: 12px;
    padding: 16px;
    line-height: 1.7;
}

@media (max-width: 980px) {
    .admin-shell {
        grid-template-columns: 1fr;
    }

    .admin-sidebar {
        position: static;
    }

    .admin-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-stats,
    .admin-grid.two,
    .admin-grid.six,
    .admin-checks,
    .admin-message-card {
        grid-template-columns: 1fr;
    }

    .admin-span-2 {
        grid-column: auto;
    }

    .admin-page-head,
    .admin-filter,
    .admin-form-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Etapa 5: detalhe do imóvel sem emojis e botões funcionais */
.detail-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.detail-action {
    border: 1px solid var(--border);
    background: #fff;
    color: #6b7280;
    border-radius: 8px;
    padding: 8px 10px;
    font-size: .82rem;
    font-weight: 800;
    cursor: pointer;
    transition: .2s;
}

.detail-action:hover {
    color: var(--primary);
    border-color: var(--primary);
    background: #fff8ef;
}

.detail-stats div {
    min-width: 110px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 4px;
    background: #f8fafc;
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 12px 14px;
}

.detail-stats small {
    color: #374151;
    font-weight: 700;
}

.detail-stats strong {
    font-size: 1.05rem;
    color: #111827;
}

.price-line::before,
.finance-line::before,
.contact-call::before {
    display: inline-block;
    margin-right: 8px;
    color: var(--primary);
    font-weight: 900;
}

.price-line::before { content: 'Preço:'; }
.finance-line::before { content: 'Status:'; }
.contact-call::before { content: 'Contato:'; }

@media print {
    .site-header,
    .site-footer,
    .detail-actions,
    .broker-form,
    .broker-actions,
    .broker-card > .btn {
        display: none !important;
    }

    .section { padding: 0; }
    .detail-layout { display: block; }
    .detail-panel,
    .broker-card {
        box-shadow: none;
        border: 1px solid #ddd;
        position: static;
    }
}

/* Etapa 5: upload de imagem no painel */
.admin-image-preview {
    display: grid;
    gap: 8px;
    max-width: 420px;
    margin-bottom: 14px;
}

.admin-image-preview img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: 14px;
    border: 1px solid #e5e7eb;
    background: #f8fafc;
}

.admin-image-preview span,
.admin-form small {
    color: #667085;
    font-size: .9rem;
    font-weight: 500;
}

/* Etapa 6: galeria com várias fotos */
.property-gallery {
    display: grid;
    gap: 14px;
}

.property-thumbs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
    gap: 10px;
}

.property-thumb {
    border: 2px solid transparent;
    border-radius: 12px;
    padding: 0;
    overflow: hidden;
    cursor: pointer;
    background: #fff;
}

.property-thumb.active {
    border-color: var(--primary);
}

.property-thumb img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
}

.admin-gallery-manager {
    display: grid;
    gap: 12px;
    margin: 14px 0;
}

.admin-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
}

.admin-gallery-item {
    display: grid;
    gap: 8px;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 8px;
    background: #f8fafc;
}

.admin-gallery-item img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 10px;
}

.admin-gallery-item span {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: .9rem;
    color: #334155;
    font-weight: 700;
}


/* Etapa 7: galeria com setas e tela cheia */
.property-main-image-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 14px;
}

.main-image-button {
    display: block;
    width: 100%;
    border: 0;
    padding: 0;
    background: transparent;
    cursor: zoom-in;
}

.main-image-button .detail-image {
    display: block;
    width: 100%;
}

.gallery-arrow {
    position: absolute;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 999px;
    background: rgba(17, 24, 39, .72);
    color: #fff;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: .2s;
}

.gallery-arrow:hover {
    background: rgba(17, 24, 39, .9);
}

.gallery-prev { left: 14px; }
.gallery-next { right: 14px; }

.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0, 0, 0, .92);
    display: grid;
    place-items: center;
    padding: 56px 72px;
}

.lightbox-open {
    overflow: hidden;
}

.lightbox-image {
    max-width: min(1100px, 100%);
    max-height: 82vh;
    object-fit: contain;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .45);
}

.lightbox-close,
.lightbox-arrow {
    position: fixed;
    z-index: 10000;
    border: 0;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    cursor: pointer;
    transition: .2s;
}

.lightbox-close:hover,
.lightbox-arrow:hover {
    background: rgba(255, 255, 255, .26);
}

.lightbox-close {
    top: 22px;
    right: 24px;
    width: 46px;
    height: 46px;
    border-radius: 999px;
    font-size: 2rem;
    line-height: 1;
}

.lightbox-arrow {
    top: 50%;
    transform: translateY(-50%);
    width: 54px;
    height: 54px;
    border-radius: 999px;
    font-size: 2.4rem;
    line-height: 1;
}

.lightbox-prev { left: 24px; }
.lightbox-next { right: 24px; }

.lightbox-counter {
    position: fixed;
    bottom: 22px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(255, 255, 255, .14);
    color: #fff;
    padding: 8px 14px;
    border-radius: 999px;
    font-weight: 800;
}

@media (max-width: 700px) {
    .gallery-lightbox {
        padding: 56px 16px;
    }

    .gallery-arrow {
        width: 38px;
        height: 38px;
        font-size: 1.7rem;
    }

    .lightbox-arrow {
        width: 44px;
        height: 44px;
        font-size: 2rem;
    }

    .lightbox-prev { left: 10px; }
    .lightbox-next { right: 10px; }
}

.admin-inline-form {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    gap: 12px;
    align-items: end;
    margin-top: 16px;
}

.admin-inline-form input,
.admin-row-form input {
    width: 100%;
    border: 1px solid #dbe3ee;
    border-radius: 10px;
    padding: 12px 14px;
    font: inherit;
}

.admin-row-form {
    margin: 0;
}

.admin-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
}

.admin-actions-cell {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.admin-actions-cell form {
    margin: 0;
}

.admin-btn.small {
    padding: 8px 12px;
    font-size: .9rem;
}

.admin-btn.danger {
    background: #fff1f1;
    color: #b42318;
    border-color: #ffd0d0;
}

.admin-alert.success {
    background: #eefbf3;
    color: #176b3a;
    border: 1px solid #b7efc8;
}

.admin-feature-picker {
    margin-top: 18px;
    padding: 16px;
    border: 1px solid #e0e7f0;
    border-radius: 14px;
    background: #f8fafc;
}

@media (max-width: 720px) {
    .admin-inline-form {
        grid-template-columns: 1fr;
    }
}

/* Etapa 9: formulário de imóveis mais prático */
.admin-upload-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}

.admin-advanced {
    border: 1px dashed #d7dee8;
    border-radius: 14px;
    padding: 14px;
    background: #fbfcfe;
    margin: 14px 0;
}

.admin-advanced summary {
    cursor: pointer;
    font-weight: 800;
    color: #475569;
}

.admin-advanced label {
    margin-top: 14px;
}

.status-checks {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-gallery-item span {
    justify-content: flex-start;
}

.admin-gallery-item input[type="radio"],
.admin-gallery-item input[type="checkbox"] {
    width: auto;
}

@media (max-width: 720px) {
    .admin-upload-grid,
    .status-checks {
        grid-template-columns: 1fr;
    }
}


/* Etapa 11: páginas de favoritos e comparação */
.saved-link {
    position: relative;
}

.saved-count {
    display: inline-flex;
    min-width: 18px;
    height: 18px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--primary);
    color: #fff;
    font-size: .72rem;
    padding: 0 5px;
    margin-left: 4px;
}

.saved-count[hidden] {
    display: none;
}

.saved-page-head {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: center;
    margin-bottom: 28px;
}

.saved-page-head h2 {
    margin: 0 0 6px;
    font-size: 1.8rem;
}

.saved-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.saved-grid {
    align-items: stretch;
}

.saved-card .property-footer {
    align-items: center;
}

.missing-saved {
    padding: 22px;
}

.compare-wrap {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: 0 8px 24px rgba(15,23,42,.05);
    overflow: hidden;
}

.compare-scroll {
    overflow-x: auto;
}

.compare-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
}

.compare-table th,
.compare-table td {
    border-bottom: 1px solid var(--border);
    border-right: 1px solid var(--border);
    padding: 16px;
    text-align: left;
    vertical-align: top;
}

.compare-table th:first-child,
.compare-table td:first-child {
    width: 150px;
    background: #f8fafc;
    font-weight: 800;
}

.compare-table th img {
    width: 180px;
    max-width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 12px;
    margin-bottom: 10px;
}

.compare-table th a {
    display: block;
    font-size: 1rem;
    line-height: 1.3;
    margin-bottom: 10px;
}

.compare-table th button {
    border: 1px solid var(--border);
    background: #fff;
    border-radius: 8px;
    padding: 8px 10px;
    cursor: pointer;
    font-weight: 700;
}

@media (max-width: 720px) {
    .saved-page-head {
        align-items: flex-start;
        flex-direction: column;
    }
    .saved-actions .btn,
    .saved-actions button {
        width: 100%;
    }
}


/* Etapa 12: busca e filtros completos */
.home-search-advanced{grid-template-columns:1fr 1fr 1fr .9fr .9fr .9fr .9fr .9fr 1.2fr auto;align-items:center;text-align:left}.property-search-advanced{grid-template-columns:repeat(5,1fr);align-items:center}.property-search-advanced input[name=busca]{grid-column:span 2}.property-search-advanced .btn{height:50px}.home-search-advanced input,.home-search-advanced select{min-width:0}.home-search-advanced .btn{height:50px;white-space:nowrap}@media(max-width:1180px){.home-search-advanced{grid-template-columns:repeat(3,1fr)}.property-search-advanced{grid-template-columns:repeat(3,1fr)}.property-search-advanced input[name=busca]{grid-column:auto}}@media(max-width:760px){.home-search-advanced,.property-search-advanced{grid-template-columns:1fr}.home-search-advanced .btn,.property-search-advanced .btn{width:100%}}


/* Etapa 12 corrigida: busca mais espaçosa e sem campos cortados */
.home-search.home-search-advanced {
    grid-template-columns: repeat(5, minmax(150px, 1fr));
    gap: 12px;
    max-width: 1120px;
    padding: 18px;
}

.home-search.home-search-advanced input,
.home-search.home-search-advanced select,
.property-search.property-search-advanced input,
.property-search.property-search-advanced select {
    min-height: 52px;
    font-size: 14px;
    text-overflow: ellipsis;
}

.home-search.home-search-advanced input[name="busca"] {
    grid-column: span 2;
}

.home-search.home-search-advanced .btn {
    min-height: 52px;
}

.property-search.property-search-advanced {
    grid-template-columns: repeat(5, minmax(150px, 1fr));
}

.property-search.property-search-advanced input[name="busca"] {
    grid-column: span 2;
}

@media (max-width: 1180px) {
    .home-search.home-search-advanced,
    .property-search.property-search-advanced {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .home-search.home-search-advanced input[name="busca"],
    .property-search.property-search-advanced input[name="busca"] {
        grid-column: span 2;
    }
}

@media (max-width: 760px) {
    .home-search.home-search-advanced,
    .property-search.property-search-advanced {
        grid-template-columns: 1fr;
    }

    .home-search.home-search-advanced input[name="busca"],
    .property-search.property-search-advanced input[name="busca"] {
        grid-column: auto;
    }
}


/* Etapa 13: logo oficial e favicon */
.brand-with-logo{gap:12px}
.brand-logo-img{width:42px;height:42px;border-radius:12px;object-fit:cover;background:#000;box-shadow:0 8px 18px rgba(15,23,42,.14)}
.footer-brand-logo{align-items:flex-start}
.footer-brand-logo img{width:min(280px,100%);height:auto;object-fit:contain}
.admin-brand-logo{padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:18px}
.admin-brand-logo img{width:150px;max-width:100%;height:auto;object-fit:contain;margin-bottom:10px}
.admin-login-logo{width:170px;max-width:80%;margin:0 auto 8px;height:auto;object-fit:contain;border-radius:14px}
@media(max-width:640px){.brand-logo-img{width:38px;height:38px}.brand-with-logo span{font-size:1.05rem}.footer-brand-logo img{width:230px}}

/* Etapa 13 corrigida: topo com logo mais limpo */
.site-header .brand-with-logo{
  gap:12px;
  min-width:max-content;
}
.site-header .brand-logo-img{
  width:58px;
  height:44px;
  border-radius:0;
  object-fit:contain;
  background:transparent;
  box-shadow:none;
  padding:0;
}
.site-header .brand-with-logo span{
  font-size:1.22rem;
  font-weight:900;
  letter-spacing:-.02em;
  color:#0f172a;
}
@media(max-width:640px){
  .site-header .brand-logo-img{width:48px;height:38px}
  .site-header .brand-with-logo span{font-size:1.05rem}
}

/* Etapa 13 logo horizontal: header usando a marca completa */
.site-header{
  background:#05070d;
  border-bottom:1px solid rgba(201,145,78,.35);
}
.site-header .header-inner{
  min-height:78px;
}
.site-header .brand-horizontal-logo{
  display:flex;
  align-items:center;
  min-width:0;
  padding:6px 0;
}
.site-header .brand-logo-horizontal{
  display:block;
  width:260px;
  max-width:42vw;
  height:auto;
  object-fit:contain;
}
.site-header .main-nav a:not(.btn){
  color:#f8fafc;
}
.site-header .main-nav a:not(.btn):hover,
.site-header .main-nav a:not(.btn).active{
  color:#d2a35c;
}
.site-header .menu-toggle{
  color:#fff;
  border-color:rgba(255,255,255,.22);
  background:rgba(255,255,255,.06);
}
@media(max-width:760px){
  .site-header .header-inner{min-height:68px}
  .site-header .brand-logo-horizontal{width:210px;max-width:68vw}
  .site-header .main-nav{
    background:#05070d;
    border-color:rgba(201,145,78,.25);
  }
}
@media(max-width:420px){
  .site-header .brand-logo-horizontal{width:180px;max-width:66vw}
}

/* Etapa 13 ajuste final: topo branco com LOGO - 3 adaptada */
.site-header{
  background:rgba(255,255,255,.96) !important;
  border-bottom:1px solid var(--border) !important;
  backdrop-filter:blur(14px);
}
.site-header .header-inner{
  height:76px;
  min-height:76px;
}
.site-header .brand-horizontal-logo{
  padding:0;
  display:flex;
  align-items:center;
}
.site-header .brand-logo-horizontal{
  width:250px;
  max-width:40vw;
  height:auto;
  max-height:58px;
  object-fit:contain;
}
.site-header .main-nav a:not(.btn){
  color:var(--muted) !important;
}
.site-header .main-nav a:not(.btn):hover,
.site-header .main-nav a:not(.btn).active{
  color:var(--primary) !important;
  background:#fff7ed;
}
.site-header .menu-toggle{
  color:var(--text) !important;
  background:transparent !important;
}
@media(max-width:760px){
  .site-header .header-inner{height:70px;min-height:70px}
  .site-header .brand-logo-horizontal{width:220px;max-width:70vw;max-height:52px}
  .site-header .main-nav{
    background:#fff !important;
    border-bottom:1px solid var(--border) !important;
  }
}
@media(max-width:420px){
  .site-header .brand-logo-horizontal{width:190px;max-width:68vw}
}

/* Etapa 13 ajuste 2: header branco com LOGO - 3 maior e menu preto; footer com LOGO - 1 */
.site-header{
  background:#ffffff !important;
  border-bottom:1px solid var(--border) !important;
  backdrop-filter:blur(14px);
}
.site-header .header-inner{
  height:86px !important;
  min-height:86px !important;
}
.site-header .brand-logo-horizontal{
  width:300px !important;
  max-width:42vw !important;
  max-height:72px !important;
  height:auto !important;
  object-fit:contain !important;
}
.site-header .main-nav a:not(.btn){
  color:#0f172a !important;
}
.site-header .main-nav a:not(.btn):hover,
.site-header .main-nav a:not(.btn).active{
  color:#c9914e !important;
  background:#fff7ed !important;
}
.site-header .menu-toggle{
  color:#0f172a !important;
  background:transparent !important;
}
.footer-brand-logo img{
  width:min(360px,100%) !important;
  height:auto !important;
  object-fit:contain !important;
}
@media(max-width:760px){
  .site-header .header-inner{height:76px !important;min-height:76px !important;}
  .site-header .brand-logo-horizontal{width:245px !important;max-width:70vw !important;max-height:62px !important;}
  .site-header .main-nav{background:#fff !important;border-bottom:1px solid var(--border) !important;}
}
@media(max-width:420px){
  .site-header .brand-logo-horizontal{width:220px !important;max-width:70vw !important;}
}


/* Etapa 13 ajuste 3: logos maiores e login com logo visível */
.site-header{
  background:#fff !important;
  border-bottom:1px solid var(--border) !important;
}
.site-header .header-inner{
  height:100px !important;
  min-height:100px !important;
}
.site-header .brand-horizontal-logo{
  flex:0 0 auto !important;
}
.site-header .brand-logo-horizontal{
  width:390px !important;
  max-width:36vw !important;
  max-height:88px !important;
  height:auto !important;
  object-fit:contain !important;
}
.site-header .main-nav a:not(.btn){
  color:#0f172a !important;
}
.site-header .main-nav a:not(.btn):hover,
.site-header .main-nav a:not(.btn).active{
  color:#c9914e !important;
  background:#fff7ed !important;
}
.footer-brand-logo img{
  width:min(430px,100%) !important;
  max-height:132px !important;
  object-fit:contain !important;
}
.admin-login-logo{
  width:280px !important;
  max-width:92% !important;
  height:auto !important;
  margin:0 auto 24px !important;
  border-radius:0 !important;
}
.admin-brand-logo img{
  width:210px !important;
  max-width:100% !important;
  border-radius:0 !important;
}
@media(max-width:900px){
  .site-header .header-inner{height:88px !important;min-height:88px !important;}
  .site-header .brand-logo-horizontal{width:310px !important;max-width:58vw !important;max-height:76px !important;}
}
@media(max-width:640px){
  .site-header .header-inner{height:78px !important;min-height:78px !important;}
  .site-header .brand-logo-horizontal{width:245px !important;max-width:68vw !important;max-height:64px !important;}
  .admin-login-logo{width:240px !important;}
}


/* Etapa 14: busca/listagem mais bonita, responsiva e organizada */
.home-search.home-search-advanced,
.property-search.property-search-advanced{
  border:1px solid rgba(226,232,240,.9) !important;
  border-radius:22px !important;
  background:rgba(255,255,255,.97) !important;
  box-shadow:0 22px 60px rgba(2,6,23,.18) !important;
}
.home-search.home-search-advanced{
  grid-template-columns:repeat(4,minmax(165px,1fr)) minmax(220px,1.35fr) auto !important;
  align-items:end !important;
  max-width:1160px !important;
  padding:18px !important;
  gap:12px !important;
}
.home-search.home-search-advanced input[name="codigo"],
.home-search.home-search-advanced input[name="preco_min"],
.home-search.home-search-advanced input[name="preco_max"]{
  grid-column:auto !important;
}
.home-search.home-search-advanced input[name="busca"]{
  grid-column:span 2 !important;
}
.home-search.home-search-advanced select,
.home-search.home-search-advanced input,
.property-search.property-search-advanced select,
.property-search.property-search-advanced input{
  height:54px !important;
  border-radius:14px !important;
  border-color:#dbe3ee !important;
  background:#fff !important;
  color:#0f172a !important;
  font-size:15px !important;
}
.home-search.home-search-advanced select:focus,
.home-search.home-search-advanced input:focus,
.property-search.property-search-advanced select:focus,
.property-search.property-search-advanced input:focus{
  outline:0 !important;
  border-color:#c49355 !important;
  box-shadow:0 0 0 4px rgba(196,147,85,.16) !important;
}
.home-search.home-search-advanced .btn,
.property-search.property-search-advanced .btn{
  min-height:54px !important;
  border-radius:14px !important;
  white-space:nowrap !important;
}
.property-search.property-search-advanced{
  grid-template-columns:repeat(4,minmax(150px,1fr)) !important;
  gap:14px !important;
  padding:22px !important;
  margin-top:-26px !important;
  position:relative !important;
  z-index:2 !important;
}
.property-search.property-search-advanced input[name="busca"]{
  grid-column:span 2 !important;
}
.property-search.property-search-advanced .btn{
  width:100% !important;
}
.property-results-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:22px 0 30px;
  padding:18px 20px;
  border:1px solid var(--border);
  border-radius:20px;
  background:#fff;
  box-shadow:0 10px 26px rgba(15,23,42,.05);
}
.results-count{
  display:block;
  font-size:1.15rem;
  font-weight:900;
  color:#0f172a;
}
.results-help{margin:3px 0 0;font-size:.94rem}.quick-filters{justify-content:flex-end}.quick-filters span{font-weight:800;color:#475569}.quick-filters .btn{padding:9px 14px;border-radius:12px}.property-grid{align-items:stretch}.property-card{border-radius:24px !important;box-shadow:0 12px 28px rgba(15,23,42,.06);border-color:#e5edf6 !important}.property-card-body{display:grid;gap:10px}.property-card-body h3{min-height:2.5em}.property-code{font-weight:800;color:#475569}.property-card-body .muted{margin:0}.property-meta{background:#f8fafc;border:1px solid #edf2f7;border-radius:16px;padding:12px;margin:4px 0 2px !important;justify-content:space-between}.property-meta span{font-weight:800;color:#334155}.property-card .btn.full{margin-top:4px}.page-header.section-muted{background:linear-gradient(135deg,#fff7ed,#f8fafc)}
@media(max-width:1180px){
  .home-search.home-search-advanced{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
  .home-search.home-search-advanced input[name="busca"]{grid-column:span 2 !important;}
  .property-search.property-search-advanced{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
  .property-search.property-search-advanced input[name="busca"]{grid-column:span 2 !important;}
}
@media(max-width:900px){
  .property-results-toolbar{align-items:flex-start;flex-direction:column}.quick-filters{justify-content:flex-start}.property-grid{gap:20px}
}
@media(max-width:760px){
  .home-search.home-search-advanced,
  .property-search.property-search-advanced{grid-template-columns:1fr !important;padding:14px !important;border-radius:18px !important;}
  .home-search.home-search-advanced input[name="busca"],
  .property-search.property-search-advanced input[name="busca"]{grid-column:auto !important;}
  .home-search.home-search-advanced select,
  .home-search.home-search-advanced input,
  .property-search.property-search-advanced select,
  .property-search.property-search-advanced input{height:52px !important;font-size:16px !important;}
  .property-search.property-search-advanced{margin-top:0 !important;}
  .quick-filters{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}.quick-filters span{grid-column:1/-1}.quick-filters .btn{width:100%}
}


/* Etapa 15: números da Home editáveis no painel */
.admin-grid.three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-help {
    margin-top: -8px;
    color: #667085;
}

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

.admin-stats-editor {
    display: grid;
    gap: 14px;
}

.admin-stat-edit-row {
    display: grid;
    grid-template-columns: 150px minmax(220px, 1fr) 100px 110px auto;
    gap: 12px;
    align-items: end;
    padding: 14px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
}

.admin-inline-check {
    display: flex !important;
    align-items: center;
    gap: 8px !important;
    height: 47px;
}

.admin-inline-check input {
    width: auto;
}

.admin-btn.danger {
    background: #fee2e2;
    color: #991b1b;
}

@media (max-width: 980px) {
    .admin-grid.three,
    .admin-stat-edit-row {
        grid-template-columns: 1fr;
    }

    .admin-inline-check {
        height: auto;
    }
}

/* Etapa 16: carrossel elegante para processo e serviços */
.info-carousel{
  position:relative;
}

.info-carousel-track{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 44px) / 3);
  gap:22px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding:8px 4px 10px;
  scrollbar-width:none;
}

.info-carousel-track::-webkit-scrollbar{display:none}

.info-card{
  scroll-snap-align:start;
  position:relative;
  min-height:290px;
  background:linear-gradient(180deg,#ffffff 0%,#fcfdff 100%);
  border:1px solid #e6ebf3;
  border-radius:28px;
  padding:30px 28px;
  box-shadow:0 12px 36px rgba(15,23,42,.06);
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  overflow:hidden;
}

.info-card::before{
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:5px;
  background:linear-gradient(90deg,var(--primary),#e7d39d);
}

.info-card h3{
  margin:0 0 12px;
  font-size:1.85rem;
  line-height:1.1;
}

.info-card p{
  margin:0;
  color:var(--muted);
  font-size:1rem;
  line-height:1.8;
  max-width:34ch;
}

.process-card .info-index{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:66px;
  height:66px;
  border-radius:18px;
  background:linear-gradient(135deg,#fff7eb,#f7e4c7);
  color:var(--primary);
  font-weight:900;
  font-size:1.8rem;
  margin-bottom:26px;
  box-shadow:inset 0 0 0 1px rgba(196,147,85,.14);
}

.service-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  align-self:flex-start;
  padding:8px 12px;
  border-radius:999px;
  background:#fff8ef;
  color:var(--primary);
  font-weight:800;
  font-size:.85rem;
  margin-bottom:24px;
  border:1px solid rgba(196,147,85,.18);
}

.info-carousel-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  z-index:3;
  width:48px;
  height:48px;
  border-radius:999px;
  border:1px solid #dde5ef;
  background:rgba(255,255,255,.96);
  color:var(--text);
  box-shadow:0 10px 24px rgba(15,23,42,.12);
  cursor:pointer;
  font-size:2rem;
  line-height:1;
  transition:.2s;
}

.info-carousel-btn:hover{
  color:var(--primary);
  border-color:rgba(196,147,85,.32);
  background:#fff;
}

.info-carousel-btn.prev{left:-24px}
.info-carousel-btn.next{right:-24px}

.section-muted .info-card{
  background:linear-gradient(180deg,#ffffff 0%,#fafcff 100%);
}

@media (max-width: 1080px){
  .info-carousel-track{grid-auto-columns:calc((100% - 22px) / 2)}
  .info-carousel-btn.prev{left:-12px}
  .info-carousel-btn.next{right:-12px}
}

@media (max-width: 680px){
  .info-carousel-track{grid-auto-columns:88%;gap:16px;padding-inline:2px}
  .info-card{min-height:260px;padding:24px 22px;border-radius:24px}
  .info-card h3{font-size:1.5rem}
  .process-card .info-index{width:56px;height:56px;font-size:1.45rem;margin-bottom:18px}
  .info-carousel-btn{display:none}
}


/* Etapa 16 corrigida: slider premium em 1 card por vez */
.premium-slider-section,
.premium-services-section {
  overflow: hidden;
}

.premium-slider {
  position: relative;
  width: min(1024px, 100%);
  margin: 0 auto;
  border-radius: 24px;
}

.premium-slides {
  position: relative;
  min-height: 350px;
}

.premium-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateX(26px) scale(.985);
  transition: opacity .42s ease, transform .42s ease;
}

.premium-slide.active {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0) scale(1);
}

.premium-slider-light {
  background: linear-gradient(135deg, #eaf4fc 0%, #f3f8fc 100%);
  border: 1px solid #d8e5f0;
  box-shadow: 0 22px 60px rgba(15, 23, 42, .08);
}

.premium-slider-light .premium-slide {
  min-height: 350px;
  display: grid;
  grid-template-columns: 300px 1fr;
  align-items: center;
  gap: 42px;
  padding: 56px 86px;
}

.step-orb {
  width: 190px;
  height: 190px;
  border-radius: 999px;
  background: #fff;
  display: grid;
  place-items: center;
  align-content: center;
  justify-self: center;
  box-shadow: 0 16px 34px rgba(15,23,42,.10);
}

.step-orb small {
  color: #5e789c;
  font-size: .9rem;
  font-weight: 800;
  letter-spacing: .12em;
}

.step-orb strong {
  color: var(--primary);
  font-size: 4.3rem;
  line-height: .95;
  letter-spacing: -.06em;
}

.premium-slide-text h3 {
  margin: 0 0 16px;
  font-size: clamp(1.8rem, 3vw, 2.35rem);
  line-height: 1.12;
  letter-spacing: -.03em;
}

.premium-slide-text p {
  margin: 0;
  color: #587092;
  font-size: 1.1rem;
  line-height: 1.75;
  max-width: 650px;
}

.premium-slider-dark {
  background:
    radial-gradient(circle at 18% 92%, rgba(196,147,85,.14), transparent 28%),
    radial-gradient(circle at 90% 12%, rgba(37,99,235,.18), transparent 34%),
    linear-gradient(135deg, #020617 0%, #020817 55%, #061b38 100%);
  color: #fff;
  border-radius: 16px;
  box-shadow: 0 26px 70px rgba(2,6,23,.20);
  overflow: hidden;
}

.premium-slider-dark .premium-slide {
  min-height: 400px;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 70px 110px;
}

.premium-slider-dark .premium-slide-text h3 {
  color: #fff;
  font-size: clamp(1.9rem, 3.3vw, 2.4rem);
}

.premium-slider-dark .premium-slide-text p {
  color: #e7eefb;
  font-size: 1.1rem;
  max-width: 720px;
  margin: 0 auto;
}

.service-icon {
  width: 80px;
  height: 80px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  margin: 0 auto 30px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.12);
  color: var(--primary);
  font-size: 2.4rem;
  font-weight: 900;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}

.premium-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 8;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 999px;
  background: rgba(15,23,42,.72);
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: .2s;
  box-shadow: 0 12px 28px rgba(15,23,42,.16);
}

.premium-nav:hover {
  background: var(--primary);
}

.premium-slider-light .premium-nav {
  background: rgba(255,255,255,.92);
  color: var(--text);
  border: 1px solid #dce7f2;
}

.premium-slider-light .premium-nav:hover {
  color: #fff;
  background: var(--primary);
  border-color: var(--primary);
}

.premium-prev { left: 22px; }
.premium-next { right: 22px; }

.premium-dots {
  position: absolute;
  z-index: 9;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
}

.premium-dots button {
  width: 10px;
  height: 10px;
  border: 0;
  border-radius: 999px;
  padding: 0;
  background: rgba(148, 177, 207, .62);
  cursor: pointer;
  transition: .2s;
}

.premium-slider-dark .premium-dots button {
  background: rgba(255,255,255,.32);
}

.premium-dots button.active {
  width: 32px;
  background: var(--primary);
}

.premium-slider-dark .premium-dots button.active {
  background: #fff;
}

@media (max-width: 820px) {
  .premium-slider-light .premium-slide {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 24px;
    padding: 42px 28px 76px;
  }

  .premium-slides,
  .premium-slider-light .premium-slide,
  .premium-slider-dark .premium-slide {
    min-height: 500px;
  }

  .step-orb {
    width: 150px;
    height: 150px;
  }

  .step-orb strong {
    font-size: 3.4rem;
  }

  .premium-slider-dark .premium-slide {
    padding: 56px 28px 82px;
  }

  .premium-nav {
    width: 40px;
    height: 40px;
    font-size: 1.7rem;
  }

  .premium-prev { left: 12px; }
  .premium-next { right: 12px; }
}

@media (max-width: 520px) {
  .premium-slider {
    border-radius: 20px;
  }

  .premium-slider-light .premium-slide,
  .premium-slider-dark .premium-slide {
    padding-left: 22px;
    padding-right: 22px;
  }

  .premium-slide-text p {
    font-size: 1rem;
  }

  .premium-nav {
    display: none;
  }
}

/* Etapa 16 ajuste 2: sliders menos compridos */
.premium-slider {
  width: min(920px, 100%);
}

.premium-slides {
  min-height: 320px;
}

.premium-slider-light .premium-slide {
  min-height: 320px;
  grid-template-columns: 240px 1fr;
  gap: 34px;
  padding: 42px 72px;
}

.step-orb {
  width: 170px;
  height: 170px;
}

.step-orb strong {
  font-size: 3.8rem;
}

.premium-slider-dark .premium-slide {
  min-height: 340px;
  padding: 52px 90px 72px;
}

.service-icon {
  margin-bottom: 24px;
}

.premium-slide-text p {
  max-width: 600px;
}

@media (max-width: 820px) {
  .premium-slides,
  .premium-slider-light .premium-slide,
  .premium-slider-dark .premium-slide {
    min-height: 430px;
  }

  .premium-slider-light .premium-slide {
    padding: 38px 28px 72px;
  }

  .premium-slider-dark .premium-slide {
    padding: 46px 28px 74px;
  }
}


/* Etapa 17: edição das seções da Home no painel */
.admin-tabs {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 20px;
}

.admin-tabs a {
  padding: 10px 14px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #e5e7eb;
  color: #334155;
  font-weight: 800;
  text-decoration: none;
}

.admin-tabs a.active {
  background: #c89352;
  color: #fff;
  border-color: #c89352;
}

.admin-row-edit {
  min-width: 320px;
  max-width: 520px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 14px;
  margin-top: 12px;
}

details summary {
  list-style: none;
  cursor: pointer;
}

details summary::-webkit-details-marker {
  display: none;
}


/* Etapa 18: conteúdo do site editável */
.site-settings-form .admin-card textarea {
  min-height: 92px;
}

.sticky-save {
  position: sticky;
  bottom: 18px;
  z-index: 5;
  background: rgba(244, 246, 248, .92);
  backdrop-filter: blur(10px);
  border: 1px solid #e5e7eb;
  border-radius: 16px;
  padding: 14px;
}


/* Etapa 20: painel administrativo mais elegante e fácil de usar */
.admin-body,
.admin-login-body {
    background:
        radial-gradient(circle at top left, rgba(200,147,82,.10), transparent 32%),
        linear-gradient(135deg, #f7f4ef 0%, #f6f8fb 46%, #eef3f8 100%);
    color: #1f2937;
}

.admin-shell {
    grid-template-columns: 292px minmax(0, 1fr);
}

.admin-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    background:
        linear-gradient(180deg, rgba(17,24,39,.96), rgba(2,6,23,.98)),
        radial-gradient(circle at 40% 0%, rgba(200,147,82,.18), transparent 36%);
    padding: 26px 18px;
    box-shadow: 18px 0 50px rgba(15,23,42,.14);
}

.admin-brand {
    align-items: center;
    gap: 12px;
    padding: 0 10px 24px;
}

.admin-brand img {
    max-width: 180px;
    height: auto;
    object-fit: contain;
}

.admin-brand span {
    display: inline-flex;
    width: fit-content;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: #d8dee8;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .02em;
}

.admin-nav {
    gap: 7px;
}

.admin-nav a {
    position: relative;
    display: flex;
    align-items: center;
    border-radius: 14px;
    padding: 12px 14px;
    color: #dbe3ef;
    font-weight: 750;
    border: 1px solid transparent;
    transition: .18s ease;
}

.admin-nav a:hover {
    background: rgba(255,255,255,.09);
    border-color: rgba(255,255,255,.08);
    transform: translateX(3px);
}

.admin-nav a::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: rgba(200,147,82,.82);
    margin-right: 10px;
    opacity: .72;
}

.admin-nav a.admin-nav-exit {
    margin-top: 12px;
    color: #fecaca;
}

.admin-nav a.admin-nav-exit::before {
    background: #ef4444;
}

.admin-main {
    padding: 24px clamp(18px, 3vw, 38px) 42px;
}

.admin-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(226,232,240,.92);
    border-radius: 20px;
    padding: 16px 18px;
    margin-bottom: 24px;
    box-shadow: 0 10px 34px rgba(15,23,42,.06);
    backdrop-filter: blur(14px);
}

.admin-topbar div {
    display: grid;
    gap: 2px;
}

.admin-topbar strong {
    color: #111827;
    font-size: 16px;
}

.admin-topbar span {
    color: #667085;
    font-size: 14px;
}

.admin-page-head {
    background: #fff;
    border: 1px solid rgba(226,232,240,.95);
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 14px 40px rgba(15,23,42,.07);
}

.admin-page-head h1 {
    font-size: clamp(26px, 3vw, 38px);
    letter-spacing: -.04em;
}

.admin-btn {
    min-height: 42px;
    border-radius: 12px;
    box-shadow: 0 8px 18px rgba(15,23,42,.06);
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.admin-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(15,23,42,.10);
}

.admin-btn.primary {
    background: linear-gradient(135deg, #c89352, #b77932);
}

.admin-stats {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.admin-stats div {
    position: relative;
    overflow: hidden;
    padding: 26px;
    border: 1px solid rgba(226,232,240,.92);
    box-shadow: 0 14px 36px rgba(15,23,42,.07);
}

.admin-stats div::after {
    content: '';
    position: absolute;
    right: -24px;
    top: -24px;
    width: 90px;
    height: 90px;
    border-radius: 999px;
    background: rgba(200,147,82,.12);
}

.admin-stats strong {
    font-size: 40px;
    letter-spacing: -.04em;
}

.admin-card,
.admin-table-card,
.admin-message-card {
    border: 1px solid rgba(226,232,240,.96);
    box-shadow: 0 14px 40px rgba(15,23,42,.07);
}

.admin-card {
    padding: 28px;
}

.admin-card h2 {
    letter-spacing: -.03em;
}

.admin-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 20px;
}

.admin-quick-grid a {
    display: grid;
    gap: 8px;
    min-height: 150px;
    padding: 18px;
    border-radius: 18px;
    background: linear-gradient(180deg, #fff, #fbfdff);
    border: 1px solid #e5eaf2;
    text-decoration: none;
    transition: .2s ease;
}

.admin-quick-grid a:hover {
    transform: translateY(-3px);
    border-color: rgba(200,147,82,.38);
    box-shadow: 0 14px 32px rgba(15,23,42,.10);
}

.admin-quick-grid strong {
    color: #111827;
    font-size: 17px;
}

.admin-quick-grid span {
    color: #667085;
    font-size: 14px;
    line-height: 1.55;
}

.admin-table {
    border-collapse: separate;
    border-spacing: 0;
}

.admin-table th {
    background: #f8fafc;
    color: #475569;
    font-size: 12px;
}

.admin-table td {
    background: #fff;
}

.admin-table tr:hover td {
    background: #fffaf3;
}

.admin-table th:first-child,
.admin-table td:first-child {
    padding-left: 22px;
}

.admin-actions a,
.admin-actions-cell a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 10px;
    border-radius: 10px;
    background: #eff6ff;
    color: #1d4ed8;
}

.admin-actions a.danger {
    background: #fef2f2;
    color: #dc2626;
}

.admin-form input,
.admin-form select,
.admin-form textarea,
.admin-filter input,
.admin-login-card input {
    border-radius: 12px;
    border-color: #dbe3ee;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.admin-form input:focus,
.admin-form select:focus,
.admin-form textarea:focus,
.admin-filter input:focus,
.admin-login-card input:focus {
    outline: none;
    border-color: #c89352;
    box-shadow: 0 0 0 4px rgba(200,147,82,.14);
}

.admin-login-card {
    border: 1px solid rgba(226,232,240,.92);
    border-radius: 24px;
    padding: 38px;
    box-shadow: 0 24px 70px rgba(15,23,42,.16);
}

.admin-login-card::before {
    content: '';
    display: block;
    width: 168px;
    height: 74px;
    background: url('../img/logo-header.png') center/contain no-repeat;
    margin: 0 auto 8px;
}

.admin-alert.success,
.admin-alert.error {
    border: 1px solid transparent;
    box-shadow: 0 10px 26px rgba(15,23,42,.06);
}

.admin-alert.success {
    background: #ecfdf3;
    color: #067647;
    border-color: #abefc6;
}

.admin-alert.error {
    background: #fef3f2;
    color: #b42318;
    border-color: #fecdca;
}

.admin-tabs a {
    box-shadow: 0 8px 20px rgba(15,23,42,.04);
}

.admin-tabs a.active {
    background: linear-gradient(135deg, #c89352, #b77932);
}

.sticky-save {
    box-shadow: 0 14px 34px rgba(15,23,42,.10);
}

@media (max-width: 1180px) {
    .admin-quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 980px) {
    .admin-shell {
        grid-template-columns: 1fr;
    }

    .admin-sidebar {
        position: static;
        height: auto;
        border-radius: 0 0 24px 24px;
    }

    .admin-brand img {
        max-width: 160px;
    }

    .admin-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .admin-main {
        padding: 18px;
    }
}

@media (max-width: 640px) {
    .admin-topbar,
    .admin-page-head {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-nav,
    .admin-quick-grid,
    .admin-stats {
        grid-template-columns: 1fr;
    }

    .admin-page-head {
        padding: 20px;
    }
}


/* Etapa 22: botões seguros em formulários inline */
.admin-inline-delete {
    display: inline-flex;
    margin: 0;
}

.admin-link-button {
    border: 0;
    cursor: pointer;
    font: inherit;
    font-weight: 700;
    background: #eff6ff;
    color: #1d4ed8;
    border-radius: 10px;
    min-height: 34px;
    padding: 7px 10px;
}

.admin-link-button.danger {
    background: #fef2f2;
    color: #dc2626;
}


/* Etapa 23: informações internas do proprietário */
.admin-private-card {
    border-color: rgba(200,147,82,.28);
    background:
        linear-gradient(180deg, #fff, #fffaf3);
}

.admin-private-card h2::after {
    content: 'Privado';
    display: inline-flex;
    margin-left: 10px;
    padding: 4px 9px;
    border-radius: 999px;
    background: #fff1dc;
    color: #9a5b13;
    font-size: 12px;
    vertical-align: middle;
}





/* Etapa 28: usar ícones reais enviados pelo usuário */
.header-social {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-left: 6px;
}

.header-social a {
  width: 52px;
  height: 52px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  background: #ffffff;
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 8px 20px rgba(15,23,42,.08);
  transition: transform .18s ease, box-shadow .18s ease;
  overflow: hidden;
}

.header-social a:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(15,23,42,.12);
}

.header-social a img {
  width: 30px;
  height: 30px;
  object-fit: contain;
  display: block;
}

.header-social a.social-instagram img {
  width: 28px;
  height: 28px;
}

.header-social a.social-whatsapp img {
  width: 31px;
  height: 31px;
}

@media (max-width: 1100px) {
  .header-social a {
    width: 48px;
    height: 48px;
  }

  .header-social a img {
    width: 28px;
    height: 28px;
  }
}

@media (max-width: 900px) {
  .header-social {
    justify-content: center;
    margin: 8px 0;
  }
}


/* Etapa 30: corrigir topo sem mexer nos destaques */
.nav-cta{white-space:nowrap;min-width:136px;justify-content:center;text-align:center;padding-inline:18px}
.header-social{display:inline-flex;align-items:center;gap:10px;margin-left:8px}
.header-social a{width:64px;height:64px;border-radius:0;background:transparent;border:0;box-shadow:none;padding:0;display:inline-flex;align-items:center;justify-content:center;overflow:visible;flex:0 0 auto}
.header-social a:hover{transform:translateY(-1px);box-shadow:none}
.header-social a img{width:48px;height:48px;object-fit:contain;display:block}
.header-social a.social-instagram img{width:46px;height:46px}
.header-social a.social-whatsapp img{width:48px;height:48px}
@media (max-width:1100px){.header-social a{width:58px;height:58px}.header-social a img{width:42px;height:42px}.header-social a.social-instagram img{width:40px;height:40px}.header-social a.social-whatsapp img{width:42px;height:42px}.nav-cta{min-width:124px}}
@media (max-width:900px){.header-social{justify-content:center;margin:8px 0}.nav-cta{width:auto;margin:0 auto}}


/* Etapa 32: segurança do admin */
.admin-security-form {
  max-width: 560px;
}

.admin-security-ok,
.admin-security-fail {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  padding: 5px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.admin-security-ok {
  color: #067647;
  background: #dcfae6;
  border: 1px solid #abefc6;
}

.admin-security-fail {
  color: #b42318;
  background: #fee4e2;
  border: 1px solid #fecdca;
}
