/* Shared table structure for service comparisons and article reference tables.
   Use a caption, column headers, and a left-hand row header in every table. */
.comparison-table-wrap {
  overflow-x: auto;
  max-width: 100%;
  margin-block: 24px;
  border: 1px solid var(--border-color);
  border-radius: var(--radius-panel);
  background: var(--surface-bg);
}
.comparison-table-wrap:focus-visible {
  outline: 2px solid var(--accent-color);
  outline-offset: 4px;
}
.comparison-table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  table-layout: fixed;
  text-align: left;
  font-size: var(--fs-secondary);
  line-height: 1.6;
  margin: 0;
}
.comparison-table caption {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  padding: 0;
  margin: -1px;
  border: 0;
  white-space: nowrap;
  clip-path: inset(50%);
}
.comparison-table th,
.comparison-table td {
  padding: 20px 24px;
  vertical-align: top;
  text-align: left;
  overflow-wrap: break-word;
}
.comparison-table thead th {
  background: var(--surface-muted-bg);
  color: var(--heading-color);
  font-weight: 700;
}
.comparison-table thead th:first-child { width: 22%; }
.comparison-table tbody th {
  color: var(--heading-color);
  font-weight: 600;
}
.comparison-table td { color: var(--text-secondary); }
.comparison-table tbody tr { border-top: 1px solid var(--border-color); }
.comparison-table th + th,
.comparison-table th + td,
.comparison-table td + td { border-left: 1px solid var(--border-color); }
.comparison-table-scroll-hint { display: none; }
@media (max-width: 640px) {
  .comparison-table th,
  .comparison-table td { padding: 16px; }
  .comparison-table-scroll-hint {
    display: block;
    margin-bottom: 10px;
    color: var(--text-secondary);
    font-size: var(--fs-note);
  }
}
