/*
 * PWD Spinner Nav Menu: frontend styles.
 * All rules are scoped under .pwd-snm, .pwd-snm-trigger or .pwd-snm-overlay.
 * Values come from CSS custom properties so the global Appearance defaults,
 * per-config overrides, and Elementor Style controls can layer without
 * touching this file.
 */

.pwd-snm {
	/* Defaults mirror the source design; Appearance overrides these at runtime. */
	--pwd-surface: #292220;
	--pwd-text: #f7f1ed;
	--pwd-muted: #b5a7a0;
	--pwd-line: rgba(255, 255, 255, 0.13);

	--pwd-pill-bg: rgba(35, 28, 26, 0.97);
	--pwd-pill-text: #eee5df;
	--pwd-pill-border: rgba(255, 255, 255, 0.13);
	--pwd-pill-radius: 999px;
	--pwd-pill-pad-x: 8px;
	--pwd-pill-pad-y: 0px;
	--pwd-pill-font-default: 11px;
	--pwd-pill-font: var(--pwd-pill-font-default);

	--pwd-pill-hover-bg: rgba(35, 28, 26, 0.97);
	--pwd-pill-hover-text: #ffffff;
	--pwd-pill-hover-border: rgba(255, 255, 255, 0.34);

	--pwd-pill-border-width: 1px;
	/* Hover glow. Transparent (the default) draws nothing; set a colour to switch it on. */
	--pwd-pill-glow: transparent;
	--pwd-pill-glow-size: 14px;
	--pwd-pill-glow-shadow:
		0 0 0 1px color-mix(in srgb, var(--pwd-pill-glow) 55%, transparent),
		0 0 var(--pwd-pill-glow-size) color-mix(in srgb, var(--pwd-pill-glow) 55%, transparent),
		0 0 calc(var(--pwd-pill-glow-size) * 2.4) color-mix(in srgb, var(--pwd-pill-glow) 28%, transparent),
		inset 0 0 calc(var(--pwd-pill-glow-size) * 0.8) color-mix(in srgb, var(--pwd-pill-glow) 14%, transparent);

	--pwd-active: #ed6b62;
	--pwd-active-text: #ffffff;
	--pwd-active-border: #ed6b62;

	--pwd-arrow-color: var(--pwd-active);
	--pwd-arrow-size: 9px;

	/* Sub item indicator. An unset color follows the pill text color. */
	--pwd-ind-size: 10px;
	--pwd-ind-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 5l7 7-7 7' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

	--pwd-track: rgba(255, 255, 255, 0.095);
	--pwd-track-inner: rgba(255, 255, 255, 0.025);

	--pwd-hub-border: rgba(255, 255, 255, 0.13);
	--pwd-eyebrow: #b5a7a0;
	--pwd-title: #f7f1ed;
	--pwd-desc: #b5a7a0;

	--pwd-wheel-size: 360px;
	/* Sizes follow the rendered width, so pills always sit on the track. */
	--pwd-orbit-radius: 40.5cqw;
	--pwd-pill-width-default: clamp(68px, 26cqw, 94px);
	--pwd-pill-height-default: clamp(26px, 8.3cqw, 30px);
	--pwd-pill-width: var(--pwd-pill-width-default);
	--pwd-pill-height: var(--pwd-pill-height-default);
	--pwd-pill-align: center;
	/* The drill down ring is a set of its own: nothing set for the main pills reaches it. */
	--pwd-sub-pill-width: var(--pwd-pill-width-default);
	--pwd-sub-pill-height: var(--pwd-pill-height-default);
	--pwd-sub-pill-pad-x: 8px;
	--pwd-sub-pill-pad-y: 0px;
	--pwd-sub-pill-font: var(--pwd-pill-font-default);
	--pwd-sub-pill-align: center;
	--pwd-sub-pill-bg: rgba(35, 28, 26, 0.97);
	--pwd-sub-pill-text: #eee5df;
	--pwd-sub-pill-border: rgba(255, 255, 255, 0.13);
	--pwd-sub-pill-border-w: 1px;
	--pwd-sub-pill-radius: 999px;
	--pwd-sub-pill-hover-bg: rgba(35, 28, 26, 0.97);
	--pwd-sub-pill-hover-text: #ffffff;
	--pwd-sub-pill-hover-border: rgba(255, 255, 255, 0.34);
	--pwd-sub-pill-glow: transparent;
	--pwd-sub-pill-glow-size: 14px;
	--pwd-sub-pill-glow-shadow:
		0 0 0 1px color-mix(in srgb, var(--pwd-sub-pill-glow) 55%, transparent),
		0 0 var(--pwd-sub-pill-glow-size) color-mix(in srgb, var(--pwd-sub-pill-glow) 55%, transparent),
		0 0 calc(var(--pwd-sub-pill-glow-size) * 2.4) color-mix(in srgb, var(--pwd-sub-pill-glow) 28%, transparent),
		inset 0 0 calc(var(--pwd-sub-pill-glow-size) * 0.8) color-mix(in srgb, var(--pwd-sub-pill-glow) 14%, transparent);
	--pwd-sub-active: #ed6b62;
	--pwd-sub-active-text: #ffffff;
	--pwd-sub-active-border: #ed6b62;
	--pwd-sub-arrow-color: var(--pwd-sub-active);
	--pwd-spin-duration: 500ms;
	--pwd-spin-ease: cubic-bezier(0.2, 0.78, 0.2, 1);
	--pwd-wheel-rotation: 0deg;
	--pwd-count: 8;

	position: relative;
	/* A definite width keeps the wheel from collapsing inside auto-width flex items. */
	width: var(--pwd-wheel-size);
	max-width: 100%;
	container-type: inline-size;
}

/* With many items, never let neighbouring pills overlap on the track. */
@supports (width: calc(sin(1deg))) {
	.pwd-snm {
		--pwd-pill-width-default: min(clamp(68px, 26cqw, 94px), calc(2 * var(--pwd-orbit-radius) * sin(180deg / var(--pwd-count)) * 0.96));
	}
}

.pwd-snm,
.pwd-snm * {
	box-sizing: border-box;
}

.pwd-snm-align-left {
	margin-left: 0;
	margin-right: auto;
}

.pwd-snm-align-center {
	margin-left: auto;
	margin-right: auto;
}

.pwd-snm-align-right {
	margin-left: auto;
	margin-right: 0;
}

.pwd-snm-spinner {
	position: relative;
	width: 100%;
	aspect-ratio: 1;
	isolation: isolate;
	color: var(--pwd-text);
	font-family: inherit;
}

.pwd-snm-track {
	position: absolute;
	inset: 7.5%;
	border: 1px solid var(--pwd-track);
	border-radius: 50%;
	pointer-events: none;
}

.pwd-snm-track::before {
	content: "";
	position: absolute;
	inset: 10%;
	border: 1px solid var(--pwd-track-inner);
	border-radius: 50%;
}

.pwd-snm-rotor {
	position: absolute;
	inset: 0;
	transform: rotate(var(--pwd-wheel-rotation, 0deg));
	transition: transform var(--pwd-spin-duration) var(--pwd-spin-ease), opacity 200ms ease, scale 200ms ease;
	will-change: transform;
}

/* Drill down: the ring fades while its pills are swapped. */
.pwd-snm-rotor.is-swapping {
	opacity: 0;
	scale: 0.94;
	pointer-events: none;
}

.pwd-snm-item {
	position: absolute;
	top: 50%;
	left: 50%;
	width: var(--pwd-pill-width);
	height: var(--pwd-pill-height);
	max-width: 92cqw;
	padding: var(--pwd-pill-pad-y) var(--pwd-pill-pad-x);
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	justify-items: var(--pwd-pill-align);
	border: var(--pwd-pill-border-width) solid var(--pwd-pill-border);
	border-radius: var(--pwd-pill-radius);
	color: var(--pwd-pill-text);
	background: var(--pwd-pill-bg);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
	cursor: pointer;
	text-decoration: none;
	transform:
		translate(-50%, -50%)
		rotate(var(--pwd-angle))
		translateY(calc(var(--pwd-orbit-radius) * -1))
		rotate(calc(-1 * (var(--pwd-angle) + var(--pwd-wheel-rotation, 0deg))));
	transition: background 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 180ms ease;
	-webkit-tap-highlight-color: transparent;
}

.pwd-snm-item-label {
	display: block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: var(--pwd-pill-font);
	line-height: 1;
	pointer-events: none;
}

.pwd-snm-item:hover,
.pwd-snm-item:focus-visible {
	color: var(--pwd-pill-hover-text);
	background: var(--pwd-pill-hover-bg);
	border-color: var(--pwd-pill-hover-border);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), var(--pwd-pill-glow-shadow);
	outline: none;
}

.pwd-snm-item:focus-visible {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.11), var(--pwd-pill-glow-shadow);
}

.pwd-snm-item.is-active,
.pwd-snm-item.is-active:hover,
.pwd-snm-item.is-active:focus-visible {
	color: var(--pwd-active-text);
	background: var(--pwd-active);
	border-color: var(--pwd-active-border);
	font-weight: 750;
	box-shadow:
		0 0 0 4px color-mix(in srgb, var(--pwd-active) 9%, transparent),
		0 6px 20px color-mix(in srgb, var(--pwd-active) 24%, transparent);
}

.pwd-snm-item.is-active:hover,
.pwd-snm-item.is-active:focus-visible {
	box-shadow:
		0 0 0 4px color-mix(in srgb, var(--pwd-active) 9%, transparent),
		0 6px 20px color-mix(in srgb, var(--pwd-active) 24%, transparent),
		var(--pwd-pill-glow-shadow);
}

/* The drill down ring has its own size, padding, font and text position. */
.pwd-snm.is-drilled .pwd-snm-item {
	width: var(--pwd-sub-pill-width);
	height: var(--pwd-sub-pill-height);
	padding: var(--pwd-sub-pill-pad-y) var(--pwd-sub-pill-pad-x);
	justify-items: var(--pwd-sub-pill-align);
}

:where(.pwd-snm.is-drilled) .pwd-snm-item-label {
	font-size: var(--pwd-sub-pill-font);
}

/* Colours, border, glow and active state of the drilled ring, apart from the main pills. */
.pwd-snm.is-drilled .pwd-snm-item {
	color: var(--pwd-sub-pill-text);
	background: var(--pwd-sub-pill-bg);
	border: var(--pwd-sub-pill-border-w) solid var(--pwd-sub-pill-border);
	border-radius: var(--pwd-sub-pill-radius);
}

.pwd-snm.is-drilled .pwd-snm-item:hover,
.pwd-snm.is-drilled .pwd-snm-item:focus-visible {
	color: var(--pwd-sub-pill-hover-text);
	background: var(--pwd-sub-pill-hover-bg);
	border-color: var(--pwd-sub-pill-hover-border);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), var(--pwd-sub-pill-glow-shadow);
}

.pwd-snm.is-drilled .pwd-snm-item:focus-visible {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.11), var(--pwd-sub-pill-glow-shadow);
}

.pwd-snm.is-drilled .pwd-snm-item.is-active,
.pwd-snm.is-drilled .pwd-snm-item.is-active:hover,
.pwd-snm.is-drilled .pwd-snm-item.is-active:focus-visible {
	color: var(--pwd-sub-active-text);
	background: var(--pwd-sub-active);
	border-color: var(--pwd-sub-active-border);
	box-shadow:
		0 0 0 4px color-mix(in srgb, var(--pwd-sub-active) 9%, transparent),
		0 6px 20px color-mix(in srgb, var(--pwd-sub-active) 24%, transparent);
}

.pwd-snm.is-drilled .pwd-snm-item.is-active:hover,
.pwd-snm.is-drilled .pwd-snm-item.is-active:focus-visible {
	box-shadow:
		0 0 0 4px color-mix(in srgb, var(--pwd-sub-active) 9%, transparent),
		0 6px 20px color-mix(in srgb, var(--pwd-sub-active) 24%, transparent),
		var(--pwd-sub-pill-glow-shadow);
}

.pwd-snm.is-drilled .pwd-snm-item.is-active::before {
	border-top-color: var(--pwd-sub-arrow-color);
}

/* Pills that open sub items carry an indicator icon after the label. */
.pwd-snm-item.has-children {
	grid-template-columns: minmax(0, 1fr) auto;
	column-gap: 5px;
}

.pwd-snm-item-ind {
	display: block;
	width: var(--pwd-ind-size);
	height: var(--pwd-ind-size);
	background: var(--pwd-ind-color, currentColor);
	-webkit-mask: var(--pwd-ind-icon) center / contain no-repeat;
	mask: var(--pwd-ind-icon) center / contain no-repeat;
	pointer-events: none;
}

.pwd-snm[data-indicator="chevron-down"] {
	--pwd-ind-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9l7 7 7-7' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.pwd-snm[data-indicator="arrow"] {
	--pwd-ind-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.pwd-snm[data-indicator="plus"] {
	--pwd-ind-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5v14M5 12h14' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E");
}

.pwd-snm[data-indicator="dot"] {
	--pwd-ind-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8' fill='%23000'/%3E%3C/svg%3E");
}

.pwd-snm[data-indicator="ring"] {
	--pwd-ind-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='7' fill='none' stroke='%23000' stroke-width='3'/%3E%3C/svg%3E");
}

.pwd-snm[data-indicator="none"] .pwd-snm-item-ind {
	display: none;
}

.pwd-snm[data-indicator="none"] .pwd-snm-item.has-children {
	grid-template-columns: minmax(0, 1fr);
}

/* Active caret sitting on top of the pill. The pill is counter-rotated, so it stays upright. */
.pwd-snm-item.is-active::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: calc(100% - 1px);
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: var(--pwd-arrow-size) solid transparent;
	border-right: var(--pwd-arrow-size) solid transparent;
	border-top: calc(var(--pwd-arrow-size) * 0.9) solid var(--pwd-arrow-color);
	pointer-events: none;
}

.pwd-snm[data-arrow="0"] .pwd-snm-item.is-active::before {
	display: none;
}

.pwd-snm-hub {
	position: absolute;
	z-index: 3;
	left: 50%;
	top: 50%;
	width: 43%;
	aspect-ratio: 1;
	padding: 12px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 7px;
	border: var(--pwd-hub-border-w, 1px) solid var(--pwd-hub-border);
	border-radius: 50%;
	background: radial-gradient(circle at 35% 25%, color-mix(in srgb, var(--pwd-surface) 85%, #ffffff 15%), var(--pwd-surface) 75%);
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.025);
	text-align: center;
	transform: translate(-50%, -50%);
}

.pwd-snm-eyebrow {
	margin: 0;
	color: var(--pwd-eyebrow);
	font-size: 8px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
}

/* Back button, shown in the hub while a drill down set is open. */
.pwd-snm-back {
	margin: 0;
	padding: var(--pwd-back-pad-y, 3px) var(--pwd-back-pad-x, 9px) var(--pwd-back-pad-y, 3px) var(--pwd-back-pad-x, 6px);
	display: inline-flex;
	align-items: center;
	gap: 4px;
	border: var(--pwd-back-border-w, 1px) solid var(--pwd-back-border, var(--pwd-line));
	border-radius: var(--pwd-back-radius, 999px);
	color: var(--pwd-back-text, var(--pwd-text));
	background: var(--pwd-back-bg, rgba(255, 255, 255, 0.045));
	font: inherit;
	font-size: 9px;
	line-height: 1.2;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
}

.pwd-snm-back[hidden] {
	display: none;
}

.pwd-snm-back::before {
	content: "";
	width: 7px;
	height: 7px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15 5l-7 7 7 7' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15 5l-7 7 7 7' fill='none' stroke='%23000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.pwd-snm-back:hover,
.pwd-snm-back:focus-visible {
	background: var(--pwd-back-hover-bg, rgba(255, 255, 255, 0.12));
	color: var(--pwd-back-hover-text, var(--pwd-back-text, var(--pwd-text)));
	border-color: var(--pwd-back-hover-border, var(--pwd-back-border, var(--pwd-line)));
	outline: none;
}

.pwd-snm-title {
	max-width: 100%;
	margin: 0;
	padding: 0;
	font-size: clamp(15px, 5.5cqw, 20px);
	line-height: 1.1;
	font-weight: 750;
	color: var(--pwd-title);
	overflow-wrap: anywhere;
}

.pwd-snm-desc {
	max-width: 125px;
	margin: 0;
	color: var(--pwd-desc);
	font-size: 10px;
	line-height: 1.35;
}

.pwd-snm-links {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 5px;
}

.pwd-snm-link {
	min-width: 30px;
	min-height: 27px;
	padding: var(--pwd-link-pad-y, 5px) var(--pwd-link-pad-x, 8px);
	display: inline-grid;
	place-items: center;
	border: var(--pwd-link-border-w, 1px) solid var(--pwd-link-border, var(--pwd-line));
	border-radius: var(--pwd-link-radius, 7px);
	color: var(--pwd-link-text, var(--pwd-text));
	background: var(--pwd-link-bg, rgba(255, 255, 255, 0.045));
	font-size: 10px;
	text-decoration: none;
}

.pwd-snm-link:hover,
.pwd-snm-link:focus-visible {
	background: var(--pwd-link-hover-bg, rgba(255, 255, 255, 0.12));
	color: var(--pwd-link-hover-text, var(--pwd-link-text, var(--pwd-text)));
	border-color: var(--pwd-link-hover-border, var(--pwd-link-border, var(--pwd-line)));
	outline: none;
}

/* ------------------------------------------------------------------ *
 * Sticky trigger (floating button)
 * ------------------------------------------------------------------ */
.pwd-snm-trigger {
	--pwd-trg-x: 24px;
	--pwd-trg-y: 24px;
	--pwd-trg-bg: #ffffff;
	--pwd-trg-text: #1a1a1a;
	--pwd-trg-hover-bg: #f3f3f3;
	--pwd-trg-hover-text: #1a1a1a;
	--pwd-trg-border: #e5e5e5;
	--pwd-trg-border-w: 0px;
	--pwd-trg-radius: 999px;
	--pwd-trg-pad-y: 12px;
	--pwd-trg-pad-x: 20px;
	--pwd-trg-font-size: 15px;
	--pwd-trg-weight: 600;

	position: fixed;
	z-index: 99990;
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: var(--pwd-trg-pad-y) var(--pwd-trg-pad-x);
	border: var(--pwd-trg-border-w) solid var(--pwd-trg-border);
	border-radius: var(--pwd-trg-radius);
	background: var(--pwd-trg-bg);
	color: var(--pwd-trg-text);
	font: inherit;
	font-size: var(--pwd-trg-font-size);
	font-weight: var(--pwd-trg-weight);
	letter-spacing: 0.05em;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
	opacity: 0;
	pointer-events: none;
	transform: translateY(-8px);
	transition: opacity 240ms ease, transform 240ms ease, box-shadow 180ms ease, background 180ms ease, color 180ms ease;
}

.pwd-snm-trigger[hidden] {
	display: none;
}

.pwd-snm-trigger.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.pwd-snm-trigger:hover,
.pwd-snm-trigger:focus-visible {
	background: var(--pwd-trg-hover-bg);
	color: var(--pwd-trg-hover-text);
	border-color: var(--pwd-trg-hover-border, var(--pwd-trg-border));
}

.pwd-snm-trigger:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

/* Position */
.pwd-snm-trigger[data-position="top-left"] {
	top: calc(var(--pwd-trg-y) + env(safe-area-inset-top, 0px));
	left: calc(var(--pwd-trg-x) + env(safe-area-inset-left, 0px));
}

.pwd-snm-trigger[data-position="top-center"] {
	top: calc(var(--pwd-trg-y) + env(safe-area-inset-top, 0px));
	left: 50%;
	translate: -50% 0;
}

.pwd-snm-trigger[data-position="top-right"] {
	top: calc(var(--pwd-trg-y) + env(safe-area-inset-top, 0px));
	right: calc(var(--pwd-trg-x) + env(safe-area-inset-right, 0px));
}

.pwd-snm-trigger[data-position="bottom-left"] {
	bottom: calc(var(--pwd-trg-y) + env(safe-area-inset-bottom, 0px));
	left: calc(var(--pwd-trg-x) + env(safe-area-inset-left, 0px));
}

.pwd-snm-trigger[data-position="bottom-center"] {
	bottom: calc(var(--pwd-trg-y) + env(safe-area-inset-bottom, 0px));
	left: 50%;
	translate: -50% 0;
}

.pwd-snm-trigger[data-position="bottom-right"] {
	bottom: calc(var(--pwd-trg-y) + env(safe-area-inset-bottom, 0px));
	right: calc(var(--pwd-trg-x) + env(safe-area-inset-right, 0px));
}

.pwd-snm-trigger[data-position^="bottom"] {
	transform: translateY(8px);
}

.pwd-snm-trigger[data-position^="bottom"].is-visible {
	transform: translateY(0);
}

/* Shadow */
.pwd-snm-trigger[data-shadow="none"] {
	box-shadow: none;
}

.pwd-snm-trigger[data-shadow="soft"] {
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
}

.pwd-snm-trigger[data-shadow="medium"] {
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
}

.pwd-snm-trigger[data-shadow="strong"] {
	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.42);
}

/* Icon */
.pwd-snm-trigger-icon {
	display: inline-flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
	width: 18px;
}

.pwd-snm-trigger-icon span {
	display: block;
	height: 2px;
	width: 100%;
	background: currentColor;
	border-radius: 2px;
}

.pwd-snm-trigger[data-icon="dots"] .pwd-snm-trigger-icon {
	flex-direction: row;
	align-items: center;
	width: auto;
	gap: 3px;
}

.pwd-snm-trigger[data-icon="dots"] .pwd-snm-trigger-icon span {
	width: 5px;
	height: 5px;
	border-radius: 50%;
}

.pwd-snm-trigger[data-icon="none"] .pwd-snm-trigger-icon {
	display: none;
}

.pwd-snm-trigger[data-icon-pos="right"] {
	flex-direction: row-reverse;
}

.pwd-snm-trigger-label {
	line-height: 1;
}

@media (max-width: 600px) {
	.pwd-snm-trigger[data-hide-label-mobile="1"] .pwd-snm-trigger-label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}

	.pwd-snm-trigger[data-hide-label-mobile="1"][data-icon="none"] .pwd-snm-trigger-label {
		position: static;
		width: auto;
		height: auto;
		clip: auto;
	}
}

/* ------------------------------------------------------------------ *
 * Full-screen overlay
 * ------------------------------------------------------------------ */
.pwd-snm-overlay {
	--pwd-ovl-bg: #171210;
	--pwd-ovl-opacity: 0.96;
	--pwd-ovl-blur: 0px;
	--pwd-ovl-close-bg: rgba(255, 255, 255, 0.06);
	--pwd-ovl-close-text: #ffffff;
	--pwd-ovl-close-x: 16px;
	--pwd-ovl-close-y: 16px;
	--pwd-ovl-close-size: 44px;

	position: fixed;
	inset: 0;
	z-index: 99991;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 220ms ease;
}

.pwd-snm-overlay[hidden] {
	display: none;
}

.pwd-snm-overlay.is-open {
	opacity: 1;
}

.pwd-snm-overlay-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(23, 18, 16, 0.96);
	background: color-mix(in srgb, var(--pwd-ovl-bg) calc(var(--pwd-ovl-opacity) * 100%), transparent);
	-webkit-backdrop-filter: blur(var(--pwd-ovl-blur));
	backdrop-filter: blur(var(--pwd-ovl-blur));
}

.pwd-snm-overlay-inner {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: max(24px, env(safe-area-inset-top, 0px)) max(24px, env(safe-area-inset-right, 0px)) max(24px, env(safe-area-inset-bottom, 0px)) max(24px, env(safe-area-inset-left, 0px));
	overflow: auto;
	overscroll-behavior: contain;
	/* Clicks on empty space fall through to the backdrop, which closes the popup. */
	pointer-events: none;
}

.pwd-snm-overlay-inner > * {
	pointer-events: auto;
}

/* The wheel fills the screen on phones and always fits the viewport height. */
.pwd-snm-in-overlay {
	width: min(var(--pwd-wheel-size), 100%, calc(100vh - 96px));
	width: min(var(--pwd-wheel-size), 100%, calc(100dvh - 96px));
	margin: 0 auto;
}

.pwd-snm-overlay-close {
	position: absolute;
	top: calc(var(--pwd-ovl-close-y) + env(safe-area-inset-top, 0px));
	right: calc(var(--pwd-ovl-close-x) + env(safe-area-inset-right, 0px));
	width: var(--pwd-ovl-close-size);
	height: var(--pwd-ovl-close-size);
	padding: 0;
	border: var(--pwd-ovl-close-border-w, 1px) solid var(--pwd-ovl-close-border, rgba(255, 255, 255, 0.2));
	border-radius: var(--pwd-ovl-close-radius, 50%);
	background: var(--pwd-ovl-close-bg);
	color: var(--pwd-ovl-close-text);
	font-size: calc(var(--pwd-ovl-close-size) * 0.6);
	line-height: 1;
	cursor: pointer;
}

.pwd-snm-overlay-close span {
	pointer-events: none;
}

.pwd-snm-overlay[data-close-position="top-left"] .pwd-snm-overlay-close {
	top: calc(var(--pwd-ovl-close-y) + env(safe-area-inset-top, 0px));
	left: calc(var(--pwd-ovl-close-x) + env(safe-area-inset-left, 0px));
	right: auto;
	bottom: auto;
}

.pwd-snm-overlay[data-close-position="top-center"] .pwd-snm-overlay-close {
	top: calc(var(--pwd-ovl-close-y) + env(safe-area-inset-top, 0px));
	left: 50%;
	right: auto;
	bottom: auto;
	translate: -50% 0;
}

.pwd-snm-overlay[data-close-position="bottom-left"] .pwd-snm-overlay-close {
	top: auto;
	right: auto;
	bottom: calc(var(--pwd-ovl-close-y) + env(safe-area-inset-bottom, 0px));
	left: calc(var(--pwd-ovl-close-x) + env(safe-area-inset-left, 0px));
}

.pwd-snm-overlay[data-close-position="bottom-center"] .pwd-snm-overlay-close {
	top: auto;
	right: auto;
	bottom: calc(var(--pwd-ovl-close-y) + env(safe-area-inset-bottom, 0px));
	left: 50%;
	translate: -50% 0;
}

.pwd-snm-overlay[data-close-position="bottom-right"] .pwd-snm-overlay-close {
	top: auto;
	left: auto;
	bottom: calc(var(--pwd-ovl-close-y) + env(safe-area-inset-bottom, 0px));
	right: calc(var(--pwd-ovl-close-x) + env(safe-area-inset-right, 0px));
}

.pwd-snm-overlay-close:hover,
.pwd-snm-overlay-close:focus-visible {
	background: var(--pwd-ovl-close-hover-bg, var(--pwd-ovl-close-bg));
	color: var(--pwd-ovl-close-hover-text, var(--pwd-ovl-close-text));
	filter: var(--pwd-ovl-close-hover-filter, brightness(1.25));
	outline: none;
}

body.pwd-snm-locked {
	overflow: hidden;
}

/* Small wheels: tighten the hub so its content always fits. */
@container (max-width: 300px) {
	.pwd-snm-hub {
		padding: 8px;
		gap: 4px;
	}

	.pwd-snm-eyebrow {
		font-size: 7px;
		letter-spacing: 0.14em;
	}

	.pwd-snm-back {
		padding: var(--pwd-back-pad-y, 2px) var(--pwd-back-pad-x, 7px) var(--pwd-back-pad-y, 2px) var(--pwd-back-pad-x, 5px);
		font-size: 8px;
	}

	.pwd-snm-desc {
		max-width: 92px;
		font-size: 9px;
	}

	.pwd-snm-link {
		min-height: 24px;
		padding: var(--pwd-link-pad-y, 3px) var(--pwd-link-pad-x, 7px);
		font-size: 9px;
	}
}

@container (max-width: 250px) {
	.pwd-snm-desc {
		display: none;
	}

	.pwd-snm-item-label,
	:where(.pwd-snm.is-drilled) .pwd-snm-item-label {
		font-size: 10px;
	}
}

/* Touch screens: larger tap targets. */
@media (pointer: coarse) {
	.pwd-snm {
		--pwd-pill-height-default: clamp(32px, 10cqw, 38px);
		--pwd-pill-font-default: 12px;
	}

	.pwd-snm-trigger {
		min-height: 44px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pwd-snm-rotor,
	.pwd-snm-back,
	.pwd-snm-item,
	.pwd-snm-overlay,
	.pwd-snm-trigger {
		transition-duration: 0.01ms !important;
	}
}
