/* Public website: landing page, legal pages and waitlist notices. */

.site {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto 1fr auto;
  min-height: 100dvh;
  max-width: 68rem;
  margin-inline: auto;
  padding: env(safe-area-inset-top) max(var(--gutter), env(safe-area-inset-right)) 0 max(var(--gutter), env(safe-area-inset-left));
}

.site-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--space-8);
}

.wordmark {
  display: inline-flex;
  padding-block: var(--space-2);
  color: var(--color-ink);
  text-decoration: none;
}



.language a {
  display: inline-block;
  padding: var(--space-2) 0;
  color: var(--color-ink-muted);
  font-size: var(--text-sm);
}

/* Hero: the name is the loudest thing on the page, everything else steps back */
.hero {
  padding-block: var(--space-7) var(--space-8);
}

.hero { text-align: center; }

.hero-name { margin: 0; line-height: 1; }

.hero-logo { font-size: clamp(2.25rem, 9vw, 4.25rem); font-weight: 600; font-variation-settings: "opsz" 18; }

/* The brand's tagline: small, upper case, widely tracked (brand kit). */
.hero-tagline {
  margin-top: var(--space-4);
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--color-ink);
}

.hero-line {
  max-width: var(--measure);
  margin: var(--space-5) auto 0;
  font-size: var(--text-lg);
  line-height: var(--leading-sans);
}

/* The waitlist: a framed invitation, centred, the clearest thing after the tagline */
.waitlist {
  margin-inline: auto;
  display: grid;
  gap: var(--space-3);
  max-width: 30rem;
  margin-top: var(--space-6);
  padding: var(--space-6) var(--space-5) var(--space-5);
  border: 1px solid var(--color-line);
  background: var(--color-surface);
  text-align: center;
}

.waitlist-title {
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.waitlist-lead { color: var(--color-ink-muted); font-size: var(--text-sm); line-height: var(--leading-sans); }
.waitlist-email { margin-top: var(--space-2); }

.waitlist-note {
  color: var(--color-ink-muted);
  font-size: var(--text-xs);
  line-height: var(--leading-sans);
}

/* Features: text beside a photo */
.feature {
  display: grid;
  gap: var(--space-6);
  align-items: center;
  padding-block: var(--space-7);
  border-top: 1px solid var(--color-line);
}

.feature h2 {
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  line-height: 1.4;
}

.feature p {
  max-width: var(--measure);
  margin-top: var(--space-4);
  font-family: var(--font-sans);
  font-size: var(--text-md);
  line-height: var(--leading-sans);
}

/* Features: a photo beside each one (free Unsplash photos, see docs/credits.md) */
.feature-photo { margin: 0; }

.feature-photo img {
  display: block;
  width: min(22rem, 100%);
  height: auto;
  aspect-ratio: 3 / 4;
  margin-inline: auto;
  object-fit: cover;
  border-radius: var(--radius-md);
}

@media (min-width: 48rem) {
  .feature { grid-template-columns: 1fr 1fr; }
  .feature:nth-of-type(odd) .feature-text { order: 2; }
}

/* Legal pages and notices: one readable column */
.legal,
.notice {
  max-width: var(--measure);
  padding-block: var(--space-7) var(--space-8);
}

.legal h1,
.notice h1 {
  font-family: var(--font-sans);
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  line-height: 1.4;
}

.legal h2 {
  margin-top: var(--space-6);
  font-size: var(--text-lg);
  font-weight: 600;
}

.legal p,
.notice p {
  margin-top: var(--space-3);
  font-family: var(--font-sans);
  line-height: var(--leading-sans);
}

.legal-placeholder {
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-sm);
  background: var(--color-accent-soft);
  font-family: var(--font-sans);
}

.notice form { margin-top: var(--space-5); }

.site-footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--space-3);
  padding-block: var(--space-5) max(var(--space-5), env(safe-area-inset-bottom));
  border-top: 1px solid var(--color-line);
  color: var(--color-ink-muted);
  font-size: var(--text-sm);
}

.site-footer nav {
  display: flex;
  gap: var(--space-4);
}

/* Header tools: Light | Dark, and the other language */
.site-header-tools { display: flex; align-items: center; gap: var(--space-4); }
.theme-switch { display: flex; gap: var(--space-3); font-size: var(--text-sm); }
.theme-switch a { padding: var(--space-2) 0; color: var(--color-ink-muted); text-decoration: none; }
.theme-switch a[aria-current="true"] { color: var(--color-ink); text-decoration: underline; text-underline-offset: 0.3em; }
