.iqb-wrap { max-width: var(--iqb-max, 640px); margin: 1.5em 0; }
.iqb-form { position: relative; }
.iqb-form.iqb-loading .iqb-total-value { opacity: .5; }
.iqb-form.iqb-done .iqb-submit { display: none; }
.iqb-title { margin: 0 0 1em; }
.iqb-field { margin-bottom: 1em; }
.iqb-field[hidden] { display: none; }
.iqb-field > label,
.iqb-field legend { display: block; font-weight: 600; margin-bottom: .3em; }
.iqb-field input[type="text"],
.iqb-field input[type="email"],
.iqb-field input[type="tel"],
.iqb-field input[type="number"],
.iqb-field select,
.iqb-field textarea { width: 100%; box-sizing: border-box; padding: .55em .7em; }
.iqb-field fieldset { border: 0; margin: 0; padding: 0; }
.iqb-choice { display: block; font-weight: 400; margin: .25em 0; }
.iqb-req { color: #b32d2e; }
.iqb-help { font-size: .875em; opacity: .75; margin: .3em 0 0; }
.iqb-error { color: #b32d2e; font-size: .875em; margin: .3em 0 0; min-height: 0; }
.iqb-error:empty { display: none; }
.iqb-invalid input,
.iqb-invalid select,
.iqb-invalid textarea { border-color: #b32d2e; }
.iqb-summary { border-top: 2px solid currentColor; margin: 1.5em 0 1em; padding-top: .75em; }
.iqb-lines { list-style: none; margin: 0 0 .5em; padding: 0; }
.iqb-lines li { display: flex; justify-content: space-between; gap: 1em; padding: .2em 0; }
.iqb-total { display: flex; justify-content: space-between; font-size: 1.2em; margin: 0; }
.iqb-message { margin: .75em 0; }
.iqb-message:empty { display: none; }
.iqb-message--error { color: #b32d2e; }
.iqb-message--success { color: #1a7f37; font-weight: 600; }
.iqb-submit { cursor: pointer; padding: .7em 1.6em; }
.iqb-submit[disabled] { cursor: progress; opacity: .6; }
.iqb-hp { position: absolute; left: -9999px; }

/* Layout: a two-column grid; fields are full width unless set to half. */
.iqb-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); -moz-column-gap: 1.25em; column-gap: 1.25em; }
.iqb-fields > .iqb-field { grid-column: 1 / -1; }
.iqb-fields > .iqb-field.iqb-w-half { grid-column: auto; }
@media (max-width: 560px) {
	.iqb-fields > .iqb-field.iqb-w-half { grid-column: 1 / -1; }
}
.iqb-density-compact .iqb-field { margin-bottom: .6em; }
.iqb-density-compact .iqb-summary { margin-top: 1em; }

/* Corner radius (only when the form sets one). */
.iqb-has-radius .iqb-field input[type="text"],
.iqb-has-radius .iqb-field input[type="email"],
.iqb-has-radius .iqb-field input[type="tel"],
.iqb-has-radius .iqb-field input[type="number"],
.iqb-has-radius .iqb-field select,
.iqb-has-radius .iqb-field textarea,
.iqb-has-radius .iqb-submit { border-radius: var(--iqb-radius); }

/* Accent colour (only when the form sets one). */
.iqb-has-accent .iqb-field input,
.iqb-has-accent .iqb-field select,
.iqb-has-accent .iqb-field textarea { accent-color: var(--iqb-accent); }
.iqb-has-accent .iqb-field input:focus,
.iqb-has-accent .iqb-field select:focus,
.iqb-has-accent .iqb-field textarea:focus { outline: 2px solid var(--iqb-accent); outline-offset: 1px; }
.iqb-has-accent .iqb-summary { border-top-color: var(--iqb-accent); }
.iqb-has-accent .iqb-total-value { color: var(--iqb-accent); }
.iqb-has-accent .iqb-submit { background: var(--iqb-accent); border: 1px solid var(--iqb-accent); color: #fff; font-weight: 600; }
.iqb-has-accent .iqb-submit:hover:not([disabled]) { filter: brightness(.92); }
.iqb-btn-full .iqb-submit { display: block; width: 100%; text-align: center; }

/* Style presets. */
.iqb-style-card { background: #fff; color: #1d2327; border: 1px solid rgba(0, 0, 0, .1); box-shadow: 0 8px 28px rgba(0, 0, 0, .07); padding: 1.75em; border-radius: var(--iqb-radius, 10px); }
.iqb-style-card .iqb-field input[type="text"],
.iqb-style-card .iqb-field input[type="email"],
.iqb-style-card .iqb-field input[type="tel"],
.iqb-style-card .iqb-field input[type="number"],
.iqb-style-card .iqb-field select,
.iqb-style-card .iqb-field textarea { border: 1px solid #cbd0d6; background: #fff; color: #1d2327; }
.iqb-style-minimal .iqb-field input[type="text"],
.iqb-style-minimal .iqb-field input[type="email"],
.iqb-style-minimal .iqb-field input[type="tel"],
.iqb-style-minimal .iqb-field input[type="number"],
.iqb-style-minimal .iqb-field select,
.iqb-style-minimal .iqb-field textarea { border: 0; border-bottom: 1.5px solid currentColor; border-radius: 0; background: transparent; padding-left: 0; padding-right: 0; }
.iqb-style-minimal.iqb-has-radius .iqb-field input,
.iqb-style-minimal.iqb-has-radius .iqb-field select,
.iqb-style-minimal.iqb-has-radius .iqb-field textarea { border-radius: 0; }

