/* acf/multi-column — Tucson overrides. Loaded with the block.
   Design uses (standard_card):
   - Image cards: a tall photo (the rider breaks out of the top edge, a
     transparent PNG), then a 30/700 title, the rule and the body below.
   - Text-only cards (Arena Records): a 17/500 label with the body under
     it. Switched automatically by whether the card has an image. */

body .lp-multi-column .block-contents {
	gap: 40px;
}

body .lp-multi-column__intro {
	max-width: 760px;
	text-align: center;
}

/* The parent centres the intro's children, which shrinks a short sub line
   (and the rule drawn after it) to its text width. */
body .lp-multi-column__intro > * {
	align-self: stretch;
}

body .lp-multi-column__header {
	font-family: var(--font-family-heading);
	font-size: var(--tr-heading-size);
	font-weight: 400;
	line-height: 1.2;
	color: var(--text-primary);
}

.is-dark .lp-multi-column__header,
:is(.is-style-tr-band, .is-style-tr-band-flat-top) .lp-multi-column__header {
	font-weight: 700;
}

body .lp-multi-column__sub-header {
	font-family: var(--font-family-body);
	font-size: var(--font-size-small);
	font-weight: 400;
	line-height: 1.5;
	color: var(--text-primary);
	margin-top: 4px;
}

body .lp-multi-column__header:not(:has(+ .lp-multi-column__sub-header))::after,
body .lp-multi-column__sub-header::after {
	content: "";
	display: block;
	width: min(528px, 100%);
	height: 17px;
	margin: 20px auto 0;
	background-color: var(--tr-rule-color);
	-webkit-mask: url("../../assets/img/barbed-wire.svg") center / contain no-repeat;
	mask: url("../../assets/img/barbed-wire.svg") center / contain no-repeat;
}

body .lp-multi-column__body {
	color: var(--text-primary);
}

body .lp-multi-column__grid {
	gap: 24px;
}

body .lp-multi-column__card {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	overflow: visible;
}

body .lp-multi-column__card-img-wrapper {
	height: auto;
}

body .lp-multi-column__card-img {
	height: auto;
}

body .lp-multi-column__card-contents {
	padding: 0;
	gap: 0;
}

body .lp-multi-column__card-title {
	font-family: var(--font-family-heading);
	font-size: var(--tr-heading-size);
	font-weight: 700;
	line-height: 1.2;
	color: var(--text-primary);
	margin-top: 5px;
}

body .lp-multi-column__card-img-wrapper + .lp-multi-column__card-contents .lp-multi-column__card-title::after {
	content: "";
	display: block;
	width: min(528px, 100%);
	height: 17px;
	margin-top: 20px;
	background-color: var(--tr-rule-color);
	-webkit-mask: url("../../assets/img/barbed-wire.svg") left center / contain no-repeat;
	mask: url("../../assets/img/barbed-wire.svg") left center / contain no-repeat;
}

body .lp-multi-column__card-img-wrapper + .lp-multi-column__card-contents .lp-multi-column__card-body {
	margin-top: 20px;
}

body .lp-multi-column__card-body {
	color: var(--text-primary);
}

body .lp-multi-column__card-body p {
	margin-block: 0 1.25em;
}

body .lp-multi-column__card-body p:last-child {
	margin-bottom: 0;
}

/* Text-only card: label and body as one run. */
body .lp-multi-column__card:not(:has(.lp-multi-column__card-img-wrapper)) .lp-multi-column__card-title {
	font-size: var(--font-size-h4);
	font-weight: 500;
	line-height: 1.25;
	margin-top: 0;
}

body a.btn.lp-multi-column__card-btn {
	align-self: flex-start;
	margin-top: 20px;
}

/* Style "Photos fade to black" (and "Title over photo"): Figma lays a
   black gradient over the photo's lower half (to transparent at 50%) on
   the scoring cards, Rodeo 101's Roughstock/Timed cards and the
   bullfighters, so the photo sinks into the band before the title. Plain
   photo cards (Steer Wrestling "What Is a Hazer?") have none, so it is a
   style rather than automatic on a band. */
:is(.is-style-tr-photo-fade, .is-style-tr-title-over) .lp-multi-column__card-img-wrapper {
	position: relative;
}

:is(.is-style-tr-photo-fade, .is-style-tr-title-over) .lp-multi-column__card-img-wrapper::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, #000 0%, rgba(0, 0, 0, 0) 50%);
	pointer-events: none;
}

/* Text cards on a dark band (Know Before You Go "Few Things Worth
   Knowing", Rodeo 101 guide cards): the 17/500 label sits 20px above its
   text, buttons line up along a row, rows 50px apart. Arena Records (on
   light) keep label and text as one run. */
:is(.is-style-tr-band, .is-style-tr-band-flat-top) .lp-multi-column__grid:not(:has(.lp-multi-column__card-img-wrapper)) {
	row-gap: 50px;
}

:is(.is-style-tr-band, .is-style-tr-band-flat-top) .lp-multi-column__card:not(:has(.lp-multi-column__card-img-wrapper)) .lp-multi-column__card-title + .lp-multi-column__card-body {
	margin-top: 20px;
}

body .lp-multi-column__card:not(:has(.lp-multi-column__card-img-wrapper)) .lp-multi-column__card-contents {
	flex: 1 0 auto;
}

body .lp-multi-column__card:not(:has(.lp-multi-column__card-img-wrapper)) a.btn.lp-multi-column__card-btn {
	margin-top: auto;
}

body .lp-multi-column__card:not(:has(.lp-multi-column__card-img-wrapper)) .lp-multi-column__card-body:has(+ a.btn) {
	margin-bottom: 20px;
}

/* ---- Style: Text columns ---------------------------------------------
   "How Bull / Team Roping / Barrel Racing Works": the heading and rule
   left-aligned over two untitled text columns, 20px under the rule. */
body .is-style-tr-text-columns .block-contents {
	align-items: stretch;
	gap: 20px;
}

body .is-style-tr-text-columns .lp-multi-column__intro,
body .is-style-tr-text-columns .lp-multi-column__intro > * {
	max-width: none;
	align-items: flex-start;
	text-align: left; /* the parent centres header and sub on the elements */
}

body .is-style-tr-text-columns .lp-multi-column__header:not(:has(+ .lp-multi-column__sub-header))::after,
body .is-style-tr-text-columns .lp-multi-column__sub-header::after {
	margin-left: 0;
	-webkit-mask-position: left center;
	mask-position: left center;
}

/* ---- Style: Badges ---------------------------------------------------
   Rodeo 101 "And Don't Forget the Clock!": each record in the ornate
   buckle frame (Figma vector group "Capa 4", 181x147, exported as SVG),
   label and text centred, ~20px apart and centred as a row. */
body .is-style-tr-badges .lp-multi-column__grid {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
}

body .is-style-tr-badges .lp-multi-column__card {
	flex: 0 0 181px;
	height: 147px;
	justify-content: center;
	background: url("../../assets/img/buckle-badge.svg") center / contain no-repeat;
}

/* Selectors carry the :not(:has()) of the text-card rules above so they
   outrank them. */
body .is-style-tr-badges .lp-multi-column__card:not(:has(.lp-multi-column__card-img-wrapper)) .lp-multi-column__card-contents {
	flex: 0 0 auto;
	align-items: center;
	text-align: center;
	padding: 0 18px;
}

body .is-style-tr-badges .lp-multi-column__card-title {
	font-size: var(--font-size-h4);
	font-weight: 500;
	line-height: 24px;
}

body .is-style-tr-badges .lp-multi-column__card:not(:has(.lp-multi-column__card-img-wrapper)) .lp-multi-column__card-title + .lp-multi-column__card-body {
	margin-top: 0;
	line-height: 20px;
}

/* ---- Style: Title over photo -----------------------------------------
   Bull Fighters "Meet the Bullfighters": the name in 22/600 centred on
   the photo's gradient, 9px off its bottom; the bio 29px below the photo.
   No rule under the name. */
body .is-style-tr-title-over .lp-multi-column__card-img-wrapper + .lp-multi-column__card-contents .lp-multi-column__card-title {
	position: relative;
	z-index: 1;
	margin-top: -33px;
	font-size: var(--font-size-h3);
	font-weight: 600;
	line-height: 24px;
	text-align: center;
}

body .is-style-tr-title-over .lp-multi-column__card-img-wrapper + .lp-multi-column__card-contents .lp-multi-column__card-title::after {
	display: none;
}

body .is-style-tr-title-over .lp-multi-column__card-img-wrapper + .lp-multi-column__card-contents .lp-multi-column__card-body {
	margin-top: 38px;
}
