/* Insurance Zip Quotes — Frontend Styles */
/* Clean, modern, fully responsive design */

.iq-widget {
	--iq-primary: #2563eb;
	--iq-primary-dark: #1d4ed8;
	--iq-primary-light: #60a5fa;
	--iq-accent: #2563eb;
	--iq-accent-hover: #1d4ed8;
	--iq-success: #059669;
	--iq-bg: #f3f6fb;
	--iq-card-bg: #ffffff;
	--iq-border: #d7e0ec;
	--iq-text: #14243a;
	--iq-text-secondary: #64748b;
	--iq-text-muted: #94a3b8;
	--iq-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
	--iq-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
	--iq-shadow-lg: 0 12px 28px rgba(15, 23, 42, 0.12);
	--iq-radius: 12px;
	--iq-radius-sm: 8px;
	--iq-transition: all 0.2s ease;

	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	padding: 0;
	box-sizing: border-box;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	color: var(--iq-text);
	background: transparent;
}

.iq-widget *,
.iq-widget *::before,
.iq-widget *::after {
	box-sizing: border-box;
}

/* ============================================================
   FORM-ONLY WIDGET (shortcode output)
   ============================================================ */
.iq-widget--form-only {
	background: var(--iq-card-bg);
	border: 1px solid var(--iq-border);
	border-radius: var(--iq-radius);
	padding: 28px;
	box-shadow: var(--iq-shadow-sm);
}

/* Form */
.iq-form {
	width: 100%;
	max-width: 560px;
	margin: 0 auto;
}

.iq-form-row {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
}

.iq-form-label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: var(--iq-text);
	margin-bottom: 4px;
}

.iq-input-wrapper {
	display: flex;
	gap: 10px;
	width: 100%;
	align-items: stretch;
}

.iq-zip-input {
	flex: 1 1 auto;
	min-width: 0;
	height: 56px;
	padding: 0 18px 0 52px;
	border: 2px solid var(--iq-border);
	border-radius: var(--iq-radius);
	background: var(--iq-card-bg);
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	color: var(--iq-text);
	transition: var(--iq-transition);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 16px center;
	background-size: 20px 20px;
}

.iq-zip-input::placeholder {
	color: var(--iq-text-muted);
	opacity: 1;
}

.iq-zip-input:hover {
	border-color: #cbd5e1;
}

.iq-zip-input:focus {
	outline: none;
	border-color: var(--iq-primary);
	box-shadow: 0 0 0 4px rgba(30, 64, 175, 0.12);
}

.iq-zip-input:invalid:not(:placeholder-shown) {
	border-color: #ef4444;
}

.iq-submit-btn {
	flex: 0 0 auto;
	min-width: 170px;
	height: 56px;
	padding: 0 24px;
	border: none;
	border-radius: 0;
	background: var(--iq-accent);
	color: #ffffff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: none;
	cursor: pointer;
	transition: var(--iq-transition);
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.iq-submit-btn::before {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--iq-accent-hover);
	opacity: 0;
	transition: opacity 0.2s ease;
}

.iq-submit-btn:hover {
	background: var(--iq-accent-hover);
	transform: translateY(-1px);
	box-shadow: var(--iq-shadow);
}

.iq-submit-btn:hover::before {
	opacity: 1;
}

.iq-submit-btn:active {
	transform: translateY(0);
	box-shadow: none;
}

.iq-submit-btn:focus {
	outline: none;
	border: 2px solid var(--iq-primary);
	box-shadow: 0 0 0 4px rgba(30, 64, 175, 0.15);
}

.iq-submit-btn span {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 8px;
}

.iq-submit-btn .iq-btn-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.iq-submit-btn:hover .iq-btn-arrow {
	transform: translateX(3px);
}

.iq-submit-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

.iq-submit-btn:disabled::before {
	display: none;
}

.iq-submit-btn:disabled .iq-btn-arrow {
	transform: none;
}

.iq-form-help {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--iq-text-muted);
	text-align: center;
}

/* ============================================================
   TRUST BADGES
   ============================================================ */
.iq-trust-badges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px 20px;
	margin: 24px 0 0;
	padding-top: 24px;
	border-top: 1px solid var(--iq-border);
}

.iq-trust-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 500;
	color: var(--iq-text-secondary);
	white-space: nowrap;
	transition: var(--iq-transition);
}

.iq-trust-item svg {
	flex-shrink: 0;
	color: var(--iq-primary-light);
	transition: var(--iq-transition);
}

.iq-trust-item:hover {
	color: var(--iq-primary);
}

.iq-trust-item:hover svg {
	color: var(--iq-primary);
	transform: scale(1.1);
}

/* ============================================================
   RESULTS SECTION
   ============================================================ */
.iq-results {
	width: 100%;
	max-width: 100%;
	margin: 24px 0 0;
	padding: 0;
}

.iq-results-header {
	margin: 0 0 20px;
	padding: 16px 20px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--iq-text-secondary);
	background: var(--iq-bg);
	border-radius: var(--iq-radius);
	border: 1px solid var(--iq-border);
}

.iq-results-header strong {
	color: var(--iq-text);
	font-weight: 600;
}

.iq-card-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 20px;
}

/* ============================================================
   COMPANY CARDS
   ============================================================ */
.iq-card {
	display: flex;
	flex-direction: column;
	background: var(--iq-card-bg);
	border: 1px solid var(--iq-border);
	border-radius: var(--iq-radius);
	padding: 24px;
	box-shadow: var(--iq-shadow-sm);
	transition: var(--iq-transition);
	position: relative;
}

.iq-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--iq-shadow-lg);
	border-color: #cbd5e1;
}

.iq-card.iq-featured {
	border-color: var(--iq-accent);
	background: #f5f9ff;
	box-shadow: 0 4px 12px rgba(37, 99, 235, 0.12);
}

.iq-card.iq-featured:hover {
	border-color: var(--iq-accent-hover);
	box-shadow: 0 12px 28px rgba(249, 115, 22, 0.15);
}

.iq-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 12px;
}

.iq-badge {
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border-radius: 999px;
}

.iq-badge--featured {
	background: linear-gradient(135deg, #2563eb, #1e40af);
	color: #ffffff;
}

.iq-badge--city {
	background: linear-gradient(135deg, var(--iq-success), #10b981);
	color: #ffffff;
}

.iq-card-top {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 16px;
}

.iq-logo {
	width: 80px;
	height: 60px;
	flex-shrink: 0;
	object-fit: contain;
	background: var(--iq-bg);
	border: 1px solid var(--iq-border);
	border-radius: var(--iq-radius-sm);
	padding: 8px;
}

.iq-logo-placeholder {
	width: 80px;
	height: 60px;
	flex-shrink: 0;
	background: var(--iq-bg);
	border-radius: var(--iq-radius-sm);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 600;
	color: var(--iq-text-muted);
	text-align: center;
	padding: 8px;
	line-height: 1.3;
}

.iq-card-title {
	flex: 1;
	min-width: 0;
}

.iq-card-title h3 {
	margin: 0 0 8px;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--iq-text);
	word-break: break-word;
}

.iq-stars {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
}

.iq-stars .stars {
	color: var(--iq-accent);
	letter-spacing: 1px;
}

.iq-stars .rating {
	font-weight: 600;
	color: var(--iq-text);
	font-size: 13px;
}

/* Recommendation Points */
.iq-points {
	margin: 12px 0 0;
	padding: 0 0 0 18px;
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--iq-text-secondary);
	list-style: disc;
}

.iq-points li {
	margin-bottom: 6px;
}

.iq-points li:last-child {
	margin-bottom: 0;
}

/* Card Actions */
.iq-card-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid var(--iq-border);
}

.iq-card-actions a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 12px 20px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	border-radius: var(--iq-radius-sm);
	transition: var(--iq-transition);
	white-space: nowrap;
}

.iq-btn-quote {
	flex: 1;
	min-width: 140px;
	background: linear-gradient(135deg, var(--iq-primary), var(--iq-primary-dark));
	color: #ffffff !important;
	border: none;
	box-shadow: var(--iq-shadow-sm);
}

.iq-btn-quote:hover {
	background: linear-gradient(135deg, var(--iq-primary-dark), #172554);
	transform: translateY(-1px);
	box-shadow: var(--iq-shadow);
	color: #ffffff !important;
}

.iq-btn-site {
	flex: 1;
	min-width: 140px;
	background: var(--iq-card-bg);
	color: var(--iq-primary) !important;
	border: 2px solid var(--iq-primary);
}

.iq-btn-site:hover {
	background: var(--iq-primary);
	color: #ffffff !important;
	border-color: var(--iq-primary);
}

.iq-phone {
	width: 100%;
	margin-top: 12px;
	padding-top: 12px;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--iq-text-secondary);
	border-top: 1px solid var(--iq-border);
	display: flex;
	align-items: center;
	gap: 8px;
}

.iq-phone::before {
	content: "";
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}

/* ============================================================
   STATUS MESSAGES
   ============================================================ */
.iq-status {
	padding: 16px 20px;
	border-radius: var(--iq-radius);
	margin-bottom: 20px;
	font-size: 14.5px;
	line-height: 1.5;
}

.iq-status--error {
	background: #fef2f2;
	color: #991b1b;
	border: 1px solid #fecaca;
}

.iq-status--info {
	background: #eff6ff;
	color: #1e40af;
	border: 1px solid #dbeafe;
}

.iq-status--success {
	background: #f0fdf4;
	color: #166534;
	border: 1px solid #bbf7d0;
}

/* ============================================================
   EMPTY STATE
   ============================================================ */
.iq-empty {
	text-align: center;
	padding: 60px 24px;
	background: var(--iq-card-bg);
	border: 1px solid var(--iq-border);
	border-radius: var(--iq-radius);
}

.iq-empty svg {
	width: 64px;
	height: 64px;
	color: var(--iq-text-muted);
	margin-bottom: 16px;
}

.iq-empty h3 {
	margin: 0 0 8px;
	font-size: 20px;
	font-weight: 600;
	color: var(--iq-text);
}

.iq-empty p {
	margin: 0;
	font-size: 15px;
	color: var(--iq-text-secondary);
}

/* ============================================================
   LOADING STATE
   ============================================================ */
.iq-loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 48px 24px;
	gap: 16px;
}

.iq-spinner {
	width: 40px;
	height: 40px;
	border: 3px solid var(--iq-border);
	border-top-color: var(--iq-primary);
	border-radius: 50%;
	animation: iq-spin 0.8s linear infinite;
}

@keyframes iq-spin {
	to { transform: rotate(360deg); }
}

.iq-loading p {
	margin: 0;
	font-size: 15px;
	color: var(--iq-text-secondary);
}

/* ============================================================
   V2 WIDGET - Modern Clean Design
   ============================================================ */
.iq-widget--v2 {
	background: var(--iq-card-bg);
	border: 1px solid var(--iq-border);
	border-radius: var(--iq-radius);
	padding: 28px;
	box-shadow: var(--iq-shadow-sm);
	max-width: 560px;
	margin: 0 auto;
}

.iq-widget--v2 .iq-form {
	max-width: 100%;
	margin: 0;
}

.iq-widget--v2 .iq-form-row {
	flex-direction: column;
	gap: 10px;
}

.iq-widget--v2 .iq-form-label {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: var(--iq-text);
	margin-bottom: 4px;
}

.iq-widget--v2 .iq-input-wrapper {
	display: flex;
	gap: 10px;
	width: 100%;
	align-items: stretch;
}

.iq-widget--v2 .iq-zip-input {
	flex: 1 1 auto;
	min-width: 0;
	height: 56px;
	padding: 0 18px 0 52px;
	border: 2px solid var(--iq-border);
	border-radius: var(--iq-radius);
	background: var(--iq-card-bg);
	font-family: inherit;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
	color: var(--iq-text);
	transition: var(--iq-transition);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 16px center;
	background-size: 20px 20px;
}

.iq-widget--v2 .iq-zip-input::placeholder {
	color: var(--iq-text-muted);
	opacity: 1;
}

.iq-widget--v2 .iq-zip-input:hover {
	border-color: #cbd5e1;
}

.iq-widget--v2 .iq-zip-input:focus {
	outline: none;
	border-color: var(--iq-primary);
	box-shadow: 0 0 0 4px rgba(30, 64, 175, 0.12);
}

.iq-widget--v2 .iq-zip-input:invalid:not(:placeholder-shown) {
	border-color: #ef4444;
}

.iq-widget--v2 .iq-submit-btn {
	flex: 0 0 auto;
	min-width: 170px;
	height: 56px;
	padding: 0 24px;
	border: none;
	border-radius: 0;
	background: var(--iq-accent);
	color: #ffffff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.02em;
	text-transform: none;
	cursor: pointer;
	transition: var(--iq-transition);
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
}

.iq-widget--v2 .iq-submit-btn::before {
	content: '';
	position: absolute;
	inset: 0;
	background: var(--iq-accent-hover);
	opacity: 0;
	transition: opacity 0.2s ease;
}

.iq-widget--v2 .iq-submit-btn:hover {
	background: var(--iq-accent-hover);
	transform: translateY(-1px);
	box-shadow: var(--iq-shadow);
}

.iq-widget--v2 .iq-submit-btn:hover::before {
	opacity: 1;
}

.iq-widget--v2 .iq-submit-btn:active {
	transform: translateY(0);
	box-shadow: none;
}

.iq-widget--v2 .iq-submit-btn:focus {
	outline: none;
	border: 2px solid var(--iq-primary);
	box-shadow: 0 0 0 4px rgba(30, 64, 175, 0.15);
}

.iq-widget--v2 .iq-submit-btn span {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 8px;
}

.iq-widget--v2 .iq-submit-btn .iq-btn-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	transition: transform 0.2s ease;
}

.iq-widget--v2 .iq-submit-btn:hover .iq-btn-arrow {
	transform: translateX(3px);
}

.iq-widget--v2 .iq-submit-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

.iq-widget--v2 .iq-submit-btn:disabled::before {
	display: none;
}

.iq-widget--v2 .iq-submit-btn:disabled .iq-btn-arrow {
	transform: none;
}

.iq-widget--v2 .iq-form-help {
	margin: 10px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--iq-text-muted);
	text-align: center;
}

.iq-widget--v2 .iq-trust-badges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 12px 20px;
	margin: 24px 0 0;
	padding-top: 24px;
	border-top: 1px solid var(--iq-border);
}

.iq-widget--v2 .iq-trust-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 500;
	color: var(--iq-text-secondary);
	white-space: nowrap;
	transition: var(--iq-transition);
}

.iq-widget--v2 .iq-trust-item svg {
	flex-shrink: 0;
	color: var(--iq-primary-light);
	transition: var(--iq-transition);
}

.iq-widget--v2 .iq-trust-item:hover {
	color: var(--iq-primary);
}

.iq-widget--v2 .iq-trust-item:hover svg {
	color: var(--iq-primary);
	transform: scale(1.1);
}

.iq-widget--v2 .iq-results {
	margin: 24px 0 0;
	padding: 0;
}

/* V2 Responsive */
@media (max-width: 768px) {
	.iq-widget--v2 {
		padding: 24px 20px;
	}

	.iq-widget--v2 .iq-input-wrapper {
		flex-direction: column;
		gap: 12px;
	}

	.iq-widget--v2 .iq-zip-input {
		width: 100%;
		padding-left: 52px;
	}

	.iq-widget--v2 .iq-submit-btn {
		width: 100%;
		min-width: auto;
		height: 56px;
	}

	.iq-widget--v2 .iq-trust-badges {
		gap: 10px 14px;
		margin-top: 20px;
		padding-top: 20px;
	}
}

@media (max-width: 480px) {
	.iq-widget--v2 {
		padding: 20px 16px;
	}

	.iq-widget--v2 .iq-zip-input {
		height: 52px;
		font-size: 16px;
		padding-left: 48px;
		background-size: 18px 18px;
		background-position: 14px center;
	}

	.iq-widget--v2 .iq-submit-btn {
		height: 52px;
		font-size: 14.5px;
		padding: 0 20px;
	}

	.iq-widget--v2 .iq-trust-badges {
		gap: 8px 12px;
	}

	.iq-widget--v2 .iq-trust-item {
		font-size: 12px;
	}

	.iq-widget--v2 .iq-trust-item svg {
		width: 18px;
		height: 18px;
	}
}

/* ============================================================
   RESPONSIVE BREAKPOINTS
   ============================================================ */

/* Tablet - 768px and below */
@media (max-width: 768px) {
	.iq-widget--form-only {
		padding: 24px 20px;
	}

	.iq-input-wrapper {
		flex-direction: column;
		gap: 12px;
	}

	.iq-zip-input {
		width: 100%;
		padding-left: 52px;
	}

	.iq-submit-btn {
		width: 100%;
		min-width: auto;
		height: 56px;
	}

	.iq-trust-badges {
		gap: 10px 14px;
		margin-top: 20px;
		padding-top: 20px;
	}

	.iq-card-list {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.iq-card {
		padding: 20px;
	}

	.iq-logo,
	.iq-logo-placeholder {
		width: 70px;
		height: 52px;
	}

	.iq-card-actions a {
		flex: 1 1 calc(50% - 5px);
		min-width: auto;
		padding: 12px 16px;
		font-size: 13.5px;
	}
}

/* Mobile - 480px and below */
@media (max-width: 480px) {
	.iq-widget--form-only {
		padding: 20px 16px;
	}

	.iq-zip-input {
		height: 52px;
		font-size: 16px; /* prevents zoom on iOS */
		padding-left: 48px;
		background-size: 18px 18px;
		background-position: 14px center;
	}

	.iq-submit-btn {
		height: 52px;
		font-size: 14.5px;
		padding: 0 20px;
	}

	.iq-trust-badges {
		gap: 8px 12px;
	}

	.iq-trust-item {
		font-size: 12px;
	}

	.iq-trust-item svg {
		width: 18px;
		height: 18px;
	}

	.iq-card {
		padding: 18px;
	}

	.iq-logo,
	.iq-logo-placeholder {
		width: 64px;
		height: 48px;
	}

	.iq-card-title h3 {
		font-size: 16px;
	}

	.iq-card-actions {
		flex-direction: column;
	}

	.iq-card-actions a {
		width: 100%;
		flex: none;
	}

	.iq-results-header {
		font-size: 13.5px;
		padding: 14px 16px;
	}
}

/* Large screens - 1200px and above */
@media (min-width: 1200px) {
	.iq-card-list {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ============================================================
   PRINT STYLES
   ============================================================ */
@media print {
	.iq-widget--form-only {
		border: none;
		box-shadow: none;
		padding: 0;
	}

	.iq-form,
	.iq-trust-badges,
	.iq-submit-btn {
		display: none;
	}

	.iq-card {
		break-inside: avoid;
		box-shadow: none;
		border: 1px solid #ccc;
	}
}

/* ============================================================
   ACCESSIBILITY
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
	.iq-widget *,
	.iq-widget *::before,
	.iq-widget *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

/* High contrast mode support */
@media (prefers-contrast: high) {
	.iq-widget {
		--iq-border: #000;
		--iq-text-secondary: #333;
	}

	.iq-zip-input:focus,
	.iq-submit-btn:focus {
		outline: 3px solid #000;
		outline-offset: 2px;
	}
}

/* ============================================================
   RTL SUPPORT
   ============================================================ */
[dir="rtl"] .iq-zip-input {
	background-position: calc(100% - 16px) center;
	padding: 0 52px 0 18px;
}

[dir="rtl"] .iq-points {
	padding: 0 18px 0 0;
	list-style-position: inside;
}

[dir="rtl"] .iq-trust-badges {
	direction: rtl;
}

/* Square, editorial-style quote experience. */
.iq-widget { --iq-radius: 0; --iq-radius-sm: 0; }
.iq-widget--form-only, .iq-widget--v2 { border-top: 4px solid var(--iq-primary); box-shadow: 0 14px 34px rgba(15,23,42,.08); }
.iq-zip-input { background-color: #fff; }
.iq-submit-btn { box-shadow: none; font-weight: 700; }
.iq-card { border-top: 3px solid var(--iq-primary); box-shadow: 0 10px 24px rgba(15,23,42,.05); }
.iq-card.iq-featured { border-top-color: var(--iq-accent); }
.iq-card-actions a { border-radius: 0; }
.iq-results-header { border-left: 4px solid var(--iq-primary); }

/* Coverage Score — scoped so existing quote cards and forms retain their design. */
.iq-score-loading{align-items:center;background:#fff;border:1px solid var(--iq-border);display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:260px;text-align:center}.iq-score-loading span{animation:iq-score-spin .8s linear infinite;border:3px solid #dbeafe;border-radius:50%;border-top-color:var(--iq-primary);height:34px;width:34px}.iq-score-loading p{color:var(--iq-text-secondary);font-weight:650;margin:0}@keyframes iq-score-spin{to{transform:rotate(360deg)}}.iq-coverage-score{animation:iq-score-in .45s ease both;background:linear-gradient(145deg,#fff,#f7fbff);border:1px solid #dbe7f1;border-radius:16px;box-shadow:0 16px 38px rgba(15,23,42,.09);margin-top:24px;overflow:hidden;padding:30px}.iq-score-kicker{color:var(--iq-primary);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.iq-score-main{align-items:center;display:flex;gap:26px;margin:18px 0 26px}.iq-score-ring{align-items:center;background:conic-gradient(var(--iq-primary) calc(var(--iq-score) * 1%),#e5edf5 0);border-radius:50%;display:flex;flex:0 0 132px;height:132px;justify-content:center;position:relative}.iq-score-ring:before{background:#fff;border-radius:50%;content:"";inset:10px;position:absolute}.iq-score-ring strong,.iq-score-ring span{position:relative;z-index:1}.iq-score-ring strong{color:var(--iq-text);font-size:38px;letter-spacing:-.06em}.iq-score-ring span{align-self:center;color:var(--iq-text-secondary);font-size:13px;margin-left:4px}.iq-score-main h2{color:var(--iq-text);font-size:28px;margin:0 0 8px}.iq-score-main p{color:var(--iq-text-secondary);line-height:1.55;margin:0;max-width:520px}.iq-score-factors{border-top:1px solid #e5edf5;display:grid;gap:0;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;margin:0;padding:4px 0}.iq-score-factor{align-items:center;border-bottom:1px solid #eaf0f5;display:grid;font-size:14px;gap:9px;grid-template-columns:10px 1fr auto auto;padding:12px 4px}.iq-score-dot{background:#94a3b8;border-radius:50%;height:9px;width:9px}.iq-score-factor--good .iq-score-dot{background:#10b981}.iq-score-factor--review .iq-score-dot{background:#f59e0b}.iq-score-factor--poor .iq-score-dot{background:#ef4444}.iq-score-factor strong{font-size:12px}.iq-score-factor small{color:var(--iq-text-muted);font-size:11px;min-width:34px;text-align:right}.iq-score-disclaimer{color:var(--iq-text-muted);font-size:12px;line-height:1.5;margin:20px 0}.iq-score-cta{background:var(--iq-accent);border:0;border-radius:8px;color:#fff;cursor:pointer;font:inherit;font-weight:750;padding:14px 18px;transition:background .2s,transform .2s}.iq-score-cta:hover{background:var(--iq-accent-hover);transform:translateY(-1px)}@keyframes iq-score-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:620px){.iq-coverage-score{padding:22px 18px}.iq-score-main{align-items:flex-start;flex-direction:column;gap:18px}.iq-score-ring{flex-basis:112px;height:112px}.iq-score-ring strong{font-size:32px}.iq-score-factors{grid-template-columns:1fr}.iq-score-main h2{font-size:24px}}
.iq-question-flow{padding:2px 0}.iq-progress{margin-bottom:24px}.iq-progress-label{color:var(--iq-text-secondary);display:block;font-size:13px;font-weight:700;margin-bottom:8px}.iq-progress-track{background:#e2e8f0;height:5px;width:100%}.iq-progress-track i{background:var(--iq-accent);display:block;height:100%;transition:width .25s ease;width:25%}.iq-question h3{color:var(--iq-text);font-size:20px;line-height:1.3;margin:0 0 16px}.iq-answers{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.iq-answers button{background:#fff;border:1px solid var(--iq-border);color:var(--iq-text);cursor:pointer;font:inherit;font-size:14px;font-weight:700;padding:15px;text-align:left}.iq-answers button:hover{background:#f8fafc;border-color:var(--iq-primary);color:var(--iq-primary)}.iq-question-back{background:transparent;border:0;color:var(--iq-primary);cursor:pointer;font-weight:700;margin-top:18px;padding:0}@media(max-width:480px){.iq-answers{grid-template-columns:1fr}.iq-question h3{font-size:18px}}
