/* Rodapé padrão VPC: reproduzido de globals.css do site. */
footer { position: relative; overflow: hidden; color: #b7c4d5; background: var(--deep); }
.footer-marca-dagua { position: absolute; z-index: 0; left: -70px; bottom: -90px; width: 340px; height: 340px; opacity: .045; pointer-events: none; }
.footer-top, .footer-legal { position: relative; z-index: 1; }
.footer-top { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)); gap: 3rem; padding-block: 3rem 2.2rem; align-items: start; }
.footer-identidade { display: grid; gap: 1.3rem; }
.footer-brand { position: relative; padding-left: calc(52px + .7em); color: #fff; }
.footer-brand img { position: absolute; left: 0; top: 0; width: 52px; height: 52px; object-fit: contain; }
.footer-brand span { display: grid; font-family: var(--fonte-titulos); line-height: 1.1; }
.footer-brand strong { font-size: 1.026rem; font-weight: 600; letter-spacing: .02em; }
.footer-brand small { margin-top: .5rem; color: var(--lime); font-size: .7992rem; font-weight: 800; }
.footer-endereco { margin: 0; color: #93a6bc; font-size: .714rem; font-style: normal; line-height: 1.65; }
.footer-col { display: grid; justify-items: start; gap: .6rem; }
.footer-col h3 { display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 .3rem; color: #fff; font-size: .612rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.footer-col h3 img { width: 17px; height: 17px; object-fit: contain; }
.footer-col a { position: relative; color: #b7c4d5; font-size: .765rem; overflow-wrap: anywhere; transition: color 160ms ease; }
.footer-col a:hover { color: var(--lime); }
.footer-legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 2rem; padding-block: 1.1rem; border-top: 1px solid rgb(255 255 255 / 10%); color: #8598ae; font-size: .629rem; }
@media (max-width: 1020px) {
  .footer-top { grid-template-columns: 1fr 1fr; gap: 2.2rem; }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .footer-top { grid-template-columns: 1fr; gap: 1.8rem; padding-block: 2.2rem 1.6rem; }
  .footer-legal { flex-direction: column; }
  .footer-brand strong { font-size: .7344rem; }
  .footer-brand small { font-size: .6264rem; }
}

.footer-contato { display: grid; justify-items: start; gap: .6rem; margin-top: 1rem; }
.footer-col h3 svg { flex-shrink: 0; color: var(--lime); }

/* Compactacao vertical, preservando fontes e espacos horizontais. */
html, body { overscroll-behavior-y: none; }
.footer-top { row-gap: calc(48px * var(--footer-spacing)); padding-block: calc(48px * var(--footer-spacing)) calc(35.2px * var(--footer-spacing)); }
.footer-identidade { row-gap: calc(20.8px * var(--footer-spacing)); }
.footer-brand small { margin-top: calc(8px * var(--footer-spacing)); }
.footer-col, .footer-contato { row-gap: calc(9.6px * var(--footer-spacing)); }
.footer-col h3 { margin-bottom: calc(4.8px * var(--footer-spacing)); }
.footer-contato { margin-top: calc(16px * var(--footer-spacing)); }
footer#rodape { --footer-spacing: .24; }
@media (max-width: 720px) { footer#rodape { --footer-spacing: .24; } .footer-top { row-gap: calc(28.8px * var(--footer-spacing)); padding-block: calc(35.2px * var(--footer-spacing)) calc(25.6px * var(--footer-spacing)); } }

/* Rodape compacto: identidade acima das duas colunas em telas pequenas. */
footer#rodape .footer-legal { padding-block: 10px; }
@media (max-width: 720px) {
 footer#rodape { --footer-spacing: .18; }
 footer#rodape .footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; }
 footer#rodape .footer-identidade { grid-column: 1 / -1; }
}
footer#rodape { background: #0a1b35; border-top: 1px solid rgb(154 170 188 / 16%); }

html.subtle-scrollbar { scrollbar-width: thin; scrollbar-color: transparent transparent; }
html.subtle-scrollbar.scrollbar-active, html.subtle-scrollbar.scrollbar-hover { scrollbar-color: #82968e transparent; }
html.subtle-scrollbar::-webkit-scrollbar { width: 8px; }
html.subtle-scrollbar::-webkit-scrollbar-track { background: transparent; }
html.subtle-scrollbar::-webkit-scrollbar-thumb { background: transparent; border-radius: 8px; }
html.subtle-scrollbar.scrollbar-active::-webkit-scrollbar-thumb, html.subtle-scrollbar.scrollbar-hover::-webkit-scrollbar-thumb { background: #82968e; }

footer#rodape .footer-brand { min-height: 34.56px; padding-left: calc(34.56px + .756em); }
footer#rodape .footer-brand img { width: 34.56px; height: 34.56px; }

/* Deslocamento de 1 mm sem acrescentar altura ao bloco superior. */
footer#rodape .footer-top { padding-top: calc(48px * var(--footer-spacing) + 1mm); padding-bottom: max(0px, calc(35.2px * var(--footer-spacing) - 1mm)); }
footer#rodape .footer-identidade { row-gap: calc(20.8px * var(--footer-spacing) + 8px); }
footer#rodape .footer-access-row, footer#rodape .footer-contato { display: grid; justify-items: start; align-items: start; gap: 2px; min-width: 0; }
footer#rodape .footer-access-row h3, footer#rodape .footer-contato h3 { margin: 0; flex: none; }
@media (max-width: 720px) { footer#rodape .footer-top { padding-top: calc(35.2px * var(--footer-spacing) + 1mm); padding-bottom: max(0px, calc(25.6px * var(--footer-spacing) - 1mm)); } }

@media (min-width: 1021px) { footer#rodape .footer-top { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.2fr) minmax(0, 1fr); } }

/* Proximidade dentro de cada grupo; separacao entre grupos. */
footer#rodape .footer-col { row-gap: 2px; }
footer#rodape .footer-col h3 { margin-bottom: 0; line-height: 1.3; }
footer#rodape .footer-col a { line-height: 1.35; }
footer#rodape .footer-contato { margin-top: 12px; }
footer#rodape .footer-identidade { row-gap: 14px; }
footer#rodape .footer-endereco { line-height: 1.35; }
footer#rodape .footer-top { row-gap: 16px; }

/* Alinha o conteudo ao texto dos titulos, depois do icone de 17px e gap de 8px. */
footer#rodape .footer-col > a, footer#rodape .footer-access-row > a, footer#rodape .footer-contato > a { margin-left: 25px; max-width: calc(100% - 25px); }

/* Os extremos dos blocos acompanham a altura natural de Acesso/Contato. */
footer#rodape .footer-top { align-items: stretch; }
footer#rodape .footer-identidade { grid-template-rows: 1fr auto; }
footer#rodape .footer-top > nav.footer-col { align-content: space-between; }
footer#rodape .footer-top > div.footer-col { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 2px; }
@media (min-width: 721px) {
 footer#rodape .footer-top { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.2fr) minmax(0, 1fr); }
}
