/* Only this project page opts in. Existing blog pages retain their styles. */
.csg-project {
  --csg-ink: #26343b;
  --csg-muted: #56646a;
  --csg-accent: #17616d;
  --csg-line: #d6dfe1;
  --csg-soft: #f2f6f6;
  --csg-small: clamp(14px, 13px + .2vw, 16px);
  --csg-body: clamp(16px, 15px + .2vw, 18px);
  --csg-title: clamp(25px, 22px + .6vw, 30px);
  color: var(--csg-ink);
  font-size: var(--csg-body);
  line-height: 1.75;
}
.csg-project .csg-meta,
.csg-project .csg-note,
.csg-project figcaption {
  color: var(--csg-muted);
  font-size: var(--csg-small);
}
.csg-project .csg-meta {
  font-family: "Open Sans", Arial, sans-serif;
  margin-top: 0;
}
.csg-project .csg-lead { font-size: var(--csg-body); }
.csg-project a { color: var(--csg-accent); text-decoration: underline; text-underline-offset: .18em; }
.csg-project a:hover { color: #113f48; }
.csg-project a:focus-visible,
.csg-project [tabindex]:focus-visible {
  outline: 3px solid var(--csg-accent);
  outline-offset: 4px;
}
.csg-project .csg-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; margin: 28px 0; }
.csg-project .csg-actions a { font-family: "Open Sans", Arial, sans-serif; font-size: var(--csg-small); }
.csg-project .csg-actions .csg-primary {
  color: #fff;
  background: var(--csg-accent);
  border: 1px solid var(--csg-accent);
  border-radius: 3px;
  padding: 11px 17px;
  text-decoration: none;
}
.csg-project .csg-primary:hover { background: #113f48; }
.csg-project .csg-toc {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  border-block: 1px solid var(--csg-line);
  padding: 16px 0;
  margin: 32px 0;
  font: 600 var(--csg-small)/1.6 "Open Sans", Arial, sans-serif;
}
.csg-project section { margin: 44px 0; scroll-margin-top: 95px; }
.csg-project h2 { font-size: var(--csg-title); line-height: 1.3; margin-bottom: 22px; }
.csg-project h3 { font-size: var(--csg-body); margin-top: 30px; }
.csg-project li { margin-bottom: 12px; }
.csg-project .csg-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-top: 28px;
  padding-block: 20px;
  border-block: 1px solid var(--csg-line);
  font-family: "Open Sans", Arial, sans-serif;
}
.csg-project .csg-facts dt { color: var(--csg-muted); font-size: var(--csg-small); margin-bottom: 5px; }
.csg-project .csg-facts dd { margin: 0; font-size: var(--csg-small); font-weight: 600; }
.csg-project figure { margin: 28px 0; }
.csg-project figure img { display: block; width: 100%; max-width: 100%; height: auto; border: 1px solid var(--csg-line); }
.csg-project figcaption { margin-top: 12px; line-height: 1.6; }
.csg-project .csg-table-wrap { max-width: 100%; overflow-x: auto; margin: 24px 0; }
.csg-project table { width: 100%; border-collapse: collapse; font-size: var(--csg-small); line-height: 1.6; }
.csg-project caption { text-align: left; color: var(--csg-muted); font-weight: 600; padding-bottom: 12px; }
.csg-project th, .csg-project td { padding: 13px 12px; border-bottom: 1px solid var(--csg-line); vertical-align: top; text-align: left; }
.csg-project thead th { background: var(--csg-soft); color: var(--csg-ink); }
.csg-project tbody tr:nth-child(odd) { background: transparent; }
.csg-project .csg-resources { padding-left: 0; list-style: none; }
.csg-project .csg-resources li { padding: 15px 0; margin: 0; border-bottom: 1px solid var(--csg-line); }
.csg-project .csg-resources a { font-weight: 700; }
.csg-project .csg-resources span { display: block; color: var(--csg-muted); font-size: var(--csg-small); margin-top: 5px; }
.csg-project pre { max-width: 100%; overflow-x: auto; background: #172a30; color: #f2f6f6; border: 0; padding: 20px; border-radius: 3px; font-size: var(--csg-small); line-height: 1.7; }
.csg-project pre code { display: block; width: max-content; min-width: 100%; color: inherit; background: transparent; white-space: pre; }
.csg-project .csg-closing { border-top: 1px solid var(--csg-line); padding-top: 24px; color: var(--csg-muted); font-size: var(--csg-small); }
@media (max-width: 600px) {
  /* This stylesheet is loaded only by the CloudSpendGuard page. */
  .page-heading h1 { font-size: clamp(30px, 9vw, 40px); overflow-wrap: anywhere; }
  .csg-project .csg-facts { grid-template-columns: 1fr; gap: 15px; }
  .csg-project section { margin: 34px 0; }
  .csg-project th, .csg-project td { padding: 10px 8px; }
  .csg-project .csg-toc { gap: 10px 16px; }
}
