/* Shared styling for the public legal pages. Deliberately plain: App Review opens these on a
   phone, and a policy nobody can read on a phone is a policy that gets flagged. */
:root {
  --ink: #16203A;
  --subtle: #5B6478;
  --bg: #F4F4F7;
  --card: #FFFFFF;
  --rule: #E6E6EC;
  --accent: #2DD4A7;
}

@media (prefers-color-scheme: dark) {
  :root {
    --ink: #F2F2F4;
    --subtle: #A0A4AE;
    --bg: #0B0B0C;
    --card: #17171A;
    --rule: #2A2A2E;
  }
}

* { box-sizing: border-box; }

body {
  margin: 0;
  padding: 32px 20px 80px;
  background: var(--bg);
  color: var(--ink);
  font: 17px/1.65 -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  -webkit-text-size-adjust: 100%;
}

main {
  max-width: 720px;
  margin: 0 auto;
  background: var(--card);
  border-radius: 20px;
  padding: 36px 28px 44px;
}

h1 { font-size: 30px; line-height: 1.2; margin: 0 0 6px; letter-spacing: -0.02em; }
h2 { font-size: 20px; margin: 34px 0 10px; letter-spacing: -0.01em; }
h3 { font-size: 17px; margin: 22px 0 6px; }

.updated { color: var(--subtle); font-size: 15px; margin: 0 0 28px; }

p, li { color: var(--ink); }
ul { padding-left: 22px; }
li { margin-bottom: 8px; }

hr { border: 0; border-top: 1px solid var(--rule); margin: 34px 0; }

a { color: #2F6BFF; }
@media (prefers-color-scheme: dark) { a { color: #7FA9FF; } }

table { width: 100%; border-collapse: collapse; margin: 14px 0; font-size: 16px; display: block; overflow-x: auto; }
th, td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--rule); vertical-align: top; }
th { font-weight: 600; }

footer { max-width: 720px; margin: 22px auto 0; color: var(--subtle); font-size: 15px; text-align: center; }
footer a { margin: 0 8px; }

.nb {
  background: rgba(45, 212, 167, 0.10);
  border-left: 3px solid var(--accent);
  padding: 12px 16px;
  border-radius: 0 10px 10px 0;
  margin: 18px 0;
}

/* ── Landing page only ─────────────────────────────────────────────────────
   The legal pages above are deliberately plain. This part is the shop window,
   and it is the only place that departs from that. It reuses the same tokens
   so a visitor moving from the pitch to the privacy policy doesn't feel like
   they've landed on a different company's site. */

.wide { max-width: 980px; background: none; padding: 0; }
.wide section { background: var(--card); border-radius: 20px; padding: 34px 28px; margin-bottom: 18px; }

.hero { text-align: center; padding: 48px 28px 40px; }
.hero img.mark { width: 88px; height: 88px; border-radius: 20px; display: block; margin: 0 auto 20px; }
.hero h1 { font-size: 40px; line-height: 1.1; margin-bottom: 14px; }
.hero .lede { font-size: 19px; color: var(--subtle); max-width: 30em; margin: 0 auto; }

.badge {
  display: inline-block; margin-top: 26px; padding: 12px 22px;
  border: 1px solid var(--rule); border-radius: 12px;
  color: var(--subtle); font-size: 15px; font-weight: 600;
}

/* Phone screenshots. `object-fit: contain` keeps the aspect ratio honest —
   a stretched screenshot of your own app is a bad first impression. */
.shots { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 22px; margin-top: 26px; }
.shot img { width: 100%; height: auto; border-radius: 16px; border: 1px solid var(--rule); display: block; }
.shot p { font-size: 15px; color: var(--subtle); margin: 10px 2px 0; }
.shot strong { color: var(--ink); display: block; font-size: 16px; }

.cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.cols h3 { margin-top: 0; }

.price { font-size: 15px; color: var(--subtle); }
.price b { color: var(--ink); font-size: 17px; }

.tick { list-style: none; padding-left: 0; }
.tick li { padding-left: 26px; position: relative; }
.tick li::before {
  content: "✓"; position: absolute; left: 0; color: var(--accent); font-weight: 700;
}

.quiet { color: var(--subtle); font-size: 15px; }

@media (max-width: 560px) {
  .hero { padding: 34px 20px 30px; }
  .hero h1 { font-size: 31px; }
  .hero .lede { font-size: 17px; }
  .wide section { padding: 26px 20px; }
}
