/* base.css — resets + global type + responsive breakpoints.
   No component or layout logic. */

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--navy);
  color: var(--text);
  font-family: var(--body);
  font-weight: 400;
  line-height: 1.5;
  font-size: 16px;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
::selection { background: var(--brand-blue); color: var(--navy); }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }

/* ============ RESPONSIVE ============ */
@media (max-width: 900px) {
  nav.top { padding: 16px 24px; }
  nav.top ul { display: none; }
  nav.top .logo img { height: 32px; }
  .hero, section { padding-left: 24px; padding-right: 24px; }
  .stats-inner { grid-template-columns: 1fr 1fr; gap: 32px 0; }
  .stat { padding: 0 16px; }
  .stat:nth-child(3) { border-left: none; padding-left: 0; }
  .markets-grid, .companies { grid-template-columns: 1fr; }
  .news-grid { grid-template-columns: 1fr; gap: 24px; }
  .news-header { flex-direction: column; align-items: flex-start; }
  .approach-inner { grid-template-columns: 1fr; gap: 48px; }
  .approach-inner > div:first-child h2 { position: static; margin-top: 0; }
  .markets-header { flex-direction: column; align-items: flex-start; }
  .manifesto-grid { grid-template-columns: 1fr; gap: 36px; }
  .footer-grid { grid-template-columns: 1fr; gap: 40px; }
  .footer-brand .logo img { height: 38px; }
  .pillar { grid-template-columns: 1fr; gap: 8px; }
  .roo-watermark {
    /* 3× scale doesn't fit on mobile, so tune down to a phone-appropriate size
       at the same bottom-left anchor. */
    left: 0; bottom: 0; right: auto; top: auto;
    width: 280px; height: 280px;
    opacity: 0.08;
  }
}
