.tolerance-page {
  --tol-ink: #25313a;
  --tol-muted: #52616c;
  --tol-blue: #006fa8;
  --tol-blue-dark: #0d3048;
  --tol-green: #70a83b;
  --tol-line: #dbe3e8;
  --tol-soft: #f3f5f6;
  background: #fff;
  color: var(--tol-ink);
}

.tolerance-page h1,
.tolerance-page h2,
.tolerance-page h3,
.tolerance-page p,
.tolerance-page li,
.tolerance-page span {
  margin-top: 0;
  overflow-wrap: anywhere;
}

.tolerance-page .article-reading {
  width: min(calc(100% - 48px), 820px);
  margin-right: auto;
  margin-left: auto;
}

.tolerance-title {
  padding: 58px 0 66px;
  background: var(--tol-soft);
}

.tolerance-title .pl-container { max-width: 1160px; }

.tolerance-kicker {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
  margin-bottom: 20px;
  color: var(--tol-blue);
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
}

.tolerance-kicker span + span::before {
  display: inline-block;
  width: 5px;
  height: 5px;
  margin: 0 20px 3px 0;
  border-radius: 50%;
  background: var(--tol-green);
  content: "";
}

.tolerance-title h1 {
  max-width: 980px;
  margin-bottom: 26px;
  color: var(--tol-ink);
  font-size: 48px;
  line-height: 1.08;
  letter-spacing: 0;
}

.tolerance-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  align-items: center;
  color: var(--tol-muted);
  font-size: 14px;
  font-weight: 650;
}

.tolerance-author { display: inline-flex; gap: 9px; align-items: center; }
.tolerance-author b {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: var(--tol-blue);
  color: #fff;
}

.tolerance-opening { padding: 58px 0 34px; }
.tolerance-answer {
  margin-bottom: 36px;
  color: var(--tol-ink);
  font-size: 21px;
  font-weight: 650;
  line-height: 1.68;
}

.tolerance-hero { max-width: 1160px; margin: 0 auto; }
.tolerance-hero img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
  border-radius: 4px;
  background: #edf1f3;
}

.article-inline-figure figcaption {
  margin-top: 11px;
  color: #687781;
  font-size: 13px;
  line-height: 1.55;
}

.tolerance-toc {
  margin-top: 48px;
  margin-bottom: 62px;
  padding: 24px 0;
  border-top: 1px solid var(--tol-line);
  border-bottom: 1px solid var(--tol-line);
}
.tolerance-toc h2 { margin-bottom: 14px; font-size: 17px; }
.tolerance-toc div {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}
.tolerance-toc a {
  display: block;
  width: fit-content;
  max-width: 100%;
  color: var(--tol-blue-dark);
  font-size: 14px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.tolerance-prose > h2 {
  margin: 76px 0 22px;
  padding-top: 16px;
  border-top: 1px solid var(--tol-line);
  color: var(--tol-ink);
  font-size: 34px;
  line-height: 1.2;
  letter-spacing: 0;
  scroll-margin-top: 140px;
}
.tolerance-prose > h3 {
  margin: 46px 0 16px;
  color: var(--tol-blue-dark);
  font-size: 23px;
  line-height: 1.3;
  letter-spacing: 0;
  scroll-margin-top: 140px;
}
.tolerance-prose p,
.tolerance-prose li {
  color: var(--tol-muted);
  font-size: 17px;
  line-height: 1.78;
}
.tolerance-prose p { margin-bottom: 22px; }
.tolerance-prose ul,
.tolerance-prose ol { margin: 0 0 28px; padding-left: 24px; }
.tolerance-prose li { margin-bottom: 11px; }
.tolerance-prose li::marker { color: var(--tol-green); font-weight: 800; }
.tolerance-prose a { color: #005f91; text-decoration: underline; text-underline-offset: 3px; }
.tolerance-prose strong { color: var(--tol-ink); }
.tolerance-prose blockquote {
  margin: 32px 0;
  padding: 22px 26px;
  border-left: 4px solid var(--tol-green);
  background: #f5f8fa;
}
.tolerance-prose blockquote p { margin-bottom: 0; }

.tolerance-prose pre {
  box-sizing: border-box;
  max-width: 100%;
  overflow-x: auto;
  padding: 18px 20px;
  background: #132632;
  color: #f6f8f9;
  border-radius: 4px;
}
.tolerance-prose pre code { display: block; width: max-content; min-width: 100%; }

.article-table-wrap {
  width: min(1100px, calc(100vw - 48px));
  margin: 32px 50%;
  overflow-x: auto;
  transform: translateX(-50%);
  border: 1px solid var(--tol-line);
}
.article-table-wrap table { width: 100%; min-width: 720px; border-collapse: collapse; }
.article-table-wrap th,
.article-table-wrap td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--tol-line);
  color: var(--tol-muted);
  font-size: 14px;
  line-height: 1.55;
  text-align: left;
  vertical-align: top;
}
.article-table-wrap th { background: #eef3f5; color: var(--tol-ink); font-weight: 800; }

.article-inline-figure { width: min(1050px, calc(100vw - 48px)); margin: 38px 50%; transform: translateX(-50%); }
.article-inline-figure img { display: block; width: 100%; height: auto; max-height: 560px; object-fit: cover; border-radius: 4px; }

.article-faq { margin-top: 76px; padding-top: 16px; border-top: 1px solid var(--tol-line); }
.article-faq h2 { margin-bottom: 24px; font-size: 34px; line-height: 1.2; }
.article-faq details { border-top: 1px solid var(--tol-line); }
.article-faq details:last-child { border-bottom: 1px solid var(--tol-line); }
.article-faq summary {
  position: relative;
  padding: 19px 42px 19px 0;
  color: var(--tol-ink);
  font-size: 17px;
  font-weight: 750;
  line-height: 1.45;
  cursor: pointer;
  list-style: none;
}
.article-faq summary::after { position: absolute; right: 4px; content: "+"; color: var(--tol-blue); font-size: 24px; }
.article-faq details[open] summary::after { content: "−"; }
.article-faq-answer { padding: 0 0 18px; }

.tolerance-cta { margin-top: 84px; padding: 56px 0; background: var(--tol-blue-dark); }
.tolerance-cta .article-reading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: center; }
.tolerance-cta span { color: #a9d06f; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.tolerance-cta h2 { margin: 8px 0 12px; color: #fff; font-size: 30px; line-height: 1.2; }
.tolerance-cta p { margin-bottom: 0; color: rgba(255,255,255,.74); font-size: 16px; line-height: 1.65; }
.tolerance-cta .pl-btn { white-space: nowrap; }

.tolerance-related { padding: 70px 0 92px; }
.tolerance-related h2 { margin-bottom: 20px; font-size: 28px; }
.tolerance-related div { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.tolerance-related a { color: var(--tol-blue-dark); font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 720px) {
  .tolerance-title { padding: 40px 0 46px; }
  .tolerance-title h1 { font-size: 36px; line-height: 1.12; }
  .tolerance-opening { padding-top: 38px; }
  .tolerance-answer { font-size: 18px; }
  .tolerance-prose > h2,
  .article-faq h2 { font-size: 29px; }
  .tolerance-prose > h3 { font-size: 21px; }
  .tolerance-prose p,
  .tolerance-prose li { font-size: 16px; }
  .tolerance-cta .article-reading { grid-template-columns: 1fr; }
  .tolerance-cta .pl-btn { width: 100%; }
}

@media (max-width: 420px) {
  .tolerance-page .article-reading { width: min(calc(100% - 32px), 820px); }
  .tolerance-title h1 { font-size: 31px; }
  .tolerance-meta { gap: 10px 16px; }
  .article-table-wrap,
  .article-inline-figure { width: calc(100vw - 32px); }
}
