*, *::before, *::after { box-sizing: border-box; }
body { font-family: "Inter", system-ui, sans-serif; }

.hero-bg {
  background-color: #0f172a;
  background-image:
    radial-gradient(ellipse 80% 60% at 60% -10%, rgba(30,58,138,0.45) 0%, transparent 70%),
    radial-gradient(ellipse 50% 40% at 100% 100%, rgba(37,99,235,0.15) 0%, transparent 60%);
}

#navbar { transition: background-color 0.3s ease, box-shadow 0.3s ease; }
#navbar.scrolled {
  background-color: rgba(15,23,42,0.97);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 0 rgba(255,255,255,0.06);
}

.service-card::before {
  content: '';
  display: block;
  height: 3px;
  background: linear-gradient(90deg, #1d4ed8, #3b82f6);
  border-radius: 2px 2px 0 0;
  margin-bottom: 1.5rem;
}

.ticker-track {
  display: flex;
  gap: 3rem;
  animation: ticker 28s linear infinite;
  width: max-content;
}
@keyframes ticker {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.ticker-track:hover { animation-play-state: paused; }

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }

.photo-frame {
  background: linear-gradient(135deg, #1e3a5f 0%, #0f172a 100%);
  border: 1px solid rgba(59,130,246,0.25);
  box-shadow: 0 0 0 4px rgba(30,58,138,0.12), 0 10px 40px rgba(0,0,0,0.3);
}

/* Mobile font size boost */
@media (max-width: 639px) {
  p, li, label, .text-sm { font-size: 1.0625rem !important; line-height: 1.65 !important; }
  .hero-bg p { font-size: 1.0625rem !important; line-height: 1.7 !important; }
  .text-xs { font-size: 0.84375rem !important; line-height: 1.5 !important; }
  #hero-cta-primary { font-size: 1.0625rem !important; }
  #mobile-menu a { font-size: 1.0625rem !important; }
  .service-card p, .service-card li { font-size: 1.0625rem !important; }
  .tracking-widest { font-size: 0.8125rem !important; }

  /* Logos del ticker: más visibles en mobile */
  .ticker-track img {
    opacity: 0.75 !important;
    filter: grayscale(60%) !important;
  }
}
