/* Additions for the static build (loaded after style.css). */

/* Scroll reveal — only hides content when JS is running, so the page is never blank without it */
.js .reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.js .reveal.in {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1; transform: none; transition: none; }
}

[hidden] { display: none !important; }

/* Header brand: emblem + company name */
.brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
  flex-shrink: 1;
  margin-right: 1rem;
}
.brand-emblem {
  display: block;
  height: 52px;
  width: auto;
  flex-shrink: 0;
}
.brand-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.1;
  font-family: var(--font-heading);
}
.brand-name {
  color: hsl(var(--accent));
  font-weight: 700;
  font-size: 1.375rem;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.brand-sub {
  color: rgba(255, 255, 255, 0.72);
  font-weight: 700;
  font-size: 0.625rem;
  letter-spacing: 0.08em;
  margin-top: 0.25rem;
  white-space: nowrap;
}
.brand-sub-long { display: none; }
@media (min-width: 1024px) {
  .brand-sub-long { display: block; }
  .brand-sub-short { display: none; }
}
@media (max-width: 400px) {
  .brand { gap: 0.5rem; }
  .brand-emblem { height: 42px; }
  .brand-name { font-size: 1.125rem; }
  .brand-sub { font-size: 0.5625rem; letter-spacing: 0.04em; }
}

/* Footer logo (full transparent logo) */
.footer-logo {
  display: block;
  width: 100%;
  max-width: 190px;
  height: auto;
}

/* Privacy / Terms pages */
.legal p { margin-bottom: 1.1rem; }
.legal h2 {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 700;
  color: hsl(var(--primary));
  margin: 2.25rem 0 0.75rem;
}
.legal a { color: hsl(var(--primary)); text-decoration: underline; text-underline-offset: 3px; }
