/* BlueCats — global static styles
   Inline styles carry the visual design (ported from the source components).
   This file holds only what inline styles cannot express: resets, keyframes,
   link defaults, the nav dropdown behaviour, and a mobile fallback. */

/* ------------------------------------------------------------------
   Self-hosted fonts (no third-party calls).
   Inter (400–800) and JetBrains Mono (400–600), latin subset, woff2.
   Sourced from the fontsource packages; files live in assets/fonts/.
   The stacks below still list Aptos first, so visitors with the real
   brand font installed (Microsoft 365) get it automatically.
   ------------------------------------------------------------------ */
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url('../assets/fonts/inter-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url('../assets/fonts/inter-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url('../assets/fonts/inter-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url('../assets/fonts/inter-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 800; font-display: swap; src: url('../assets/fonts/inter-latin-800-normal.woff2') format('woff2'); }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('../assets/fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('../assets/fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 600; font-display: swap; src: url('../assets/fonts/jetbrains-mono-latin-600-normal.woff2') format('woff2'); }

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: #0E1A2B; font-family: 'Inter', -apple-system, 'Segoe UI', sans-serif; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; width: auto; }
::selection { background: rgba(74,144,255,0.28); }

a { color: #3B82F6; }
a:hover { color: #2470E8; }

@keyframes bcPulse  { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
@keyframes bcFade   { from { opacity: 0; } to { opacity: 1; } }
@keyframes bcTicker { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---- Nav: Solutions dropdown (hover on desktop, .open toggled by JS on touch) ---- */
.bc-solutions { position: relative; }
.bc-dropdown { display: none; }
.bc-solutions:hover .bc-dropdown,
.bc-solutions.open .bc-dropdown { display: block; }

/* ---- Hover states for authored nav/footer (inline base styles win without !important) ---- */
.bc-navlink:hover { color: #FFFFFF !important; }
.bc-demo:hover { background: #2470E8 !important; }
.bc-droprow:hover { background: rgba(59,130,246,0.14) !important; }

/* ---- Contact form ---- */
[data-contact-form] input:focus,
[data-contact-form] textarea:focus {
  border-color: #3B82F6 !important;
  box-shadow: 0 0 0 3px rgba(74,144,255,0.30) !important;
}

/* ---- Nav: mobile toggle ---- */
.bc-navtoggle {
  display: none; margin-left: auto; background: none; border: none; cursor: pointer;
  color: #FFFFFF; padding: 8px; align-items: center;
}

@media (max-width: 900px) {
  .bc-navtoggle { display: inline-flex; }
  .bc-nav {
    display: none; position: absolute; top: 58px; left: 0; right: 0;
    background: #0E1A2B; border-bottom: 1px solid rgba(255,255,255,0.10);
    flex-direction: column; align-items: stretch; padding: 8px 0; gap: 0;
  }
  .bc-nav.open { display: flex; }
  .bc-nav a, .bc-nav .bc-solutions > button { width: 100%; }
  .bc-dropdown { position: static !important; padding-top: 4px !important; }
  .bc-demo-desktop { display: none !important; }

  /* Collapse multi-column inline grids to a single column on small screens. */
  [style*="grid-template-columns"] { grid-template-columns: 1fr !important; }
}

@media (max-width: 640px) {
  h1 { font-size: 34px !important; }
}
