:root {
	--tt-blue: #0a4f7a;
	--tt-blue-dark: #06324d;
	--tt-accent: #f2a71b;
	--tt-bg: #ffffff;
	--tt-text: #1c1c1c;
	--tt-border: #e2e2e2;
	--tt-max-width: 1200px;
}

* { box-sizing: border-box; }

body {
	margin: 0;
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	color: var(--tt-text);
	background: var(--tt-bg);
	line-height: 1.5;
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--tt-blue); }

.tt-container {
	max-width: var(--tt-max-width);
	margin: 0 auto;
	padding: 2rem 1.25rem;
}

/* Header */
.tt-header { background: var(--tt-blue-dark); color: #fff; }
.tt-header__inner {
	max-width: var(--tt-max-width);
	margin: 0 auto;
	padding: 0.75rem 1.25rem;
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: wrap;
}
.tt-logo img { height: 48px; }
.tt-nav__list { list-style: none; display: flex; gap: 1.25rem; margin: 0; padding: 0; flex-wrap: wrap; }
.tt-nav__list a { color: #fff; text-decoration: none; font-weight: 600; }
.tt-nav__list a:hover { color: var(--tt-accent); }
.tt-nav-utility { margin-left: auto; display: flex; gap: 1rem; }
.tt-nav-utility__item { color: #cfe3f0; text-decoration: none; font-size: 0.9rem; }
.tt-nav-utility__item--live { color: #ff5a5f; font-weight: 700; }

/* Hero */
.tt-hero { position: relative; }
.tt-hero__stats {
	display: flex;
	justify-content: center;
	gap: 3rem;
	padding: 1.5rem;
	background: var(--tt-blue);
	color: #fff;
	flex-wrap: wrap;
}
.tt-stat { text-align: center; }
.tt-stat__numero { display: block; font-size: 2.25rem; font-weight: 800; }
.tt-stat__etichetta { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; }

.tt-home-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 2rem; }
@media (max-width: 720px) { .tt-home-grid { grid-template-columns: 1fr; } }

/* Buttons */
.tt-btn {
	display: inline-block;
	padding: 0.6rem 1.25rem;
	background: var(--tt-blue);
	color: #fff;
	text-decoration: none;
	border-radius: 4px;
	font-weight: 600;
	margin-top: 0.75rem;
}
.tt-btn:hover { background: var(--tt-blue-dark); }
.tt-btn--small { padding: 0.35rem 0.75rem; font-size: 0.85rem; }

/* Cards / grids */
.tt-corsi__grid, .tt-foto__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 1.5rem;
}
.tt-corso-card, .tt-evento-card {
	border: 1px solid var(--tt-border);
	border-radius: 6px;
	padding: 1rem;
}
.tt-evento-card a { text-decoration: none; color: inherit; }

/* Foto filters */
.tt-foto__filtri { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.tt-foto__filtri a { padding: 0.4rem 0.9rem; border: 1px solid var(--tt-border); border-radius: 999px; text-decoration: none; color: var(--tt-text); }
.tt-foto__filtri a.is-active { background: var(--tt-blue); color: #fff; border-color: var(--tt-blue); }

/* Accordion */
.tt-accordion__item { border-bottom: 1px solid var(--tt-border); }
.tt-accordion__item summary { padding: 0.9rem 0.25rem; cursor: pointer; font-weight: 700; font-size: 1.05rem; }
.tt-accordion__body { padding: 0 0.25rem 1.25rem; display: flex; gap: 1.5rem; flex-wrap: wrap; }
.tt-accordion__body figure { margin: 0; max-width: 280px; }
.tt-accordion__body figcaption { font-size: 0.85rem; color: #666; text-align: center; }

.tt-atleti-list { padding-left: 1.25rem; }
.tt-atleti-list li { margin-bottom: 0.25rem; }

/* Archivio table */
.tt-archivio-table { width: 100%; border-collapse: collapse; }
.tt-archivio-table th, .tt-archivio-table td { border-bottom: 1px solid var(--tt-border); padding: 0.6rem; text-align: left; }

/* Staff */
.tt-staff__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 1.25rem; }
.tt-staff__card { text-align: center; }
.tt-staff__nome { font-weight: 700; margin: 0.5rem 0 0; }
.tt-staff__ruolo { font-size: 0.85rem; color: #666; margin: 0; }

/* Footer */
.tt-footer { background: #f5f5f5; margin-top: 3rem; }
.tt-footer__inner {
	max-width: var(--tt-max-width);
	margin: 0 auto;
	padding: 2rem 1.25rem;
	display: grid;
	grid-template-columns: auto 1fr auto;
	gap: 2rem;
	align-items: start;
}
@media (max-width: 720px) { .tt-footer__inner { grid-template-columns: 1fr; } }
.tt-footer__loghi { display: flex; gap: 1rem; align-items: center; }
.tt-footer__loghi img { height: 48px; }
.tt-footer__contatti p { margin: 0.25rem 0; font-size: 0.9rem; }
.tt-footer__legal { color: #777; }
