/* Responsive overrides for registration form copies. */

@media (max-width: 767px) {
	form.registration input.input,
	form.registration textarea.textarea,
	form.registration select {
		box-sizing: border-box;
		max-width: 100%;
		min-width: 0;
	}

	form.registration p:has(> label):has(> .req-marker) {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		column-gap: 8px;
		row-gap: 8px;
	}

	form.registration p:has(> label):has(> .req-marker)::after {
		content: '';
		order: -1;
		flex: 0 0 100%;
		height: 0;
	}

	form.registration p:has(> label):has(> .req-marker) label {
		order: -3;
		float: none;
		width: auto;
		margin-right: 0;
	}

	form.registration p:has(> label):has(> .req-marker) .req-marker {
		order: -2;
		margin: 4px 0 0 !important;
	}

	form.registration p:has(> label):has(> .req-marker) input.input,
	form.registration p:has(> label):has(> .req-marker) select {
		order: 0;
	}

	form.registration p:has(> label):has(> .req-marker) input.input:not(.micro):not(.middle),
	form.registration p:has(> label):has(> .req-marker) select {
		flex: 0 0 100%;
		width: 100% !important;
	}

	form.registration p:has(> input.micro + input.middle) input.micro,
	form.registration p:has(> input.middle + input.micro) input.micro {
		flex: 0 0 28%;
		width: 28% !important;
		margin-right: 0;
	}

	form.registration p:has(> input.micro + input.middle) input.middle,
	form.registration p:has(> input.middle + input.micro) input.middle {
		flex: 1 1 0;
		width: auto !important;
		margin-right: 0;
	}

	form.registration p:has(> input.micro + input.small),
	form.registration p:has(> input.micro + input.telfax) {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		column-gap: 8px;
		row-gap: 8px;
	}

	form.registration p:has(> input.micro + input.small) label,
	form.registration p:has(> input.micro + input.telfax) label {
		order: -2;
		float: none;
		width: auto;
		margin-right: 0;
	}

	form.registration p:has(> input.micro + input.small)::after,
	form.registration p:has(> input.micro + input.telfax)::after {
		content: '';
		order: -1;
		flex: 0 0 100%;
		height: 0;
	}

	form.registration p:has(> input.micro + input.small) input.micro,
	form.registration p:has(> input.micro + input.telfax) input.micro {
		flex: 0 0 24% !important;
		width: 24% !important;
		margin-right: 0;
	}

	form.registration p:has(> input.micro + input.small) input.small,
	form.registration p:has(> input.micro + input.telfax) input.telfax {
		flex: 1 1 0 !important;
		width: auto !important;
		margin-right: 0;
	}

	form.registration .section-heading {
		display: block;
		margin-top: 42px;
	}

	form.registration p.fee-note {
		margin-top: 6px !important;
	}

	form.registration :is(.section-heading-fees + table, h3 + table),
	form.registration :is(.section-heading-fees + table, h3 + table) colgroup,
	form.registration :is(.section-heading-fees + table, h3 + table) thead,
	form.registration :is(.section-heading-fees + table, h3 + table) tbody,
	form.registration :is(.section-heading-fees + table, h3 + table) tfoot,
	form.registration :is(.section-heading-fees + table, h3 + table) tr,
	form.registration :is(.section-heading-fees + table, h3 + table) th,
	form.registration :is(.section-heading-fees + table, h3 + table) td {
		display: block;
		box-sizing: border-box;
		width: 100%;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) {
		display: flex;
		flex-direction: column;
		border-collapse: separate;
		border-spacing: 0;
		margin-left: 0;
		margin-right: 0;
		overflow: hidden;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) colgroup,
	form.registration :is(.section-heading-fees + table, h3 + table) thead th:first-child,
	form.registration :is(.section-heading-fees + table, h3 + table) thead th:last-child {
		display: none;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) thead {
		display: grid;
		order: 2;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		margin-bottom: 12px;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) tbody {
		display: contents;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) thead tr {
		display: contents;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) thead th {
		display: block;
		width: auto;
		padding: 10px 12px;
		background-color: #72e7ff;
		text-align: center !important;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) tbody tr {
		order: 3;
		display: grid;
		grid-template-columns: 1fr 1fr;
		margin-bottom: 16px;
		background: #fff;
		border: 1px solid #cfcfcf;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) tbody tr:has(> th) {
		order: 1;
		display: block;
		margin-bottom: 8px;
		border: 0;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) tbody th {
		padding: 14px 16px;
		border: 0;
		background-color: transparent;
		color: #323845;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) tbody td {
		border: 0;
		border-top: 1px solid #cfcfcf;
		padding: 12px 16px;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) tbody td:first-child {
		grid-column: 1 / -1;
		border-top: 0;
		padding-top: 16px;
		padding-bottom: 16px;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) tbody td.cost {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		min-height: 46px;
		line-height: 1.3;
		text-align: right;
		white-space: nowrap;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) tbody td.subtotal {
		grid-column: 1 / -1;
		min-height: 46px;
		padding: 12px 16px;
		border: 0;
		border-top: 1px solid #cfcfcf;
		text-align: right;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) .registered-lab-number-row {
		border: 1px solid #cfcfcf;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) .registered-lab-number-cell {
		padding: 14px 16px;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) .registered-lab-number-spacer {
		display: none;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) tfoot tr {
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: center;
		margin-top: 16px;
		background: #72e7ff;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) tfoot {
		order: 4;
	}

	form.registration :is(.section-heading-fees + table, h3 + table) tfoot th,
	form.registration :is(.section-heading-fees + table, h3 + table) tfoot td.subtotal {
		width: auto;
		padding: 12px 16px;
		line-height: 1.3;
	}

	form.registration ul.paymenttype li {
		box-sizing: border-box;
		overflow: hidden;
	}

	form.registration ul.paymenttype li table.regular {
		display: table;
		float: none;
		width: 100%;
		max-width: 100%;
		table-layout: fixed;
		margin: 12px 0 16px;
	}

	form.registration ul.paymenttype li table.regular tbody {
		display: table-row-group;
		float: none;
		width: auto;
	}

	form.registration ul.paymenttype li table.regular tr {
		display: table-row;
		float: none;
		width: auto;
	}

	form.registration ul.paymenttype li table.regular th,
	form.registration ul.paymenttype li table.regular td {
		display: table-cell;
		float: none;
		box-sizing: border-box;
		padding: 10px 12px;
		vertical-align: top;
		overflow-wrap: anywhere;
	}

	form.registration ul.paymenttype li table.regular th {
		width: 38% !important;
	}

	form.registration ul.paymenttype li table.regular td {
		width: 62%;
	}
}
