/* ──────────────────────────────────────────────
   site.css — shared shell for all pages
   (tokens, reset, nav, base section, footer, animations)
   Page-specific styles live in their own stylesheet.
   ────────────────────────────────────────────── */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --cream: #FAF8F4;
  --warm-white: #FFFEF9;
  --ink: #1C1B18;
  --brand-brown: #80665D;
  --ink-muted: #6B6760;
  --ink-faint: #B8B4AE;
  --terracotta: #80665D;
  --sage: #8BA888;
  --dusty-rose: #C9908A;
  --accent: #80665D;
  --border: rgba(28,27,24,0.10);
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans: 'DM Sans', system-ui, sans-serif;
}

html { font-size: 16px; scroll-behavior: smooth; }

body {
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
  font-weight: 300;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

/* NAV */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  padding: 1.25rem 2.5rem;
  display: flex; justify-content: space-between; align-items: center;
  background: rgba(250,248,246,0.75);
  backdrop-filter: blur(12px);
  border-bottom: 0.5px solid var(--border);
}
.nav-logo-link {
  display: flex; align-items: center; gap: 0.5rem;
  text-decoration: none;
}
.nav-logo { height: 30px; width: auto; display: block; }
.nav-ctas { display: flex; align-items: center; gap: 0.6rem; }
.nav-cta { display: flex; align-items: center; transition: opacity 0.2s; }
.nav-cta:hover { opacity: 0.8; }
.nav-cta img { height: 36px; width: auto; display: block; }

/* Store buttons disabled while apps are in review. Covers the nav buttons
   (all pages) and the hero/pricing badges on the landing page. Remove the
   `coming-soon` class on <body> (base.njk) to re-enable, or git revert. */
body.coming-soon .nav-cta,
body.coming-soon .app-store-badge {
  opacity: 0.5;
  pointer-events: none; /* tapping does nothing */
}
body.coming-soon .nav-cta:hover,
body.coming-soon .app-store-badge:hover { opacity: 0.5; }

/* SECTION SHARED */
section { padding: 6rem 2rem; }
.container { max-width: 760px; margin: 0 auto; }

.section-label {
  font-size: 0.82rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--terracotta); font-weight: 400; margin-bottom: 1.5rem;
  display: block;
}

/* FOOTER */
footer {
  border-top: 0.5px solid var(--border);
  padding: 2rem 2.5rem;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  font-size: 0.8rem; color: var(--ink-faint);
}
footer > span { grid-column: 2; justify-self: center; }
footer > div { grid-column: 3; justify-self: end; }

/* ANIMATIONS */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

/* RESPONSIVE (shared: nav + footer) */
@media (max-width: 680px) {
  nav { padding: 1rem 1.25rem; }
  .nav-ctas { display: none; }
  footer { display: flex; flex-direction: column; gap: 1rem; text-align: center; }
  footer > span, footer > div { grid-column: auto; justify-self: auto; }
}
