/* Feed de campanhas: masonry sem recortes, busca AJAX e rolagem infinita. */
html{scrollbar-gutter:stable}
.cpub-layout{max-width:none;width:100%;padding-top:20px;padding-bottom:54px}
.cpub-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 19px}
.cpub-heading{margin:0;min-width:0}
.cpub-heading h1{font-size:clamp(1.4rem,2.3vw,2rem);letter-spacing:-.035em;line-height:1.27;font-weight:740;color:#19324d;margin:0 0 5px}
.cpub-heading p{font-size:.9rem;line-height:1.5;color:#687e97;margin:0}
.cpub-filters{position:relative;display:flex;align-items:center;max-width:350px;width:100%;flex:0 1 350px;margin:0}
.cpub-search{display:block;position:relative;min-width:0;width:100%}
.cpub-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;fill:none;stroke:#8093aa;stroke-width:1.8;stroke-linecap:round}
.cpub-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.cpub-search input{display:block;width:100%;height:43px;border:1px solid #dfe6ef;background:#fff;border-radius:11px;outline:none;color:#27405a;font:inherit;font-size:.88rem;min-width:0;padding:0 44px 0 42px;-webkit-appearance:none;appearance:none}
.cpub-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.cpub-search input:focus-visible,.cpub-dialog textarea:focus-visible{border-color:#5584df;box-shadow:0 0 0 3px #4d82e41d}
.cpub-search-clear{position:absolute;right:7px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:29px;height:29px;border:0;border-radius:8px;background:#fff1f2;color:#c7374a;cursor:pointer}
.cpub-search-clear:hover{background:#ffe4e8;color:#a82037}
.cpub-search-clear svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.cpub-search-clear[hidden]{display:none}
/* Layout de fallback para navegação sem JavaScript. O script organiza os cards
   em colunas com alturas acumuladas, sem reposicioná-los ao carregar imagens. */
.cpub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.cpub-grid.cpub-masonry{align-items:start}
.cpub-column{display:flex;flex-direction:column;min-width:0;gap:10px}
.cpub-card{display:block;min-width:0;cursor:pointer;outline:none}
.cpub-card:focus-visible .cpub-image-wrap{outline:3px solid #3b74d4;outline-offset:3px}
.cpub-image-wrap{position:relative;overflow:hidden;display:block;width:100%;border-radius:13px;background:#eff2f6;isolation:isolate}
.cpub-image-wrap img{display:block;width:100%;height:100%;object-fit:contain;opacity:1;transition:opacity .23s ease}
.cpub-image-wrap img[data-cpub-loading]{opacity:0}
.cpub-card-caption{display:flex;align-items:center;gap:5px;padding:8px 2px 2px;min-width:0}
.cpub-card-caption h2{margin:0;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.82rem;font-weight:650;color:#2c425c;line-height:1.45}
.cpub-more{width:22px;height:22px;flex:0 0 22px;fill:#76869b;border-radius:7px;padding:3px}
.cpub-card:hover .cpub-more,.cpub-card:focus-visible .cpub-more{background:#eef3fa;fill:#2868cc}
.cpub-card-description{display:none}
.cpub-load-more{display:flex;justify-content:center;align-items:center;min-height:16px;margin:20px auto 0;color:#7c8c9f;font-size:.8rem}
.cpub-load-more:has(.cpub-load-label:not([hidden])){min-height:50px}
.cpub-load-retry{background:#fff;border:1px solid #d9e3ef;border-radius:9px;cursor:pointer;padding:10px 14px;color:#2868cc;font:inherit}
.cpub-load-label[hidden],.cpub-load-retry[hidden]{display:none}
.cpub-empty{padding:54px 15px;text-align:center;border:1px dashed #e1e8f1;border-radius:16px;background:#fbfcfe}
.cpub-empty-symbol{height:42px;width:42px;background:#eff4fa;border-radius:12px;display:grid;place-items:center;margin:0 auto 12px}
.cpub-empty-symbol svg{width:20px;height:20px;stroke:#7a92ab;stroke-width:1.6;fill:none}
.cpub-empty h2{font-size:1.02rem;color:#2c425b;margin:0 0 7px}.cpub-empty p{color:#8091a6;font-size:.87rem;margin:0}
@media(min-width:700px){.cpub-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.cpub-column{gap:12px}}
@media(min-width:1080px){.cpub-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.cpub-column{gap:13px}}
@media(min-width:1540px){.cpub-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
html.cpub-modal-lock{overflow:hidden;scroll-behavior:auto}
body.cpub-modal-lock{position:fixed;left:0;right:0;width:100%;overflow:hidden}
.cpub-dialog{border:1px solid #dbe4ef;border-radius:17px;box-shadow:0 15px 55px #1f344e25;max-width:min(570px,calc(100vw - 30px));max-height:calc(100dvh - 32px);width:100%;padding:0;color:#213c56;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.cpub-dialog::backdrop{background:rgba(23,37,57,.43)}
.cpub-dialog-box{padding:23px;display:flex;flex-direction:column;gap:13px}
.cpub-dialog-head{display:flex;align-items:start;justify-content:space-between;gap:10px}.cpub-dialog-head span{font-size:.78rem;color:#7c8fa6}.cpub-dialog-head h2{font-size:1.22rem;margin:4px 0 0}
.cpub-dialog-close{display:grid;place-items:center;width:35px;height:35px;border:1px solid #e2e9f1;border-radius:9px;background:#fff;cursor:pointer}.cpub-dialog-close svg{width:17px;height:17px;fill:none;stroke:#6d8096;stroke-width:1.8}
.cpub-dialog textarea{font:inherit;font-size:.94rem;line-height:1.6;color:#2b4058;background:#fff;resize:vertical;border:1px solid #d7e2ef;border-radius:11px;min-height:140px;width:100%;padding:13px;outline:0}
.cpub-dialog-meta{text-align:right;font-size:.78rem;color:#8a9aab}
.cpub-dialog-actions{display:flex;justify-content:flex-end;gap:9px}
.cpub-dialog-primary{border-radius:9px;min-height:42px;padding:9px 16px;font:inherit;font-size:.86rem;font-weight:640;cursor:pointer}
.cpub-dialog-primary{border:1px solid #2868cc}
.cpub-dialog-primary:disabled{opacity:.6;cursor:default}

@media(max-width:680px){.cpub-layout{padding-top:16px;padding-bottom:42px}.cpub-toolbar{flex-direction:column;align-items:stretch;gap:14px;margin-bottom:17px}.cpub-heading h1{font-size:1.44rem}.cpub-heading p{font-size:.87rem}.cpub-filters{max-width:none;flex:0 0 auto}.cpub-grid,.cpub-column{gap:9px}.cpub-card-caption h2{font-size:.77rem}.cpub-dialog-box{padding:17px}.cpub-dialog textarea{min-height:240px;resize:none;overflow-y:hidden}.cpub-dialog-actions button{width:100%;justify-content:center}}
@media(min-width:681px) and (max-width:820px){.cpub-toolbar{gap:16px}.cpub-filters{flex-basis:300px}}
@media (max-width:680px) and (max-height:459px){.cpub-dialog textarea{min-height:155px}}
@media(prefers-reduced-motion:reduce){.cpub-image-wrap img{transition:none}}

/* A grade sem JavaScript também conserva a distribuição vertical das imagens. */
.cpub-grid:not(.cpub-masonry){display:block;column-count:2;column-gap:10px}
.cpub-grid:not(.cpub-masonry) .cpub-card{break-inside:avoid;margin-bottom:10px}
@media(min-width:700px){.cpub-grid:not(.cpub-masonry){column-count:3;column-gap:12px}.cpub-grid:not(.cpub-masonry) .cpub-card{margin-bottom:12px}}
@media(min-width:1080px){.cpub-grid:not(.cpub-masonry){column-count:5;column-gap:13px}.cpub-grid:not(.cpub-masonry) .cpub-card{margin-bottom:13px}}
@media(min-width:1540px){.cpub-grid:not(.cpub-masonry){column-count:6}}
