.vswk-article {
  color: #173d45;
  font-size: clamp(1rem, .98rem + .12vw, 1.075rem);
  line-height: 1.75;
  margin-inline: auto;
  max-width: 860px;
  overflow-wrap: break-word;
}
.vswk-article *, .vswk-article *::before, .vswk-article *::after { box-sizing: border-box; }
.vswk-article > * + * { margin-top: 1.25em; }
body.vs-site .vswk-article h2 {
  color: #043a47;
  font-size: clamp(1.65rem, 1.35rem + 1.1vw, 2.25rem);
  letter-spacing: -.025em;
  line-height: 1.18;
  margin-top: clamp(2.25rem, 5vw, 4rem);
}
body.vs-site .vswk-article h3 {
  color: #043a47;
  font-size: clamp(1.18rem, 1.08rem + .35vw, 1.42rem);
  line-height: 1.3;
  margin: 0;
}
.vswk-article .vswk-kicker {
  color: #187766;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.vswk-article .vswk-lead {
  color: #043a47;
  font-size: clamp(1.16rem, 1.05rem + .42vw, 1.42rem);
  font-weight: 550;
  line-height: 1.58;
}
.vswk-keypoint {
  background: #f0f8f5;
  border-left: 5px solid #238a73;
  border-radius: 0 16px 16px 0;
  color: #043a47;
  font-size: clamp(1.12rem, 1.04rem + .3vw, 1.32rem);
  font-weight: 650;
  margin: 2rem 0;
  padding: 1.35rem 1.5rem;
}
.vswk-keypoint p { margin: 0; }
.vswk-article ul, .vswk-article ol { padding-left: 1.35rem; }
.vswk-article li + li { margin-top: .65rem; }
.vswk-card-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 1.5rem;
}
.vswk-card {
  background: #fff;
  border: 1px solid #cfe3dc;
  border-radius: 18px;
  box-shadow: 0 12px 28px rgba(0, 63, 76, .055);
  display: flex;
  flex-direction: column;
  gap: .8rem;
  min-width: 0;
  padding: clamp(1.2rem, 3vw, 1.65rem);
}
.vswk-card p { margin: 0; }
.vswk-card a { font-size: .94rem; margin-top: auto; }
.vswk-article .vswk-card__number {
  align-items: center;
  background: #238a73;
  border-radius: 999px;
  color: #fff;
  display: inline-flex;
  font-size: .72rem;
  font-weight: 800;
  height: 2rem;
  justify-content: center;
  letter-spacing: .04em;
  width: 2rem;
}
.vswk-calculation {
  background: #fbf7ec;
  border: 1px solid #e7dcc0;
  border-radius: 18px;
  padding: clamp(1.2rem, 3vw, 1.8rem);
}
.vswk-calculation p { margin: .8rem 0 0; }
.vswk-calculation .vswk-kicker { margin: 0 0 .6rem; }
.vswk-calculation__formula { font-size: clamp(1.05rem, .95rem + .55vw, 1.5rem); color: #043a47; }
.vswk-article .vswk-steps {
  counter-reset: vswk-step;
  display: grid;
  gap: .8rem;
  list-style: none;
  padding: 0;
}
.vswk-steps li {
  background: #f8fbfa;
  border: 1px solid #dbeae5;
  border-radius: 14px;
  counter-increment: vswk-step;
  margin: 0;
  padding: 1rem 1.1rem 1rem 3.7rem;
  position: relative;
}
.vswk-steps li::before {
  align-items: center;
  background: #dff1eb;
  border-radius: 50%;
  color: #006454;
  content: counter(vswk-step);
  display: flex;
  font-size: .82rem;
  font-weight: 800;
  height: 2rem;
  justify-content: center;
  left: 1rem;
  position: absolute;
  top: .95rem;
  width: 2rem;
}
.vswk-next {
  background: linear-gradient(135deg, #eff8f5 0%, #f9fcfb 100%);
  border: 1px solid #c9e1d9;
  border-radius: 22px;
  margin-top: clamp(2.5rem, 6vw, 4.5rem);
  padding: clamp(1.4rem, 4vw, 2.25rem);
}
.vswk-next h2 { font-size: clamp(1.55rem, 1.3rem + .85vw, 2rem); margin: .35rem 0 0; }
.vswk-next p { margin-bottom: 0; }
.vswk-next .vswk-kicker { margin-top: 0; }
.vswk-article a { color: #005e51; text-underline-offset: .18em; }
.vswk-article a:focus-visible { outline: 3px solid #c18a0c; outline-offset: 3px; }
.vswk-article .vswk-ref { font-size: .86em; white-space: nowrap; }
.vswk-sources {
  border-top: 1px solid #d9e6e2;
  font-size: .92rem;
  margin-top: clamp(2.5rem, 6vw, 4rem);
  padding-top: 1.5rem;
}
.vswk-sources h2 { font-size: clamp(1.25rem, 1.12rem + .4vw, 1.52rem); margin-top: 0; }
.vswk-sources li { scroll-margin-top: 6rem; }
@media (max-width: 700px) { .vswk-card-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) {
  .vswk-article *, .vswk-article *::before, .vswk-article *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Scoped additions for this article only. The theme owns fonts, title and hero. */
.vswk-article [id] { scroll-margin-top: 7rem; }
body.vs-site .vswk-article h2, body.vs-site .vswk-article h3 { max-width: none; }
.vswk-jump { border: 1px solid #dbe5e1; border-radius: 18px; background:#f8fbfa; padding:1.2rem 1.5rem; margin:2rem 0; }
.vswk-jump ul { margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem 1.5rem; list-style:none; padding:0; }
.vswk-jump li, body.vs-site .vswk-jump p { margin:0; }
body.vs-site .vswk-jump .vswk-kicker { margin-bottom:.75rem; }
.vswk-example { border:1px solid #e3dbc6; background:#f7f3e8; border-radius:18px; padding:1.4rem 1.5rem; margin:1.6rem 0; }
body.vs-site .vswk-example h3, body.vs-site .vswk-keypoint h3, body.vs-site .vswk-note h3 { margin-bottom:.8rem; }
body.vs-site .vswk-example p:last-child, body.vs-site .vswk-note p:last-child { margin-bottom:0; }
body.vs-site .vswk-article .vswk-small { font-size:.92rem; line-height:1.55; color:#526a6e; }
body.vs-site .vswk-article table.vswk-table { display:table; width:100%; min-width:0; table-layout:fixed; border-collapse:collapse; border:1px solid #dbe5e1; margin:1.25rem 0; font-size:1rem; line-height:1.5; background:#fff; }
.vswk-table caption { text-align:left; font-size:.92rem; color:#526a6e; padding:0 0 .6rem; caption-side:top; }
body.vs-site .vswk-article .vswk-table th, body.vs-site .vswk-article .vswk-table td { padding:.85rem 1rem; vertical-align:top; border-bottom:1px solid #dbe5e1; overflow-wrap:break-word; }
body.vs-site .vswk-article .vswk-table thead th { background:#eaf3ef; color:#043a47; text-align:left; font-weight:700; }
body.vs-site .vswk-article .vswk-table tbody th { background:transparent; text-align:left; font-weight:500; }
body.vs-site .vswk-article .vswk-table th:first-child { width:70%; }
body.vs-site .vswk-article .vswk-table tbody td { color:#043a47; font-weight:700; white-space:nowrap; }
.vswk-keypoint { font-size:1.06rem; font-weight:400; }
.vswk-note { border:1px solid #cfe3dc; border-radius:18px; padding:1.4rem 1.5rem; margin:2rem 0; }
.vswk-note dl { margin:0 0 1.2rem; }
.vswk-note dl > div { display:grid; grid-template-columns:1fr 2fr; gap:.6rem; border-bottom:1px solid #dbe5e1; padding:.65rem 0; }
.vswk-note dt { font-weight:700; color:#043a47; }
.vswk-note dd { margin:0; }
body.vs-site .vswk-card p { margin:0; }
.vswk-sources a { overflow-wrap:anywhere; }
body.vs-site .vswk-article .vswk-sources h2 { font-size:1.5rem; margin-top:0; }
body.vs-site .vswk-article .vswk-next h2 { font-size:1.65rem; margin-top:.4rem; }
@media (max-width:600px) {
 .vswk-jump ul, .vswk-note dl > div { grid-template-columns:1fr; }
 .vswk-example, .vswk-note, .vswk-jump { padding:1.15rem; }
 body.vs-site .vswk-article .vswk-table th, body.vs-site .vswk-article .vswk-table td { padding:.75rem .65rem; }
 body.vs-site .vswk-article .vswk-table th:first-child { width:66%; }
 .vswk-article .vswk-steps li { padding-left:3.3rem; }
}
@media print { .vswk-jump { display:none; } .vswk-example, .vswk-card, .vswk-keypoint, .vswk-note, .vswk-steps li { break-inside:avoid; } }
/* This stylesheet loads only on the owned article. Let its long title use the reading width. */
body.vs-site .vs-single-article .vs-article-header h1 {
 max-width:none;
 -webkit-hyphens:none;
 hyphens:none;
 overflow-wrap:normal;
}
