.upwell360-rater {
/* 	max-width: 720px; */
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.6;
}

.upwell360-rater-progress {
	height: 6px;
	background: #e5e5e5;
	border-radius: 3px;
	margin-bottom: 24px;
	overflow: hidden;
}

.upwell360-rater-progress-bar {
	height: 100%;
	width: 0;
	background: #1a8f80;
	transition: width 0.3s ease;
}

.upwell360-rater-step {
	display: none;
}

.upwell360-rater-step.active {
	display: block;
}

.upwell360-rater-title {
	margin-bottom: 8px;
}

.upwell360-rater-intro h3 {
	margin-top: 24px;
	margin-bottom: 10px !important;
	font-size: 22px;
}

.upwell360-rater-intro ol,
.upwell360-rater-intro ul {
	padding-left: 15px;
	margin-bottom: 16px;
}

.upwell360-rater-intro li {
	margin-bottom: 6px;
}

.upwell360-rater-step-nav {
	display: flex;
	justify-content: space-between;
	margin-top: 28px;
}

.upwell360-rater-step-nav-end {
	justify-content: flex-end;
}

/*
 * !important throughout this block - the live theme has a global
 * [type=button], [type=submit], button rule with the exact same CSS
 * specificity as a single class selector, so whichever stylesheet
 * happens to load later wins the tie. !important is the only reliable
 * way to guarantee this form's own buttons look like this form's
 * buttons regardless of theme load order.
 */
.upwell360-rater-btn {
	background: #1a8f80 !important;
	color: #ffffff !important;
	border: none !important;
	padding: 12px 28px !important;
	border-radius: 8px !important;
	font-size: 15px;
	cursor: pointer;
	font-weight: 600 !important;
}

.upwell360-rater-btn:hover {
	background: #157567 !important;
}

.upwell360-rater-btn-secondary {
    background: transparent !important;
    color: #000000 !important;
    border: 1px solid #1a8f80 !important;
    font-weight: 600 !important;
}

.upwell360-rater-question-text {
	font-size: 17px;
	font-weight: 600;
	margin-bottom: 20px !important;
}

.upwell360-rater-section-label {
	font-size: 22px;
	font-weight: 700;
	color: #1a1a1a;
	margin-bottom: 12px;
	line-height: 1.3;
}

.upwell360-rater-textarea {
	resize: vertical;
	font-family: inherit;
}

.upwell360-rater-subcategory-label {
	margin: 0 0 4px;
}

.upwell360-rater-subcategory-desc {
	color: #666;
	margin-bottom: 20px;
}

.upwell360-rater-scale {
	display: flex;
	gap: 10px;
	margin-bottom: 10px;
}

.upwell360-rater-scale-option {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 14px 0;
	border: 1px solid #ccc;
	border-radius: 8px;
	cursor: pointer;
	font-size: 17px;
	font-weight: 600;
}

.upwell360-rater-scale-option:hover {
	border-color: #1a8f80;
}

.upwell360-rater-scale-option input[type="radio"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.upwell360-rater-scale-option:has(input:checked),
.upwell360-rater-scale-option.is-selected {
	background: #1a8f80;
	color: #ffffff;
	border-color: #1a8f80;
}

.upwell360-rater-scale-legend {
	font-size: 13px;
	color: #666;
	margin-bottom: 0;
}

.upwell360-rater-field {
	margin-bottom: 8px;
}

.upwell360-rater-locked-value {
	display: inline-block;
	padding: 12px 14px;
	background: #f5f5f5;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-weight: 600;
}

.upwell360-rater-field label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}

.upwell360-rater-input {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #1a8f80 !Important;
	border-radius: 8px !Important;
	font-size: 15px;
	box-sizing: border-box;
}

.upwell360-rater-input:focus {
	outline: none;
	border-color: #1a8f80;
}

.upwell360-rater-options {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 16px;
}

.upwell360-rater-option {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
	border: 1px solid #1a8f80;
	border-radius: 8px;
	cursor: pointer;
}

.upwell360-rater-option:hover {
	border-color: #1a8f80;
}

.upwell360-rater-option input[type="radio"] {
	margin: 0;
}

.upwell360-rater-option-letter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border: 1px solid #1a8f80;
	border-radius: 8px;
	font-size: 13px;
	font-weight: 600;
	flex-shrink: 0;
}

.upwell360-rater-btn-secondary:hover {
	background: #1a8f80 !important;
}

.upwell360-rater-error {
	margin-top: 16px;
	color: #b32d2e;
}

.upwell360-rater-step-error {
	color: #b32d2e;
	margin-top: 8px;
}

/*
 * Spam honeypot - must be skipped by real visitors AND by legitimate
 * browser autofill/form-filler tools, which fill DOM text inputs by
 * element, not by rendered visibility - off-screen positioning alone
 * does not stop them. display:none is the one signal virtually every
 * such tool (and screen readers) already respects. This form's own
 * nonce + per-step wizard + timestamp check cover the actual spam-bot
 * risk, so the stronger (but bot-evadable) off-screen trick isn't worth
 * the false-positive cost here.
 */
.upwell360-rater-honeypot {
	display: none;
}
h2.upwell360-rater-title {
    margin: 20px 0px !important;
}
