/*! BizUpPro Move Booking – front-end styles */

@font-face {
	font-family: 'BUPMB Jakarta';
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url(../fonts/plus-jakarta-sans-latin-wght-normal.woff2) format('woff2');
}

/* ------------------------------------------------------------------ *
 * Tokens
 * ------------------------------------------------------------------ */
#bupmb {
	--bupmb-a1: #1a6dff;
	--bupmb-a2: #6a5cf6;
	--bupmb-radius: 30px;
	--bupmb-max: 1680px;
	--bupmb-font: inherit;

	--b-grad: linear-gradient(135deg, var(--bupmb-a1), var(--bupmb-a2));
	--b-text: #0f1530;
	--b-muted: #5a6382;
	--b-faint: #8d95b0;
	--b-glass: rgba(255, 255, 255, .5);
	--b-glass2: rgba(255, 255, 255, .8);
	--b-tile: rgba(255, 255, 255, .68);
	--b-tile-hover: #ffffff;
	--b-line: rgba(15, 21, 48, .08);
	--b-line2: rgba(15, 21, 48, .17);
	--b-edge: rgba(255, 255, 255, .9);
	--b-field: rgba(255, 255, 255, .88);
	--b-solid: #ffffff;
	--b-on-accent: #ffffff;
	--b-ink: var(--bupmb-a1);
	--b-tint: rgba(26, 109, 255, .1);
	--b-tint: color-mix(in srgb, var(--bupmb-a1) 10%, transparent);
	--b-ring: rgba(26, 109, 255, .2);
	--b-ring: color-mix(in srgb, var(--bupmb-a1) 20%, transparent);
	--b-glow: rgba(46, 96, 255, .5);
	--b-glow: color-mix(in srgb, var(--bupmb-a1) 55%, transparent);
	--b-danger: #d92d4a;
	--b-shadow: 0 34px 70px -44px rgba(38, 52, 120, .55);
	--b-r-sm: calc(var(--bupmb-radius) * .45);
	--b-r-md: calc(var(--bupmb-radius) * .62);

	position: relative;
	isolation: isolate;
	container-type: inline-size;
	container-name: bupmb;
	box-sizing: border-box;
	width: 100%;
	max-width: var(--bupmb-max);
	margin: 0 auto;
	border-radius: calc(var(--bupmb-radius) + 12px);
	color: var(--b-text);
	font-family: var(--bupmb-font);
	font-size: 16px;
	line-height: 1.5;
	font-weight: 400;
	text-align: left;
	letter-spacing: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-tap-highlight-color: transparent;
	color-scheme: light;
}

#bupmb.bupmb--full {
	max-width: none;
	min-height: calc(100vh - var(--bupmb-gutter, 50px) * 2);
	min-height: calc(100svh - var(--bupmb-gutter, 50px) * 2);
}

#bupmb.bupmb--dark {
	--b-text: #f3f5ff;
	--b-muted: rgba(223, 229, 255, .68);
	--b-faint: rgba(223, 229, 255, .45);
	--b-glass: rgba(255, 255, 255, .045);
	--b-glass2: rgba(255, 255, 255, .1);
	--b-tile: rgba(255, 255, 255, .06);
	--b-tile-hover: rgba(255, 255, 255, .11);
	--b-line: rgba(255, 255, 255, .13);
	--b-line2: rgba(255, 255, 255, .26);
	--b-edge: rgba(255, 255, 255, .16);
	--b-field: rgba(6, 10, 30, .5);
	--b-solid: #141c44;
	--b-ink: #8fb8ff;
	--b-ink: color-mix(in srgb, var(--bupmb-a1) 55%, #ffffff);
	--b-tint: color-mix(in srgb, var(--bupmb-a1) 22%, transparent);
	--b-danger: #ff8a8a;
	--b-shadow: 0 40px 90px -40px rgba(0, 0, 0, .75);
	color-scheme: dark;
}

#bupmb *,
#bupmb *::before,
#bupmb *::after {
	box-sizing: border-box;
}

#bupmb [hidden] {
	display: none !important;
}

/* Theme-proof resets */
#bupmb :is(h2, h3, h4, p, ul, ol, li, dl, dt, dd, label, small, strong, b, em, i, output) {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font-family: inherit;
	letter-spacing: normal;
	text-transform: none;
	text-shadow: none;
	list-style: none;
	float: none;
	max-width: none;
}
#bupmb :is(li)::before,
#bupmb :is(h2, h3, h4)::before,
#bupmb :is(h2, h3, h4)::after {
	content: none;
}
#bupmb :is(button, input, select, textarea) {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: normal;
	text-transform: none;
	text-shadow: none;
	color: inherit;
	min-height: 0;
	min-width: 0;
	max-width: none;
	height: auto;
	width: auto;
	box-shadow: none;
	outline: 0;
	transition: none;
	-webkit-appearance: none;
	appearance: none;
}
#bupmb button {
	cursor: pointer;
	background: none;
	border: 0;
	padding: 0;
	border-radius: 0;
}
#bupmb a {
	text-decoration: none;
	box-shadow: none;
}
#bupmb svg.bupmb-ico {
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	display: block;
	fill: none;
	stroke: currentColor;
	max-width: none;
}
#bupmb :is(button, a, input, select, textarea, [tabindex]):focus-visible {
	outline: 2px solid var(--bupmb-a1);
	outline-offset: 2px;
}

/* ------------------------------------------------------------------ *
 * Backdrop
 * ------------------------------------------------------------------ */
#bupmb .bupmb-bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	overflow: hidden;
	border-radius: inherit;
	background: linear-gradient(150deg, #e9f0ff 0%, #f4efff 46%, #fff3e8 100%);
	box-shadow: 0 40px 80px -50px rgba(38, 52, 120, .45), inset 0 0 0 1px rgba(255, 255, 255, .8);
}
#bupmb.bupmb--dark .bupmb-bg {
	background: linear-gradient(145deg, #070b1f 0%, #0f1842 48%, #0a102c 100%);
	box-shadow: 0 30px 70px -40px rgba(8, 12, 40, .7);
}
#bupmb .bupmb-bg i {
	position: absolute;
	display: block;
	border-radius: 50%;
	filter: blur(70px);
	animation: bupmb-float 22s ease-in-out infinite alternate;
}
#bupmb .bupmb-bg i:nth-child(1) {
	width: 44%;
	aspect-ratio: 1;
	top: -16%;
	left: -8%;
	background: #8ebcff;
	opacity: .75;
}
#bupmb .bupmb-bg i:nth-child(2) {
	width: 40%;
	aspect-ratio: 1;
	right: -10%;
	top: 8%;
	background: #c8b2ff;
	opacity: .7;
	animation-duration: 28s;
	animation-direction: alternate-reverse;
}
#bupmb .bupmb-bg i:nth-child(3) {
	width: 42%;
	aspect-ratio: 1;
	left: 26%;
	bottom: -22%;
	background: #ffcda4;
	opacity: .7;
	animation-duration: 32s;
}
#bupmb.bupmb--dark .bupmb-bg i:nth-child(1) {
	background: var(--bupmb-a1);
	opacity: .32;
}
#bupmb.bupmb--dark .bupmb-bg i:nth-child(2) {
	background: var(--bupmb-a2);
	opacity: .34;
}
#bupmb.bupmb--dark .bupmb-bg i:nth-child(3) {
	background: #19c7b5;
	opacity: .2;
}
@keyframes bupmb-float {
	to {
		transform: translate3d(5%, 7%, 0) scale(1.1);
	}
}

#bupmb .bupmb-inner {
	padding: 22px 12px 18px;
}

/* ------------------------------------------------------------------ *
 * Header
 * ------------------------------------------------------------------ */
#bupmb .bupmb-hero {
	display: grid;
	gap: 18px;
	margin-bottom: 18px;
	padding: 4px 6px 0;
}
#bupmb .bupmb-head {
	min-width: 0;
}
#bupmb .bupmb-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 7px 14px 7px 10px;
	border-radius: 999px;
	border: 1px solid var(--b-edge);
	background: var(--b-glass2);
	color: var(--b-ink);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	box-shadow: 0 10px 20px -16px rgba(38, 52, 120, .6);
}
#bupmb .bupmb-eyebrow svg.bupmb-ico {
	width: 16px;
	height: 16px;
}
#bupmb .bupmb-title {
	margin-top: 14px;
	font-size: clamp(30px, 7cqi, 56px);
	line-height: 1.04;
	font-weight: 800;
	letter-spacing: -.035em;
	color: var(--b-text);
	text-wrap: balance;
}
#bupmb .bupmb-sub {
	margin-top: 12px;
	max-width: 54ch;
	color: var(--b-muted);
	font-size: 17px;
	line-height: 1.5;
	text-wrap: pretty;
}
#bupmb .bupmb-noscript {
	color: var(--b-danger);
	margin-bottom: 16px;
}

/* ------------------------------------------------------------------ *
 * Step indicator – one frosted capsule
 * ------------------------------------------------------------------ */
#bupmb .bupmb-steps {
	position: relative;
	min-width: 0;
	padding: 6px;
	border-radius: 999px;
	border: 1px solid var(--b-edge);
	background: var(--b-glass);
	-webkit-backdrop-filter: blur(24px) saturate(170%);
	backdrop-filter: blur(24px) saturate(170%);
	box-shadow: 0 18px 36px -26px rgba(38, 52, 120, .6);
}
#bupmb .bupmb-steps ol {
	display: flex;
	gap: 4px;
}
#bupmb .bupmb-steps-track,
#bupmb .bupmb-steps-mobile {
	display: none;
}
#bupmb .bupmb-stepdot {
	flex: 0 0 auto;
	display: block;
	min-width: 0;
	transition: flex-grow .35s cubic-bezier(.3, .8, .3, 1);
}
#bupmb .bupmb-stepdot.is-active {
	flex: 1 1 auto;
}
#bupmb .bupmb-stepdot button {
	display: flex;
	align-items: center;
	gap: 9px;
	width: 100%;
	padding: 5px;
	border-radius: 999px;
	color: var(--b-faint);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	transition: background .25s, color .25s, box-shadow .25s;
}
#bupmb .bupmb-stepdot button:disabled {
	cursor: default;
	opacity: 1;
}
#bupmb .bupmb-stepdot-ico {
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	flex: 0 0 auto;
	border-radius: 50%;
	background: var(--b-tile);
	transition: background .25s, color .25s, transform .25s;
}
#bupmb .bupmb-stepdot-ico svg.bupmb-ico {
	width: 19px;
	height: 19px;
}
#bupmb svg.bupmb-ico.bupmb-stepdot-check {
	display: none;
	stroke-width: 2.6;
}
#bupmb .bupmb-stepdot-label {
	display: none;
	padding-right: 12px;
	overflow: hidden;
	text-overflow: ellipsis;
}
#bupmb .bupmb-stepdot.is-active button {
	background: var(--b-solid);
	color: var(--b-text);
	box-shadow: 0 10px 22px -12px rgba(38, 52, 120, .5);
}
#bupmb .bupmb-stepdot.is-active .bupmb-stepdot-label {
	display: block;
}
#bupmb .bupmb-stepdot.is-active .bupmb-stepdot-ico {
	background: var(--b-grad);
	color: var(--b-on-accent);
}
#bupmb .bupmb-stepdot.is-done button {
	color: var(--b-muted);
}
#bupmb .bupmb-stepdot.is-done .bupmb-stepdot-ico {
	background: var(--b-tint);
	color: var(--b-ink);
}
#bupmb .bupmb-stepdot.is-done .bupmb-stepdot-ico svg.bupmb-ico:first-child {
	display: none;
}
#bupmb .bupmb-stepdot.is-done svg.bupmb-ico.bupmb-stepdot-check {
	display: block;
}
#bupmb .bupmb-stepdot.is-done button:hover {
	background: var(--b-tile);
	color: var(--b-text);
}

/* ------------------------------------------------------------------ *
 * Cards and layout
 * ------------------------------------------------------------------ */
#bupmb .bupmb-card {
	position: relative;
	border-radius: var(--bupmb-radius);
	border: 1px solid var(--b-edge);
	background: linear-gradient(160deg, var(--b-glass2), var(--b-glass) 60%);
	-webkit-backdrop-filter: blur(30px) saturate(180%);
	backdrop-filter: blur(30px) saturate(180%);
	box-shadow: var(--b-shadow);
}
#bupmb .bupmb-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 20px;
	align-items: start;
}
#bupmb .bupmb-main {
	display: block;
	margin: 0;
	padding: 20px 16px 14px;
	min-width: 0;
}
#bupmb .bupmb-side {
	display: none;
}

#bupmb .bupmb-step {
	animation: bupmb-in .45s cubic-bezier(.2, .7, .2, 1) both;
}
@keyframes bupmb-in {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
}
#bupmb .bupmb-step-title {
	font-size: clamp(21px, 4.4cqi, 28px);
	line-height: 1.2;
	font-weight: 750;
	letter-spacing: -.02em;
	outline: 0;
}
#bupmb .bupmb-step-sub {
	margin-top: 6px;
	margin-bottom: 22px;
	color: var(--b-muted);
	font-size: 15px;
}
#bupmb .bupmb-h4 {
	margin: 30px 0 14px;
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -.01em;
}

/* ------------------------------------------------------------------ *
 * Fields
 * ------------------------------------------------------------------ */
#bupmb .bupmb-grid2 {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 16px;
	margin-bottom: 18px;
}
#bupmb .bupmb-field {
	display: block;
	margin-bottom: 20px;
	min-width: 0;
}
#bupmb .bupmb-grid2 > .bupmb-field {
	margin-bottom: 0;
}
#bupmb .bupmb-label {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 8px;
	font-size: 13.5px;
	font-weight: 650;
	color: var(--b-text);
	line-height: 1.3;
}
#bupmb .bupmb-label svg.bupmb-ico {
	width: 17px;
	height: 17px;
	color: var(--b-ink);
}
#bupmb .bupmb-label b {
	color: var(--b-ink);
	font-weight: 700;
}
#bupmb .bupmb-label em {
	font-style: normal;
	font-weight: 500;
	font-size: 12px;
	color: var(--b-faint);
}
#bupmb .bupmb-input {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 60px;
	padding: 0 18px;
	border-radius: var(--b-r-md);
	border: 1px solid var(--b-line);
	background: var(--b-field);
	color: var(--b-text);
	transition: border-color .2s, box-shadow .2s, background .2s;
}
#bupmb .bupmb-input > svg.bupmb-ico {
	color: var(--b-faint);
	transition: color .2s;
}
#bupmb .bupmb-input:hover {
	border-color: var(--b-line2);
}
#bupmb .bupmb-input:focus-within {
	border-color: var(--bupmb-a1);
	box-shadow: 0 0 0 4px var(--b-ring);
}
#bupmb .bupmb-input:focus-within > svg.bupmb-ico {
	color: var(--b-ink);
}
#bupmb .bupmb-input :is(input, select, textarea) {
	flex: 1 1 auto;
	width: 100%;
	padding: 15px 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--b-text);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
	outline: 0;
}
#bupmb .bupmb-input :is(input, select, textarea):focus-visible,
#bupmb .bupmb-mini :is(input, select):focus-visible {
	outline: 0;
}
#bupmb .bupmb-mini:focus-within {
	border-color: var(--bupmb-a1);
}
#bupmb .bupmb-input :is(input, textarea)::placeholder {
	color: var(--b-faint);
	opacity: 1;
	font-weight: 400;
}
#bupmb .bupmb-input input:-webkit-autofill {
	-webkit-text-fill-color: var(--b-text);
	transition: background-color 99999s;
}
#bupmb .bupmb-input select,
#bupmb .bupmb-mini select {
	cursor: pointer;
	padding-right: 26px;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239aa3c7' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right center / 18px;
}
#bupmb select option {
	color: #141a33;
	background: #fff;
}
#bupmb .bupmb-input input[type='date'] {
	min-height: 24px;
	cursor: pointer;
}
#bupmb .bupmb-input input[type='search']::-webkit-search-cancel-button {
	-webkit-appearance: none;
}
#bupmb .bupmb-input--area {
	align-items: stretch;
	padding: 0 15px;
}
#bupmb .bupmb-input--area textarea {
	resize: vertical;
	min-height: 84px;
}
#bupmb .is-invalid .bupmb-input,
#bupmb .is-invalid > .bupmb-loc-body .bupmb-ac .bupmb-input {
	border-color: var(--b-danger);
	box-shadow: 0 0 0 4px rgba(255, 110, 110, .16);
}
#bupmb .bupmb-hint {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin-top: 12px;
	color: var(--b-muted);
	font-size: 13.5px;
}
#bupmb .bupmb-hint svg.bupmb-ico {
	width: 17px;
	height: 17px;
	margin-top: 1px;
	color: var(--b-ink);
}
#bupmb .bupmb-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
}

/* ------------------------------------------------------------------ *
 * Chips
 * ------------------------------------------------------------------ */
#bupmb .bupmb-chips {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
#bupmb .bupmb-chip {
	position: relative;
	display: block;
	cursor: pointer;
	margin: 0;
}
#bupmb .bupmb-chip input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
	margin: 0;
}
#bupmb .bupmb-chip-body {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	height: 100%;
	min-height: 50px;
	padding: 11px 14px;
	border-radius: var(--b-r-md);
	border: 1px solid var(--b-line);
	background: var(--b-tile);
	color: var(--b-muted);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.25;
	text-align: center;
	transition: transform .18s, border-color .2s, background .2s, color .2s, box-shadow .2s;
}
#bupmb .bupmb-chip:hover .bupmb-chip-body {
	background: var(--b-tile-hover);
	border-color: var(--b-line2);
	color: var(--b-text);
}
#bupmb .bupmb-chip input:checked + .bupmb-chip-body {
	border-color: var(--bupmb-a1);
	background: var(--b-tint);
	color: var(--b-text);
	box-shadow: 0 0 0 1px var(--bupmb-a1), 0 14px 30px -18px var(--b-glow);
}
#bupmb .bupmb-chip input:checked + .bupmb-chip-body svg.bupmb-ico {
	color: var(--b-ink);
}
#bupmb .bupmb-chip input:focus-visible + .bupmb-chip-body {
	outline: 2px solid var(--bupmb-a1);
	outline-offset: 2px;
}
#bupmb .bupmb-chip:active .bupmb-chip-body {
	transform: scale(.97);
}
#bupmb .bupmb-chips--inline {
	display: flex;
	flex-wrap: wrap;
}
#bupmb .bupmb-chips--inline .bupmb-chip-body {
	padding: 10px 16px;
	min-height: 44px;
	border-radius: 999px;
}
#bupmb .bupmb-chips--tiles .bupmb-chip-body {
	flex-direction: column;
	gap: 8px;
	padding: 16px 8px 14px;
	min-height: 92px;
}
#bupmb .bupmb-chips--tiles svg.bupmb-ico {
	width: 26px;
	height: 26px;
	stroke-width: 1.4;
}
#bupmb .bupmb-chips--num {
	grid-template-columns: repeat(auto-fit, minmax(62px, 1fr));
}
#bupmb .bupmb-chips--num .bupmb-chip-body {
	flex-direction: column;
	gap: 3px;
	padding: 13px 6px 11px;
	min-height: 74px;
}
#bupmb .bupmb-chips--num .bupmb-chip-label {
	font-size: 23px;
	font-weight: 750;
	line-height: 1;
	color: var(--b-text);
	letter-spacing: -.02em;
}
#bupmb .bupmb-chip-sub {
	font-size: 11.5px;
	font-weight: 600;
	color: var(--b-faint);
	white-space: nowrap;
}
#bupmb .bupmb-chip input:checked + .bupmb-chip-body .bupmb-chip-sub {
	color: var(--b-ink);
}
#bupmb .bupmb-more {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-top: 12px;
	padding: 12px 14px;
	border-radius: var(--b-r-md);
	border: 1px dashed var(--b-line2);
	font-size: 14px;
	font-weight: 600;
	color: var(--b-muted);
}

/* ------------------------------------------------------------------ *
 * Quantity stepper
 * ------------------------------------------------------------------ */
#bupmb .bupmb-qty {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 2px;
	padding: 3px;
	border-radius: 999px;
	border: 1px solid var(--b-line);
	background: var(--b-field);
}
#bupmb .bupmb-qty button {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	color: var(--b-text);
	background: var(--b-tile-hover);
	font-size: 18px;
	line-height: 1;
	font-weight: 600;
	transition: background .15s, color .15s, transform .15s;
}
#bupmb .bupmb-qty button svg.bupmb-ico {
	width: 15px;
	height: 15px;
	stroke-width: 2.2;
}
#bupmb .bupmb-qty button:hover {
	background: var(--b-grad);
	color: var(--b-on-accent);
}
#bupmb .bupmb-qty button:active {
	transform: scale(.9);
}
#bupmb .bupmb-qty output {
	display: block;
	min-width: 30px;
	padding: 0 4px;
	text-align: center;
	font-size: 15px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	color: var(--b-faint);
}
#bupmb .bupmb-qty.has-value output {
	color: var(--b-text);
}
#bupmb .bupmb-qty--lg button {
	width: 36px;
	height: 36px;
}
#bupmb .bupmb-qty--lg output {
	min-width: 40px;
	font-size: 18px;
	color: var(--b-text);
}

/* ------------------------------------------------------------------ *
 * Buttons
 * ------------------------------------------------------------------ */
#bupmb .bupmb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 56px;
	padding: 14px 28px;
	border-radius: 999px;
	border: 1px solid transparent;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	text-decoration: none;
	cursor: pointer;
	transition: transform .18s, box-shadow .2s, background .2s, border-color .2s, filter .2s;
}
#bupmb .bupmb-btn svg.bupmb-ico {
	width: 18px;
	height: 18px;
	stroke-width: 2;
	transition: transform .2s;
}
#bupmb .bupmb-btn--primary {
	background: var(--b-grad);
	color: var(--b-on-accent);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), 0 18px 32px -16px var(--b-glow);
}
#bupmb .bupmb-btn--primary:hover {
	transform: translateY(-2px);
	filter: brightness(1.06);
	color: var(--b-on-accent);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35), 0 24px 40px -16px var(--b-glow);
}
#bupmb .bupmb-btn--primary:hover svg.bupmb-ico:last-child {
	transform: translateX(4px);
}
#bupmb .bupmb-btn--primary:active {
	transform: translateY(0) scale(.98);
}
#bupmb .bupmb-btn--ghost {
	background: var(--b-tile);
	border-color: var(--b-line);
	color: var(--b-text);
}
#bupmb .bupmb-btn--ghost:hover {
	background: var(--b-tile-hover);
	border-color: var(--b-line2);
	color: var(--b-text);
}
#bupmb .bupmb-btn:disabled {
	opacity: .75;
	cursor: wait;
	transform: none;
}
#bupmb .bupmb-btn.is-loading svg.bupmb-ico {
	display: none;
}
#bupmb .bupmb-btn.is-loading::after {
	content: '';
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: 2px solid currentColor;
	border-right-color: transparent;
	animation: bupmb-spin .7s linear infinite;
}
@keyframes bupmb-spin {
	to {
		transform: rotate(360deg);
	}
}

/* ------------------------------------------------------------------ *
 * Step 2 – locations
 * ------------------------------------------------------------------ */
#bupmb .bupmb-loc {
	display: grid;
	grid-template-columns: 34px minmax(0, 1fr);
	gap: 12px;
}
#bupmb .bupmb-loc-rail {
	position: relative;
	display: flex;
	justify-content: center;
}
#bupmb .bupmb-loc-rail::after {
	content: '';
	position: absolute;
	top: 40px;
	bottom: -2px;
	left: 50%;
	border-left: 2px dashed var(--b-line2);
	transform: translateX(-1px);
}
#bupmb .bupmb-loc.is-last .bupmb-loc-rail::after {
	display: none;
}
#bupmb .bupmb-loc-pin {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	margin-top: 2px;
	border-radius: 50%;
	background: var(--b-grad);
	color: var(--b-on-accent);
	font-size: 14px;
	font-weight: 800;
	box-shadow: 0 0 0 5px var(--b-tint);
}
#bupmb .bupmb-loc.is-stop .bupmb-loc-pin {
	background: var(--b-solid);
	color: var(--b-ink);
	border: 1.5px solid var(--bupmb-a1);
}
#bupmb .bupmb-loc-body {
	min-width: 0;
	padding-bottom: 22px;
}
#bupmb .bupmb-loc-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 30px;
	margin-bottom: 4px;
}
#bupmb .bupmb-loc-top .bupmb-label {
	margin: 0;
	font-size: 14.5px;
}
#bupmb .bupmb-loc-remove {
	display: grid;
	place-items: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	color: var(--b-faint);
	transition: color .2s, background .2s;
}
#bupmb .bupmb-loc-remove:hover {
	color: var(--b-danger);
	background: rgba(255, 110, 110, .12);
}
#bupmb .bupmb-loc-remove svg.bupmb-ico {
	width: 17px;
	height: 17px;
}
#bupmb .bupmb-ac {
	position: relative;
}
#bupmb .bupmb-ac-list {
	position: absolute;
	z-index: 40;
	left: 0;
	right: 0;
	top: calc(100% + 6px);
	padding: 6px;
	border-radius: var(--b-r-md);
	border: 1px solid var(--b-line2);
	background: var(--b-solid);
	box-shadow: 0 30px 60px -24px rgba(38, 52, 120, .55);
	max-height: 290px;
	overflow: auto;
}
#bupmb .bupmb-ac-list li {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 10px 11px;
	border-radius: calc(var(--b-r-md) - 4px);
	cursor: pointer;
	color: var(--b-text);
}
#bupmb .bupmb-ac-list li svg.bupmb-ico {
	width: 18px;
	height: 18px;
	color: var(--b-ink);
}
#bupmb .bupmb-ac-list li span {
	min-width: 0;
	display: block;
}
#bupmb .bupmb-ac-list li strong {
	display: block;
	font-size: 14.5px;
	font-weight: 650;
	line-height: 1.3;
}
#bupmb .bupmb-ac-list li small {
	display: block;
	font-size: 12.5px;
	color: var(--b-muted);
	line-height: 1.3;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
#bupmb .bupmb-ac-list li:hover,
#bupmb .bupmb-ac-list li.is-active {
	background: var(--b-tint);
}
#bupmb .bupmb-loc-opts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin-top: 10px;
}
#bupmb .bupmb-mini {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 6px;
	padding: 9px 12px 10px;
	border-radius: var(--b-r-sm);
	border: 1px solid var(--b-line);
	background: var(--b-tile);
	min-width: 0;
	margin: 0;
	cursor: default;
}
#bupmb .bupmb-mini > span {
	font-size: 11px;
	font-weight: 700;
	color: var(--b-faint);
	line-height: 1.2;
}
#bupmb .bupmb-mini :is(select, input[type='text']) {
	width: 100%;
	padding: 2px 0;
	border: 0;
	border-radius: 0;
	background-color: transparent;
	color: var(--b-text);
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.5;
}
#bupmb .bupmb-mini select {
	padding-right: 22px;
	background-size: 16px;
}
#bupmb .bupmb-mini input[type='text']::placeholder {
	color: var(--b-faint);
}
#bupmb .bupmb-mini .bupmb-qty {
	align-self: flex-start;
	padding: 2px;
	border: 0;
	background: transparent;
}
#bupmb .bupmb-mini .bupmb-qty button {
	width: 26px;
	height: 26px;
}
#bupmb .bupmb-mini .bupmb-qty output {
	min-width: 26px;
}
#bupmb .bupmb-switch {
	cursor: pointer;
}
#bupmb .bupmb-switch input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}
#bupmb .bupmb-switch i {
	position: relative;
	display: block;
	width: 46px;
	height: 26px;
	border-radius: 999px;
	background: var(--b-field);
	border: 1px solid var(--b-line2);
	transition: background .2s, border-color .2s;
}
#bupmb .bupmb-switch i::after {
	content: '';
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--b-muted);
	transition: transform .22s cubic-bezier(.3, .7, .3, 1.3), background .2s;
}
#bupmb .bupmb-switch input:checked + i {
	background: var(--b-grad);
	border-color: transparent;
}
#bupmb .bupmb-switch input:checked + i::after {
	transform: translateX(20px);
	background: var(--b-on-accent);
}
#bupmb .bupmb-switch input:focus-visible + i {
	outline: 2px solid var(--bupmb-a1);
	outline-offset: 2px;
}
#bupmb .bupmb-addstop {
	margin: -6px 0 22px 46px;
	min-height: 44px;
	padding: 9px 18px;
	border-style: dashed;
	border-color: var(--b-line2);
	font-size: 14.5px;
	color: var(--b-ink);
}

/* Route result */
#bupmb .bupmb-route {
	position: relative;
	display: grid;
	gap: 14px;
	padding: 16px;
	border-radius: var(--b-r-md);
	border: 1px solid var(--b-line);
	background: linear-gradient(140deg, var(--b-tint), transparent 60%), var(--b-tile);
	overflow: hidden;
}
#bupmb .bupmb-route-art svg {
	display: block;
	width: 100%;
	height: auto;
	max-height: 130px;
	overflow: visible;
}
#bupmb .bupmb-route-art path {
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}
#bupmb .bupmb-route-glow {
	stroke: var(--bupmb-a2);
	stroke-width: 9;
	opacity: .22;
	filter: blur(5px);
}
#bupmb .bupmb-route-line {
	stroke: url(#bupmb-rg);
	stroke-width: 3;
	stroke-dasharray: 5 9;
	opacity: .45;
}
#bupmb .bupmb-route[data-state='ok'] .bupmb-route-line {
	stroke-dasharray: none;
	opacity: 1;
}
#bupmb .bupmb-route-line.is-drawn {
	stroke-dasharray: 1400;
	stroke-dashoffset: 1400;
	animation: bupmb-draw 1.6s cubic-bezier(.4, .1, .2, 1) forwards;
}
@keyframes bupmb-draw {
	to {
		stroke-dashoffset: 0;
	}
}
#bupmb .bupmb-route-dots circle {
	fill: var(--b-solid);
	stroke: var(--bupmb-a1);
	stroke-width: 3;
}
#bupmb .bupmb-route-dots circle:last-child {
	fill: var(--bupmb-a2);
	stroke: var(--b-solid);
}
#bupmb .bupmb-route-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
}
#bupmb .bupmb-stat {
	padding: 12px 8px;
	border-radius: var(--b-r-sm);
	border: 1px solid var(--b-line);
	background: var(--b-field);
	text-align: center;
}
#bupmb .bupmb-stat-val {
	display: block;
	font-size: clamp(18px, 4.6cqi, 25px);
	font-weight: 800;
	letter-spacing: -.02em;
	line-height: 1.15;
	font-variant-numeric: tabular-nums;
	color: var(--b-text);
	white-space: nowrap;
}
#bupmb .bupmb-stat-lbl {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	font-weight: 700;
	color: var(--b-faint);
}
#bupmb .bupmb-route[data-state='loading'] .bupmb-stat-val {
	color: transparent;
	border-radius: 6px;
	background: linear-gradient(90deg, var(--b-line) 25%, var(--b-line2) 50%, var(--b-line) 75%) 0 0 / 200% 100%;
	animation: bupmb-shimmer 1.1s linear infinite;
}
@keyframes bupmb-shimmer {
	to {
		background-position: -200% 0;
	}
}
#bupmb .bupmb-route-msg {
	font-size: 13.5px;
	color: var(--b-muted);
	text-align: center;
}
#bupmb .bupmb-route-msg:empty {
	display: none;
}

/* ------------------------------------------------------------------ *
 * Step 4 – inventory
 * ------------------------------------------------------------------ */
#bupmb .bupmb-inv-tools {
	display: grid;
	gap: 12px;
	margin-bottom: 16px;
}
#bupmb .bupmb-cats {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding: 2px 2px 8px;
	margin: 0 -2px;
	scrollbar-width: thin;
	scrollbar-color: var(--b-line2) transparent;
	-webkit-overflow-scrolling: touch;
}
#bupmb .bupmb-cat {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	flex: 0 0 auto;
	padding: 9px 14px;
	border-radius: 999px;
	border: 1px solid var(--b-line);
	background: var(--b-tile);
	color: var(--b-muted);
	font-size: 13.5px;
	font-weight: 650;
	line-height: 1.2;
	white-space: nowrap;
	transition: background .2s, color .2s, border-color .2s;
}
#bupmb .bupmb-cat svg.bupmb-ico {
	width: 16px;
	height: 16px;
}
#bupmb .bupmb-cat:hover {
	color: var(--b-text);
	border-color: var(--b-line2);
}
#bupmb .bupmb-cat.is-active {
	background: var(--b-grad);
	border-color: transparent;
	color: var(--b-on-accent);
}
#bupmb .bupmb-cat-count {
	display: inline-grid;
	place-items: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--b-line);
	font-style: normal;
	font-size: 11.5px;
	font-weight: 800;
}
#bupmb .bupmb-cat.has-items:not(.is-active) {
	border-color: var(--bupmb-a1);
	color: var(--b-ink);
}
#bupmb .bupmb-cat.is-active .bupmb-cat-count {
	background: rgba(0, 0, 0, .18);
}
#bupmb .bupmb-items {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
#bupmb .bupmb-item {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	padding: 14px 10px 12px;
	border-radius: var(--b-r-md);
	border: 1px solid var(--b-line);
	background: var(--b-tile);
	transition: transform .2s, border-color .2s, background .2s, box-shadow .2s;
}
#bupmb .bupmb-item:hover {
	background: var(--b-tile-hover);
	border-color: var(--b-line2);
	transform: translateY(-2px);
}
#bupmb .bupmb-item.is-on {
	border-color: var(--c, var(--bupmb-a1));
	background: var(--b-solid);
	box-shadow: 0 0 0 1.5px var(--c, var(--bupmb-a1)), 0 22px 36px -26px var(--c, var(--bupmb-a1));
}
#bupmb .bupmb-item-add {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 9px;
	width: 100%;
	flex: 1 1 auto;
	color: var(--b-text);
	text-align: center;
}
#bupmb .bupmb-item-ico {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	border-radius: 50%;
	background: rgba(47, 125, 246, .13);
	background: color-mix(in srgb, var(--c, var(--bupmb-a1)) 14%, transparent);
	color: var(--c, var(--bupmb-a1));
	transition: background .2s, color .2s, transform .25s cubic-bezier(.3, .7, .3, 1.4);
}
#bupmb .bupmb-item-ico svg.bupmb-ico {
	width: 27px;
	height: 27px;
	stroke-width: 1.45;
}
#bupmb .bupmb-item:hover .bupmb-item-ico {
	transform: scale(1.07);
}
#bupmb .bupmb-item.is-on .bupmb-item-ico {
	background: var(--c, var(--bupmb-a1));
	color: #ffffff;
	box-shadow: 0 12px 22px -12px var(--c, var(--bupmb-a1));
}
#bupmb .bupmb-item-name {
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.25;
	text-wrap: balance;
}
#bupmb .bupmb-item-tag {
	padding: 3px 8px;
	border-radius: 999px;
	background: var(--b-tint);
	color: var(--b-ink);
	font-size: 10.5px;
	font-weight: 700;
	line-height: 1.3;
}
#bupmb .bupmb-empty {
	padding: 26px 12px;
	text-align: center;
	color: var(--b-muted);
	border: 1px dashed var(--b-line2);
	border-radius: var(--b-r-md);
	font-size: 14.5px;
}
#bupmb .bupmb-custom {
	margin-top: 18px;
	padding: 16px;
	border-radius: var(--b-r-md);
	border: 1px dashed var(--b-line2);
}
#bupmb .bupmb-custom-row {
	display: grid;
	gap: 10px;
}
#bupmb .bupmb-custom-list {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
#bupmb .bupmb-custom-list:not(:empty) {
	margin-top: 12px;
}
#bupmb .bupmb-custom-list li {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 5px 5px 5px 14px;
	border-radius: 999px;
	border: 1px solid var(--bupmb-a1);
	background: var(--b-tint);
	font-size: 14px;
	font-weight: 600;
}
#bupmb .bupmb-custom-list .bupmb-qty button {
	width: 26px;
	height: 26px;
}

/* Extras */
#bupmb .bupmb-extras {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 10px;
	margin-bottom: 24px;
}
#bupmb .bupmb-extra {
	position: relative;
	display: block;
	margin: 0;
	cursor: pointer;
}
#bupmb .bupmb-extra input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}
#bupmb .bupmb-extra-body {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) 24px;
	grid-template-areas: 'ico text check' 'ico price check';
	align-items: center;
	gap: 4px 12px;
	height: 100%;
	padding: 12px 14px 12px 12px;
	border-radius: var(--b-r-md);
	border: 1px solid var(--b-line);
	background: var(--b-tile);
	transition: border-color .2s, background .2s, box-shadow .2s;
}
#bupmb .bupmb-extra:hover .bupmb-extra-body {
	background: var(--b-tile-hover);
	border-color: var(--b-line2);
}
#bupmb .bupmb-extra-ico {
	grid-area: ico;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--c, var(--bupmb-a1)) 14%, transparent);
	color: var(--c, var(--bupmb-a1));
}
#bupmb .bupmb-extra-text {
	grid-area: text;
	min-width: 0;
}
#bupmb .bupmb-extra-text strong {
	display: block;
	font-size: 14.5px;
	font-weight: 650;
	line-height: 1.3;
}
#bupmb .bupmb-extra-text small {
	display: block;
	margin-top: 2px;
	font-size: 12.5px;
	color: var(--b-muted);
	line-height: 1.35;
}
#bupmb .bupmb-extra-price {
	grid-area: price;
	font-size: 13.5px;
	font-weight: 700;
	color: var(--b-ink);
	white-space: nowrap;
}
#bupmb .bupmb-extra-check {
	grid-area: check;
	display: grid;
	place-items: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	border: 1.5px solid var(--b-line2);
	color: transparent;
	transition: background .2s, border-color .2s, color .2s;
}
#bupmb .bupmb-extra-check svg.bupmb-ico {
	width: 15px;
	height: 15px;
	stroke-width: 3;
}
#bupmb .bupmb-extra input:checked + .bupmb-extra-body {
	border-color: var(--bupmb-a1);
	background: var(--b-tint);
	box-shadow: 0 0 0 1px var(--bupmb-a1);
}
#bupmb .bupmb-extra input:checked + .bupmb-extra-body .bupmb-extra-check {
	background: var(--b-grad);
	border-color: transparent;
	color: var(--b-on-accent);
}
#bupmb .bupmb-extra input:checked + .bupmb-extra-body .bupmb-extra-ico {
	background: var(--c, var(--bupmb-a1));
	color: #ffffff;
}
#bupmb .bupmb-extra input:focus-visible + .bupmb-extra-body {
	outline: 2px solid var(--bupmb-a1);
	outline-offset: 2px;
}

/* ------------------------------------------------------------------ *
 * Step 5 – review
 * ------------------------------------------------------------------ */
#bupmb .bupmb-rec {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px 14px;
	margin-bottom: 14px;
	padding: 12px 14px;
	border-radius: var(--b-r-md);
	border: 1px solid var(--bupmb-a1);
	background: var(--b-tint);
	font-size: 14.5px;
	font-weight: 600;
}
#bupmb .bupmb-rec-apply {
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--b-grad);
	color: var(--b-on-accent);
	font-size: 13.5px;
	font-weight: 700;
}
#bupmb .bupmb-review {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
}
#bupmb .bupmb-rcard {
	padding: 14px 16px 16px;
	border-radius: var(--b-r-md);
	border: 1px solid var(--b-line);
	background: var(--b-tile);
	min-width: 0;
}
#bupmb .bupmb-rcard-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 8px;
}
#bupmb .bupmb-rcard-head h4 {
	font-size: 11.5px;
	font-weight: 800;
	color: var(--b-ink);
	line-height: 1.3;
}
#bupmb .bupmb-rcard-edit {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 8px;
	border-radius: 8px;
	color: var(--b-muted);
	font-size: 12.5px;
	font-weight: 650;
}
#bupmb .bupmb-rcard-edit svg.bupmb-ico {
	width: 14px;
	height: 14px;
}
#bupmb .bupmb-rcard-edit:hover {
	color: var(--b-text);
	background: var(--b-tile-hover);
}
#bupmb .bupmb-rcard dl > div {
	padding: 3px 0;
}
#bupmb .bupmb-rcard dt {
	font-size: 11.5px;
	font-weight: 700;
	color: var(--b-faint);
	margin-top: 4px;
}
#bupmb .bupmb-rcard dd {
	font-size: 14.5px;
	font-weight: 550;
	line-height: 1.45;
	overflow-wrap: anywhere;
	white-space: pre-line;
}
#bupmb .bupmb-rcard--wide dl {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0 18px;
}
#bupmb .bupmb-quote {
	position: relative;
	margin-top: 14px;
	padding: 18px 16px;
	border-radius: var(--b-r-md);
	border: 1px solid var(--bupmb-a1);
	background: linear-gradient(140deg, var(--b-tint), transparent 70%), var(--b-field);
	box-shadow: 0 24px 50px -30px var(--b-glow);
}
#bupmb .bupmb-quote-lines li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 14px;
	padding: 7px 0;
	font-size: 14.5px;
	border-bottom: 1px dashed var(--b-line);
}
#bupmb .bupmb-quote-lines li span {
	min-width: 0;
	color: var(--b-text);
	font-weight: 550;
}
#bupmb .bupmb-quote-lines li small {
	display: block;
	font-size: 12px;
	color: var(--b-faint);
	font-weight: 500;
}
#bupmb .bupmb-quote-lines li b {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
#bupmb .bupmb-quote-total {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 14px;
	padding-top: 14px;
}
#bupmb .bupmb-quote-total span {
	font-size: 15px;
	font-weight: 700;
}
#bupmb .bupmb-quote-total small {
	display: block;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--b-muted);
}
#bupmb .bupmb-quote-total strong {
	font-size: clamp(24px, 6cqi, 34px);
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: 1.1;
	color: var(--b-ink);
	font-variant-numeric: tabular-nums;
}
#bupmb .bupmb-quote-note {
	margin-top: 12px;
	font-size: 12.5px;
	color: var(--b-muted);
	line-height: 1.5;
}
#bupmb .bupmb-quote-note--big {
	margin: 0;
	font-size: 15px;
	color: var(--b-text);
	font-weight: 600;
}
#bupmb .bupmb-consent {
	position: relative;
	display: grid;
	grid-template-columns: 26px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
	margin: 18px 0 4px;
	cursor: pointer;
}
#bupmb .bupmb-consent input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}
#bupmb .bupmb-consent-box {
	display: grid;
	place-items: center;
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: 1.5px solid var(--b-line2);
	background: var(--b-field);
	color: transparent;
	transition: background .2s, border-color .2s, color .2s;
}
#bupmb .bupmb-consent-box svg.bupmb-ico {
	width: 16px;
	height: 16px;
	stroke-width: 3;
}
#bupmb .bupmb-consent input:checked + .bupmb-consent-box {
	background: var(--b-grad);
	border-color: transparent;
	color: var(--b-on-accent);
}
#bupmb .bupmb-consent input:focus-visible + .bupmb-consent-box {
	outline: 2px solid var(--bupmb-a1);
	outline-offset: 2px;
}
#bupmb .bupmb-consent.is-invalid .bupmb-consent-box {
	border-color: var(--b-danger);
	box-shadow: 0 0 0 4px rgba(255, 110, 110, .16);
}
#bupmb .bupmb-consent-text {
	font-size: 13.5px;
	color: var(--b-muted);
	line-height: 1.5;
	padding-top: 2px;
}
#bupmb .bupmb-consent-text a {
	color: var(--b-ink);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* ------------------------------------------------------------------ *
 * Alert + nav
 * ------------------------------------------------------------------ */
#bupmb .bupmb-alert {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-top: 16px;
	padding: 12px 14px;
	border-radius: var(--b-r-md);
	border: 1px solid rgba(255, 110, 110, .45);
	background: rgba(255, 90, 90, .12);
	color: var(--b-danger);
	font-size: 14.5px;
	font-weight: 600;
	animation: bupmb-shake .35s;
}
#bupmb .bupmb-alert svg.bupmb-ico {
	margin-top: 1px;
}
@keyframes bupmb-shake {
	25% {
		transform: translateX(-5px);
	}
	75% {
		transform: translateX(5px);
	}
}
#bupmb .bupmb-nav {
	position: sticky;
	bottom: 10px;
	z-index: 20;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 22px -6px 0;
	padding: 8px;
	border-radius: calc(var(--b-r-md) + 8px);
	border: 1px solid var(--b-line);
	background: rgba(255, 255, 255, .86);
	background: color-mix(in srgb, var(--b-solid) 86%, transparent);
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
	box-shadow: 0 22px 44px -24px rgba(38, 52, 120, .6);
}
#bupmb .bupmb-nav .bupmb-back {
	padding-left: 14px;
	padding-right: 18px;
}
#bupmb .bupmb-nav .bupmb-next {
	flex: 1 1 0;
	min-width: 0;
	margin-left: auto;
	padding-left: 14px;
	padding-right: 14px;
}
#bupmb .bupmb-nav .bupmb-next span {
	overflow: hidden;
	text-overflow: ellipsis;
}
#bupmb .bupmb-nav-est {
	order: -1;
	flex: 0 0 100%;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
	min-width: 0;
	padding: 4px 8px 2px;
	line-height: 1.2;
}
#bupmb .bupmb-nav-est small {
	display: block;
	font-size: 10.5px;
	font-weight: 700;
	color: var(--b-faint);
}
#bupmb .bupmb-nav-est strong {
	display: block;
	font-size: 15px;
	font-weight: 800;
	color: var(--b-ink);
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}
#bupmb.is-quoting .bupmb-nav-est strong,
#bupmb.is-quoting .bupmb-side-total {
	opacity: .5;
}

/* ------------------------------------------------------------------ *
 * Side summary
 * ------------------------------------------------------------------ */
#bupmb .bupmb-side {
	position: sticky;
	top: 48px;
	padding: 22px 20px 20px;
}
#bupmb .bupmb-side-title {
	font-size: 18px;
	font-weight: 750;
	letter-spacing: -.01em;
	margin-bottom: 14px;
}
#bupmb .bupmb-side-list li {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	padding: 11px 0;
	border-bottom: 1px solid var(--b-line);
}
#bupmb .bupmb-side-list li > svg.bupmb-ico {
	width: 38px;
	height: 38px;
	padding: 9px;
	border-radius: 50%;
	background: color-mix(in srgb, var(--c, var(--bupmb-a1)) 13%, transparent);
	color: var(--c, var(--bupmb-a1));
	transition: color .3s, background .3s;
}
#bupmb .bupmb-side-list li.is-set > svg.bupmb-ico {
	background: var(--c, var(--bupmb-a1));
	color: #ffffff;
}
#bupmb .bupmb-side-list small {
	display: block;
	font-size: 11px;
	font-weight: 700;
	color: var(--b-faint);
}
#bupmb .bupmb-side-list span {
	display: block;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.35;
	overflow-wrap: anywhere;
}
#bupmb .bupmb-side-est {
	margin: 18px 0 16px;
	padding: 16px;
	border-radius: var(--b-r-md);
	background: var(--b-grad);
	color: var(--b-on-accent);
	box-shadow: 0 24px 40px -24px var(--b-glow);
}

#bupmb .bupmb-side-est small {
	display: block;
	font-size: 11px;
	font-weight: 700;
	color: var(--b-muted);
}
#bupmb .bupmb-side-total {
	display: block;
	margin-top: 4px;
	font-size: 27px;
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: 1.15;
	color: var(--b-ink);
	font-variant-numeric: tabular-nums;
	transition: opacity .2s;
}
#bupmb .bupmb-side-note {
	display: block;
	margin-top: 4px;
	font-size: 12.5px;
	color: var(--b-muted);
}
#bupmb .bupmb-side-note:empty {
	display: none;
}
#bupmb .bupmb-side .bupmb-side-est small,
#bupmb .bupmb-side .bupmb-side-est .bupmb-side-note {
	color: rgba(255, 255, 255, .84);
}
#bupmb .bupmb-side .bupmb-side-est .bupmb-side-total {
	color: #ffffff;
}
#bupmb .bupmb-perks li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 5px 0;
	font-size: 13.5px;
	color: var(--b-muted);
}
#bupmb .bupmb-perks svg.bupmb-ico {
	width: 17px;
	height: 17px;
	color: var(--b-ink);
}
#bupmb .bupmb-side-call {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 14px;
	padding: 12px 14px;
	border-radius: var(--b-r-md);
	border: 1px solid var(--b-line);
	background: var(--b-tile);
	color: var(--b-text);
	font-size: 16px;
	font-weight: 750;
	transition: background .2s, border-color .2s;
}
#bupmb .bupmb-side-call:hover {
	background: var(--b-tile-hover);
	border-color: var(--b-line2);
	color: var(--b-text);
}
#bupmb .bupmb-side-call svg.bupmb-ico {
	color: var(--b-ink);
}
#bupmb .bupmb-side-call small {
	display: block;
	font-size: 11.5px;
	font-weight: 600;
	color: var(--b-muted);
}

/* ------------------------------------------------------------------ *
 * Thank-you screen
 * ------------------------------------------------------------------ */
#bupmb .bupmb-done {
	max-width: 660px;
	margin: 8px auto 0;
	padding: 38px 20px 30px;
	text-align: center;
	outline: 0;
	animation: bupmb-in .6s cubic-bezier(.2, .7, .2, 1) both;
}
#bupmb .bupmb-done-check {
	width: 84px;
	height: 84px;
	margin: 0 auto 20px;
	border-radius: 50%;
	background: var(--b-tint);
	box-shadow: 0 0 0 12px var(--b-tint), 0 24px 50px -16px var(--b-glow);
}
#bupmb .bupmb-done-check svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: var(--bupmb-a1);
	stroke-width: 3.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}
#bupmb .bupmb-done-check circle {
	stroke-dasharray: 183;
	stroke-dashoffset: 183;
	animation: bupmb-draw .8s .15s ease-out forwards;
}
#bupmb .bupmb-done-check path {
	stroke-dasharray: 40;
	stroke-dashoffset: 40;
	animation: bupmb-draw .45s .8s ease-out forwards;
}
#bupmb .bupmb-done-title {
	font-size: clamp(24px, 5.4cqi, 34px);
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: 1.15;
	text-wrap: balance;
}
#bupmb .bupmb-done-msg {
	margin: 12px auto 0;
	max-width: 500px;
	color: var(--b-muted);
	font-size: 16px;
	line-height: 1.6;
}
#bupmb .bupmb-done-meta {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px;
	margin: 24px 0 22px;
}
#bupmb .bupmb-done-meta > div {
	min-width: 150px;
	padding: 12px 20px;
	border-radius: var(--b-r-md);
	border: 1px solid var(--b-line);
	background: var(--b-field);
}
#bupmb .bupmb-done-meta small {
	display: block;
	font-size: 11px;
	font-weight: 700;
	color: var(--b-faint);
}
#bupmb .bupmb-done-meta strong {
	display: block;
	margin-top: 2px;
	font-size: 20px;
	font-weight: 800;
	color: var(--b-ink);
	letter-spacing: -.01em;
}
#bupmb .bupmb-done-help {
	font-size: 14.5px;
	color: var(--b-muted);
	margin-bottom: 14px;
}
#bupmb .bupmb-done-contact {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px;
}
#bupmb .bupmb-done-contact .bupmb-btn {
	max-width: 100%;
}
#bupmb .bupmb-done-contact .bupmb-btn span {
	overflow: hidden;
	text-overflow: ellipsis;
}
#bupmb .bupmb-done-hours {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 18px;
	font-size: 13.5px;
	color: var(--b-muted);
}
#bupmb .bupmb-done-hours svg.bupmb-ico {
	width: 16px;
	height: 16px;
}

#bupmb .bupmb-trust {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 16px;
	font-size: 12.5px;
	color: var(--b-faint);
	text-align: center;
	line-height: 1.4;
}
#bupmb .bupmb-trust svg.bupmb-ico {
	width: 15px;
	height: 15px;
}

/* ------------------------------------------------------------------ *
 * Wider containers
 * ------------------------------------------------------------------ */
@container bupmb (min-width: 520px) {
	#bupmb .bupmb-inner {
		padding: 30px 22px 22px;
	}
	#bupmb .bupmb-main {
		padding: 28px 26px 18px;
	}
	#bupmb .bupmb-stepdot-ico {
		width: 42px;
		height: 42px;
	}
	#bupmb .bupmb-grid2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	#bupmb .bupmb-span2 {
		grid-column: 1 / -1;
	}
	#bupmb .bupmb-chips--tiles {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
	#bupmb .bupmb-loc-opts {
		grid-template-columns: 1.3fr .9fr 1fr auto;
	}
	#bupmb .bupmb-items {
		grid-template-columns: repeat(auto-fill, minmax(138px, 1fr));
		gap: 12px;
	}
	#bupmb .bupmb-custom-row {
		grid-template-columns: minmax(0, 1fr) auto;
	}
	#bupmb .bupmb-route {
		grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
		align-items: center;
		padding: 18px 20px;
	}
	#bupmb .bupmb-route-msg {
		grid-column: 1 / -1;
	}
	#bupmb .bupmb-review,
	#bupmb .bupmb-extras {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	#bupmb .bupmb-rcard--wide {
		grid-column: 1 / -1;
	}
	#bupmb .bupmb-rcard--wide dl {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	#bupmb .bupmb-nav {
		flex-wrap: nowrap;
		margin-left: 0;
		margin-right: 0;
	}
	#bupmb .bupmb-nav-est {
		order: 0;
		flex: 0 1 auto;
		display: block;
		padding: 0 6px;
	}
	#bupmb .bupmb-nav .bupmb-next {
		flex: 0 0 auto;
		min-width: 190px;
		padding-left: 24px;
		padding-right: 24px;
	}
	#bupmb .bupmb-extra-body {
		grid-template-columns: 44px minmax(0, 1fr) auto 24px;
		grid-template-areas: 'ico text price check';
		gap: 12px;
	}
	#bupmb .bupmb-done {
		padding: 50px 36px 40px;
	}
}

@container bupmb (min-width: 760px) {
	#bupmb .bupmb-rcard--wide dl {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@container bupmb (min-width: 960px) {
	#bupmb .bupmb-inner {
		padding: 48px 44px 30px;
	}
	#bupmb .bupmb-hero {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: end;
		gap: 32px;
		margin-bottom: 30px;
		padding: 0 4px;
	}
	#bupmb .bupmb-stepdot:not(.is-active) .bupmb-stepdot-label {
		display: none;
	}
	#bupmb .bupmb-layout {
		grid-template-columns: minmax(0, 1fr) 340px;
		gap: 24px;
	}
	#bupmb .bupmb-main {
		padding: 38px 38px 22px;
	}
	#bupmb .bupmb-side {
		display: block;
	}
	#bupmb .bupmb-nav-est {
		display: none;
	}
	#bupmb .bupmb-nav {
		position: static;
		margin-top: 28px;
		padding: 0;
		border: 0;
		background: none;
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
		box-shadow: none;
	}
	#bupmb .bupmb-rcard--wide dl {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: reduce) {
	#bupmb *,
	#bupmb *::before,
	#bupmb *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

@media print {
	#bupmb .bupmb-bg,
	#bupmb .bupmb-nav,
	#bupmb .bupmb-steps {
		display: none !important;
	}
}

/* Very wide containers (full-screen layout on large monitors) */
@container bupmb (min-width: 1280px) {
	#bupmb .bupmb-inner {
		padding: 60px 60px 34px;
	}
	#bupmb .bupmb-layout {
		grid-template-columns: minmax(0, 1fr) 380px;
		gap: 28px;
	}
	#bupmb .bupmb-main {
		padding: 44px 46px 26px;
	}
	#bupmb .bupmb-side {
		padding: 28px 26px 24px;
	}
	#bupmb .bupmb-stepdot .bupmb-stepdot-label,
	#bupmb .bupmb-stepdot:not(.is-active) .bupmb-stepdot-label {
		display: block;
	}
	#bupmb .bupmb-items {
		grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
		gap: 14px;
	}
	#bupmb .bupmb-chips--tiles {
		grid-template-columns: repeat(8, minmax(0, 1fr));
	}
	#bupmb .bupmb-rcard--wide dl {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@container bupmb (min-width: 1560px) {
	#bupmb .bupmb-extras {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@container bupmb (max-width: 519px) {
	#bupmb .bupmb-nav .bupmb-back {
		flex: 0 0 56px;
		padding: 0;
	}
	#bupmb .bupmb-nav .bupmb-back span {
		display: none;
	}
	#bupmb .bupmb-stepdot button {
		padding: 4px;
		font-size: 13.5px;
		gap: 7px;
	}
	#bupmb .bupmb-stepdot-ico {
		width: 34px;
		height: 34px;
	}
	#bupmb .bupmb-steps ol {
		gap: 2px;
		justify-content: space-between;
	}
}
@container bupmb (min-width: 720px) and (max-width: 959px) {
	#bupmb .bupmb-stepdot,
	#bupmb .bupmb-stepdot.is-active {
		flex: 1 1 0;
	}
	#bupmb .bupmb-stepdot .bupmb-stepdot-label {
		display: block;
	}
}
