/* Tipografia base */
body { -webkit-font-smoothing: antialiased; }

/* Hero */
.hero {
  background: radial-gradient(1200px 600px at 20% 20%, rgba(13,110,253,.10), transparent 60%),
              radial-gradient(1200px 600px at 80% 10%, rgba(25,135,84,.08), transparent 50%);
}

/* Logo com efeito “premium” */
.logo-wrap{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(13,110,253,.18), rgba(13,110,253,.06));
  border: 1px solid rgba(13,110,253,.20);
  box-shadow: 0 8px 24px rgba(13,110,253,.12);
  position: relative;
  overflow: hidden;
}

.logo-wrap::after{
  content:"";
  position:absolute;
  inset:-40%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.60), transparent);
  transform: rotate(25deg);
  animation: shine 3.5s ease-in-out infinite;
}

@keyframes shine{
  0% { transform: translateX(-60%) rotate(25deg); opacity: 0; }
  25% { opacity: 1; }
  50% { transform: translateX(60%) rotate(25deg); opacity: 0; }
  100% { opacity: 0; }
}

.logo-img{
  width: 28px;
  height: 28px;
  object-fit: contain;
  z-index: 1;
}

.logo-fallback{
  width: 28px;
  height: 28px;
  z-index: 1;
  border-radius: 10px;
  display: inline-flex;
  align-items:center;
  justify-content:center;
  font-weight: 800;
  color: #0d6efd;
  background: rgba(255,255,255,.65);
}

.brand-title{ font-size: 1rem; }
.brand-subtitle{ font-size: .8rem; }

/* Botão do topo mais “clínica” */
.navbar .btn.btn-primary{
  border-radius: 999px;
}

/* Modal mais premium */
.modal-content { border-radius: 18px; }



/* Banner carousel */
.banner-card{
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid var(--vitae-border);
  box-shadow: var(--vitae-shadow);
  background: #fff;
}
.banner-img{
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.banner-aspect{ aspect-ratio: 21/8; } /* desktop */
@media (max-width: 768px){
  .banner-aspect{ aspect-ratio: 16/10; } /* mobile */
}
.carousel-indicators [data-bs-target]{
  width: 10px; height: 10px;
  border-radius: 50%;
}
