/* All values below are driven by CSS variables. The fallbacks here match the
   defaults; the Design settings page overrides them via an inline <style>. */
.ivqf {
	--ivqf-heading: "Montserrat", system-ui, sans-serif;
	--ivqf-body: "Montserrat", system-ui, sans-serif;
	--ivqf-container-bg: #f1f1f1;
	--ivqf-heading-color: #000;
	--ivqf-text: #222;
	--ivqf-field-bg: #d9d9d9;
	--ivqf-input-text: #000;
	--ivqf-placeholder: #777;
	--ivqf-focus: #000;
	--ivqf-btn-bg: #000;
	--ivqf-btn-text: #fff;
	--ivqf-peek-color: #fff;
	--ivqf-container-radius: 55px;
	--ivqf-container-padding: 40px;
	--ivqf-max-width: 700px;
	--ivqf-row-gap: 32px;
	--ivqf-title-size: 40px;
	--ivqf-title-weight: 800;
	--ivqf-intro-size: 22px;
	--ivqf-label-size: 23px;
	--ivqf-label-gap: 14px;
	--ivqf-input-size: 23px;
	--ivqf-input-height: 56px;
	--ivqf-input-radius: 30px;
	--ivqf-input-pad: 32px;
	--ivqf-textarea-height: 160px;
	--ivqf-textarea-radius: 45px;
	--ivqf-btn-width: 400px;
	--ivqf-btn-height: 58px;
	--ivqf-btn-radius: 999px;
	--ivqf-btn-size: 23px;
	--ivqf-btn-spacing: .08em;
	--ivqf-shadow: 0 6px 24px rgba(0, 0, 0, .06);

	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: var(--ivqf-max-width);
	background: var(--ivqf-container-bg);
	color: var(--ivqf-text);
	border: 0;
	border-radius: var(--ivqf-container-radius);
	padding: var(--ivqf-container-padding);
	box-shadow: var(--ivqf-shadow);
	font-family: var(--ivqf-body);
	font-weight: 400;
}
.ivqf *, .ivqf *::before, .ivqf *::after { box-sizing: border-box; }

.ivqf__title {
	margin: 0 0 8px;
	font-family: var(--ivqf-heading);
	font-size: var(--ivqf-title-size);
	line-height: 1.15;
	font-weight: var(--ivqf-title-weight);
	color: var(--ivqf-heading-color);
}
.ivqf__intro {
	margin: 0 0 32px;
	font-size: var(--ivqf-intro-size);
	line-height: 1.45;
	color: var(--ivqf-text);
}

/* Row 1: Full Name + Phone Number, 2 columns of 50% */
.ivqf__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--ivqf-row-gap);
}
.ivqf__field { margin-bottom: 24px; min-width: 0; }
.ivqf__field label {
	display: block;
	margin: 0 0 var(--ivqf-label-gap);
	font-family: var(--ivqf-body);
	font-size: var(--ivqf-label-size);
	font-weight: 400;
	line-height: 1.25;
	color: var(--ivqf-text);
}

.ivqf input[type="text"],
.ivqf input[type="email"],
.ivqf input[type="tel"],
.ivqf select,
.ivqf textarea {
	display: block;
	width: 100%;
	height: var(--ivqf-input-height);
	margin: 0;
	padding: 0 var(--ivqf-input-pad);
	border: 0;
	border-radius: var(--ivqf-input-radius);
	background-color: var(--ivqf-field-bg);
	color: var(--ivqf-input-text);
	font-family: Arial, Helvetica, sans-serif;
	font-size: var(--ivqf-input-size);
	font-weight: 400;
	line-height: normal;
	box-shadow: none;
	outline: none;
	transition: box-shadow .15s ease;
}
.ivqf input::placeholder,
.ivqf textarea::placeholder { color: var(--ivqf-placeholder); opacity: 1; }

.ivqf select {
	padding-right: calc(var(--ivqf-input-pad) + 32px);
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%23000'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right var(--ivqf-input-pad) center;
	cursor: pointer;
}
.ivqf textarea {
	height: var(--ivqf-textarea-height);
	padding: 30px var(--ivqf-input-pad);
	border-radius: var(--ivqf-textarea-radius);
	resize: vertical;
	vertical-align: top;
}
.ivqf input:focus,
.ivqf select:focus,
.ivqf textarea:focus { box-shadow: 0 0 0 2px var(--ivqf-focus); }
.ivqf .is-invalid { box-shadow: 0 0 0 2px #c0392b; }

.ivqf__star { color: #c0392b; }

/* Honeypot */
.ivqf__hp { position: absolute !important; left: -9999px; height: 0; overflow: hidden; }

.ivqf__msg { margin: 6px 0 18px; font-size: 18px; display: none; }
.ivqf__msg.is-visible { display: block; }
.ivqf__msg.is-ok { color: #1e6b36; }
.ivqf__msg.is-error { color: #c0392b; }

/* Button: pill with an optional second pill peeking out behind it */
.ivqf__btn {
	position: relative;
	z-index: 0;
	isolation: isolate;
	display: inline-block;
	width: var(--ivqf-btn-width);
	max-width: 100%;
	height: var(--ivqf-btn-height);
	padding: 0 24px;
	border: 0;
	border-radius: var(--ivqf-btn-radius);
	background: var(--ivqf-btn-bg);
	color: var(--ivqf-btn-text);
	font-family: var(--ivqf-body);
	font-size: var(--ivqf-btn-size);
	font-weight: 400;
	letter-spacing: var(--ivqf-btn-spacing);
	line-height: var(--ivqf-btn-height);
	text-transform: uppercase;
	cursor: pointer;
	transition: none;
}
.ivqf__btn::after {
	content: "";
	position: absolute;
	z-index: -1;
	top: 14px;
	left: 20px;
	width: 100%;
	height: 100%;
	border-radius: var(--ivqf-btn-radius);
	background: var(--ivqf-peek-color);
}
.ivqf--nopeek .ivqf__btn::after { display: none; }
/* No hover effect: button looks the same on hover. */
.ivqf__btn:hover { background: var(--ivqf-btn-bg); color: var(--ivqf-btn-text); opacity: 1; }
.ivqf__btn:focus-visible { outline: 3px solid var(--ivqf-btn-bg); outline-offset: 4px; }
.ivqf__btn[disabled] { opacity: .55; cursor: wait; }

@media (max-width: 600px) {
	.ivqf { padding: min(var(--ivqf-container-padding), 28px) min(var(--ivqf-container-padding), 22px); border-radius: min(var(--ivqf-container-radius), 40px); }
	.ivqf__title { font-size: min(var(--ivqf-title-size), 30px); }
	.ivqf__intro { font-size: min(var(--ivqf-intro-size), 18px); }
	.ivqf__field label { font-size: min(var(--ivqf-label-size), 18px); }
	.ivqf input[type="text"], .ivqf input[type="email"], .ivqf input[type="tel"],
	.ivqf select, .ivqf textarea { font-size: min(var(--ivqf-input-size), 18px); padding-left: min(var(--ivqf-input-pad), 24px); padding-right: min(var(--ivqf-input-pad), 24px); }
	.ivqf select { padding-right: 52px; background-position: right 24px center; }
	.ivqf textarea { padding: 22px 24px; }
	.ivqf__btn { width: calc(100% - 20px); font-size: min(var(--ivqf-btn-size), 18px); }
	.ivqf--nopeek .ivqf__btn { width: 100%; }
}
@media (max-width: 480px) {
	.ivqf__row { grid-template-columns: 1fr; gap: 0; }
}
