/* ─────────────────────────────────────────────────────────────────────────────
   MOHR — Legal pages (/privacy-policy, /terms-and-conditions).
   Extends assets/mohr.css only. No new fonts, no new colours: every value here
   resolves to an existing brand token (or a color-mix of them).

   The layout is a two-column reading view — a sticky contents rail beside a
   single measured prose column. Legal copy is read by scanning for one clause,
   so the rail, the numbered headings and the deep-linkable ids matter more here
   than anywhere else on the site.
   ───────────────────────────────────────────────────────────────────────────── */

/* Deep links land on a heading, and the header is sticky, so every anchor
   target needs to clear it. */
section[id],[id^="s-"]{scroll-margin-top:6rem;}

.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ── hero ─────────────────────────────────────────────────────────────────── */
.lhero{padding-top:clamp(2.6rem,7vh,4.6rem);padding-bottom:clamp(2rem,4vh,3rem);}
.lhero h1{font-size:clamp(2.6rem,6.4vw,4.6rem);letter-spacing:-.026em;max-width:16ch;}
/* Same second-line treatment the other page heroes use; .soft is scoped per hero
   in the shared sheet, so it has to be restated for this one. */
.lhero h1 .soft{color:var(--evergreen);}
.lhero .lede{margin-top:1.3rem;}

/* Effective / updated / governing-law strip. Reads as a colophon, not a sentence. */
.lmeta{
  display:flex;flex-wrap:wrap;gap:.55rem clamp(1.4rem,3vw,2.6rem);
  margin-top:clamp(1.8rem,3.4vw,2.6rem);padding-top:1.4rem;
  border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent);
}
.lmeta__item{display:flex;flex-direction:column;gap:.28rem;}
.lmeta__k{
  font-family:var(--accent);font-size:.66rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.2em;color:var(--slate);
}
.lmeta__v{font-size:.92rem;font-weight:500;color:var(--ink);}

/* ── the summary card ─────────────────────────────────────────────────────── */
.lsum{
  background:var(--sage);border-radius:var(--radius);
  padding:clamp(1.5rem,3.4vw,2.4rem);margin-top:clamp(2rem,4vw,3rem);
}
.lsum h2{font-size:clamp(1.35rem,2.4vw,1.75rem);letter-spacing:-.012em;}
.lsum ul{margin:1.15rem 0 0;padding:0;list-style:none;display:grid;gap:.8rem;}
.lsum li{display:flex;gap:.8rem;font-size:.97rem;line-height:1.6;color:var(--ink);}
.lsum li::before{
  content:"";flex:0 0 auto;width:6px;height:6px;margin-top:.62em;border-radius:50%;
  background:var(--brass);box-shadow:0 0 0 3px color-mix(in srgb,var(--brass) 22%,transparent);
}
.lsum a{color:var(--evergreen);text-underline-offset:3px;}
.lsum__note{margin:1.35rem 0 0;font-size:.82rem;line-height:1.6;color:var(--slate);}

/* ── body: contents rail + prose ──────────────────────────────────────────── */
.lbody{padding-top:clamp(2.6rem,5vw,4rem);}
.lgrid{display:grid;grid-template-columns:1fr;gap:clamp(2.4rem,4vw,3.6rem);}
@media(min-width:1000px){
  .lgrid{grid-template-columns:15.5rem minmax(0,1fr);gap:clamp(3rem,5vw,5rem);}
}

.ltoc{align-self:start;}
@media(min-width:1000px){.ltoc{position:sticky;top:6rem;max-height:calc(100vh - 8rem);overflow:auto;}}
.ltoc__h{
  font-family:var(--accent);font-size:.66rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.2em;color:var(--slate);margin:0 0 1rem;
}
.ltoc ol{margin:0;padding:0;list-style:none;counter-reset:toc;display:grid;gap:.1rem;}
.ltoc li{counter-increment:toc;}
.ltoc a{
  display:grid;grid-template-columns:1.9rem 1fr;gap:.35rem;align-items:baseline;
  padding:.42rem 0;font-size:.88rem;line-height:1.4;color:var(--slate);
  text-decoration:none;transition:color .3s var(--ease);
}
.ltoc a::before{
  content:counter(toc,decimal-leading-zero);
  font-family:var(--accent);font-size:.68rem;font-weight:600;letter-spacing:.08em;
  color:color-mix(in srgb,var(--brass) 92%,var(--ink));
}
.ltoc a:hover{color:var(--evergreen);}

/* On phones the rail becomes a plain disclosure so it never eats the fold. */
.ltoc__disc{border-block:1px solid color-mix(in srgb,var(--ink) 12%,transparent);padding-block:.35rem;}
.ltoc__disc summary{
  cursor:pointer;list-style:none;padding-block:.85rem;
  font-family:var(--accent);font-size:.72rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.18em;color:var(--evergreen);display:flex;justify-content:space-between;align-items:center;
}
.ltoc__disc summary::-webkit-details-marker{display:none;}
.ltoc__disc summary::after{content:"+";font-size:1rem;letter-spacing:0;}
.ltoc__disc[open] summary::after{content:"–";}
.ltoc__disc[open] ol{padding-bottom:1rem;}
@media(min-width:1000px){
  .ltoc__disc{border:0;padding:0;}
  .ltoc__disc summary{display:none;}
}

/* ── prose ────────────────────────────────────────────────────────────────── */
.lprose{max-width:46rem;counter-reset:sec;}
.lsec{padding-block:0;margin-top:clamp(2.6rem,5vw,3.6rem);}
.lsec:first-child{margin-top:0;}
.lsec > h2{
  counter-increment:sec;font-size:clamp(1.5rem,2.9vw,2.15rem);letter-spacing:-.014em;
  display:grid;grid-template-columns:2.6rem 1fr;gap:.4rem;align-items:baseline;
}
.lsec > h2::before{
  content:counter(sec,decimal-leading-zero);
  font-family:var(--accent);font-size:.72rem;font-weight:600;letter-spacing:.14em;
  color:color-mix(in srgb,var(--brass) 92%,var(--ink));
}
.lsec h3{
  font-family:var(--body);font-size:1.01rem;font-weight:700;letter-spacing:.005em;
  line-height:1.45;margin:1.9rem 0 .5rem;color:var(--evergreen);
}
.lsec p,.lsec li{font-size:1rem;line-height:1.72;color:var(--slate);}
.lsec p{margin:.95rem 0 0;}
.lsec > h2 + p{margin-top:1.1rem;}
.lsec strong,.lsec b{color:var(--ink);font-weight:600;}
.lsec a{color:var(--evergreen);text-underline-offset:3px;}
/* Query-string keys quoted inline (utm_source and friends) — set in the
   technical family so they read as literals, not as emphasis. */
.lsec code{
  font-family:var(--accent);font-size:.88em;letter-spacing:.01em;color:var(--evergreen);
  background:color-mix(in srgb,var(--sage) 60%,transparent);
  padding:.1em .38em;border-radius:5px;white-space:nowrap;
}

.lsec ul,.lsec ol{margin:1rem 0 0;padding-left:1.15rem;display:grid;gap:.62rem;}
.lsec ul{list-style:none;padding-left:0;}
.lsec ul > li{display:flex;gap:.75rem;}
.lsec ul > li::before{
  content:"";flex:0 0 auto;width:5px;height:5px;margin-top:.72em;border-radius:50%;
  background:color-mix(in srgb,var(--brass) 85%,transparent);
}
.lsec ol > li::marker{font-family:var(--accent);font-size:.82rem;color:var(--slate);}

/* Lettered sub-lists inside a clause — used where a paragraph enumerates
   conditions that get cross-referenced (e.g. "Section 12(c)"). */
.llist--alpha{list-style:lower-alpha;}

/* A defined term, on the line where it is defined. */
.lterm{font-family:var(--display);font-weight:500;font-style:normal;color:var(--evergreen);}

/* ── emphasis blocks ──────────────────────────────────────────────────────── */
/* The clauses that must be conspicuous to be enforceable. Bordered, not shouted:
   the border and the label do the work that ALL CAPS does badly. */
.lnote{
  margin-top:1.5rem;padding:1.15rem 1.3rem;border-radius:var(--radius-sm);
  background:color-mix(in srgb,var(--sage) 55%,var(--porcelain));
  border-left:2.5px solid var(--brass);
}
.lnote p{margin:.7rem 0 0;font-size:.95rem;}
.lnote p:first-of-type{margin-top:0;}
.lnote__label{
  font-family:var(--accent);font-size:.64rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.2em;color:var(--evergreen);margin:0 0 .55rem;display:block;
}
.lnote--loud{background:color-mix(in srgb,var(--brass) 9%,var(--porcelain));border-left-color:var(--evergreen);}
.lnote--loud p{color:var(--ink);}

/* ── tables ───────────────────────────────────────────────────────────────── */
.ltable-wrap{margin-top:1.4rem;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.ltable{width:100%;border-collapse:collapse;font-size:.92rem;min-width:31rem;}
.ltable caption{
  text-align:left;font-family:var(--accent);font-size:.64rem;font-weight:600;
  text-transform:uppercase;letter-spacing:.2em;color:var(--slate);padding-bottom:.7rem;
}
.ltable th,.ltable td{
  text-align:left;vertical-align:top;padding:.85rem .9rem;
  border-bottom:1px solid color-mix(in srgb,var(--ink) 10%,transparent);line-height:1.55;
}
.ltable thead th{
  font-family:var(--accent);font-size:.66rem;font-weight:600;text-transform:uppercase;
  letter-spacing:.16em;color:var(--evergreen);
  border-bottom:1px solid color-mix(in srgb,var(--ink) 22%,transparent);
}
.ltable tbody th{font-weight:600;color:var(--ink);white-space:nowrap;}
.ltable td{color:var(--slate);}

/* ── contact strip + closing ──────────────────────────────────────────────── */
.lcontact{
  margin-top:clamp(2.6rem,5vw,3.6rem);padding:clamp(1.5rem,3.4vw,2.2rem);
  border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--ink) 13%,transparent);
}
.lcontact p{margin:.6rem 0 0;font-size:.95rem;}
.lcontact address{font-style:normal;color:var(--slate);line-height:1.75;font-size:.95rem;margin-top:.6rem;}
.lcontact a{color:var(--evergreen);text-underline-offset:3px;}

.lcross{
  display:flex;flex-wrap:wrap;gap:1rem;align-items:center;
  margin-top:clamp(2.2rem,4vw,3rem);padding-top:1.6rem;
  border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent);
}
.lcross__note{font-size:.85rem;color:var(--slate);}

/* ── print: the version a patient or a lawyer actually files ──────────────── */
@media print{
  header.site,footer.site,.ltoc,.lcross,.btn,body::before{display:none !important;}
  .lgrid{grid-template-columns:1fr;}
  .lprose{max-width:none;}
  .lsec{break-inside:auto;}
  .lsec > h2,.lsec h3{break-after:avoid;}
  .lnote,.ltable{break-inside:avoid;}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:.8em;color:#555;}
}
