/* CAT Warranty – frontend. Brand defaults follow the site kit (CAT yellow, black, square corners).
   All colors/radii are CSS variables so Elementor widget style controls can override them. */

.cwr {
	--cwr-accent: #ffcd11;
	--cwr-on-accent: #000000;
	--cwr-dark: #111111;
	--cwr-text: #1a1a1a;
	--cwr-muted: #666666;
	--cwr-border: #d0d0d0;
	--cwr-line: #e3e3e3;
	--cwr-surface: #ffffff;
	--cwr-surface-alt: #f5f5f5;
	--cwr-highlight: #fff6cc;
	--cwr-success: #1e7b34;
	--cwr-success-bg: #e6f4ea;
	--cwr-warning: #8a5a00;
	--cwr-warning-bg: #fff1c7;
	--cwr-danger: #c62828;
	--cwr-danger-bg: #fdecec;
	--cwr-radius: 0px;
	--cwr-field-height: 48px;
	color: var(--cwr-text);
	font-family: inherit;
	font-size: 16px;
	line-height: 1.6;
	text-align: left;
	box-sizing: border-box;
}

.cwr *,
.cwr *::before,
.cwr *::after {
	box-sizing: inherit;
}

.cwr [hidden],
.cwr-overlay[hidden] {
	display: none !important;
}

.cwr .cwr-heading {
	margin: 0 0 20px;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.3;
}

.cwr .cwr-icon {
	width: 20px;
	height: 20px;
	flex: none;
}

.cwr .cwr-mono,
.cwr .cwr-input--mono {
	font-variant-numeric: tabular-nums;
	letter-spacing: .02em;
}

.cwr .cwr-muted {
	color: var(--cwr-muted);
}

/* Honeypot */
.cwr .cwr-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ------------------------------------------------------------------ Cards */

.cwr .cwr-card {
	background: var(--cwr-surface);
	border: 1px solid var(--cwr-line);
	border-top: 4px solid var(--cwr-accent);
	border-radius: var(--cwr-radius);
	padding: 24px;
	margin: 0 0 20px;
}

.cwr .cwr-card__header {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 20px;
}

.cwr .cwr-step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 34px;
	height: 34px;
	background: var(--cwr-dark);
	color: var(--cwr-accent);
	font-weight: 600;
	font-size: 17px;
	border-radius: var(--cwr-radius);
}

.cwr .cwr-card__title {
	margin: 2px 0 0;
	font-size: 21px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--cwr-text);
}

.cwr .cwr-card__desc {
	margin: 4px 0 0;
	color: var(--cwr-muted);
	font-size: 14.5px;
	line-height: 1.5;
}

/* ------------------------------------------------------------------ Grid & fields */

.cwr .cwr-grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 18px 20px;
}

.cwr .cwr-col-12 { grid-column: span 12; }
.cwr .cwr-col-6 { grid-column: span 6; }
.cwr .cwr-col-4 { grid-column: span 4; }

.cwr .cwr-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.cwr .cwr-label {
	display: block;
	margin: 0;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--cwr-text);
	vertical-align: baseline;
}

.cwr .cwr-req {
	color: var(--cwr-danger);
	margin-left: 2px;
}

.cwr .cwr-input {
	display: block;
	width: 100%;
	min-height: var(--cwr-field-height);
	margin: 0;
	padding: 10px 14px;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.4;
	color: var(--cwr-text);
	background-color: #ffffff;
	border: 1px solid var(--cwr-border);
	border-radius: var(--cwr-radius);
	box-shadow: none;
	transition: border-color .15s ease, box-shadow .15s ease;
	-webkit-appearance: none;
	appearance: none;
}

.cwr .cwr-input::placeholder {
	color: #9a9a9a;
	opacity: 1;
}

.cwr .cwr-input:focus,
.cwr .cwr-input:focus-visible {
	outline: none;
	border-color: var(--cwr-dark);
	box-shadow: 0 0 0 3px rgba(255, 205, 17, .6);
}

.cwr textarea.cwr-input {
	min-height: 84px;
	resize: vertical;
}

.cwr select.cwr-input {
	padding-right: 42px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23111' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	background-size: 18px;
	cursor: pointer;
}

.cwr .cwr-input--search {
	padding-left: 44px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='6.5' fill='none' stroke='%23666' stroke-width='2'/%3E%3Cpath d='M16 16l4.5 4.5' stroke='%23666' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 14px center;
	background-size: 20px;
}

.cwr .cwr-input--search::-webkit-search-cancel-button {
	-webkit-appearance: searchfield-cancel-button;
}

.cwr .cwr-input--date {
	text-align: left;
	cursor: pointer;
}

.cwr .cwr-input--date::-webkit-date-and-time-value {
	text-align: left;
}

.cwr .cwr-field__help {
	color: var(--cwr-muted);
	font-size: 13.5px;
	line-height: 1.45;
}

.cwr .cwr-field__help a {
	color: var(--cwr-text);
	text-decoration: underline;
}

.cwr .cwr-field__error {
	color: var(--cwr-danger);
	font-size: 14px;
	line-height: 1.45;
	font-weight: 500;
}

.cwr .cwr-field__error::before {
	content: "!";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	margin-right: 6px;
	border-radius: 50%;
	background: var(--cwr-danger);
	color: #ffffff;
	font-size: 11px;
	font-weight: 700;
	vertical-align: 1px;
}

.cwr .cwr-field.has-error .cwr-input,
.cwr .cwr-field.has-error .cwr-upload__drop,
.cwr .cwr-field.has-error .cwr-product__selected {
	border-color: var(--cwr-danger);
}

.cwr .cwr-field.has-error .cwr-input:focus {
	box-shadow: 0 0 0 3px rgba(198, 40, 40, .2);
}

.cwr .cwr-note {
	padding: 10px 14px;
	background: var(--cwr-warning-bg);
	color: var(--cwr-warning);
	font-size: 14px;
	line-height: 1.5;
	border-radius: var(--cwr-radius);
}

/* ------------------------------------------------------------------ Buttons */

.cwr .cwr-btn,
.cwr a.cwr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	margin: 0;
	padding: 10px 24px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
	white-space: normal;
	border: 2px solid transparent;
	border-radius: var(--cwr-radius);
	box-shadow: none;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
	-webkit-tap-highlight-color: transparent;
}

.cwr .cwr-btn.cwr-btn--primary,
.cwr .cwr-btn.cwr-btn--primary:focus {
	background-color: var(--cwr-accent);
	border-color: var(--cwr-accent);
	color: var(--cwr-on-accent);
}

.cwr .cwr-btn.cwr-btn--primary:hover {
	background-color: var(--cwr-dark);
	border-color: var(--cwr-dark);
	color: var(--cwr-accent);
}

.cwr .cwr-btn.cwr-btn--outline,
.cwr .cwr-btn.cwr-btn--outline:focus {
	background-color: transparent;
	border-color: var(--cwr-dark);
	color: var(--cwr-text);
}

.cwr .cwr-btn.cwr-btn--outline:hover {
	background-color: var(--cwr-dark);
	border-color: var(--cwr-dark);
	color: #ffffff;
}

.cwr .cwr-btn:focus-visible {
	outline: 3px solid var(--cwr-accent);
	outline-offset: 2px;
}

.cwr .cwr-btn[disabled],
.cwr .cwr-btn[disabled]:hover {
	opacity: .55;
	cursor: not-allowed;
	background-color: var(--cwr-surface-alt);
	border-color: var(--cwr-border);
	color: var(--cwr-muted);
}

.cwr .cwr-btn.cwr-btn--block {
	display: flex;
	width: 100%;
}

.cwr .cwr-btn.cwr-btn--lg {
	min-height: 56px;
	font-size: 18px;
}

.cwr .cwr-btn.cwr-btn--add {
	width: 100%;
	border-style: dashed;
}

.cwr .cwr-link-btn,
.cwr .cwr-link-btn:focus,
.cwr .cwr-link-btn:hover {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	min-height: 0;
	margin: 0;
	padding: 4px 2px;
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--cwr-text);
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 500;
	line-height: 1.3;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	white-space: nowrap;
}

.cwr .cwr-link-btn:hover {
	color: var(--cwr-muted);
}

.cwr .cwr-link-btn.cwr-link-btn--danger,
.cwr .cwr-link-btn.cwr-link-btn--danger:focus,
.cwr .cwr-link-btn.cwr-link-btn--danger:hover {
	color: var(--cwr-danger);
	text-decoration: none;
}

.cwr .cwr-link-btn .cwr-icon {
	width: 17px;
	height: 17px;
}

/* ------------------------------------------------------------------ Alerts */

.cwr .cwr-alert {
	margin: 0 0 20px;
	padding: 14px 16px;
	border-left: 4px solid var(--cwr-dark);
	border-radius: var(--cwr-radius);
	font-size: 15px;
	line-height: 1.5;
}

.cwr .cwr-alert--error {
	background: var(--cwr-danger-bg);
	border-color: var(--cwr-danger);
	color: #7a1111;
	font-weight: 500;
}

.cwr .cwr-alert--info {
	background: var(--cwr-highlight);
	border-color: var(--cwr-accent);
}

.cwr .cwr-alert a {
	color: inherit;
	font-weight: 600;
	text-decoration: underline;
}

/* ------------------------------------------------------------------ Store combobox */

.cwr .cwr-combo {
	position: relative;
}

.cwr .cwr-combo__toggle,
.cwr .cwr-combo__toggle:hover,
.cwr .cwr-combo__toggle:focus {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	background-color: #ffffff;
	color: var(--cwr-text);
	font-weight: 400;
	text-align: left;
	white-space: normal;
	cursor: pointer;
}

.cwr .cwr-combo__value {
	flex: 1;
	min-width: 0;
}

.cwr .cwr-combo__value.is-placeholder {
	color: #9a9a9a;
}

.cwr .cwr-combo__panel {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 4px);
	z-index: 60;
	background: #ffffff;
	border: 1px solid var(--cwr-dark);
	border-radius: var(--cwr-radius);
	box-shadow: 0 16px 36px rgba(0, 0, 0, .18);
}

.cwr .cwr-combo__search {
	padding: 10px;
	border-bottom: 1px solid var(--cwr-line);
}

.cwr .cwr-combo__list,
.cwr .cwr-dropdown {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 320px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.cwr .cwr-combo__group {
	position: sticky;
	top: 0;
	z-index: 1;
	margin: 0;
	padding: 8px 14px 6px;
	background: var(--cwr-surface-alt);
	color: var(--cwr-muted);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
}

.cwr .cwr-combo__group:empty {
	position: static;
	padding: 0;
	height: 1px;
	background: var(--cwr-line);
}

.cwr .cwr-combo__option {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 10px 14px;
	border-bottom: 1px solid #f0f0f0;
	cursor: pointer;
	line-height: 1.4;
}

.cwr .cwr-combo__option:hover,
.cwr .cwr-combo__option.is-active,
.cwr .cwr-combo__option[aria-selected="true"] {
	background: var(--cwr-highlight);
}

.cwr .cwr-combo__option[aria-selected="true"] .cwr-combo__label {
	font-weight: 600;
}

.cwr .cwr-combo__option--other .cwr-combo__label {
	font-weight: 600;
}

.cwr .cwr-combo__sub {
	color: var(--cwr-muted);
	font-size: 13px;
}

.cwr .cwr-combo__status,
.cwr .cwr-dropdown__status {
	padding: 14px;
	color: var(--cwr-muted);
	font-size: 14.5px;
}

/* ------------------------------------------------------------------ Items */

.cwr .cwr-items {
	margin-bottom: 16px;
}

.cwr .cwr-item {
	margin: 0 0 16px;
	padding: 18px;
	background: var(--cwr-surface-alt);
	border: 1px solid var(--cwr-line);
	border-radius: var(--cwr-radius);
	animation: cwr-fade-in .25s ease;
}

.cwr .cwr-item__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 1px dashed var(--cwr-border);
}

.cwr .cwr-item__title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 600;
	font-size: 17px;
}

.cwr .cwr-item__badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	height: 28px;
	padding: 0 6px;
	background: var(--cwr-dark);
	color: var(--cwr-accent);
	font-size: 15px;
	border-radius: var(--cwr-radius);
}

/* Tool body and kit parts (batteries, charger): each serial with its own warranty */
.cwr .cwr-parts {
	padding: 14px 16px 16px;
	background: #ffffff;
	border: 1px solid var(--cwr-line);
	border-left: 4px solid var(--cwr-dark);
	border-radius: var(--cwr-radius);
}

.cwr .cwr-parts__title {
	display: block;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
}

.cwr .cwr-parts__desc {
	display: block;
	margin-top: 2px;
	color: var(--cwr-muted);
	font-size: 14px;
	line-height: 1.45;
}

.cwr .cwr-parts__list {
	display: flex;
	flex-direction: column;
	margin-top: 12px;
}

.cwr .cwr-part {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	grid-template-areas: "info input" ". error";
	align-items: center;
	gap: 4px 16px;
	padding: 12px 0;
	border-top: 1px dashed var(--cwr-border);
}

.cwr .cwr-part:first-child {
	padding-top: 0;
	border-top: 0;
}

.cwr .cwr-part:last-child {
	padding-bottom: 0;
}

.cwr .cwr-part__info {
	grid-area: info;
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
}

.cwr .cwr-part__label {
	margin: 0;
	font-size: 15.5px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--cwr-text);
}

.cwr .cwr-part__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 8px;
	color: var(--cwr-muted);
	font-size: 13.5px;
	line-height: 1.4;
}

.cwr .cwr-part .cwr-input {
	grid-area: input;
}

.cwr .cwr-part .cwr-field__error {
	grid-area: error;
}

.cwr .cwr-part--body {
	grid-template-areas: "info input" ". help" ". error";
}

.cwr .cwr-part__help {
	grid-area: help;
}

/* Warranty terms */
.cwr .cwr-terms__body {
	position: relative;
}

.cwr .cwr-terms.is-collapsed .cwr-terms__body {
	max-height: var(--cwr-terms-height, 220px);
	overflow: hidden;
}

.cwr .cwr-terms.is-collapsed .cwr-terms__body::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	height: 96px;
	background: linear-gradient(rgba(255, 255, 255, 0), var(--cwr-surface) 85%);
	pointer-events: none;
}

.cwr .cwr-terms__content {
	color: var(--cwr-text);
	font-size: 15px;
	line-height: 1.65;
}

.cwr .cwr-terms__content > :first-child {
	margin-top: 0;
}

.cwr .cwr-terms__content h2,
.cwr .cwr-terms__content h3,
.cwr .cwr-terms__content h4 {
	margin: 18px 0 6px;
	color: var(--cwr-text);
	font-size: 16.5px;
	font-weight: 600;
	line-height: 1.4;
}

.cwr .cwr-terms__content p {
	margin: 0 0 10px;
}

.cwr .cwr-terms__content ul,
.cwr .cwr-terms__content ol {
	margin: 0 0 10px;
	padding-left: 22px;
}

.cwr .cwr-terms__content li {
	margin: 0 0 5px;
}

.cwr .cwr-terms__toggle {
	display: flex;
	margin: 16px auto 0;
	min-height: 44px;
	padding: 8px 22px;
}

.cwr .cwr-terms__toggle .cwr-icon {
	transition: transform .2s ease;
}

.cwr .cwr-terms:not(.is-collapsed) .cwr-terms__toggle .cwr-icon {
	transform: rotate(180deg);
}

.cwr .cwr-result__terms {
	margin-top: 28px;
}

/* Product picker */
.cwr .cwr-product,
.cwr .cwr-product__search {
	position: relative;
}

.cwr .cwr-dropdown {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 4px);
	z-index: 50;
	background: #ffffff;
	border: 1px solid var(--cwr-dark);
	border-radius: var(--cwr-radius);
	box-shadow: 0 16px 36px rgba(0, 0, 0, .18);
	max-height: 340px;
}

.cwr .cwr-option {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 8px 12px;
	border-bottom: 1px solid #f0f0f0;
	cursor: pointer;
}

.cwr .cwr-option:hover,
.cwr .cwr-option.is-active {
	background: var(--cwr-highlight);
}

.cwr .cwr-option__img {
	flex: none;
	width: 52px;
	height: 52px;
	object-fit: contain;
	background: #ffffff;
	border: 1px solid var(--cwr-line);
}

.cwr .cwr-option__text {
	display: flex;
	flex-direction: column;
	min-width: 0;
	gap: 2px;
}

.cwr .cwr-option__name {
	font-weight: 500;
	line-height: 1.35;
}

.cwr .cwr-option__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--cwr-muted);
}

.cwr .cwr-option__sku {
	font-weight: 600;
	color: var(--cwr-text);
}

.cwr .cwr-chip {
	display: inline-block;
	padding: 0 8px;
	background: var(--cwr-dark);
	color: var(--cwr-accent);
	font-size: 12px;
	font-weight: 500;
	line-height: 20px;
	border-radius: var(--cwr-radius);
}

.cwr .cwr-product__selected {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 12px;
	background: #ffffff;
	border: 1px solid var(--cwr-border);
	border-left: 4px solid var(--cwr-accent);
	border-radius: var(--cwr-radius);
}

.cwr .cwr-product__img {
	flex: none;
	width: 64px;
	height: 64px;
	object-fit: contain;
}

.cwr .cwr-product__info {
	flex: 1;
	min-width: 0;
}

.cwr .cwr-product__name {
	font-weight: 600;
	line-height: 1.35;
}

.cwr .cwr-product__sku {
	color: var(--cwr-muted);
	font-size: 14px;
}

/* Upload */
.cwr .cwr-check {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0;
	line-height: 1.55;
	cursor: pointer;
	font-weight: 400;
	vertical-align: baseline;
}

.cwr .cwr-check input[type="checkbox"] {
	flex: none;
	width: 22px;
	height: 22px;
	margin: 1px 0 0;
	accent-color: var(--cwr-dark);
	cursor: pointer;
}

.cwr .cwr-check a {
	color: var(--cwr-text);
	font-weight: 600;
	text-decoration: underline;
}

.cwr .cwr-check--compact {
	align-items: center;
	padding: 10px 12px;
	background: #ffffff;
	border: 1px solid var(--cwr-line);
	border-radius: var(--cwr-radius);
}

.cwr .cwr-upload {
	position: relative;
}

.cwr .cwr-upload__input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	overflow: hidden;
	pointer-events: none;
}

.cwr .cwr-upload__drop {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	margin: 0;
	padding: 22px 16px;
	background: #ffffff;
	border: 2px dashed var(--cwr-border);
	border-radius: var(--cwr-radius);
	text-align: center;
	line-height: 1.4;
	cursor: pointer;
	transition: border-color .15s ease, background-color .15s ease;
}

.cwr .cwr-upload__drop:hover,
.cwr .cwr-upload__drop.is-dragover,
.cwr .cwr-upload__input:focus + .cwr-upload__drop {
	border-color: var(--cwr-dark);
	background: #fffbea;
}

.cwr .cwr-upload__icon {
	width: 38px;
	height: 38px;
	color: var(--cwr-dark);
}

.cwr .cwr-upload__title {
	font-weight: 600;
}

.cwr .cwr-upload__hint {
	color: var(--cwr-muted);
	font-size: 13px;
}

.cwr .cwr-upload.is-processing .cwr-upload__drop {
	opacity: .6;
	pointer-events: none;
}

.cwr .cwr-upload__preview {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	background: #ffffff;
	border: 1px solid var(--cwr-border);
	border-left: 4px solid var(--cwr-success);
	border-radius: var(--cwr-radius);
}

.cwr .cwr-upload__preview img {
	flex: none;
	width: 64px;
	height: 64px;
	object-fit: cover;
	background: var(--cwr-surface-alt);
}

.cwr .cwr-upload__meta {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
	line-height: 1.35;
}

.cwr .cwr-upload__name {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-weight: 500;
}

.cwr .cwr-upload__size {
	color: var(--cwr-muted);
	font-size: 13px;
}

.cwr .cwr-card--submit {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.cwr .cwr-recaptcha:empty {
	display: none;
}

/* ------------------------------------------------------------------ Overlay */

.cwr-overlay {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(0, 0, 0, .62);
	font-family: inherit;
}

.cwr-overlay .cwr-overlay__box {
	width: 100%;
	max-width: 360px;
	padding: 28px 24px;
	background: #ffffff;
	border-top: 4px solid #ffcd11;
	text-align: center;
	color: #1a1a1a;
	font-size: 16px;
	line-height: 1.5;
}

.cwr-overlay .cwr-spinner {
	width: 44px;
	height: 44px;
	margin: 0 auto 14px;
	border: 4px solid #eeeeee;
	border-top-color: #111111;
	border-radius: 50%;
	animation: cwr-spin .8s linear infinite;
}

.cwr-overlay .cwr-progress {
	height: 6px;
	margin-top: 14px;
	background: #eeeeee;
	overflow: hidden;
}

.cwr-overlay .cwr-progress__bar {
	width: 0;
	height: 100%;
	background: #ffcd11;
	transition: width .2s ease;
}

/* ------------------------------------------------------------------ Warranty cards */

.cwr .cwr-wcard {
	--cwr-status: var(--cwr-success);
	display: grid;
	grid-template-columns: 100px minmax(0, 1fr);
	gap: 18px;
	margin: 0 0 14px;
	padding: 16px;
	background: var(--cwr-surface);
	border: 1px solid var(--cwr-line);
	border-left: 5px solid var(--cwr-status);
	border-radius: var(--cwr-radius);
}

.cwr .cwr-wcard--expiring { --cwr-status: #e0a100; }
.cwr .cwr-wcard--expired { --cwr-status: var(--cwr-danger); }

/* A kit part follows its tool: indent it so the grouping is visible. */
.cwr .cwr-wcard--part {
	grid-template-columns: 72px minmax(0, 1fr);
	margin-left: 36px;
	background: #fcfcfc;
}

.cwr .cwr-wcard--part .cwr-wcard__img {
	width: 72px;
	height: 72px;
}

.cwr .cwr-wcard--part .cwr-wcard__name {
	font-size: 16.5px;
}

.cwr .cwr-wcard__img {
	display: block;
	width: 100px;
	height: 100px;
	object-fit: contain;
	background: #fafafa;
}

.cwr .cwr-wcard__img--empty {
	background: var(--cwr-surface-alt);
}

.cwr .cwr-wcard__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px 12px;
}

.cwr .cwr-wcard__name {
	margin: 0;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--cwr-text);
}

.cwr .cwr-wcard__sku {
	color: var(--cwr-muted);
	font-size: 14px;
}

.cwr .cwr-wcard__meta {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 8px 18px;
	margin: 12px 0 0;
}

.cwr .cwr-wcard__meta dt,
.cwr .cwr-summary dt {
	margin: 0;
	color: var(--cwr-muted);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.35;
}

.cwr .cwr-wcard__meta dd,
.cwr .cwr-summary dd {
	margin: 0;
	font-weight: 500;
	line-height: 1.45;
	word-break: break-word;
}

.cwr .cwr-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 10px;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.5;
	white-space: nowrap;
	border-radius: 999px;
}

.cwr .cwr-badge__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
}

.cwr .cwr-badge--active { background: var(--cwr-success-bg); color: var(--cwr-success); }
.cwr .cwr-badge--expiring { background: var(--cwr-warning-bg); color: var(--cwr-warning); }
.cwr .cwr-badge--expired { background: var(--cwr-danger-bg); color: var(--cwr-danger); }

.cwr .cwr-timeline {
	margin-top: 14px;
}

.cwr .cwr-timeline__track {
	height: 8px;
	background: #ececec;
	border-radius: 999px;
	overflow: hidden;
}

.cwr .cwr-timeline__fill {
	height: 100%;
	background: var(--cwr-status);
	border-radius: 999px;
}

.cwr .cwr-timeline__text {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 4px 12px;
	margin-top: 6px;
	font-size: 14px;
	font-weight: 500;
}

/* ------------------------------------------------------------------ Result page */

.cwr .cwr-result__hero {
	margin: 0 0 20px;
	padding: 36px 24px 30px;
	background: var(--cwr-surface);
	border: 1px solid var(--cwr-line);
	border-top: 4px solid var(--cwr-accent);
	border-radius: var(--cwr-radius);
	text-align: center;
}

.cwr .cwr-result__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	margin: 0 auto 16px;
	background: var(--cwr-accent);
	color: #000000;
	border-radius: 50%;
	animation: cwr-pop .35s ease;
}

.cwr .cwr-result__icon svg {
	width: 42px;
	height: 42px;
}

.cwr .cwr-result__title {
	margin: 0 0 8px;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.3;
}

.cwr .cwr-result__message {
	max-width: 560px;
	margin: 0 auto;
	color: var(--cwr-muted);
}

.cwr .cwr-ref {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	margin-top: 20px;
	padding: 14px 28px;
	background: var(--cwr-dark);
	color: #ffffff;
	border-radius: var(--cwr-radius);
}

.cwr .cwr-ref__label {
	color: #bdbdbd;
	font-size: 13px;
}

.cwr .cwr-ref__value {
	color: var(--cwr-accent);
	font-size: 28px;
	font-weight: 600;
	letter-spacing: .04em;
	line-height: 1.3;
	font-variant-numeric: tabular-nums;
}

.cwr .cwr-ref__copy,
.cwr .cwr-ref__copy:hover,
.cwr .cwr-ref__copy:focus {
	margin-top: 6px;
	padding: 2px 12px;
	min-height: 0;
	background: transparent;
	border: 1px solid #555555;
	border-radius: var(--cwr-radius);
	color: #ffffff;
	font-family: inherit;
	font-size: 13px;
	line-height: 1.6;
	cursor: pointer;
}

.cwr .cwr-result__email,
.cwr .cwr-result__tip {
	margin: 14px 0 0;
	color: var(--cwr-muted);
	font-size: 14.5px;
}

.cwr .cwr-result__tip {
	text-align: center;
}

.cwr .cwr-summary {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	margin: 0 0 24px;
	background: var(--cwr-line);
	border: 1px solid var(--cwr-line);
	border-radius: var(--cwr-radius);
	overflow: hidden;
}

.cwr .cwr-summary > div {
	padding: 12px 16px;
	background: var(--cwr-surface);
}

.cwr .cwr-section-title {
	margin: 0 0 14px;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
}

.cwr .cwr-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 22px;
}

.cwr .cwr-actions--center {
	justify-content: center;
}

.cwr .cwr-empty {
	padding: 36px 20px;
	background: var(--cwr-surface);
	border: 1px dashed var(--cwr-border);
	border-radius: var(--cwr-radius);
	text-align: center;
}

.cwr .cwr-empty__title {
	margin: 0 0 8px;
	font-size: 20px;
	font-weight: 600;
}

.cwr .cwr-empty p {
	margin: 0;
	color: var(--cwr-muted);
}

/* ------------------------------------------------------------------ Lookup */

.cwr .cwr-lookup__card {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.cwr .cwr-segment {
	display: inline-flex;
	align-self: flex-start;
	border: 2px solid var(--cwr-dark);
	border-radius: var(--cwr-radius);
	overflow: hidden;
}

.cwr .cwr-segment__btn,
.cwr .cwr-segment__btn:hover,
.cwr .cwr-segment__btn:focus {
	min-height: 44px;
	margin: 0;
	padding: 8px 20px;
	background: #ffffff;
	border: 0;
	border-radius: 0;
	color: var(--cwr-text);
	font-family: inherit;
	font-size: 15.5px;
	font-weight: 500;
	line-height: 1.3;
	cursor: pointer;
}

.cwr .cwr-segment__btn[aria-pressed="true"] {
	background: var(--cwr-dark);
	color: var(--cwr-accent);
}

.cwr .cwr-lookup__row {
	display: flex;
	gap: 10px;
}

.cwr .cwr-lookup__row .cwr-input {
	flex: 1;
}

.cwr .cwr-lookup__row .cwr-btn {
	flex: none;
	min-width: 140px;
}

.cwr.cwr-lookup.is-loading .cwr-lookup__results {
	opacity: .5;
}

.cwr .cwr-results__summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 26px 0 14px;
}

.cwr .cwr-results__count {
	font-size: 19px;
	font-weight: 600;
}

.cwr .cwr-results__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

/* ------------------------------------------------------------------ Motion */

@keyframes cwr-spin { to { transform: rotate(360deg); } }
@keyframes cwr-fade-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes cwr-pop { from { transform: scale(.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
	.cwr *,
	.cwr-overlay * {
		animation: none !important;
		transition: none !important;
	}
}

/* ------------------------------------------------------------------ Responsive */

@media (max-width: 767px) {
	.cwr .cwr-card {
		padding: 18px 16px;
	}

	.cwr .cwr-grid {
		gap: 16px 12px;
	}

	.cwr .cwr-col-6,
	.cwr .cwr-col-4 {
		grid-column: span 12;
	}

	.cwr .cwr-col-sm-6 {
		grid-column: span 6;
	}

	.cwr .cwr-item {
		padding: 14px 12px;
	}

	.cwr .cwr-card__title {
		font-size: 19px;
	}

	.cwr .cwr-summary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cwr .cwr-result__title {
		font-size: 23px;
	}

	.cwr .cwr-ref__value {
		font-size: 23px;
	}

	.cwr .cwr-actions .cwr-btn {
		flex: 1 1 100%;
	}

	.cwr .cwr-part {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "info" "input" "error";
		gap: 6px;
	}

	.cwr .cwr-part--body {
		grid-template-areas: "info" "input" "help" "error";
	}

	.cwr .cwr-parts {
		padding: 12px;
	}

	.cwr .cwr-terms__content {
		font-size: 14.5px;
	}
}

@media (max-width: 520px) {
	.cwr .cwr-wcard {
		grid-template-columns: 64px minmax(0, 1fr);
		gap: 12px;
		padding: 14px 12px;
	}

	.cwr .cwr-wcard__img {
		width: 64px;
		height: 64px;
	}

	.cwr .cwr-wcard--part {
		grid-template-columns: 52px minmax(0, 1fr);
		margin-left: 16px;
	}

	.cwr .cwr-wcard--part .cwr-wcard__img {
		width: 52px;
		height: 52px;
	}

	.cwr .cwr-wcard__name {
		font-size: 16.5px;
	}

	.cwr .cwr-wcard__meta {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cwr .cwr-wcard__meta .cwr-wcard__ref {
		grid-column: 1 / -1;
	}

	.cwr .cwr-lookup__row {
		flex-direction: column;
	}

	.cwr .cwr-segment {
		display: flex;
		align-self: stretch;
	}

	.cwr .cwr-segment__btn {
		flex: 1;
	}

	.cwr .cwr-summary {
		grid-template-columns: minmax(0, 1fr);
	}
}
