
/* ============================================================
   RS GONZALES — PRIVACY POLICY  (/privacy-policy/)
   Plain legal document on the service-page token set.
   HEADINGS + DESCRIPTIONS ONLY (user directive, Aug 2026):
   no contents rail, no dark CTA band, no cards, no data-viz.
   Brand fidelity comes from the tokens + type scale, nothing else.
   Tokens copied verbatim from hvac-email-marketing master CSS.

   NOTE ON SPECIFICITY: every component selector below is scoped under
   .rsg-page. The base primitives (.rsg-page ul / .rsg-page p) are
   (0,2,0) — a bare .pp-* class (0,1,0) LOSES to them and its
   padding/margin is silently dropped. Keep the prefix.
   ============================================================ */
.rsg-page{
  --font-display:'Montserrat', system-ui, sans-serif;
  --font-body:'DM Sans', system-ui, sans-serif;
  --paper:#FFFFFF;
  --ink:#1A1A1A;
  --ink-900:#111111;
  --ink-700:#262626;
  --ink-500:#6B6B6B;
  --ink-2:#2E2E2E;
  --green-500:#2C7A4B;
  --green-600:#1F5B36;
  --green-700:#143E25;
  --line:#E4E8E5;
  --section-y:96px;
  --gutter:24px;

  font-family:var(--font-body);
  color:var(--ink-900);
  background:var(--paper);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-wrap:break-word;   /* break long URLs instead of forcing horizontal scroll */
}
.rsg-page *{box-sizing:border-box;}
.rsg-page img,.rsg-page svg{max-width:100%;height:auto;display:block;}

/* ---------- typography primitives ---------- */
.rsg-page h1,.rsg-page h2{font-family:var(--font-display);font-weight:700;color:var(--ink-900);line-height:1.15;margin:0;}
.rsg-page h1 em,.rsg-page h2 em{font-style:normal;text-decoration:none;color:var(--green-500);font-weight:inherit;}
.rsg-page p{margin:0 0 16px;color:var(--ink-2);}
.rsg-page strong{color:var(--ink-900);font-weight:700;}
.rsg-page ul{margin:0;padding:0;}
/* NO .hd-ln here on purpose — the H1 must stay on ONE line (user directive).
   It flows as a single line down to ~600px, then wraps naturally. Do not
   re-introduce a forced break (neither `.hd-ln` nor `<br>`). */

.rsg-page a{color:var(--green-600);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px;}
.rsg-page a:hover{color:var(--green-500);}
.rsg-page :focus-visible{outline:2px solid var(--green-500);outline-offset:3px;border-radius:3px;}
.rsg-page [id]{scroll-margin-top:110px;}   /* deep links clear the sticky site header */

/* ---------- eyebrow (green dot prefix) ---------- */
.rsg-page .eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--green-600);margin:0 0 18px;}
.rsg-page .eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green-500);flex-shrink:0;}

/* ============================================================
   PAGE — full-width left-aligned text
   .pp-wrap owns its own max-width + gutter (deliberately NOT .container,
   so no later .container media-query rule can win the padding shorthand
   back). 1200px is the same container width the service pages use.

   NO max-width on .pp-doc or on any block inside it: every block fills
   the container and shares the H2's left edge, per the locked
   "section content fills section width" rule. An artificial narrower cap
   here left a dead right-hand column — the user flagged it.
   ============================================================ */
.rsg-page .pp-wrap{max-width:1200px;margin:0 auto;padding:72px var(--gutter) var(--section-y);}

.rsg-page .pp-doc h1{font-size:clamp(34px,4.6vw,52px);letter-spacing:-0.02em;line-height:1.08;margin:0 0 24px;}
.rsg-page .pp-doc .lede{font-size:clamp(17px,1.5vw,19px);color:var(--ink-2);line-height:1.62;}

/* each policy section: heading + copy, separated by a hairline */
.rsg-page .pp-sec{margin-top:52px;padding-top:44px;border-top:1px solid var(--line);}
.rsg-page .pp-doc h2{font-size:clamp(23px,2.5vw,30px);letter-spacing:-0.015em;line-height:1.2;margin:0 0 18px;}
.rsg-page .pp-doc p:last-child{margin-bottom:0;}

/* bullets — custom green dot, no native marker */
.rsg-page .pp-doc ul{list-style:none;margin:6px 0 20px;padding:0;display:grid;gap:10px;}
.rsg-page .pp-doc li{position:relative;padding-left:26px;color:var(--ink-2);line-height:1.6;}
.rsg-page .pp-doc li::before{content:"";position:absolute;left:2px;top:0.62em;width:7px;height:7px;border-radius:50%;background:var(--green-500);}
.rsg-page .pp-doc ul:last-child{margin-bottom:0;}
.rsg-page .pp-lead-in{margin-bottom:10px;}
/* short field lists (name / e-mail / phone — age / gender) sit on one row */
.rsg-page .pp-doc ul.pp-inline{grid-template-columns:repeat(auto-fit,minmax(180px,max-content));gap:10px 44px;}

/* contact + effective date — plain text, label above value */
.rsg-page .pp-field{margin:0 0 16px;}
.rsg-page .pp-field strong{display:block;}
.rsg-page .pp-effective{margin:26px 0 0;}

/* ============================================================
   DEFENSIVE OVERRIDE — WordPress theme injections
   ============================================================ */
.rsg-page .pp-doc li{list-style:none !important;}

/* ============================================================
   MOBILE POLISH PASS
   ============================================================ */
@media (max-width:768px){
  .rsg-page{--section-y:56px;--gutter:20px;}
  .rsg-page .pp-wrap{padding-top:48px;}
  .rsg-page .pp-doc h2{font-size:clamp(22px,5.4vw,27px);}
  .rsg-page .pp-sec{margin-top:40px;padding-top:34px;}
}
@media (max-width:480px){
  .rsg-page{--section-y:48px;--gutter:16px;font-size:16px;}
  .rsg-page .pp-doc h1{font-size:clamp(28px,8.4vw,34px);}
  .rsg-page .pp-doc .lede{font-size:15.5px;}
  .rsg-page .pp-doc ul.pp-inline{grid-template-columns:1fr;}
}

/* Universal safety net — prevents horizontal scroll from any rogue overflow */
.rsg-page{overflow-x:hidden;}
