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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


/* =========================================================
   Sprint 10G — Filtros públicos avançados
   ========================================================= */
.advanced-filter-card {
    padding: 20px !important;
}

.advanced-filter-form {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
    align-items: end !important;
}

.advanced-filter-form .filter-wide {
    grid-column: span 2;
}

.advanced-filter-form .filter-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.advanced-filter-form .filter-actions .site-btn {
    width: auto;
    min-width: 92px;
}

.results-summary {
    margin: -4px 0 20px;
    color: #64748b;
    font-size: 14px;
}

.results-summary strong {
    color: #111827;
    font-size: 16px;
}

@media (max-width: 980px) {
    .advanced-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .advanced-filter-form .filter-wide {
        grid-column: span 2;
    }
}

@media (max-width: 620px) {
    .advanced-filter-form {
        grid-template-columns: 1fr !important;
    }

    .advanced-filter-form .filter-wide {
        grid-column: span 1;
    }

    .advanced-filter-form .filter-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .advanced-filter-form .filter-actions .site-btn {
        width: 100%;
    }
}


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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