h1, h2, h3, h4, h5, h6 {
    color: var(--tc-brand);
    line-height: 1.12;
    text-wrap: balance;
    letter-spacing: -.018em;
}
h1 { font-size: clamp(1.85rem, 3vw, 3rem); }
h2 { font-size: clamp(1.45rem, 2.2vw, 2.1rem); }
h3 { font-size: clamp(1.1rem, 1.5vw, 1.35rem); }
p { text-wrap: pretty; }

.tc-page-title, .tc-entry-header h1, .tc-archive-header h1 { margin-top: 0; }
.tc-archive-header { padding-block: 3rem 0; }
.tc-archive-description { max-width: 780px; color: var(--tc-muted); }

.tc-card {
    display: grid;
    grid-template-columns: minmax(180px, 320px) 1fr;
    gap: 1.5rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--tc-border);
}
.tc-card__media img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--tc-radius); }
.tc-card__title { margin-top: 0; }
.tc-card__title a { text-decoration: none; }

.wp-element-button,
button,
input[type="submit"] {
    border: 1px solid var(--tc-brand);
    border-radius: var(--tc-radius);
    padding: .72rem 1rem;
    background: var(--tc-brand);
    color: #fff;
    font-weight: 650;
    line-height: 1.15;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.wp-element-button:hover,
button:hover,
input[type="submit"]:hover { background: var(--tc-accent); border-color: var(--tc-accent); color: var(--tc-brand); }

input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="search"], select, textarea {
    width: 100%;
    max-width: 100%;
    min-height: 44px;
    border: 1px solid #d9d4ce;
    border-radius: var(--tc-radius);
    padding: .7rem .8rem;
    background: #fff;
    color: var(--tc-text);
}

hr { border: 0; border-top: 1px solid var(--tc-border); }

@media (max-width: 700px) {
    .tc-card { grid-template-columns: 1fr; }
}
