.tx-body { --tx-frame: color-mix(in srgb, var(--tx-accent) 38%, var(--tx-border)); --tx-card-ratio: 1 / 1; }

.tx-hero-title { font-size: clamp(2.6em, 6.4vw, 5.4em); line-height: 1.02; letter-spacing: .01em; }
.tx-hero-banner .tx-hero-bg img { filter: sepia(.35) saturate(1.1); }
.tx-hero-banner .tx-hero-copy { padding-left: 28px; border-left: 1px solid var(--tx-frame); }
.tx-hero-banner:not(.has-image) { background: radial-gradient(ellipse at 50% 120%, color-mix(in srgb, var(--tx-accent) 14%, transparent), transparent 60%), var(--tx-bg); }
.tx-eyebrow { font-family: var(--tx-font-head); letter-spacing: .28em; font-size: .78em; color: var(--tx-accent); }
.tx-eyebrow::before, .tx-eyebrow::after { content: "✦"; font-size: .9em; }

.tx-header-centered .tx-brand { flex-direction: column; gap: 2px; }
.tx-header-centered .tx-brand-text { align-items: center; }
.tx-header-centered .tx-brand-name { font-size: 1.5em; letter-spacing: .08em; }
.tx-header-centered .tx-brand-tag { font-style: italic; letter-spacing: .04em; }
.tx-subbar { border-top: 1px solid var(--tx-frame); box-shadow: inset 0 -3px 0 -2px var(--tx-frame); }
.tx-header { border-bottom-color: var(--tx-frame) !important; }
.tx-nav-bar > .tx-nav-item > .tx-nav-link { font-family: var(--tx-font-head); letter-spacing: .08em; font-size: .86em; }

.tx-section-head { justify-content: center; text-align: center; }
.tx-section-title { font-size: clamp(1.6em, 3vw, 2.3em); letter-spacing: .06em; display: inline-flex; align-items: center; gap: 18px; }
.tx-section-title::before, .tx-section-title::after { content: ""; width: 48px; height: 7px; border-block: 1px solid var(--tx-frame); }

.tx-card, .tx-cat, .tx-panel, .tx-widget, .tx-feature, .tx-buybox, .tx-summary, .tx-stats, .tx-line, .tx-gallery-stage {
  border-color: var(--tx-frame);
  outline: 1px solid color-mix(in srgb, var(--tx-frame) 45%, transparent);
  outline-offset: 3px;
  box-shadow: none;
}
.tx-card-media { background: radial-gradient(circle at 50% 45%, color-mix(in srgb, var(--tx-accent) 12%, var(--tx-surface-2)), var(--tx-surface) 70%); border-bottom: 1px solid var(--tx-frame); }
.tx-card:hover { transform: translateY(-3px); border-color: var(--tx-accent); }
.tx-card-title { font-size: 1.1em; letter-spacing: .03em; }

.tx-cats-rows .tx-cat-name { font-size: 1.1em; letter-spacing: .05em; }
.tx-cats-rows .tx-cat-media { border: 1px solid var(--tx-frame); }

.tx-btn { font-family: var(--tx-font-head); letter-spacing: .1em; font-weight: 700; font-size: .86em; }
.tx-btn-primary { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--tx-accent-ink) 30%, transparent), inset 0 0 0 3px var(--tx-accent), inset 0 0 0 4px color-mix(in srgb, var(--tx-accent-ink) 40%, transparent); }
.tx-basket-btn { font-family: var(--tx-font-head); letter-spacing: .08em; }

.tx-stats { background: transparent; }
.tx-stat { align-items: center; text-align: center; }
.tx-stat dd { color: var(--tx-accent); letter-spacing: .04em; }
.tx-stat dt { font-style: italic; }

.tx-feature { text-align: center; }
.tx-feature-icon { margin-inline: auto; border-radius: 50%; border: 1px solid var(--tx-frame); background: transparent; }
.tx-feature-title { letter-spacing: .04em; }

.tx-faq-item summary { font-family: var(--tx-font-head); letter-spacing: .04em; }
.tx-cta { flex-direction: column; text-align: center; background: var(--tx-surface); }
.tx-cta-title { letter-spacing: .06em; }
.tx-cta-text { margin-inline: auto; font-style: italic; }

.tx-price { font-family: var(--tx-font-head); letter-spacing: .02em; }
.tx-price-xl { color: var(--tx-accent); }
.tx-product-title { letter-spacing: .03em; }
.tx-tag { border-radius: 0; font-family: var(--tx-font-head); letter-spacing: .08em; }
.tx-tag-sale { background: var(--tx-sale); }
.tx-footer-title { font-family: var(--tx-font-head); letter-spacing: .16em; color: var(--tx-accent); }

@media (max-width: 899px) {
  .tx-hero-banner .tx-hero-copy { padding-left: 16px; }
  .tx-section-title::before, .tx-section-title::after { width: 22px; }
  .tx-feature { text-align: left; }
  .tx-feature-icon { margin: 0; }
  .tx-card, .tx-cat, .tx-line { outline-offset: 2px; }
}
