/*
Theme Name: tc-editorial
Theme URI: http://truthisconcrete.org
Author: truthisconcrete editorial
Description: Brutalist academic theme for truthisconcrete — an independent publication on critical art theory and political art.
Version: 1.0.0
Text Domain: tc-editorial
*/

/* === Design Tokens === */
:root {
    --tc-mauve: #5f2a5e;
    --tc-mauve-dark: #461346;
    --tc-ochre: #c79f3d;
    --tc-cream: #f8f3ec;
    --tc-ink: #1a0e1c;
    --tc-outline: #80737d;
    --tc-outline-variant: #d2c2cd;
    --tc-surface-variant: #ece4e0;
    --tc-surface-container: #f0e8e2;
    --tc-on-surface-variant: #4f434c;
    --tc-max-w: 960px;
    --tc-gutter: 24px;
    --tc-stack-sm: 8px;
    --tc-stack-md: 24px;
    --tc-stack-lg: 48px;
}

/* === Reset & Base === */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    background-color: var(--tc-cream);
    color: var(--tc-ink);
    font-family: 'Karla', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

::selection {
    background-color: var(--tc-ochre);
    color: var(--tc-ink);
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button { cursor: pointer; font: inherit; }

/* === Typography === */
.tc-headline-xl {
    font-family: 'Spectral', serif;
    font-size: 48px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
}
.tc-headline-lg {
    font-family: 'Spectral', serif;
    font-size: 32px;
    font-weight: 500;
    line-height: 1.2;
}
.tc-headline-md {
    font-family: 'Spectral', serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.3;
}
.tc-body-lg {
    font-family: 'Karla', sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.6;
}
.tc-body-md {
    font-family: 'Karla', sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
}
.tc-metadata {
    font-family: 'Karla', sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.03em;
}
.tc-label {
    font-family: 'Karla', sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* === Layout === */
.tc-container {
    max-width: var(--tc-max-w);
    margin-left: auto;
    margin-right: auto;
    padding-left: 16px;
    padding-right: 16px;
}

.tc-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--tc-gutter);
}
@media (min-width: 768px) {
    .tc-grid {
        grid-template-columns: repeat(12, 1fr);
    }
    .tc-col-7 { grid-column: span 7; }
    .tc-col-5 { grid-column: span 5; }
    .tc-col-3 { grid-column: span 3; }
    .tc-col-2 { grid-column: span 2; }
}

/* === Masthead (Header) === */
.tc-masthead {
    width: 100%;
    height: 56px;
    border-bottom: 1px solid var(--tc-mauve);
    background-color: var(--tc-cream);
    position: sticky;
    top: 0;
    z-index: 50;
}
.tc-masthead-inner {
    max-width: var(--tc-max-w);
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    padding: 0 16px;
}
.tc-brand {
    display: flex;
    align-items: center;
    gap: 8px;
}
.tc-brand-logo {
    height: 40px;
    width: auto;
}
.tc-wordmark {
    font-family: 'Spectral', serif;
    font-size: 18px;
    font-weight: 500;
    color: var(--tc-mauve);
    letter-spacing: -0.03em;
}
.tc-nav {
    display: none;
    gap: 24px;
    align-items: center;
}
@media (min-width: 768px) {
    .tc-nav { display: flex; }
    .tc-ham-btn { display: none; }
}
.tc-nav-link {
    font-family: 'Karla', sans-serif;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--tc-outline);
    border-bottom: 1px solid transparent;
    padding-bottom: 2px;
}
.tc-nav-link:hover {
    color: var(--tc-ochre);
}
.tc-nav-link.is-active {
    color: var(--tc-mauve);
    border-bottom-color: var(--tc-mauve);
}
.tc-ham-btn {
    background: none;
    border: none;
    color: var(--tc-mauve);
    font-size: 24px;
    line-height: 1;
}

/* === Mobile Nav === */
.tc-mobile-nav {
    display: none;
    position: fixed;
    top: 56px;
    left: 0;
    right: 0;
    background: var(--tc-cream);
    border-bottom: 1px solid var(--tc-outline-variant);
    z-index: 49;
    padding: 16px;
    flex-direction: column;
    gap: 12px;
}
.tc-mobile-nav.is-open { display: flex; }
.tc-mobile-nav .tc-nav-link { font-size: 14px; }
@media (min-width: 768px) {
    .tc-mobile-nav { display: none !important; }
}

/* === Footer === */
.tc-colophon {
    width: 100%;
    border-top: 1px solid var(--tc-outline-variant);
    margin-top: 64px;
    background-color: var(--tc-cream);
}
.tc-colophon-inner {
    max-width: var(--tc-max-w);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    padding: 48px 16px;
}
.tc-colophon-copy {
    font-size: 13px;
    color: var(--tc-outline);
}
.tc-colophon-nav {
    display: flex;
    gap: 16px;
    justify-content: flex-end;
}
.tc-colophon-link {
    font-size: 13px;
    color: var(--tc-outline);
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 0.04em;
}
.tc-colophon-link:hover { color: var(--tc-ochre); }

/* === Color Utilities === */
.tc-clr-mauve { color: var(--tc-mauve); }
.tc-clr-ochre { color: var(--tc-ochre); }
.tc-clr-ink { color: var(--tc-ink); }
.tc-clr-outline { color: var(--tc-outline); }
.tc-clr-muted { color: var(--tc-on-surface-variant); }

/* === Borders === */
.tc-divider { border-bottom: 1px solid var(--tc-outline-variant); }
.tc-divider-strong { border-bottom: 1px solid var(--tc-outline); }
.tc-border-l { border-left: 1px solid var(--tc-outline-variant); }
.tc-border-t { border-top: 1px solid var(--tc-outline-variant); }

/* === Homepage Hero === */
.tc-hero-statement {
    margin-bottom: var(--tc-stack-lg);
    border-bottom: 1px solid var(--tc-outline-variant);
    padding-bottom: var(--tc-stack-lg);
    padding-top: var(--tc-stack-md);
}
.tc-hero-statement h1 {
    color: var(--tc-mauve);
    max-width: 48rem;
}

/* === Index Card (archive list item) === */
.tc-index-card {
    display: flex;
    gap: var(--tc-stack-sm);
    border-top: 1px solid var(--tc-outline);
    padding: var(--tc-stack-md) 0;
}
.tc-index-card:hover {
    background-color: var(--tc-surface-container);
}
.tc-index-card-thumb {
    width: 96px;
    height: 96px;
    flex-shrink: 0;
    border: 1px solid var(--tc-outline);
    overflow: hidden;
}
.tc-index-card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: grayscale(100%) contrast(1.25);
}
.tc-index-card-body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex-grow: 1;
}
.tc-index-card-title {
    font-family: 'Spectral', serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--tc-mauve-dark);
}
.tc-index-card:hover .tc-index-card-title {
    color: var(--tc-ochre);
}
.tc-index-card-meta {
    font-size: 13px;
    color: var(--tc-on-surface-variant);
    margin-top: 4px;
}
.tc-index-card-tags {
    font-size: 13px;
    color: var(--tc-outline);
    display: flex;
    gap: 8px;
}

/* === Featured Item === */
.tc-featured {
    border-top: 1px solid var(--tc-outline-variant);
    padding-top: var(--tc-stack-md);
}
.tc-featured-wrap {
    display: flex;
    flex-direction: column;
    gap: var(--tc-gutter);
}
@media (min-width: 640px) {
    .tc-featured-wrap { flex-direction: row; }
    .tc-featured-img { width: 33.333%; }
    .tc-featured-body { width: 66.667%; }
}
.tc-featured-img img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border: 1px solid var(--tc-outline-variant);
}

/* === Buttons === */
.tc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid var(--tc-mauve);
    padding: 8px 16px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--tc-mauve);
    background: transparent;
}
.tc-btn:hover {
    background-color: var(--tc-ochre);
    border-color: var(--tc-ochre);
    color: var(--tc-ink);
}

/* === Timeline (homepage sidebar) === */
.tc-timeline-item {
    border-top: 1px solid var(--tc-outline-variant);
    padding: var(--tc-stack-sm) 0;
    display: flex;
    gap: 16px;
    cursor: pointer;
}
.tc-timeline-item:hover {
    background-color: var(--tc-surface-variant);
}
.tc-timeline-year {
    font-size: 13px;
    font-weight: 600;
    color: var(--tc-mauve);
    width: 48px;
    flex-shrink: 0;
    padding-top: 2px;
}
.tc-timeline-title {
    font-size: 16px;
    color: var(--tc-ink);
    line-height: 1.4;
}
.tc-timeline-item:hover .tc-timeline-title {
    color: var(--tc-mauve);
}
.tc-timeline-sub {
    font-size: 13px;
    color: var(--tc-outline);
    margin-top: 4px;
}

/* === Quote Block === */
.tc-quote-block {
    background-color: var(--tc-surface-variant);
    padding: 16px;
}
.tc-quote-label {
    font-size: 13px;
    color: var(--tc-outline);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 8px;
}
.tc-quote-text {
    font-family: 'Spectral', serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.3;
    font-style: italic;
    color: var(--tc-ink);
}
.tc-quote-attr {
    font-size: 13px;
    color: var(--tc-outline);
    text-align: right;
    margin-top: 8px;
}

/* === Artist Profile === */
.tc-profile-hero img {
    width: 100%;
    height: auto;
    object-fit: cover;
    filter: grayscale(100%);
    mix-blend-mode: multiply;
    border: 1px solid var(--tc-outline);
}
.tc-profile-meta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    font-size: 13px;
}
.tc-profile-meta-label {
    color: var(--tc-outline);
    text-transform: uppercase;
}
.tc-profile-meta-value {
    color: var(--tc-ink);
    text-align: right;
}
.tc-profile-meta-divider {
    grid-column: span 2;
    border-bottom: 1px solid var(--tc-outline-variant);
    margin: 4px 0;
}

/* === Works List === */
.tc-works-item {
    padding: 16px 0;
    border-bottom: 1px solid var(--tc-outline);
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}
.tc-works-item:hover {
    background-color: var(--tc-surface-variant);
}
.tc-works-title {
    font-size: 16px;
    font-weight: 500;
    color: var(--tc-ink);
}
.tc-works-year {
    font-size: 13px;
    color: var(--tc-outline);
}

/* === External Links === */
.tc-ext-link {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--tc-outline);
    padding: 8px 12px;
    font-size: 13px;
    color: var(--tc-mauve-dark);
}
.tc-ext-link:hover {
    color: var(--tc-ochre);
}

/* === Essay/Manifesto Body === */
.tc-essay-body {
    font-family: 'Karla', sans-serif;
    font-size: 18px;
    line-height: 1.6;
    color: var(--tc-ink);
}
.tc-essay-body p {
    margin-bottom: 24px;
}
.tc-essay-body h2 {
    font-family: 'Spectral', serif;
    font-size: 32px;
    font-weight: 500;
    line-height: 1.2;
    color: var(--tc-mauve-dark);
    margin-top: 48px;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--tc-outline);
}
.tc-essay-body blockquote {
    position: relative;
    margin: 48px 0 48px 32px;
}
.tc-essay-body blockquote::before {
    content: "\201C";
    position: absolute;
    left: -2rem;
    top: -0.5rem;
    color: var(--tc-ochre);
    font-size: 4rem;
    font-family: 'Spectral', serif;
    line-height: 1;
}
.tc-essay-body blockquote p {
    font-family: 'Spectral', serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.3;
    font-style: italic;
    color: var(--tc-mauve-dark);
    margin-bottom: 0;
}
.tc-essay-body .tc-drop-cap::first-letter {
    float: left;
    font-size: 4.5rem;
    line-height: 0.8;
    font-family: 'Spectral', serif;
    font-weight: 700;
    padding-right: 12px;
    padding-top: 8px;
    color: var(--tc-mauve);
}

/* === Ordered List (manifesto-style) === */
.tc-manifesto-list {
    list-style: none;
    padding: 0;
}
.tc-manifesto-list li {
    display: flex;
    align-items: flex-start;
    border-left: 2px solid var(--tc-outline-variant);
    padding-left: 16px;
    margin-bottom: 16px;
}
.tc-manifesto-list .tc-list-num {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--tc-mauve-dark);
    width: 32px;
    flex-shrink: 0;
}

/* === Marginalia (sidebar) === */
.tc-marginalia {
    font-size: 13px;
    color: var(--tc-on-surface-variant);
}
.tc-marginalia-section {
    border-top: 1px solid var(--tc-outline);
    padding-top: 16px;
    margin-bottom: 32px;
}
.tc-marginalia-section h3 {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--tc-mauve);
    margin-bottom: 12px;
}

/* === Manifesto Wrapper === */
.tc-manifesto-wrapper {
    padding: var(--tc-stack-lg) 0;
}

/* === Talks / Events === */
.tc-talk-entry {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--tc-gutter);
    padding: 32px 0;
    border-bottom: 1px solid var(--tc-outline);
    cursor: pointer;
}
@media (min-width: 768px) {
    .tc-talk-entry {
        grid-template-columns: 7fr 5fr;
    }
}
.tc-talk-entry:hover {
    background-color: var(--tc-surface-container);
}
.tc-talk-title {
    font-family: 'Spectral', serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--tc-ink);
    margin-bottom: 8px;
}
.tc-talk-entry:hover .tc-talk-title {
    color: var(--tc-ochre);
}
.tc-talk-desc {
    font-size: 16px;
    color: var(--tc-on-surface-variant);
}
.tc-talk-meta {
    display: flex;
    flex-direction: column;
    font-size: 13px;
    color: var(--tc-mauve);
}
@media (min-width: 768px) {
    .tc-talk-meta { align-items: flex-end; }
}
.tc-talk-badge {
    margin-top: 16px;
    border: 1px solid var(--tc-outline);
    padding: 4px 8px;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--tc-on-surface-variant);
    display: inline-block;
}

/* === Talk Detail Attendees === */
.tc-attendee-item {
    padding: 12px 8px;
    border-bottom: 1px solid var(--tc-outline);
    display: flex;
    justify-content: space-between;
    align-items: baseline;
}
.tc-attendee-item:hover {
    background-color: var(--tc-surface-variant);
}
.tc-attendee-name {
    font-size: 16px;
    color: var(--tc-ink);
}
.tc-attendee-role {
    font-size: 13px;
    color: var(--tc-outline);
}

/* === Referenced Works Cards === */
.tc-ref-card {
    border: 1px solid var(--tc-outline);
    padding: 16px;
    background: #fff;
    margin-bottom: 16px;
}
.tc-ref-card-title {
    font-size: 16px;
    font-weight: 500;
    color: var(--tc-ink);
    margin-bottom: 4px;
}
.tc-ref-card-meta {
    font-size: 13px;
    color: var(--tc-outline);
    margin-bottom: 12px;
}
.tc-ref-card-desc {
    font-size: 13px;
    color: var(--tc-on-surface-variant);
    line-height: 1.5;
}

/* === Library (reading list) === */
.tc-lib-entry {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 16px 0;
    border-bottom: 1px solid var(--tc-outline-variant);
}
@media (min-width: 768px) {
    .tc-lib-entry {
        grid-template-columns: 3fr 7fr 2fr;
    }
}
.tc-lib-entry:hover {
    background-color: var(--tc-surface-container);
}
.tc-lib-author {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--tc-on-surface-variant);
}
.tc-lib-title {
    font-size: 18px;
    font-style: italic;
    color: var(--tc-ink);
}
.tc-lib-publisher {
    font-size: 13px;
    color: var(--tc-on-surface-variant);
    margin-top: 4px;
}
.tc-lib-year {
    font-size: 13px;
    color: var(--tc-outline);
}
@media (min-width: 768px) {
    .tc-lib-year { text-align: right; }
}

/* === Library Section Headers === */
.tc-lib-section-title {
    font-family: 'Spectral', serif;
    font-size: 24px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--tc-ink);
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.tc-lib-section-title::after {
    content: '';
    flex-grow: 1;
    height: 1px;
    background-color: var(--tc-outline-variant);
}

/* === Contact === */
.tc-contact-label {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--tc-mauve);
    padding-bottom: 8px;
    border-bottom: 1px solid var(--tc-outline-variant);
    margin-bottom: var(--tc-stack-sm);
}

/* === Pagination === */
.tc-pagination {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--tc-stack-md) 0;
}
.tc-pagination-btn {
    border: 1px solid var(--tc-outline);
    padding: 8px 16px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--tc-mauve-dark);
    background: transparent;
}
.tc-pagination-btn:hover {
    color: var(--tc-ochre);
    border-color: var(--tc-ochre);
}
.tc-pagination-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.tc-pagination-info {
    font-size: 13px;
    color: var(--tc-outline);
}

/* === Filters Sidebar === */
.tc-filter-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 12px;
}
.tc-filter-label {
    font-weight: 600;
    font-size: 13px;
    color: var(--tc-ink);
}
.tc-filter-select {
    background: transparent;
    border: 1px solid var(--tc-outline);
    color: var(--tc-ink);
    border-radius: 0;
    padding: 4px;
    font-size: 13px;
    font-family: 'Karla', sans-serif;
}
.tc-filter-select:focus {
    outline: none;
    border-color: var(--tc-mauve);
}
.tc-tag-btn {
    border: 1px solid var(--tc-outline);
    padding: 4px 8px;
    font-size: 13px;
    background: transparent;
    color: var(--tc-ink);
}
.tc-tag-btn:hover {
    color: var(--tc-ochre);
    border-color: var(--tc-ochre);
}
.tc-tag-btn.is-active {
    background-color: var(--tc-surface-variant);
}

/* === Archival Note === */
.tc-archival-note {
    font-size: 13px;
    font-style: italic;
    color: var(--tc-outline);
    border-top: 1px solid var(--tc-outline);
    padding-top: 16px;
    margin-top: 32px;
}

/* === Document Image === */
.tc-doc-img {
    width: 100%;
    height: auto;
    filter: grayscale(100%);
    object-fit: cover;
    border: none;
}

/* === Figure / Figcaption === */
.tc-figure {
    margin: 40px 0;
    border: 1px solid var(--tc-outline);
    padding: 4px;
}
.tc-figure img {
    width: 100%;
    height: auto;
    filter: grayscale(100%) contrast(1.2);
    object-fit: cover;
}
.tc-figure figcaption {
    font-size: 13px;
    color: var(--tc-outline);
    text-align: right;
    margin-top: 8px;
    padding: 0 4px 4px;
}

/* === Footnote marker === */
.tc-fn-marker {
    vertical-align: super;
    font-size: 0.75em;
    color: var(--tc-mauve);
    cursor: pointer;
}

/* === Author Box === */
.tc-author-box {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    border-top: 1px solid var(--tc-outline-variant);
    padding-top: 24px;
    margin-top: 48px;
}
.tc-author-box img {
    width: 64px;
    height: 64px;
    object-fit: cover;
    border: 1px solid var(--tc-outline-variant);
}
.tc-author-box-name {
    font-family: 'Spectral', serif;
    font-size: 16px;
    font-weight: 500;
    color: var(--tc-ink);
}
.tc-author-box-bio {
    font-size: 13px;
    color: var(--tc-on-surface-variant);
    margin-top: 4px;
    line-height: 1.5;
}

/* === Page Header (shared) === */
.tc-page-header {
    margin-bottom: var(--tc-stack-lg);
    border-bottom: 1px solid var(--tc-outline);
    padding-bottom: var(--tc-stack-md);
}
.tc-page-header h1 {
    color: var(--tc-ink);
}
.tc-page-header .tc-subtitle {
    font-size: 13px;
    color: var(--tc-on-surface-variant);
    margin-top: 16px;
    max-width: 40rem;
}

/* === WP Content (the_content) Styling === */
.tc-wp-content h1,
.tc-wp-content h2,
.tc-wp-content h3,
.tc-wp-content h4 {
    font-family: 'Spectral', serif;
    color: var(--tc-mauve-dark);
    margin-top: 32px;
    margin-bottom: 16px;
}
.tc-wp-content h2 { font-size: 32px; font-weight: 500; }
.tc-wp-content h3 { font-size: 24px; font-weight: 500; }
.tc-wp-content p { margin-bottom: 16px; line-height: 1.6; }
.tc-wp-content a { color: var(--tc-mauve); border-bottom: 1px solid var(--tc-outline-variant); }
.tc-wp-content a:hover { color: var(--tc-ochre); border-bottom-color: var(--tc-ochre); }
.tc-wp-content ul, .tc-wp-content ol { margin: 16px 0; padding-left: 24px; }
.tc-wp-content li { margin-bottom: 8px; }
.tc-wp-content blockquote {
    border-left: 2px solid var(--tc-ochre);
    padding-left: 16px;
    margin: 24px 0;
    font-style: italic;
    color: var(--tc-on-surface-variant);
}
.tc-wp-content img {
    filter: grayscale(100%);
    margin: 24px 0;
}

/* === Spacing Helpers === */
.tc-mb-sm { margin-bottom: var(--tc-stack-sm); }
.tc-mb-md { margin-bottom: var(--tc-stack-md); }
.tc-mb-lg { margin-bottom: var(--tc-stack-lg); }
.tc-mt-md { margin-top: var(--tc-stack-md); }
.tc-mt-lg { margin-top: var(--tc-stack-lg); }
.tc-pt-sm { padding-top: var(--tc-stack-sm); }
.tc-pt-md { padding-top: var(--tc-stack-md); }
.tc-pb-md { padding-bottom: var(--tc-stack-md); }

/* === Sidebar sticky (marginalia) === */
@media (min-width: 768px) {
    .tc-sticky-aside {
        position: sticky;
        top: 80px;
    }
}

/* === Sidebar border-left on md === */
@media (min-width: 768px) {
    .tc-aside-bordered {
        padding-left: var(--tc-gutter);
        border-left: 1px solid var(--tc-outline-variant);
    }
}

/* === Grayscale image === */
.tc-grayscale { filter: grayscale(100%) contrast(1.2); }

/* === Screen Reader Only === */
.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
}
