/*!
 * Syster P – shop.css
 * PLP (collection/shop), PDP, cart, checkout, search and content pages.
 * Consumes the design tokens from base.css (--color-*, --font-*, --gutter*).
 * No external resources – local assets only.
 */

/* ==========================================================================
   Shared shop context
   ========================================================================== */
.systerp-shop {
	--shop-gutter: 30px;
	--shop-max: 1440px;
	display: block;
	width: 100%;
}

.systerp-shop img {
	height: auto;
}

/* Product cards are used on PLP/PDP-related too (home.css is front-page only). */
.systerp-shop .product-card,
.systerp-page .product-card {
	position: relative;
	display: flex;
	flex-direction: column;
}

.systerp-shop .product-card__media,
.systerp-page .product-card__media {
	position: relative;
	width: 100%;
	aspect-ratio: 5 / 7;
	overflow: hidden;
	background-color: var(--color-offwhite);
}

.systerp-shop .product-card__media-link,
.systerp-page .product-card__media-link {
	position: absolute;
	inset: 0;
	display: block;
}

.systerp-shop .product-card__image,
.systerp-page .product-card__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity 0.45s var(--ease);
}

.systerp-shop .product-card__image--hover,
.systerp-page .product-card__image--hover {
	opacity: 0;
}

.systerp-shop .product-card:hover .product-card__image--primary,
.systerp-page .product-card:hover .product-card__image--primary {
	opacity: 0;
}

.systerp-shop .product-card:hover .product-card__image--hover,
.systerp-page .product-card:hover .product-card__image--hover {
	opacity: 1;
}

.systerp-shop .product-card__quick-add,
.systerp-page .product-card__quick-add {
	position: absolute;
	right: auto;
	bottom: 14px;
	left: 50%;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	padding: 0;
	border: 1px solid var(--color-black);
	border-radius: 50%;
	background-color: rgb(255 255 255 / 70%);
	color: var(--color-black);
	transform: translateX(-50%);
	opacity: 1;
	transition: background-color var(--duration) var(--ease), color var(--duration) var(--ease);
}

.systerp-shop .product-card__quick-add:hover,
.systerp-shop .product-card__quick-add:focus-visible,
.systerp-page .product-card__quick-add:hover {
	background-color: var(--color-black);
	color: var(--color-white);
}

.systerp-shop .product-card__quick-add.is-loading,
.systerp-page .product-card__quick-add.is-loading {
	opacity: 0.4;
	pointer-events: none;
}

.systerp-shop .product-card__info,
.systerp-page .product-card__info {
	padding-top: 45px;
	text-align: center;
}

.systerp-shop .product-card__title,
.systerp-page .product-card__title {
	padding: 0 10px;
	font-size: 0.719rem;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.systerp-shop .product-card__title a:hover,
.systerp-page .product-card__title a:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.systerp-shop .product-card__price-row,
.systerp-page .product-card__price-row {
	margin-top: 14px;
	font-size: 0.813rem;
	line-height: 1.4;
}

.systerp-shop .product-card .price,
.systerp-page .product-card .price {
	display: inline-flex;
	align-items: baseline;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
}

.systerp-shop .product-card .price__regular,
.systerp-page .product-card .price__regular {
	color: var(--color-grey);
}

.systerp-shop .product-card .price__sale,
.systerp-page .product-card .price__sale {
	color: var(--color-black);
	font-weight: 500;
}

.systerp-shop .product-card .badge--sale,
.systerp-page .product-card .badge--sale {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 3;
}

.systerp-shop .product-card .badge--stock {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	background-color: var(--color-grey);
}

/* ==========================================================================
   PLP – header, toolbar, grid, load more
   ========================================================================== */
.plp-head {
	padding: 26px var(--shop-gutter) 0;
	text-align: center;
}

.plp-head__title {
	font-family: var(--font-accent);
	font-size: 1.938rem;
	font-weight: 400;
	line-height: 1.15;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.plp-head__desc {
	max-width: 620px;
	margin: 26px auto 0;
	color: var(--color-grey);
	font-size: 0.875rem;
	line-height: 1.55;
	text-align: center;
}

.plp-head__desc p {
	margin: 0;
}

.plp-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 34px var(--shop-gutter) 0;
}

.plp-filters__list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.plp-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px;
	border: 1px solid var(--color-lightgrey);
	color: var(--color-grey);
	font-size: 0.719rem;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.04em;
	white-space: nowrap;
	transition: border-color var(--duration) var(--ease), color var(--duration) var(--ease);
}

.plp-chip:hover,
.plp-chip:focus-visible {
	border-color: var(--color-black);
	color: var(--color-black);
}

.plp-chip.is-active {
	border-color: var(--color-black);
	color: var(--color-black);
}

.plp-chip__dot {
	display: inline-block;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 1px solid rgb(0 0 0 / 12%);
}

.plp-chip__dot--silver {
	background: linear-gradient(135deg, #f4f4f4 0%, #c9c9c9 45%, #efefef 55%, #bdbdbd 100%);
}

.plp-chip__dot--guld {
	background: linear-gradient(135deg, #f7e7b5 0%, #d9b96b 45%, #f2dd9c 55%, #c9a44f 100%);
}

.plp-sort {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: var(--color-grey);
	font-size: 0.719rem;
	letter-spacing: 0.04em;
}

.plp-sort__control {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.plp-sort__select {
	padding: 0 22px 0 0;
	border: 0;
	background-color: transparent;
	color: var(--color-black);
	font-size: 0.719rem;
	letter-spacing: 0.04em;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.plp-sort__chevron {
	position: absolute;
	right: 4px;
	pointer-events: none;
}

ul.systerp-plp__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 30px 45.5px;
	margin: 0;
	padding: 34px 16px 0;
	list-style: none;
}

ul.systerp-plp__grid::before,
ul.systerp-plp__grid::after {
	content: none;
	display: none;
}

.systerp-plp__grid > .product-card {
	min-width: 0;
}

.plp-more {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: 20px;
	padding: 46px var(--shop-gutter) 64px;
	color: var(--color-grey);
	font-size: 0.719rem;
	letter-spacing: 0.04em;
}

.plp-more__count {
	justify-self: end;
}

.plp-more__button {
	min-width: 0;
	height: 28px;
	padding: 0 34px;
	font-size: 0.688rem;
	letter-spacing: 0.1em;
}

.plp-more__button.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

.plp-more__rest {
	justify-self: start;
}

.plp-empty {
	max-width: 560px;
	margin: 60px auto;
	padding: 0 var(--shop-gutter);
	text-align: center;
}

.plp-empty__title {
	font-family: var(--font-accent);
	font-size: 1.625rem;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.plp-empty__text {
	margin: 18px 0 28px;
	color: var(--color-grey);
	line-height: 1.6;
}

/* ==========================================================================
   PDP – layout / gallery
   ========================================================================== */
.systerp-pdp .pdp {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	align-items: start;
	width: 100%;
}

.pdp-gallery {
	position: relative;
	grid-column: span 6;
	background-color: var(--color-offwhite);
}

.pdp-gallery__track {
	display: block;
	width: 100%;
}

.pdp-gallery__slide {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 4;
	margin: 0;
	overflow: hidden;
	background-color: var(--color-offwhite);
}

.pdp-gallery__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.pdp-gallery__dots {
	position: absolute;
	right: 0;
	bottom: 16px;
	left: 0;
	display: none;
	justify-content: center;
	gap: 6px;
}

.pdp-gallery__dot {
	width: 6px;
	height: 6px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: rgb(0 0 0 / 25%);
	cursor: pointer;
}

.pdp-gallery__dot.is-active {
	background-color: var(--color-black);
}

.pdp-gallery__counter {
	position: absolute;
	right: 50%;
	bottom: 16px;
	padding: 4px 8px;
	background-color: rgb(255 255 255 / 70%);
	font-size: 0.688rem;
	letter-spacing: 0.04em;
	line-height: 1;
	color: var(--color-black);
	transform: translateX(50%);
}

/* ==========================================================================
   PDP – info column
   ========================================================================== */
.pdp-info {
	grid-column: 7 / span 6;
	display: flex;
	flex-direction: column;
	align-self: start;
	min-width: 0;
}

.pdp-info__inner {
	width: 100%;
	max-width: 440px;
	margin: 0 auto;
	padding: 0;
}

.pdp-head {
	display: block;
}

.pdp-title {
	font-size: 0.938rem;
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.pdp-subtitle {
	margin-top: 6px;
	color: var(--color-grey);
	font-size: 0.875rem;
}

.pdp-price {
	margin-top: 18px;
	font-size: 0.75rem;
}

.pdp-price .price {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px;
}

.pdp-price .price__regular {
	color: var(--color-grey);
}

.pdp-price .price__sale {
	font-size: 0.875rem;
	font-weight: 500;
}

.pdp-price .badge--sale {
	margin-left: 2px;
	background-color: var(--color-black);
}

/* Metal colourway swatches */
.pdp-metal {
	margin-top: 26px;
}

.pdp-metal__list {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pdp-metal__swatch {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--color-grey);
	font-size: 0.813rem;
}

.pdp-metal__swatch.is-active {
	color: var(--color-black);
}

.pdp-metal__dot {
	display: inline-block;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 1px solid rgb(0 0 0 / 12%);
}

.pdp-metal__swatch--silver .pdp-metal__dot {
	background: linear-gradient(135deg, #f7f7f7 0%, #cfcfcf 45%, #efefef 55%, #b8b8b8 100%);
}

.pdp-metal__swatch--guld .pdp-metal__dot {
	background: linear-gradient(135deg, #f9ecbf 0%, #d9b96b 45%, #f2dd9c 55%, #c9a44f 100%);
}

.pdp-metal__swatch.is-active .pdp-metal__label {
	border-bottom: 1px solid currentColor;
}

/* Size swatches */
.pdp-variations {
	margin-top: 24px;
}

.pdp-sizes {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 22px;
}

.pdp-size {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	min-width: 34px;
	padding: 2px 2px 6px;
	color: var(--color-grey);
	cursor: pointer;
	text-align: center;
	border-bottom: 1px solid transparent;
	transition: border-color var(--duration) var(--ease), color var(--duration) var(--ease);
}

.pdp-size:hover,
.pdp-size.is-active {
	color: var(--color-black);
	border-bottom-color: currentColor;
}

.pdp-size__value {
	font-size: 0.938rem;
	line-height: 1.2;
}

.pdp-size__mm {
	margin-top: 3px;
	font-size: 0.719rem;
	line-height: 1.2;
}

.pdp-variations__error {
	margin-top: 10px;
	color: var(--color-danger);
	font-size: 0.719rem;
}

/* Stock + social proof */
.pdp-stock {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 22px;
	font-size: 0.813rem;
}

.pdp-stock__dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: #3a9d5d;
}

.pdp-stock.is-out .pdp-stock__dot {
	background-color: var(--color-grey);
}

.pdp-stock__link {
	margin-left: 4px;
	border-bottom: 1px solid currentColor;
	font-size: 0.813rem;
}

.pdp-info .systerp-social {
	margin: 18px 0 0;
	color: var(--color-grey);
	font-size: 0.75rem;
	line-height: 1.5;
}

.pdp-info .systerp-social p {
	margin: 0 0 5px;
}

/* Quantity + add to cart */
.pdp-form {
	margin-top: 22px;
}

.pdp-qty-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 12px;
}

.pdp-qty-row__label {
	color: var(--color-grey);
	font-size: 0.719rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.systerp-qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--color-lightgrey);
}

.systerp-qty__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	color: var(--color-black);
	cursor: pointer;
}

.systerp-qty__btn:hover,
.systerp-qty__btn:focus-visible {
	background-color: var(--color-offwhite);
}

.systerp-qty__input {
	width: 40px;
	height: 34px;
	padding: 0;
	border: 0;
	border-right: 1px solid var(--color-lightgrey);
	border-left: 1px solid var(--color-lightgrey);
	font-size: 0.813rem;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

.systerp-qty__input::-webkit-outer-spin-button,
.systerp-qty__input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
	appearance: none;
}

.pdp-atc {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: 40px;
	padding: 0 30px 0 16px;
	border: 1px solid var(--color-black);
	background-color: var(--color-black);
	color: var(--color-white);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.11em;
	line-height: 1;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--duration) var(--ease), color var(--duration) var(--ease);
}

.pdp-atc:hover,
.pdp-atc:focus-visible {
	background-color: var(--color-white);
	color: var(--color-black);
}

.pdp-atc.is-loading {
	opacity: 0.65;
	pointer-events: none;
}

.pdp-atc.is-disabled {
	background-color: var(--color-grey);
	border-color: var(--color-grey);
	cursor: not-allowed;
}

.pdp-atc__price {
	letter-spacing: 0.02em;
	text-transform: none;
	font-size: 0.813rem;
}

/* Payment icons */
.pdp-payments {
	margin-top: 20px;
}

.pdp-payments__list,
.systerp-payicons__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pdp-payments__item,
.systerp-payicons__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.pdp-payments__img,
.systerp-payicons__img {
	display: block;
	width: auto;
	height: auto;
	max-width: 62px;
	max-height: 22px;
}

.pdp-payments__badge,
.systerp-payicons__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 22px;
	padding: 0 6px;
	border: 1px solid var(--color-lightgrey);
	font-size: 0.625rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	color: var(--color-black);
	background-color: var(--color-white);
}

/* Accordions */
.pdp-accordions {
	margin-top: 34px;
	border-top: 1px solid var(--color-lightgrey);
}

.pdp-accordion {
	border-bottom: 1px solid var(--color-lightgrey);
}

.pdp-accordion__heading {
	margin: 0;
	font-size: inherit;
	font-weight: inherit;
}

.pdp-accordion__trigger {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	padding: 16px 0;
	color: var(--color-black);
	font-size: 0.813rem;
	font-weight: 500;
	letter-spacing: 0.11em;
	line-height: 1;
	text-transform: uppercase;
	cursor: pointer;
}

.pdp-accordion__icon {
	flex: 0 0 auto;
	transition: transform var(--duration) var(--ease);
}

.pdp-accordion.is-open .pdp-accordion__icon {
	transform: rotate(45deg);
}

.pdp-accordion__panel {
	padding: 0 0 20px;
	color: var(--color-black);
	font-size: 0.813rem;
	line-height: 1.65;
}

.pdp-accordion__panel[hidden] {
	display: none;
}

/* Long description clamped behind a "Visa mer" toggle (reference behaviour). */
.pdp-accordion__panel .rte.is-clamped {
	max-height: 290px;
	overflow: hidden;
}

.pdp-accordion__more {
	display: inline-block;
	margin-top: 12px;
	border-bottom: 1px solid currentColor;
	font-size: 0.719rem;
	letter-spacing: 0.04em;
	cursor: pointer;
}

.pdp-details {
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
}

.pdp-details__item {
	padding: 3px 0;
}

.pdp-details__label {
	font-weight: 500;
}

.pdp-accordion__panel a {
	border-bottom: 1px solid currentColor;
}

/* USP row */
.pdp-usps {
	margin-top: 26px;
	padding-top: 20px;
	border-top: 1px solid var(--color-lightgrey);
	font-size: 0.719rem;
	letter-spacing: 0.04em;
}

.pdp-usps__links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

.pdp-usps__links a {
	border-bottom: 1px solid currentColor;
	color: var(--color-black);
}

.pdp-usps__trust {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--color-grey);
}

.pdp-usps__trust-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.pdp-usps__trust-item img {
	width: 16px;
	height: 16px;
}

/* Sticky mobile CTA */
.pdp-sticky-cta {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: calc(var(--z-header) + 5);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid var(--color-lightgrey);
	background-color: var(--color-white);
}

.pdp-sticky-cta[hidden] {
	display: none;
}

.pdp-sticky-cta__info {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.pdp-sticky-cta__title {
	overflow: hidden;
	font-size: 0.719rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pdp-sticky-cta__price {
	font-size: 0.75rem;
}

.pdp-sticky-cta__button {
	flex: 0 0 auto;
	height: 38px;
	padding: 0 18px;
	background-color: var(--color-black);
	color: var(--color-white);
	font-size: 0.688rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Related products */
.pdp-related {
	padding: 70px var(--shop-gutter) 90px;
}

.pdp-related__title {
	margin-bottom: 34px;
	font-family: var(--font-accent);
	font-size: 1.438rem;
	letter-spacing: 0.5px;
	text-align: center;
	text-transform: uppercase;
}

.pdp-related__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 30px 45.5px;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ==========================================================================
   Added-to-cart drawer
   ========================================================================== */
.systerp-added {
	position: fixed;
	inset: 0;
	z-index: calc(var(--z-drawer) + 10);
}

.systerp-added[hidden] {
	display: none;
}

.systerp-added__backdrop {
	position: absolute;
	inset: 0;
	background-color: rgb(0 0 0 / 40%);
}

.systerp-added__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	width: min(380px, 100%);
	padding: 24px 24px 28px;
	background-color: var(--color-white);
	overflow-y: auto;
	animation: systerp-drawer-in 0.28s var(--ease);
}

@keyframes systerp-drawer-in {
	from {
		transform: translateX(100%);
	}

	to {
		transform: translateX(0);
	}
}

.systerp-added__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 22px;
}

.systerp-added__title {
	font-size: 0.938rem;
	font-weight: 500;
	letter-spacing: 0.02em;
}

.systerp-added__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	cursor: pointer;
}

.systerp-added__item {
	display: flex;
	gap: 16px;
	padding-bottom: 18px;
}

.systerp-added__media {
	flex: 0 0 106px;
}

.systerp-added__img {
	display: block;
	width: 106px;
	height: 148px;
	object-fit: cover;
	background-color: var(--color-offwhite);
}

.systerp-added__meta {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 0.813rem;
}

.systerp-added__name {
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.systerp-added__variant {
	color: var(--color-grey);
	font-size: 0.75rem;
}

.systerp-added__price {
	font-size: 0.813rem;
}

.systerp-added__shipping {
	padding: 16px 0;
	border-top: 1px solid var(--color-lightgrey);
	font-size: 0.75rem;
}

.systerp-added__progress {
	height: 2px;
	margin-top: 10px;
	background-color: var(--color-lightgrey);
}

.systerp-added__progress-bar {
	display: block;
	height: 100%;
	background-color: var(--color-black);
	transition: width 0.3s var(--ease);
}

.systerp-added__actions {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: auto;
	padding-top: 22px;
}

.systerp-added__link {
	padding: 6px 0;
	font-size: 0.719rem;
	letter-spacing: 0.04em;
	text-align: center;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

/* ==========================================================================
   Cart
   ========================================================================== */
.systerp-cart {
	max-width: 560px;
	margin: 0 auto;
	padding: 56px 0 80px;
}

.systerp-page__woo-container {
	width: 100%;
	padding: 0;
}

.systerp-cart__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 22px;
}

.systerp-cart__title {
	font-size: 0.938rem;
	font-weight: 400;
	letter-spacing: 0.02em;
}

.systerp-cart__continue {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 0.719rem;
	letter-spacing: 0.04em;
}

.systerp-cart__continue svg {
	width: 11px;
	height: 11px;
}

.systerp-cart__items {
	margin: 0;
	padding: 0;
	list-style: none;
}

.systerp-cart__item {
	display: flex;
	gap: 16px;
	padding-bottom: 18px;
	border-bottom: 1px solid transparent;
}

.systerp-cart__media {
	flex: 0 0 106px;
}

.systerp-cart__img {
	display: block;
	width: 106px;
	height: 148px;
	object-fit: cover;
	background-color: var(--color-offwhite);
}

.systerp-cart__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
}

.systerp-cart__line {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
}

.systerp-cart__name {
	font-size: 0.875rem;
	font-weight: 400;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.systerp-cart__price {
	display: flex;
	align-items: baseline;
	gap: 6px;
	font-size: 0.813rem;
	white-space: nowrap;
}

.systerp-cart__regular {
	color: var(--color-grey);
}

.systerp-cart__sale {
	font-weight: 500;
}

.systerp-cart__price .badge--sale {
	position: static;
	font-size: 0.625rem;
}

.systerp-review__discount {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px;
	font-size: 0.688rem;
}

.systerp-review__discount s {
	color: var(--color-grey);
}

.systerp-review__discount .badge--sale {
	position: static;
}

.systerp-cart__variant {
	margin-top: 6px;
	color: var(--color-grey);
	font-size: 0.719rem;
}

.systerp-cart__controls {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: auto;
	padding-top: 18px;
}

.systerp-qty--cart {
	border: 0;
}

.systerp-qty--cart .systerp-qty__btn {
	width: 24px;
	height: 24px;
}

.systerp-qty--cart .systerp-qty__input {
	width: 34px;
	height: 24px;
	border: 0;
	font-size: 0.813rem;
}

.systerp-cart__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	cursor: pointer;
}

.systerp-cart__gift-note {
	margin: 16px 0 0;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--color-lightgrey);
	color: var(--color-grey);
	font-size: 0.719rem;
	letter-spacing: 0.02em;
}

.systerp-cart__update {
	display: none;
}

.systerp-cart__summary {
	margin-top: 26px;
}

.systerp-cart__free {
	font-size: 0.813rem;
}

.systerp-cart__free-text {
	font-weight: 500;
}

.systerp-cart__progress {
	height: 2px;
	margin-top: 10px;
	background-color: var(--color-lightgrey);
}

.systerp-cart__progress-bar {
	display: block;
	height: 100%;
	background-color: var(--color-black);
	transition: width 0.3s var(--ease);
}

.systerp-cart__rows {
	margin-top: 26px;
	border-top: 1px solid var(--color-black);
	border-bottom: 1px solid var(--color-black);
}

.systerp-cart__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 14px 0;
	font-size: 0.813rem;
}

.systerp-cart__row + .systerp-cart__row {
	border-top: 1px solid var(--color-lightgrey);
}

.systerp-cart__row--total {
	font-weight: 500;
}

.systerp-cart__row-value--total {
	font-weight: 500;
}

.systerp-cart__vat {
	margin: 0;
	padding: 0 0 10px;
	color: var(--color-grey);
	font-size: 0.688rem;
	letter-spacing: 0.02em;
}

.systerp-cart__checkout {
	height: 36px;
	margin-top: 24px;
	font-size: 0.719rem;
	letter-spacing: 0.1em;
}

.systerp-cart__ship-note {
	margin-top: 14px;
	color: var(--color-grey);
	font-size: 0.688rem;
	line-height: 1.5;
}

.systerp-cart-empty {
	padding: 40px 0 60px;
	text-align: center;
}

.systerp-cart-empty__text {
	margin-bottom: 26px;
	color: var(--color-grey);
}

/* ==========================================================================
   Checkout
   ========================================================================== */
.systerp-checkout {
	max-width: 1200px;
	margin: 0 auto;
	padding: 48px var(--shop-gutter) 90px;
}

.systerp-checkout__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 34px;
}

.systerp-checkout__title {
	font-family: var(--font-accent);
	font-size: 1.625rem;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.systerp-checkout__back {
	font-size: 0.719rem;
	letter-spacing: 0.04em;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.systerp-checkout__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: start;
	gap: 70px;
}

.systerp-checkout__fields-col {
	min-width: 0;
}

.systerp-checkout__block {
	margin-bottom: 30px;
}

.systerp-checkout__legend {
	margin: 0 0 16px;
	font-size: 0.813rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* Swedish checkout field order (Woo's address-i18n JS re-sorts by priority). */
.systerp-fields--contact #billing_email_field {
	order: 1;
}

.systerp-fields--contact #billing_phone_field {
	order: 2;
}

.systerp-fields--address #billing_first_name_field {
	order: 1;
}

.systerp-fields--address #billing_last_name_field {
	order: 2;
}

.systerp-fields--address #billing_address_1_field {
	order: 3;
}

.systerp-fields--address #billing_address_2_field {
	order: 4;
}

.systerp-fields--address #billing_postcode_field {
	order: 5;
}

.systerp-fields--address #billing_city_field {
	order: 6;
}

.systerp-fields--address #billing_country_field {
	order: 7;
}

.systerp-fields--address #billing_state_field {
	order: 8;
}

.systerp-fields--address #billing_company_field {
	order: 9;
}

/* Fields */
.systerp-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px 16px;
}

.systerp-fields .form-row {
	margin: 0;
}

/* Neutralise WooCommerce's float/47% field widths inside our grid. */
.systerp-fields .form-row,
.systerp-fields .form-row-first,
.systerp-fields .form-row-last,
.systerp-fields .form-row-wide {
	float: none;
	width: 100%;
	clear: none;
}

.systerp-fields .form-row-wide,
.systerp-fields .form-row-first,
.systerp-fields .form-row-last {
	grid-column: span 2;
}

.systerp-fields--address .form-row.form-row-first,
.systerp-fields--address .form-row.form-row-last {
	grid-column: span 1;
}

.systerp-fields--contact .form-row {
	grid-column: span 2;
}

.woocommerce-billing-fields .form-row label,
.systerp-checkout .form-row label {
	display: block;
	margin-bottom: 6px;
	color: var(--color-grey);
	font-size: 0.719rem;
	letter-spacing: 0.04em;
}

.woocommerce-billing-fields .form-row .required,
.systerp-checkout .form-row .required {
	color: var(--color-grey);
	text-decoration: none;
}

.systerp-checkout .form-row input.input-text,
.systerp-checkout .form-row select,
.systerp-checkout .form-row textarea,
.woocommerce-billing-fields .form-row input.input-text,
.woocommerce-billing-fields .form-row select {
	width: 100%;
	height: 44px;
	padding: 0 14px;
	border: 1px solid var(--color-lightgrey);
	border-radius: 0;
	background-color: var(--color-white);
	font-size: 0.875rem;
	-webkit-appearance: none;
	appearance: none;
}

.systerp-checkout .form-row textarea {
	height: auto;
	min-height: 90px;
	padding: 12px 14px;
}

.systerp-checkout .form-row input.input-text:focus,
.systerp-checkout .form-row select:focus,
.systerp-checkout .form-row textarea:focus {
	outline: 0;
	border-color: var(--color-black);
}

.systerp-checkout .form-row .select2-container,
.woocommerce-billing-fields .form-row .select2-container {
	width: 100% !important;
	max-width: 100% !important;
}

.systerp-checkout .select2-container .select2-selection--single,
.woocommerce-billing-fields .select2-container .select2-selection--single {
	height: 44px;
	border: 1px solid var(--color-lightgrey);
	border-radius: 0;
}

.systerp-checkout .select2-container .select2-selection--single .select2-selection__rendered {
	line-height: 42px;
	padding-left: 14px;
}

.systerp-checkout .select2-container .select2-selection--single .select2-selection__arrow {
	height: 42px;
}

.systerp-checkout .form-row .woocommerce-input-wrapper {
	display: block;
}

.systerp-checkout__checkbox {
	display: inline-flex;
	align-items: flex-start;
	gap: 10px;
	color: var(--color-black);
	font-size: 0.75rem;
	line-height: 1.5;
	cursor: pointer;
}

.systerp-checkout__checkbox input {
	margin-top: 2px;
}

/* Summary column */
.systerp-checkout__summary-col {
	position: sticky;
	top: calc(var(--header-height) + 20px);
	min-width: 0;
	padding: 28px 26px;
	border: 1px solid var(--color-lightgrey);
	background-color: var(--color-offwhite);
}

.systerp-checkout__summary-title {
	margin-bottom: 20px;
	font-size: 0.938rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.woocommerce-checkout-review-order-table,
.systerp-review {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.813rem;
}

.systerp-review thead {
	display: none;
}

.systerp-review__items tr {
	border-bottom: 1px solid var(--color-lightgrey);
}

.systerp-review__items tr:first-child {
	border-top: 1px solid var(--color-lightgrey);
}

.systerp-review td {
	padding: 12px 0;
	vertical-align: top;
}

.systerp-review .product-name {
	padding-right: 12px;
}

.systerp-review .product-total {
	font-size: 0.813rem;
	text-align: right;
	white-space: nowrap;
}

.systerp-review__product {
	display: flex;
	gap: 12px;
}

.systerp-review__media {
	position: relative;
	flex: 0 0 60px;
}

.systerp-review__img {
	display: block;
	width: 60px;
	height: 84px;
	object-fit: cover;
	background-color: var(--color-white);
}

.systerp-review__qty {
	position: absolute;
	top: -6px;
	right: -6px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 50%;
	background-color: var(--color-black);
	color: var(--color-white);
	font-size: 0.625rem;
}

.systerp-review__meta {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.systerp-review__name {
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.systerp-review__meta .variation {
	margin: 0;
	color: var(--color-grey);
	font-size: 0.688rem;
}

.systerp-review tfoot th,
.systerp-review tfoot td {
	padding: 11px 0;
	font-size: 0.813rem;
	font-weight: 400;
	text-align: left;
}

.systerp-review tfoot tr + tr {
	border-top: 1px solid var(--color-lightgrey);
}

.systerp-review .order-total th,
.systerp-review .order-total td {
	font-size: 0.875rem;
	font-weight: 500;
}

.systerp-review .cart-subtotal td,
.systerp-review .order-total td,
.systerp-review .product-total {
	text-align: right;
}

.systerp-review .woocommerce-shipping-methods,
.systerp-review .woocommerce-shipping-methods li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.systerp-review .woocommerce-shipping-methods label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.813rem;
}

.systerp-review__vat td {
	padding-top: 0;
	border: 0;
	color: var(--color-grey);
	font-size: 0.688rem;
}

/* Payment section */
.systerp-payment {
	margin-top: 22px;
}

.systerp-payment .wc_payment_methods {
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
}

.systerp-payment .wc_payment_method {
	padding: 10px 0;
	border-bottom: 1px solid var(--color-lightgrey);
}

.systerp-payment .wc_payment_method label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.813rem;
}

.systerp-payment__fallback {
	list-style: none;
}

.systerp-payment__place-order {
	margin-top: 8px;
}

.systerp-payment .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 12px;
}

/* Terms + withdrawal checkbox (mu-plugin markup) */
.systerp-terms-row {
	margin: 0 0 16px;
	padding: 0;
}

.systerp-terms-label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-size: 0.75rem;
	line-height: 1.5;
	cursor: pointer;
}

.systerp-terms-label input {
	flex: 0 0 auto;
	margin-top: 2px;
}

.systerp-terms-label a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.systerp-payment__submit {
	height: 44px;
	font-size: 0.75rem;
	letter-spacing: 0.1em;
}

.systerp-payment__noscript {
	margin-bottom: 10px;
	font-size: 0.719rem;
	color: var(--color-grey);
}

.systerp-payment .woocommerce-info {
	margin: 0 0 14px;
	padding: 12px 14px;
	border-top: 2px solid var(--color-black);
	background-color: var(--color-white);
	font-size: 0.719rem;
	line-height: 1.5;
}

/* Payment icons block (shared) */
.systerp-payicons {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--color-lightgrey);
}

.systerp-payicons__list {
	justify-content: center;
}

.systerp-payicons__img {
	width: 40px;
}

.systerp-payicons__trust {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 16px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
	color: var(--color-grey);
	font-size: 0.688rem;
}

.systerp-payicons__trust-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.systerp-payicons__trust-item img {
	width: 16px;
	height: 16px;
}

.systerp-payicons__note {
	margin: 14px 0 0;
	color: var(--color-grey);
	font-size: 0.688rem;
	line-height: 1.5;
	text-align: center;
}

.systerp-payicons--payment {
	margin-top: 16px;
}

.systerp-payicons--payment .systerp-payicons__trust,
.systerp-payicons--payment .systerp-payicons__note {
	display: none;
}

/* Hide coupon UI (coupons disabled) */
.woocommerce-form-coupon-toggle,
.woocommerce-form-coupon,
.checkout_coupon {
	display: none !important;
}

/* ==========================================================================
   Content pages + search
   ========================================================================== */
.systerp-page__container {
	max-width: 880px;
	padding-top: 56px;
	padding-bottom: 90px;
}

.systerp-page__head {
	margin-bottom: 34px;
	text-align: center;
}

.systerp-page__title {
	font-family: var(--font-accent);
	font-size: 2rem;
	line-height: 1.15;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.systerp-page__content {
	font-size: 0.875rem;
	line-height: 1.7;
}

.systerp-page__content h2,
.systerp-page__content h3,
.systerp-page__content h4 {
	margin: 1.8em 0 0.6em;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.systerp-page__content p,
.systerp-page__content ul,
.systerp-page__content ol {
	margin: 0 0 1.1em;
}

.systerp-page__content ul {
	padding-left: 1.2em;
	list-style: disc;
}

.systerp-page__content ol {
	padding-left: 1.4em;
	list-style: decimal;
}

.systerp-page__content a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.systerp-page__content img {
	height: auto;
}

.systerp-search__head {
	padding-top: 34px;
}

.systerp-search__count {
	margin-top: 14px;
	color: var(--color-grey);
	font-size: 0.719rem;
	letter-spacing: 0.04em;
	text-align: center;
}

.systerp-search__grid {
	padding-top: 40px;
}

.systerp-search__pagination {
	display: flex;
	justify-content: center;
	padding: 30px 0 60px;
}

.systerp-search__pagination .page-numbers {
	padding: 0 8px;
	font-size: 0.813rem;
}

.systerp-search__pagination .current {
	font-weight: 500;
	text-decoration: underline;
}

.systerp-search__other {
	max-width: 880px;
	margin: 0 auto;
	padding: 0 var(--shop-gutter) 80px;
}

.systerp-search__other-title {
	margin-bottom: 18px;
	font-family: var(--font-accent);
	font-size: 1.25rem;
	text-transform: uppercase;
}

.systerp-search__other-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.systerp-search__other-item {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	padding: 10px 0;
	border-bottom: 1px solid var(--color-lightgrey);
	font-size: 0.875rem;
}

.systerp-search__other-item a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.systerp-search__other-type {
	color: var(--color-grey);
	font-size: 0.688rem;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (min-width: 1024px) {
	.pdp-info {
		position: sticky;
		top: var(--header-height);
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		height: calc(100dvh - var(--header-height));
		overflow-y: auto;
		scrollbar-width: none;
	}

	.pdp-info::-webkit-scrollbar {
		display: none;
	}

	.pdp-info__inner {
		padding: 48px 140px 48px;
		max-width: none;
		margin-block: auto;
	}

	.pdp-sticky-cta {
		display: none !important;
	}
}

@media (min-width: 1340px) {
	.pdp-info__inner {
		padding-right: 140px;
		padding-left: 140px;
	}
}

@media (max-width: 1340px) {
	.pdp-info__inner {
		padding: 48px 60px;
	}
}

@media (max-width: 1023px) {
	.systerp-pdp .pdp {
		display: block;
	}

	.pdp-gallery {
		width: 100%;
	}

	.pdp-gallery__track {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
		height: calc(100svh - 160px);
		min-height: 420px;
	}

	.pdp-gallery__track::-webkit-scrollbar {
		display: none;
	}

	.pdp-gallery__slide {
		flex: 0 0 100%;
		height: 100%;
		aspect-ratio: auto;
		scroll-snap-align: start;
	}

	.pdp-gallery__dots {
		display: flex;
	}

	.pdp-info {
		padding: 22px 30px 130px;
	}

	.systerp-pdp .pdp-info__inner {
		max-width: none;
		padding: 0;
	}

	.pdp-related {
		padding: 50px 20px 80px;
	}

	.pdp-related__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 26px 2px;
	}

	ul.systerp-plp__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2px;
		padding: 24px 0 0;
	}

	.plp-head {
		padding: 22px 20px 0;
	}

	.plp-head__title {
		font-size: 1.438rem;
	}

	.plp-head__desc {
		margin-top: 18px;
		font-size: 0.813rem;
	}

	.plp-toolbar {
		flex-direction: column;
		align-items: stretch;
		gap: 14px;
		padding: 22px 20px 0;
	}

	.plp-filters {
		min-width: 0;
		max-width: 100%;
	}

	.plp-sort {
		justify-content: center;
	}

	.plp-filters__list {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.plp-filters__list::-webkit-scrollbar {
		display: none;
	}

	.plp-more {
		grid-template-columns: 1fr;
		justify-items: center;
		gap: 14px;
		padding: 30px 20px 50px;
	}

	.plp-more__count,
	.plp-more__rest {
		justify-self: center;
	}

	.systerp-cart {
		padding: 34px 20px 60px;
	}

	.systerp-checkout {
		padding: 34px 20px 70px;
	}

	.systerp-checkout__grid {
		grid-template-columns: 1fr;
		gap: 34px;
	}

	.systerp-checkout__summary-col {
		position: static;
	}

	.systerp-checkout__head {
		flex-direction: column;
		align-items: flex-start;
		gap: 10px;
	}

	.systerp-fields {
		grid-template-columns: 1fr;
	}

	.systerp-fields .form-row,
	.systerp-fields .form-row-wide,
	.systerp-fields .form-row-first,
	.systerp-fields .form-row-last,
	.systerp-fields--address .form-row.form-row-first,
	.systerp-fields--address .form-row.form-row-last {
		grid-column: span 1;
	}

	.systerp-page__container {
		padding-top: 34px;
		padding-bottom: 60px;
	}

	.systerp-page__title {
		font-size: 1.5rem;
	}
}

@media (max-width: 767px) {
	.plp-sort {
		font-size: 0.688rem;
	}

	.systerp-added__panel {
		width: 100%;
	}

	.pdp-payments__img,
	.systerp-payicons__img {
		width: 36px;
	}

	.systerp-review__img {
		width: 54px;
		height: 76px;
	}

	.systerp-review__media {
		flex-basis: 54px;
	}
}








/* ==========================================================================
   Checkout minimal chrome (Shopify-like: logo + cart only, no nav/footer)
   ========================================================================== */
.systerp-checkout-body {
	background-color: var(--color-white);
}

.systerp-checkout-body #systerp-cookie-consent {
	display: none !important;
}

.systerp-checkout-chrome {
	border-bottom: 1px solid var(--color-lightgrey);
	background-color: var(--color-white);
}

.systerp-checkout-chrome__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 1200px;
	height: 64px;
	margin: 0 auto;
	padding: 0 20px;
}

.systerp-checkout-chrome__logo {
	display: inline-flex;
	align-items: center;
	color: var(--color-black);
}

.systerp-checkout-chrome__logo-svg {
	width: 126px;
	height: 22px;
	fill: currentColor;
}

.systerp-checkout-chrome__cart {
	position: absolute;
	right: 20px;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--color-black);
}

.systerp-checkout-chrome__count {
	font-size: 0.688rem;
	letter-spacing: 0.04em;
}

.systerp-checkout-main {
	min-height: 60vh;
}

.systerp-checkout-main .systerp-checkout {
	padding-top: 38px;
	padding-bottom: 60px;
}

.systerp-checkout-legal {
	padding: 22px 20px 30px;
	border-top: 1px solid var(--color-lightgrey);
	color: var(--color-grey);
	font-size: 0.688rem;
	line-height: 1.6;
	text-align: center;
}

.systerp-checkout-legal__links {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px 18px;
	margin: 0 0 10px;
	padding: 0;
	list-style: none;
}

.systerp-checkout-legal__links a {
	border-bottom: 1px solid currentColor;
	color: var(--color-grey);
}

.systerp-checkout-legal__copyright {
	margin: 0;
}

/* Neutralise WooCommerce float/47% field widths inside the checkout grid. */
.systerp-checkout .systerp-fields .form-row,
.systerp-checkout .systerp-fields .form-row-first,
.systerp-checkout .systerp-fields .form-row-last,
.systerp-checkout .systerp-fields .form-row-wide {
	float: none;
	clear: none;
	width: 100%;
}

.systerp-checkout .systerp-fields--address .form-row-first,
.systerp-checkout .systerp-fields--address .form-row-last {
	grid-column: span 1;
}

.systerp-checkout .systerp-fields .form-row-wide,
.systerp-checkout .systerp-fields--contact .form-row {
	grid-column: span 2;
}

/* ==========================================================================
   PDP thumbnail navigation (desktop) — client requirement: 主图+缩略图切换
   ========================================================================== */
.pdp-gallery__thumbs {
	display: none;
}

@media (min-width: 1024px) {
	.pdp-gallery__thumbs {
		position: sticky;
		top: var(--header-height);
		z-index: 6;
		display: block;
		padding: 10px 16px;
		background-color: var(--color-white);
		border-bottom: 1px solid var(--color-lightgrey);
	}

	.pdp-gallery__thumb-list {
		display: flex;
		gap: 8px;
		margin: 0;
		padding: 0 0 2px;
		overflow-x: auto;
		list-style: none;
		scrollbar-width: none;
	}

	.pdp-gallery__thumb-list::-webkit-scrollbar {
		display: none;
	}

	.pdp-gallery__thumb-item {
		flex: 0 0 auto;
	}

	.pdp-gallery__thumb {
		display: block;
		width: 54px;
		height: 72px;
		padding: 0;
		border: 1px solid transparent;
		background-color: var(--color-offwhite);
		opacity: 0.55;
		cursor: pointer;
		overflow: hidden;
		transition: opacity var(--duration) var(--ease), border-color var(--duration) var(--ease);
	}

	.pdp-gallery__thumb img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.pdp-gallery__thumb:hover,
	.pdp-gallery__thumb:focus-visible {
		opacity: 1;
	}

	.pdp-gallery__thumb.is-active {
		border-color: var(--color-black);
		opacity: 1;
	}
}

/* -------------------------------------------------- PDP variant label */
.pdp-variations__label {
	margin: 0 0 10px;
	color: var(--color-grey);
	font-size: 0.719rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.pdp-sizes .swatch {
	border-bottom: 1px solid transparent;
}

.pdp-sizes .swatch.is-active {
	border-bottom-color: var(--color-black);
}

/* ==========================================================================
   Checkout place-order button: brand black (overrides Woo purple default)
   ========================================================================== */
.systerp-checkout .woocommerce-checkout #payment #place_order,
.woocommerce-checkout #payment #place_order.systerp-payment__submit,
#payment #place_order.systerp-payment__submit {
	height: 44px;
	padding: 0 30px;
	border: 1px solid var(--color-black);
	border-radius: 0;
	background-color: var(--color-black);
	color: var(--color-white);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.11em;
	line-height: 1;
	text-transform: uppercase;
	opacity: 1;
}

.systerp-checkout .woocommerce-checkout #payment #place_order:hover,
.systerp-checkout .woocommerce-checkout #payment #place_order:focus-visible,
.woocommerce-checkout #payment #place_order.systerp-payment__submit:hover,
#payment #place_order.systerp-payment__submit:focus-visible {
	border-color: rgb(0 0 0 / 80%);
	background-color: rgb(0 0 0 / 80%);
	color: var(--color-white);
}

/* ==========================================================================
   Inline payment icons (crisp, full contrast)
   ========================================================================== */
.pdp-payments__svg,
.systerp-payicons__svg {
	display: block;
	width: auto;
	height: auto;
	max-width: 62px;
	max-height: 22px;
	opacity: 1;
}

.pdp-payments__item,
.systerp-payicons__item {
	opacity: 1;
}

/* ==========================================================================
   Mobile touch targets (QA Gate D): cart quantity controls >= 40px at <=768px
   ========================================================================== */
@media (max-width: 768px) {
	.systerp-qty__btn {
		width: 44px;
		height: 44px;
		min-width: 44px;
		min-height: 44px;
	}

	.systerp-qty__input {
		width: 44px;
		height: 44px;
		min-height: 44px;
	}

	.systerp-qty--cart .systerp-qty__btn {
		width: 40px;
		height: 40px;
		min-width: 40px;
		min-height: 40px;
	}

	.systerp-qty--cart .systerp-qty__input {
		width: 40px;
		height: 40px;
		min-height: 40px;
		font-size: 0.875rem;
	}

	.systerp-cart__controls {
		padding-top: 14px;
	}

	.systerp-cart__item {
		gap: 12px;
	}

	.systerp-cart__body {
		min-width: 0;
	}

	.systerp-cart__remove {
		width: 40px;
		height: 40px;
		min-width: 40px;
		min-height: 40px;
	}
}

/* ==========================================================================
   Brand buttons on shop pages: beat WooCommerce's grey `a.button` default
   ========================================================================== */
.woocommerce a.button--solid,
.woocommerce button.button--solid,
.systerp-shop a.button--solid,
.systerp-shop button.button--solid,
.systerp-cart .systerp-cart__checkout,
.systerp-added .systerp-added__checkout {
	border: 1px solid var(--color-black);
	background-color: var(--color-black);
	color: var(--color-white);
}

.woocommerce a.button--solid:hover,
.woocommerce a.button--solid:focus-visible,
.woocommerce button.button--solid:hover,
.systerp-cart .systerp-cart__checkout:hover,
.systerp-cart .systerp-cart__checkout:focus-visible,
.systerp-added .systerp-added__checkout:hover,
.systerp-added .systerp-added__checkout:focus-visible {
	border-color: var(--color-black);
	background-color: var(--color-white);
	color: var(--color-black);
}

/* Woo notice "Visa varukorg" button (cart add confirmation) — brand black too. */
.woocommerce-message .button.wc-forward {
	border: 1px solid var(--color-black);
	border-radius: 0;
	background-color: var(--color-black);
	color: var(--color-white);
	font-size: 0.719rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.woocommerce-message .button.wc-forward:hover {
	background-color: var(--color-white);
	color: var(--color-black);
}

/* ==========================================================================
   PGPay-only checkout payment method row (1 radio + local icon + Swedish text)
   ========================================================================== */
.systerp-payment .woocommerce-checkout-payment,
.systerp-payment #payment {
	background: transparent;
}

.systerp-payment .wc_payment_methods {
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--color-lightgrey);
}

.systerp-payment .wc_payment_method {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 14px 0;
	border-bottom: 1px solid var(--color-lightgrey);
}

.systerp-payment .wc_payment_method .input-radio {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: var(--color-black);
}

.systerp-payment .wc_payment_method label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	color: var(--color-black);
	font-size: 0.813rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	cursor: pointer;
}

.systerp-payment .wc_payment_method label img {
	display: inline-block;
	width: auto;
	height: auto;
	max-height: 24px;
	max-width: 48px;
	object-fit: contain;
	vertical-align: middle;
}

.systerp-payment .payment_box {
	flex: 1 0 100%;
	margin: 4px 0 0 26px;
	padding: 10px 12px;
	border: 1px solid var(--color-lightgrey);
	background-color: var(--color-offwhite);
	color: var(--color-grey);
	font-size: 0.75rem;
	line-height: 1.5;
}

.systerp-payment .payment_box p {
	margin: 0;
}

.systerp-payment .payment_box::before,
.systerp-payment .payment_box::after {
	display: none;
	content: none;
}

/* ==========================================================================
   PGPay payment section — override WooCommerce's purple default skin
   (Woo: #payment { background: rgba(129,110,153,.14) }, .payment_box #dcd7e2)
   ========================================================================== */
.systerp-checkout #payment.woocommerce-checkout-payment {
	background: transparent;
	border: 0;
	padding: 0;
}

.systerp-checkout #payment.woocommerce-checkout-payment ul.payment_methods {
	margin: 0 0 18px;
	padding: 0;
	border: 0;
	background: transparent;
}

.systerp-checkout #payment.woocommerce-checkout-payment ul.payment_methods li.wc_payment_method {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	padding: 14px 0;
	border-bottom: 1px solid var(--color-lightgrey);
	background: transparent;
	list-style: none;
}

.systerp-checkout #payment.woocommerce-checkout-payment ul.payment_methods li.wc_payment_method label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	color: var(--color-black);
	font-size: 0.813rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	cursor: pointer;
}

.systerp-checkout #payment.woocommerce-checkout-payment ul.payment_methods li.wc_payment_method label img {
	display: inline-block;
	width: auto;
	height: auto;
	max-height: 24px;
	max-width: 48px;
	object-fit: contain;
	vertical-align: middle;
}

.systerp-checkout #payment.woocommerce-checkout-payment div.payment_box {
	flex: 1 0 100%;
	margin: 4px 0 0 26px;
	padding: 10px 12px;
	border: 1px solid var(--color-lightgrey);
	border-radius: 0;
	background-color: var(--color-offwhite);
	color: var(--color-grey);
	font-size: 0.75rem;
	line-height: 1.5;
}

.systerp-checkout #payment.woocommerce-checkout-payment div.payment_box::before,
.systerp-checkout #payment.woocommerce-checkout-payment div.payment_box::after {
	display: none !important;
	content: none !important;
	border: 0;
}

.systerp-checkout #payment.woocommerce-checkout-payment .form-row.place-order {
	padding: 14px 0 0;
	background: transparent;
}

/* ==========================================================================
   Checkout payment page icons — customer's full 26-icon local set
   (label "Vi accepterar:", flex-wrap row, 24px icons, Stripe note)
   ========================================================================== */
.systerp-payment .systerp-payicons {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--color-lightgrey);
}

.systerp-payment .systerp-payicons__label {
	margin: 0 0 10px;
	color: var(--color-black);
	font-size: 0.719rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.systerp-payment .systerp-payicons__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 12px;
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
}

.systerp-payment .systerp-payicons__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 24px;
}

.systerp-payment .systerp-payicons__img {
	display: block;
	width: auto;
	height: 24px;
	max-height: 24px;
	max-width: 64px;
	object-fit: contain;
	opacity: 1;
}

.systerp-payment .systerp-payicons__note,
.systerp-payment .systerp-payicons--payment .systerp-payicons__note {
	display: block;
	margin: 0;
	color: var(--color-grey);
	font-size: 0.688rem;
	line-height: 1.5;
	text-align: left;
}

@media (max-width: 768px) {
	.systerp-payment .systerp-payicons__row {
		gap: 8px 10px;
	}

	.systerp-payment .systerp-payicons__img {
		height: 24px;
		max-height: 24px;
		max-width: 64px;
	}
}


/* ==========================================================================
   PGPay-only checkout: visible gateway display block removed (customer request)
   The radio input stays in the DOM (hidden) so checkout submission works;
   the wc_payment_methods wrapper is hidden even after AJAX re-renders.
   ========================================================================== */
.systerp-checkout #payment .wc_payment_methods,
.systerp-checkout #payment .payment_methods,
.systerp-payment .wc_payment_methods {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}

.systerp-checkout #payment .wc_payment_methods li.wc_payment_method,
.systerp-checkout #payment .wc_payment_methods li.wc_payment_method label,
.systerp-checkout #payment .wc_payment_methods li.wc_payment_method .payment_box,
.systerp-checkout #payment .wc_payment_methods li.wc_payment_method img {
	display: none !important;
}

/* Keep the (hidden) payment input reachable for WooCommerce checkout JS. */
.systerp-checkout #payment input[name="payment_method"] {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* ==========================================================================
   Checkout charity note (task-17) — display-only German women-focused notice
   ========================================================================== */
.systerp-charity {
	max-width: 100%;
	margin: 0 0 18px;
	padding: 14px 16px;
	border: 1px solid var(--color-lightgrey);
	border-left: 3px solid var(--color-black);
	background-color: var(--color-offwhite);
	color: var(--color-black);
	box-sizing: border-box;
}

.systerp-charity__title {
	margin: 0 0 8px;
	color: var(--color-black);
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.systerp-charity__text {
	margin: 0;
	color: var(--color-grey);
	font-size: 0.75rem;
	line-height: 1.55;
	overflow-wrap: break-word;
	hyphens: auto;
}

@media (max-width: 768px) {
	.systerp-charity {
		padding: 12px 14px;
	}

	.systerp-charity__title,
	.systerp-charity__text {
		font-size: 0.719rem;
	}
}

/* ==========================================================================
   Coupon UI (task-18): collapsible code form on cart + discount rows
   ========================================================================== */
.systerp-coupon {
	margin: 18px 0 0;
	padding-top: 16px;
	border-top: 1px solid var(--color-lightgrey);
}

.systerp-coupon__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	padding: 0;
	color: var(--color-black);
	font-size: 0.719rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
	cursor: pointer;
}

.systerp-coupon__chevron {
	flex: 0 0 auto;
	transition: transform var(--duration) var(--ease);
}

.systerp-coupon__toggle.is-open .systerp-coupon__chevron {
	transform: rotate(180deg);
}

.systerp-coupon__panel {
	display: flex;
	gap: 10px;
	margin-top: 12px;
}

.systerp-coupon__panel[hidden] {
	display: none;
}

.systerp-coupon__input {
	flex: 1 1 auto;
	min-width: 0;
	height: 44px;
	padding: 0 14px;
	border: 1px solid var(--color-lightgrey);
	border-radius: 0;
	background-color: var(--color-white);
	color: var(--color-black);
	font-size: 0.875rem;
	-webkit-appearance: none;
	appearance: none;
}

.systerp-coupon__input:focus {
	outline: 0;
	border-color: var(--color-black);
}

.systerp-coupon__apply {
	flex: 0 0 auto;
	height: 44px;
	padding: 0 24px;
	font-size: 0.719rem;
	letter-spacing: 0.08em;
}

.systerp-cart__row--discount .systerp-cart__row-label {
	color: var(--color-black);
}

.systerp-cart__row--discount .systerp-cart__row-value--discount {
	color: #3a9d5d;
	font-weight: 500;
}

.systerp-cart__row--discount .systerp-cart__row-value--discount .woocommerce-remove-coupon,
.systerp-cart__row--discount .systerp-cart__row-value--discount .remove {
	margin-left: 8px;
	color: var(--color-grey);
	font-size: 0.688rem;
	font-weight: 400;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.systerp-cart__row--grand-total {
	border-top: 1px solid var(--color-black);
	font-weight: 500;
}

.systerp-review .cart-discount td {
	color: #3a9d5d;
	font-weight: 500;
}

@media (max-width: 480px) {
	.systerp-coupon__panel {
		flex-wrap: wrap;
	}

	.systerp-coupon__input {
		flex: 1 1 100%;
	}

	.systerp-coupon__apply {
		width: 100%;
	}
}


/* ==========================================================================
   Informational -30 % rule row (task-19) — display-only, never changes totals
   ========================================================================== */
.systerp-cart__row--rule .systerp-cart__row-label,
.systerp-cart__row--rule .systerp-cart__row-value {
	color: var(--color-grey);
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.5;
}

.systerp-cart__row--rule .systerp-cart__row-value {
	text-align: right;
}

.systerp-review .systerp-rule-discount th,
.systerp-review .systerp-rule-discount td {
	padding-top: 6px;
	padding-bottom: 6px;
	color: var(--color-grey);
	font-size: 0.75rem;
	font-weight: 400;
	line-height: 1.5;
}

.systerp-review .systerp-rule-discount td {
	text-align: right;
}
