/* Prose primitives for the static educational pages. All color/spacing
   comes from the design-system tokens in app.css. */

.article-hero .article-updated { color: var(--pf-muted); font-size: 14px; margin-top: 14px; }

.article { max-width: 780px; font-size: 15px; }
.article > * + * { margin-top: 20px; }

/* Two-column article: content left-justified, ad rail on the right. The
   article keeps its 780px measure rather than stretching into the freed
   width, so long lines stay readable. */
.article-layout { display: grid; grid-template-columns: minmax(0, 780px) 300px; gap: 40px; align-items: start; }

/* No rail (premium visitor, or ads off) means no second column and no gap to
   leave behind: the template omits the aside entirely rather than emptying it. */
.article-layout:not(:has(.article-side)) { grid-template-columns: minmax(0, 780px); gap: 0; }

.article-side { position: sticky; top: 80px; display: flex; flex-direction: column; gap: 24px; }

@media (max-width: 1023px) {
  .article-layout { grid-template-columns: 1fr; }

  /* The rail becomes a row under the article, so it must not stay pinned. */
  .article-side { position: static; flex-direction: row; flex-wrap: wrap; justify-content: center; margin-top: 40px; }
}

.a-section { margin-top: 44px; }
.a-section h2 { font-size: 24px; color: var(--pf-heading); margin-bottom: 14px; }
.a-section h3 { font-size: 17px; color: var(--pf-heading); margin: 0 0 12px; }
.a-section p { color: var(--pf-text); line-height: 1.8; }
.a-section ul { color: var(--pf-text); line-height: 1.9; padding-left: 22px; margin-top: 12px; }

.a-card {
  background: var(--pf-card); border: 1px solid var(--pf-line);
  border-radius: var(--pf-radius-lg); padding: 24px; box-shadow: var(--pf-shadow-card);
}

.a-callout {
  background: var(--pf-teal-bg); border: 1px solid var(--pf-teal-line);
  border-radius: var(--pf-radius-lg); padding: 20px 22px; line-height: 1.75; color: var(--pf-text);
}
.a-callout--warn { background: #fff6e6; border-color: #f3d9a3; }
.a-callout--risk { background: #fdecec; border-color: #f4c3c3; }

.a-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.a-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }

.a-stat { background: var(--pf-subtle); border-radius: var(--pf-radius); padding: 16px; }
.a-stat .k { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--pf-teal-deep); }
.a-stat .v { font-size: 18px; font-weight: 800; color: var(--pf-heading); margin: 4px 0; }
.a-stat .d { font-size: 13px; color: var(--pf-muted); }

.a-rule { display: flex; gap: 14px; align-items: flex-start; }
.a-rule + .a-rule { margin-top: 12px; }
.a-rule-num {
  flex: 0 0 auto; width: 34px; height: 34px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); color: #fff; background: var(--pf-green);
}

.a-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.a-table th, .a-table td { text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--pf-line); }
.a-table th { color: var(--pf-teal-deep); background: var(--pf-subtle); }
.a-table td { color: var(--pf-text); line-height: 1.6; vertical-align: top; }

.a-split { text-align: center; }
.a-split .v { font-size: 26px; font-weight: 900; color: var(--pf-green-shade); }
.a-split .l { font-size: 13px; color: var(--pf-muted); }

.article-cta { margin-top: 48px; }

@media (max-width: 720px) {
  .a-grid-2, .a-grid-3 { grid-template-columns: 1fr; }
  .a-table { display: block; overflow-x: auto; }
}
