/* Text-led pages: Contact, Privacy Policy, Terms of Use, 404, resources.
   Same plain, narrow-measure language as about.css. */
.doc-page{
  padding:var(--section-pad-y-sm) 0 var(--section-pad-y);
}
.doc-wrap{
  width:min(100%, 760px);
  margin-inline:auto;
}
.doc-wrap.wide{
  width:min(100%, 1040px);
}
.doc-head h1{
  font-size:clamp(2rem, 4vw, 2.9rem);
  line-height:1.12;
  font-weight:800;
  letter-spacing:-0.035em;
  margin:12px 0 20px;
}
.doc-lede{
  font-size:clamp(1.05rem, 2vw, 1.25rem);
  line-height:1.5;
  color:var(--text-secondary);
  max-width:680px;
}
.doc-meta{
  margin-top:14px;
  font-size:0.85rem;
  color:var(--text-tertiary);
}
.doc-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 20px;
  margin-top:28px;
}

/* ---- Prose sections (legal, long-form) ---- */
.doc-section{
  margin-top:44px;
  scroll-margin-top:90px;
}
.doc-section h2{
  font-size:1.4rem;
  font-weight:800;
  letter-spacing:-0.025em;
  margin:0 0 14px;
}
.doc-section h3{
  font-size:1.02rem;
  font-weight:700;
  margin:22px 0 8px;
}
.doc-section p,
.doc-section li,
.doc-intro{
  font-size:1rem;
  line-height:1.65;
  color:var(--text-secondary);
}
.doc-section p + p{margin-top:14px;}
.doc-section ul{
  margin:12px 0 0;
  padding-left:1.2em;
  list-style:disc;
}
.doc-section li{margin:6px 0;}
.doc-section strong{color:var(--text-primary);font-weight:600;}
.doc-section a,
.doc-intro a,
.doc-link{
  color:var(--brand-primary);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:2px;
}
.doc-intro{margin-top:8px;}

/* ---- Card grids (guides, resources) ---- */
.cm-section{margin-top:72px;}
.cm-section h2{
  font-size:clamp(1.5rem, 2.6vw, 2rem);
  font-weight:800;
  letter-spacing:-0.03em;
  margin:10px 0 12px;
}
.cm-section > p{
  font-size:1rem;
  line-height:1.65;
  color:var(--text-secondary);
  max-width:680px;
}
.cm-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:20px;
  margin-top:28px;
}
.cm-card{
  background:var(--background);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:26px;
  box-shadow:var(--shadow-sm);
}
.cm-card-num{
  font-size:0.78rem;
  font-weight:700;
  color:var(--brand-primary);
  letter-spacing:0.04em;
}
.cm-card h3{
  font-size:1.12rem;
  font-weight:800;
  letter-spacing:-0.02em;
  margin:6px 0 4px;
}
.cm-card-sub{
  font-size:0.86rem;
  font-weight:600;
  color:var(--text-tertiary);
  margin-bottom:12px;
}
.cm-card p{
  font-size:0.94rem;
  line-height:1.6;
  color:var(--text-secondary);
}
.cm-card ul{
  margin:14px 0 0;
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.cm-card li{
  position:relative;
  padding-left:22px;
  font-size:0.9rem;
  line-height:1.5;
  color:var(--text-secondary);
}
.cm-card li::before{
  content:"";
  position:absolute;
  left:2px;top:0.45em;
  width:9px;height:5px;
  border-left:2px solid var(--success);
  border-bottom:2px solid var(--success);
  transform:rotate(-45deg);
}
.cm-points{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:24px;
  margin-top:28px;
}
.cm-point h3{
  font-size:1rem;
  font-weight:700;
  margin:0 0 6px;
}
.cm-point p{
  font-size:0.92rem;
  line-height:1.6;
  color:var(--text-secondary);
}
.cm-faq{margin-top:72px;}
.cm-cta{
  margin-top:72px;
  padding:48px 32px;
  background:var(--navy);
  border-radius:var(--radius-lg);
  text-align:center;
}
.cm-cta h2{
  color:#fff;
  font-size:clamp(1.6rem, 3vw, 2.1rem);
  font-weight:800;
  letter-spacing:-0.03em;
  margin:0 0 12px;
}
.cm-cta p{
  color:var(--text-on-navy-dim);
  font-size:1rem;
  margin-bottom:24px;
}
.cm-cta .doc-actions{justify-content:center;margin-top:0;}
.cm-cta .btn-link{color:#fff;}

/* ---- Contact ---- */
.ct-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
  gap:22px 32px;
  margin-top:32px;
}
.ct-fact dt{
  font-size:0.8rem;
  font-weight:700;
  color:var(--text-primary);
  margin-bottom:5px;
}
.ct-fact dd{
  margin:0;
  font-size:0.94rem;
  line-height:1.55;
  color:var(--text-secondary);
}
.ct-fact dd a{color:var(--brand-primary);font-weight:600;}
.ct-topics{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:20px;
  margin-top:28px;
}

@media (max-width: 860px){
  .cm-grid{grid-template-columns:1fr;}
  .cm-points{grid-template-columns:1fr;}
  .cm-section{margin-top:56px;}
}

/* ---- Breadcrumbs, steps, tables, related links (guides, comparisons, modules) ---- */
.doc-crumbs{
  font-size:0.84rem;
  color:var(--text-tertiary);
  margin-bottom:22px;
}
.doc-crumbs a{color:var(--text-secondary);}
.doc-crumbs a:hover{color:var(--brand-primary);}
.doc-crumbs span[aria-hidden]{margin:0 6px;}
.doc-lede a{color:var(--brand-primary);font-weight:600;}
.doc-steps{
  margin:12px 0 0;
  padding-left:1.3em;
  list-style:decimal;
}
.doc-steps li{margin:10px 0;}
.doc-section ol{list-style:decimal;}
.doc-table-wrap{
  margin-top:18px;
  overflow-x:auto;
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  background:var(--background);
}
.doc-table{
  width:100%;
  border-collapse:collapse;
  font-size:0.92rem;
  line-height:1.5;
}
.doc-table th,
.doc-table td{
  text-align:left;
  vertical-align:top;
  padding:12px 14px;
  border-bottom:1px solid var(--border);
  color:var(--text-secondary);
}
.doc-table thead th{
  background:var(--surface-alt);
  color:var(--text-primary);
  font-weight:700;
}
.doc-table tbody th{color:var(--text-primary);font-weight:600;}
.doc-table tr:last-child th,
.doc-table tr:last-child td{border-bottom:none;}
.doc-note{
  margin-top:12px;
  font-size:0.86rem !important;
  color:var(--text-tertiary) !important;
}
.doc-related{
  margin-top:56px;
  padding-top:24px;
  border-top:1px solid var(--border);
}
.doc-related-title{
  font-size:0.8rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--text-tertiary);
  margin-bottom:10px;
}
.doc-related ul{display:flex;flex-wrap:wrap;gap:10px 24px;}
.doc-related a{color:var(--brand-primary);font-weight:600;}
.cm-card h3 a{color:var(--text-primary);}
.cm-card h3 a:hover{color:var(--brand-primary);}
