/* ============================================================================
 * INNOVATIVE MECHANICAL - PRIVACY POLICY  ·  /privacy-policy/  ·  page 3
 *
 * Layer 4 (`inm-body`). Loaded only for this page, AFTER type-service.css, so a tie
 * at equal specificity resolves in favour of the rules below. Nothing here is scoped
 * more loosely than `.rsg-inm-pp`, which no other page or asset carries, so this file
 * cannot reach any other page.
 *
 * WHY THE PAGE BORROWS TWO SYSTEMS. The hero is the shared service-page hero and costs
 * nothing: `.rsg-hero`, `.rsg-hero-grid.is-solo`, `.rsg-hero-rays` and `.rsg-div-btm`
 * all come from the type sheet unchanged. The BODY is long-form prose, and this site
 * already owns a long-form prose treatment - the blog article column, `.rsg-bp-col` in
 * blog.css, live on seven posts. Every value below is ported from it verbatim (58/38/18
 * /24/14px rhythm, the 64x3 red hairline under each h2, the 760px measure, the azure
 * list marker, the navy-deep link with an azure underline) so a legal page reads as the
 * same material as an article rather than as a third type system.
 *
 * THE TYPE TOKENS ARE DELIBERATELY NEW NAMES. The blog scales its prose off `--fs-h2`
 * /`--fs-h3`/`--fs-body`, but those names are already declared by `.rsg-inm-ac` at the
 * SERVICE page's values (40px/54px), and `.rsg-inm-pp` sits on the same element - so
 * redeclaring them here would win on source order and silently resize the hero H1 too.
 * `--pp-*` cannot collide. The three values, and their two breakpoint steps, are the
 * blog's own numbers.
 *
 * TWO DECLARATIONS EXIST ONLY TO NEUTRALISE INHERITED DISPLAY DEFAULTS. `.rsg-inm-ac`
 * styles h1-h4 as display headings (line-height 1.05, letter-spacing -.015em) because
 * on a service page every heading is a band title. The blog wrapper never had that rule,
 * so reproducing the article look here means putting line-height and tracking back to
 * reading values. That is the whole reason those two properties appear below.
 *
 * NO REVEAL ON THE PROSE. `.rsg-rv` parks its target at opacity 0 until an
 * IntersectionObserver promotes it. That is an acceptable trade for decoration; it is not
 * an acceptable trade for the text of a privacy policy. Reveal stays in the hero.
 * ========================================================================== */

.rsg-inm-pp{
  --pp-h2:34px;
  --pp-h3:23px;
  --pp-body:17.5px;
}

/* ---- the reading column ------------------------------------------------- */
/* 760px is the article measure; the wrap around it stays the sitewide 1180px. */
.rsg-inm-pp .rsg-pp-prose{max-width:760px;margin:0 auto}

/* the band already supplies its own 100px of top padding */
.rsg-inm-pp .rsg-pp-prose>h2:first-child{margin-top:0}

.rsg-inm-pp .rsg-pp-prose h2{
  margin:58px 0 0;
  font-size:var(--pp-h2);font-weight:800;color:var(--ink);
  line-height:1.2;letter-spacing:normal}

/* one hairline rule under each h2, brand red - the only decorative accent on the page */
.rsg-inm-pp .rsg-pp-prose h2::after{
  content:"";display:block;width:64px;height:3px;border-radius:2px;
  background:var(--red);margin-top:18px}

.rsg-inm-pp .rsg-pp-prose h3{
  margin:38px 0 0;
  font-size:var(--pp-h3);font-weight:700;color:var(--ink);line-height:1.3}

.rsg-inm-pp .rsg-pp-prose p{
  margin-top:18px;
  font-size:var(--pp-body);line-height:1.75;color:#3A3D3F}

.rsg-inm-pp .rsg-pp-prose strong{font-weight:700;color:var(--ink)}

/* ---- lists -------------------------------------------------------------- */
.rsg-inm-pp .rsg-pp-list{margin:24px 0 0;padding:0;list-style:none}

.rsg-inm-pp .rsg-pp-list li{
  position:relative;padding-left:30px;margin-top:14px;
  font-size:var(--pp-body);line-height:1.7;color:#3A3D3F}

.rsg-inm-pp .rsg-pp-list li::before{
  content:"";position:absolute;left:6px;top:11px;
  width:8px;height:8px;border-radius:50%;background:var(--azure)}

.rsg-inm-pp .rsg-pp-list li strong{color:var(--ink)}

/* ---- links -------------------------------------------------------------- */
/* navy-deep, not azure: azure measures 3.81:1 on the paper ground and fails AA for
   body text, while navy-deep is 12.8:1. The azure survives as the underline, where
   contrast rules do not apply. Same reasoning, same pair, as the article column. */
.rsg-inm-pp .rsg-pp-prose a{
  color:var(--navy-deep);text-decoration:none;
  border-bottom:1px solid rgba(46,129,193,.55);
  transition:color .25s var(--ease),border-color .25s var(--ease)}

.rsg-inm-pp .rsg-pp-prose a:hover{color:var(--red);border-bottom-color:var(--red)}

/* ---- hero ---------------------------------------------------------------- */
/* `.rsg-hero-grid.is-solo` centres the content box and centres its text, but the intro
   keeps its own 52ch measure with no auto margins, so the narrower box hangs against the
   left edge of the 74ch column. Only the margins are touched; the measure is untouched. */
.rsg-inm-pp .rsg-hero-grid.is-solo .rsg-hero-intro{margin-left:auto;margin-right:auto}

/* ---- responsive ---------------------------------------------------------- */
@media (max-width:1024px){
  .rsg-inm-pp{--pp-h2:30px;--pp-h3:21px}
}

@media (max-width:767px){
  .rsg-inm-pp{--pp-h2:25px;--pp-h3:19px;--pp-body:16.5px}
  .rsg-inm-pp .rsg-pp-prose{max-width:none}
  .rsg-inm-pp .rsg-pp-prose h2{margin-top:44px}
}

@media (prefers-reduced-motion:reduce){
  .rsg-inm-pp .rsg-pp-prose a{transition:none}
}
