:root {
  --bg: #ffffff; --fg: #1a1c2c; --muted: #5a607a;
  --accent: #2f6df0; --card: #f5f7fb; --border: #e3e8f0;
  --maxw: 72rem;
}
@media (prefers-color-scheme: dark) {
  :root { --bg:#0f1220; --fg:#eef1f8; --muted:#a3abc4; --card:#171a2b; --border:#2a2f47; }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font: 16px/1.6 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
a { color: var(--accent); }
.skip-link { position:absolute; left:-999px; }
.skip-link:focus { left:1rem; top:1rem; background:var(--accent); color:#fff; padding:.5rem 1rem; border-radius:.5rem; z-index:10; }
main, .site-header, .site-footer { max-width: var(--maxw); margin: 0 auto; padding: 1.25rem; }
.site-header { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.brand { display:flex; align-items:center; gap:.5rem; font-weight:700; text-decoration:none; color:var(--fg); }
.site-nav { display:flex; gap:1rem; align-items:center; margin-left:auto; flex-wrap:wrap; }
.site-nav a { color:var(--fg); text-decoration:none; }
.site-nav a:hover { color:var(--accent); }
.site-nav .cta { background:var(--accent); color:#fff; padding:.4rem .9rem; border-radius:.6rem; }
.lang-switcher a { color:var(--muted); margin:0 .15rem; font-size:.9rem; }
.lang-switcher a[aria-current] { color:var(--accent); font-weight:700; }
.nav-toggle { display:none; background:none; border:0; font-size:1.5rem; color:var(--fg); cursor:pointer; }
.hero { text-align:center; padding:3rem 1rem; }
.hero h1 { font-size:clamp(2rem,5vw,3.2rem); margin:.2em 0; }
.hero p { color:var(--muted); font-size:1.2rem; max-width:40rem; margin:1rem auto; }
.btn { display:inline-block; background:var(--accent); color:#fff; padding:.7rem 1.4rem; border-radius:.7rem; text-decoration:none; margin:.3rem; }
.btn.secondary { background:var(--card); color:var(--fg); border:1px solid var(--border); }
.hero p.hero-link { margin:.6rem 0 0; font-size:.95rem; }
.hero p.hero-link a { text-decoration:underline; }
.hero p.hero-proof { color:var(--muted); font-size:.85rem; letter-spacing:.01em; margin-top:1.4rem; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:1rem; }
.card { background:var(--card); border:1px solid var(--border); border-radius:1rem; padding:1.4rem; }
.card h3 { margin-top:0; }
.card > a { display:inline-block; margin-top:.4rem; font-size:.92rem; }
.section { padding:2.5rem 0; }
.section h2 { font-size:2rem; }
.steps { list-style:none; counter-reset:step; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(15rem,1fr)); gap:1.2rem; }
.steps li { counter-increment:step; background:var(--card); border:1px solid var(--border); border-radius:1rem; padding:1.4rem; position:relative; }
.steps li::before {
  content:counter(step); display:flex; align-items:center; justify-content:center;
  width:1.8rem; height:1.8rem; border-radius:50%; background:var(--accent); color:#fff;
  font-weight:700; font-size:.9rem; margin-bottom:.7rem;
}
.steps h3 { margin:0 0 .4rem; font-size:1.1rem; }
.steps p { margin:0; color:var(--muted); }
details { background:var(--card); border:1px solid var(--border); border-radius:.7rem; padding:1rem 1.2rem; margin:.6rem 0; }
details summary { font-weight:600; cursor:pointer; }
.price-table { display:grid; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); gap:1.2rem; }
.price { font-size:1.6rem; font-weight:700; margin:.2rem 0; }
.store-badges img { height:48px; margin:.4rem; }
/* App screenshots. Sources are light-UI captures, so the frame keeps a white
   backdrop in both colour schemes and leans on the border for separation. */
.shots { display:grid; grid-template-columns:repeat(auto-fit,minmax(14rem,1fr)); gap:1.8rem; align-items:start; }
.shot { margin:0; }
.shot img { display:block; width:100%; max-width:19rem; height:auto; margin:0 auto; background:#fff; border:1px solid var(--border); border-radius:1.1rem; box-shadow:0 6px 24px rgb(0 0 0 / 12%); }
.shot.detail img { max-width:26rem; border-radius:.8rem; }
.shot figcaption { max-width:22rem; margin:.9rem auto 0; color:var(--muted); font-size:.95rem; text-align:center; }
.blog-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(18rem,1fr)); gap:1rem; }
article.post { max-width:44rem; }
article.post h1 { font-size:2.2rem; }
.post-meta { color:var(--muted); font-size:.9rem; }
.breadcrumbs { font-size:.85rem; color:var(--muted); }
.breadcrumbs a { color:var(--muted); }
.site-footer { border-top:1px solid var(--border); margin-top:2rem; }
.site-footer nav { display:flex; gap:1rem; flex-wrap:wrap; }
.site-footer a { color:var(--muted); text-decoration:none; }
.copyright { color:var(--muted); font-size:.85rem; }
@media (max-width:640px) {
  .nav-toggle { display:block; margin-left:auto; }
  .site-nav { display:none; width:100%; flex-direction:column; align-items:flex-start; }
  .site-nav.open { display:flex; }
}
