/**
 * PDP — Temu mobile sheet + desktop pro gallery/options.
 */

.som-shell--pdp {
	padding-bottom: 3.75rem;
	padding-top: 0.35rem;
}

.som-pdp {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	align-items: stretch;
}

.som-pdp__stage {
	display: grid;
	gap: 2rem;
	align-items: start;
}

@media (min-width: 54rem) {
	.som-shell--pdp {
		padding-top: 1.15rem;
		padding-bottom: 4.5rem;
		max-width: 72rem;
	}

	.som-pdp {
		gap: 2.75rem;
	}

	/* Gallery | sticky buy column (title lives above Size inside buy) */
	.som-pdp__stage {
		grid-template-columns: minmax(0, 1.15fr) minmax(19rem, 0.85fr);
		gap: 2.5rem 3rem;
		align-items: start;
	}
}

/* —— Temu mobile: flush gallery under header —— */
@media (max-width: 53.99rem) {
	.som-main > .som-shell--pdp {
		width: 100%;
		max-width: none;
		/* Room for clean sticky CTA (48px btn + bar padding + safe area) */
		padding-block: 0 calc(5.15rem + env(safe-area-inset-bottom, 0px));
		padding-inline: 0;
	}

	.som-shell--pdp > .som-breadcrumbs {
		display: none;
	}

	.som-pdp {
		gap: 0;
	}

	.som-gallery {
		margin: 0;
	}

	.som-gallery__stage {
		display: block;
		gap: 0;
	}

	.som-gallery__viewport {
		border-radius: 0;
		border: 0;
		box-shadow: none;
		aspect-ratio: 1 / 1;
		min-height: 0;
		cursor: grab;
		background: var(--som-warm, #f3efe8);
	}

	.som-gallery__viewport:active {
		cursor: grabbing;
	}

	.som-gallery__mat {
		opacity: 0.55;
	}

	.som-gallery__slide {
		padding: 0;
	}

	.som-gallery__image,
	.som-gallery__slide > img {
		border-radius: 0;
		box-shadow: none;
		object-fit: cover;
		width: 100%;
		height: 100%;
		max-width: none;
		max-height: none;
		opacity: 1;
		transform: none;
	}

	.som-gallery__thumbs-wrap {
		display: none !important;
	}

	.som-gallery__nav {
		display: none !important;
	}

	.som-gallery__counter {
		display: inline-flex;
		left: max(0.85rem, env(safe-area-inset-left, 0px));
		bottom: auto;
		top: 0.85rem;
	}

	.som-gallery__zoom {
		right: max(0.85rem, env(safe-area-inset-right, 0px));
		bottom: auto;
		top: 0.85rem;
		width: 2.55rem;
		height: 2.55rem;
		padding: 0;
		justify-content: center;
	}

	.som-gallery__zoom-label {
		display: none;
	}

	.som-gallery__dots {
		display: flex;
	}

	/* Title + price flush above Size — full buy-column width, no card (1.9.61) */
	.som-pdp__title-card,
	.som-panel__header {
		margin: 0 0 0.55rem;
		padding: 0 0 0.55rem;
		border: 0;
		border-bottom: 1px solid var(--som-line);
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		width: 100%;
		max-width: none;
		box-sizing: border-box;
	}

	.som-pdp__title-card .som-panel__title,
	.som-panel__title {
		display: block;
		width: 100%;
		max-width: none;
		box-sizing: border-box;
		font-size: 1.02rem;
		line-height: 1.35;
		font-weight: 700;
		letter-spacing: -0.02em;
		margin: 0 0 0.4rem;
		color: var(--som-charcoal);
		overflow-wrap: anywhere;
		word-break: break-word;
		white-space: normal;
	}

	.som-panel__price {
		display: inline-flex;
		align-items: baseline;
		gap: 0.35rem;
		flex-wrap: wrap;
		font-size: 1.32rem;
		font-weight: 700;
		letter-spacing: -0.02em;
		margin: 0;
		padding: 0.15rem 0;
		color: var(--som-charcoal);
		font-variant-numeric: tabular-nums;
		border-radius: 8px;
		transition: color 0.25s var(--som-ease);
	}

	.som-panel__price .woocommerce-Price-amount {
		font-variant-numeric: tabular-nums;
		font-weight: 700;
	}

	/* Selected variation — clear copper-accent notice */
	.som-panel__price.is-resolved {
		color: var(--som-copper-strong);
	}

	.som-panel__price.is-resolved .woocommerce-Price-amount {
		color: var(--som-copper-strong);
	}

	.som-panel__price.is-updated {
		animation: som-price-notice 0.55s var(--som-ease);
	}

	@keyframes som-price-notice {
		0% {
			opacity: 0.35;
			transform: translateY(0.35rem) scale(0.97);
			filter: saturate(0.7);
		}
		45% {
			opacity: 1;
			transform: translateY(0) scale(1.03);
			filter: saturate(1.05);
			text-shadow: 0 0 0.55rem color-mix(in srgb, var(--som-copper) 28%, transparent);
		}
		100% {
			opacity: 1;
			transform: translateY(0) scale(1);
			filter: none;
			text-shadow: none;
		}
	}

	@media (prefers-reduced-motion: reduce) {
		.som-panel__price.is-updated {
			animation: none;
			outline: 2px solid color-mix(in srgb, var(--som-copper) 45%, transparent);
			outline-offset: 3px;
		}
	}

	.som-panel__trust,
	.som-panel__meta {
		display: none !important;
	}

	.som-panel,
	.som-panel--buy,
	.som-panel--card {
		margin: 0;
		padding: 1rem 1rem 1.35rem;
		border: 0;
		border-radius: 1.1rem 1.1rem 0 0;
		background: var(--som-bg);
		box-shadow: none;
		position: relative;
		z-index: 1;
		margin-top: -0.65rem;
	}

	.som-panel__ship--desktop {
		display: none;
	}

	/* 1.9.27 — full Product details accordion on mobile (same tabs as desktop) */
	.som-accordion {
		display: block;
		margin: 1.25rem 0 0;
		padding: 0.25rem 1rem 0.5rem;
		border-top: 1px solid var(--som-border);
	}

	.som-accordion__section-title {
		margin: 0 0 0.55rem;
		font-size: 1rem;
	}

	.som-accordion__summary {
		min-height: 2.85rem;
	}

	.som-page-details {
		display: none !important;
	}

	.som-flow {
		margin-top: 0.35rem;
	}

	/* Flat options — no nested card */
	.som-options-box {
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.som-options-box .som-attrs {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.som-options-box .som-attr {
		margin: 0;
		padding: 0 0 1.05rem;
	}

	.som-options-box .som-attr + .som-attr {
		padding-top: 1rem;
	}

	.som-options-box .som-attr:last-of-type {
		padding-bottom: 0;
	}

	.som-options-box .som-attr__legend {
		margin-bottom: 0.65rem;
	}

	.som-options-box .som-opt--pill {
		min-height: 2.7rem;
		min-width: 3.25rem;
		padding: 0.48rem 0.95rem;
		font-size: 0.96rem;
	}

	.som-options-box .som-opt--swatch {
		width: 3rem;
		height: 3rem;
		min-width: 3rem;
		min-height: 3rem;
		padding: 0.26rem;
	}

	/* Sheet closed: personalization stays off-page until opened */
	.som-buy-sheet:not(.is-open) {
		pointer-events: none;
	}

	/* Only cover gallery chrome when sheet is open — size/color/details stay on scroll */
	body.has-buy-sheet-open .som-gallery__nav,
	body.has-buy-sheet-open .som-gallery__counter,
	body.has-buy-sheet-open .som-gallery__zoom,
	body.has-buy-sheet-open .som-gallery__dots,
	body.has-buy-sheet-open .som-gallery__thumbs-wrap {
		visibility: hidden;
	}
}

/* —— Atelier gallery (1.9.66) — full-bleed image, simple light frame —— */
.som-gallery {
	--som-gallery-rail: 4.6rem;
	--som-gallery-gap: 0.9rem;
	--som-thumb-gap: 0.5rem;
	--som-thumb-visible: 6;
	min-width: 0;
}

.som-gallery__stage {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	align-items: stretch;
}

.som-gallery__viewport {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	flex: 0 0 auto;
	width: 100%;
	aspect-ratio: 1 / 1;
	min-height: 16rem;
	border: 1px solid var(--som-line);
	border-radius: 14px;
	background: var(--som-warm, #f3efe8);
	touch-action: pan-y;
	box-shadow: var(--som-shadow-sm);
	cursor: zoom-in;
	user-select: none;
}

/* Soft light wash only — image fills the stage */
.som-gallery__mat {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--som-ivory) 70%, #fff) 0%, var(--som-warm, #f3efe8) 100%);
}

.som-gallery__mat::after {
	content: none;
}

.som-gallery__track {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	height: 100%;
	width: 100%;
	margin: 0;
	padding: 0;
	transition: transform 360ms var(--som-ease);
	will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
	.som-gallery__track,
	.som-gallery__image,
	.som-gallery__dot,
	.som-gallery__thumb {
		transition: none !important;
	}
}

.som-gallery__slide {
	position: relative;
	flex: 0 0 100%;
	width: 100%;
	height: 100%;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	box-sizing: border-box;
}

.som-gallery__slide.is-active .som-gallery__image,
.som-gallery__slide.is-active > img {
	opacity: 1;
	transform: none;
}

.som-gallery__image,
.som-gallery__slide > img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	object-fit: cover;
	object-position: center;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	transition: opacity 280ms var(--som-ease);
	pointer-events: none;
	opacity: 1;
	transform: none;
}

.som-gallery__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: 2.55rem;
	height: 2.55rem;
	border: 1px solid color-mix(in srgb, var(--som-line-strong) 80%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, #fff 82%, transparent);
	color: var(--som-charcoal);
	cursor: pointer;
	display: grid;
	place-items: center;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 6px 18px rgb(34 36 38 / 12%);
	opacity: 0;
	transition: opacity 180ms var(--som-ease), background 180ms var(--som-ease), border-color 180ms var(--som-ease), color 180ms var(--som-ease), transform 180ms var(--som-ease);
}

.som-gallery__viewport:hover .som-gallery__nav,
.som-gallery__viewport:focus-within .som-gallery__nav,
.som-gallery__nav:focus-visible {
	opacity: 1;
}

.som-gallery__nav--prev { left: 0.75rem; }
.som-gallery__nav--next { right: 0.75rem; }

.som-gallery__nav:hover,
.som-gallery__nav:focus-visible {
	background: var(--som-charcoal);
	border-color: var(--som-charcoal);
	color: #fff;
	outline: none;
}

.som-gallery__nav svg {
	display: block;
}

.som-gallery__counter {
	position: absolute;
	left: 0.85rem;
	bottom: 0.85rem;
	z-index: 3;
	display: inline-flex;
	align-items: baseline;
	gap: 0.28rem;
	margin: 0;
	padding: 0.35rem 0.7rem;
	border-radius: 999px;
	border: 1px solid color-mix(in srgb, var(--som-line-strong) 75%, transparent);
	background: color-mix(in srgb, #fff 86%, transparent);
	color: var(--som-charcoal);
	font-family: var(--som-font-display);
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	font-variant-numeric: tabular-nums;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 4px 14px rgb(34 36 38 / 8%);
}

.som-gallery__counter-sep {
	opacity: 0.45;
	font-weight: 500;
}

.som-gallery__zoom {
	position: absolute;
	right: 0.85rem;
	bottom: 0.85rem;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	min-height: 2.45rem;
	padding: 0.4rem 0.85rem;
	border: 1px solid color-mix(in srgb, var(--som-line-strong) 75%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, #fff 86%, transparent);
	color: var(--som-charcoal);
	font: 600 0.72rem / 1 var(--som-font-display);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	box-shadow: 0 4px 14px rgb(34 36 38 / 8%);
	transition: background 180ms var(--som-ease), border-color 180ms var(--som-ease), color 180ms var(--som-ease);
}

.som-gallery__zoom:hover,
.som-gallery__zoom:focus-visible {
	background: var(--som-charcoal);
	border-color: var(--som-charcoal);
	color: #fff;
	outline: none;
}

/* Mobile: copper segment rail (desktop uses filmstrip) */
.som-gallery__dots {
	display: none;
	position: absolute;
	left: 50%;
	bottom: 0.95rem;
	transform: translateX(-50%);
	z-index: 4;
	gap: 0.28rem;
	align-items: center;
	justify-content: center;
	width: min(52%, 13rem);
	padding: 0.35rem 0.55rem;
	border-radius: 999px;
	background: color-mix(in srgb, #fff 78%, transparent);
	border: 1px solid color-mix(in srgb, var(--som-line) 80%, transparent);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	box-shadow: 0 4px 14px rgb(34 36 38 / 8%);
	pointer-events: auto;
	box-sizing: border-box;
}

.som-gallery__dot {
	flex: 1 1 0;
	min-width: 0;
	height: 0.18rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--som-charcoal) 18%, transparent);
	cursor: pointer;
	transition: background 0.2s var(--som-ease), transform 0.2s var(--som-ease), box-shadow 0.2s var(--som-ease);
}

.som-gallery__dot.is-active {
	background: var(--som-copper);
	box-shadow: 0 0 10px color-mix(in srgb, var(--som-copper) 40%, transparent);
	transform: scaleY(1.35);
}

/* Filmstrip — horizontal under stage by default; vertical rail on desktop */
.som-gallery__thumbs-wrap {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	flex: 0 0 auto;
	width: 100%;
}

.som-gallery__thumbs-wrap--scroll {
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 0.4rem;
}

.som-gallery__thumbs {
	display: flex;
	flex-wrap: nowrap;
	gap: var(--som-thumb-gap);
	overflow-x: auto;
	overflow-y: hidden;
	padding: 0.15rem 0.05rem 0.25rem;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	overscroll-behavior-x: contain;
}

.som-gallery__thumbs::-webkit-scrollbar {
	height: 3px;
	width: 3px;
}

.som-gallery__thumbs::-webkit-scrollbar-thumb {
	background: color-mix(in srgb, var(--som-copper) 45%, var(--som-border));
	border-radius: 999px;
}

.som-gallery__thumb {
	flex: 0 0 calc((100% - (var(--som-thumb-visible) - 1) * var(--som-thumb-gap)) / var(--som-thumb-visible));
	width: auto;
	aspect-ratio: 1 / 1;
	height: auto;
	max-width: none;
	padding: 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	cursor: pointer;
	overflow: visible;
	scroll-snap-align: start;
}

.som-gallery__thumb-frame {
	display: block;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 10px;
	border: 1px solid var(--som-line);
	background: var(--som-warm, #f3efe8);
	box-shadow: none;
	transition:
		border-color var(--som-motion) var(--som-ease),
		box-shadow var(--som-motion) var(--som-ease),
		transform var(--som-motion) var(--som-ease);
}

.som-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	opacity: 0.92;
	transition: opacity var(--som-motion) var(--som-ease), transform 320ms var(--som-ease);
}

.som-gallery__thumb.is-active .som-gallery__thumb-frame {
	border-color: var(--som-charcoal);
	box-shadow:
		0 0 0 1px var(--som-charcoal),
		0 0 0 3px color-mix(in srgb, var(--som-copper) 45%, #fff);
	transform: none;
}

.som-gallery__thumb.is-active img {
	opacity: 1;
}

.som-gallery__thumb:hover .som-gallery__thumb-frame,
.som-gallery__thumb:focus-visible .som-gallery__thumb-frame {
	border-color: color-mix(in srgb, var(--som-copper) 55%, var(--som-line));
	outline: none;
}

.som-gallery__thumb:hover img,
.som-gallery__thumb:focus-visible img {
	opacity: 1;
	transform: scale(1.04);
}

.som-gallery__thumbs-nav {
	flex: 0 0 auto;
	width: 2rem;
	height: 2rem;
	border: 1px solid var(--som-line);
	border-radius: 999px;
	background: var(--som-card, #fff);
	color: var(--som-ink);
	cursor: pointer;
	display: inline-grid;
	place-items: center;
	box-shadow: var(--som-shadow-sm);
	padding: 0;
}

.som-gallery__thumbs-nav:hover,
.som-gallery__thumbs-nav:focus-visible {
	border-color: var(--som-copper);
	color: var(--som-copper-strong);
	outline: none;
}

.som-gallery__thumbs-nav[disabled] {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}

/* Lean native lightbox — forge darkroom */
.som-gallery-lightbox {
	border: 0;
	padding: 0;
	max-width: min(96vw, 1120px);
	max-height: 94vh;
	background: transparent;
	color: var(--som-on-accent);
}

.som-gallery-lightbox::backdrop {
	background:
		radial-gradient(60% 50% at 50% 40%, color-mix(in srgb, var(--som-copper) 12%, transparent), transparent 70%),
		color-mix(in srgb, #0d0e10 88%, transparent);
	backdrop-filter: blur(10px);
}

.som-gallery-lightbox__chrome {
	position: relative;
	display: grid;
	place-items: center;
	min-height: 42vh;
	padding: 2.5rem 3.25rem;
}

.som-gallery-lightbox__img {
	max-width: min(90vw, 1040px);
	max-height: 82vh;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: 8px;
	background: transparent;
	box-shadow:
		0 28px 64px rgb(0 0 0 / 45%),
		0 0 0 1px rgb(255 255 255 / 8%);
}

.som-gallery-lightbox__close {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 2;
	width: 2.65rem;
	height: 2.65rem;
	border: 1px solid rgb(255 255 255 / 14%);
	border-radius: 999px;
	background: color-mix(in srgb, #121416 78%, transparent);
	color: #f7f4ef;
	cursor: pointer;
	display: grid;
	place-items: center;
	padding: 0;
	backdrop-filter: blur(8px);
}

.som-gallery-lightbox__close:hover,
.som-gallery-lightbox__close:focus-visible {
	background: var(--som-copper);
	border-color: var(--som-copper);
	color: #fff;
	outline: none;
}

.som-gallery-lightbox__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 2.85rem;
	height: 2.85rem;
	border: 1px solid rgb(255 255 255 / 14%);
	border-radius: 999px;
	background: color-mix(in srgb, #121416 72%, transparent);
	color: #f7f4ef;
	cursor: pointer;
	display: grid;
	place-items: center;
	padding: 0;
	backdrop-filter: blur(8px);
}

.som-gallery-lightbox__nav:hover,
.som-gallery-lightbox__nav:focus-visible {
	background: color-mix(in srgb, var(--som-copper) 80%, #121416);
	border-color: color-mix(in srgb, var(--som-copper) 55%, #fff);
	color: #fff;
	outline: none;
}

.som-gallery-lightbox__nav--prev { left: 0; }
.som-gallery-lightbox__nav--next { right: 0; }

/* Mobile immersive stage — must follow base gallery rules (cascade) */
@media (max-width: 53.99rem) {
	.som-gallery__viewport {
		border-radius: 0;
		border: 0;
		box-shadow: none;
		min-height: 0;
		background: var(--som-warm, #f3efe8);
	}

	.som-gallery__mat::after {
		content: none;
	}

	.som-gallery__slide {
		padding: 0;
	}

	.som-gallery__image,
	.som-gallery__slide > img {
		border-radius: 0;
		box-shadow: none;
		width: 100%;
		height: 100%;
		object-fit: cover;
		opacity: 1;
		transform: none;
	}

	.som-gallery__nav {
		display: none !important;
	}

	.som-gallery__thumbs-wrap {
		display: none !important;
	}

	.som-gallery__counter {
		top: 0.85rem;
		bottom: auto;
		left: max(0.85rem, env(safe-area-inset-left, 0px));
	}

	.som-gallery__zoom {
		top: 0.85rem;
		bottom: auto;
		right: max(0.85rem, env(safe-area-inset-right, 0px));
		width: 2.55rem;
		height: 2.55rem;
		min-height: 2.55rem;
		padding: 0;
	}

	.som-gallery__zoom-label {
		display: none;
	}

	.som-gallery__dots {
		display: flex;
		bottom: 0.95rem;
		width: min(56%, 14rem);
	}
}

/* Purchase column — flat by default (1.9.61) */
.som-panel,
.som-panel--buy,
.som-panel--card {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
	box-shadow: none;
}

/* Mobile buy surface — must follow base flat panel rules */
@media (max-width: 53.99rem) {
	.som-panel,
	.som-panel--buy,
	.som-panel--card {
		margin-top: -0.65rem;
		padding: 1rem 1rem 1.35rem;
		border-radius: 1.1rem 1.1rem 0 0;
		background: var(--som-bg);
		box-shadow: none;
		border: 0;
	}

	.som-pdp__title-card,
	.som-panel__header {
		width: 100%;
		max-width: none;
		margin: 0 0 0.55rem;
		padding: 0 0 0.55rem;
		border: 0;
		border-bottom: 1px solid var(--som-line);
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.som-options-box {
		margin: 0;
		padding: 0;
		border: 0;
		background: transparent;
		box-shadow: none;
	}
}

/* Title + price — flat header above options (no card chrome) */
.som-pdp__title-card,
.som-panel__header {
	display: block;
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	margin: 0 0 1rem;
	padding: 0 0 1rem;
	border: 0;
	border-bottom: 1px solid var(--som-line);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.som-pdp__title-card .som-panel__title,
.som-panel__title {
	display: block;
	width: 100%;
	max-width: none;
	box-sizing: border-box;
	font-family: var(--som-font-display);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.32;
	letter-spacing: -0.02em;
	margin: 0 0 0.4rem;
	padding: 0;
	color: var(--som-charcoal);
	overflow-wrap: anywhere;
	word-break: break-word;
	white-space: normal;
	text-overflow: unset;
	max-height: none;
	-webkit-line-clamp: unset;
	line-clamp: unset;
}

.som-panel__price {
	font-size: 1.32rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	margin: 0;
	color: var(--som-charcoal);
	font-variant-numeric: tabular-nums;
}

.som-panel__price del {
	color: var(--som-ink-muted);
	font-weight: 400;
	margin-right: 0.35rem;
}

.som-panel__price ins {
	text-decoration: none;
	color: var(--som-sale);
}

/* Legacy pill (removed from markup); keep rule harmless */
.som-panel__trust {
	display: none;
}

.som-panel__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem;
	margin: 0.55rem 0 0;
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	color: var(--som-ink-muted);
}

.som-panel__meta-sep {
	color: color-mix(in srgb, var(--som-copper) 55%, var(--som-ink-muted));
}

/* SKU + stock hidden on all PDP surfaces (desktop + mobile, in-page + sheet) */
.som-panel__sku,
.som-panel__stock,
.som-pdp .sku,
.som-pdp .product_meta,
.som-pdp .product_meta .sku_wrapper,
.som-pdp .stock,
.som-pdp .woocommerce-product-attributes-item--sku,
.som-pdp p.stock,
.som-buy-sheet .stock,
.som-buy-sheet .sku {
	display: none !important;
}

.som-panel__ship {
	margin: 1rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--som-border);
	font-size: var(--som-text-sm);
	color: var(--som-ink-muted);
}

/* ATC trust line — desktop buy column + mobile sticky/sheet (1.9.68) */
.som-atc-trust {
	display: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.som-atc-trust__sep {
	color: var(--som-faint);
	font-weight: 500;
}

.som-atc-trust__item {
	display: inline-flex;
	align-items: center;
	gap: 0.28rem;
	color: var(--som-ink-muted);
}

.som-atc-trust__lock {
	flex: 0 0 auto;
	width: 0.78rem;
	height: 0.78rem;
	color: var(--som-ink-muted);
	opacity: 0.9;
}

@media (min-width: 54rem) {
	.som-atc-trust {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.3rem 0.45rem;
		margin: 0.7rem 0 0;
		padding: 0;
		font-size: 0.74rem;
		font-weight: 600;
		letter-spacing: 0.01em;
		line-height: 1.35;
		color: var(--som-ink-muted);
	}
}

@media (max-width: 53.99rem) {
	.som-sticky-bar .som-atc-trust,
	.som-buy-sheet__foot .som-atc-trust {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		gap: 0.2rem 0.4rem;
		margin: 0.45rem 0 0;
		padding: 0 0.15rem;
		font-size: 0.68rem;
		font-weight: 600;
		letter-spacing: 0.01em;
		line-height: 1.3;
		color: var(--som-ink-muted);
		text-align: center;
	}

	.som-sticky-bar .som-atc-trust__lock,
	.som-buy-sheet__foot .som-atc-trust__lock {
		width: 0.7rem;
		height: 0.7rem;
	}
}

.som-pdp-trust__returns {
	margin: 0.85rem 0 0;
	padding: 0;
	font-size: 0.78rem;
	line-height: 1.45;
	color: var(--som-ink-muted);
	max-width: 42ch;
}

.som-buy-contact {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 0.4rem;
	margin: 0.65rem 0 0;
	padding: 0;
	font-size: 0.8rem;
	line-height: 1.4;
	color: var(--som-ink-muted);
}

.som-buy-contact__label {
	font-weight: 600;
	color: var(--som-ink-2);
}

.som-buy-contact__link {
	color: var(--som-copper-strong, var(--som-copper));
	font-weight: 700;
	text-decoration: none;
}

.som-buy-contact__link:hover,
.som-buy-contact__link:focus-visible {
	text-decoration: underline;
	outline: none;
}

.som-buy-contact__sep {
	color: var(--som-faint);
}

/* Attribute selectors — atelier Size chips + metal Color discs (1.9.65) */
.som-attrs {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.som-attr {
	border: 0;
	margin: 0;
	padding: 0 0 1.15rem;
}

.som-attr + .som-attr {
	padding-top: 1.05rem;
	border-top: 1px solid color-mix(in srgb, var(--som-line) 85%, transparent);
}

.som-attr:last-of-type {
	padding-bottom: 0;
}

.som-attr__legend {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.3rem 0.5rem;
	margin: 0 0 0.7rem;
	padding: 0;
	font-family: var(--som-font-display);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--som-ink-muted);
}

.som-attr__picked {
	font-family: var(--som-font-body);
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: -0.015em;
	text-transform: none;
	color: var(--som-copper-strong, var(--som-copper));
}

.som-attr__picked:not([hidden])::before {
	content: "";
	display: inline-block;
	width: 0.32rem;
	height: 0.32rem;
	margin: 0 0.4rem 0 0.1rem;
	border-radius: 999px;
	background: var(--som-copper);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--som-copper) 18%, transparent);
	vertical-align: 0.16em;
}

.som-attr__options {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.som-attr__options--pills {
	gap: 0.45rem;
}

.som-attr__options--swatches {
	gap: 0.6rem;
	align-items: center;
}

.som-opt {
	appearance: none;
	-webkit-appearance: none;
	min-height: 2.5rem;
	min-width: 2.5rem;
	padding: 0.4rem 0.75rem;
	border: 1px solid var(--som-line-strong);
	border-radius: 10px;
	background: color-mix(in srgb, var(--som-card) 88%, var(--som-warm));
	font: 600 0.875rem / 1.1 var(--som-font-body);
	color: var(--som-charcoal);
	cursor: pointer;
	transition:
		background 180ms var(--som-ease),
		border-color 180ms var(--som-ease),
		color 180ms var(--som-ease),
		box-shadow 180ms var(--som-ease),
		transform 180ms var(--som-ease);
}

.som-opt:hover:not(:disabled) {
	border-color: color-mix(in srgb, var(--som-copper) 48%, var(--som-line));
	transform: translateY(-1px);
}

.som-opt[aria-pressed="true"] {
	background: var(--som-charcoal);
	color: var(--som-on-accent);
	border-color: var(--som-charcoal);
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--som-copper) 55%, transparent),
		0 8px 18px rgb(34 36 38 / 14%);
}

.som-opt:disabled {
	opacity: 0.34;
	cursor: not-allowed;
	transform: none;
}

.som-opt:focus-visible {
	outline: 2px solid var(--som-copper);
	outline-offset: 3px;
}

/* Size — soft forge chips */
.som-opt--pill {
	position: relative;
	min-height: 2.55rem;
	min-width: 3.15rem;
	padding: 0.42rem 0.95rem;
	border-radius: 999px;
	font-family: var(--som-font-display);
	font-size: 0.93rem;
	font-weight: 700;
	letter-spacing: 0.015em;
	background:
		linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--som-ivory) 62%, #fff) 100%);
	border: 1px solid color-mix(in srgb, var(--som-line-strong) 72%, var(--som-copper) 28%);
	box-shadow:
		inset 0 1px 0 rgb(255 255 255 / 88%),
		0 1px 2px rgb(34 36 38 / 5%);
}

.som-opt--pill:hover:not(:disabled) {
	border-color: color-mix(in srgb, var(--som-copper) 55%, var(--som-line));
	box-shadow:
		inset 0 1px 0 rgb(255 255 255 / 92%),
		0 4px 12px color-mix(in srgb, var(--som-copper) 12%, transparent);
}

.som-opt--pill[aria-pressed="true"] {
	background: linear-gradient(155deg, #32363a 0%, var(--som-charcoal) 58%, #1a1c1e 100%);
	color: #faf8f4;
	border-color: color-mix(in srgb, var(--som-copper) 62%, var(--som-charcoal));
	box-shadow:
		inset 0 1px 0 rgb(255 255 255 / 10%),
		0 0 0 1px color-mix(in srgb, var(--som-copper) 42%, transparent),
		0 10px 22px rgb(34 36 38 / 18%);
}

.som-opt--pill[aria-pressed="true"] .som-opt__label {
	text-shadow: 0 1px 0 rgb(0 0 0 / 25%);
}

/* Color — metal discs with copper selection ring */
.som-opt--swatch {
	width: 2.85rem;
	height: 2.85rem;
	min-width: 2.85rem;
	min-height: 2.85rem;
	padding: 0.26rem;
	border-radius: 999px;
	display: grid;
	place-items: center;
	background: color-mix(in srgb, var(--som-card) 55%, transparent);
	border: 1px solid color-mix(in srgb, var(--som-line) 65%, #fff);
	box-shadow: 0 1px 3px rgb(34 36 38 / 7%);
}

.som-opt__swatch {
	width: 100%;
	height: 100%;
	border-radius: 999px;
	border: 1px solid rgb(34 36 38 / 16%);
	box-shadow:
		inset 0 0 0 1px rgb(255 255 255 / 26%),
		inset 0 -7px 12px rgb(0 0 0 / 14%);
	background-image: none;
}

.som-opt__swatch--label {
	display: grid;
	place-items: center;
	font-size: 0.65rem;
	font-weight: 700;
	background: var(--som-bg-muted);
	color: var(--som-ink);
}

.som-opt--swatch:hover:not(:disabled) {
	border-color: color-mix(in srgb, var(--som-copper) 45%, var(--som-line));
	transform: translateY(-1px);
	box-shadow: 0 4px 12px color-mix(in srgb, var(--som-copper) 14%, transparent);
}

.som-opt--swatch[aria-pressed="true"] {
	background: transparent;
	border-color: transparent;
	box-shadow:
		0 0 0 2px var(--som-charcoal),
		0 0 0 4px color-mix(in srgb, var(--som-copper) 70%, #fff);
	color: var(--som-ink);
	transform: none;
}

.som-opt--swatch[aria-pressed="true"] .som-opt__swatch {
	border-color: rgb(34 36 38 / 28%);
	box-shadow:
		inset 0 0 0 1px rgb(255 255 255 / 30%),
		0 5px 12px rgb(34 36 38 / 14%);
}

@media (prefers-reduced-motion: reduce) {
	.som-opt,
	.som-opt--pill,
	.som-opt--swatch {
		transition: none;
	}

	.som-opt:hover:not(:disabled),
	.som-opt--swatch:hover:not(:disabled) {
		transform: none;
	}
}

/* Personalization — custom text only */
.som-personalize {
	margin: 0 0 1.15rem;
	padding: 0.95rem 1rem 1rem;
	border-radius: 14px;
	border: 1px solid color-mix(in srgb, var(--som-copper) 28%, var(--som-border));
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--som-copper-soft) 70%, var(--som-card)) 0%, var(--som-card) 100%);
	box-shadow: var(--som-shadow-sm);
}

.som-personalize__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 0 0 0.3rem;
}

.som-personalize__label {
	display: block;
	font-family: var(--som-font-display);
	font-weight: 700;
	font-size: 1rem;
	letter-spacing: -0.015em;
	margin: 0;
	color: var(--som-ink);
}

.som-personalize__badge {
	display: inline-flex;
	align-items: center;
	min-height: 1.5rem;
	padding: 0.15rem 0.55rem;
	border-radius: 999px;
	background: var(--som-charcoal);
	color: var(--som-on-accent);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.som-personalize__optional {
	font-weight: 500;
	font-size: 0.78rem;
	color: var(--som-ink-muted);
}

.som-personalize__lede {
	margin: 0 0 0.65rem;
	font-size: 0.88rem;
	line-height: 1.45;
	color: var(--som-ink-muted);
}

.som-personalize__input {
	display: block;
	width: 100%;
	min-height: 88px;
	padding: 12px 14px;
	border: 1px solid var(--som-border);
	border-radius: 10px;
	background: var(--som-bg-elevated);
	font: 400 1rem / 1.45 var(--som-font-body);
	color: var(--som-ink);
	resize: vertical;
	transition: border-color var(--som-motion) var(--som-ease), box-shadow var(--som-motion) var(--som-ease);
	box-sizing: border-box;
}

.som-personalize__input:focus {
	outline: none;
	border-color: var(--som-copper);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--som-copper) 22%, transparent);
}

.som-personalize__help {
	display: flex;
	justify-content: space-between;
	gap: 0.75rem;
	margin-top: 0.45rem;
	font-size: 0.8rem;
	color: var(--som-ink-muted);
}

.som-personalize__count {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	color: var(--som-ink-2);
}

.som-personalize__error {
	margin: 0.45rem 0 0;
	color: var(--som-danger);
	font-size: var(--som-text-sm);
}

.som-personalize__review {
	margin: 0.7rem 0 0;
	padding: 0.65rem 0.75rem;
	border-radius: 10px;
	border: 1px solid color-mix(in srgb, var(--som-copper) 22%, var(--som-line));
	background: color-mix(in srgb, var(--som-copper-soft) 55%, var(--som-card));
	font-size: 0.8rem;
	line-height: 1.45;
	color: var(--som-ink-2);
}

.som-atc {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 0.55rem;
	align-items: stretch;
	width: 100%;
	margin-top: 0.5rem;
}

.som-atc__qty {
	flex: 0 0 auto;
	display: flex;
	align-items: stretch;
	order: 0;
}

.som-atc__qty .quantity {
	display: flex;
	margin: 0;
	height: 100%;
}

.som-atc .quantity .qty,
.som-atc__qty-input {
	min-height: 3rem;
	width: 3.35rem;
	padding: 0.35rem 0.25rem;
	border: 1px solid var(--som-border);
	border-radius: var(--som-radius);
	background: var(--som-bg-elevated);
	font: 700 0.95rem / 1 var(--som-font-body);
	text-align: center;
	color: var(--som-ink);
	box-sizing: border-box;
}

.som-atc__btn {
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
	min-height: 3rem;
	letter-spacing: 0.03em;
	order: 1;
}

.som-atc__btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

/* Inline flow (size/color + page details) */
.som-flow {
	display: block;
}

.som-options-box {
	margin: 0;
}

/* Legacy options-box qty removed — qty lives beside ATC. */
.som-options-box__qty {
	display: none !important;
}

.som-attrs-home:empty {
	display: none;
}

.som-options-box--simple:empty {
	display: none;
}

.som-page-details {
	display: none;
}

@media (max-width: 53.99rem) {
	.som-page-details {
		display: block;
		margin-top: 0.85rem;
		padding-top: 0.85rem;
		border-top: 1px solid var(--som-border);
	}
}

.som-page-details__heading {
	margin: 0 0 0.4rem;
	font-family: var(--som-font-display);
	font-size: 0.95rem;
	font-weight: 700;
}

.som-page-details__block {
	margin: 0 0 1rem;
}

.som-page-details__prose {
	font-size: var(--som-text-sm);
	color: var(--som-ink-muted);
	line-height: 1.55;
}

.som-page-details__prose > *:first-child {
	margin-top: 0;
}

.som-page-details__prose > *:last-child {
	margin-bottom: 0;
}

.som-page-details__note {
	margin: 0.25rem 0 0;
	font-size: 0.8rem;
	color: var(--som-ink-muted);
}

/* —— Buy sheet: desktop inline / mobile bottom sheet —— */
.som-buy-sheet {
	margin-top: 0.35rem;
}

.som-buy-sheet__backdrop {
	display: none;
}

.som-buy-sheet__grab {
	display: none;
}

.som-buy-sheet__head {
	display: none;
}

.som-buy-sheet__panel {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.som-buy-sheet__scroll {
	display: flex;
	flex-direction: column;
}

.som-buy-sheet__foot {
	margin-top: 0.25rem;
}

.som-sheet-details {
	margin: 0.35rem 0 0.85rem;
	padding-top: 0.85rem;
	border-top: 1px solid var(--som-border);
}

.som-sheet-details__title {
	margin: 0 0 0.45rem;
	font-family: var(--som-font-display);
	font-size: 0.95rem;
	font-weight: 700;
}

.som-sheet-details__block {
	font-size: var(--som-text-sm);
	color: var(--som-ink-muted);
	line-height: 1.5;
	margin-bottom: 0.55rem;
}

.som-sheet-details__block > *:first-child {
	margin-top: 0;
}

.som-sheet-details__item {
	border-bottom: 1px solid var(--som-border);
}

.som-sheet-details__item summary {
	cursor: pointer;
	min-height: 2.5rem;
	display: flex;
	align-items: center;
	font-weight: 600;
	font-size: var(--som-text-sm);
	list-style: none;
}

.som-sheet-details__item summary::-webkit-details-marker {
	display: none;
}

.som-sheet-details__body {
	padding: 0 0 0.75rem;
	font-size: var(--som-text-sm);
	color: var(--som-ink-muted);
}

.som-sheet-details__note {
	margin: 0.75rem 0 0;
	font-size: 0.8rem;
	color: var(--som-ink-muted);
}

@media (max-width: 53.99rem) {
	/*
	 * Sheet chrome sits below the sticky site header.
	 * .som-panel is position:relative;z-index:1 — a stacking context that loses to
	 * the body-level sticky bar (z-index:80). Elevate the panel while the sheet
	 * is open so the fixed sheet can paint above sticky (1.9.53).
	 */
	body.has-buy-sheet-open .som-panel,
	html.has-buy-sheet-open .som-panel {
		z-index: 110 !important;
		overflow: visible !important;
		transform: none !important;
		filter: none !important;
	}

	body.has-buy-sheet-open .som-header,
	html.has-buy-sheet-open .som-header {
		z-index: 130;
	}

	/*
	 * Mobile sheet: fixed overlay. When portaled to body (pdp.js pinSheetToBody)
	 * it sits above sticky (80). Keep in-form fallback elevated via .som-panel.
	 */
	.som-buy-sheet,
	body > .som-buy-sheet {
		position: fixed !important;
		top: calc(var(--som-header-bar-h, 3.75rem) + env(safe-area-inset-top, 0px));
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 200;
		margin: 0;
		display: flex;
		align-items: flex-end;
		justify-content: center;
		visibility: hidden;
		pointer-events: none;
		box-sizing: border-box;
		padding-top: 0.35rem;
	}

	.som-buy-sheet.is-open,
	body > .som-buy-sheet.is-open {
		visibility: visible !important;
		pointer-events: auto !important;
		z-index: 200 !important;
	}

	.som-buy-sheet__backdrop {
		display: block;
		position: absolute;
		inset: 0;
		border: 0;
		padding: 0;
		margin: 0;
		background: rgb(34 36 38 / 45%);
		opacity: 0;
		transition: opacity var(--som-motion) var(--som-ease);
		cursor: pointer;
	}

	.som-buy-sheet.is-open .som-buy-sheet__backdrop {
		opacity: 1;
	}

	.som-buy-sheet__panel {
		position: relative;
		z-index: 1;
		width: 100%;
		max-height: 100%;
		border-radius: 1.15rem 1.15rem 0 0;
		background: var(--som-card);
		box-shadow: 0 -12px 40px rgb(34 36 38 / 18%);
		transform: translateY(108%);
		transition: transform 360ms var(--som-ease);
		overflow: hidden;
		display: flex;
		flex-direction: column;
		min-height: 0;
	}

	.som-buy-sheet.is-open .som-buy-sheet__panel {
		transform: translateY(0);
	}

	.som-buy-sheet__grab {
		display: block;
		width: 2.75rem;
		height: 0.28rem;
		margin: 0.55rem auto 0.15rem;
		border-radius: 999px;
		background: var(--som-stone);
	}

	.som-buy-sheet__head {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"copy close"
			"price price";
		align-items: start;
		column-gap: 0.75rem;
		row-gap: 0.55rem;
		padding: 0.45rem 0.85rem 0.75rem 1rem;
		border-bottom: 1px solid var(--som-border);
		background: linear-gradient(180deg, var(--som-ivory) 0%, var(--som-card) 100%);
	}

	.som-buy-sheet__head-copy {
		grid-area: copy;
		min-width: 0;
	}

	.som-buy-sheet__title {
		margin: 0;
		font-family: var(--som-font-display);
		font-size: 1.2rem;
		font-weight: 700;
		letter-spacing: -0.02em;
		color: var(--som-charcoal);
	}

	.som-buy-sheet__sub {
		margin: 0.35rem 0 0;
		font-size: 0.78rem;
		font-weight: 600;
		letter-spacing: 0.01em;
		color: var(--som-copper-strong);
	}

	/* Selected Size+Color price — modern chip, animates in (1.9.69) */
	.som-sheet-price {
		grid-area: price;
		display: none;
		align-items: baseline;
		justify-content: space-between;
		gap: 0.75rem;
		margin: 0;
		padding: 0.65rem 0.85rem;
		border-radius: 12px;
		border: 1px solid color-mix(in srgb, var(--som-copper) 35%, var(--som-line));
		background:
			linear-gradient(
				135deg,
				color-mix(in srgb, var(--som-copper-soft) 80%, #fff) 0%,
				var(--som-card) 100%
			);
		box-shadow: 0 8px 20px color-mix(in srgb, var(--som-copper) 12%, transparent);
	}

	.som-sheet-price.is-visible,
	.som-sheet-price:not([hidden]) {
		display: flex;
	}

	.som-sheet-price[hidden] {
		display: none !important;
	}

	.som-sheet-price__label {
		font-family: var(--som-font-display);
		font-size: 0.68rem;
		font-weight: 700;
		letter-spacing: 0.12em;
		text-transform: uppercase;
		color: var(--som-ink-muted);
	}

	.som-sheet-price__value {
		font-family: var(--som-font-display);
		font-size: 1.35rem;
		font-weight: 700;
		letter-spacing: -0.02em;
		font-variant-numeric: tabular-nums;
		color: var(--som-copper-strong, var(--som-copper));
		line-height: 1;
	}

	.som-sheet-price__value .woocommerce-Price-amount,
	.som-sheet-price__value .amount {
		font-weight: 700;
		color: inherit;
	}

	.som-sheet-price.is-updated {
		animation: som-sheet-price-pop 0.85s var(--som-ease);
	}

	@keyframes som-sheet-price-pop {
		0% {
			opacity: 0;
			transform: translateY(0.45rem) scale(0.94);
			filter: saturate(0.75);
			box-shadow: 0 0 0 transparent;
		}
		40% {
			opacity: 1;
			transform: translateY(0) scale(1.03);
			filter: saturate(1.08);
			box-shadow:
				0 0 0 3px color-mix(in srgb, var(--som-copper) 28%, transparent),
				0 12px 28px color-mix(in srgb, var(--som-copper) 22%, transparent);
		}
		100% {
			opacity: 1;
			transform: translateY(0) scale(1);
			filter: none;
			box-shadow: 0 8px 20px color-mix(in srgb, var(--som-copper) 12%, transparent);
		}
	}

	@media (prefers-reduced-motion: reduce) {
		.som-sheet-price.is-updated {
			animation: none;
			outline: 2px solid color-mix(in srgb, var(--som-copper) 45%, transparent);
			outline-offset: 2px;
		}
	}

	.som-buy-sheet__close {
		grid-area: close;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 2.75rem;
		height: 2.75rem;
		min-width: 2.75rem;
		min-height: 2.75rem;
		border: 1px solid var(--som-line-strong);
		border-radius: 999px;
		background: var(--som-card);
		color: var(--som-charcoal);
		font-size: 1.55rem;
		line-height: 1;
		cursor: pointer;
		flex: 0 0 auto;
		box-shadow: var(--som-shadow-sm);
		transition: background 0.15s var(--som-ease), border-color 0.15s var(--som-ease);
	}

	.som-buy-sheet__close:hover,
	.som-buy-sheet__close:focus-visible {
		background: var(--som-warm);
		border-color: var(--som-copper);
		outline: none;
	}

	.som-buy-sheet__close-icon {
		display: block;
		margin-top: -0.05rem;
	}

	.som-buy-sheet__scroll {
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 0.95rem 1rem 1.15rem;
		overscroll-behavior: contain;
		scroll-padding-top: 0.5rem;
		flex: 1 1 auto;
		min-height: 0;
	}

	.som-buy-sheet__head {
		flex: 0 0 auto;
		position: relative;
		z-index: 2;
	}

	.som-buy-sheet__foot {
		flex: 0 0 auto;
	}

	/* Guided sheet: Size → Color → Custom text — flat, no nested cards */
	.som-attrs--sheet {
		display: flex;
		flex-direction: column;
		gap: 0;
		counter-reset: som-sheet-step;
	}

	.som-attrs--sheet .som-attr {
		counter-increment: som-sheet-step;
		margin: 0;
		padding: 0 0 1.15rem;
		border: 0;
		border-bottom: 1px solid color-mix(in srgb, var(--som-line) 90%, transparent);
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.som-attrs--sheet .som-attr + .som-attr {
		padding-top: 1.1rem;
		border-top: 0;
	}

	.som-attrs--sheet .som-attr:last-of-type {
		border-bottom: 0;
		padding-bottom: 0;
	}

	.som-attrs--sheet .som-attr__legend {
		display: flex;
		align-items: center;
		gap: 0.5rem;
		margin-bottom: 0.75rem;
		font-family: var(--som-font-display);
		font-size: 0.7rem;
		font-weight: 700;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		color: var(--som-ink-muted);
	}

	.som-attrs--sheet .som-attr__legend::before {
		content: counter(som-sheet-step);
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 1.4rem;
		height: 1.4rem;
		border-radius: 999px;
		background: linear-gradient(155deg, #32363a 0%, var(--som-charcoal) 100%);
		color: var(--som-on-accent);
		font-family: var(--som-font-body);
		font-size: 0.68rem;
		font-weight: 700;
		letter-spacing: 0;
		text-transform: none;
		flex: 0 0 auto;
		box-shadow: 0 0 0 1px color-mix(in srgb, var(--som-copper) 45%, transparent);
	}

	.som-attrs--sheet .som-attr__picked {
		color: var(--som-copper-strong, var(--som-copper));
	}

	.som-buy-sheet .som-personalize {
		margin: 0.85rem 0 0;
		counter-increment: som-sheet-step;
	}

	.som-buy-sheet .som-personalize__head {
		align-items: center;
	}

	.som-buy-sheet .som-personalize__label::before {
		content: "3";
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 1.45rem;
		height: 1.45rem;
		margin-right: 0.45rem;
		border-radius: 999px;
		background: linear-gradient(155deg, #32363a 0%, var(--som-charcoal) 100%);
		color: var(--som-on-accent);
		font-size: 0.72rem;
		font-weight: 700;
		vertical-align: middle;
		box-shadow: 0 0 0 1px color-mix(in srgb, var(--som-copper) 45%, transparent);
	}

	.som-buy-sheet .som-personalize__input {
		min-height: 5.5rem;
	}

	.som-attr__options--pills-pro {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0.5rem;
	}

	.som-opt--pro.som-opt--pill {
		min-height: 2.85rem;
		min-width: 0;
		width: 100%;
		padding: 0.5rem 0.35rem;
		border-radius: 999px;
		font-size: 0.98rem;
	}

	.som-opt--pro.som-opt--pill[aria-pressed="true"] {
		box-shadow:
			inset 0 1px 0 rgb(255 255 255 / 10%),
			0 0 0 1px color-mix(in srgb, var(--som-copper) 48%, transparent),
			0 10px 20px rgb(34 36 38 / 16%);
	}

	/* Sheet colors match page discs */
	.som-attr__options--swatches-pro {
		display: flex;
		flex-wrap: wrap;
		gap: 0.65rem;
	}

	.som-opt--pro.som-opt--swatch {
		width: 3.05rem;
		height: 3.05rem;
		min-width: 3.05rem;
		min-height: 3.05rem;
		padding: 0.28rem;
		border-radius: 999px;
	}

	.som-opt--pro.som-opt--swatch .som-opt__swatch {
		width: 100%;
		height: 100%;
		border-radius: 999px;
		flex: 0 0 auto;
	}

	.som-opt--pro.som-opt--swatch .som-opt__name {
		display: none !important;
	}

	.som-buy-sheet .som-attr__color-note,
	.som-attrs--sheet .som-attr__color-note {
		margin: 0.65rem 0 0;
		padding: 0;
		font-size: 0.75rem;
		line-height: 1.4;
		color: var(--som-ink-2, #5c6166);
		max-width: 36ch;
	}

	.som-buy-sheet__foot {
		margin: 0;
		padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
		border-top: 1px solid var(--som-border);
		background: color-mix(in srgb, var(--som-ivory) 88%, var(--som-card));
	}

	/*
	 * Mobile: one ATC only — the sticky bar (morphs after size/color/custom text).
	 * Sheet foot shows Continue (closes sheet); hide the form Add to cart to stop double-adds.
	 */
	.som-buy-sheet__foot .som-atc--sheet,
	.som-buy-sheet__foot .som-atc--desktop {
		display: none !important;
	}

	.som-buy-sheet__done {
		display: flex !important;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 3.15rem;
		margin: 0;
		border-radius: 12px;
		font-weight: 700;
		letter-spacing: 0.015em;
		background: var(--som-charcoal);
		color: var(--som-on-accent, #fff);
		box-shadow: 0 10px 22px rgb(34 36 38 / 12%);
	}

	.som-buy-sheet__done:disabled {
		opacity: 0.45;
		cursor: not-allowed;
		box-shadow: none;
	}

	/* Done/Continue stays charcoal — must not look like Add to cart (copper). */
	.som-buy-sheet__done.is-done {
		background: var(--som-charcoal);
		box-shadow: 0 10px 22px rgb(34 36 38 / 12%);
	}

	.som-buy-sheet__done:hover:not(:disabled),
	.som-buy-sheet__done:focus-visible:not(:disabled),
	.som-buy-sheet__done.is-done:hover:not(:disabled),
	.som-buy-sheet__done.is-done:focus-visible:not(:disabled) {
		background: color-mix(in srgb, var(--som-charcoal) 88%, var(--som-copper));
	}

	body.has-buy-sheet-open {
		overflow: hidden;
	}

	/*
	 * Single sticky CTA — viewport-fixed (1.9.32).
	 * Root cause of 1.9.31 breakage: width:100vw on body.som-site (flex column)
	 * overflowed horizontally (scrollbar/100vw gutter) and could read as an
	 * endless bar sitting after the footer in document flow.
	 * Fix: left/right/bottom + width:auto (no 100vw); z-index above footer.
	 */
	/*
	 * Clip horizontal overflow on main only — never on html/body.
	 * overflow-x:clip on html/body forces overflow-y:auto and creates a sticky
	 * containing block, so the top menu bar size/position diverged from home (1.9.58).
	 */
	body.single-product .som-main,
	html.som-has-sticky-cta .som-main {
		overflow-x: clip;
	}

	body.single-product.som-has-sticky-cta,
	body.single-product {
		/* Clearance so content/footer can scroll above the fixed bar (+ trust line) */
		padding-bottom: calc(6.35rem + env(safe-area-inset-bottom, 0px));
	}

	body.single-product.som-has-sticky-cta:has([data-som-sticky-summary]:not([hidden])) {
		padding-bottom: calc(9.85rem + env(safe-area-inset-bottom, 0px));
	}

	body.single-product > .som-sticky-bar,
	body.single-product > .som-sticky-personalize,
	body.single-product .som-sticky-bar,
	body.single-product .som-sticky-personalize,
	.som-sticky-bar,
	.som-sticky-personalize {
		display: flex !important;
		flex-direction: column;
		position: fixed !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		top: auto !important;
		inset-inline: 0;
		inset-block-end: 0;
		z-index: 80; /* footer/header < sticky < sheet(90+) < mini-cart(120) */
		gap: 0.45rem;
		align-items: stretch;
		justify-content: center;
		flex: none !important;
		flex-grow: 0 !important;
		flex-shrink: 0 !important;
		align-self: auto !important;
		padding: 0.55rem max(1rem, env(safe-area-inset-left, 0px)) calc(0.55rem + env(safe-area-inset-bottom, 0px)) max(1rem, env(safe-area-inset-right, 0px));
		background: color-mix(in srgb, var(--som-ivory) 96%, transparent);
		backdrop-filter: blur(10px);
		-webkit-backdrop-filter: blur(10px);
		border-top: 1px solid var(--som-line);
		box-shadow: 0 -6px 20px rgb(34 36 38 / 8%);
		box-sizing: border-box;
		/* Stretch via left/right only — never 100vw (horizontal overflow). */
		width: auto !important;
		max-width: none !important;
		min-width: 0 !important;
		margin: 0 !important;
		transform: none !important;
		filter: none;
		contain: layout;
	}

	body.has-buy-sheet-open .som-sticky-bar,
	body.has-buy-sheet-open .som-sticky-personalize {
		visibility: hidden;
		pointer-events: none;
	}

	/* After Continue closes the sheet, ignore ghost clicks on sticky ATC (~850ms). */
	body.som-atc-settle .som-sticky-bar,
	body.som-atc-settle .som-sticky-personalize,
	body.som-atc-settle .som-sticky-bar [data-som-sticky-cta],
	body.som-atc-settle .som-sticky-personalize [data-som-sticky-cta] {
		pointer-events: none !important;
	}

	.som-sticky-bar__summary {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 0.35rem;
		width: 100%;
		margin: 0;
		padding: 0.55rem 0.7rem;
		border: 1px solid color-mix(in srgb, var(--som-copper) 22%, var(--som-line));
		border-radius: 10px;
		background: color-mix(in srgb, var(--som-card, #fff) 88%, var(--som-ivory));
		box-shadow: none;
		text-align: left;
		cursor: pointer;
		color: var(--som-ink);
		font: inherit;
		appearance: none;
		-webkit-appearance: none;
	}

	.som-sticky-bar__summary[hidden] {
		display: none !important;
	}

	.som-sticky-bar__summary:hover,
	.som-sticky-bar__summary:focus-visible {
		border-color: color-mix(in srgb, var(--som-copper) 45%, var(--som-line));
		outline: none;
	}

	.som-sticky-bar__summary-meta {
		display: flex;
		flex-wrap: wrap;
		gap: 0.35rem;
		min-width: 0;
	}

	.som-sticky-bar__summary-chip {
		display: inline-flex;
		align-items: center;
		max-width: 100%;
		padding: 0.15rem 0.5rem;
		border-radius: 999px;
		background: color-mix(in srgb, var(--som-charcoal) 8%, transparent);
		color: var(--som-charcoal);
		font-size: 0.72rem;
		font-weight: 700;
		letter-spacing: 0.02em;
		line-height: 1.25;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}

	.som-sticky-bar__summary-chip[hidden] {
		display: none !important;
	}

	.som-sticky-bar__summary-text-row {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr) auto;
		align-items: baseline;
		gap: 0.4rem 0.55rem;
		min-width: 0;
	}

	.som-sticky-bar__summary-text-label {
		font-size: 0.68rem;
		font-weight: 700;
		letter-spacing: 0.04em;
		text-transform: uppercase;
		color: var(--som-ink-muted, #5c6166);
		white-space: nowrap;
	}

	.som-sticky-bar__summary-text {
		min-width: 0;
		font-size: 0.92rem;
		font-weight: 650;
		line-height: 1.3;
		color: var(--som-ink);
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.som-sticky-bar__summary-text.is-empty {
		font-weight: 500;
		color: var(--som-ink-muted, #5c6166);
		font-style: italic;
	}

	.som-sticky-bar__summary-edit {
		font-size: 0.78rem;
		font-weight: 700;
		color: var(--som-copper);
		white-space: nowrap;
	}

	.som-sticky-bar__price,
	.som-sticky-personalize__price,
	.som-sticky-bar__hint,
	.som-sticky-personalize__hint {
		display: none !important;
	}

	.som-sticky-bar__row {
		display: flex;
		align-items: stretch;
		gap: 0.45rem;
		width: 100%;
	}

	.som-sticky-bar__qty {
		flex: 0 0 auto;
		display: flex;
		align-items: stretch;
	}

	.som-sticky-bar__qty[hidden] {
		display: none !important;
	}

	.som-sticky-bar__qty-input {
		width: 3.1rem;
		min-height: 3rem;
		padding: 0.3rem 0.2rem;
		border: 1px solid var(--som-border);
		border-radius: var(--som-radius);
		background: var(--som-bg-elevated);
		font: 700 0.95rem / 1 var(--som-font-body);
		text-align: center;
		color: var(--som-ink);
		box-sizing: border-box;
	}

	body.single-product .som-sticky-bar__btn,
	body.single-product .som-sticky-personalize__btn,
	body.single-product .som-sticky-bar [data-som-sticky-cta],
	.som-sticky-bar__btn,
	.som-sticky-personalize__btn,
	.som-sticky-bar [data-som-sticky-cta] {
		display: flex !important;
		align-items: center;
		justify-content: center;
		gap: 0.65rem;
		align-self: stretch;
		width: auto !important;
		max-width: none !important;
		min-width: 0;
		flex: 1 1 auto;
		margin: 0 !important;
		min-height: 48px;
		height: 48px;
		padding: 0 1rem;
		box-sizing: border-box;
		white-space: nowrap;
		border-radius: 10px;
		font-weight: 700;
		letter-spacing: -0.01em;
	}

	.som-sticky-bar__cta-label {
		font-weight: 700;
	}

	.som-sticky-bar__btn.is-ready .som-sticky-bar__cta-price {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 1.55rem;
		padding: 0.15rem 0.55rem;
		border-radius: 999px;
		background: color-mix(in srgb, #fff 22%, transparent);
		border: 1px solid color-mix(in srgb, #fff 35%, transparent);
		color: #fff;
		font-size: 0.92rem;
		font-weight: 800;
		font-variant-numeric: tabular-nums;
		letter-spacing: -0.01em;
		box-shadow: 0 0 0 1px color-mix(in srgb, var(--som-copper) 35%, transparent);
	}

	.som-sticky-bar__btn.is-ready {
		background: linear-gradient(
			135deg,
			var(--som-copper) 0%,
			var(--som-copper-strong, #b56a2a) 100%
		);
		border-color: transparent;
		box-shadow: 0 8px 18px color-mix(in srgb, var(--som-copper) 32%, transparent);
	}

	/* Sheet: Size / Color / Custom Text only — never bury page details under closed sheet */
	.som-buy-sheet .som-sheet-details,
	.som-buy-sheet [data-som-sheet-details],
	.som-buy-sheet .som-page-details,
	.som-buy-sheet [data-som-page-details] {
		display: none !important;
	}
}

@media (min-width: 54rem) {
	/* —— Desktop redesign 1.9.15: gallery | purchase + accordion —— */
	.som-buy-sheet {
		position: static !important;
		inset: auto !important;
		visibility: visible !important;
		pointer-events: auto !important;
		z-index: auto !important;
		display: block !important;
		margin-top: 0.35rem;
	}

	/* Qty left + Add to cart fills the rest of the row */
	.som-atc--desktop,
	.som-buy-sheet__foot .som-atc--desktop,
	.som-buy-sheet__foot .som-atc--sheet {
		display: flex !important;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: stretch;
		gap: 0.55rem;
		width: 100%;
	}

	.som-atc--desktop .som-atc__qty,
	.som-buy-sheet__foot .som-atc--desktop .som-atc__qty {
		flex: 0 0 auto;
		order: 0;
	}

	.som-atc--desktop .som-atc__btn,
	.som-buy-sheet__foot .som-atc--desktop .single_add_to_cart_button,
	.som-buy-sheet__foot .som-atc--desktop .som-atc__btn {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		flex: 1 1 auto;
		width: 100%;
		min-width: 0;
		min-height: 3rem;
		order: 1;
	}

	.som-buy-sheet__backdrop,
	.som-buy-sheet__grab,
	.som-buy-sheet__head,
	.som-buy-sheet__close {
		display: none !important;
	}

	.som-buy-sheet__panel {
		max-height: none;
		transform: none !important;
		background: transparent;
		box-shadow: none;
		border-radius: 0;
		overflow: visible;
	}

	.som-buy-sheet__scroll {
		overflow: visible;
		padding: 0;
		margin-top: 0;
	}

	.som-buy-sheet__foot {
		padding: 0;
		border: 0;
		background: transparent;
		margin-top: 0;
	}

	.som-sticky-bar,
	.som-sticky-personalize {
		display: none !important;
	}

	.som-buy-sheet__done {
		display: none !important;
	}

	.som-buy-sheet__foot .som-atc-trust {
		width: 100%;
	}

	.som-page-details {
		display: none !important;
	}

	.som-accordion {
		display: block;
		width: 100%;
	}

	.som-attrs--sheet,
	[data-som-sheet-attrs] {
		display: none !important;
	}

	/* Desktop: vertical filmstrip + square stage.
	 * Stage height comes ONLY from the viewport aspect-ratio — filmstrip must
	 * not stretch the row taller (that made the main image portrait). */
	.som-gallery {
		align-self: start;
		position: sticky;
		top: calc(var(--som-header-bar-h, 3.75rem) + 1.25rem);
		z-index: 1;
	}

	.som-gallery__stage {
		display: grid;
		grid-template-columns: var(--som-gallery-rail) minmax(0, 1fr);
		grid-template-areas: "thumbs stage";
		gap: var(--som-gallery-gap);
		align-items: start;
	}

	.som-gallery__viewport {
		grid-area: stage;
		border-radius: 16px;
		width: 100%;
		height: auto;
		min-height: 0;
		aspect-ratio: 1 / 1;
		border: 1px solid var(--som-line);
		background: var(--som-warm, #f3efe8);
		box-shadow: var(--som-shadow-sm);
	}

	.som-gallery__slide {
		padding: 0;
	}

	.som-gallery__image,
	.som-gallery__slide > img {
		width: 100%;
		height: 100%;
		max-width: none;
		max-height: none;
		object-fit: cover;
		object-position: center;
	}

	.som-gallery__counter {
		left: 1rem;
		bottom: 1rem;
	}

	.som-gallery__zoom {
		right: 1rem;
		bottom: 1rem;
	}

	/* Match filmstrip height to the square stage (grid row sized by viewport). */
	.som-gallery__thumbs-wrap {
		grid-area: thumbs;
		grid-row: 1;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: 0.35rem;
		width: auto;
		/* height:0 + min-height:100% → take viewport row height only; don't grow the grid */
		height: 0;
		min-height: 100%;
		max-height: 100%;
		overflow: hidden;
		padding: 0;
		margin: 0;
		align-self: stretch;
	}

	.som-gallery__thumbs-wrap--scroll {
		grid-template-columns: none;
		display: flex;
	}

	.som-gallery__thumbs {
		flex: 1 1 auto;
		flex-direction: column;
		overflow-x: hidden;
		overflow-y: auto;
		min-height: 0;
		height: auto;
		max-height: none;
		padding: 0.1rem;
		scroll-snap-type: y mandatory;
		overscroll-behavior-y: contain;
		overscroll-behavior-x: none;
		scrollbar-width: thin;
	}

	.som-gallery__thumb {
		flex: 0 0 auto;
		width: 100%;
		aspect-ratio: 1 / 1;
	}

	.som-gallery__thumb-frame {
		border-radius: 11px;
	}

	.som-gallery__thumbs-nav {
		flex: 0 0 auto;
		width: 100%;
		height: 1.6rem;
		min-height: 1.6rem;
		border-radius: 8px;
		border: 1px solid var(--som-line);
		background: color-mix(in srgb, #fff 88%, var(--som-warm, #f3efe8));
		color: var(--som-charcoal);
		display: grid;
		place-items: center;
		padding: 0;
		cursor: pointer;
	}

	.som-gallery__thumbs-nav:hover,
	.som-gallery__thumbs-nav:focus-visible {
		border-color: color-mix(in srgb, var(--som-copper) 45%, var(--som-line));
		outline: none;
	}

	.som-gallery__thumbs-nav--prev svg,
	.som-gallery__thumbs-nav--next svg {
		transform: rotate(90deg);
	}

	.som-gallery__dots {
		display: none;
	}

	/* Buy column — sticky, flat (no card shell) */
	.som-panel,
	.som-panel--buy,
	.som-panel--card {
		display: flex;
		flex-direction: column;
		gap: 0;
		position: sticky;
		top: calc(var(--som-header-bar-h, 3.75rem) + 1.25rem);
		align-self: start;
		z-index: 2;
		padding: 0.15rem 0 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		overflow: visible;
	}

	.som-pdp__title-card {
		margin: 0 0 1.05rem;
		padding: 0 0 1.05rem;
		border: 0;
		border-bottom: 1px solid var(--som-line);
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		overflow: visible;
	}

	.som-pdp__title-card .som-panel__title,
	.som-panel__title {
		display: block;
		width: 100%;
		max-width: none;
		font-size: clamp(1.28rem, 1.55vw, 1.65rem);
		font-weight: 700;
		line-height: 1.28;
		letter-spacing: -0.025em;
		margin: 0 0 0.45rem;
		padding: 0;
		color: var(--som-charcoal);
		overflow: visible;
		overflow-wrap: anywhere;
		word-break: break-word;
		white-space: normal;
		text-overflow: unset;
		max-height: none;
		-webkit-line-clamp: unset;
		line-clamp: unset;
	}

	.som-pdp__title-card .som-panel__price,
	.som-panel__price {
		font-size: 1.6rem;
		font-weight: 700;
		letter-spacing: -0.02em;
		margin: 0;
		color: var(--som-charcoal);
		font-variant-numeric: tabular-nums;
	}

	.som-pdp__title-card .som-panel__meta,
	.som-panel__meta {
		display: flex;
		margin-top: 0.5rem;
	}

	.som-flow {
		margin: 0;
		padding: 0 0 1rem;
		border-bottom: 1px solid var(--som-border);
	}

	.som-options-box {
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
	}

	.som-options-box .som-attrs {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.som-options-box .som-attr {
		padding: 0 0 1.2rem;
	}

	.som-options-box .som-attr + .som-attr {
		padding-top: 1.1rem;
	}

	.som-options-box .som-attr:last-of-type {
		padding-bottom: 0;
	}

	.som-options-box .som-opt--pill {
		min-height: 2.65rem;
		min-width: 3.35rem;
		padding: 0.48rem 1.05rem;
		font-size: 0.96rem;
	}

	.som-options-box .som-opt--swatch {
		width: 3.05rem;
		height: 3.05rem;
		min-width: 3.05rem;
		min-height: 3.05rem;
		padding: 0.28rem;
	}

	.som-options-box .som-attr__legend {
		display: flex;
		align-items: baseline;
		gap: 0.45rem;
		margin-bottom: 0.75rem;
		color: var(--som-ink-muted);
	}

	.som-options-box .som-attr__picked {
		font-weight: 700;
		color: var(--som-copper-strong, var(--som-copper));
	}

	.som-options-box .som-attr__picked:not([hidden])::before {
		content: "";
		display: inline-block;
		width: 0.32rem;
		height: 0.32rem;
		margin: 0 0.4rem 0 0.1rem;
		border-radius: 999px;
		background: var(--som-copper);
		box-shadow: 0 0 0 3px color-mix(in srgb, var(--som-copper) 18%, transparent);
		vertical-align: 0.16em;
	}

	.som-options-box__qty {
		margin-top: 1.1rem;
		padding-top: 1rem;
		border-top: 1px solid var(--som-border);
	}

	.som-options-box__qty-label {
		font-size: 0.9rem;
	}

	.som-options-box__qty .quantity .qty {
		min-height: 2.5rem;
		width: 3.75rem;
		border-radius: 10px;
		font-size: 1rem;
	}

	.som-buy-sheet {
		margin-top: 1.2rem;
		padding-top: 1.2rem;
		border-top: 1px solid var(--som-border);
	}

	.som-personalize {
		margin: 0 0 1rem;
		padding: 1rem 1.05rem 1.05rem;
		border-radius: 12px;
		border-color: color-mix(in srgb, var(--som-copper) 22%, var(--som-border));
		background: color-mix(in srgb, var(--som-ivory) 70%, var(--som-card));
		box-shadow: none;
	}

	.som-personalize__label {
		font-size: 0.95rem;
	}

	.som-personalize__input {
		min-height: 5.25rem;
		border-radius: 10px;
		background: #fff;
	}

	.som-atc--sheet {
		margin: 0;
	}

	.som-atc--sheet .som-atc__btn,
	.som-atc .som-atc__btn {
		min-height: 3.15rem;
		width: 100%;
		font-weight: 700;
		letter-spacing: 0.015em;
		border-radius: 12px;
		background: var(--som-charcoal);
		box-shadow: 0 10px 22px rgb(34 36 38 / 12%);
	}

	.som-atc--sheet .som-atc__btn:hover:not(:disabled),
	.som-atc .som-atc__btn:hover:not(:disabled) {
		background: color-mix(in srgb, var(--som-charcoal) 88%, var(--som-copper));
	}

	.som-panel > .som-custom-work,
	.som-panel > .som-pdp-trust {
		margin-top: 1.35rem;
		padding-top: 0.25rem;
	}

	.som-pdp-trust__rows {
		border-top: 1px solid var(--som-border);
	}

	.som-pdp-trust__row {
		padding: 0.95rem 0.05rem;
	}

	.som-pdp-trust__title {
		font-size: 0.94rem;
	}

	.som-panel__ship--desktop {
		display: none !important;
	}

	/* Accordion under both columns */
	.som-accordion {
		margin-top: 2.75rem;
		max-width: none;
		padding-top: 0.35rem;
		border-top: 1px solid var(--som-border);
	}

	.som-accordion__section-title {
		margin: 0 0 0.85rem;
		font-family: var(--som-font-display);
		font-size: 1.05rem;
		font-weight: 700;
		letter-spacing: -0.015em;
		color: var(--som-charcoal);
	}

	.som-accordion__item {
		border-bottom-color: color-mix(in srgb, var(--som-border) 85%, var(--som-line));
	}

	.som-accordion__summary {
		min-height: 3.15rem;
		padding: 0.95rem 0.15rem;
	}

	.som-accordion__heading {
		font-family: var(--som-font-display);
		font-size: 1rem;
		font-weight: 600;
		color: var(--som-charcoal);
	}

	.som-accordion__body {
		padding: 0 0.15rem 1.15rem;
	}

	.som-accordion__prose {
		font-size: 0.98rem;
		line-height: 1.6;
		color: var(--som-ink-2);
		max-width: 52rem;
	}

	.som-accordion__prose h2,
	.som-accordion__prose h3,
	.som-accordion__prose h4 {
		font-family: var(--som-font-display);
		color: var(--som-charcoal);
		margin: 1rem 0 0.4rem;
		overflow-wrap: anywhere;
		word-break: break-word;
		white-space: normal;
	}

	.som-accordion__prose h1 {
		/* Never promote product description to H1 */
		font-size: 1.05rem;
		font-weight: 700;
		margin: 1rem 0 0.4rem;
		overflow-wrap: anywhere;
		word-break: break-word;
		white-space: normal;
	}
}

@media (prefers-reduced-motion: reduce) {
	.som-buy-sheet__backdrop,
	.som-buy-sheet__panel {
		transition: none !important;
	}
}

/* Accordion */
.som-accordion {
	margin-top: 2.5rem;
	max-width: 48rem;
	border-top: 1px solid var(--som-border);
}

.som-accordion__section-title {
	margin: 0 0 0.65rem;
	font-family: var(--som-font-display);
	font-size: 1rem;
	font-weight: 700;
	color: var(--som-charcoal);
}

.som-accordion__heading {
	font: inherit;
}

.som-accordion__item {
	border-bottom: 1px solid var(--som-border);
}

.som-accordion__summary {
	min-height: 44px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	font-family: var(--som-font-display);
	font-weight: 600;
	cursor: pointer;
	list-style: none;
	padding: 0.75rem 0;
}

.som-accordion__summary::-webkit-details-marker {
	display: none;
}

.som-accordion__summary::after {
	content: "";
	width: 0.55rem;
	height: 0.55rem;
	border-right: 2px solid var(--som-ink);
	border-bottom: 2px solid var(--som-ink);
	transform: rotate(45deg);
	transition: transform 200ms ease;
	flex: 0 0 auto;
}

.som-accordion__item[open] > .som-accordion__summary::after {
	transform: rotate(225deg);
}

@media (prefers-reduced-motion: reduce) {
	.som-accordion__summary::after {
		transition: none;
	}
}

.som-accordion__body {
	padding: 0 0 1rem;
	color: var(--som-ink-muted);
	font-size: var(--som-text-sm);
	line-height: 1.55;
}

.som-accordion__prose > *:first-child {
	margin-top: 0;
}

.som-specs {
	width: 100%;
	border-collapse: collapse;
}

.som-specs th,
.som-specs td {
	text-align: left;
	padding: 0.4rem 0.5rem 0.4rem 0;
	border-bottom: 1px solid var(--som-border);
	vertical-align: top;
}

.som-specs th {
	width: 35%;
	color: var(--som-ink);
	font-weight: 600;
}

/* Hide default WC chrome we replace */
.som-pdp .woocommerce-product-gallery,
.som-panel .onsale {
	display: none;
}

/* —— Trust / delivery under options (Temu rows + slides, brand colors) —— */
.som-panel > .som-custom-work,
.som-panel > .som-pdp-trust {
	margin: 0.85rem 0 0;
}

.som-custom-work,
.som-pdp-trust {
	margin: 1rem 0 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.som-pdp-trust__rows {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--som-border);
}

.som-pdp-trust__row {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	width: 100%;
	margin: 0;
	padding: 0.85rem 0.1rem;
	border: 0;
	border-bottom: 1px solid var(--som-border);
	background: transparent;
	color: inherit;
	text-align: left;
	font: inherit;
	box-sizing: border-box;
}

.som-pdp-trust__row--action {
	cursor: pointer;
	align-items: center;
	-webkit-tap-highlight-color: transparent;
}

.som-pdp-trust__row--action:hover .som-pdp-trust__title,
.som-pdp-trust__row--action:focus-visible .som-pdp-trust__title {
	color: var(--som-copper-strong);
}

.som-pdp-trust__row--action:focus-visible {
	outline: 2px solid color-mix(in srgb, var(--som-copper) 55%, transparent);
	outline-offset: 2px;
}

.som-pdp-trust__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.15rem;
	height: 2.15rem;
	margin-top: 0.05rem;
	border-radius: 999px;
	background: var(--som-copper-soft);
	color: var(--som-copper-strong);
}

.som-pdp-trust__row--action .som-pdp-trust__icon {
	margin-top: 0;
}

.som-pdp-trust__copy {
	min-width: 0;
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	gap: 0.18rem;
}

.som-pdp-trust__title {
	margin: 0;
	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--som-charcoal);
}

.som-pdp-trust__sub {
	margin: 0;
	font-size: 0.8rem;
	line-height: 1.35;
	color: var(--som-ink-2);
}

.som-pdp-trust__sub--expedited {
	color: var(--som-copper-strong);
	font-weight: 600;
}

.som-pdp-trust__sub-key {
	font-weight: 700;
	margin-right: 0.3rem;
}

.som-pdp-trust__sub-key::after {
	content: ":";
}

.som-pdp-trust__note {
	margin: 0.2rem 0 0;
	font-size: 0.7rem;
	line-height: 1.35;
	color: var(--som-ink-muted);
}

.som-pdp-trust__meta {
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--som-ink-muted);
}

.som-pdp-trust__chevron {
	flex: 0 0 auto;
	color: var(--som-ink-muted);
	margin-left: 0.25rem;
}

.som-panel > .som-page-details {
	margin-top: 1rem;
	padding-top: 0.85rem;
	border-top: 1px solid var(--som-border);
}

/* Trust detail slides — enter from right (right→left); portal to body above header */
.som-trust-slide {
	position: fixed;
	inset: 0;
	z-index: 120;
	pointer-events: none;
	visibility: hidden;
}

.som-trust-slide.is-open {
	pointer-events: auto;
	visibility: visible;
}

.som-trust-slide__backdrop {
	position: absolute;
	inset: 0;
	border: 0;
	padding: 0;
	margin: 0;
	background: rgb(34 36 38 / 35%);
	opacity: 0;
	transition: opacity 0.28s var(--som-ease);
	cursor: pointer;
}

.som-trust-slide.is-open .som-trust-slide__backdrop {
	opacity: 1;
}

.som-trust-slide__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(100%, 26rem);
	display: flex;
	flex-direction: column;
	background: var(--som-ivory, #f7f3eb);
	box-shadow: -8px 0 28px rgb(34 36 38 / 12%);
	transform: translateX(100%);
	transition: transform 0.3s var(--som-ease);
	will-change: transform;
}

.som-trust-slide.is-open .som-trust-slide__panel {
	transform: translateX(0);
}

.som-trust-slide__head {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	flex: 0 0 auto;
	padding: 0.85rem 1rem;
	border-bottom: 1px solid var(--som-border);
	background: color-mix(in srgb, var(--som-ivory) 92%, #fff);
}

.som-trust-slide__back {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.35rem;
	height: 2.35rem;
	margin: 0;
	padding: 0;
	border: 1px solid var(--som-line-strong);
	border-radius: 999px;
	background: var(--som-card, #fff);
	color: var(--som-charcoal);
	cursor: pointer;
}

.som-trust-slide__back:hover,
.som-trust-slide__back:focus-visible {
	border-color: var(--som-copper);
	color: var(--som-copper-strong);
}

.som-trust-slide__title {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--som-charcoal);
}

.som-trust-slide__body {
	flex: 1 1 auto;
	overflow: auto;
	padding: 1.1rem 1.15rem 2rem;
	-webkit-overflow-scrolling: touch;
}

.som-trust-slide__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.85rem;
}

.som-trust-slide__list li {
	position: relative;
	padding-left: 1.1rem;
	font-size: 0.92rem;
	line-height: 1.45;
	color: var(--som-ink-2);
}

.som-trust-slide__list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55rem;
	width: 0.45rem;
	height: 0.45rem;
	border-radius: 999px;
	background: var(--som-copper);
}

body.has-trust-slide-open {
	overflow: hidden;
}

body.has-trust-slide-open .som-sticky-bar,
body.has-trust-slide-open .som-sticky-personalize,
body.has-trust-slide-open .som-header {
	visibility: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.som-trust-slide__backdrop,
	.som-trust-slide__panel {
		transition: none;
	}
}

.som-buy-sheet__done {
	display: none;
}

.som-atc--sheet .som-atc__btn {
	flex: 1 1 auto;
	width: 100%;
}

/* Desktop options/trust spacing lives in the main min-width:54rem purchase block above. */

.som-custom-work-modal {
	padding: 0;
	border: 0;
	border-radius: 1.1rem;
	width: min(calc(100vw - 1.5rem), 32rem);
	max-height: min(90vh, 40rem);
	background: transparent;
	box-shadow: none;
}

.som-custom-work-modal::backdrop {
	background: rgb(34 36 38 / 48%);
	backdrop-filter: blur(3px);
}

.som-custom-work-modal__panel {
	display: flex;
	flex-direction: column;
	max-height: min(90vh, 40rem);
	overflow: hidden;
	border-radius: 1.1rem;
	background: var(--som-card);
	border: 1px solid var(--som-line);
	box-shadow: 0 18px 48px rgb(34 36 38 / 22%);
}

.som-custom-work-modal__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 1rem 1rem 0.85rem;
	border-bottom: 1px solid var(--som-border);
	background: linear-gradient(180deg, var(--som-ivory) 0%, var(--som-card) 100%);
}

.som-custom-work-modal__title {
	margin: 0;
	font-family: var(--som-font-display);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--som-charcoal);
}

.som-custom-work-modal__sub {
	margin: 0.3rem 0 0;
	font-size: 0.8rem;
	color: var(--som-copper-strong);
	font-weight: 600;
}

.som-custom-work-modal__close {
	flex: 0 0 auto;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 999px;
	border: 1px solid var(--som-line-strong);
	background: var(--som-card);
	color: var(--som-charcoal);
	font-size: 1.45rem;
	line-height: 1;
	cursor: pointer;
}

.som-custom-work-modal__close:hover,
.som-custom-work-modal__close:focus-visible {
	background: var(--som-warm);
	border-color: var(--som-copper);
	outline: none;
}

.som-custom-work-modal__body {
	overflow: auto;
	padding: 1rem 1rem 1.25rem;
	-webkit-overflow-scrolling: touch;
}

.som-custom-work-modal__placeholder {
	margin: 0;
	padding: 0.85rem 0.95rem;
	border-radius: 0.75rem;
	background: var(--som-ivory);
	border: 1px dashed color-mix(in srgb, var(--som-copper) 35%, var(--som-line));
	color: var(--som-ink-2);
	font-size: 0.9rem;
	line-height: 1.45;
}

.som-custom-work-modal__placeholder p {
	margin: 0 0 0.65rem;
}

.som-custom-work-modal__placeholder p:last-child {
	margin-bottom: 0;
}

.som-custom-work-modal__code code {
	display: inline-block;
	padding: 0.25rem 0.45rem;
	border-radius: 6px;
	background: var(--som-charcoal);
	color: #fff;
	font-size: 0.78rem;
}

.som-custom-work-modal .wpcf7-form label,
.som-custom-work-modal .wpcf7-form p {
	font-size: 0.9rem;
}

.som-custom-work-modal .wpcf7-form input[type="text"],
.som-custom-work-modal .wpcf7-form input[type="email"],
.som-custom-work-modal .wpcf7-form input[type="tel"],
.som-custom-work-modal .wpcf7-form input[type="url"],
.som-custom-work-modal .wpcf7-form input[type="file"],
.som-custom-work-modal .wpcf7-form textarea {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	border: 1px solid var(--som-line);
	border-radius: 8px;
	padding: 0.65rem 0.75rem;
	background: var(--som-card);
	font: inherit;
}

.som-custom-work-modal .wpcf7-form input[type="submit"],
.som-custom-work-modal .wpcf7-form .wpcf7-submit {
	appearance: none;
	border: 0;
	border-radius: 10px;
	min-height: 2.75rem;
	padding: 0.65rem 1.15rem;
	background: var(--som-copper);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

body.has-custom-work-modal {
	overflow: hidden;
}

/* —— On the wall install strip (1.9.70) —— */
.som-on-wall {
	margin: 1.75rem 0 0;
	padding: 1.35rem 0 0.25rem;
	border-top: 1px solid var(--som-border);
	width: 100%;
	grid-column: 1 / -1;
}

.som-on-wall__head {
	margin: 0 0 0.85rem;
}

.som-on-wall__title {
	margin: 0;
	font-family: var(--som-font-display);
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: -0.015em;
	color: var(--som-charcoal);
}

.som-on-wall__lede {
	margin: 0.3rem 0 0;
	font-size: 0.88rem;
	color: var(--som-ink-muted);
}

.som-on-wall__track {
	list-style: none;
	margin: 0;
	padding: 0.1rem 0 0.35rem;
	display: flex;
	gap: 0.7rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.som-on-wall__item {
	flex: 0 0 min(68%, 14.5rem);
	scroll-snap-align: start;
}

.som-on-wall__frame {
	margin: 0;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	border: 1px solid var(--som-line);
	background: var(--som-warm);
	box-shadow: var(--som-shadow-sm);
}

.som-on-wall__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (min-width: 54rem) {
	.som-on-wall__item {
		flex-basis: calc((100% - 2.1rem) / 4);
	}
}

/* —— Related products slider (1.9.29) —— */
.som-related {
	--som-related-gap: 0.85rem;
	--som-related-peek: 1.15rem;
	--som-related-per: 2;
	margin: 2rem 0 0.75rem;
	padding: 1.35rem 0 0.5rem;
	border-top: 1px solid var(--som-border);
	width: 100%;
	grid-column: 1 / -1;
}

.som-related__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.75rem;
	margin: 0 0 1rem;
	padding: 0 0.15rem;
}

.som-related__head-copy {
	min-width: 0;
}

.som-related__title {
	margin: 0 0 0.3rem;
	font-family: var(--som-font-display);
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: -0.015em;
	color: var(--som-charcoal);
}

.som-related__lede {
	margin: 0;
	font-size: 0.88rem;
	color: var(--som-ink-2, #5c6166);
}

.som-related__nav {
	display: flex;
	gap: 0.4rem;
	flex: 0 0 auto;
}

.som-related__arrow {
	appearance: none;
	display: grid;
	place-items: center;
	width: 2.4rem;
	height: 2.4rem;
	margin: 0;
	padding: 0;
	border: 1px solid color-mix(in srgb, var(--som-copper) 28%, var(--som-line));
	border-radius: 999px;
	background: var(--som-card, #fff);
	color: var(--som-charcoal);
	font-size: 1.35rem;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 1px 0 rgb(34 36 38 / 4%);
	transition:
		background 0.15s ease,
		border-color 0.15s ease,
		color 0.15s ease,
		opacity 0.15s ease;
}

.som-related__arrow:hover,
.som-related__arrow:focus-visible {
	background: color-mix(in srgb, var(--som-copper-soft) 55%, var(--som-card));
	border-color: var(--som-copper);
	color: var(--som-charcoal);
	outline: none;
}

.som-related__arrow:disabled {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}

.som-related__viewport {
	position: relative;
	margin: 0 calc(-1 * min(var(--som-related-peek), 0.85rem));
	padding: 0.15rem var(--som-related-peek) 0.35rem;
}

.som-related__track {
	display: flex;
	gap: var(--som-related-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 0.2rem 0 0.55rem;
}

.som-related__track::-webkit-scrollbar {
	display: none;
}

.som-related__item {
	flex: 0 0 calc((100% - (var(--som-related-per) - 1) * var(--som-related-gap)) / var(--som-related-per));
	min-width: 0;
	scroll-snap-align: start;
}

.som-related .som-tile {
	height: 100%;
	border-radius: 16px;
	border-color: color-mix(in srgb, var(--som-copper) 14%, var(--som-line));
	background: var(--som-card, #fff);
	box-shadow:
		0 1px 0 rgb(34 36 38 / 3%),
		0 8px 22px rgb(34 36 38 / 5%);
}

.som-related .som-tile:hover,
.som-related .som-tile:focus-within {
	border-color: color-mix(in srgb, var(--som-copper) 48%, var(--som-line));
	box-shadow: var(--som-shadow-md), 0 0 0 1px color-mix(in srgb, var(--som-copper) 16%, transparent);
}

.som-related__dots {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.4rem;
	min-height: 1.1rem;
	padding: 0.15rem 0 0.25rem;
}

.som-related__dot {
	appearance: none;
	width: 0.45rem;
	height: 0.45rem;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--som-charcoal) 22%, transparent);
	cursor: pointer;
	transition:
		width 0.18s ease,
		background 0.18s ease;
}

.som-related__dot.is-active {
	width: 1.15rem;
	background: var(--som-copper);
}

.som-related__dots:empty {
	display: none;
}

@media (min-width: 54rem) {
	.som-related {
		--som-related-gap: 1.1rem;
		--som-related-peek: 0.35rem;
		--som-related-per: 4;
		margin-top: 2.75rem;
		padding-top: 1.6rem;
	}

	.som-related__title {
		font-size: 1.28rem;
	}

	.som-related__viewport {
		margin: 0;
		padding: 0.2rem 0.1rem 0.4rem;
	}

	.som-related__arrow {
		width: 2.55rem;
		height: 2.55rem;
	}
}

@media (max-width: 53.99rem) {
	.som-related {
		--som-related-per: 2;
		--som-related-gap: 0.75rem;
		--som-related-peek: 1.25rem;
	}

	.som-related__viewport {
		/* Soft fade edges hint more content */
		-webkit-mask-image: linear-gradient(
			90deg,
			transparent 0,
			#000 0.65rem,
			#000 calc(100% - 0.65rem),
			transparent 100%
		);
		mask-image: linear-gradient(
			90deg,
			transparent 0,
			#000 0.65rem,
			#000 calc(100% - 0.65rem),
			transparent 100%
		);
	}

	.som-related .som-tile__title {
		font-size: 0.92rem;
	}

	.som-related .som-tile__cta {
		min-height: 2.35rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.som-related__track {
		scroll-behavior: auto;
	}

	.som-related__dot {
		transition: none;
	}
}

