/*
 * Todos los colores, radios y tipografías son variables públicas. Pueden
 * redefinirse en Elementor, el tema hijo o una clase pasada al shortcode.
 */
.pbcs {
	--pbcs-primary: var(--pb-purple, #7930b2);
	--pbcs-primary-dark: var(--pb-purple-dark, #52247f);
	--pbcs-accent: var(--pb-cyan, #a8fffe);
	--pbcs-lilac: var(--pb-lilac, #e4c7ff);
	--pbcs-ink: var(--pb-ink, #111315);
	--pbcs-muted: #67616d;
	--pbcs-surface: #fff;
	--pbcs-soft-surface: #f5f3f7;
	--pbcs-border: #ded9e2;
	--pbcs-home-surface: #f4edf8;
	--pbcs-home-ink: var(--pbcs-primary);
	--pbcs-away-surface: #e8f9f7;
	--pbcs-away-ink: #176b66;
	--pbcs-rest-surface: #f5f1e8;
	--pbcs-rest-ink: #765a27;
	--pbcs-radius: 18px;
	--pbcs-font: inherit;
	--pbcs-heading-weight: 800;
	color: var(--pbcs-ink);
	display: grid;
	font-family: var(--pbcs-font);
	gap: clamp(2.5rem, 6vw, 5rem);
}

.pbcs-section h2 {
	font-size: clamp(2rem, 4vw, 3.5rem);
	margin: .15em 0 .65em;
}

.pbcs-eyebrow {
	color: var(--pbcs-primary);
	font-size: .76rem;
	font-weight: var(--pbcs-heading-weight);
	letter-spacing: .13em;
	margin: 0;
	text-transform: uppercase;
}

/* Próximo partido: composición de tres columnas de la referencia de diseño. */
.pbcs-featured-match {
	align-items: center;
	background: var(--pbcs-surface);
	border: 1px solid var(--pbcs-border);
	border-radius: var(--pbcs-radius);
	display: grid;
	gap: clamp(1rem, 4vw, 3rem);
	grid-template-columns: 1fr auto 1fr;
	min-height: 100px;
	padding: clamp(1.25rem, 3vw, 2rem);
}

.pbcs-featured-match__team {
	display: grid;
	gap: .35rem;
	text-align: center;
}

.pbcs-featured-match__team strong {
	font-size: clamp(1rem, 2vw, 1.25rem);
	font-weight: var(--pbcs-heading-weight);
}

.pbcs-featured-match__team span {
	font-size: .9rem;
	font-weight: 700;
}

.pbcs-featured-match__versus {
	color: var(--pbcs-primary);
	font-size: 1.2rem;
	font-weight: 900;
	text-transform: uppercase;
}

.pbcs-matches { border-top: 1px solid var(--pbcs-border); }

.pbcs-match {
	align-items: center;
	border-bottom: 1px solid var(--pbcs-border);
	display: grid;
	gap: 1rem;
	grid-template-columns: 88px 1fr auto;
	padding: 1rem 0;
}

.pbcs-match time,
.pbcs-match__teams,
.pbcs-score { display: grid; }
.pbcs-match time strong { font-size: 1.25rem; }
.pbcs-match time span,
.pbcs-match small { color: var(--pbcs-muted); }
.pbcs-match__teams { font-weight: 700; }
.pbcs-match__teams small { font-weight: 400; margin-top: .3rem; }
.pbcs-score { font-size: 1.2rem; gap: .2rem; text-align: right; }

.pbcs-chip {
	background: var(--pbcs-surface);
	border-radius: 999px;
	color: var(--pbcs-primary);
	font-size: .75rem;
	font-weight: var(--pbcs-heading-weight);
	padding: .4rem .7rem;
	text-transform: uppercase;
}

.pbcs-match--home .pbcs-chip { background: var(--pbcs-home-surface); color: var(--pbcs-home-ink); }
.pbcs-match--away .pbcs-chip { background: var(--pbcs-away-surface); color: var(--pbcs-away-ink); }
.pbcs-match--rest .pbcs-chip { background: var(--pbcs-rest-surface); color: var(--pbcs-rest-ink); }

.pbcs-section:has(.pbcs-standing) { overflow-x: auto; }
.pbcs-standing { min-width: 580px; }
.pbcs-standing__row {
	align-items: center;
	border-bottom: 1px solid var(--pbcs-border);
	display: grid;
	gap: .75rem;
	grid-template-columns: 48px minmax(220px, 1fr) repeat(4, 44px);
	padding: .75rem;
}
.pbcs-standing__head {
	background: var(--pbcs-soft-surface);
	font-size: .75rem;
	font-weight: var(--pbcs-heading-weight);
	text-transform: uppercase;
}
.pbcs-standing__row.is-pucela { background: var(--pbcs-primary); color: #fff; }
.pbcs-empty { background: var(--pbcs-soft-surface); border-left: 4px solid var(--pbcs-primary); padding: 1rem; }
.pbcs-source { align-items: center; color: var(--pbcs-muted); display: flex; font-size: .75rem; gap: 1rem; justify-content: space-between; margin-top: clamp(-1.25rem, -1.5vw, -.625rem); }
.pbcs-source a { color: var(--pbcs-primary); font-weight: 700; }

/* Plantilla y estadísticas: misma gramática visual de las fichas de equipo. */
.pbcs-block-heading {
	align-items: flex-end;
	display: flex;
	gap: 1.5rem;
	justify-content: space-between;
	margin-bottom: 1.5rem;
}

.pbcs-block-heading h2 {
	font-size: clamp(2rem, 4vw, 3.5rem);
	line-height: 1.05;
	margin: .15em 0 0;
}

.pbcs-count {
	background: var(--pbcs-lilac);
	border-radius: 999px;
	color: var(--pbcs-primary-dark);
	font-size: .75rem;
	font-weight: 800;
	padding: .55rem .8rem;
	text-transform: uppercase;
}

.pbcs-player-grid {
	display: grid;
	grid-template-columns: 1fr;
}

.pbcs-player-card {
	align-items: start;
	border-bottom: 1px solid var(--pbcs-border);
	display: grid;
	gap: clamp(.9rem, 2vw, 1.4rem);
	grid-template-columns: 72px minmax(0, 1fr);
	min-width: 0;
	padding: .75rem 0;
}
.pbcs-player-card:first-child { border-top: 1px solid var(--pbcs-border); }

.pbcs-player-card__photo {
	align-self: start;
	aspect-ratio: 4 / 5;
	background: linear-gradient(160deg, var(--pbcs-lilac), #e8deef);
	border-radius: 8px;
	display: grid;
	overflow: hidden;
	place-items: center;
	width: 72px;
}

.pbcs-player-card__photo img {
	height: 100%;
	object-fit: cover;
	object-position: center top;
	width: 100%;
}

.pbcs-player-card__photo > span {
	display: block;
	height: 100%;
	width: 100%;
}

.pbcs-player-card__body { align-items: center; align-self: start; display: grid; gap: .8rem 1.25rem; grid-template-columns: 52px minmax(160px, 1fr) auto; min-width: 0; padding-top: .65rem; width: 100%; }
.pbcs-player-card__identity { min-width: 0; }
.pbcs-player-card__body h3 { font-size: 1.28rem; line-height: 1.2; margin: 0; overflow-wrap: anywhere; }
.pbcs-player-card__dorsal { color: var(--pbcs-primary); font-size: 1.76rem; font-weight: 900; line-height: 1; margin: 0; }
.pbcs-player-card__position { color: var(--pbcs-muted); font-size: .86rem; font-weight: 800; letter-spacing: .05em; margin: 0; text-transform: uppercase; }
.pbcs-player-card__quick { display: grid; grid-template-columns: repeat(3, minmax(48px, 1fr)); min-width: 190px; }
.pbcs-player-card__quick span { color: var(--pbcs-muted); display: grid; font-size: .7rem; gap: .15rem; text-align: center; }
.pbcs-player-card__quick strong { color: var(--pbcs-ink); font-size: 1.1rem; }
.pbcs-player-card__details { grid-column: 2 / -1; }
.pbcs-player-card__details summary { color: var(--pbcs-primary); cursor: pointer; font-size: .78rem; font-weight: 800; list-style-position: inside; }
.pbcs-player-card__details dl { display: grid; gap: .4rem; grid-template-columns: 1fr 1fr; margin: .8rem 0; }
.pbcs-player-card__details dl div { background: var(--pbcs-soft-surface); border-radius: 8px; display: grid; gap: .15rem; padding: .5rem; }
.pbcs-player-card__details dt { color: var(--pbcs-muted); font-size: .62rem; }
.pbcs-player-card__details dd { font-size: .85rem; font-weight: 800; margin: 0; }
.pbcs-player-card__details a { color: var(--pbcs-primary); display: inline-block; font-size: .72rem; font-weight: 800; }

/* Cuerpo técnico: contenido editorial del CPT, nunca sincronizado desde FBCyL. */
.pbcs-staff-grid { display: flex; flex-wrap: wrap; gap: .65rem; }
.pbcs-staff-card { background: var(--pbcs-surface); border: 1px solid #e8e2ec; border-radius: 10px; flex: 0 1 280px; min-width: 220px; padding: .7rem .9rem; }
.pbcs-staff-card.is-main { background: var(--pbcs-surface); border: 2px solid var(--pbcs-primary); box-shadow: 0 5px 14px rgba(82,36,127,.14), inset 4px 0 0 var(--pbcs-primary); padding: calc(.7rem - 1px) calc(.9rem - 1px); }
.pbcs-staff-card__body { min-width: 0; }
.pbcs-staff-card__body p { color: var(--pbcs-primary); font-size: .84rem; font-weight: 850; letter-spacing: .06em; margin: 0 0 .3rem; text-transform: uppercase; }
.pbcs-staff-card__body h3 { font-size: 1.34rem; line-height: 1.15; margin: 0; overflow-wrap: anywhere; }


.pbcs-team-summary { background: var(--pbcs-surface); border: 1px solid #e8e2ec; border-radius: 16px; display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; }
.pbcs-team-summary article { display: grid; gap: .3rem; padding: clamp(1rem, 3vw, 1.6rem); text-align: center; }
.pbcs-team-summary article + article { border-left: 1px solid #e8e2ec; }
.pbcs-team-summary strong { color: var(--pbcs-primary); font-size: clamp(1.8rem, 4vw, 3.25rem); letter-spacing: -.05em; }
.pbcs-team-summary span { color: var(--pbcs-muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.pbcs-shooting { border: 1px solid #e8e2ec; border-radius: 16px; margin-top: 1.25rem; padding: 1.25rem; }
.pbcs-shooting h3 { font-size: 1.15rem; margin: 0 0 1rem; }
.pbcs-shooting__row { align-items: center; display: grid; gap: .75rem; grid-template-columns: 110px 1fr 40px; margin-top: .85rem; }
.pbcs-shooting__row > span { font-size: .78rem; font-weight: 700; }
.pbcs-shooting__row > div { background: var(--pbcs-soft-surface); border-radius: 999px; height: 8px; overflow: hidden; }
.pbcs-shooting__row i { background: var(--pbcs-primary); border-radius: inherit; display: block; height: 100%; }
.pbcs-shooting__row strong { font-size: .8rem; text-align: right; }

@media (max-width: 620px) {
	.pbcs-featured-match { gap: .75rem; grid-template-columns: 1fr; }
	.pbcs-featured-match__versus { justify-self: center; }
	.pbcs-match { grid-template-columns: 64px 1fr auto; }
	.pbcs-match__teams { font-size: .9rem; }
	.pbcs-source { align-items: flex-start; flex-direction: column; }
	.pbcs-block-heading { align-items: flex-start; flex-direction: column; }
	.pbcs-team-summary { grid-template-columns: 1fr 1fr; }
	.pbcs-staff-grid { display: grid; grid-template-columns: 1fr; }
	.pbcs-player-card { gap: .75rem; grid-template-columns: 54px minmax(0, 1fr); }
	.pbcs-player-card__photo { width: 54px; }
	.pbcs-player-card__body { gap: .55rem .75rem; grid-template-columns: 34px minmax(0, 1fr); }
	.pbcs-player-card__quick { grid-column: 1 / -1; min-width: 0; }
	.pbcs-player-card__details { grid-column: 1 / -1; }
	.pbcs-team-summary article:nth-child(3) { border-left: 0; border-top: 1px solid #e8e2ec; }
	.pbcs-team-summary article:nth-child(4) { border-top: 1px solid #e8e2ec; }
}

@media (min-width: 621px) and (max-width: 950px) {
	.pbcs-player-card__body { grid-template-columns: 48px minmax(140px, 1fr) auto; }
}

@media (prefers-reduced-motion: reduce) {
	.pbcs * { scroll-behavior: auto !important; }
}
