/* Public storefront: restrained Ideal identity; admin styles stay independent. */
/* Shared interior pages */
.publico-body .contact-location-map { display: block; width: 100%; height: 300px; border: 0; border-radius: 8px; background: #f0f2f5; }
.publico-body .page-top { background: #f7f8fa; padding: 36px 0 !important; margin-bottom: 28px; }
.publico-body .page-top h1 { font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.2; letter-spacing: -.035em; font-weight: 600; }
.publico-body .page-top p { max-width: 720px; line-height: 1.7; }
.publico-body :is(.info-box,.testimonial-box,.filter-card,.sticky-box,.contact-form,.contact-info,.post-card,.article-body,.search-strip) { box-shadow: none; border-color: #e1e6ec; border-radius: 10px; padding: 24px; }
.publico-body :is(.contact-form,.contact-info,.article-body) h2,
.publico-body :is(.contact-form,.contact-info,.article-body) h3 { font-weight: 600; letter-spacing: -.02em; }
.publico-body .article-body { max-width: 860px; margin-inline: auto; font-size: 1rem; line-height: 1.85; }
.publico-body .article-body img { max-width: 100%; height: auto; border-radius: 8px; }
.publico-body .form-label { font-size: .85rem; font-weight: 600; color: #526073; }
.publico-body textarea.form-control { min-height: 110px; }
.publico-body .cta-large { background: #152233; box-shadow: none; padding: 32px; border-radius: 10px; }
.publico-body .nav-pills .nav-link.active { background: #00469b; }
.publico-body .table { font-size: .875rem; --bs-table-border-color: #e1e6ec; }
.publico-body .table th { background: #f7f8fa; font-weight: 600; padding-block: 12px; }
.publico-body .page-top-imovel { margin-bottom: 24px; }
.publico-body .page-top-imovel nav { color: #667180; font-size: .8rem; margin-bottom: 16px !important; }
.publico-body .page-top-imovel h1 { max-width: 960px; margin-top: 14px !important; }
.publico-body .detail-gallery-container { max-width: 1320px; margin-inline: auto; padding-inline: 12px !important; }
.publico-body .gallery-slider-track { gap: 12px; scroll-snap-type: x proximity; }
.publico-body .fullscreen-gallery .gallery-slide-link { flex: 0 0 48%; scroll-snap-align: start; border-radius: 8px; }
.publico-body .fullscreen-gallery .gallery-slide-image { height: 360px; background: #f0f2f5; }
.publico-body .gallery-nav-btn { width: 40px; height: 40px; font-size: 1rem; box-shadow: 0 2px 8px #0002; }
.publico-body .detail-sheet { padding: 24px 0; }
.publico-body .detail-pricing-row { padding-bottom: 24px; border-bottom: 1px solid #e1e6ec; }
.publico-body .detail-label { font-size: .8rem; font-weight: 600; margin-bottom: 10px; }
.publico-body .detail-price { color: #00469b; font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 700; letter-spacing: -.035em; }
.publico-body .detail-subprice { font-size: .8rem; margin-top: 10px; }
.publico-body .detail-metrics-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; border-bottom: 1px solid #e1e6ec; padding-bottom: 16px; }
.publico-body .detail-metric { padding: 14px 8px 14px 0; gap: 10px; min-width: 0; }
.publico-body .detail-metric-icon { background: transparent; border: 0; color: #526073; flex-shrink: 0; }
.publico-body .detail-metric small { font-size: .75rem; line-height: 1.5; }
.publico-body .detail-metric strong { font-size: .95rem; font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.publico-body .detail-feature-title { font-size: 1.25rem; font-weight: 600; }
.publico-body .detail-feature-item { font-size: .9rem; padding-block: 6px; }
.publico-body .detail-feature-item::before { color: #00469b; font-weight: 500; }
.publico-body .detail-sheet > p { color: #526073 !important; line-height: 1.85; }
.publico-body .sticky-box { top: 100px; background: #f7f8fa; }
.publico-body .sticky-box h4 { color: #00469b; font-size: 1.6rem; font-weight: 700; margin-bottom: 20px !important; }
.publico-body .sticky-box .btn { min-height: 44px; font-size: .875rem; }
.publico-body .btn-favorito-detalhe,
.publico-body .btn-share-highlight { background: #fff; border: 1px solid #c5d2e2; color: #526073; box-shadow: none; }
.publico-body .btn-favorito-detalhe.is-active { color: #00469b; background: #edf3fa; }
.publico-body .btn-whatsapp-detail { background: #00469b; border: 1px solid #00469b; color: #fff; box-shadow: none; }
.publico-body .btn-whatsapp-detail:hover { background: #003675; color: #fff; }
.publico-body #imovelContatoForm { margin-top: 20px; padding-top: 20px; border-top: 1px solid #e1e6ec; }
.publico-body #imovelContatoForm .form-check-label { font-size: .75rem; line-height: 1.5; }
.publico-body .lead-popup-card { background: #efeae2; border: 1px solid #ded9d1; border-radius: 14px; box-shadow: 0 8px 24px #15223318; }
.publico-body .lead-popup-head { background: #075e54; border-radius: 14px 14px 0 0; padding: 16px; }
.publico-body .lead-popup-head-text strong { font-size: 1rem; line-height: 1.3; }
.publico-body .lead-popup-head-text small { font-size: .75rem; font-weight: 400; line-height: 1.5; }
.publico-body .lead-popup-body { padding: 20px 16px 16px 22px; }
.publico-body .lead-popup-body p { position: relative; background: #fff; border: 0; border-radius: 0 8px 8px 8px; box-shadow: 0 1px 2px #00000014; padding: 12px 14px; font-size: .9rem; line-height: 1.65; color: #303b40; }
.publico-body .lead-popup-body p::before { content: ''; position: absolute; left: -8px; top: 0; border-top: 8px solid #fff; border-left: 8px solid transparent; }
.publico-body .lead-popup-cta { background: #25d366; color: #073c22; border-radius: 8px; margin: 0 16px 16px; font-weight: 700; padding: 13px 16px; }
.publico-body .lead-popup-cta:hover { background: #20c35e; color: #073c22; filter: none; }
@media (max-width: 767px) {
    .publico-body .page-top { padding: 24px 0 !important; }
    .publico-body .fullscreen-gallery .gallery-slide-link { flex-basis: 88%; }
    .publico-body .fullscreen-gallery .gallery-slide-image { height: 280px; }
    .publico-body .detail-metrics-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .publico-body .detail-feature-list { grid-template-columns: 1fr; }
    .publico-body .sticky-box { position: static; }
    .publico-body :is(.contact-form,.contact-info,.article-body,.sticky-box) { padding: 20px; }
}
.publico-body {
    --brand: #00469b;
    --brand-dark: #003675;
    --ink: #202630;
    --ink-soft: #667180;
    --line: #e1e6ec;
    --radius: 10px;
    --shadow: 0 4px 16px rgba(24, 39, 58, .04);
    font-family: 'Manrope', sans-serif;
    background: #fff;
    line-height: 1.6;
}
.publico-body .site-header { background: #152233; backdrop-filter: none; border-bottom: 1px solid #263548; }
.publico-body .site-header .navbar { padding-bottom: 12px; }
.publico-body .brand-logo { height: 64px; max-width: 210px; object-fit: contain; }
.publico-body .nav-link { font-size: .875rem; font-weight: 500; padding: 12px 10px; }
.publico-body .divider-item { display: none !important; }
.publico-body .btn { border-radius: 6px; font-weight: 600; transition: background-color .15s, border-color .15s; }
.publico-body .btn-brand,
.publico-body .btn-dark { background: #00469b !important; border-color: #00469b !important; color: #fff !important; box-shadow: none; }
.publico-body .btn-brand:hover,
.publico-body .btn-dark:hover { background: #003675 !important; border-color: #003675 !important; }
.publico-body .btn-outline-dark { color: #00469b; border-color: #c5d2e2; background: transparent; }
.publico-body .btn-outline-dark:hover { background: #edf3fa; color: #003675; border-color: #00469b; }
.publico-body .hero-home { padding: 48px 0 40px !important; background: #f7f8fa; border-bottom: 1px solid var(--line); }
.publico-body .hero-home .text-center { text-align: left !important; margin-bottom: 28px !important; }
.publico-body .hero-home h1 { max-width: 760px; font-size: clamp(1.9rem, 3.2vw, 2.8rem); font-weight: 600 !important; line-height: 1.18; letter-spacing: -.035em; margin-bottom: 14px !important; }
.publico-body .hero-home .lead { font-size: 1rem; color: #667180 !important; }
.publico-body .hero-home .clean-search-box { padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: none; }
.publico-body .clean-tabs { display: flex; gap: 24px; padding: 0; background: transparent; border-bottom: 1px solid var(--line); border-radius: 0; }
.publico-body .clean-tabs .search-tab { padding: 0 0 12px; color: #667180; font-size: .875rem; font-weight: 500; border-radius: 0; border-bottom: 2px solid transparent; margin-bottom: -1px; box-shadow: none; background: transparent; }
.publico-body .clean-tabs .search-tab.active { color: #00469b; border-bottom-color: #00469b; background: transparent; font-weight: 700; }
.publico-body .form-control,
.publico-body .form-select { min-height: 46px; border-radius: 6px; border-color: #dce2e9; color: #283344; font-size: .9rem; background-color: #fff; }
.publico-body .form-control:focus,
.publico-body .form-select:focus { border-color: #00469b; box-shadow: 0 0 0 3px rgba(0,70,155,.1); }
.publico-body .advanced-search-form .btn { min-height: 46px; }
.publico-body .advanced-search-form > div:has(> .btn) { align-self: flex-end; }
.publico-body .search-field-label { display: block; font-size: .75rem; font-weight: 600; color: #526073; margin-bottom: 6px; }
.publico-body .section-head { margin-bottom: 24px; align-items: baseline; }
.publico-body .section-head h2 { font-size: 1.55rem; font-weight: 600; letter-spacing: -.025em; }
.publico-body .section-head > a { font-size: .875rem; color: #00469b; text-decoration: underline; text-underline-offset: 4px; }
.publico-body .property-card,
.publico-body .hero-home + section .property-card,
.publico-body #js-imoveis-page .property-card.horizontal { border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: none; overflow: hidden; }
.publico-body .property-card:hover,
.publico-body .hero-home + section .property-card:hover,
.publico-body #js-imoveis-page .property-card.horizontal:hover { transform: none; border-color: #afbed1; box-shadow: 0 4px 14px rgba(24,39,58,.06); }
.publico-body .property-image { height: 210px; }
.publico-body .property-card h6 { font-size: 1rem; line-height: 1.45; font-weight: 600; }
.publico-body .home-card-location { font-size: .8rem; line-height: 1.5; }
.publico-body .home-card-specs { padding: 12px 0; border-top: 1px solid #eef0f3; border-bottom: 1px solid #eef0f3; }
.publico-body .home-card-specs--padrao .home-card-spec .home-card-spec-icon { background: transparent !important; color: #526073 !important; border-radius: 0; box-shadow: none; }
.publico-body .home-card-spec strong { color: #344155; font-size: .875rem; font-weight: 600; }
.publico-body .home-card-spec small { color: #788290; }
.publico-body .home-card-price { color: #00469b; font-size: 1.1rem; font-weight: 700; }
.publico-body .tag { border-radius: 4px; font-size: .7rem; font-weight: 600; }
.publico-body .tag:empty { display: none; }
.publico-body .tag-main { background: #00469b; color: #fff; }
.publico-body #js-imoveis-page .filter-card { box-shadow: none; border-color: var(--line); border-radius: 10px; }
.publico-body .feature-grid span { background: #f7f8fa; border-radius: 6px; }
.publico-body .site-footer { background: #152233; border-top: 1px solid #263548; }
.publico-body a:focus-visible,
.publico-body button:focus-visible { outline: 3px solid #5b94d8; outline-offset: 3px; }
@media (max-width: 767px) {
    .publico-body .hero-home { padding: 28px 0 !important; }
    .publico-body .hero-home .clean-search-box { padding: 16px; }
    .publico-body .clean-tabs { gap: 16px; overflow-x: auto; }
    .publico-body .clean-tabs .search-tab { flex: 0 0 auto; font-size: .8rem; }
    .publico-body .section-head h2 { font-size: 1.25rem; }
    .publico-body .site-header .brand-logo { height: 52px; }
    .publico-body .property-image { height: 230px; }
}
@media (prefers-reduced-motion: reduce) {
    .publico-body *, .publico-body *::before, .publico-body *::after { transition: none !important; animation: none !important; }
}
