/* Klubbens logotyp -------------------------------------------------- */

.clubwear-club-logo {
	--clubwear-logo-width: 180px;
	line-height: 0;
}

.clubwear-club-logo__link {
	display: inline-block;
	text-decoration: none;
}

.clubwear-club-logo__img {
	display: block;
	width: var(--clubwear-logo-width);
	max-width: 100%;
	height: auto;
}

.clubwear-club-logo__text {
	display: inline-block;
	line-height: 1.1;
	font-weight: 700;
	letter-spacing: -0.02em;
	font-size: clamp(1.125rem, 2vw, 1.5rem);
	text-decoration: none;
	color: inherit;
}

/* Klubbuppgifter ---------------------------------------------------- */

.clubwear-club-info {
	display: flex;
	flex-direction: column;
	gap: 0.35em;
	font-style: normal;
}

.clubwear-club-info.is-layout-inline {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.35em 1.5em;
	align-items: baseline;
}

.clubwear-club-info__row {
	display: flex;
	gap: 0.5em;
	align-items: baseline;
}

.clubwear-club-info__label {
	opacity: 0.6;
	font-size: 0.85em;
	white-space: nowrap;
}

.clubwear-club-info__name {
	font-weight: 700;
}

.clubwear-club-info__address {
	font-style: normal;
	line-height: 1.5;
}

.clubwear-club-info a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

/* Produktbild med klubblogga ---------------------------------------- */

.clubwear-overlay {
	--clubwear-overlay-size: 28%;
	--clubwear-overlay-opacity: 1;
	--clubwear-overlay-x: 0%;
	--clubwear-overlay-y: 0%;
	--clubwear-overlay-rotate: 0deg;
	--clubwear-overlay-blend: normal;
	--clubwear-overlay-inset: 6%;

	position: relative;
	display: block;
	margin: 0;
	overflow: hidden;
	line-height: 0;
}

.clubwear-overlay__link {
	display: block;
	line-height: 0;
}

.clubwear-overlay__base {
	display: block;
	width: 100%;
	height: auto;
}

.clubwear-overlay__logo {
	position: absolute;
	width: var(--clubwear-overlay-size);
	height: auto;
	opacity: var(--clubwear-overlay-opacity);
	mix-blend-mode: var(--clubwear-overlay-blend);
	pointer-events: none;
	transform: translate(var(--clubwear-overlay-x), var(--clubwear-overlay-y)) rotate(var(--clubwear-overlay-rotate));
	transform-origin: center;
}

/* Nio ankarpunkter. Förskjutningen läggs på ovanpå via transform. */

.clubwear-overlay.is-position-top-left .clubwear-overlay__logo { top: var(--clubwear-overlay-inset); left: var(--clubwear-overlay-inset); }
.clubwear-overlay.is-position-top-center .clubwear-overlay__logo { top: var(--clubwear-overlay-inset); left: 50%; transform: translate(calc(-50% + var(--clubwear-overlay-x)), var(--clubwear-overlay-y)) rotate(var(--clubwear-overlay-rotate)); }
.clubwear-overlay.is-position-top-right .clubwear-overlay__logo { top: var(--clubwear-overlay-inset); right: var(--clubwear-overlay-inset); }

.clubwear-overlay.is-position-center-left .clubwear-overlay__logo { top: 50%; left: var(--clubwear-overlay-inset); transform: translate(var(--clubwear-overlay-x), calc(-50% + var(--clubwear-overlay-y))) rotate(var(--clubwear-overlay-rotate)); }
.clubwear-overlay.is-position-center .clubwear-overlay__logo { top: 50%; left: 50%; transform: translate(calc(-50% + var(--clubwear-overlay-x)), calc(-50% + var(--clubwear-overlay-y))) rotate(var(--clubwear-overlay-rotate)); }
.clubwear-overlay.is-position-center-right .clubwear-overlay__logo { top: 50%; right: var(--clubwear-overlay-inset); transform: translate(var(--clubwear-overlay-x), calc(-50% + var(--clubwear-overlay-y))) rotate(var(--clubwear-overlay-rotate)); }

.clubwear-overlay.is-position-bottom-left .clubwear-overlay__logo { bottom: var(--clubwear-overlay-inset); left: var(--clubwear-overlay-inset); }
.clubwear-overlay.is-position-bottom-center .clubwear-overlay__logo { bottom: var(--clubwear-overlay-inset); left: 50%; transform: translate(calc(-50% + var(--clubwear-overlay-x)), var(--clubwear-overlay-y)) rotate(var(--clubwear-overlay-rotate)); }
.clubwear-overlay.is-position-bottom-right .clubwear-overlay__logo { bottom: var(--clubwear-overlay-inset); right: var(--clubwear-overlay-inset); }

.clubwear-overlay--empty {
	border: 1px dashed currentColor;
	border-radius: 8px;
	padding: 2rem;
	text-align: center;
	line-height: 1.5;
	opacity: 0.7;
}

/* Positionsrutnätet i redigeraren ----------------------------------- */

.clubwear-position-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 4px;
	width: 108px;
	margin: 0 0 16px;
}

.clubwear-position-grid__cell {
	aspect-ratio: 1;
	border: 1px solid #c3c4c7;
	border-radius: 3px;
	background: #fff;
	cursor: pointer;
	padding: 0;
}

.clubwear-position-grid__cell:hover {
	border-color: #787c82;
}

.clubwear-position-grid__cell.is-active {
	background: var(--wp-admin-theme-color, #3858e9);
	border-color: var(--wp-admin-theme-color, #3858e9);
}

.clubwear-help {
	margin: 8px 0 12px;
	font-size: 12px;
	font-style: italic;
	color: #50575e;
}

/* Platta när ingen produktbild finns att lägga loggan på ---------------- */

.clubwear-overlay--panel {
	border-radius: var(--clubwear-radius-lg, 18px);
	aspect-ratio: 4 / 5;
}

.clubwear-overlay__panel {
	display: block;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(120% 90% at 50% 0%, rgba(255, 255, 255, 0.14), transparent 60%),
		linear-gradient(160deg, #1b2130 0%, #0c1018 100%);
}

.clubwear-overlay--panel .clubwear-overlay__logo {
	mix-blend-mode: normal;
	filter: drop-shadow(0 12px 30px rgba(0, 0, 0, 0.45));
}

/* Automatiskt tryck på butikens produktbilder -------------------------- */

.clubwear-overlay--auto {
	display: block;
	width: 100%;
}

.clubwear-overlay--auto img:not(.clubwear-overlay__logo) {
	display: block;
	width: 100%;
	height: auto;
}

.clubwear-overlay--auto a,
.clubwear-overlay--auto figure {
	display: block;
	margin: 0;
	line-height: 0;
}

/* Märkningsfälten på produktsidan ------------------------------------- */

.clubwear-options-form {
	display: grid;
	gap: 1rem;
	margin: 0 0 1.5rem;
	padding: 1.25rem;
	border: 1px solid currentColor;
	border-color: color-mix(in srgb, currentColor 16%, transparent);
	border-radius: 12px;
}

.clubwear-options-form__intro {
	margin: 0;
	font-size: 0.875rem;
	opacity: 0.72;
}

.clubwear-field {
	display: grid;
	gap: 0.375rem;
}

.clubwear-field__label {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.clubwear-field__label .required {
	margin-left: 0.15em;
	border: 0;
	text-decoration: none;
	color: #b32d2e;
}

.clubwear-field__input {
	width: 100%;
	max-width: 24rem;
	padding: 0.7em 0.9em;
	font: inherit;
	font-size: 1rem;
	color: inherit;
	background: transparent;
	border: 1px solid currentColor;
	border-color: color-mix(in srgb, currentColor 28%, transparent);
	border-radius: 8px;
}

.clubwear-field__input:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, currentColor);
	outline-offset: 1px;
}

.clubwear-field__help {
	font-size: 0.8125rem;
	opacity: 0.68;
}

.clubwear-field__radios {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.clubwear-swatch {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 0.55em 1.1em;
	font-size: 0.9375rem;
	line-height: 1.2;
	border: 1px solid currentColor;
	border-color: color-mix(in srgb, currentColor 28%, transparent);
	border-radius: 999px;
	cursor: pointer;
}

.clubwear-swatch input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.clubwear-swatch:has(input:checked) {
	color: var(--wp--preset--color--base, #fff);
	background: var(--wp--preset--color--primary, #1b4dff);
	border-color: var(--wp--preset--color--primary, #1b4dff);
}

.clubwear-swatch:has(input:focus-visible) {
	outline: 2px solid var(--wp--preset--color--primary, currentColor);
	outline-offset: 2px;
}

.clubwear-field--checkbox {
	grid-template-columns: auto 1fr;
	align-items: center;
	gap: 0.5rem;
}

.clubwear-field--checkbox .clubwear-field__label {
	order: 2;
	text-transform: none;
	font-weight: 500;
}

.clubwear-field--checkbox .clubwear-field__help {
	grid-column: 1 / -1;
}

/* Produktrutnät -------------------------------------------------------- */

.clubwear-products {
	--clubwear-products-columns: 3;
	--clubwear-products-gap: clamp(1rem, 2.4vw, 2rem);
}

.clubwear-products__heading {
	margin: 0 0 clamp(1.25rem, 3vw, 2rem);
}

.clubwear-products__grid {
	display: grid;
	grid-template-columns: repeat(var(--clubwear-products-columns), minmax(0, 1fr));
	gap: var(--clubwear-products-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (max-width: 1100px) {
	.clubwear-products__grid {
		grid-template-columns: repeat(min(3, var(--clubwear-products-columns)), minmax(0, 1fr));
	}
}

@media (max-width: 782px) {
	.clubwear-products__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.clubwear-products__item {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	margin: 0;
}

.clubwear-products__link {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	color: inherit;
	text-decoration: none;
}

.clubwear-products__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	border-radius: 14px;
	background: color-mix(in srgb, currentColor 7%, transparent);
}

.clubwear-products__media img,
.clubwear-products__media .clubwear-overlay {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.clubwear-products__media .clubwear-overlay--auto {
	position: absolute;
	inset: 0;
}

.clubwear-products__media .clubwear-overlay--auto img:not(.clubwear-overlay__logo) {
	height: 100%;
	object-fit: cover;
}

/* Ingen produktbild uppladdad än. En lugn platta med en tunn ring ser
   avsiktlig ut — en grå kloss ser ut som ett fel. */
.clubwear-products__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(circle at 50% 44%, transparent 0 17%, color-mix(in srgb, currentColor 13%, transparent) 17% 17.8%, transparent 18%),
		linear-gradient(160deg, color-mix(in srgb, currentColor 7%, transparent), color-mix(in srgb, currentColor 3%, transparent));
}

.clubwear-products__link:hover .clubwear-products__media img {
	transform: scale(1.03);
}

.clubwear-products__media img {
	transition: transform 0.4s ease;
}

.clubwear-products__body {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.clubwear-products__name {
	font-weight: 600;
	line-height: 1.3;
}

.clubwear-products__summary {
	font-size: 0.875rem;
	opacity: 0.7;
	line-height: 1.45;
}

.clubwear-products__price {
	font-size: 0.9375rem;
	opacity: 0.85;
}

.clubwear-products__price del {
	opacity: 0.5;
	margin-right: 0.35em;
}

.clubwear-products__swatches {
	display: flex;
	gap: 0.3rem;
	margin: 0.15rem 0;
}

.clubwear-products__swatch {
	width: 0.85rem;
	height: 0.85rem;
	border-radius: 50%;
	background: var(--clubwear-swatch, #ccc);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18);
}

.clubwear-products__button {
	align-self: flex-start;
	text-decoration: none;
}

.clubwear-products--empty .clubwear-notice,
.clubwear-cats--empty .clubwear-notice {
	margin: 0;
	padding: 1.25rem;
	font-size: 0.9375rem;
	text-align: center;
	border: 1px dashed color-mix(in srgb, currentColor 30%, transparent);
	border-radius: 12px;
	opacity: 0.8;
}

/* Kategoriplattor ------------------------------------------------------ */

.clubwear-cats {
	--clubwear-cats-columns: 5;
	--clubwear-cats-aspect: 3/4;
}

.clubwear-cats__grid {
	display: grid;
	grid-template-columns: repeat(var(--clubwear-cats-columns), minmax(0, 1fr));
	gap: clamp(0.75rem, 1.6vw, 1.25rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (max-width: 1100px) {
	.clubwear-cats__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	.clubwear-cats__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.clubwear-cats__item {
	margin: 0;
}

.clubwear-cats__link {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: 14px;
	color: inherit;
	text-decoration: none;
	isolation: isolate;
}

.clubwear-cats__media {
	display: block;
	aspect-ratio: var(--clubwear-cats-aspect);
	background: color-mix(in srgb, currentColor 8%, transparent);
}

.clubwear-cats__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.clubwear-cats__link:hover .clubwear-cats__media img {
	transform: scale(1.04);
}

.clubwear-cats__placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background:
		radial-gradient(circle at 50% 42%, transparent 0 20%, color-mix(in srgb, currentColor 16%, transparent) 20% 21%, transparent 21.5%),
		linear-gradient(160deg, color-mix(in srgb, currentColor 9%, transparent), color-mix(in srgb, currentColor 4%, transparent));
}

.clubwear-cats__body {
	position: absolute;
	inset: auto 0 0 0;
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	padding: 1.5rem 1rem 0.9rem;
	color: #fff;
	background: linear-gradient(180deg, rgba(10, 13, 20, 0) 0%, rgba(10, 13, 20, 0.82) 100%);
}

.clubwear-cats__name {
	font-weight: 600;
	letter-spacing: 0.01em;
}

.clubwear-cats__count {
	font-size: 0.75rem;
	opacity: 0.78;
}
