/* tc-layout.css — site shell, containers, grids, responsive layout. */

.tc-site { display: flex; flex-direction: column; min-height: 100vh; }
.tc-main { flex: 1 0 auto; }

.tc-container {
  width: min(100% - (var(--tc-gutter) * 2), var(--tc-content-width));
  margin-inline: auto;
}
.tc-container--site { max-width: none; width: min(100% - (var(--tc-gutter) * 2), var(--tc-site-width)); }
.tc-container--wide { width: min(100% - (var(--tc-gutter) * 2), var(--tc-site-width)); }

.tc-reading { max-width: var(--tc-reading-width); }

/* Section rhythm */
.tc-section { padding-block: var(--tc-space-12); }
.tc-section + .tc-section { border-top: 1px solid var(--tc-border); }
.tc-section__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--tc-space-4);
  flex-wrap: wrap;
  margin-bottom: var(--tc-space-6);
}
.tc-section__title { margin: 0; font-size: var(--tc-fs-h2); }
.tc-section__link { font-family: var(--tc-mono); font-size: var(--tc-fs-micro); letter-spacing: .1em; text-transform: uppercase; color: var(--tc-secondary); }

/* Auto-collapsing grids: no media queries needed. */
.tc-grid { display: grid; gap: var(--tc-space-6); }
.tc-grid--cards {
  grid-template-columns: repeat(auto-fit, minmax(var(--tc-card-min), 1fr));
  gap: 1px;
  background: var(--tc-border);
  border: 1px solid var(--tc-border);
  border-radius: var(--tc-radius);
  overflow: hidden;
}
.tc-grid--topics { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--tc-space-4); }
.tc-grid--related { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--tc-space-6); }

/* Two-column editorial split that wraps instead of squeezing. */
.tc-split { display: flex; flex-wrap: wrap; gap: var(--tc-space-12); }
.tc-split__main { flex: 3 1 400px; min-width: 0; }
.tc-split__aside { flex: 1 1 260px; min-width: 0; }

/* Article shell: one column at the container width. Body text, headings, and
   full-width elements like tables share the same left and right edge. */
.tc-article {
  width: 100%;
  padding-block: var(--tc-space-12);
}
.tc-article__body > *,
.tc-article__figure {
  width: auto;
  max-width: 100%;
  margin-left: 0;
  transform: none;
  box-sizing: border-box;
}

.tc-article__footer { margin-top: var(--tc-space-12); padding-top: var(--tc-space-8); border-top: 1px solid var(--tc-border); }

/* Footer shell */
.tc-site__footer-inner { display: flex; flex-wrap: wrap; gap: var(--tc-space-8); padding-block: var(--tc-space-12) var(--tc-space-8); }
.tc-site__footer-brand { flex: 2 1 300px; min-width: 0; }
.tc-site__footer-nav { flex: 1 1 150px; }

/* No horizontal overflow at 320px. */
.tc-scroll-x { overflow-x: auto; -webkit-overflow-scrolling: touch; }
