/* Opt-in navigation links; existing Storefront/plugin anchors are untouched. */
.ov-link {
	display: inline-grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	justify-items: start;
	box-sizing: border-box;
	min-width: var(--action-target-min);
	min-height: var(--action-target-min);
	max-width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--color-text-link);
	box-shadow: none;
	font-family: var(--font-ui);
	font-size: var(--font-size-body);
	font-weight: var(--font-weight-regular);
	line-height: var(--line-height-body);
	letter-spacing: 0;
	text-align: start;
	text-decoration: none;
	vertical-align: middle;
	cursor: pointer;
	touch-action: manipulation;
	transition: color var(--transition-interactive), opacity var(--transition-interactive);
}

.ov-link--large {
	font-size: var(--font-size-body-lg);
	line-height: var(--line-height-body-lg);
}

.ov-link .ov-button__label {
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-underline-offset: var(--spacing-4);
	transition: text-decoration-color var(--transition-interactive);
}

@media (hover: hover) {
	.ov-link:hover:not([aria-disabled="true"]):not([aria-busy="true"]) {
		color: var(--color-text-link);
		text-decoration: none;
	}

	.ov-link:hover:not([aria-disabled="true"]):not([aria-busy="true"]) .ov-button__label {
		text-decoration-color: currentColor;
	}
}

/* The underline is the link's keyboard focus indicator, without a button frame. */
.ov-link:focus {
	outline: none;
}

.ov-link:focus-visible:not([aria-disabled="true"]):not([aria-busy="true"]) {
	color: var(--color-text-link);
	text-decoration: none;
}

.ov-link:focus-visible:not([aria-disabled="true"]):not([aria-busy="true"]) .ov-button__label {
	text-decoration-color: currentColor;
}

.ov-link:active:not([aria-disabled="true"]):not([aria-busy="true"]) {
	color: var(--color-text-primary);
}

.ov-link:active:not([aria-disabled="true"]):not([aria-busy="true"]) .ov-button__label {
	text-decoration-color: transparent;
}

.ov-link[aria-disabled="true"]:not([aria-busy="true"]) {
	color: var(--color-text-primary);
	opacity: 0.35;
	cursor: not-allowed;
}

.ov-link[aria-busy="true"] {
	color: var(--color-text-link);
	cursor: progress;
}

@media (prefers-reduced-motion: reduce) {
	.ov-link,
	.ov-link .ov-button__label {
		transition: none;
	}
}

@media (forced-colors: active) {
	.ov-link:focus-visible:not([aria-disabled="true"]) {
		outline: var(--focus-width) solid Highlight;
		outline-offset: var(--focus-offset);
	}

	.ov-link[aria-disabled="true"]:not([aria-busy="true"]) {
		color: GrayText;
		opacity: 1;
	}
}
