/* Shared base styles. Utility classes are handled by Tailwind's CDN build;
   this file only covers what utility classes cannot express cleanly. */

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

html, body {
  max-width: 100%;
  overflow-x: hidden;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

img, video {
  max-width: 100%;
  height: auto;
  display: block;
}

.media-frame {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: #0f172a;
}

.media-frame video,
.media-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Publication (advertorial / about) type rhythm */
.font-headline {
  font-family: Georgia, "Times New Roman", Times, serif;
}

/* Reduce motion for users who ask for it */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

/* Visible focus states everywhere, on top of Tailwind's ring utilities */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid #2563eb;
  outline-offset: 2px;
}

/* Sticky CTA bar spacer so it never covers content */
.has-sticky-cta {
  padding-bottom: 84px;
}

@media (min-width: 768px) {
  .has-sticky-cta {
    padding-bottom: 0;
  }
}

/* Keep supplied company text selectable and readable at small sizes */
.site-footer__company {
  white-space: pre-line;
}

table.rate-table {
  width: 100%;
  border-collapse: collapse;
}

table.rate-table th,
table.rate-table td {
  text-align: left;
  vertical-align: top;
}

.ticker-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: currentColor;
  flex: none;
}
