*,
*::before,
*::after {
	box-sizing: border-box;
}

.tabs {
	--border-width: 3px;
	display: block;
}

.tabs__tablist {
	overflow: auto;
	contain: none;
}

.tabs__tablist__inner {
	position: relative;
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	width: fit-content;
	min-width: 100%;
	background-image: linear-gradient(
		var(--g-color-border-default, var(--g-color-primary-100)),
		var(--g-color-border-default, var(--g-color-primary-100))
	);
	background-size: auto var(--border-width);
	background-position: bottom;
	background-repeat: repeat-x;
}

.tabs__tab {
	padding: 0.6em 1.2em;
	line-height: 1;
	font-size: var(--g-typography-body-default-font-size);
	border: none;
	border-block-start: var(--border-width) solid transparent;
	border-block-end: var(--border-width) solid
		var(--g-color-border-default, var(--g-color-primary-100));
	background-color: transparent;
	color: var(--g-color-content-default);
	opacity: 0.7;
	white-space: nowrap;
	cursor: pointer;
	transition:
		opacity 0.2s,
		border-color 0.2s,
		background-color 0.2s;
}

@media (min-width: 40em) {
	.tabs__tab {
		padding-inline: var(--g-spacing-md);
	}
}

.tabs__tab:hover,
.tabs__tab:focus-visible {
	opacity: 1;
	border-block-end-color: var(
		--g-color-border-default,
		var(--g-color-primary-200)
	);
}

.tabs__tab.is-active {
	border-block-end-color: var(
		--g-color-border-primary,
		var(--g-color-primary-500)
	);
	background-color: var(--g-color-background-subtle);
	color: var(--g-color-content-default);
	z-index: 1;
	position: relative;
	opacity: 1;
}

.tabs__panel {
	margin-block-start: var(--g-spacing-md);
	outline-color: var(
		--g-color-border-primary,
		var(--g-color-primary-500)
	);
	outline-offset: 1rem;
	display: none;
}

.tabs__panel.is-active {
	display: block;
}
