/* IGM Materials Order Form. Override the variables below in your theme to match branding. */
.igm-mo {
	--igm-accent: #1f4e79;
	--igm-accent-soft: #eaf1f8;
	--igm-border: #d6dbe1;
	--igm-text: inherit;
	--igm-muted: #5f6b7a;
	--igm-bg: #fff;
	--igm-error: #b42318;
	--igm-error-soft: #fef3f2;
	--igm-success: #067647;
	--igm-success-soft: #ecfdf3;
	--igm-radius: 6px;
	--igm-font-size: 0.9em; /* Form text size relative to the theme. Raise toward 1em for larger text. */
	font-size: var(--igm-font-size);
	line-height: 1.45;
	max-width: 960px;
	margin: 0 auto;
	color: var(--igm-text);
	box-sizing: border-box;
}
.igm-mo *, .igm-mo *::before, .igm-mo *::after { box-sizing: inherit; }
.igm-mo [hidden] { display: none !important; }

.igm-section {
	background: var(--igm-bg);
	border: 1px solid var(--igm-border);
	border-radius: var(--igm-radius);
	padding: 20px 22px;
	margin: 0 0 24px;
}
.igm-section-title {
	margin: 0 0 16px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--igm-accent);
	color: var(--igm-accent);
	font-size: 1.25em;
}
.igm-note { margin: -4px 0 16px; color: var(--igm-muted); font-style: italic; }

.igm-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.igm-span-2 { grid-column: 1 / -1; }

.igm-field { margin: 0 0 13px; border: 0; padding: 0; min-width: 0; }
.igm-field > label:not(.igm-choice), .igm-field > legend, .igm-label {
	display: block;
	font-weight: 600;
	margin: 0 0 6px;
	padding: 0;
}
.igm-req { color: var(--igm-error); }
.igm-help { margin: 4px 0 0; font-size: .875em; color: var(--igm-muted); }
.igm-static { margin: 0; }

.igm-mo input[type=text], .igm-mo input[type=email], .igm-mo input[type=tel], .igm-mo input[type=number],
.igm-mo input[type=date], .igm-mo input[type=time], .igm-mo select, .igm-mo textarea {
	width: 100%;
	padding: 7px 10px;
	border: 1px solid var(--igm-border);
	border-radius: var(--igm-radius);
	background: #fff;
	font: inherit;
	line-height: 1.4;
	min-height: 38px;
}
.igm-mo input:focus, .igm-mo select:focus, .igm-mo textarea:focus {
	outline: 2px solid var(--igm-accent);
	outline-offset: 1px;
	border-color: var(--igm-accent);
}
.igm-mo input[type=file] { font: inherit; max-width: 100%; }

.igm-choices.igm-inline { display: block; }
.igm-choices.igm-inline .igm-choice { display: inline-flex; margin-right: 22px; }
.igm-choice { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; cursor: pointer; font-weight: 400; }
.igm-choice input { width: 18px; height: 18px; margin: 0; accent-color: var(--igm-accent); flex: none; }
.igm-section-offerings .igm-choices .igm-choice {
	padding: 10px 12px; border: 1px solid var(--igm-border); border-radius: var(--igm-radius); margin-bottom: 8px;
}
.igm-section-offerings .igm-choice:has(input:checked) { background: var(--igm-accent-soft); border-color: var(--igm-accent); }

/* Wide mode: break out of narrow theme content columns (Settings → "Use full page width"). */
.igm-mo.igm-wide {
	width: min(960px, calc(100vw - 48px));
	max-width: none;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}

.igm-address { margin-bottom: 4px; }
.igm-address > legend { margin-bottom: 8px; }
.igm-address .igm-field { margin-bottom: 12px; }
.igm-address .igm-field > label:not(.igm-choice) { font-weight: 400; font-size: .9em; color: var(--igm-muted); }

/* Tables */
.igm-table-wrap { overflow-x: auto; }
.igm-table { width: 100%; border-collapse: collapse; margin: 0; }
.igm-table th, .igm-table td { border: 1px solid var(--igm-border); padding: 8px 10px; text-align: left; vertical-align: middle; }
.igm-table thead th { background: var(--igm-accent-soft); font-weight: 600; }
.igm-table tbody th { font-weight: 400; }
.igm-table tbody th .igm-choice { margin: 0; }
.igm-mod-all th { font-weight: 700 !important; }
.igm-mod-all .igm-choice span { font-weight: 700; }
.igm-qty-col { width: 150px; }
.igm-hybrid-table td { text-align: center; width: 110px; }
.igm-hybrid-table input { width: 18px; height: 18px; accent-color: var(--igm-accent); }
.igm-mod-num {
	display: inline-flex; align-items: center; justify-content: center;
	width: 24px; height: 24px; border-radius: 50%; background: var(--igm-accent); color: #fff;
	font-size: .8em; font-weight: 700; margin-right: 6px;
}
.igm-hybrid { margin: 0 0 16px; padding: 16px; background: var(--igm-accent-soft); border-radius: var(--igm-radius); }
.igm-hybrid .igm-table td, .igm-hybrid .igm-table th { background: #fff; }
.igm-link { background: none; border: 0; padding: 0; color: var(--igm-accent); text-decoration: underline; cursor: pointer; font: inherit; }

.igm-qty-list { margin: 0 0 16px; }
.igm-qty-row { display: grid; grid-template-columns: minmax(0, 1fr) 140px; gap: 12px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--igm-border); }
.igm-qty-row .igm-choice { margin: 0; }
.igm-row-sub { grid-column: 1 / -1; margin: 4px 0 6px; }
.igm-multi-row { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.igm-multi-row input { flex: 1; }
.igm-multi-remove {
	flex: none; width: 34px; height: 34px; border: 1px solid var(--igm-border); border-radius: var(--igm-radius);
	background: #fff; color: var(--igm-muted); font-size: 1.2em; line-height: 1; cursor: pointer;
}
.igm-multi-remove:hover { color: var(--igm-error); border-color: var(--igm-error); }
.igm-multi-add { font-weight: 600; }
.igm-mod-divider td {
	background: var(--igm-accent-soft) !important; color: var(--igm-accent); font-weight: 600;
	font-style: italic; text-align: center; padding: 6px 10px; border-top: 2px solid var(--igm-accent);
}

.igm-items { margin-top: 20px; padding-top: 16px; border-top: 1px dashed var(--igm-border); }
.igm-sub { padding: 12px 16px; margin: 0 0 16px; border-left: 3px solid var(--igm-accent); background: var(--igm-accent-soft); border-radius: 0 var(--igm-radius) var(--igm-radius) 0; }

/* Validation */
.igm-invalid input, .igm-invalid select, .igm-invalid textarea { border-color: var(--igm-error); }
fieldset.igm-invalid, .igm-modules.igm-invalid, .igm-qty-list.igm-invalid, .igm-hybrid.igm-invalid { outline: 2px solid var(--igm-error); outline-offset: 4px; border-radius: 2px; }
tr.igm-invalid th, tr.igm-invalid td, .igm-qty-row.igm-invalid { background: var(--igm-error-soft) !important; }

.igm-alert { padding: 14px 18px; border-radius: var(--igm-radius); margin: 0 0 20px; border: 1px solid; }
.igm-alert p { margin: 0 0 6px; font-weight: 600; }
.igm-alert ul { margin: 0; padding-left: 20px; }
.igm-error { background: var(--igm-error-soft); border-color: var(--igm-error); color: var(--igm-error); }
.igm-success { background: var(--igm-success-soft); border-color: var(--igm-success); color: var(--igm-success); font-weight: 600; }

.igm-actions { display: flex; align-items: center; gap: 14px; }
.igm-submit {
	background: var(--igm-accent); color: #fff; border: 0; border-radius: var(--igm-radius);
	padding: 14px 32px; font: inherit; font-weight: 700; cursor: pointer; min-height: 48px;
}
.igm-submit:hover { filter: brightness(1.1); }
.igm-submit:disabled { opacity: .6; cursor: wait; }
.igm-spinner { display: none; width: 22px; height: 22px; border: 3px solid var(--igm-border); border-top-color: var(--igm-accent); border-radius: 50%; animation: igm-spin .8s linear infinite; }
.igm-busy .igm-spinner { display: inline-block; }
@keyframes igm-spin { to { transform: rotate(360deg); } }

.igm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 640px) {
	/* Keep inputs at 16px on phones so iOS doesn't zoom in when a field is tapped. */
	.igm-mo input[type=text], .igm-mo input[type=email], .igm-mo input[type=tel], .igm-mo input[type=number],
	.igm-mo input[type=date], .igm-mo input[type=time], .igm-mo select, .igm-mo textarea { font-size: 16px; }
	.igm-section { padding: 16px; }
	.igm-grid { grid-template-columns: 1fr; }
	.igm-qty-row { grid-template-columns: minmax(0, 1fr) 96px; }
	/* Stack module tables */
	.igm-module-table thead { display: none; }
	.igm-module-table, .igm-module-table tbody, .igm-module-table tr, .igm-module-table th, .igm-module-table td { display: block; width: 100%; }
	.igm-module-table tr { border: 1px solid var(--igm-border); border-radius: var(--igm-radius); margin-bottom: 8px; padding: 8px; }
	.igm-module-table th, .igm-module-table td { border: 0; padding: 4px 0; }
	.igm-module-table td[hidden] { display: none !important; }
	.igm-module-table td::before { content: attr(data-label); display: block; font-size: .8em; color: var(--igm-muted); }
	.igm-module-table tr.igm-mod-divider { padding: 0; border: 0; }
	.igm-hybrid { padding: 10px; }
	.igm-hybrid-table th, .igm-hybrid-table td { padding: 6px; font-size: .92em; }
	.igm-hybrid-table td { width: 58px; }
	.igm-mod-num { display: none; }
}
