/**
 * Shared editorial primitives.
 *
 * Buttons, action links, eyebrows, section headings, and card/media
 * foundations only. Page templates supply copy, layout, and aspect ratio.
 */

.pb-btn,
.pb-equip .single_add_to_cart_button,
.pb-edu .single_add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding: 0.75rem 1.5rem;
	border: 1px solid var(--pb-red);
	background: var(--pb-red);
	color: var(--pb-white);
	font-family: var(--font-sans);
	font-size: var(--pb-text-control);
	font-weight: var(--pb-weight-semibold);
	letter-spacing: var(--pb-tracking-control);
	line-height: 1;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
}

.pb-btn:hover,
.pb-equip .single_add_to_cart_button:hover,
.pb-edu .single_add_to_cart_button:hover {
	border-color: var(--pb-navy);
	background: var(--pb-navy);
	color: var(--pb-white);
}

.pb-btn-outline {
	border-color: var(--pb-navy);
	background: transparent;
	color: var(--pb-navy);
}

.pb-btn-outline:hover {
	border-color: var(--pb-red);
	background: transparent;
	color: var(--pb-red);
}

.pb-btn-on-dark {
	border-color: var(--pb-white);
	background: var(--pb-white);
	color: var(--pb-navy);
}

.pb-btn-on-dark:hover {
	border-color: var(--pb-red);
	background: var(--pb-red);
	color: var(--pb-white);
}

.pb-btn-outline.pb-btn-on-dark {
	background: transparent;
	color: var(--pb-white);
}

.pb-btn-outline.pb-btn-on-dark:hover {
	border-color: var(--pb-red);
	background: transparent;
	color: var(--pb-red);
}

.pb-arrow-link {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	min-height: 2.5rem;
	color: var(--pb-navy);
	font-family: var(--font-sans);
	font-size: var(--pb-text-control);
	font-weight: var(--pb-weight-semibold);
	letter-spacing: var(--pb-tracking-control);
	line-height: 1;
	text-decoration: none;
	text-transform: uppercase;
}

.pb-arrow-link::after {
	content: "";
	flex: 0 0 auto;
	width: 0.8rem;
	height: 0.8rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='black' d='M3 7.25h7.1L7.4 4.55 8.45 3.5 13 8l-4.55 4.5-1.05-1.05 2.7-2.7H3z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='black' d='M3 7.25h7.1L7.4 4.55 8.45 3.5 13 8l-4.55 4.5-1.05-1.05 2.7-2.7H3z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.pb-arrow-link:hover,
.pb-arrow-link:focus-visible {
	color: var(--pb-red);
}

.pb-arrow-link-light {
	color: var(--pb-white);
}

.pb-arrow-link-light:hover,
.pb-arrow-link-light:focus-visible {
	color: var(--pb-red);
}

.pb-eyebrow-red {
	color: var(--pb-red);
}

.pb-eyebrow-light {
	color: var(--pb-neutral);
}

.pb-section-heading {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.85rem;
}

.pb-section-heading .pb-display,
.pb-section-heading .pb-section-copy {
	margin: 0;
}

.pb-section-copy {
	color: var(--pb-navy-70);
}

.pb-section-heading-light .pb-section-copy {
	color: var(--pb-neutral-75);
}

.pb-meta {
	margin: 0;
	color: var(--pb-navy-55);
	font-family: var(--font-sans);
	font-size: var(--pb-text-meta);
	font-weight: var(--pb-weight-semibold);
	letter-spacing: var(--pb-tracking-meta);
	line-height: 1.3;
	text-transform: uppercase;
}

.pb-edu-delivery,
.pb-edu-session-label {
	font-family: var(--font-sans);
	font-size: var(--pb-text-meta);
	font-weight: var(--pb-weight-semibold);
	letter-spacing: var(--pb-tracking-meta);
	line-height: 1.3;
	text-transform: uppercase;
}

.pb-meta-light {
	color: var(--pb-neutral-75);
}

.pb-card {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.85rem;
	color: inherit;
	text-decoration: none;
}

.pb-card-title {
	margin: 0;
	font-family: var(--font-display);
	font-weight: var(--pb-weight-medium);
	letter-spacing: var(--pb-tracking-display-tight);
	line-height: var(--pb-leading-display);
	text-transform: uppercase;
}

.pb-equip-title,
.pb-edu-title,
.pb-equip-card .pb-card-title,
.pb-brand .pb-equip-card .pb-card-title,
.pb-edu-card .pb-card-title,
.pb-eq-product-name {
	font-family: var(--font-display);
	font-weight: var(--pb-weight-medium);
	line-height: var(--pb-leading-title);
	text-transform: uppercase;
}

.pb-equip-title,
.pb-edu-single .pb-edu-title {
	font-size: var(--pb-text-product-title);
}

.pb-equip-card .pb-card-title,
.pb-brand .pb-equip-card .pb-card-title,
.pb-edu-card .pb-card-title,
.pb-eq-product-name,
.pbpe-account .pb-edu-title {
	font-family: var(--font-display);
	font-size: var(--pb-text-card-title);
	font-weight: var(--pb-weight-medium);
	line-height: var(--pb-leading-title);
}

.pb-card:hover .pb-card-title,
.pb-card:focus-visible .pb-card-title {
	color: var(--pb-red);
}

.pb-card-on-dark {
	color: var(--pb-white);
}

.pb-media {
	display: block;
	overflow: hidden;
	background: var(--pb-neutral);
}

.pb-media img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.pb-media.is-cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (prefers-reduced-motion: no-preference) {
	.pb-arrow-link::after {
		transition: transform 0.2s ease;
	}

	.pb-arrow-link:hover::after,
	.pb-arrow-link:focus-visible::after {
		transform: translateX(0.2rem);
	}

	.pb-media.is-cover img {
		transition: transform 0.35s ease;
	}

	.pb-card:hover .pb-media.is-cover img,
	.pb-card:focus-visible .pb-media.is-cover img {
		transform: scale(1.03);
	}
}
