/* =====================================================================
   PRIVACY POLICY PAGE — page-level only

   NO COLOUR VALUE APPEARS IN THIS FILE. Every colour refers to a token
   in css/tokens.css, which is the only file on this build permitted to
   hold one. A token painted at an opacity is not a new colour; a new hex
   is, and there is no mechanism here that would produce one.

   TOKEN NAMES USED HERE WERE CHOSEN AGAINST A DRIFT-INVARIANT BASIS,
   NOT AGAINST THE CURRENT tokens.css. That file was in flight while this
   page was authored (2026-08-07), so relying on its live state would
   have made this sheet depend on a value another session was still
   moving. The name set was instead taken from the intersection of three
   sources: names defined in the 8a baseline tokens.css, names defined in
   the current one, and names already consumed by the stylesheets unmoved
   since 8a. Measured: the two token files define an IDENTICAL 56 names —
   the drift moved values and structure, not names — so every name below
   survives it. VALUES DID MOVE, so every contrast figure recorded for
   this page carries the tokens.css hash it was measured against.

   THIS SHEET IS A STUB AT UNIT 2 and carries the page shell only. The
   reading measure, heading scale, list, table and focus treatments land
   in Unit 5 once the document they have to fit exists.
   ===================================================================== */

/* THE DOCUMENT SHELL.

   base.css gives section{padding:110px 34px} and .in{max-width:1180px}.
   The horizontal padding and the outer container are inherited unchanged
   so this page gutters exactly as the other two do; only the top padding
   is reduced, because there is no hero above the first heading and the
   full 110px reads as a dropped page rather than as breathing room. The
   1180px container is deliberately left in place and the reading measure
   is constrained further in, on the text itself, in Unit 5 — a document
   wants a narrow measure, but narrowing the container would also narrow
   the category table, which needs the room. */
.doc-body{
  padding-top:132px;
  padding-bottom:96px;
}

/* THE CATEGORY TABLE — minimum viable at Unit 4, refined in Unit 5.

   THE WRAPPER SCROLLS, THE TABLE DOES NOT SHRINK. A 3-column table
   carrying two columns of prose has a floor below which its columns
   stop being readable and start being one word per line; below that
   width the honest behaviour is to let the reader pan rather than to
   crush the text. min-width holds the table at a legible measure and
   the wrapper takes the overflow.

   overflow-x ON THE WRAPPER, NEVER ON body. base.css already sets
   body{overflow-x:hidden}, which would silently CLIP a table that
   overflowed instead of letting it scroll — the failure would be
   invisible to a document-scroller probe and total for the reader. The
   scroll has to live on a container the table is actually inside. */
.doc-table-wrap{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin:28px 0;
}
.doc-table{
  border-collapse:collapse;
  width:100%;
  min-width:560px;
  font-size:15px;
  line-height:1.55;
}
.doc-table th,
.doc-table td{
  border:1px solid var(--rule-hair);
  padding:10px 12px;
  text-align:left;
  vertical-align:top;
}
.doc-table thead th{
  background:var(--ground-alt);
  color:var(--on-alt);
}
.doc-table tbody th{
  font-weight:700;
  color:var(--on-page);
}

/* =====================================================================
   SOURCE DEVIATION LOG — the client's notice, transcribed as authored

   THE COPY ON THIS PAGE IS THE CLIENT'S OWN LEGAL NOTICE, captured from
   their live site on 2026-08-07 (HTTP 200, 71,374 bytes,
   sha256 ff9c615b...; notice body extracted to 26,080 bytes,
   sha256 c31ece43...). It is transcribed VERBATIM. The items below read
   as errors and are NOT errors in this build — they are what the source
   says. DO NOT REPAIR ANY OF THEM HERE. Each is a client question, and
   several may be a question for the client's counsel rather than for
   the client.

   D1 - ENTITY NAME. The notice names the entity "Health System
        Collaborative, LLC" throughout. The footer on every page of this
        site reads "Longitude Health". Both stand as authored.

   D2 - DATE LABEL. The notice heads with "Last updated October 07,
        2024", while section 10 states that an update "will be indicated
        by an updated 'Revised' date at the top of this Privacy Notice".
        The top of the document says "Last updated", not "Revised". Both
        strings stand as authored. The 2024 date also stands: whether it
        needs refreshing before launch is not a build decision.

   D3 - "THE CONTACT FORM". Section 11 offers "the contact form or
        email privacy@longitudehealth.org". In the source the email is a
        live mailto: and "the contact form" is unlinked prose pointing at
        no target. It is transcribed as unlinked prose. No form is
        invented, and no link is guessed at.

   D4 - ROW L. In the category table, row L "Sensitive personal
        Information" carries an EMPTY Examples cell in the source. The
        cell is rendered empty. Nothing is written into it, and its
        lower-case "personal" is the source's own casing, inconsistent
        with the eleven rows above it.

   D5 - WHAT THE PAGE IS CALLED. The site labels this page "Privacy
        Policy" in the header nav, in the footer and in the route
        (/privacy-policy). The client's document titles itself "PRIVACY
        NOTICE" and calls itself a Privacy Notice throughout, including
        in section 10 and in the summary. Both stand: <title> is
        wayfinding and belongs to the site, so it agrees with the link
        the reader clicked; the h1 is the client's document text and is
        verbatim. Ruled 2026-08-07. Reconciling the two names is the
        client's call.

   D6 - SECTION NUMBERING IS NOT UNIFORM. Sections 1 through 10 separate
        the number from the title with U+00A0 followed by U+0020.
        Section 11 uses a single U+0020. Measured character by character
        on the capture, not inferred from rendering. A non-breaking space
        does not collapse, so section 11's heading is visibly tighter
        than the ten above it. Transcribed as captured.

   D7 - THE UNDERLINE BREAKS MID-WORD. Section 7 marks up "Withdrawing
        your consent:" as <u>Withdrawing</u> y<u>our consent:</u> — the
        rule runs under "Withdrawing", lifts for the single letter "y",
        and resumes for "our consent:". Reproduced exactly.

   D8 - THREE CLOSING QUOTES CURL THE WRONG WAY. In the opening
        paragraph, the parentheticals for "our", "process" and
        "Services" all CLOSE with a left double quotation mark (U+201C)
        rather than a right one (U+201D). Measured across the whole
        notice: 22 left marks against 16 right, and exactly three spans
        close with the wrong glyph. The other sixteen quoted spans are
        correct. Reproduced exactly.

   D9 - THE SUMMARY PROMISES LINKS THAT DO NOT EXIST. Its preamble says
        readers can find detail "by clicking the link following each key
        point", and six key points then end with an unlinked "Learn more
        about ..." cue. In the captured source those cues are plain
        text: the notice body contains 14 anchors in total and all 14
        are accounted for (1 website URL, 1 legacy name="TOC", 11 table
        of contents entries, 1 mailto). None is a "Learn more" link.
        Transcribed as prose. No link is invented or guessed at; if the
        client wants them live, the targets are theirs to specify.

   ---------------------------------------------------------------------
   STRUCTURAL NORMALISATIONS — markup only, not a word changed

   These differ in kind from D1-D9. No text moved; only the element
   carrying it did, and each is covered by the standing instruction to
   author a real document rather than reproduce WordPress output.

   S1 - Two passages authored as sibling <p> after a colon announcing a
        list ("including when you:") are marked up as a <ul>. Same for
        no other passage: the notice's other lists are already lists.

   S2 - "TABLE OF CONTENTS" is a styled <span> inside a <p> in the
        source — 2rem, bold, and a font-family this build does not
        carry. Authored as the h2 it always was. No inline style comes
        across; the styled span would have imported a font stack from
        the client's theme.

   S3 - Ten empty inline wrappers dropped: <strong>&nbsp;</strong>
        trailing six headings and <em>&nbsp;</em> trailing four "In
        Short" lines. Each contains a non-breaking space and no text.
        They render as a trailing space at the end of a block, which is
        invisible, and they defeat a heading-text comparison.

   S4 - The source's <a name="TOC"></a> sits orphaned mid-sentence in
        the summary paragraph, a WordPress editor artifact. It is
        carried as id="TOC" on the table of contents heading so an
        external link to #TOC still arrives somewhere sensible. Nothing
        in the notice links to it.

   D10 - A STRAY PREPOSITION. Under "Will your information be shared
        with anyone else?" the notice reads "Learn more about how we
        disclose personal information to in the section, ...". The "to"
        has no object. Transcribed with the stray word in place.

   S5 - THE TABLE'S CAPTION IS AUTHORED, NOT TRANSCRIBED. The notice
        gives its table no caption and no accessible name. One is
        required, so it is written from the client's own preceding
        sentence: "Categories of personal information we have collected
        in the past twelve (12) months". It is .vh — the sentence above
        the table already says this to a sighted reader, and a visible
        caption would print it twice. This is the only string on the
        page that is not the client's.

   S6 - HEADER CELLS WHERE THE SOURCE HAD NONE. The source table is 13
        rows x 3 columns of <td> with zero <th> and no <thead>; its
        header row is faked with <strong> inside <p> inside <td>. Marked
        up as <thead> with <th scope="col">, and the category column as
        <th scope="row">. The <strong> in the header row is dropped
        rather than kept: <th> is already bold and already announced as
        a header, so retaining it would add emphasis the source only
        used to stand in for an element it never reached for. The <p>
        wrapper inside each cell is dropped — one paragraph per cell
        carries no structure a cell does not already have.

   S7 - FIXED PIXEL WIDTHS DROPPED. Every cell carried width="246",
        "377" or "109" as an HTML attribute. Presentational, from the
        client's editor, and fixed pixel columns are precisely what
        fails on a narrow viewport. Column behaviour is set in CSS.

   S8 - SIX UNNUMBERED HEADINGS SIT AT THE SAME LEVEL AS THE NUMBERED
        SECTIONS. Sources of Personal Information, How We Use and Share
        Personal Information, Your Rights, How to Exercise Your Rights,
        Request Verification, and California "Shine The Light" Law are
        authored as h2 between section 9 and section 10, so they read as
        subsections of 9 while being siblings of it, and none of them
        appears in the 11-entry table of contents. Demoting them to h3
        was considered and ruled against 2026-08-07: in a legal notice
        the heading hierarchy is the client's structure and re-parenting
        changes the document's apparent organisation. THIS IS THE
        SOURCE'S SHAPE, NOT A DEFECT INTRODUCED HERE. Whether those six
        belong under section 9, and whether they belong in the table of
        contents, is a client question.

   Any further deviation found is added here rather than corrected in
   place.
   ===================================================================== */
