/* Estilos exclusivos: publico/estrutura-publica-municipal.html */


/* REGRA GLOBAL FINAL: frontend sem negrito */
html body,
html body h1, html body h2, html body h3, html body h4, html body h5, html body h6,
html body label, html body legend,
html body button, html body input, html body select, html body textarea, html body option,
html body p, html body span, html body small, html body a,
html body strong, html body b,
html body th, html body td, html body li,
html body [role="button"], html body [role="tab"], html body [class*="title"],
html body [class*="label"], html body [class*="heading"], html body [class*="caption"] {
  font-weight: 400 !important;
}
/* Mantem somente o peso estrutural exigido por fontes de icones. */
html body .fa, html body .fas, html body .fa-solid,
html body [class^="fa-"], html body [class*=" fa-"] {
  font-weight: 900 !important;
}
html body .far, html body .fa-regular {
  font-weight: 400 !important;
}

/* PADRAO PUBLICO DE MODAL 20260713: compacto, galeria centralizada e fechamento vermelho */
.portal-modal-window .portal-modal-content {
  padding: 16px 18px 18px;
}

.portal-modal-window .portal-modal-head {
  margin-bottom: 8px;
  padding-right: 42px;
}

.portal-modal-window .portal-modal-head-top {
  gap: 8px;
  margin-bottom: 6px;
}

.portal-modal-window .portal-modal-head h3 {
  margin-top: 6px;
  font-size: 25px;
  line-height: 1.12;
}

.portal-modal-window .portal-detail-meta {
  margin-top: 7px;
}

.portal-modal-window .portal-detail-section {
  margin-top: 10px;
  padding-top: 10px;
}

.portal-modal-window .portal-detail-section h4 {
  margin-bottom: 6px;
  font-size: 15px;
}

.portal-modal-window .portal-detail-text {
  line-height: 1.45;
}

.portal-modal-window .portal-detail-grid {
  gap: 7px;
}

.portal-modal-window .portal-detail-item {
  gap: 3px;
  padding: 8px 9px;
  border-radius: 10px;
}

.portal-modal-window .portal-modal-layout.has-gallery {
  align-items: center;
}

.portal-modal-window .portal-modal-gallery {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
}

.portal-modal-window .portal-modal-gallery-card {
  width: 100%;
  min-height: 0;
}

.portal-modal-window .portal-modal-gallery-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16 / 10 !important;
  height: auto;
  min-height: 0;
}

.portal-modal-window .portal-modal-gallery-slide {
  display: flex;
  align-items: center;
  justify-content: center;
}

.portal-modal-window .portal-modal-gallery-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: center center;
}

.portal-modal-window .portal-modal-gallery-dots {
  margin-top: 0;
  padding: 10px 0;
  background: transparent;
}

.portal-modal-window .portal-modal-close {
  background: #fff1f1;
  color: #cf2323;
  border: 1px solid #f2c4c4;
}

.portal-modal-window .portal-modal-close:hover {
  background: #fde6e6;
  color: #b91919;
}

@media (max-width: 900px) {
  .portal-modal-window .portal-modal-content {
    padding: 14px;
  }

  .portal-modal-window .portal-modal-layout.has-gallery {
    align-items: start;
  }

  .portal-modal-window .portal-modal-gallery-stage {
    aspect-ratio: 16 / 10 !important;
  }
}

@media (max-width: 560px) {
  .portal-modal-window .portal-modal-head h3 {
    font-size: 22px;
  }

  .portal-modal-window .portal-modal-gallery-stage {
    aspect-ratio: 4 / 3 !important;
  }
}

/* PADRAO VISUAL INDIVIDUAL PLANO DIRETOR 20260713 */
body[data-page="estrutura-publica-municipal"] {
  --pd-azul:#0b4d88;
  --pd-azul-escuro:#083f73;
  --pd-verde:#0a9868;
  --pd-vermelho:#c63c31;
  --pd-borda:#d5e2ee;
  --pd-fundo:#f3f7fb;
  --pd-campo:#f8fbfd;
  --pd-texto:#143b64;
  --pd-muted:#667b8f;
}
body[data-page="estrutura-publica-municipal"] .public-content {
  background:var(--pd-fundo);
  padding:22px 0 34px;
}
body[data-page="estrutura-publica-municipal"] .public-content > .container,
body[data-page="estrutura-publica-municipal"] main.public-content .container {
  width:min(1320px,calc(100% - 32px));
  margin-inline:auto;
}
body[data-page="estrutura-publica-municipal"] .public-content input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body[data-page="estrutura-publica-municipal"] .public-content select {
  height:36px!important;
  min-height:36px!important;
  padding:0 12px!important;
  border:1px solid var(--pd-borda)!important;
  border-radius:8px!important;
  background:var(--pd-campo)!important;
  color:var(--pd-texto)!important;
  font-size:14px!important;
  box-sizing:border-box!important;
}
body[data-page="estrutura-publica-municipal"] .public-content textarea {
  min-height:86px!important;
  padding:10px 12px!important;
  border:1px solid var(--pd-borda)!important;
  border-radius:8px!important;
  background:var(--pd-campo)!important;
  color:var(--pd-texto)!important;
  font-size:14px!important;
  line-height:1.4!important;
  box-sizing:border-box!important;
}
body[data-page="estrutura-publica-municipal"] .public-content button,
body[data-page="estrutura-publica-municipal"] .public-content .btn,
body[data-page="estrutura-publica-municipal"] .public-content a[class*="btn"],
body[data-page="estrutura-publica-municipal"] .public-content [role="button"] {
  min-height:40px!important;
  padding:0 16px!important;
  border-radius:9px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  font-size:14px!important;
  line-height:1!important;
  box-sizing:border-box!important;
}
body[data-page="estrutura-publica-municipal"] .public-content button svg,
body[data-page="estrutura-publica-municipal"] .public-content .btn svg,
body[data-page="estrutura-publica-municipal"] .public-content button i,
body[data-page="estrutura-publica-municipal"] .public-content .btn i {
  width:16px!important;
  height:16px!important;
  font-size:16px!important;
  flex:0 0 16px!important;
}
body[data-page="estrutura-publica-municipal"] .public-content form,
body[data-page="estrutura-publica-municipal"] .public-content .card,
body[data-page="estrutura-publica-municipal"] .public-content [class$="-card"],
body[data-page="estrutura-publica-municipal"] .public-content [class*="-card "] {
  border-color:var(--pd-borda)!important;
  border-radius:14px!important;
}
body[data-page="estrutura-publica-municipal"] .public-content table {
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  border:1px solid var(--pd-borda);
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
body[data-page="estrutura-publica-municipal"] .public-content th,
body[data-page="estrutura-publica-municipal"] .public-content td {
  padding:10px 12px!important;
  border-bottom:1px solid #e4edf4!important;
  font-size:13px!important;
}
body[data-page="estrutura-publica-municipal"] .portal-modal-window,
body[data-page="estrutura-publica-municipal"] [class$="-modal-box"],
body[data-page="estrutura-publica-municipal"] [class*="-modal-box "] {
  width:min(1320px,calc(100vw - 32px))!important;
  max-width:none!important;
  max-height:calc(100vh - 24px)!important;
  border-radius:16px!important;
  overflow:hidden!important;
}
body[data-page="estrutura-publica-municipal"] .portal-modal-close,
body[data-page="estrutura-publica-municipal"] [class*="modal"] button[aria-label*="Fechar"],
body[data-page="estrutura-publica-municipal"] [class*="modal"] button[aria-label*="fechar"] {
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  min-height:40px!important;
  padding:0!important;
  border-radius:10px!important;
}
body[data-page="estrutura-publica-municipal"] .portal-modal-gallery-prev,
body[data-page="estrutura-publica-municipal"] .portal-modal-gallery-next,
body[data-page="estrutura-publica-municipal"] [class*="modal"] [class*="prev"],
body[data-page="estrutura-publica-municipal"] [class*="modal"] [class*="next"] {
  width:34px!important;
  height:34px!important;
  min-width:34px!important;
  min-height:34px!important;
  padding:0!important;
  border:1px solid rgba(11,77,136,.24)!important;
  border-radius:9px!important;
  background:rgba(255,255,255,.96)!important;
  color:var(--pd-azul)!important;
  box-shadow:0 4px 12px rgba(11,77,136,.14)!important;
}
@media(max-width:760px) {
  body[data-page="estrutura-publica-municipal"] .public-content > .container,
  body[data-page="estrutura-publica-municipal"] main.public-content .container {width:min(100% - 20px,1320px)}
  body[data-page="estrutura-publica-municipal"] .public-content button,
  body[data-page="estrutura-publica-municipal"] .public-content .btn,
  body[data-page="estrutura-publica-municipal"] .public-content a[class*="btn"] {min-height:38px!important;padding-inline:13px!important}
}

/* ===== AJUSTE FINAL DO POPUP PUBLICO | ESTRUTURA PUBLICA MUNICIPAL ===== */
body[data-page="estrutura-publica-municipal"] .portal-modal-window{
  width:min(1120px,calc(100vw - 40px))!important;
  max-width:1120px!important;
  max-height:calc(100vh - 40px)!important;
  border-radius:18px!important;
}
body[data-page="estrutura-publica-municipal"] .portal-modal-content{
  padding:20px 22px 22px!important;
  overflow:auto!important;
}
body[data-page="estrutura-publica-municipal"] .portal-modal-layout.has-gallery{
  grid-template-columns:minmax(0,1fr) minmax(300px,360px)!important;
  gap:24px!important;
  align-items:start!important;
}
body[data-page="estrutura-publica-municipal"] .portal-modal-gallery{
  position:sticky!important;
  top:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  width:100%!important;
  min-width:0!important;
  gap:12px!important;
}
body[data-page="estrutura-publica-municipal"] .portal-modal-gallery-card{
  width:100%!important;
  min-width:0!important;
  border-radius:16px!important;
  overflow:hidden!important;
  background:#f3f7fb!important;
  box-shadow:0 12px 28px rgba(8,47,95,.12)!important;
}
body[data-page="estrutura-publica-municipal"] .portal-modal-gallery-stage{
  width:100%!important;
  aspect-ratio:4/3!important;
  height:auto!important;
  min-height:0!important;
  border-radius:16px!important;
  overflow:hidden!important;
}
body[data-page="estrutura-publica-municipal"] .portal-modal-gallery-slide,
body[data-page="estrutura-publica-municipal"] .portal-modal-gallery-slide img{
  width:100%!important;
  height:100%!important;
}
body[data-page="estrutura-publica-municipal"] .portal-modal-gallery-slide img{
  object-fit:cover!important;
  object-position:center!important;
}
body[data-page="estrutura-publica-municipal"] .portal-location-button{
  width:100%!important;
  min-height:46px!important;
  margin:0!important;
  padding:0 18px!important;
  border-radius:11px!important;
  background:var(--theme-accent,#0b4d88)!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(11,77,136,.18)!important;
}
body[data-page="estrutura-publica-municipal"] .portal-location-button:hover,
body[data-page="estrutura-publica-municipal"] .portal-location-button:focus-visible{
  transform:translateY(-1px)!important;
  filter:brightness(.92)!important;
  outline:3px solid rgba(11,77,136,.18)!important;
  outline-offset:2px!important;
}
body[data-page="estrutura-publica-municipal"] .portal-detail-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
}
body[data-page="estrutura-publica-municipal"] .portal-detail-item{
  min-height:56px!important;
  padding:9px 10px!important;
}
body[data-page="estrutura-publica-municipal"] .portal-detail-section:last-child{
  margin-bottom:0!important;
}

@media(max-width:900px){
  body[data-page="estrutura-publica-municipal"] .portal-modal-window{
    width:min(760px,calc(100vw - 24px))!important;
    max-width:760px!important;
  }
  body[data-page="estrutura-publica-municipal"] .portal-modal-layout.has-gallery{
    grid-template-columns:1fr!important;
    gap:18px!important;
  }
  body[data-page="estrutura-publica-municipal"] .portal-modal-gallery{
    position:static!important;
    order:-1!important;
    max-width:520px!important;
    margin:0 auto!important;
  }
}

@media(max-width:560px){
  body[data-page="estrutura-publica-municipal"] .portal-modal-window{
    width:calc(100vw - 16px)!important;
    max-height:calc(100vh - 16px)!important;
    border-radius:14px!important;
  }
  body[data-page="estrutura-publica-municipal"] .portal-modal-content{
    padding:14px!important;
  }
  body[data-page="estrutura-publica-municipal"] .portal-detail-grid{
    grid-template-columns:1fr!important;
  }
  body[data-page="estrutura-publica-municipal"] .portal-modal-gallery-stage{
    aspect-ratio:16/10!important;
  }
}
