/**
 * Sorex - Custom Styles
 * Olimpia Milano Child Theme
 */

/* ==========================================================================
   Pre-Header (Euroleague Topbar)
   ========================================================================== */
#olimpia-pre-header {
	position: relative;
	width: 100%;
	height: var(--euroleague-topbar-height);
	z-index: 100;
	overflow: hidden;
}

#olimpia-pre-header iframe {
	display: block;
	width: 100%;
	height: var(--euroleague-topbar-height);
	border: none;
}

/* Push all page content down to make room for the fixed pre-header */
body {
	padding-top: 0;
}

/*
 * Goal theme uses .sc_layouts_row_fixed_on (position:fixed; top:0) for the sticky header.
 * When scrolling, the pre-header scrolls away and the header sticks to top:0 (default behavior).
 * No offset needed - the pre-header is in-flow and naturally pushes the header down before scroll.
 */
s
/* ==========================================================================
   Event Blocks - Card Layout
   ========================================================================== */

.olimpia-event-blocks {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* Base card */
.olimpia-card {
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	transition: box-shadow 0.2s ease;
}

.olimpia-card:hover {
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}

/* Future card - white */
.olimpia-card--future {
	background: #ffffff;
	color: #1a1a1a;
}

/* Past card - red (Olimpia brand) */
.olimpia-card--past {
	background: var(--color-primary);
	color: #ffffff;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.olimpia-card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
}

.olimpia-card__league {
	display: flex;
	align-items: center;
	gap: 10px;
}

.olimpia-card__league-name {
	font-size: 14px;
	font-weight: 500;
}

.olimpia-league-logo {
	width: 32px;
	height: 32px;
	object-fit: contain;
}

.olimpia-card__round {
	font-size: 14px;
	font-weight: 500;
}

/* Past card header colors */
.olimpia-card--past .olimpia-card__header {
	color: rgba(255, 255, 255, 0.9);
}

/* Future card header colors */
.olimpia-card--future .olimpia-card__header {
	color: #1a1a1a;
}

/* --------------------------------------------------------------------------
   Divider
   -------------------------------------------------------------------------- */

.olimpia-card__divider {
	height: 3px;
	margin: 0 20px;
}

.olimpia-card--future .olimpia-card__divider {
	background: linear-gradient(90deg, #C8102E 0%, #C8102E 100%);
}

.olimpia-card--past .olimpia-card__divider {
	background: rgba(255, 255, 255, 0.2);
}

/* --------------------------------------------------------------------------
   Body
   -------------------------------------------------------------------------- */

.olimpia-card__body {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 32px 24px;
}

.olimpia-card__team {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
}

.olimpia-card__team img.olimpia-team-logo {
	width: 80px;
	height: 80px;
	object-fit: contain;
}

.olimpia-card__center {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	gap: 4px;
}

/* Future: big date/time */
.olimpia-card__datetime {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.olimpia-card__date-big {
	font-size: 36px;
	font-weight: 800;
	line-height: 1;
	color: inherit;
}

.olimpia-card__time-big {
	font-size: 28px;
	font-weight: 700;
	line-height: 1;
	color: inherit;
	opacity: 0.9;
}

/* Past: small date + score */
.olimpia-card__date-small {
	font-size: 14px;
	opacity: 0.8;
}

.olimpia-card__score {
	font-size: 42px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -1px;
}

/* Venue */
.olimpia-card__venue {
	font-size: 14px;
	margin-top: 4px;
}

.olimpia-card--future .olimpia-card__venue {
	color: #555;
}

.olimpia-card--past .olimpia-card__venue {
	color: rgba(255, 255, 255, 0.8);
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.olimpia-card__footer {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 16px 20px 20px;
}

.olimpia-card__action {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.olimpia-card__action:hover {
	opacity: 0.8;
}

.olimpia-card__icon {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
}

/* Future card: save date (text style, dark on white) */
.olimpia-card--future .olimpia-card__action--save-date {
	color: #1a1a1a;
}

/* Future card: tickets button (filled red pill on white bg) */
.olimpia-card__action--tickets {
	background: var(--color-primary);
	color: #ffffff;
	padding: 12px 24px;
	border-radius: 50px;
	font-weight: 600;
}

.olimpia-card__action--tickets:hover {
	background: #6e1522;
	color: #ffffff;
	opacity: 1;
}

/* Past card: standings (text style, white on red) */
.olimpia-card--past .olimpia-card__action--standings {
	color: rgba(255, 255, 255, 0.9);
}

/* Past card: highlights (outlined pill, white on red) */
.olimpia-card__action--highlights {
	border: 2px solid rgba(255, 255, 255, 0.6);
	color: #ffffff;
	padding: 10px 20px;
	border-radius: 50px;
	font-weight: 500;
}

.olimpia-card__action--highlights:hover {
	border-color: #ffffff;
	color: #ffffff;
	opacity: 1;
}

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

@media (max-width: 600px) {
	.olimpia-card__body {
		padding: 24px 16px;
	}

	.olimpia-card__team img.olimpia-team-logo {
		width: 56px;
		height: 56px;
	}

	.olimpia-card__date-big,
	.olimpia-card__time-big {
		font-size: 24px;
	}

	.olimpia-card__score {
		font-size: 32px;
	}

	.olimpia-card__header,
	.olimpia-card__footer {
		padding: 12px 16px;
	}

	.olimpia-card__action--tickets,
	.olimpia-card__action--highlights {
		padding: 10px 16px;
		font-size: 13px;
	}
}


/* ==========================================================================
   Event Venue - Two Column Layout (Map + Details)
   ========================================================================== */

.olimpia-venue {
	margin-top: 32px;
}

.olimpia-venue .sp-table-caption {
	margin-bottom: 16px;
}

.olimpia-venue__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	align-items: center;
	background: #ffffff;
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	padding: 24px;
}

/* Map column */
.olimpia-venue__map {
	border-radius: 8px;
	overflow: hidden;
}

.olimpia-venue__map #sp_openstreetmaps_container {
	border-radius: 8px;
}

/* Details column */
.olimpia-venue__details {
	display: flex;
	flex-direction: column;
	gap: 20px;
	justify-content: center;
}

.olimpia-venue__detail-row {
	display: flex;
	align-items: flex-start;
	gap: 14px;
}

.olimpia-venue__icon {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var(--background-grey);
	color: var(--color-primary);
}

.olimpia-venue__detail-content {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.olimpia-venue__label {
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #888;
}

.olimpia-venue__value {
	font-size: 15px;
	font-weight: 500;
	color: #1a1a1a;
	line-height: 1.4;
}

/* Maps link */
.olimpia-venue__detail-row--link {
	margin-top: 8px;
}

.olimpia-venue__maps-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 500;
	color: var(--color-primary);
	text-decoration: none;
	padding: 8px 16px;
	border: 1.5px solid var(--color-primary);
	border-radius: 8px;
	transition: all 0.2s ease;
}

.olimpia-venue__maps-link:hover {
	background: var(--color-primary);
	color: #ffffff;
}

.olimpia-venue__maps-link svg {
	flex-shrink: 0;
}

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

@media (max-width: 768px) {
	.olimpia-venue__grid {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 16px;
	}

	.olimpia-venue__details {
		gap: 16px;
	}

	.olimpia-venue__icon {
		width: 36px;
		height: 36px;
	}
}


/* ==========================================================================
   Event Results - Single Event Page (LBA Style)
   ========================================================================== */

.olimpia-result {
	margin-top: 24px;
}

.olimpia-result__table-wrap {
	overflow-x: auto;
	border-radius: 12px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
	background: #ffffff;
}

.olimpia-result__table {
	width: 100%;
	border-collapse: collapse;
	border-spacing: 0;
}

/* Header */
.olimpia-result__th {
	padding: 12px 16px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #888;
	background: #fafafa;
	border-bottom: 1px solid #eee;
	white-space: nowrap;
}

.olimpia-result__th--league {
	width: 48px;
	text-align: center;
}

.olimpia-result__th--home {
	text-align: right;
	padding-right: 20px;
}

.olimpia-result__th--score {
	text-align: center;
	width: 140px;
}

.olimpia-result__th--away {
	text-align: left;
	padding-left: 20px;
}

.olimpia-result__th--datetime {
	text-align: center;
}

.olimpia-result__th--venue {
	text-align: center;
}

/* Body row */
.olimpia-result__row {
	border-bottom: none;
}

.olimpia-result__td {
	padding: 20px 16px;
	vertical-align: middle;
}

/* League logo cell */
.olimpia-result__td--league {
	width: 48px;
	text-align: center;
	padding: 20px 8px;
}

.olimpia-result__league-logo {
	width: 32px;
	height: 32px;
	object-fit: contain;
}

/* Home team cell - right aligned */
.olimpia-result__td--home {
	text-align: right;
	padding-right: 20px;
}

.olimpia-result__td--home .olimpia-result__team-name {
	margin-right: 12px;
}

/* Away team cell - left aligned */
.olimpia-result__td--away {
	text-align: left;
	padding-left: 20px;
}

.olimpia-result__td--away .olimpia-result__team-name {
	margin-left: 12px;
}

/* Team name & logo inline */
.olimpia-result__td--home,
.olimpia-result__td--away {
	display: table-cell;
	white-space: nowrap;
}

.olimpia-result__team-name {
	font-size: 15px;
	font-weight: 500;
	color: #1a1a1a;
	vertical-align: middle;
}

.olimpia-result__team-logo {
	width: 32px;
	height: 32px;
	object-fit: contain;
	vertical-align: middle;
	display: inline-block;
}

/* Score cell */
.olimpia-result__td--score {
	text-align: center;
	width: 140px;
}

.olimpia-result__score-num {
	font-size: 28px;
	font-weight: 400;
	color: #666;
	vertical-align: middle;
}

.olimpia-result__score-num--winner {
	font-weight: 800;
	color: #1a1a1a;
}

.olimpia-result__score-sep {
	font-size: 24px;
	font-weight: 300;
	color: #ccc;
	margin: 0 8px;
	vertical-align: middle;
}

/* Date & time cell */
.olimpia-result__td--datetime {
	text-align: center;
}

.olimpia-result__date {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: #1a1a1a;
}

.olimpia-result__time {
	display: block;
	font-size: 13px;
	color: #888;
	margin-top: 2px;
}

/* Venue cell */
.olimpia-result__td--venue {
	text-align: center;
	font-size: 14px;
	color: #555;
}

/* --------------------------------------------------------------------------
   Event Results - Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-result__table-wrap {
		border-radius: 8px;
	}

	.olimpia-result__th {
		padding: 10px 8px;
		font-size: 10px;
	}

	.olimpia-result__td {
		padding: 14px 8px;
	}

	.olimpia-result__team-name {
		font-size: 13px;
	}

	.olimpia-result__team-logo {
		width: 24px;
		height: 24px;
	}

	.olimpia-result__score-num {
		font-size: 22px;
	}

	.olimpia-result__score-sep {
		margin: 0 4px;
	}

	/* Hide datetime and venue on very small screens */
	.olimpia-result__th--datetime,
	.olimpia-result__td--datetime,
	.olimpia-result__th--venue,
	.olimpia-result__td--venue {
		display: none;
	}
}


/* ==========================================================================
   Event List / Calendar - Reuses .olimpia-result styles
   ========================================================================== */

/* Alternate row background */
.olimpia-result__row--alt {
	background: #fafafa;
}

/* Score link (clickable in calendar list) */
.olimpia-result__score-link {
	text-decoration: none;
	color: inherit;
	display: inline-flex;
	align-items: center;
}

.olimpia-result__score-link:hover {
	opacity: 0.7;
}

/* Time-only display for future events */
.olimpia-result__time-only {
	font-size: 18px;
	font-weight: 600;
	color: #1a1a1a;
}

/* Calendar-specific: smaller scores to fit more rows */
.olimpia-calendar .olimpia-result__score-num {
	font-size: 20px;
}

.olimpia-calendar .olimpia-result__score-sep {
	font-size: 18px;
	margin: 0 5px;
}

.olimpia-calendar .olimpia-result__td {
	padding: 14px 12px;
}

/* Border between rows */
.olimpia-calendar .olimpia-result__row {
	border-bottom: 1px solid #f0f0f0;
}

.olimpia-calendar .olimpia-result__row:last-child {
	border-bottom: none;
}

/* Calendar: larger team logos */
.olimpia-calendar .olimpia-result__team-logo {
	width: 48px;
	height: 48px;
}

/* Calendar: round/matchday column */
.olimpia-result__th--round {
	text-align: center;
	width: 48px;
}

.olimpia-result__td--round {
	text-align: center;
	width: 48px;
}

.olimpia-result__round-num {
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	color: #888;
	background: #f0f0f0;
	border-radius: 6px;
	padding: 4px 8px;
	min-width: 28px;
}

/* Calendar: bold team name for the winner */
.olimpia-result__team-name--winner {
	font-weight: 800;
	color: #1a1a1a;
}

/* --------------------------------------------------------------------------
   Calendar Responsive Adjustments
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-calendar .olimpia-result__team-logo {
		width: 36px;
		height: 36px;
	}

	.olimpia-result__th--round,
	.olimpia-result__td--round {
		width: 36px;
	}

	.olimpia-result__round-num {
		font-size: 11px;
		padding: 3px 6px;
		min-width: 24px;
	}
}


/* ==========================================================================
   OAS Event Blocks Shortcode - Flexbox Equal Height
   ========================================================================== */

.oas-event-blocks-wrap {
	width: 100%;
}

/* Each flex item takes equal space */
.oas-event-block-item {
	flex: 1 1 0 !important;
	min-width: 0;
	display: flex;
}

/* Direct child div inside item fills width */
.oas-event-block-item > div {
	width: 100%;
}

/* Inner SportsPress wrapper fills the item */
.oas-event-block-item .olimpia-event-blocks {
	width: 100%;
	display: flex;
	flex-direction: column;
}

/* Card stretches to fill height */
.oas-event-block-item .olimpia-card {
	flex: 1;
	display: flex;
	flex-direction: column;
}

/* Body expands to absorb extra height */
.oas-event-block-item .olimpia-card__body {
	flex: 1;
}

@media (max-width: 768px) {
	.oas-event-blocks-wrap {
		flex-direction: column !important;
	}

	.oas-event-block-item {
		flex: 0 0 100% !important;
		width: 100% !important;
	}
}


/* ==========================================================================
   Team Logo - Generic Utility Classes
   ========================================================================== */

/**
 * Classe generica per i loghi squadra, con 3 varianti:
 * - .olimpia-team-logo--sm  → 24px (inline text, liste compatte)
 * - .olimpia-team-logo--md  → 36px (classifiche, tabelle dati)
 * - .olimpia-team-logo--lg  → 56px (card evento, hero)
 */

.olimpia-team-logo {
	display: inline-block;
	object-fit: contain;
	vertical-align: middle;
	flex-shrink: 0;
}

.olimpia-team-logo--sm {
	width: 24px;
	height: 24px;
}

.olimpia-team-logo--md {
	width: 36px;
	height: 36px;
}

.olimpia-team-logo--lg {
	width: 56px;
	height: 56px;
}

/* League table: apply md size to team logos */
.sp-league-table .team-logo img {
	width: 36px;
	height: 36px;
	max-width: 36px;
	max-height: 36px;
	object-fit: contain;
}

/* Ensure vertical alignment with team name in table */
.sp-league-table .team-logo {
	display: inline-flex;
	align-items: center;
	vertical-align: middle;
	margin-right: 10px;
	width: 36px;
	height: 36px;
}

/* --------------------------------------------------------------------------
   Team Logo Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-team-logo--sm {
		width: 20px;
		height: 20px;
	}

	.olimpia-team-logo--md {
		width: 28px;
		height: 28px;
	}

	.olimpia-team-logo--lg {
		width: 44px;
		height: 44px;
	}

	.sp-league-table .team-logo img {
		width: 28px;
		height: 28px;
	}
}


/* ==========================================================================
   Venue Detail Page (taxonomy-sp_venue)
   ========================================================================== */

.olimpia-venue-detail {
	padding: var(--space-2xl) 0;
}

/* Hero image */
.olimpia-venue-detail__hero {
	border-radius: var(--radius-card);
	overflow: hidden;
	margin-bottom: var(--space-2xl);
	box-shadow: var(--shadow-lg);
}

.olimpia-venue-detail__hero-img {
	width: 100%;
	height: 600px;
	object-fit: cover;
	display: block;
}

/* Info section */
.olimpia-venue-detail__info {
	margin-bottom: var(--space-2xl);
}

.olimpia-venue-detail__title {
	font-size: var(--font-size-3xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-xl);
}

.olimpia-venue-detail__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-2xl);
	align-items: start;
	background: var(--color-white);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	padding: var(--space-xl);
}

.olimpia-venue-detail__map {
	border-radius: var(--radius-sm);
	overflow: hidden;
}

.olimpia-venue-detail__details {
	display: flex;
	flex-direction: column;
	gap: var(--space-lg);
	justify-content: center;
}

/* Section titles */
.olimpia-venue-detail__section-title {
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-lg);
	padding-bottom: var(--space-sm);
	border-bottom: var(--divider-height) solid var(--color-primary);
	display: inline-block;
}

.olimpia-venue-detail__event-count {
	font-size: var(--font-size-base);
	font-weight: var(--font-weight-normal);
	color: var(--color-gray-500);
	margin-left: var(--space-sm);
}

/* Home team card */
.olimpia-venue-detail__home-team {
	margin-bottom: var(--space-2xl);
}

.olimpia-venue-detail__team-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: var(--space-base);
	background: var(--color-white);
	border-radius: var(--radius-lg);
	padding: var(--space-2xl);
	box-shadow: var(--shadow-sm);
	text-align: center;
}

.olimpia-venue-detail__team-logo {
	flex-shrink: 0;
}

.olimpia-venue-detail__team-logo-img {
	width: 100px;
	height: 100px;
	object-fit: contain;
}

.olimpia-venue-detail__team-name {
	font-size: var(--font-size-2xl);
	font-weight: var(--font-weight-bold);
	margin: 0;
}

.olimpia-venue-detail__team-name a {
	color: var(--color-black);
	text-decoration: none;
	transition: color var(--transition-fast);
}

.olimpia-venue-detail__team-name a:hover {
	color: var(--color-primary);
}

/* Events section */
.olimpia-venue-detail__events {
	margin-top: var(--space-2xl);
}

/* --------------------------------------------------------------------------
   Venue Detail - Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-venue-detail__hero-img {
		height: 250px;
	}

	.olimpia-venue-detail__title {
		font-size: var(--font-size-xl);
	}

	.olimpia-venue-detail__grid {
		grid-template-columns: 1fr;
		gap: var(--space-lg);
		padding: var(--space-base);
	}

	.olimpia-venue-detail__team-card {
		padding: var(--space-lg);
	}

	.olimpia-venue-detail__team-logo-img {
		width: 80px;
		height: 80px;
	}

	.olimpia-venue-detail__team-name {
		font-size: var(--font-size-lg);
	}
}


/* ==========================================================================
   League Detail Page (taxonomy-sp_league)
   ========================================================================== */

.olimpia-league-detail {
	padding: var(--space-2xl) 0;
}

/* Header: logo centered + title */
.olimpia-league-detail__header {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: var(--space-lg);
	margin-bottom: var(--space-2xl);
}

.olimpia-league-detail__logo-img {
	width: 120px;
	height: 120px;
	object-fit: contain;
}

.olimpia-league-detail__title {
	font-size: var(--font-size-3xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0;
}

/* Description */
.olimpia-league-detail__description {
	max-width: 720px;
	margin: 0 auto var(--space-2xl);
	text-align: center;
	font-size: var(--font-size-md);
	color: var(--color-gray-700);
	line-height: 1.6;
}

/* Sections */
.olimpia-league-detail__section {
	margin-bottom: var(--space-2xl);
}

.olimpia-league-detail__section-title {
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-lg);
	padding-bottom: var(--space-sm);
	border-bottom: var(--divider-height) solid var(--color-primary);
	display: inline-block;
}

/* --------------------------------------------------------------------------
   League Detail - Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-league-detail__logo-img {
		width: 80px;
		height: 80px;
	}

	.olimpia-league-detail__title {
		font-size: var(--font-size-xl);
	}
}


/* ==========================================================================
   Playoff Layout (taxonomy-sp_league with is_playoff)
   ========================================================================== */

.olimpia-playoff-phase {
	margin-bottom: var(--space-2xl);
}

.olimpia-playoff-game {
	margin-bottom: var(--space-lg);
}

.olimpia-playoff-game__title {
	font-size: var(--font-size-md);
	font-weight: var(--font-weight-semibold);
	color: var(--color-gray-700);
	margin: 0 0 var(--space-sm);
	padding-left: var(--space-sm);
	border-left: 3px solid var(--color-primary);
}


/* ==========================================================================
   Single Player Page
   ========================================================================== */

/* --- Player Content / Biography --- */

/* Photo + Details: make details card match photo height.
   The Goal parent theme floats .sp-template-photo left at max-width 43%.
   We keep that layout and simply stretch the details dl to fill available height. */
.single-sp_player .sp-section-content-photo .sp-template-photo {
	float: left;
}

.single-sp_player .sp-section-content-details .sp-template-details dl {
	min-height: 100%;
	margin-bottom: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	box-sizing: border-box;
}

.sp-section-content-content .sp-post-content p {
	margin-bottom: var(--space-base);
	line-height: 1.7;
}

.sp-section-content-content .sp-post-content p:last-child {
	margin-bottom: 0;
}

/* --- Player Statistics --- */
.olimpia-player-stats {
	margin-top: var(--space-xl);
}

/* Highlight Cards */
.olimpia-player-stats__highlights {
	margin-bottom: var(--space-2xl);
}

.olimpia-player-stats__section-title {
	font-size: var(--font-size-xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-lg);
	padding-bottom: var(--space-sm);
	border-bottom: var(--divider-height) solid var(--color-primary);
	display: inline-block;
}

.olimpia-player-stats__cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--space-base);
	margin-bottom: var(--space-lg);
}

.olimpia-player-stats__card {
	background: var(--color-gray-100);
	border-radius: var(--radius-sm);
	padding: var(--space-lg) var(--space-base);
	text-align: center;
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
}

.olimpia-player-stats__card-label {
	font-size: var(--font-size-xs);
	font-weight: var(--font-weight-semibold);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--color-gray-600);
}

.olimpia-player-stats__card-value {
	font-size: var(--font-size-3xl);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	line-height: 1;
}

/* League pills */
.olimpia-player-stats__leagues {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
}

.olimpia-player-stats__league-pill {
	display: inline-flex;
	align-items: center;
	gap: var(--space-xs);
	padding: var(--space-xs) var(--space-sm);
	background: var(--color-gray-100);
	border-radius: var(--radius-sm);
	font-size: var(--font-size-sm);
	color: var(--color-gray-700);
}

.olimpia-player-stats__league-logo {
	width: 20px;
	height: 20px;
	object-fit: contain;
}

/* Detailed tables section */
.olimpia-player-stats__tables {
	margin-top: var(--space-xl);
}

.olimpia-player-stats__league-block {
	margin-bottom: var(--space-xl);
}

.olimpia-player-stats__league-title {
	display: flex;
	align-items: center;
	gap: var(--space-xs);
	font-size: var(--font-size-md);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-base);
}

.olimpia-player-stats__league-icon img {
	width: 24px;
	height: 24px;
	object-fit: contain;
}

.olimpia-player-stats__table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.olimpia-player-stats__table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--font-size-sm);
	white-space: nowrap;
}

.olimpia-player-stats__th {
	background: var(--color-primary);
	color: var(--color-white);
	padding: var(--space-xs) var(--space-sm);
	text-align: center;
	font-weight: var(--font-weight-semibold);
	font-size: var(--font-size-xs);
}

.olimpia-player-stats__th--label {
	text-align: left;
	min-width: 60px;
}

.olimpia-player-stats__td {
	padding: var(--space-xs) var(--space-sm);
	text-align: center;
	border-bottom: 1px solid var(--color-gray-200);
}

.olimpia-player-stats__td--label {
	text-align: left;
}

.olimpia-player-stats__row--totals {
	background: var(--color-white);
}

.olimpia-player-stats__row--averages {
	background: var(--color-gray-100);
}

/* Legacy SportsPress statistics table fallback */
.sp-template-player-statistics .sp-table-caption {
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0 0 var(--space-base);
	padding-bottom: var(--space-xs);
	border-bottom: var(--divider-height) solid var(--color-primary);
	display: inline-block;
}

.sp-template-player-statistics .sp-player-statistics {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--font-size-sm);
}

.sp-template-player-statistics .sp-player-statistics thead th {
	background: var(--color-primary);
	color: var(--color-white);
	padding: var(--space-xs) var(--space-sm);
	text-align: center;
	font-weight: var(--font-weight-semibold);
	white-space: nowrap;
}

.sp-template-player-statistics .sp-player-statistics tbody td {
	padding: var(--space-xs) var(--space-sm);
	text-align: center;
	border-bottom: 1px solid var(--color-gray-200);
}

.sp-template-player-statistics .sp-player-statistics tbody tr.odd {
	background: var(--color-white);
}

.sp-template-player-statistics .sp-player-statistics tbody tr.even {
	background: var(--color-gray-100);
}

.sp-template-player-statistics .sp-player-statistics tbody td.sp-highlight {
	font-weight: var(--font-weight-bold);
	background: rgba(var(--color-primary-rgb), 0.08);
}

/* --- Player Events (Grouped by League) --- */
.olimpia-player-events {
	margin-top: var(--space-xl);
}

.olimpia-player-events__league {
	margin-bottom: var(--space-2xl);
}

.olimpia-player-events__league-header {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	margin-bottom: var(--space-lg);
	padding-bottom: var(--space-sm);
	border-bottom: var(--divider-height) solid var(--color-primary);
}

.olimpia-player-events__league-logo-img {
	width: 32px;
	height: 32px;
	object-fit: contain;
}

.olimpia-player-events__league-title {
	font-size: var(--font-size-lg);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: 0;
}

.olimpia-player-events__league-title a {
	color: inherit;
	text-decoration: none;
	transition: color var(--transition-fast);
}

.olimpia-player-events__league-title a:hover {
	color: var(--color-primary);
}

.olimpia-player-events__phase-title {
	font-size: var(--font-size-md);
	font-weight: var(--font-weight-bold);
	color: var(--color-black);
	margin: var(--space-lg) 0 var(--space-sm);
}

/* Reuse the playoff game title style from league detail */
.olimpia-player-events .olimpia-playoff-phase {
	margin-bottom: var(--space-xl);
}

.olimpia-player-events .olimpia-playoff-game {
	margin-bottom: var(--space-lg);
}

.olimpia-player-events .olimpia-playoff-game__title {
	font-size: var(--font-size-sm);
	font-weight: var(--font-weight-semibold);
	color: var(--color-gray-600);
	margin: 0 0 var(--space-xs);
	padding-left: var(--space-sm);
	border-left: 3px solid var(--color-primary);
}

/* --------------------------------------------------------------------------
   Single Player Page - Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 768px) {
	.olimpia-player-stats__cards {
		grid-template-columns: repeat(2, 1fr);
	}

	.olimpia-player-stats__card-value {
		font-size: var(--font-size-2xl);
	}

	.olimpia-player-events__league-header {
		gap: var(--space-xs);
	}

	.olimpia-player-events__league-logo-img {
		width: 24px;
		height: 24px;
	}

	.olimpia-player-events__league-title {
		font-size: var(--font-size-md);
	}

	.olimpia-player-stats__table-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* --------------------------------------------------------------------------
   Sportpress - Sponsors
   -------------------------------------------------------------------------- */
.sp-footer-sponsors {
	border-top: 0.5px solid var(--color-gray-600);
}

.sp-footer-sponsors .sp-sponsors {
	padding: 0 !important;
	background-color: var(--color-primary);
}

.has-text-align-center  {
	text-align: center;
}


/* ==========================================================================
   League Table - Mobile Compact Layout
   ========================================================================== */

@media (max-width: 600px) {
	/* Compact table padding */
	.sp-league-table th,
	.sp-league-table td {
		padding: 6px 4px;
		font-size: 12px;
	}

	/* Rank column: narrow */
	.sp-league-table .data-rank {
		width: 28px;
		min-width: 28px;
		text-align: center;
		padding: 6px 2px;
	}

	/* Team name column: show only logo on mobile, hide text */
	.sp-league-table .data-name .team-name-text {
		display: none;
	}

	/* Bigger logo on mobile (replaces the text) */
	.sp-league-table .team-logo,
	.sp-league-table .team-logo img {
		width: 64px;
		height: 64px;
		max-width: 64px;
		max-height: 64px;
	}

	.sp-league-table .team-logo {
		margin-right: 0;
	}

	/* Name column: only needs space for the logo */
	.sp-league-table .data-name {
		width: 72px;
		min-width: 72px;
		padding: 6px 4px;
		text-align: center;
	}

	/* Data columns: tight and centered */
	.sp-league-table td[class^="data-"],
	.sp-league-table th[class^="data-"] {
		text-align: center;
		white-space: nowrap;
	}

	/* Hide secondary columns (pf, pa, diff, ppg, opg, pct, gb, home, road, lten, strk) */
	.sp-league-table .data-pf,
	.sp-league-table .data-pa,
	.sp-league-table .data-diff,
	.sp-league-table .data-ppg,
	.sp-league-table .data-opg,
	.sp-league-table .data-pct,
	.sp-league-table .data-gb,
	.sp-league-table .data-home,
	.sp-league-table .data-road,
	.sp-league-table .data-lten,
	.sp-league-table .data-strk {
		display: none;
	}

	/* Keep: Pos, Squadra (logo), Pts, GP, W, L */

	/* Table wrapper: no horizontal scroll needed with fewer columns */
	.sp-table-wrapper {
		overflow-x: visible;
	}

	/* Table: full width */
	.sp-league-table {
		width: 100%;
		table-layout: fixed;
	}

	/* Highlighted row: visible border */
	.sp-league-table tr.highlighted td {
		border-top: 2px solid var(--color-primary, #C8102E);
		border-bottom: 2px solid var(--color-primary, #C8102E);
	}
}


/* ==========================================================================
   Icon Button - Outline Circle (generico, riutilizzabile)
   Cerchio con bordo, icona centrata. Usabile come nav arrows, CTA icon, etc.
   ========================================================================== */

.olimpia-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1.5px solid var(--color-gray-900);
	background: transparent;
	color: var(--color-gray-900);
	cursor: pointer;
	transition: all var(--transition-fast);
	padding: 0;
	line-height: 1;
	flex-shrink: 0;
}

.olimpia-icon-btn:hover {
	background: var(--color-gray-900);
	color: var(--color-white);
	border-color: var(--color-gray-900);
}

.olimpia-icon-btn:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
}

.olimpia-icon-btn svg {
	display: block;
	width: 20px;
	height: 20px;
}

/* Variante small */
.olimpia-icon-btn--sm {
	width: 36px;
	height: 36px;
}

.olimpia-icon-btn--sm svg {
	width: 16px;
	height: 16px;
}

/* Variante large */
.olimpia-icon-btn--lg {
	width: 56px;
	height: 56px;
}

.olimpia-icon-btn--lg svg {
	width: 24px;
	height: 24px;
}

/* Variante filled (sfondo primary) */
.olimpia-icon-btn--filled {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

.olimpia-icon-btn--filled:hover {
	background: var(--color-primary-dark);
	border-color: var(--color-primary-dark);
	color: var(--color-white);
}

/* Variante light (bordo chiaro, per sfondi scuri) */
.olimpia-icon-btn--light {
	border-color: var(--color-white);
	color: var(--color-white);
}

.olimpia-icon-btn--light:hover {
	background: var(--color-white);
	color: var(--color-gray-900);
}


/* ==========================================================================
   Misc
   ========================================================================== */
.home .trx-addons-advanced-title a {
	color: white !important;
}

.container-grey-bg {
	background-color: var(--background-grey);
}

/* ==========================================================================
   Elementor Button - Global Pill Style
   Variante Light: sfondo bianco, testo scuro, icona primary
   Variante Inverse (.elementor-button--inverse): sfondo primary, testo bianco
   ========================================================================== */

.elementor-button {
	background-color: var(--color-white) !important;
	color: var(--color-black) !important;
	border: none !important;
	border-radius: var(--radius-pill) !important;
	font-weight: var(--font-weight-medium) !important;
	font-size: var(--font-size-lg) !important;
	padding: 14px 28px !important;
	box-shadow: var(--shadow-md) !important;
	transition: all var(--transition-fast) !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 10px !important;
	text-decoration: none !important;
}

.elementor-button:hover {
	background-color: var(--color-gray-50) !important;
	color: var(--color-black) !important;
	box-shadow: var(--shadow-lg) !important;
	transform: translateY(-1px);
}

.elementor-button .elementor-button-icon {
	color: var(--color-primary) !important;
	font-size: 1.2em !important;
}

.elementor-button:hover .elementor-button-icon {
	color: var(--color-primary-dark) !important;
}

.elementor-button.elementor-button-link {
	font-size: 0.8rem;
}

/* --------------------------------------------------------------------------
   Variante Inverse - classe aggiuntiva sul widget Elementor
   -------------------------------------------------------------------------- */

.elementor-button--inverse .elementor-button,
.elementor-button.elementor-button--inverse {
	background-color: var(--color-primary) !important;
	color: var(--color-white) !important;
}

.elementor-button--inverse .elementor-button:hover,
.elementor-button.elementor-button--inverse:hover {
	background-color: var(--color-primary-dark) !important;
	color: var(--color-white) !important;
}

.elementor-button--inverse .elementor-button .elementor-button-icon,
.elementor-button.elementor-button--inverse .elementor-button-icon {
	color: var(--color-white) !important;
}

.elementor-button--inverse .elementor-button:hover .elementor-button-icon,
.elementor-button.elementor-button--inverse:hover .elementor-button-icon {
	color: var(--color-white) !important;
}

/* COUNTERS */
.counters-bg-title {
	opacity: 0.1 !important;
}

.counters-template-wrapper * {
	color: white !important;
}

/* ======================================================================
   Bottone (.hero-button-link) - solo stile visivo
   ====================================================================== */
.hero-button-link .elementor-button {
	background-color: var(--color-primary) !important;
	color: var(--color-on-dark) !important;
	border-radius: 50% !important;
	width: 56px !important;
	height: 56px !important;
	min-width: 56px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	border: 2px solid var(--color-on-dark-divider) !important;
	transition: background-color 0.2s ease, border-color 0.2s ease !important;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}

.hero-button-link .elementor-button:hover {
	background-color: var(--color-primary-dark) !important;
}

.hero-button-link .elementor-button .elementor-button-text {
	display: none !important;
}

.hero-button-link .elementor-button .elementor-button-icon {
	margin: 0 !important;
	font-size: 20px !important;
}