/* Gestor de Banners – front-end */
.gb-banner { margin: 1.5em auto; max-width: 100%; line-height: 0; box-sizing: border-box; }
.gb-banner a, .gb-banner picture { display: block; }
.gb-banner img { display: block; width: 100%; max-width: 100%; height: auto; border: 0; }
.gb-banner .gb-html { line-height: normal; }
.gb-align-centro { margin-left: auto; margin-right: auto; }
.gb-align-esquerda { margin-left: 0; margin-right: auto; }
.gb-align-direita { margin-left: auto; margin-right: 0; }
.gb-zona .gb-banner + .gb-banner { margin-top: 1em; }

@media (max-width: 767px) { .gb-only-desktop { display: none !important; } }
@media (min-width: 768px) { .gb-only-mobile { display: none !important; } }

/* Barra fixa */
.gb-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 99998; display: flex; justify-content: center; align-items: center; padding: 6px 44px; background: rgba(255,255,255,.97); box-shadow: 0 -2px 14px rgba(0,0,0,.18); }
.gb-sticky[hidden] { display: none !important; }
.gb-sticky .gb-banner { margin: 0 auto; width: 100%; }
.gb-sticky-close { position: absolute; top: 6px; right: 8px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: #222; color: #fff; font-size: 20px; line-height: 30px; padding: 0; cursor: pointer; }
html.gb-tem-barra body { padding-bottom: 110px; }

/* Popup */
.gb-popup { position: fixed; inset: 0; z-index: 999999; display: flex; align-items: center; justify-content: center; padding: 16px; }
.gb-popup[hidden] { display: none !important; }
.gb-popup-overlay { position: absolute; inset: 0; background: rgba(0,0,0,.65); cursor: pointer; animation: gb-fade .25s ease; }
.gb-popup-box { position: relative; max-width: 100%; max-height: calc(100vh - 32px); overflow: auto; animation: gb-pop .3s ease; }
.gb-popup-box .gb-banner { margin: 0 auto; width: calc(100vw - 32px); }
.gb-popup-close { position: absolute; top: 8px; right: 8px; z-index: 2; width: 36px; height: 36px; border: 0; border-radius: 50%; background: rgba(0,0,0,.75); color: #fff; font-size: 24px; line-height: 36px; padding: 0; cursor: pointer; }
.gb-popup-close:focus-visible, .gb-sticky-close:focus-visible { outline: 3px solid #ffbf47; outline-offset: 2px; }
html.gb-popup-aberto { overflow: hidden; }

@keyframes gb-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes gb-pop { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .gb-popup-overlay, .gb-popup-box { animation: none; } }
