
/* V55 - Escolha obrigatória de cidade antes de acessar o site */
body.city-gated{
  overflow:hidden!important;
}

body.city-gated .cookie-consent-v53,
body.city-gated .cookie-consent{
  display:none!important;
}

.city-modal.required.city-gate-modal{
  position:fixed!important;
  inset:0!important;
  z-index:999998!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:22px!important;
  background:
    radial-gradient(circle at top left, rgba(var(--primary-rgb,15,118,110),.24), transparent 34%),
    radial-gradient(circle at bottom right, rgba(14,116,144,.20), transparent 34%),
    linear-gradient(135deg,#f8fbff 0%,#eaf4ff 100%)!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}

.city-modal.required.city-gate-modal::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:
    linear-gradient(rgba(255,255,255,.62),rgba(255,255,255,.62)),
    repeating-linear-gradient(45deg, rgba(15,23,42,.025) 0 1px, transparent 1px 12px)!important;
  pointer-events:none!important;
}

.city-modal.required.city-gate-modal .city-gate-card{
  position:relative!important;
  width:min(760px,100%)!important;
  max-height:calc(100vh - 44px)!important;
  overflow:auto!important;
  padding:34px!important;
  border-radius:30px!important;
  background:rgba(255,255,255,.96)!important;
  border:1px solid rgba(219,229,239,.98)!important;
  box-shadow:0 30px 90px rgba(15,23,42,.22)!important;
  text-align:center!important;
  backdrop-filter:blur(18px)!important;
}

.city-gate-brand{
  width:86px!important;
  height:86px!important;
  display:grid!important;
  place-items:center!important;
  margin:0 auto 16px!important;
  border-radius:26px!important;
  background:linear-gradient(180deg,#ffffff 0%,#edf8ff 100%)!important;
  border:1px solid #dbeafe!important;
  box-shadow:0 14px 32px rgba(15,23,42,.08)!important;
  overflow:hidden!important;
}

.city-gate-brand img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  padding:10px!important;
}

.city-gate-brand span{
  font-size:42px!important;
}

.city-gate-kicker{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:8px 14px!important;
  margin-bottom:12px!important;
  border-radius:999px!important;
  background:#e0f2fe!important;
  color:#075985!important;
  font-size:12px!important;
  font-weight:950!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
}

.city-gate-card h2{
  margin:0 0 10px!important;
  color:#0f172a!important;
  font-size:38px!important;
  line-height:1.04!important;
  letter-spacing:-.04em!important;
}

.city-gate-text{
  max-width:620px!important;
  margin:0 auto 22px!important;
  color:#475569!important;
  font-size:16px!important;
  line-height:1.65!important;
}

.city-gate-list{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;
  gap:12px!important;
  margin-top:10px!important;
}

.city-gate-list a{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  gap:10px!important;
  align-items:center!important;
  min-height:64px!important;
  padding:14px!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%)!important;
  border:1px solid #dbe5ef!important;
  color:#0f172a!important;
  text-decoration:none!important;
  text-align:left!important;
  box-shadow:0 10px 24px rgba(15,23,42,.05)!important;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease!important;
}

.city-gate-list a:hover{
  transform:translateY(-2px)!important;
  border-color:var(--primary,#0f766e)!important;
  box-shadow:0 16px 34px rgba(15,23,42,.10)!important;
}

.city-gate-pin{
  width:38px!important;
  height:38px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:14px!important;
  background:#e0f2fe!important;
}

.city-gate-list strong{
  font-size:16px!important;
  font-weight:950!important;
  color:#0f172a!important;
}

.city-gate-list small{
  justify-self:end!important;
  padding:5px 8px!important;
  border-radius:999px!important;
  background:#f1f5f9!important;
  color:#475569!important;
  font-weight:900!important;
}

@media(max-width:700px){
  .city-modal.required.city-gate-modal{
    padding:12px!important;
    align-items:flex-start!important;
    overflow:auto!important;
  }

  .city-modal.required.city-gate-modal .city-gate-card{
    padding:24px 16px!important;
    border-radius:24px!important;
    margin:18px 0!important;
    max-height:none!important;
  }

  .city-gate-card h2{
    font-size:30px!important;
  }

  .city-gate-text{
    font-size:15px!important;
    margin-bottom:16px!important;
  }

  .city-gate-list{
    grid-template-columns:1fr!important;
  }
}
