/* Progressive mobile enhancement for WooCommerce catalogue sorting. */

.ovio-catalog-sort-control {
	display: none;
}

body.ovio-sort-open {
	overflow: hidden;
}

@media (max-width: 781px) {

	.ovio-sort-enhanced .wp-block-woocommerce-catalog-sorting {
		display: none !important;
	}

	.ovio-shop-tools .ovio-catalog-sort-control {
		display: block;
		grid-column: 2;
		grid-row: 2;
		width: 100%;
	}

	.ovio-catalog-sort-trigger {
		-webkit-tap-highlight-color: transparent;
		align-items: center;
		appearance: none;
		background: var(--wp--preset--color--white);
		border: var(--ovio-border);
		border-radius: 14px;
		color: var(--wp--preset--color--secondary);
		cursor: pointer;
		display: flex;
		font: inherit;
		font-size: 0.82rem;
		gap: 0.6rem;
		justify-content: space-between;
		min-height: 48px;
		padding: 0.65rem 0.8rem 0.65rem 0.9rem;
		text-align: left;
		transform: none !important;
		width: 100%;
	}

	.ovio-catalog-sort-trigger:hover,
	.ovio-catalog-sort-trigger:active {
		background: var(--wp--preset--color--mist);
		border-color: var(--wp--preset--color--primary-dark);
		color: var(--wp--preset--color--secondary);
		transform: none !important;
	}

	.ovio-catalog-sort-trigger:focus-visible {
		background: var(--wp--preset--color--white);
		box-shadow: none;
		outline: 2px solid var(--wp--preset--color--primary-dark);
		outline-offset: 2px;
	}

	.ovio-catalog-sort-trigger:focus:not(:focus-visible) {
		box-shadow: none;
		outline: 0;
	}

	.ovio-catalog-sort-trigger svg {
		fill: none;
		flex: 0 0 16px;
		height: 16px;
		stroke: currentcolor;
		stroke-linecap: round;
		stroke-linejoin: round;
		stroke-width: 1.5;
		width: 16px;
	}

	.ovio-catalog-sort-dialog {
		background: var(--wp--preset--color--canvas);
		border: 0;
		border-radius: 24px 24px 0 0;
		box-shadow: 0 -24px 70px rgb(22 31 41 / 18%);
		height: fit-content;
		margin: auto 0 0;
		max-height: min(78dvh, 660px);
		max-width: none;
		overflow: hidden;
		padding: 0;
		width: 100%;
	}

	.ovio-catalog-sort-dialog[open] {
		animation: ovio-sort-sheet-in 220ms ease-out both;
	}

	.ovio-catalog-sort-dialog::backdrop {
		background: rgb(22 31 41 / 48%);
		backdrop-filter: blur(3px);
	}

	.ovio-catalog-sort-dialog__inner::before {
		background: rgb(100 115 131 / 34%);
		border-radius: 999px;
		content: "";
		display: block;
		height: 4px;
		margin: 0.65rem auto 0;
		width: 42px;
	}

	.ovio-catalog-sort-dialog header {
		align-items: center;
		border-bottom: var(--ovio-border);
		display: flex;
		justify-content: space-between;
		padding: 0.8rem 1.25rem 1rem;
	}

	.ovio-catalog-sort-dialog header p {
		color: var(--wp--preset--color--primary-dark);
		font-size: 0.68rem;
		font-weight: 760;
		letter-spacing: 0.12em;
		margin: 0 0 0.2rem;
		text-transform: uppercase;
	}

	.ovio-catalog-sort-dialog h2 {
		font-size: 1.5rem;
		font-weight: 600;
		letter-spacing: -0.035em;
		margin: 0;
	}

	.ovio-catalog-sort-dialog [data-ovio-sort-close] {
		align-items: center;
		background: transparent;
		border: var(--ovio-border);
		border-radius: 999px;
		color: var(--wp--preset--color--secondary);
		cursor: pointer;
		display: flex;
		font-size: 1.45rem;
		height: 44px;
		justify-content: center;
		transform: none;
		width: 44px;
	}

	.ovio-catalog-sort-options {
		overflow-y: auto;
		padding: 0.55rem 1rem calc(1rem + env(safe-area-inset-bottom));
	}

	.ovio-catalog-sort-option {
		align-items: center;
		background: transparent;
		border: 0;
		border-bottom: var(--ovio-border);
		border-radius: 12px;
		color: var(--wp--preset--color--secondary);
		cursor: pointer;
		display: flex;
		font: inherit;
		font-size: 0.98rem;
		font-weight: 600;
		justify-content: space-between;
		min-height: 54px;
		padding: 0.75rem 2.6rem 0.75rem 0.8rem;
		position: relative;
		text-align: left;
		transform: none !important;
		width: 100%;
	}

	.ovio-catalog-sort-option:last-child {
		border-bottom: 0;
	}

	.ovio-catalog-sort-option:hover,
	.ovio-catalog-sort-option:active,
	.ovio-catalog-sort-option[aria-pressed="true"] {
		background: var(--wp--preset--color--mist);
		color: var(--wp--preset--color--secondary);
	}

	.ovio-catalog-sort-option:focus-visible {
		box-shadow: none;
		outline: 2px solid var(--wp--preset--color--primary-dark);
		outline-offset: -2px;
	}

	.ovio-catalog-sort-option[aria-pressed="true"]::after {
		color: var(--wp--preset--color--primary-dark);
		content: "✓";
		font-size: 1rem;
		font-weight: 800;
		position: absolute;
		right: 0.9rem;
	}
}

@keyframes ovio-sort-sheet-in {

	from {
		transform: translateY(100%);
	}

	to {
		transform: translateY(0);
	}
}
