

/* ==========================================================================
   1. BRACKET — .sfih-bracket (SPEC §5 row 23)
   ========================================================================== */

/* The rounds scroll inside the panel, never the page. ice-hockey.css clips the
   panel itself, so the scroller has to live one level in. */
.sfih-bracket > .sfih-scroll {
	padding-bottom: 2px;
}

@keyframes sfih-cup-sheen {
	0%,
	62% {
		transform: translateX(0) rotate(8deg);
		opacity: 0;
	}
	68% {
		opacity: 1;
	}
	100% {
		transform: translateX(560%) rotate(8deg);
		opacity: 0;
	}
}

/* ==========================================================================
   2. GROUP STAGE — .sfih-groups (SPEC §5 row 26)
   ========================================================================== */

.sfih-group__head .sfih-i {
	color: var(--sfih-gold-ink);
	flex: 0 0 auto;
}
.sfih-group__team .sfih-crest {
	flex: 0 0 auto;
}
.sfih-chero__mvp .sfih-i {
	color: var(--sfih-gold-ink);
}

/* ==========================================================================
   8. REDUCED MOTION
   Every animation and every transform declared above is switched off. The
   layout, the colour and the depth all survive — only the movement stops.
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

	.sfih-scroll {
		scroll-behavior: auto;
	}
}

/* ==========================================================================
   APPENDED 2026-08-19 — full component styling for the competition family.
   Everything below is new; nothing above is redefined. Classes styled here
   are the cups-family orphans (bracket, bracket-cards, competition-hero,
   groups, champions, trophy-case, playoff/round badges) plus the structural
   helpers only these components emit (.sfih-bk-team, .sfih-bk-third,
   .sfih-group__team, .sfih-chero__art/__img, .sfih-bkcard__img).
   Numbers follow scratchpad/ref/rules-f.css (#block_f-brk/cups/grp/champ/tro).
   ========================================================================== */

/* --------------------------------------------------------------------------
   A. BADGES — .sfih-badge--playoff / .sfih-badge--round
   Small uppercase chips (self-sufficient: no .sfih-badge base rule exists).
   Playoff wears the violet ring, round the neon ring.
   -------------------------------------------------------------------------- */

.sfih-badge--playoff,
.sfih-badge--round {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 3px 9px;
	border-radius: var(--sfih-pill);
	font-family: var(--sfih-f-ui);
	font-size: 10.5px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
	text-decoration: none;
	background: color-mix(in srgb, var(--sfih-panel-2) 78%, transparent);
}
.sfih-badge--playoff {
	color: var(--sfih-violet-ink);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--sfih-violet) 45%, transparent);
}
.sfih-badge--round {
	color: var(--sfih-neon-ink);
	box-shadow: var(--sfih-ring-neon);
}

/* --------------------------------------------------------------------------
   B. BRACKET — the knockout tree
   Round columns run left→right inside the .sfih-scroll the renderer wraps
   them in; the champion capsule closes the rail. (#block_f-brk-*)
   -------------------------------------------------------------------------- */

.sfih-bracket__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding-bottom: 14px;
	margin-bottom: 16px;
	border-bottom: 1px solid var(--sfih-line);
}
.sfih-bracket__head .sfih-title {
	flex: 1 1 auto;
	margin: 0;
	min-width: 0;
}
.sfih-bracket__head .sfih-more { margin-left: auto; }

.sfih-bk-rounds {
	display: flex;
	align-items: stretch;
	gap: 18px;
	min-width: max-content;
	padding: 2px 2px 8px;
}

.sfih-bk-round {
	display: flex;
	flex-direction: column;
	flex: 0 0 232px;
	width: 232px;
	min-width: 0;
}
.sfih-bk-round__label,
.sfih-bk-third__label {
	margin: 0 0 8px;
	font-family: var(--sfih-f-ui);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--sfih-accent-2);
}

/* Later rounds have fewer matches: distributing the free space vertically
   centres the Final against its semi-finals, the way a tree reads. */
.sfih-bk-matches {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-around;
	gap: 10px;
}

.sfih-bk-match {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 5px;
	border-radius: var(--sfih-r-sm);
	background: var(--sfih-panel-2);
	box-shadow: var(--sfih-ring);
	transition: box-shadow var(--sfih-t-fast) var(--sfih-ease);
}
.sfih-bk-match:hover { box-shadow: var(--sfih-ring-neon); }

.sfih-bk-match .sfih-bk-team {
	display: flex;
	align-items: center;
	gap: 7px;
	min-width: 0;
	padding: 5px 7px;
	border-radius: var(--sfih-r-sm);
	color: var(--sfih-ink);
	text-decoration: none;
	transition: background-color var(--sfih-t-fast) var(--sfih-ease);
}
a.sfih-bk-team:hover { background: rgba(255, 255, 255, 0.05); }
a.sfih-bk-team:hover .sfih-bk-team__name { color: var(--sfih-accent); }

.sfih-bk-team__seed {
	flex: 0 0 14px;
	width: 14px;
	font-family: var(--sfih-f-num);
	font-variant-numeric: tabular-nums;
	font-size: 11px;
	font-weight: 700;
	text-align: right;
	color: var(--sfih-muted);
}
.sfih-bk-team__blank {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--sfih-panel);
	box-shadow: var(--sfih-ring);
}
.sfih-bk-match .sfih-bk-team .sfih-crest { flex: 0 0 auto; }
.sfih-bk-team__name {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-family: var(--sfih-f-ui);
	font-size: 13.5px;
	font-weight: 600;
	letter-spacing: 0.04em;
	transition: color var(--sfih-t-fast) var(--sfih-ease);
}
.sfih-bk-team__score {
	flex: 0 0 auto;
	min-width: 26px;
	font-family: var(--sfih-f-num);
	font-variant-numeric: tabular-nums;
	font-size: 15px;
	font-weight: 700;
	text-align: right;
	color: var(--sfih-ink);
}

/* Winner emphasised, loser receding, TBD ghosted. */
.sfih-bk-team.is-winner .sfih-bk-team__name { font-weight: 700; }
.sfih-bk-team.is-winner .sfih-bk-team__score { color: var(--sfih-accent); }
.sfih-bk-team.is-loser .sfih-bk-team__name,
.sfih-bk-team.is-loser .sfih-bk-team__score { color: var(--sfih-muted); }
.sfih-bk-team.is-tbd .sfih-bk-team__name {
	color: var(--sfih-muted);
	font-weight: 500;
}

.sfih-bk-match__note {
	margin: 0;
	padding: 3px 7px 5px;
	font-family: var(--sfih-f-body);
	font-size: 10.5px;
	line-height: 1.4;
	color: var(--sfih-muted);
	text-decoration: none;
	transition: color var(--sfih-t-fast) var(--sfih-ease);
}
a.sfih-bk-match__note:hover { color: var(--sfih-accent); }

.sfih-bk-third { margin-top: 14px; }

/* Champion capsule at the end of the rail. */
.sfih-bk-champ {
	align-self: center;
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	min-width: 188px;
	padding: 18px 18px 16px;
	border-radius: var(--sfih-r);
	text-align: center;
	text-decoration: none;
	color: var(--sfih-ink);
	background-color: color-mix(in srgb, var(--sfih-gold) 7%, var(--sfih-panel-2));
	background-image: var(--sfih-sheen);
	box-shadow: var(--sfih-d1), var(--sfih-ring-gold);
	transition: transform var(--sfih-t) var(--sfih-ease), box-shadow var(--sfih-t) var(--sfih-ease);
}
a.sfih-bk-champ:hover {
	transform: translateY(-2px);
	box-shadow: var(--sfih-d3), var(--sfih-ring-gold);
}
.sfih-bk-champ__trophy { color: var(--sfih-gold-ink); }
.sfih-bk-champ__label {
	font-family: var(--sfih-f-ui);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--sfih-gold-ink);
}
.sfih-bk-champ .sfih-crest { margin: 2px 0; }
.sfih-bk-champ__name {
	font-family: var(--sfih-f-display);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.1;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.sfih-bk-champ.is-tbd .sfih-bk-champ__name { color: var(--sfih-muted); }
.sfih-bk-champ__sub {
	font-family: var(--sfih-f-ui);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sfih-muted);
}

@media (max-width: 768px) {
	.sfih-bk-round {
		flex-basis: 208px;
		width: 208px;
	}
	.sfih-bk-rounds { gap: 14px; }
}

/* --------------------------------------------------------------------------
   C. COMPETITION CARDS — .sfih-bkcards / .sfih-bkcard  (#block_f-cups-*)
   Card grid of competitions: key-art or mono-glyph header, Anton name,
   status chips, winner foot row. --sfih-cols comes inline from the widget.
   -------------------------------------------------------------------------- */

.sfih-bkcards {
	display: grid;
	grid-template-columns: repeat(var(--sfih-cols, 3), minmax(0, 1fr));
	gap: 18px;
}

/* A single available competition is a featured card, not an accidental
   empty three-column grid. */
.sfih-bkcards > .sfih-bkcard:only-child {
	grid-column: 1 / -1;
	justify-self: center;
	width: min(100%, 560px);
}

.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__art {
	height: 180px;
}

.sfih-bkcard {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: var(--sfih-r);
	background-color: var(--sfih-panel);
	background-image: var(--sfih-sheen);
	box-shadow: var(--sfih-d2), var(--sfih-ring);
	color: var(--sfih-ink);
	text-decoration: none;
	transition: transform var(--sfih-t) var(--sfih-ease), box-shadow var(--sfih-t) var(--sfih-ease);
}
a.sfih-bkcard:hover {
	transform: translateY(-2px);
	box-shadow: var(--sfih-d3), var(--sfih-ring);
}

.sfih-bkcard__art {
	position: relative;
	display: block;
	height: 150px;
	overflow: hidden;
	background: var(--sfih-panel-2);
}
.sfih-bkcard__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Mono variant: no key art — centre the champion crest (or the trophy glyph)
   on a soft radial wash of the champion's colour. */
.sfih-bkcard__art--mono {
	display: flex;
	align-items: center;
	justify-content: center;
	background-image: radial-gradient(
		130% 120% at 50% 0%,
		color-mix(in srgb, var(--sfih-team, var(--sfih-gold)) 20%, transparent) 0%,
		transparent 68%
	);
	background-color: var(--sfih-panel-2);
}
.sfih-bkcard__crest {
	width: 76px;
	height: 76px;
	filter: drop-shadow(0 10px 22px rgba(0, 0, 0, 0.5));
}
.sfih-bkcard__glyph {
	color: var(--sfih-gold-ink);
	opacity: 0.9;
}

.sfih-bkcard__top {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 14px 14px 0;
}
.sfih-bkcard__name {
	display: block;
	padding: 10px 14px 0;
	font-family: var(--sfih-f-display);
	font-weight: 400;
	font-size: 20px;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	transition: color var(--sfih-t-fast) var(--sfih-ease);
}
a.sfih-bkcard:hover .sfih-bkcard__name { color: var(--sfih-accent); }
.sfih-bkcard__sub {
	display: block;
	padding: 6px 14px 0;
}
.sfih-bkcard__details {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 14px;
	padding: 8px 14px 0;
	font-family: var(--sfih-f-ui);
	font-size: 10.5px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--sfih-muted);
}
.sfih-bkcard__details > span {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}
.sfih-bkcard__details .sfih-i {
	flex: 0 0 auto;
	color: var(--sfih-accent-2);
}
.sfih-bkcard__foot {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: auto;
	padding: 12px 14px 14px;
	border-top: 1px solid var(--sfih-line);
}
.sfih-bkcard__sub + .sfih-bkcard__foot,
.sfih-bkcard__name + .sfih-bkcard__foot { margin-top: 14px; }
.sfih-bkcard__winner {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-width: 0;
	font-family: var(--sfih-f-ui);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--sfih-gold-ink);
}
.sfih-bkcard__winner .sfih-i { flex: 0 0 auto; }
.sfih-bkcard__meta {
	margin-left: auto;
	font-family: var(--sfih-f-ui);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--sfih-muted);
}

@media (max-width: 1024px) {
	.sfih-bkcards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
	.sfih-bkcards {
		grid-template-columns: minmax(0, 1fr);
		gap: 14px;
	}
	.sfih-bkcard__name { font-size: 18px; }
}

/* --------------------------------------------------------------------------
   D. COMPETITION HERO — .sfih-chero
   Tournament header stage: eyebrow + Anton title + status chips, a fact
   grid, and the champion (or "still to play for") row.
   -------------------------------------------------------------------------- */

.sfih-chero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	gap: 18px;
	padding: 26px 24px 24px;
	border-radius: var(--sfih-r-lg);
	background-color: var(--sfih-panel);
	background-image: var(--sfih-sheen);
	box-shadow: var(--sfih-d3), var(--sfih-ring);
	color: var(--sfih-ink);
}

/* Optional key art sits behind everything as a dimmed backdrop. */
.sfih-chero__art {
	position: absolute;
	inset: 0;
	z-index: 0;
	opacity: 0.2;
	-webkit-mask-image: linear-gradient(105deg, transparent 30%, #000 100%);
	mask-image: linear-gradient(105deg, transparent 30%, #000 100%);
}
.sfih-chero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.sfih-chero > :not(.sfih-chero__art) {
	position: relative;
	z-index: 1;
}

.sfih-chero__top {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}
.sfih-chero__name {
	margin: 0;
	font-family: var(--sfih-f-display);
	font-weight: 400;
	font-size: clamp(28px, 4.4vw, 44px);
	line-height: 1.04;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: var(--sfih-ink);
}
.sfih-chero__top .sfih-sub {
	margin: 0;
	max-width: 640px;
}
.sfih-chero__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 4px;
}

.sfih-chero__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px 18px;
	padding-top: 16px;
	border-top: 1px solid var(--sfih-line);
}

.sfih-chero__winner {
	align-self: flex-start;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 18px 14px 14px;
	border-radius: var(--sfih-r);
	color: var(--sfih-ink);
	text-decoration: none;
	background-color: color-mix(in srgb, var(--sfih-gold) 7%, var(--sfih-panel-2));
	box-shadow: var(--sfih-d1), var(--sfih-ring-gold);
	transition: transform var(--sfih-t) var(--sfih-ease), box-shadow var(--sfih-t) var(--sfih-ease);
}
a.sfih-chero__winner:hover {
	transform: translateY(-2px);
	box-shadow: var(--sfih-d3), var(--sfih-ring-gold);
}
.sfih-chero__crest { flex: 0 0 auto; }
svg.sfih-chero__crest { color: var(--sfih-gold-ink); }
.sfih-chero__winner-body {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.sfih-chero__winner-body > span {
	font-family: var(--sfih-f-ui);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--sfih-gold-ink);
}
.sfih-chero__winner-body > b {
	font-family: var(--sfih-f-display);
	font-weight: 400;
	font-size: 20px;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
}
.sfih-chero__winner.is-tbd .sfih-chero__winner-body > b { color: var(--sfih-muted); }
.sfih-chero__winner-sub {
	font-style: normal;
	font-family: var(--sfih-f-ui);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sfih-muted);
}
.sfih-chero__mvp {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 4px;
	font-family: var(--sfih-f-ui);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sfih-accent-2);
	text-decoration: none;
}
a.sfih-chero__mvp:hover { color: var(--sfih-accent); }

@media (max-width: 768px) {
	.sfih-chero {
		padding: 20px 16px 18px;
		gap: 14px;
	}
	.sfih-chero__winner { align-self: stretch; }
}

/* --------------------------------------------------------------------------
   E. GROUP STAGE — .sfih-groups  (#block_f-grp-*)
   One panel per group in a two-column grid. The table element itself
   (.sfih-group-table) belongs to the standings sheet; everything here hangs
   off the group__* classes only these renderers emit.
   -------------------------------------------------------------------------- */

.sfih-groups {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}
.sfih-groups__legend {
	grid-column: 1 / -1;
	margin: 0;
	font-family: var(--sfih-f-body);
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--sfih-muted);
}

.sfih-group {
	min-width: 0;
	padding: 16px 14px 12px;
	border-radius: var(--sfih-r);
	background-color: var(--sfih-panel);
	background-image: var(--sfih-sheen);
	box-shadow: var(--sfih-d2), var(--sfih-ring);
}
.sfih-group__head {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 4px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--sfih-line);
}
.sfih-group__name {
	flex: 1 1 auto;
	min-width: 0;
	font-family: var(--sfih-f-ui);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--sfih-ink);
}
.sfih-group__count {
	font-family: var(--sfih-f-ui);
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--sfih-muted);
}

/* The caption is a full descriptive sentence — screen readers only. */
.sfih-group__caption {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.sfih-group__row td {
	padding: 7px 8px;
	border-top: 1px solid var(--sfih-line);
	font-family: var(--sfih-f-ui);
	font-size: 13px;
	color: var(--sfih-ink);
	vertical-align: middle;
	white-space: nowrap;
}
.sfih-group__row td.is-num {
	font-family: var(--sfih-f-num);
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	font-size: 13.5px;
	text-align: right;
}
.sfih-group__row td.is-p,
.sfih-group__row td.is-l,
.sfih-group__row td.is-t,
.sfih-group__row td.is-pa { color: var(--sfih-muted); }
.sfih-group__row td.is-pts {
	font-weight: 700;
	color: var(--sfih-turf-ink);
}
.sfih-group__row.is-through {
	background: color-mix(in srgb, var(--sfih-turf) 5%, transparent);
}

/* Rank cell + the qualification stripe on its left edge. */
.sfih-group__row td.is-pos {
	position: relative;
	width: 34px;
	padding-left: 12px;
}
.sfih-group__stripe {
	position: absolute;
	left: 0;
	top: 5px;
	bottom: 5px;
	width: 3px;
	border-radius: 2px;
	background: transparent;
}
.sfih-group__row.is-through .sfih-group__stripe {
	background: var(--sfih-team, var(--sfih-turf));
	box-shadow: 0 0 10px color-mix(in srgb, var(--sfih-team, var(--sfih-turf)) 55%, transparent);
}
.sfih-group__pos {
	font-family: var(--sfih-f-num);
	font-variant-numeric: tabular-nums;
	font-size: 12px;
	font-weight: 700;
	color: var(--sfih-muted);
}
.sfih-group__row.is-through .sfih-group__pos { color: var(--sfih-ink); }

.sfih-group__team {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
	max-width: 100%;
	color: var(--sfih-ink);
	text-decoration: none;
}
.sfih-group__abbr {
	font-family: var(--sfih-f-ui);
	font-size: 12.5px;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: color var(--sfih-t-fast) var(--sfih-ease);
}
a.sfih-group__team:hover .sfih-group__abbr { color: var(--sfih-accent); }
.sfih-group__nick {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
	font-family: var(--sfih-f-ui);
	font-size: 12px;
	font-weight: 500;
	color: var(--sfih-muted);
}

/* Qualification cut line between the qualifiers and the rest. */
.sfih-group__cut td {
	padding: 2px 8px;
	border-top: 1px dashed color-mix(in srgb, var(--sfih-turf) 55%, transparent);
	text-align: right;
}
.sfih-group__cut-label {
	font-family: var(--sfih-f-ui);
	font-size: 9.5px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--sfih-turf-ink);
}

@media (max-width: 1024px) {
	.sfih-groups { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 768px) {
	.sfih-group { padding: 13px 11px 10px; }
	.sfih-group__nick { display: none; }
}

/* --------------------------------------------------------------------------
   F. CHAMPIONS — .sfih-champs / .sfih-champ  (#block_f-champ-*)
   Reigning-champion cards: gold-ringed panel, crown mark, Anton club name,
   competition + season, MVP and runner-up lines.
   -------------------------------------------------------------------------- */

.sfih-champs {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.sfih-champ {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 3px;
	padding: 16px 16px 14px;
	border-radius: var(--sfih-r);
	background-color: var(--sfih-panel);
	background-image: var(--sfih-sheen);
	box-shadow: var(--sfih-d2), inset 0 0 0 1px color-mix(in srgb, var(--sfih-gold) 22%, transparent);
	color: var(--sfih-ink);
	text-decoration: none;
	transition: transform var(--sfih-t) var(--sfih-ease), box-shadow var(--sfih-t) var(--sfih-ease);
}
a.sfih-champ:hover {
	transform: translateY(-2px);
	box-shadow: var(--sfih-d3), inset 0 0 0 1px color-mix(in srgb, var(--sfih-gold) 55%, transparent);
}
.sfih-champ__crown {
	position: absolute;
	top: 14px;
	right: 14px;
	color: var(--sfih-gold-ink);
}
.sfih-champ__crest { margin-bottom: 8px; }
.sfih-champ__season {
	font-family: var(--sfih-f-ui);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sfih-gold-ink);
}
.sfih-champ__name {
	margin: 2px 0;
	font-family: var(--sfih-f-display);
	font-weight: 400;
	font-size: 19px;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	transition: color var(--sfih-t-fast) var(--sfih-ease);
}
a.sfih-champ:hover .sfih-champ__name { color: var(--sfih-accent); }
.sfih-champ__comp {
	font-family: var(--sfih-f-ui);
	font-size: 12px;
	font-weight: 500;
	color: var(--sfih-muted);
}
.sfih-champ__runner {
	margin-top: 6px;
	font-family: var(--sfih-f-body);
	font-size: 12px;
	color: var(--sfih-muted);
}
.sfih-champ__mvp {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	margin-top: 4px;
	font-family: var(--sfih-f-ui);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--sfih-accent-2);
}
.sfih-champ__trophy {
	align-self: stretch;
	margin-top: 10px;
	padding-top: 8px;
	border-top: 1px solid var(--sfih-line);
	font-family: var(--sfih-f-ui);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--sfih-muted);
}

@media (max-width: 1024px) {
	.sfih-champs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
	.sfih-champs {
		grid-template-columns: minmax(0, 1fr);
		gap: 14px;
	}
}

/* --------------------------------------------------------------------------
   G. TROPHY CASE — .sfih-trophies  (#block_f-tro-*)
   strip = one horizontal snap rail inside .sfih-scroll; grid = wrapping
   tile wall. Tiles: gold trophy icon, Rajdhani year, crest, club.
   -------------------------------------------------------------------------- */

.sfih-trophies {
	display: grid;
	gap: 14px;
	min-width: 0;
}
.sfih-trophies__rail {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}
.sfih-trophies--strip .sfih-trophies__rail {
	flex-wrap: nowrap;
	min-width: max-content;
}
.sfih-trophies--strip .sfih-trophies__wrap {
	scroll-snap-type: x proximity;
	padding-bottom: 6px;
}
.sfih-trophies--strip .sfih-trophy { scroll-snap-align: start; }

.sfih-trophy {
	flex: 1 1 150px;
	max-width: 220px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 7px;
	padding: 16px 12px;
	border-radius: var(--sfih-r);
	text-align: center;
	text-decoration: none;
	color: var(--sfih-ink);
	background-color: var(--sfih-panel-2);
	background-image: var(--sfih-sheen);
	box-shadow: var(--sfih-d1), inset 0 0 0 1px color-mix(in srgb, var(--sfih-gold) 24%, transparent);
	transition: transform var(--sfih-t) var(--sfih-ease), box-shadow var(--sfih-t) var(--sfih-ease);
}
.sfih-trophies--strip .sfih-trophy {
	flex: 0 0 164px;
	width: 164px;
	max-width: none;
}
a.sfih-trophy:hover {
	transform: translateY(-2px);
	box-shadow: var(--sfih-d3), inset 0 0 0 1px color-mix(in srgb, var(--sfih-gold) 62%, transparent);
}
.sfih-trophy__icon { color: var(--sfih-gold-ink); }
.sfih-trophy__year {
	font-family: var(--sfih-f-num);
	font-variant-numeric: tabular-nums;
	font-size: 20px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
	color: var(--sfih-gold-ink);
}
.sfih-trophy__crest { margin: 2px 0; }
.sfih-trophy__name {
	font-family: var(--sfih-f-ui);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.15;
	transition: color var(--sfih-t-fast) var(--sfih-ease);
}
a.sfih-trophy:hover .sfih-trophy__name { color: var(--sfih-accent); }
.sfih-trophy__sub {
	font-family: var(--sfih-f-ui);
	font-size: 9.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sfih-muted);
}

@media (max-width: 768px) {
	.sfih-trophies--strip .sfih-trophy {
		flex-basis: 148px;
		width: 148px;
	}
}

/* --------------------------------------------------------------------------
   H. REDUCED MOTION for everything appended above — the hover transforms
   stop moving; colour, ring and depth changes survive.
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	a.sfih-bk-champ:hover,
	a.sfih-bkcard:hover,
	a.sfih-chero__winner:hover,
	a.sfih-champ:hover,
	a.sfih-trophy:hover {
		transform: none;
	}
}

/* ---- I. Elementor tournament archive parity ---------------------------
   A lone competition is a compact schedule row in the Block archive, not a
   centred poster. Preserve the normal multi-card grid and only restyle the
   single-card state used by the current tournament archive. */
.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
	.sfih-bkcards > .sfih-bkcard:only-child {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) auto;
	grid-template-rows: auto auto auto auto;
	align-items: center;
	gap: 4px 18px;
	justify-self: stretch;
	width: 100%;
	max-width: none;
	min-height: 150px;
	padding: 18px 20px;
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
	.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__art {
	grid-column: 1;
	grid-row: 1 / -1;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--sfih-panel-2);
	box-shadow: var(--sfih-ring);
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
	.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__crest {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	object-fit: contain;
	background: var(--sfih-panel-2);
	padding: 3px;
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
	.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__top {
	grid-column: 2;
	grid-row: 1;
	padding: 0;
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
	.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__name {
	grid-column: 2;
	grid-row: 2;
	padding: 0;
	font-size: 24px;
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
	.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__sub {
	grid-column: 2;
	grid-row: 3;
	padding: 0;
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
	.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__details {
	grid-column: 2;
	grid-row: 4;
	align-self: start;
	gap: 4px 12px;
	margin-top: 4px;
	padding: 0;
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
	.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__foot {
	grid-column: 3;
	grid-row: 1 / -1;
	align-self: stretch;
	justify-content: center;
	flex-direction: column;
	min-width: 190px;
	margin: 0;
	padding: 0 0 0 20px;
	border-top: 0;
	border-left: 1px solid var(--sfih-line);
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
	.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__meta {
	margin-left: 0;
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition .sfih-champs {
	grid-template-columns: repeat(auto-fit, minmax(230px, 276px));
}

/* Match the Block archive's intentional champion card. The previous open
   white treatment made the crest read like an empty loose disc and left the
   trophy glyph floating at the far edge of the grid cell. */
.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition .sfih-champ {
	width: 100%;
	max-width: 276px;
	min-height: 188px;
	align-items: center;
	justify-content: center;
	padding: 22px 18px 18px;
	text-align: center;
	background: var(--sfih-panel);
	box-shadow:
		0 14px 34px rgba(11, 31, 58, 0.11),
		inset 0 0 0 1px var(--sfih-line);
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition .sfih-champ__crown {
	top: 20px;
	right: auto;
	left: calc(50% + 24px);
	z-index: 1;
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition .sfih-champ__crest {
	margin: 0 auto 8px;
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition .sfih-champ__mvp {
	justify-content: center;
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition .sfih-champ__trophy {
	text-align: center;
}

.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition .sfih-champ__crest,
.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition .sfih-trophy__crest {
	border-radius: 50%;
	object-fit: contain;
	background: var(--sfih-panel-2);
	box-shadow: var(--sfih-ring);
	padding: 3px;
}

@media (max-width: 768px) {
	.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
		.sfih-bkcards > .sfih-bkcard:only-child {
		display: flex;
		align-items: flex-start;
		min-height: 0;
		padding: 14px;
	}

	.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
		.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__art {
		width: 48px;
		height: 48px;
		flex: 0 0 48px;
	}

	.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
		.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__crest {
		width: 40px;
		height: 40px;
	}

	.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
		.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__name {
		font-size: 18px;
	}

	.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
		.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__foot {
		align-self: stretch;
		min-width: 0;
		margin-top: 12px;
		padding: 12px 0 0;
		border-top: 1px solid var(--sfih-line);
		border-left: 0;
	}

	.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition
		.sfih-bkcards > .sfih-bkcard:only-child .sfih-bkcard__details {
		width: 100%;
		gap: 5px 10px;
		margin-top: 8px;
		font-size: 10px;
	}

	.wp-theme-ice-hockey-elementor.post-type-archive-ih_competition .sfih-champs {
		grid-template-columns: minmax(0, 1fr);
	}
}
