/*
 * Product configurator styles.
 * Colours and fonts follow the site theme: brand blue #006bb4 (headings, Add to Cart),
 * dark slate #2f3d49 (header), Ubuntu for headings and Source Sans 3 for body text.
 */
.cims-ext-configurator-part-number,
.cims-ext-configurator-sticky,
.cims-ext-configurator-note {
	--cims-ext-configurator-blue: #006bb4;
	--cims-ext-configurator-blue-dark: #00548d;
	--cims-ext-configurator-slate: #2f3d49;
}

/* Configured part number above Add to Cart. */
.cims-ext-configurator-part-number {
	margin: 0 0 1rem;
	color: var(--cims-ext-configurator-slate);
	font-size: 1.05rem;
	line-height: 1.4;
}

.cims-ext-configurator-part-number__label {
	font-weight: 700;
}

.cims-ext-configurator-part-number__value {
	color: var(--cims-ext-configurator-blue);
	font-weight: 700;
	letter-spacing: 0.03em;
	overflow-wrap: anywhere;
}

/* Sticky SKU and total while scrolling through the options. */
.cims-ext-configurator-sticky {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 50;
	padding: 0.85rem 1.25rem calc(0.85rem + env(safe-area-inset-bottom, 0px));
	border-top: 4px solid var(--cims-ext-configurator-blue-dark);
	background: var(--cims-ext-configurator-blue);
	box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.18);
	color: #fff;
	font-family: "Source Sans 3", sans-serif;
	transform: translateY(115%);
	transition: transform 0.25s ease;
}

.cims-ext-configurator-sticky.is-visible {
	transform: translateY(0);
}

.cims-ext-configurator-sticky__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 2rem;
	max-width: 1250px;
	margin: 0 auto;
}

.cims-ext-configurator-sticky__item {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.cims-ext-configurator-sticky__item--total {
	align-items: flex-end;
	text-align: right;
}

.cims-ext-configurator-sticky__label {
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

.cims-ext-configurator-sticky__sku {
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.cims-ext-configurator-sticky__total {
	font-family: Ubuntu, "Source Sans 3", sans-serif;
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
}

@media (max-width: 600px) {
	.cims-ext-configurator-sticky {
		padding: 0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
	}

	.cims-ext-configurator-sticky__inner {
		flex-wrap: nowrap;
		gap: 1rem;
	}

	.cims-ext-configurator-sticky__sku {
		font-size: 0.95rem;
	}

	.cims-ext-configurator-sticky__total {
		font-size: 1.3rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cims-ext-configurator-sticky {
		transition: none;
	}
}

/*
 * Distributor message: a Product Add-Ons Ultimate "Information" field whose
 * Field class is "cims-ext-configurator-note" (text is edited in the admin).
 */
.cims-ext-configurator-note .pewc-information-fields {
	width: 100%;
	margin: 0;
	border: 0;
	border-left: 4px solid var(--cims-ext-configurator-blue);
	border-radius: 4px;
	background: #eef5fb;
}

.cims-ext-configurator-note .pewc-information-fields td {
	padding: 0.9rem 1.1rem;
	border: 0;
	color: var(--cims-ext-configurator-slate);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
}

.cims-ext-configurator-note .pewc-information-image:empty,
.cims-ext-configurator-note .pewc-information-label:empty {
	display: none;
}

.cims-ext-configurator-note a {
	color: var(--cims-ext-configurator-blue);
	font-weight: 700;
	text-decoration: underline;
}

/* Required-option message above Add to Cart. */
.cims-ext-configurator-notice {
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	border-left: 4px solid #b32d2e;
	background: #fcf0f1;
	color: #1d2327;
	font-size: 0.95rem;
	line-height: 1.4;
}

/* Message under a number field whose typed value was set to the limit or rounded. */
.cims-ext-configurator-adjusted {
	margin: 0.4rem 0 0;
	color: #b32d2e;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.4;
}

.cims-ext-configurator-adjusted::before {
	content: "\26A0\FE0E\00A0";
}

input.cims-ext-configurator-adjusted-input {
	border-color: #b32d2e !important;
	box-shadow: 0 0 0 3px rgba(179, 45, 46, 0.2);
	transition: border-color 0.2s, box-shadow 0.2s;
}

/* Bullet-point field descriptions. The add-on plugin prints descriptions inside a paragraph,
   so the browser places the list right after it; the theme removes list markers with a more
   specific rule. Only the list that follows a description is styled, not the option lists. */
.pewc-item-field-wrapper > p.pewc-description + ul {
	margin: 0.25rem 0 0.5rem;
	padding-left: 1.25rem;
}

li.pewc-item .pewc-item-field-wrapper > p.pewc-description + ul > li {
	display: list-item;
	list-style: disc outside !important;
	margin: 0.2rem 0;
	color: #6c6c6c;
	font-size: 0.95rem;
	line-height: 1.5;
}

.pewc-item-field-wrapper > p.pewc-description:empty {
	display: none;
}
