/* Top Catalog — stili dei widget. I colori leggono i colori globali del kit Elementor
   (applicati dal child theme) con valori di riserva se il kit non è attivo. */
:root {
	--tc-ink: var(--e-global-color-topink, #141210);
	--tc-paper: var(--e-global-color-toppaper, #EFE8DA);
	--tc-accent: var(--e-global-color-topaccent, #E8502A);
	--tc-gold: var(--e-global-color-topgold, #E3B23C);
	--tc-teal: var(--e-global-color-topteal, #4FA3A5);
	--tc-stone: var(--e-global-color-topstone, #5A5148);
	--tc-dust: var(--e-global-color-topdust, #B8AE9F);
	--tc-line: var(--e-global-color-topline, #3A342D);
	--tc-rule: #C9BFAE;
	--tc-mono: var(--e-global-typography-topmono-font-family, "IBM Plex Mono"), ui-monospace, monospace;
	--tc-sans: var(--e-global-typography-topbody-font-family, "Archivo"), system-ui, sans-serif;
}

.tc-notice { padding: 12px 16px; border: 1px dashed currentColor; font: 13px/1.4 var(--tc-mono); opacity: .7; }
.tc-empty { font-family: var(--tc-sans); color: var(--tc-stone); }
.tc-eyebrow { display: block; font: 500 12px/1.3 var(--tc-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--tc-dust); }

/* ---- Griglia release ---- */
.tc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.tc-card { display: flex; flex-direction: column; gap: 14px; text-decoration: none; color: inherit; }
.tc-card:hover .tc-cover { transform: translateY(-4px); }
.tc-cover { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: var(--tc-cover-bg, var(--tc-ink)); color: var(--tc-cover-fg, var(--tc-paper)); transition: transform .25s ease; }
.tc-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tc-cover__title { position: absolute; inset: auto 20px 20px 20px; font: 900 clamp(22px, 2.4vw, 34px)/.95 var(--tc-sans); font-stretch: 70%; text-transform: uppercase; }
.tc-card__body { display: flex; flex-direction: column; gap: 4px; font-family: var(--tc-sans); }
.tc-card__title { font-weight: 800; font-size: 18px; }
.tc-card__artist { font-size: 15px; opacity: .78; }
.tc-card__meta { font: 12px/1.4 var(--tc-mono); opacity: .78; text-transform: uppercase; }
.tc-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 48px 0 0; }
.tc-pagination a, .tc-pagination span { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; border: 1px solid currentColor; font: 14px var(--tc-mono); text-decoration: none; color: inherit; }
.tc-pagination .current { background: var(--tc-ink); color: var(--tc-paper); border-color: var(--tc-ink); }

/* ---- Ricerca ---- */
.tc-search { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; font-family: var(--tc-sans); }
.tc-field { display: flex; flex-direction: column; gap: 6px; flex: 1 1 150px; min-width: 0; }
.tc-field--grow { flex: 999 1 320px; }
.tc-field label { font: 500 12px/1.3 var(--tc-mono); letter-spacing: .06em; text-transform: uppercase; opacity: .8; }
.tc-search input, .tc-search select { min-height: 52px; padding: 0 14px; border: 1px solid var(--tc-ink); border-radius: 0; background: #F7F2E8; color: var(--tc-ink); font: 16px var(--tc-sans); width: 100%; box-sizing: border-box; }

/* ---- Pulsanti ---- */
.tc-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; border: 0; border-radius: 0; font: 800 16px var(--tc-sans); cursor: pointer; text-decoration: none; }
.tc-btn--ink { background: var(--tc-ink); color: var(--tc-paper); }
.tc-btn--accent { background: var(--tc-accent); color: var(--tc-ink); }
.tc-btn:focus-visible, .tc-chip:focus-visible, .tc-player__btn:focus-visible { outline: 3px solid var(--tc-accent); outline-offset: 3px; }

/* ---- Player ---- */
.tc-player { display: flex; align-items: center; gap: 20px; padding: 20px; background: var(--tc-ink); color: var(--tc-paper); }
.tc-player__btn { flex: none; width: 56px; height: 56px; border-radius: 50%; border: 0; background: var(--tc-accent); color: var(--tc-ink); display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.tc-player__btn .tc-i-pause, .tc-player.is-playing .tc-i-play { display: none; }
.tc-player.is-playing .tc-i-pause { display: block; }
.tc-player__wave { flex: 1; min-width: 0; height: 48px; display: flex; align-items: center; gap: 3px; }
.tc-player__wave span { flex: 1; background: var(--tc-stone); transition: background .15s; }
.tc-player__wave span.is-played { background: var(--tc-accent); }
.tc-player__label { flex: none; font: 13px var(--tc-mono); color: var(--tc-dust); text-transform: uppercase; }
@media (max-width: 520px) { .tc-player__label { display: none; } }

/* ---- Link DSP ---- */
.tc-links { display: flex; flex-wrap: wrap; gap: 10px; }
.tc-chip { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid currentColor; color: inherit; text-decoration: none; font: 600 14px var(--tc-sans); }
.tc-chip:hover { background: var(--tc-ink); color: var(--tc-paper); border-color: var(--tc-ink); }

/* ---- Metadati ---- */
.tc-meta { margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); border-top: 2px solid currentColor; }
.tc-meta__item { padding: 14px 16px 14px 0; border-bottom: 1px solid var(--tc-rule); display: flex; flex-direction: column; gap: 4px; }
.tc-meta dt { font: 11px var(--tc-mono); letter-spacing: .06em; text-transform: uppercase; opacity: .75; }
.tc-meta dd { margin: 0; font: 500 15px var(--tc-mono); }

/* ---- Crediti ---- */
.tc-credits { margin: 0; font-family: var(--tc-sans); }
.tc-credits__row { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--tc-rule); font-size: 16px; }
.tc-credits dt { opacity: .75; }
.tc-credits dd { margin: 0; font-weight: 600; text-align: right; }

/* ---- Modulo licenza ---- */
.tc-license { display: flex; flex-direction: column; gap: 18px; padding: clamp(24px, 3vw, 36px); background: var(--tc-ink); color: var(--tc-paper); font-family: var(--tc-sans); }
.tc-license__title { margin: 0; font: 900 clamp(30px, 3vw, 40px)/.95 var(--tc-sans); font-stretch: 72%; text-transform: uppercase; color: inherit; }
.tc-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 640px) { .tc-form-grid { grid-template-columns: minmax(0, 1fr); } }
.tc-license input, .tc-license select, .tc-license textarea { min-height: 48px; padding: 0 12px; border: 1px solid var(--tc-paper); border-radius: 0; background: var(--tc-ink); color: var(--tc-paper); font: 15px var(--tc-sans); width: 100%; box-sizing: border-box; }
.tc-license textarea { padding: 12px; resize: vertical; }
.tc-license input[readonly] { background: #2A2520; border-color: var(--tc-line); }
.tc-license .tc-mono { font-family: var(--tc-mono); }
.tc-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: var(--tc-dust); }
.tc-check input { width: 20px; min-height: 20px; height: 20px; margin-top: 2px; flex: none; accent-color: var(--tc-accent); }
.tc-check a { color: var(--tc-paper); }
.tc-license .tc-btn { align-self: flex-start; }
.tc-alert { margin: 0; padding: 14px 16px; font-weight: 600; }
.tc-alert--ok { background: var(--tc-teal); color: var(--tc-ink); }
.tc-alert--err { background: var(--tc-accent); color: var(--tc-ink); }
.tc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---- Timeline ---- */
.tc-timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); border-top: 2px solid currentColor; font-family: var(--tc-sans); }
.tc-timeline__item { padding: 24px 24px 24px 0; display: flex; flex-direction: column; gap: 10px; }
.tc-timeline__year { font: 900 56px/1 var(--tc-sans); font-stretch: 70%; }
.tc-timeline__text { margin: 0; font-size: 16px; line-height: 1.5; opacity: .85; }

/* ---- Passaggi ---- */
.tc-steps { list-style: none; margin: 0; padding: 0; font-family: var(--tc-sans); }
.tc-steps__item { display: flex; gap: 24px; padding: 28px 0; border-top: 1px solid var(--tc-line); }
.tc-steps__n { min-width: 56px; font: 900 48px/1 var(--tc-sans); font-stretch: 70%; color: var(--tc-accent); }
.tc-steps__title { display: block; font-weight: 800; font-size: 20px; margin-bottom: 6px; }
.tc-steps__text { margin: 0; font-size: 16px; line-height: 1.5; color: var(--tc-dust); }

@media (prefers-reduced-motion: reduce) { .tc-cover, .tc-player__wave span { transition: none; } }
