/* Landing page. Uses dashboard.css tokens so the marketing surface and the product do not look
   like two different things. */
.landing { max-width: 860px; margin: 0 auto; padding: clamp(1.5rem, 1rem + 2vw, 3.5rem); }

.hero { padding: clamp(1rem, 2vw, 2.5rem) 0 clamp(1.5rem, 3vw, 3rem); }
.hero .mark { display: block; width: 10px; height: 10px; border-radius: 50%; background: var(--open);
  box-shadow: 0 0 0 4px color-mix(in oklch, var(--open) 22%, transparent); margin-bottom: 22px; }
.hero h1 { font-size: clamp(30px, 3.4vw + 14px, 46px); line-height: 1.08; letter-spacing: -0.03em; max-width: 22ch; }
.hero .lede { margin-top: 16px; max-width: 62ch; color: var(--text-dim); font-size: clamp(15px, 0.5vw + 14px, 17px); line-height: 1.6; }

.cta, .foot { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 26px; }
.button {
  display: inline-block; padding: 11px 18px; border-radius: 10px; text-decoration: none;
  border: 1px solid var(--edge-strong); color: var(--text);
  font: 600 13.5px/1 var(--sans); letter-spacing: 0.01em;
  transition: background 140ms var(--ease), border-color 140ms var(--ease);
}
.button:hover { background: var(--surface-raised); }
.button.primary { background: var(--open); color: var(--bg); border-color: transparent; }
.button.primary:hover { filter: brightness(1.08); }

main section { padding: clamp(1.5rem, 3vw, 2.75rem) 0; border-top: 1px solid var(--edge); }
main h2 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--text-faint); margin-bottom: 16px; }
main h3 { font-size: 15px; margin-bottom: 6px; }
main p, main li { color: var(--text-dim); font-size: 14px; line-height: 1.6; }

.grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.how ol, .honest ul { margin: 0 0 0 20px; padding: 0; display: grid; gap: 10px; }

/* The sample board. Deliberately styled as a specimen — inset, tagged, and slightly held back
   from the page — so it cannot be mistaken for live data. */
.preview-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.preview-head h2 { margin-bottom: 0; }
.tag.sample {
  font: 600 10px/1 var(--sans); text-transform: uppercase; letter-spacing: 0.08em;
  padding: 5px 8px; border-radius: 999px;
  color: var(--stale); border: 1px solid color-mix(in oklch, var(--stale) 45%, transparent);
  background: color-mix(in oklch, var(--stale) 12%, transparent);
}
.preview .note { margin: 10px 0 16px; color: var(--text-faint); font-size: 13px; max-width: 62ch; }

.fake-board { border: 1px solid var(--edge); border-radius: var(--radius); background: var(--surface); overflow: hidden; opacity: 0.92; }
.fake-summary { display: flex; gap: 26px; flex-wrap: wrap; padding: 16px 18px; border-bottom: 1px solid var(--edge); }
.fake-stat b { display: block; font-size: 24px; font-variant-numeric: tabular-nums; }
.fake-stat span { font-size: 11px; text-transform: uppercase; letter-spacing: 0.07em; color: var(--text-faint); }

.fake-rows { list-style: none; margin: 0; padding: 0; }
.fake-rows li {
  display: grid; grid-template-columns: 1.4fr 0.8fr 1.2fr auto; gap: 12px; align-items: baseline;
  padding: 12px 18px; border-bottom: 1px solid var(--edge); font-size: 13.5px;
}
.fake-rows li:last-child { border-bottom: none; }
.fake-rows .city { font-weight: 600; }
.fake-rows .days, .fake-rows .date { color: var(--text-faint); font-family: var(--mono); font-size: 12.5px; }
.fake-rows .ago { color: var(--text-faint); font-size: 11.5px; text-align: right; }
.fake-rows li.open { background: var(--open-bg); }
.fake-rows li.open .city, .fake-rows li.open .days { color: var(--open); }

@media (max-width: 560px) {
  .fake-rows li { grid-template-columns: 1fr auto; }
  .fake-rows .date { display: none; }
}
