/* Scoped reading surface. Shared header and footer keep their existing styles. */
.cm-privacy-page {
  margin:0;
  padding:0;
  font-size:14px;
  line-height:1.8;
}
.cm-privacy-page>.wp-block-post-content { margin:0; }
.cm-privacy-hero,.cm-privacy-body {
  padding-inline:max(var(--site-gutter,32px),calc((100% - 1580px)/2));
}
.cm-privacy-hero {
  padding-block:40px 32px;
  border-bottom:1px solid var(--line);
}
.cm-privacy-hero h1 {
  color:var(--red);
  font-size:clamp(38px,3.2vw,44px);
  margin:0 0 16px;
}
.cm-privacy-hero h1::after {
  content:"";
  display:block;
  width:48px;
  height:4px;
  background:var(--yellow);
  margin-top:16px;
}
.cm-privacy-hero p { margin:0; font-size:14px; color:var(--muted); }
.cm-privacy-body { margin:0; padding-block:36px 56px; }
.cm-privacy-page .cm-policy-reading {
  width:100%;
  max-width:76ch;
  margin-inline:auto;
  margin-block:0;
}
.cm-privacy-page .cm-policy-reading p,
.cm-privacy-page .cm-policy-reading li {
  font-size:14px;
  line-height:1.8;
  overflow-wrap:anywhere;
}
.cm-policy-reading p { margin:0 0 16px; max-width:none; }
.cm-policy-reading h2 {
  font-size:28px;
  color:var(--ink);
  margin:36px 0 14px;
  line-height:1.25;
}
.cm-policy-reading h2:first-child { margin-top:0; }
.cm-policy-reading h3 { font-size:20px; margin:24px 0 10px; line-height:1.3; }
.cm-policy-reading ul { padding-left:22px; margin:0 0 18px; }
.cm-policy-reading li { padding-left:3px; margin-block:6px; }
.cm-policy-reading li::marker { color:var(--red); }
.cm-policy-reading a { text-decoration:underline; }
/* Shared policy pages: 70% content, 30% section navigation. */
.cm-privacy-page .cm-policy-columns {
  display:grid;
  grid-template-columns:minmax(0,7fr) minmax(0,3fr);
  gap:40px;
  align-items:stretch;
  margin:0;
}
.cm-policy-columns>.cm-policy-content {
  grid-column:1;
  grid-row:1;
  min-width:0;
}
.cm-policy-columns>.cm-policy-sidebar {
  grid-column:2;
  grid-row:1;
  min-width:0;
}
.cm-privacy-page .cm-policy-columns .cm-policy-reading {
  max-width:none;
  margin:0;
}
.cm-policy-toc {
  position:sticky;
  top:24px;
  max-height:calc(100vh - 48px);
  max-height:calc(100dvh - 48px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:var(--line-strong) var(--surface);
  border:1px solid var(--line);
  border-radius:14px;
  padding:24px;
  margin:0;
  background:var(--surface);
}
.cm-policy-toc h2 {
  font-size:24px;
  margin:0 0 14px;
  line-height:1.25;
}
.cm-policy-toc ul {
  list-style:none;
  padding:0;
  margin:0;
}
.cm-policy-toc li { margin:0; }
.cm-policy-toc a {
  display:block;
  min-height:36px;
  padding:7px 0;
  font-size:14px;
  line-height:1.5;
  color:var(--ink);
  text-decoration:none;
}
.cm-policy-toc a:hover,
.cm-policy-toc a:focus-visible {
  color:var(--red);
  text-decoration:underline;
}
.cm-policy-reading h2[id]:target {
  outline:2px solid var(--yellow);
  outline-offset:6px;
}
.editor-styles-wrapper .cm-policy-toc { position:static; max-height:none; }
@media(max-width:1023px) {
  .cm-privacy-page .cm-policy-columns { gap:28px; }
  .cm-policy-toc { padding:18px; }
}
@media(max-width:767px) {
  .cm-privacy-hero { padding-block:28px; }
  .cm-privacy-body { padding-block:28px 40px; }
  .cm-policy-reading h2 { font-size:25px; margin-top:30px; }
  .cm-privacy-page .cm-policy-columns { grid-template-columns:minmax(0,1fr); gap:28px; }
  .cm-policy-columns>.cm-policy-sidebar,
  .cm-policy-columns>.cm-policy-content { grid-column:auto; grid-row:auto; }
  .cm-policy-toc { position:static; max-height:none; }
  .cm-policy-toc a { min-height:44px; padding-block:11px; }
}
