/* Base reset + typography */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body {
  margin: 0;
  font-family: var(--bc-font-sans);
  background: var(--bc-white);
  color: var(--bc-charcoal);
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; padding: 0; }
ul, ol { padding: 0; margin: 0; list-style: none; }
h1, h2, h3, h4, h5, h6 { margin: 0; font-family: var(--bc-font-display); font-weight: 800; letter-spacing: -0.025em; color: var(--bc-charcoal); }
::selection { background: var(--bc-royal-100); color: var(--bc-charcoal); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

.bc-sr { position: absolute !important; height: 1px; width: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.bc-sr:focus { position: fixed !important; left: 16px; top: 16px; height: auto; width: auto; padding: 12px 18px; clip: auto; white-space: normal; background: var(--bc-electric); color: #fff; z-index: 9999; border-radius: var(--bc-radius-md); }
.bc-hide-mobile { display: none; }
@media (min-width: 768px) { .bc-hide-mobile { display: initial; } .bc-show-mobile { display: none; } }

.bc-container { width: 100%; max-width: var(--bc-container); margin-inline: auto; padding-inline: 24px; }
@media (min-width: 1024px) { .bc-container { padding-inline: 48px; } }
.bc-section { padding: 80px 0; }
.bc-section-tight { padding: 56px 0; }
@media (min-width: 1024px) {
  .bc-section { padding: 112px 0; }
  .bc-section-tight { padding: 72px 0; }
}

/* Soft gradient backdrop for hero/CTA sections */
.bc-bg-cinematic {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at -10% -20%, rgba(29, 78, 216, 0.08), transparent 45%),
    radial-gradient(circle at 110% 10%, rgba(230, 57, 70, 0.07), transparent 45%),
    radial-gradient(circle at 50% 110%, rgba(255, 214, 10, 0.04), transparent 60%),
    var(--bc-white);
}
.bc-bg-alt { background: var(--bc-cream); }
.bc-orb { display: none; }

/* Footer — dark contrast band at the bottom */
.bc-footer { margin-top: 0; background: #0F172A; color: rgba(255,255,255,0.85); padding: 80px 0; }
.bc-footer-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (min-width: 1024px) { .bc-footer-grid { grid-template-columns: 4fr 2fr 2fr 2fr 2fr; } }
.bc-footer h3 { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 800; color: var(--bc-electric-400); margin-bottom: 16px; }
.bc-footer ul { display: flex; flex-direction: column; gap: 8px; font-size: 14px; color: rgba(255,255,255,0.7); }
.bc-footer ul a:hover { color: #fff; }
.bc-footer .bc-logo-text { color: #fff; }
.bc-footer .bc-logo-sub { color: rgba(255,255,255,0.6); }
.bc-footer-bottom { margin-top: 64px; padding-top: 32px; border-top: 1px solid rgba(255,255,255,0.1); display: flex; flex-direction: column; gap: 16px; align-items: flex-start; font-size: 12px; color: rgba(255,255,255,0.5); }
@media (min-width: 768px) { .bc-footer-bottom { flex-direction: row; justify-content: space-between; align-items: center; } }
.bc-footer-bottom a:hover { color: #fff; }
