/* Lino Rides website v2: long-form pages (privacy, terms) and the 404 page. Needs site.css. */

.doc-head { position: relative; isolation: isolate; overflow: hidden; color: #fff; --focus: #fff;
  padding: calc(var(--header-h) + clamp(40px, 7vw, 88px)) 0 clamp(48px, 7vw, 88px);
  background: radial-gradient(60% 80% at 90% 0%, rgba(40, 120, 255, 0.9), rgba(40, 120, 255, 0) 65%), radial-gradient(60% 80% at 0% 100%, rgba(6, 26, 68, 0.8), rgba(6, 26, 68, 0) 70%), linear-gradient(165deg, #0066FF 0%, #0A3CA0 100%); }
.doc-head::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: url("/assets/img/grain.svg"); opacity: 0.1; mix-blend-mode: soft-light; }
.doc-head h1 { font-weight: 800; font-size: clamp(2.75rem, 9vw, 5.5rem); line-height: 0.98; letter-spacing: -0.04em; text-wrap: balance; }
.doc-head p { margin-top: 18px; max-width: 34em; font-size: clamp(1.0625rem, 2vw, 1.25rem); color: #fff; text-wrap: pretty; }
.doc-head .doc-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 28px; font-size: 0.9375rem; font-weight: 600; }
.doc-meta span { padding: 8px 16px; border-radius: 999px; background: rgba(6, 26, 68, 0.4); border: 1px solid rgba(255, 255, 255, 0.3); color: #fff; }

.doc-wrap { display: grid; grid-template-columns: minmax(0, 1fr); gap: 40px; padding-block: clamp(40px, 6vw, 88px); }
.toc { padding: 24px; border-radius: 28px; background: var(--surface); align-self: start; }
.toc h2 { font-size: 1.125rem; letter-spacing: -0.01em; line-height: 1.2; }
.toc ol { margin-top: 14px; display: grid; gap: 2px; counter-reset: toc; }
.toc li { counter-increment: toc; }
.toc a { display: block; padding: 6px 0; font-size: 0.9688rem; font-weight: 600; text-decoration: none; color: var(--ink); }
.toc a::before { content: counter(toc) ". "; color: var(--grey); font-weight: 400; }
.toc a:hover { color: var(--blue-dark); text-decoration: underline; }
@media (min-width: 980px) {
  .doc-wrap { grid-template-columns: 300px minmax(0, 1fr); gap: clamp(48px, 7vw, 96px); }
  .toc { position: sticky; top: calc(var(--header-h) + 24px); max-height: calc(100svh - var(--header-h) - 48px); overflow-y: auto; }
}

.prose { min-width: 0; max-width: 46rem; counter-reset: sec; }
.prose section { scroll-margin-top: calc(var(--header-h) + 16px); }
.prose section > h2::before { counter-increment: sec; content: counter(sec) ". "; color: var(--blue); }
.prose section + section { margin-top: 56px; padding-top: 48px; border-top: 1px solid var(--border); }
.prose h2 { font-size: clamp(1.625rem, 3.2vw, 2.125rem); letter-spacing: -0.03em; line-height: 1.12; }
.prose h3 { margin-top: 28px; font-size: 1.1875rem; }
.prose p, .prose ul, .prose ol { margin-top: 14px; color: #263654; text-wrap: pretty; }
.prose ul { list-style: disc; padding-left: 1.3em; display: grid; gap: 8px; }
.prose ol.num { list-style: decimal; padding-left: 1.4em; display: grid; gap: 8px; }
.prose li::marker { color: var(--blue); }
.prose strong { font-weight: 600; color: var(--ink); }
.callout { margin-top: 20px; padding: 20px 22px; border-radius: 22px; background: var(--blue-tint); color: var(--ink); }
.callout p { margin: 0; color: var(--ink); }
.table-wrap { margin-top: 18px; overflow-x: auto; border: 1px solid var(--border); border-radius: 20px; }
.table-wrap:focus-visible { outline-offset: 2px; }
table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: 0.9688rem; }
th, td { padding: 14px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--border); }
th { background: var(--surface); font-weight: 600; color: var(--ink); }
td { color: #263654; }
tr:last-child td { border-bottom: 0; }
@media (max-width: 639px) {
  .table-wrap { overflow: visible; border: 0; border-radius: 0; }
  table { min-width: 0; display: block; }
  thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  tbody { display: grid; gap: 12px; }
  tr { display: block; padding: 6px 16px; border: 1px solid var(--border); border-radius: 20px; }
  td { display: block; padding: 8px 0; border: 0; }
  td + td { border-top: 1px solid var(--border); }
  td::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: 0.8125rem; font-weight: 600; color: var(--grey); }
}

/* ---------- 404 ---------- */
.lost { position: relative; isolation: isolate; overflow: hidden; min-height: 100svh; display: grid; align-items: center; color: #fff; --focus: #fff; padding: calc(var(--header-h) + 3rem) 0 4rem;
  background: radial-gradient(60% 60% at 90% 0%, rgba(40, 120, 255, 0.9), rgba(40, 120, 255, 0) 65%), linear-gradient(165deg, #0066FF 0%, #0A3CA0 100%); }
.lost-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: url("/assets/img/grain.svg"); opacity: 0.1; mix-blend-mode: soft-light; }
.lost h1 { font-weight: 800; font-size: clamp(3.5rem, 15vw, 9rem); line-height: 0.95; letter-spacing: -0.045em; }
.lost p { margin-top: 20px; font-size: 1.25rem; color: #fff; max-width: 28em; }
.lost .btn { margin-top: 32px; }
.lost-page .site-footer { margin-top: 0; }
