/* legal.css: the three legal documents, /privacy-policy/, /terms-and-conditions/ and /aggregator-agreement/.
   Numbers are the measured bboxes from reference/<slug> (1440 and 390). Mobile first; the source switches its
   heading line boxes at 768px.
   Every selector starts with `.legal`: the file's own rules rely on that shared prefix for their relative
   specificity (main.css has no legal rules). */

/* Privacy policy and terms paint in "Circular Std Source" (main.css section 1): the TrueType Book cut the source
   served, with 500 also painting Book and 600+ on the real Bold and Black cuts. */
:is(.page-privacy-policy, .page-terms-and-conditions) { --font-sans: "Circular Std Source", "Helvetica Neue", Arial, sans-serif; }

/* ---- Shared frame: 48px (phones 32px) section padding, 1140px column at x=150 of 1440, x=16 on phones ---- */
.legal { padding: 32px 0; }
.legal .legal__doc { --gutter: 16px; display: flow-root; }
.legal .legal__title {
  margin: 8px 0 16px;
  font: 700 30px/36px var(--font-alt); color: var(--c-navy);
  text-align: left;
}
@media (min-width: 768px) {
  .legal { padding: 48px 0; }
  .legal .legal__doc { --gutter: inherit; }
  .legal .legal__title { font-size: 40px; line-height: 48px; }
}

/* ==========================================================================
   Privacy policy and terms (Google-Docs / Word pastes): 16/30 grey justified blocks, a uniform 10pt (13.33px)
   gap, 48px per nesting level with the clause number hanging back to the column edge, and headings whose
   16px text sits in the line box of the source tag (h1 48/36, h2 38.4/28.8, h3 33.6, h4 28.8)
   ========================================================================== */
.legal .legal__doc--policy > * {
  margin: 0 0 13.33px;
  padding-left: calc(var(--lv, 0) * 48px);
  font: 400 16px/30px var(--font-sans); color: var(--c-text-muted);
  text-align: justify;
}
.legal .legal__doc--policy > .legal__title {
  margin: 8px 0 16px; padding-left: 0;
  font: 700 30px/36px var(--font-alt); color: var(--c-navy); text-align: left;
}
.legal .legal__doc--policy > .legal__title:not(:first-child) { margin-top: 0; }
.legal .legal__lv1 { --lv: 1; }
.legal .legal__lv2 { --lv: 2; }
.legal .legal__lv3 { --lv: 3; }
.legal .legal__lv4 { --lv: 4; }
.legal .legal__hang { text-indent: calc(var(--lv, 0) * -48px); }
/* An empty source paragraph (privacy 14.1 -> 15): one blank 30px line between the two blocks */
.legal .legal__doc--policy > .legal__gap { margin-top: 56.67px; }
/* A source paragraph with a 10pt top and no bottom margin (privacy 9.1): no gap before the next block */
.legal .legal__doc--policy > .legal__flush { margin-bottom: 0; }

/* Heading line boxes: the tag keeps the source's strut size, the visible text is the inner 16px span */
.legal .legal__doc--policy > .legal__s-xl { font-size: 30px; line-height: 36px; text-align: left; }
.legal .legal__doc--policy > .legal__s-lg { font-size: 24px; line-height: 28.8px; text-align: left; }
.legal .legal__doc--policy > .legal__s-md { font-size: 28px; line-height: 33.6px; text-align: left; }
.legal .legal__doc--policy > .legal__s-sm { font-size: 24px; line-height: 28.8px; text-align: left; }
.legal .legal__doc--policy > .legal__heading { font-family: var(--font-alt); color: var(--c-navy); }
.legal .legal__doc--policy > .legal__sub { color: var(--c-ink); }
.legal .legal__doc--policy > .legal__sub--navy,
.legal .legal__doc--policy > .legal__navy { color: var(--c-navy); }
.legal .legal__doc--policy > p.legal__s-xl { font-size: 16px; }
.legal .legal__heading > span { font: 700 16px/18.4px var(--font-alt); }
.legal .legal__sub > span { font: 400 16px/18.4px var(--font-sans); }
@media (min-width: 768px) {
  .legal .legal__doc--policy > .legal__title { font-size: 40px; line-height: 48px; }
  .legal .legal__doc--policy > .legal__s-xl { font-size: 40px; line-height: 48px; }
  .legal .legal__doc--policy > .legal__s-lg { font-size: 32px; line-height: 38.4px; }
  .legal .legal__doc--policy > p.legal__s-xl { font-size: 16px; }
}

/* The Google-Docs links: bold #1155CC with no underline (as captured); the one plain link inherits its colour */
.legal .legal__link { color: var(--c-link-doc); text-decoration: none; }
.legal .legal__link:hover, .legal .legal__link:focus-visible { text-decoration: underline; }
/* The Cookie Policy's "Terms and Conditions" link: windowtext black, no underline, as painted */
.legal .legal__link--plain { color: var(--c-ink); text-decoration: none; }

/* ==========================================================================
   Aggregator agreement (word-processor paste): 16px grey left-aligned paragraphs at 108% (17.28px) with an
   8pt (10.56px) gap, real list items 17px black at +40px, each blank source paragraph (2 x 17.28 + 10.56 =
   45.12px) folded into --gap on the next block
   ========================================================================== */
.legal .legal__doc--agreement p,
.legal .legal__doc--agreement .agreement__clause {
  margin: 0 0 10.56px;
  font: 400 16px/17.28px var(--font-sans); color: var(--c-text-muted);
  text-align: left;
}
.legal .legal__doc--agreement .agreement__lead { margin-top: 106px; }
.legal .legal__doc--agreement .agreement__gap { margin-top: calc(10.56px + var(--gap, 1) * 45.12px); }
.legal .legal__doc--agreement .agreement__in-half { margin-left: 24px; }
.legal .legal__doc--agreement .agreement__in1 { margin-left: 48px; }
.legal .legal__doc--agreement .agreement__in2 { margin-left: 96px; }
.legal .legal__doc--agreement .agreement__ti { text-indent: 48px; }
.legal .legal__doc--agreement .agreement__justify { text-align: justify; }
.legal .legal__doc--agreement .agreement__list { margin: 16px 0 10.56px; padding-left: 40px; list-style: disc; }
.legal .legal__doc--agreement .agreement__list--num { list-style: decimal; }
.legal .legal__doc--agreement .agreement__list.agreement__gap { margin-top: calc(16px + var(--gap, 1) * 45.12px); }
.legal .legal__doc--agreement .agreement__list li {
  font: 400 17px/18.36px var(--font-sans); color: var(--c-ink); text-align: left;
}
.legal .legal__doc--agreement .agreement__list li + li { margin-top: 16.7px; }
.legal .legal__doc--agreement .agreement__list p,
.legal .legal__doc--agreement .agreement__list .agreement__clause { margin: 0; font: inherit; color: inherit; }
/* The last source paragraph is a 30px blank line: 10.56 + 30 + 14.4 below the final clause */
.legal .legal__doc--agreement { padding-bottom: 44.4px; }

/* ==========================================================================
   Times New Roman pastes (privacy policy): every text run of the source carries an inline
   font-family 'Times New Roman',serif at 12pt, so the paragraphs, clause headings and sub-heads paint serif.
   Only the bold clause numbers of paragraphs and <h3> sub-heads (1.1., 3.1., 3.1.1.) have no font-family and
   fall back to the site sans. The heading tags keep their sans strut (line box), the inner span paints serif.
   ========================================================================== */
.legal .legal__doc--serif { --font-legal: "Times New Roman", Times, serif; }
.legal .legal__doc--serif > p,
.legal .legal__doc--serif .legal__heading > span,
.legal .legal__doc--serif .legal__sub > span { font-family: var(--font-legal); }
.legal .legal__doc--serif .legal__heading > span { font-weight: 700; }
.legal .legal__doc--serif .legal__hn { margin-right: -1px; }
/* h3 sub-heads justify like the body (the source h3 carries text-align: justify) */
.legal .legal__doc--serif > .legal__s-md { text-align: justify; }
/* A source paragraph without text-align (15: Email / Phone) stays ragged */
.legal .legal__doc--policy > .legal__ragged { text-align: left; }
/* The source bolds these numbers synthetically from the Book face, which keeps Book's advance widths (the real Bold
   is wider and rewraps the narrow phone columns). "Circular Std Source Book" holds only that Book face, so weight 700
   is the same synthetic bold. The source's 7pt spacer after the number paints about 1px narrower than the 16px
   space that follows it here, hence the -1px (also on the h2 numbers, .legal__hn). */
.legal .legal__doc--serif .legal__no { margin-right: -1px; font-family: "Circular Std Source Book", var(--font-sans); font-weight: 700; }

/* ==========================================================================
   Terms and conditions (Word paste): each clause number sits between two runs of 7pt Times New Roman no-break
   spaces (2.33px each, closed by a collapsible space), rebuilt here as generated content so the runs stretch
   with the justified first line as in the source. The leading run is 18n - 13 spaces at level n (4 fewer when
   the number has a two-digit part: Word right-aligns its list numbers), the trailing one always 11; the first
   line starts at the column edge (legal__hang) and wrapped lines sit at the 48n level indent.
   ========================================================================== */
.legal .legal__doc--word .legal__no { margin-right: 0; font-family: inherit; font-weight: 700; }
.legal .legal__doc--word .legal__no::before,
.legal .legal__doc--word .legal__no::after { font: 400 7pt/normal var(--font-legal); }
.legal .legal__doc--word .legal__no::after { content: "\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\20"; }
.legal .legal__doc--word .legal__lv1 .legal__no::before { content: "\a0\a0\a0\a0\a0\20"; }
.legal .legal__doc--word .legal__lv1 .legal__no--wide::before { content: "\a0\20"; }
.legal .legal__doc--word .legal__lv2 .legal__no::before { content: "\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\20"; }
.legal .legal__doc--word .legal__lv2 .legal__no--wide::before { content: "\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\20"; }
.legal .legal__doc--word .legal__lv3 .legal__no::before { content: "\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\20"; }
.legal .legal__doc--word .legal__lv3 .legal__no--wide::before { content: "\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\20"; }
.legal .legal__doc--word .legal__lv4 .legal__no::before { content: "\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\20"; }
.legal .legal__doc--word .legal__lv4 .legal__no--wide::before { content: "\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\a0\20"; }
/* The Cookie Policy headings leave the number outside the <b> */
.legal .legal__doc--word .legal__no--regular { font-weight: 400; }
.legal .legal__doc--word > :is(.legal__heading, .legal__sub) { text-align: justify; }
/* Word's inch indents as margins (not padding), so the blocks' boxes start at their level as in the source */
.legal .legal__doc--word > * { padding-left: 0; margin-left: calc(var(--lv, 0) * 48px); }
/* 6.1.1.1-6.1.1.3 carry a 12pt top and bottom margin in the source instead of the 10pt bottom one */
.legal .legal__doc--word > .legal__spaced { margin-top: 16px; margin-bottom: 16px; }
/* 21. AMENDMENT opens with a 20pt top margin */
.legal .legal__doc--word > .legal__sep { margin-top: 26.67px; }
/* Cookie 3.1 hangs its first line back only a quarter inch and paints its runs black (the number stays grey) */
.legal .legal__doc--word .legal__hang--short { text-indent: -24px; }
.legal .legal__doc--word > .legal__ink { color: var(--c-ink); }
.legal .legal__doc--word > .legal__ink .legal__no { color: var(--c-text-muted); }
/* 18. is an <ol start=18> item in the source, not an h1: a plain 30px line in black rather than navy, the text at
   the list's 40px indent and the number drawn as the list marker, which the capture paints in a monospace face */
.legal .legal__doc--word > .legal__heading--ink { color: var(--c-ink); }
.legal .legal__doc--word > .legal__item { margin-left: 40px; text-indent: -36px; }
.legal .legal__doc--word .legal__item .legal__no {
  display: inline-block; width: 32px; text-indent: 0;
  font-family: Consolas, "Courier New", monospace; font-weight: 700;
}
.legal .legal__doc--word .legal__item .legal__no::after { content: none; }
/* Source h1/h2 tags keep the kit's Open Sans strut around their 12pt serif runs: the navy sub-heads (7.3, 8.2,
   Cookie 4.1-4.4) and the bare h1 sentence "Some cookies are set ..." (a <p> here, it is not a heading) */
.legal .legal__doc--word > .legal__sub--navy { font-family: var(--font-alt); }
.legal .legal__doc--word > p.legal__strut { font-family: var(--font-alt); font-size: 30px; }
.legal .legal__doc--word > .legal__strut > span { font: 400 16px/18.4px var(--font-legal); }
@media (min-width: 768px) {
  .legal .legal__doc--word > p.legal__strut { font-size: 40px; }
}
/* 4.1.1-4.1.4: the only runs without a 12pt size, so their glyphs paint at the h4's own 24px/28.8px */
.legal .legal__doc--word > .legal__sub--large > span { font-size: 24px; line-height: 28.8px; }
