/* The front page. Tokens and most classes come from application.css, so it stays the same product
   as the demos: content on the page, one left edge, rules between sections. Same rules apply: no
   pills, rounded cards, coloured card edges or pastel card backgrounds. */
.lp .masthead { position: static; }
.lp .demo-banner { top: 0; }

.lp-intro { padding: 2rem 0 2.25rem; }
.lp-intro h1 { font-family: var(--font-display); font-size: clamp(1.7rem, 2.6vw, 2.25rem); font-weight: 600; letter-spacing: -0.012em; line-height: 1.12; text-wrap: balance; margin-bottom: 0.85rem; }
.lp-text { display: grid; gap: 0.6rem; max-width: 68ch; font-size: 1.02rem; color: var(--ink-2); }
.lp-contact { font-style: normal; color: var(--ink); margin-top: 0.35rem; }
.lp-contact a { color: inherit; font-weight: 600; }
.lp a[href^="tel:"] { white-space: nowrap; }
.lp-demo { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin-top: 0.6rem; font-size: 0.95rem; }
.lp-text a.lp-demo-link { display: inline-flex; align-items: center; min-height: 2.6rem; padding: 0 1.15rem; background: var(--ink); color: var(--surface); font-weight: 600; text-decoration: none; white-space: nowrap; }
.lp-demo-link::after { content: "→"; margin-left: 0.55rem; }
.lp-demo-link:hover, .lp-demo-link:focus-visible { opacity: 0.85; }
.lp-page p.lp-try { margin-top: 0.6rem; }
.lp-try a { color: var(--ink); font-weight: 600; text-underline-offset: 0.2em; }
.lp-try a::after { content: " →"; }
.lp-text a { color: inherit; }

.lp-columns { display: grid; grid-template-columns: minmax(0, 62ch) minmax(18rem, 26rem); justify-content: space-between; align-items: start; gap: 2rem clamp(2rem, 5vw, 5rem); }
.lp-contact-form { scroll-margin-top: 1rem; }
.lp-contact-form form { display: grid; gap: 0.7rem; margin-top: 0.5rem; }
.lp-field { display: grid; gap: 0.2rem; font-size: 0.85rem; font-weight: 600; color: var(--ink); }
.lp-field .field_with_errors { display: contents; }
.lp-field input, .lp-field textarea { width: 100%; font: inherit; font-size: 1rem; font-weight: 400; color: var(--ink); background: var(--surface); border: 1px solid var(--baseline); border-radius: 0; padding: 0.42rem 0.55rem; }
.lp-field textarea { min-height: 4.6rem; resize: vertical; }
.lp-field input:focus, .lp-field textarea:focus { outline: 2px solid var(--ink); outline-offset: -1px; border-color: var(--ink); }
.lp-field-note { font-weight: 400; color: var(--muted); }
.lp-submit { justify-self: start; background: var(--ink); color: var(--surface); border: 0; border-radius: 0; padding: 0.5rem 1.1rem; font-weight: 600; cursor: pointer; }
.lp-submit:hover, .lp-submit:focus-visible { opacity: 0.85; }
.lp-privacy { font-size: 0.78rem; color: var(--muted); }
.lp-errors { color: var(--bad-ink); font-size: 0.9rem; list-style: none; padding: 0; margin: 0; }
.lp-sent { margin-top: 0.5rem; color: var(--ink); }
.lp-hidden { position: absolute; left: -9999px; }

/* The pages: one per row, name and a line on the left, the screenshot on the right. One left edge. */
.lp-section-title { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; letter-spacing: -0.01em; margin: 0 0 0.25rem; }
.lp-pages, .lp-custom { padding-top: 1.1rem; border-top: 2px solid var(--ink); }
.lp-page { display: grid; grid-template-columns: minmax(13rem, 19rem) minmax(0, 1fr); gap: 1rem clamp(1.5rem, 3vw, 3rem); align-items: start; margin: 0; padding: 1.6rem 0; border-bottom: 1px solid var(--grid); scroll-margin-top: 1rem; }
.lp-page:last-child { border-bottom: 0; }
.lp-page h3 { font-family: var(--font-display); font-size: 1.1rem; font-weight: 650; margin: 0 0 0.3rem; }
.lp-page p { margin: 0; color: var(--ink-2); max-width: 40ch; }
.lp-page img { display: block; width: 100%; height: auto; border: 1px solid var(--baseline); background: var(--surface); }
.lp-custom { margin-top: 1rem; padding-bottom: 2.5rem; }
.lp-custom .lp-text { margin-top: 0.5rem; }

@media (max-width: 900px) {
  .lp-columns { grid-template-columns: minmax(0, 1fr); }
  .lp-page { grid-template-columns: minmax(0, 1fr); }
  .lp-page p { max-width: 62ch; }
}

@media (max-width: 760px) {
  .lp-intro { padding: 1.4rem 0; }
}
