/*
 * Turnus – Mockup (wireframe evoluto).
 * Caricato solo con la variazione di stile "Mockup (wireframe)" attiva (vedi functions.php).
 * Layout provvisorio per gestire e testare le funzionalità: NON è la grafica definitiva.
 * Usa solo i token di theme.json e le classi BEM tn-*; nessuna dipendenza dal markup interno dei blocchi core
 * oltre alle classi wp-block-* pubbliche.
 */

:root {
	--tn-gap: var(--wp--preset--spacing--30);
	--tn-pad: var(--wp--preset--spacing--40);
	--tn-radius: var(--wp--custom--radius--medium);
	--tn-line: 1px solid var(--wp--preset--color--border);
	--tn-shadow: 0 1px 2px rgb(16 24 40 / 6%);
	--tn-mono: var(--wp--preset--font-family--mono, ui-monospace, monospace);
	--tn-warning: var(--wp--preset--color--warning, #8a5a00);
}

/* ------------------------------------------------------------------ */
/* Struttura pagina                                                    */
/* ------------------------------------------------------------------ */

.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

.wp-site-blocks > * {
	margin-block-start: 0;
}

.tn-main {
	flex: 1;
	width: 100%;
	box-sizing: border-box;
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
}

.tn-page-title,
.tn-event__title,
.tn-game__title,
.tn-main--single > .wp-block-post-title {
	margin-block-end: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--xx-large);
}

.tn-section-title {
	font-size: var(--wp--preset--font-size--x-large);
	margin-block-end: var(--wp--preset--spacing--30);
}

/* Negli archivi e nelle sezioni larghe titoli e testi si allineano alla griglia larga. */
.tn-main:has(> .alignwide) > :not(.alignwide, .alignfull),
.alignwide.is-layout-constrained > :not(.alignwide, .alignfull) {
	max-width: var(--wp--style--global--wide-size);
}

/* Pannello generico: tutti i riquadri "a scheda". */
.tn-event-details,
.tn-event-registration,
.tn-game-details,
.tn-game-loan,
.tn-reviews,
.tn-my-loans,
.tn-proposals,
.tn-account,
.tn-application,
.tn-application-status,
.tn-auth,
.tn-guardian,
.tn-paper-card,
.tn-members-only-notice,
.tn-catalog-filters,
.tn-scanner,
.tn-desk,
.tn-main--404 > .wp-block-search,
.tn-main--page > .wp-block-post-content > .wpcf7 {
	background: var(--wp--preset--color--base);
	border: var(--tn-line);
	border-radius: var(--tn-radius);
	padding: var(--tn-pad);
	box-shadow: var(--tn-shadow);
	box-sizing: border-box;
}

.tn-event-registration__title,
.tn-game-loan__title,
.tn-reviews__title,
.tn-my-loans__title,
.tn-application-status__title {
	margin-block: 0 var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--large);
}

/* Etichette "da wireframe": maiuscoletto monospazio. */
.tn-event-details__label,
.tn-game-details__label,
.tn-account__label,
.tn-event-card__month,
.tn-post-card__date,
.tn-review__date,
.tn-my-loans__subtitle,
.tn-proposals__bought-title,
.tn-proposals__form-title,
.tn-form__legend {
	font-family: var(--tn-mono);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.tn-event-details__label strong,
.tn-game-details__label strong,
.tn-account__label strong {
	font-weight: 600;
}

/* ------------------------------------------------------------------ */
/* Header e footer                                                     */
/* ------------------------------------------------------------------ */

.tn-header {
	background: var(--wp--preset--color--base);
	border-bottom: var(--tn-line);
	padding-block: var(--wp--preset--spacing--30);
	position: sticky;
	top: 0;
	z-index: 50;
}

.admin-bar .tn-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

.tn-header__inner {
	align-items: center;
	gap: var(--wp--preset--spacing--40);
}

.tn-header__brand {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 800;
	letter-spacing: -0.02em;
}

.tn-header__brand a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.tn-header__nav {
	margin-inline-start: auto;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}

.tn-header__nav a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.tn-header__nav a:hover,
.tn-header__nav .current-menu-item > a {
	color: var(--wp--preset--color--primary);
}

.tn-footer {
	margin-block-start: auto;
	background: var(--wp--preset--color--contrast);
	color: #c9ced6;
	padding-block: var(--wp--preset--spacing--50);
}

.tn-footer a {
	color: var(--wp--preset--color--base);
}

.tn-footer__inner {
	gap: var(--wp--preset--spacing--40);
	align-items: center;
}

.tn-footer__legal,
.tn-footer__cookie {
	margin: 0;
}

/* ------------------------------------------------------------------ */
/* Pulsanti                                                            */
/* ------------------------------------------------------------------ */

.wp-element-button,
.wp-block-button__link {
	display: inline-block;
	min-height: 40px;
	box-sizing: border-box;
	line-height: 1.4;
	text-decoration: none;
	cursor: pointer;
	border: 1px solid var(--wp--preset--color--primary);
	transition: background-color 0.15s, color 0.15s;
}

.wp-element-button:hover,
.wp-block-button__link:hover {
	background: #2446b3;
	border-color: #2446b3;
	color: var(--wp--preset--color--on-primary);
}

.is-style-outline > .wp-block-button__link,
.wp-element-button.is-style-outline {
	background: transparent;
	color: var(--wp--preset--color--primary);
	border: 1px solid currentColor;
}

.is-style-outline > .wp-block-button__link:hover,
.wp-element-button.is-style-outline:hover {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--primary);
}

.tn-link-button {
	background: none;
	border: 0;
	padding: 0;
	color: var(--wp--preset--color--primary);
	text-decoration: underline;
	font: inherit;
	cursor: pointer;
}

/* Pulsanti secondari dentro i form dei blocchi (es. "Annulla iscrizione"). */
.tn-event-registration__leave .wp-element-button,
.tn-application-status__cancel .wp-element-button,
.tn-catalog-filters__reset {
	background: transparent;
	color: var(--wp--preset--color--danger);
	border-color: currentColor;
}

/* ------------------------------------------------------------------ */
/* Badge e avvisi                                                      */
/* ------------------------------------------------------------------ */

.tn-badge,
.tn-tag {
	display: inline-block;
	align-self: flex-start;
	margin: 0;
	padding: 0.15em 0.6em;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	font-family: var(--tn-mono);
	font-size: 0.75rem;
	line-height: 1.6;
	white-space: nowrap;
}

.tn-badge--members {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
}

.tn-badge--availability {
	white-space: normal;
}

.tn-notice,
.tn-alert,
.tn-form__errors {
	margin-block: 0 var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--border);
	border-inline-start-width: 4px;
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--base);
}

.tn-notice > :last-child,
.tn-form__errors > :last-child {
	margin-block-end: 0;
}

.tn-notice--success {
	border-color: var(--wp--preset--color--success);
	background: #edf7f0;
}

.tn-notice--warning {
	border-color: var(--tn-warning);
	background: #fdf6e7;
}

.tn-notice--error,
.tn-form__errors {
	border-color: var(--wp--preset--color--danger);
	background: #fcefee;
}

/* ------------------------------------------------------------------ */
/* Card ed elenchi                                                     */
/* ------------------------------------------------------------------ */

.wp-block-post-template.is-layout-grid {
	gap: var(--wp--preset--spacing--40);
}

.tn-event-card.tn-event-card,
.tn-game-card.tn-game-card,
.tn-post-card.tn-post-card {
	position: relative;
	height: 100%;
	box-sizing: border-box;
	gap: 0.4rem;
	padding: var(--tn-pad);
	background: var(--wp--preset--color--base);
	border: var(--tn-line);
	border-radius: var(--tn-radius);
	box-shadow: var(--tn-shadow);
	overflow: hidden;
	transition: border-color 0.15s, box-shadow 0.15s;
}

.tn-event-card:hover,
.tn-game-card:hover,
.tn-post-card:hover {
	border-color: var(--wp--preset--color--primary);
	box-shadow: 0 4px 12px rgb(16 24 40 / 10%);
}

.tn-event-card > *,
.tn-game-card > *,
.tn-post-card > * {
	margin: 0;
}

/* Immagine a filo del bordo della card. */
.tn-event-card__media,
.tn-game-card__media,
.tn-post-card__media {
	margin: calc(var(--tn-pad) * -1) calc(var(--tn-pad) * -1) var(--wp--preset--spacing--20) !important;
	max-width: none;
	width: calc(100% + var(--tn-pad) * 2) !important;
	border-bottom: var(--tn-line);
	background: var(--wp--preset--color--surface);
}

.tn-event-card__title,
.tn-game-card__title,
.tn-post-card__title {
	line-height: 1.25;
}

/* Link esteso a tutta la card. */
.tn-event-card__title a,
.tn-game-card__title a,
.tn-post-card__title a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.tn-event-card__title a::after,
.tn-game-card__title a::after,
.tn-post-card__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

/* Data dell'evento: "blocchetto calendario". */
.tn-event-card__date {
	align-self: stretch;
	align-items: baseline;
	gap: 0.4rem;
	color: var(--wp--preset--color--primary);
}

.tn-event-card__date p {
	margin: 0;
}

.tn-event-card__day {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 800;
	line-height: 1;
}

.tn-event-card__month {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
}

.tn-event-card__time {
	margin-inline-start: auto !important;
	font-family: var(--tn-mono);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.tn-event-card__type,
.tn-event-card__location,
.tn-event-card__spots,
.tn-game-card__rating,
.tn-post-card__excerpt {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.tn-event-card__type {
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

.tn-event-card__spots {
	align-self: stretch;
	margin-block-start: auto !important;
	padding-block-start: var(--wp--preset--spacing--20);
	border-top: 1px dashed var(--wp--preset--color--border);
}

.tn-game-card__facts {
	gap: 0.35rem;
}

.tn-game-card__facts p {
	margin: 0;
	padding: 0.1em 0.5em;
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--surface);
	font-size: 0.8rem;
}

.tn-game-card .tn-badge--availability {
	margin-block-start: auto;
}

/* Liste senza card (pulizia margini dei Query Loop). */
.tn-events-nav {
	display: flex;
	gap: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--small);
}

.tn-events__more {
	text-align: right;
	font-weight: 600;
}

.tn-events__empty,
.wp-block-query-no-results p {
	padding: var(--tn-pad);
	border: 1px dashed var(--wp--preset--color--border);
	border-radius: var(--tn-radius);
	text-align: center;
	color: var(--wp--preset--color--muted);
}

.wp-block-query-pagination {
	margin-block-start: var(--wp--preset--spacing--50);
	gap: var(--wp--preset--spacing--20);
	justify-content: center;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-block;
	min-width: 2.25rem;
	padding: 0.35rem 0.6rem;
	border: var(--tn-line);
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--base);
	text-align: center;
	text-decoration: none;
}

.wp-block-query-pagination .page-numbers.current {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
}

/* ------------------------------------------------------------------ */
/* Filtri del catalogo                                                 */
/* ------------------------------------------------------------------ */

.tn-catalog-filters {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	gap: var(--wp--preset--spacing--30);
	align-items: end;
	margin-block-end: var(--wp--preset--spacing--40);
}

.tn-catalog-filters p {
	margin: 0;
}

.tn-catalog-filters__field--q {
	grid-column: span 2;
}

.tn-catalog-filters label {
	display: block;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	margin-block-end: 0.25rem;
}

.tn-catalog-filters__field--available label {
	display: flex;
	gap: 0.4rem;
	align-items: center;
	font-weight: 400;
	min-height: 40px;
}

.tn-catalog-filters__actions {
	display: flex;
	gap: var(--wp--preset--spacing--20);
}

.tn-catalog-filters__count {
	grid-column: 1 / -1;
	font-family: var(--tn-mono);
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted);
}

/* ------------------------------------------------------------------ */
/* Dettagli evento e gioco                                             */
/* ------------------------------------------------------------------ */

.tn-event__image,
.tn-game__image {
	border-radius: var(--tn-radius);
	overflow: hidden;
	border: var(--tn-line);
}

.tn-event-details,
.tn-game-details {
	gap: 0;
}

.tn-event-details > .tn-badge,
.tn-game-details > .tn-badge {
	margin-block-end: var(--wp--preset--spacing--20);
}

.tn-event-details > .tn-badge + .tn-badge,
.tn-game-details > .tn-badge + .tn-badge {
	margin-block-start: calc(var(--wp--preset--spacing--20) * -1);
}

.tn-event-details__row,
.tn-game-details__row {
	display: grid !important;
	grid-template-columns: 9rem 1fr;
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	align-items: baseline;
	width: 100%;
	padding-block: var(--wp--preset--spacing--20);
	border-bottom: 1px dashed var(--wp--preset--color--border);
}

.tn-event-details__row:last-of-type,
.tn-game-details__row:last-of-type {
	border-bottom: 0;
}

.tn-event-details__row p,
.tn-game-details__row p {
	margin: 0;
}

.tn-event-details__values {
	gap: 0.1rem;
}

.tn-event-details__value--date-label {
	font-weight: 600;
}

.tn-event-details__value--location-address {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.tn-event-details__calendar,
.tn-game-details__links {
	margin-block-start: var(--wp--preset--spacing--30);
}

.tn-game-details .tn-game-details__row {
	grid-template-columns: 7rem 1fr;
	font-size: var(--wp--preset--font-size--small);
}

.tn-event__content,
.tn-game__content {
	margin-block: var(--wp--preset--spacing--40);
}

.tn-event__back,
.tn-game__back {
	margin-block-start: var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
}

.tn-game__layout {
	gap: var(--wp--preset--spacing--50);
}

.tn-game__aside {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}

.tn-game__main {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
}

.tn-game__main > * {
	margin: 0 !important;
}

/* ------------------------------------------------------------------ */
/* Iscrizione evento, prestito, recensioni, proposte                   */
/* ------------------------------------------------------------------ */

.tn-event-registration,
.tn-game-loan {
	border-inline-start: 4px solid var(--wp--preset--color--primary);
	margin-block: var(--wp--preset--spacing--40);
}

.tn-event-registration__facts {
	list-style: none;
	margin: 0 0 var(--wp--preset--spacing--30);
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
}

.tn-event-registration__facts li {
	padding: 0.2rem 0.6rem;
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--surface);
	font-size: var(--wp--preset--font-size--small);
}

.tn-event-registration__minimum--reached {
	background: #edf7f0 !important;
	color: var(--wp--preset--color--success);
}

.tn-event-registration__status,
.tn-game-loan__status {
	margin-block: 0 var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border-radius: var(--wp--custom--radius--small);
	font-weight: 600;
	background: var(--wp--preset--color--surface);
}

.tn-event-registration__status--registered {
	background: #edf7f0;
	color: var(--wp--preset--color--success);
}

.tn-event-registration__status--waitlist,
.tn-game-loan__status--hold {
	background: #fdf6e7;
	color: var(--tn-warning);
}

.tn-event-registration__status--cancelled,
.tn-event-registration__status--ineligible,
.tn-game-loan__status--overdue {
	background: #fcefee;
	color: var(--wp--preset--color--danger);
}

.tn-game-loan__status--loaned:not(.tn-game-loan__status--overdue) {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--primary);
}

.tn-event-registration__help,
.tn-game-loan__help,
.tn-game-loan__donation,
.tn-reviews__summary,
.tn-proposals__intro,
.tn-proposals__members {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.tn-event-registration__form,
.tn-game-loan form,
.tn-game-loan__wishlist {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	align-items: center;
	margin-block: var(--wp--preset--spacing--20);
}

.tn-game-loan__availability {
	font-weight: 600;
}

.tn-reviews__list,
.tn-proposals__list,
.tn-proposals__bought,
.tn-my-loans__list,
.tn-my-loans__wishlist {
	list-style: none;
	margin: 0 0 var(--wp--preset--spacing--30);
	padding: 0;
}

.tn-review,
.tn-proposal,
.tn-my-loans__item,
.tn-my-loans__wishlist li,
.tn-proposals__bought li {
	padding-block: var(--wp--preset--spacing--30);
	border-bottom: 1px dashed var(--wp--preset--color--border);
}

.tn-review:last-child,
.tn-proposal:last-child,
.tn-my-loans__item:last-child {
	border-bottom: 0;
}

.tn-review p,
.tn-proposal p {
	margin: 0;
}

.tn-review__meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	align-items: baseline;
	margin-block-end: 0.25rem !important;
}

.tn-review__author {
	font-weight: 600;
}

.tn-review__rating,
.tn-proposal__votes {
	font-family: var(--tn-mono);
	font-size: 0.8rem;
	padding: 0.05em 0.5em;
	border-radius: 999px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--primary);
}

.tn-reviews__form,
.tn-proposals__form {
	margin-block-start: var(--wp--preset--spacing--40);
	padding-block-start: var(--wp--preset--spacing--40);
	border-top: var(--tn-line);
}

.tn-proposal__head {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	align-items: center;
	justify-content: space-between;
}

.tn-proposal__reason,
.tn-proposal__link {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.tn-proposal form {
	display: inline;
}

/* ------------------------------------------------------------------ */
/* Area soci                                                           */
/* ------------------------------------------------------------------ */

.tn-main--page > .wp-block-post-content > * + * {
	margin-block-start: var(--wp--preset--spacing--40);
}

.tn-account {
	gap: var(--wp--preset--spacing--30);
}

.tn-account__greeting {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-large);
}

.tn-account__membership,
.tn-account__join {
	width: 100%;
	gap: 0;
}

.tn-account__status {
	margin: 0 0 var(--wp--preset--spacing--20);
	font-weight: 700;
	color: var(--wp--preset--color--primary);
}

.tn-account__row {
	display: grid !important;
	grid-template-columns: 12rem 1fr;
	gap: var(--wp--preset--spacing--30);
	width: 100%;
	padding-block: var(--wp--preset--spacing--20);
	border-bottom: 1px dashed var(--wp--preset--color--border);
}

.tn-account__row p {
	margin: 0;
}

.tn-account__value {
	font-weight: 600;
}

.tn-account__voting {
	margin-block: var(--wp--preset--spacing--20) 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.tn-account__renewal {
	margin-block-start: var(--wp--preset--spacing--30);
}

.tn-account__profile {
	width: 100%;
	align-items: center;
	padding-block-start: var(--wp--preset--spacing--30);
	border-top: var(--tn-line);
}

.tn-account__email {
	margin: 0;
	font-family: var(--tn-mono);
	font-size: var(--wp--preset--font-size--small);
}

.tn-application-status {
	border-inline-start: 4px solid var(--tn-warning);
}

.tn-application-status--approved {
	border-inline-start-color: var(--wp--preset--color--success);
}

.tn-application-status--rejected,
.tn-application-status--cancelled {
	border-inline-start-color: var(--wp--preset--color--danger);
}

.tn-application-status__state {
	font-weight: 700;
}

.tn-my-loans__item {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.1rem var(--wp--preset--spacing--30);
	align-items: center;
}

.tn-my-loans__item > a {
	font-weight: 600;
}

.tn-my-loans__item > .tn-my-loans__due {
	grid-column: 1;
}

.tn-my-loans__item > form {
	grid-column: 2;
	grid-row: 1 / span 2;
}

.tn-my-loans__due {
	font-family: var(--tn-mono);
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
}

.tn-my-loans__item--overdue .tn-my-loans__due {
	color: var(--wp--preset--color--danger);
	font-weight: 700;
}

.tn-my-loans__subtitle {
	margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20);
}

.tn-members-only-notice {
	border-style: dashed;
	text-align: center;
	color: var(--wp--preset--color--muted);
}

.tn-members-only__label {
	font-family: var(--tn-mono);
	font-size: 0.75rem;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}

.tn-paper-card__summary {
	cursor: pointer;
	font-weight: 600;
}

/* Tessera digitale: la struttura è nel CSS del blocco, qui solo la "pelle" da mockup. */
.tn-member-card-block {
	display: grid;
	justify-items: center;
	gap: var(--wp--preset--spacing--30);
	padding-block: var(--wp--preset--spacing--40);
}

.tn-member-card__face {
	border-color: transparent;
	box-shadow: 0 6px 18px rgb(16 24 40 / 18%);
}

.tn-member-card__face--front {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	background: linear-gradient(135deg, var(--wp--preset--color--primary), #1c2f7a);
	color: var(--wp--preset--color--on-primary);
}

.tn-member-card__brand {
	font-weight: 800;
	letter-spacing: -0.02em;
	font-size: var(--wp--preset--font-size--large);
}

.tn-member-card__year {
	position: absolute;
	top: var(--wp--preset--spacing--30);
	right: var(--wp--preset--spacing--30);
	font-family: var(--tn-mono);
	font-size: 0.8rem;
	opacity: 0.85;
}

.tn-member-card__name {
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
}

.tn-member-card__number {
	font-family: var(--tn-mono);
	font-size: 0.8rem;
}

.tn-member-card__validity {
	text-align: center;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.tn-member-card__validity p {
	margin: 0;
}

.tn-member-card__number-label {
	opacity: 0.8;
	margin-inline-end: 0.3em;
}

.tn-member-card__validity-text--expired {
	font-weight: 700;
	color: var(--wp--preset--color--danger);
}

.tn-member-card__actions {
	display: flex;
	gap: var(--wp--preset--spacing--20);
}

/* ------------------------------------------------------------------ */
/* Form                                                                */
/* ------------------------------------------------------------------ */

.tn-form {
	display: grid;
	gap: var(--wp--preset--spacing--30);
	max-width: 640px;
}

.tn-form p {
	margin: 0;
}

.tn-form__section {
	margin: 0;
	padding: var(--wp--preset--spacing--30) var(--tn-pad) var(--tn-pad);
	border: var(--tn-line);
	border-radius: var(--tn-radius);
	display: grid;
	gap: var(--wp--preset--spacing--30);
}

.tn-form__legend {
	padding-inline: 0.4rem;
}

.tn-form__label,
.tn-form__field > label,
.wpcf7 label {
	display: block;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
	margin-block-end: 0.3rem;
}

.tn-form__field--checkbox,
.tn-form__choice {
	display: flex;
	gap: 0.5rem;
	align-items: flex-start;
}

.tn-form__field--checkbox .tn-form__label,
.tn-form__choice label {
	font-weight: 400;
	margin: 0;
}

.tn-form__input,
.tn-form input[type="text"],
.tn-form input[type="email"],
.tn-form input[type="password"],
.tn-form input[type="tel"],
.tn-form input[type="date"],
.tn-form input[type="number"],
.tn-form input[type="url"],
.tn-form select,
.tn-form textarea,
.tn-catalog-filters input[type="search"],
.tn-catalog-filters select,
.tn-scanner select,
.tn-scanner input,
.tn-desk input,
.tn-desk select,
.wpcf7 input:not([type="submit"], [type="checkbox"], [type="radio"]),
.wpcf7 select,
.wpcf7 textarea,
.wp-block-search__input {
	width: 100%;
	min-height: 42px;
	box-sizing: border-box;
	padding: 0.5rem 0.75rem;
	border: 1px solid #b9bec7;
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
}

.tn-form textarea,
.wpcf7 textarea {
	min-height: 7rem;
}

.tn-form__input:focus,
.tn-form input:focus,
.tn-form select:focus,
.tn-form textarea:focus,
.tn-catalog-filters input:focus,
.tn-catalog-filters select:focus,
.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus,
.wp-block-search__input:focus {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 0;
	border-color: var(--wp--preset--color--primary);
}

.tn-form__checkbox,
.tn-form input[type="checkbox"],
.tn-form input[type="radio"] {
	width: 1.1rem;
	height: 1.1rem;
	margin-block-start: 0.2rem;
	accent-color: var(--wp--preset--color--primary);
	flex-shrink: 0;
}

.tn-form__help {
	display: block;
	margin-block-start: 0.25rem;
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
}

.tn-form__error {
	display: block;
	margin-block-start: 0.25rem;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--wp--preset--color--danger);
}

.tn-form__field--error .tn-form__input,
.tn-form__field--error input,
.tn-form__field--error select {
	border-color: var(--wp--preset--color--danger);
}

.tn-form__field--readonly .tn-form__input,
.tn-form__value {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--muted);
}

.tn-form__field--half {
	max-width: 50%;
}

.tn-form__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	align-items: center;
}

.tn-form__hp {
	position: absolute !important;
	left: -9999px;
}

.tn-form--inline {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
}

/* Scelta della quota: opzioni come card selezionabili. */
.tn-form__choices {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: var(--wp--preset--spacing--20);
}

.tn-fee-option {
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 0.25rem 0.6rem;
	align-items: start;
	padding: var(--wp--preset--spacing--30);
	border: var(--tn-line);
	border-radius: var(--tn-radius);
	background: var(--wp--preset--color--base);
	cursor: pointer;
}

.tn-fee-option:has(input:checked) {
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--accent);
}

.tn-fee-option--disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.tn-fee-option__name {
	font-weight: 600;
}

.tn-fee-option__amount {
	font-family: var(--tn-mono);
	font-weight: 700;
}

.tn-fee-option__description {
	grid-column: 2 / -1;
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
}

.tn-auth {
	max-width: 480px;
}

.tn-auth__links,
.tn-auth__switch {
	margin-block: var(--wp--preset--spacing--30) 0;
	font-size: var(--wp--preset--font-size--small);
}

.tn-auth__switch {
	padding-block-start: var(--wp--preset--spacing--30);
	border-top: var(--tn-line);
}

.tn-auth__magic {
	margin-block-start: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--30);
	border-radius: var(--wp--custom--radius--small);
	background: var(--wp--preset--color--surface);
}

.tn-application__gate {
	text-align: center;
}

.tn-application__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--30);
	justify-content: center;
	align-items: center;
}

/* ------------------------------------------------------------------ */
/* Scanner presenze e banco prestiti                                   */
/* ------------------------------------------------------------------ */

.tn-scanner,
.tn-desk {
	margin-inline: auto;
}

.tn-scanner__result--ok,
.tn-desk__result--ok {
	background: #edf7f0;
}

.tn-scanner__result--warning {
	background: #fdf6e7;
	border-color: var(--tn-warning);
}

.tn-scanner__result--error,
.tn-desk__result--error,
.tn-desk__panel--warning {
	background: #fcefee;
}

.tn-scanner__stats {
	font-family: var(--tn-mono);
	font-size: 0.8rem;
	color: var(--wp--preset--color--muted);
}

.tn-scanner__recent-item {
	padding-block: 0.35rem;
	border-bottom: 1px dashed var(--wp--preset--color--border);
	font-size: var(--wp--preset--font-size--small);
}

.tn-desk__mode {
	flex: 1;
}

.tn-desk__mode[aria-pressed="false"],
.tn-desk__mode:not(.is-active)[aria-pressed] {
	background: transparent;
	color: var(--wp--preset--color--primary);
}

/* ------------------------------------------------------------------ */
/* Home e pagine istituzionali (pattern sincronizzati)                 */
/* ------------------------------------------------------------------ */

.tn-main--page > .wp-block-post-content > .wp-block-block + .wp-block-block,
.tn-main--page > .wp-block-post-content > section + section {
	margin-block-start: var(--wp--preset--spacing--60);
}

.tn-hero {
	margin-block-start: calc(var(--wp--preset--spacing--50) * -1) !important;
	padding-block: var(--wp--preset--spacing--60);
	background: var(--wp--preset--color--base);
	border-bottom: var(--tn-line);
	background-image: radial-gradient(var(--wp--preset--color--border) 1px, transparent 1px);
	background-size: 18px 18px;
}

.tn-hero__inner {
	max-width: 760px;
	gap: var(--wp--preset--spacing--40);
}

.tn-hero__title {
	margin: 0;
	line-height: 1.05;
	font-weight: 800;
}

.tn-hero__text {
	margin: 0;
	color: var(--wp--preset--color--muted);
}

.tn-features__grid {
	gap: var(--wp--preset--spacing--30);
}

.tn-feature {
	padding: var(--tn-pad);
	background: var(--wp--preset--color--base);
	border: var(--tn-line);
	border-radius: var(--tn-radius);
	border-top: 4px solid var(--wp--preset--color--primary);
}

.tn-feature__title {
	margin-block: 0 var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--large);
}

.tn-feature__text {
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.tn-cta {
	padding: var(--wp--preset--spacing--50);
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: var(--tn-radius);
	background: var(--wp--preset--color--accent);
	text-align: center;
}

.tn-cta__title {
	margin-block-start: 0;
}

.tn-cta__actions {
	justify-content: center;
}

.tn-board__list,
.tn-documents__list {
	list-style: none;
	margin: 0;
	padding: 0;
	background: var(--wp--preset--color--base);
	border: var(--tn-line);
	border-radius: var(--tn-radius);
}

.tn-board__list li,
.tn-documents__list li {
	padding: var(--wp--preset--spacing--30) var(--tn-pad);
	border-bottom: var(--tn-line);
}

.tn-board__list li:last-child,
.tn-documents__list li:last-child {
	border-bottom: 0;
}

.tn-main--404 {
	text-align: center;
}

.tn-main--404 > .wp-block-search {
	max-width: 480px;
	margin-inline: auto;
}

.wp-block-search__inside-wrapper {
	gap: var(--wp--preset--spacing--20);
}

/* ------------------------------------------------------------------ */
/* Responsive                                                          */
/* ------------------------------------------------------------------ */

@media (max-width: 781px) {
	.tn-event-details__row,
	.tn-game-details__row,
	.tn-account__row {
		grid-template-columns: 1fr;
		gap: 0.1rem;
	}

	.tn-catalog-filters__field--q {
		grid-column: 1 / -1;
	}

	.tn-form__field--half {
		max-width: none;
	}

	.tn-header {
		position: static;
	}
}
