.form-group {
	margin-top: 2em;
	margin-bottom: 2em;
}

.sms-consent-description {
	font-size: 1.1em;
	line-height: 1.6;
	margin-bottom: 1.5em;
}

.sms-consent-checkbox-group {
	display: flex;
	align-items: flex-start;
	gap: 0.75em;
}

.sms-consent-checkbox-group label {
	font-size: 0.85em;
	line-height: 1.5;
}

#sms-consent-form > .form-group > input[type="text"],
#sms-consent-form > .form-group > input[type="email"],
#sms-consent-form input[type="tel"] {
	width: 100%;
	padding: 0.5em;
}

#sms-consent-submit-button {
	cursor: pointer;
}

#sms-consent-submit-button:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.sms-consent-phone-input-group {
	display: flex;
	gap: 0.75em;
	align-items: stretch;
}

.sms-consent-phone-input-group .iti {
	flex: 1;
}

/* Prevent theme styles from overriding intl-tel-input search input padding. */
.iti__search-input {
	padding-left: 30px !important;
}

.sms-consent-phone-input-group input[type="tel"] {
	flex: 1;
}

#sms-consent-verify-button {
	cursor: pointer;
	white-space: nowrap;
	padding: 0.5em 1em;
}

#sms-consent-verify-button:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

#sms-consent-phone-error {
	margin-top: -1em;
	margin-bottom: 1em;
}

@media (max-width: 600px) {
	.sms-consent-phone-input-group {
		flex-direction: column;
	}

	#sms-consent-verify-button {
		width: 100%;
	}
}

#sms-consent-phone[readonly] {
	background-color: #f5f5f5;
	opacity: 0.8;
}

.sms-consent-submit-group {
	display: flex;
	align-items: center;
	gap: 0.75em;
}

#sms-consent-spinner-container {
	position: relative;
	width: 30px;
	height: 30px;
}

.wpad-spinner {
	display: block;
	width: 100%;
	height: 100%;
	border: 5px solid rgba(0, 0, 0, 0.1);
	border-top: 5px solid #000;
	border-radius: 50%;
	position: absolute;
	top: 25%;
	left: 25%;
	transform: translate(-50%, -50%);
	animation: spin 1s linear infinite;
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}
