/* ========================================================
   HallTicket — Legal pages (Privacy / Terms)
   Editorial · paper-and-ink · matches main site design
   ======================================================== */

:root {
  --ink: oklch(0.22 0.03 260);
  --ink-2: oklch(0.32 0.04 260);
  --paper: oklch(0.975 0.008 85);
  --paper-2: oklch(0.955 0.012 82);
  --rule: oklch(0.86 0.015 80);
  --muted: oklch(0.55 0.015 260);
  --saffron: oklch(0.64 0.16 52);
  --serif: 'Instrument Serif', 'Times New Roman', serif;
  --sans: 'Geist', ui-sans-serif, system-ui, sans-serif;
  --mono: 'Geist Mono', ui-monospace, monospace;
}

* { box-sizing: border-box; }
html, body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
html { scroll-behavior: smooth; }
a { color: inherit; }
.wrap { max-width: 1280px; margin: 0 auto; padding: 0 48px; }

/* ---------- Nav (matches main site) ---------- */
.nav { position: sticky; top: 0; z-index: 50; background: color-mix(in oklch, var(--paper) 88%, transparent); backdrop-filter: blur(10px); border-bottom: 1px solid var(--rule); }
.nav .wrap { display: flex; align-items: center; justify-content: space-between; height: 64px; }
.nav .links { display: flex; gap: 28px; font-size: 14px; color: var(--ink-2); }
.nav .links a { text-decoration: none; transition: color 0.15s; }
.nav .links a:hover { color: var(--ink); }
.logoE { font-family: var(--serif); font-weight: 400; font-style: italic; letter-spacing: -0.02em; line-height: 0.9; position: relative; display: inline-block; padding-bottom: 8px; font-size: 28px; }
.logoE::after { content: ""; position: absolute; left: 0; right: 30%; bottom: 2px; border-bottom: 1.5px solid currentColor; }
.logoE::before { content: ""; position: absolute; right: 28%; bottom: -1px; width: 5px; height: 5px; background: var(--saffron); border-radius: 50%; transform: translateY(50%); }

.btn { display: inline-flex; align-items: center; gap: 8px; background: var(--ink); color: var(--paper); padding: 10px 18px; border-radius: 2px; font-size: 14px; text-decoration: none; font-weight: 500; letter-spacing: -0.005em; border: 1px solid var(--ink); transition: transform 0.12s, background 0.15s; }
.btn:hover { background: oklch(0.18 0.03 260); transform: translateY(-1px); }
.btn .arr { font-family: var(--mono); opacity: 0.8; }

.eyebrow { font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }

/* ---------- Doc hero ---------- */
.doc-hero { padding: 80px 0 56px; border-bottom: 1px solid var(--rule); }
.doc-hero .wrap { display: grid; grid-template-columns: 200px 1fr; gap: 40px; align-items: end; }
.doc-hero .ix { font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.doc-hero h1 { font-family: var(--serif); font-weight: 400; font-size: 92px; line-height: 0.96; letter-spacing: -0.025em; margin: 0; text-wrap: balance; max-width: 16ch; }
.doc-hero h1 em { font-style: italic; color: var(--ink-2); }
.doc-hero .lede { font-family: var(--serif); font-size: 24px; line-height: 1.35; color: var(--ink-2); margin-top: 22px; max-width: 52ch; }
.doc-hero .meta { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--rule); }
.doc-hero .meta span { font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.doc-hero .meta strong { color: var(--ink); font-weight: 500; }

/* ---------- Document body / two-column with sticky TOC ---------- */
.doc-body { padding: 64px 0 80px; }
.doc-body .wrap { display: grid; grid-template-columns: 240px 1fr; gap: 80px; align-items: start; }

.toc { position: sticky; top: 96px; }
.toc .lbl { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
.toc ol { list-style: none; counter-reset: toc; padding: 0; margin: 0; display: flex; flex-direction: column; }
.toc ol li { counter-increment: toc; border-top: 1px solid var(--rule); }
.toc ol li:last-child { border-bottom: 1px solid var(--rule); }
.toc ol li a { display: grid; grid-template-columns: 36px 1fr; gap: 8px; align-items: baseline; padding: 12px 4px; font-size: 13px; color: var(--ink-2); text-decoration: none; transition: color 0.15s, background 0.15s; }
.toc ol li a::before { content: counter(toc, decimal-leading-zero); font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em; color: var(--saffron); }
.toc ol li a:hover { color: var(--ink); background: var(--paper-2); }

/* ---------- Sections ---------- */
.doc-section { padding: 32px 0 48px; border-bottom: 1px solid var(--rule); display: grid; grid-template-columns: 80px 1fr; gap: 28px; }
.doc-section:last-child { border-bottom: 0; }
.doc-section .num { font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em; color: var(--saffron); padding-top: 8px; }
.doc-section h2 { font-family: var(--serif); font-weight: 400; font-size: 36px; line-height: 1.05; letter-spacing: -0.015em; margin: 0 0 18px; text-wrap: balance; max-width: 22ch; }
.doc-section h2 em { font-style: italic; color: var(--ink-2); }
.doc-section p { font-size: 15.5px; color: var(--ink-2); line-height: 1.7; margin: 0 0 14px; max-width: 64ch; }
.doc-section p:last-child { margin-bottom: 0; }
.doc-section p strong { color: var(--ink); font-weight: 600; }
.doc-section ul, .doc-section ol { padding: 0; margin: 14px 0 18px; list-style: none; max-width: 64ch; }
.doc-section ul li, .doc-section ol li { position: relative; padding-left: 24px; font-size: 15px; color: var(--ink-2); line-height: 1.7; margin-bottom: 8px; }
.doc-section ul li::before { content: "—"; position: absolute; left: 0; color: var(--saffron); font-weight: 500; }
.doc-section ol { counter-reset: olc; }
.doc-section ol li { counter-increment: olc; }
.doc-section ol li::before { content: counter(olc) "."; position: absolute; left: 0; color: var(--saffron); font-family: var(--mono); font-size: 12px; top: 4px; }
.doc-section li strong { color: var(--ink); font-weight: 600; }

/* Pull-quote / callout (the hero-ticket-style box) */
.callout { margin: 22px 0; padding: 22px 26px; background: var(--paper-2); border: 1px solid var(--rule); border-left: 3px solid var(--saffron); border-radius: 2px; max-width: 64ch; position: relative; }
.callout .lab { font-family: var(--mono); font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--saffron); margin-bottom: 8px; }
.callout p { font-family: var(--serif); font-style: italic; font-size: 19px; line-height: 1.45; color: var(--ink); margin: 0; max-width: none; }
.callout p strong { font-style: normal; }

/* Data tables */
.tbl { width: 100%; border-collapse: collapse; margin: 18px 0; max-width: 64ch; font-size: 14px; }
.tbl thead th { text-align: left; font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); padding: 10px 14px 10px 0; border-bottom: 1.5px solid var(--ink); font-weight: 500; }
.tbl tbody td { padding: 14px 14px 14px 0; border-bottom: 1px solid var(--rule); color: var(--ink-2); vertical-align: top; line-height: 1.55; }
.tbl tbody tr:last-child td { border-bottom: 1px solid var(--ink); }
.tbl tbody td:first-child { font-family: var(--serif); font-style: italic; font-size: 17px; color: var(--ink); padding-right: 22px; min-width: 9em; }
.tbl tbody td strong { color: var(--ink); font-weight: 600; }

/* Highlight summary cards (terms only) */
.summary { margin: 0 0 16px; }
.summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.s-card { padding: 22px; background: var(--paper-2); border: 1px solid var(--rule); border-radius: 2px; }
.s-card .lab { font-family: var(--mono); font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--saffron); margin-bottom: 10px; }
.s-card h4 { font-family: var(--serif); font-weight: 400; font-size: 22px; line-height: 1.1; margin: 0 0 8px; letter-spacing: -0.01em; }
.s-card p { font-size: 13.5px; color: var(--ink-2); line-height: 1.55; margin: 0; max-width: none; }

/* Contact box */
.contact { margin: 56px 0 0; padding: 36px 40px; background: var(--ink); color: var(--paper); display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; }
.contact .lab { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: oklch(0.72 0.01 80); margin-bottom: 8px; }
.contact h3 { font-family: var(--serif); font-weight: 400; font-style: italic; font-size: 36px; line-height: 1.05; letter-spacing: -0.015em; margin: 0 0 8px; }
.contact p { font-size: 14px; color: oklch(0.85 0.01 80); margin: 0; max-width: 56ch; }
.contact p a { color: var(--paper); border-bottom: 1px solid oklch(0.55 0.05 260); padding-bottom: 1px; text-decoration: none; }
.contact p a:hover { border-color: var(--saffron); color: var(--saffron); }
.contact .btn { background: var(--paper); color: var(--ink); border-color: var(--paper); white-space: nowrap; }
.contact .btn:hover { background: var(--saffron); color: var(--ink); border-color: var(--saffron); }

/* ---------- Footer (matches main site) ---------- */
footer { padding: 64px 0 36px; background: var(--ink); color: oklch(0.85 0.01 80); border-top: 1px solid oklch(0.3 0.03 260); }
footer .wrap { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 48px; }
footer .logoE { color: var(--paper); }
footer h4 { font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: oklch(0.72 0.01 80); margin: 0 0 16px; font-weight: 500; }
footer ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
footer ul a { color: oklch(0.85 0.01 80); text-decoration: none; }
footer ul a:hover { color: var(--paper); }
footer .about p { font-size: 14px; color: oklch(0.85 0.01 80); max-width: 36ch; margin: 14px 0 0; }
footer .legal { border-top: 1px solid oklch(0.3 0.03 260); margin-top: 48px; padding-top: 22px; display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: oklch(0.65 0.02 260); }
footer .legal a { color: oklch(0.85 0.01 80); text-decoration: none; transition: color 0.15s; }
footer .legal a:hover { color: var(--saffron); }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .doc-body .wrap { grid-template-columns: 1fr; gap: 48px; }
  .toc { position: relative; top: 0; padding: 18px; background: var(--paper-2); border: 1px solid var(--rule); }
  .toc ol { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
  .toc ol li:nth-child(2) { border-top: 1px solid var(--rule); }
  .summary-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
  .wrap { padding: 0 24px; }
  .nav .links { display: none; }
  .doc-hero { padding: 56px 0 40px; }
  .doc-hero .wrap { grid-template-columns: 1fr; gap: 12px; }
  .doc-hero h1 { font-size: 56px; }
  .doc-hero .lede { font-size: 19px; margin-top: 16px; }
  .doc-section { grid-template-columns: 1fr; gap: 8px; padding: 28px 0 36px; }
  .doc-section h2 { font-size: 28px; }
  .summary-grid { grid-template-columns: 1fr; }
  .contact { grid-template-columns: 1fr; padding: 28px 24px; }
  .contact h3 { font-size: 28px; }
  .toc ol { grid-template-columns: 1fr; }
  footer .wrap { grid-template-columns: 1fr 1fr; gap: 32px; }
  .tbl { font-size: 13px; }
  .tbl thead { display: none; }
  .tbl tbody td { display: block; padding: 4px 0; border: 0; }
  .tbl tbody tr { display: block; padding: 14px 0; border-bottom: 1px solid var(--rule); }
  .tbl tbody td:first-child { font-size: 19px; padding-bottom: 6px; }
}
</content>
</invoke>