.widgets--consultation-request {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: calc(var(--pd) * 2);
	align-items: center;
	overflow: hidden;
	padding: 5rem var(--pd);
	background: var(--gr2);
	scroll-margin-top: 5rem;

	&::before,
	&::after {
		content: "";
		position: absolute;
		border: var(--px) solid var(--c6);
		border-radius: 50%;
	}

	&::before {
		top: -15rem;
		left: -12rem;
		width: 32rem;
		aspect-ratio: 1 / 1;
	}

	&::after {
		right: -8rem;
		bottom: -10rem;
		width: 22rem;
		aspect-ratio: 1 / 1;
	}

	> * {
		position: relative;
		z-index: 1;
	}

	> .copy {
		min-width: 0;

		> h2 {
			margin: 0;
			color: var(--c1);
			font-size: 2.6rem;
			font-weight: 800;
			line-height: 120%;
		}

		> .text {
			max-width: 34rem;
			margin-top: 1.5rem;
			color: var(--g4);
			font-size: 1.05rem;
			line-height: 165%;

			> *:last-child {
				margin-bottom: 0;
			}
		}

		> .highlights {
			display: flex;
			gap: 1rem;
			margin-top: 2.5rem;
			flex-direction: column;

			> .highlight {
				display: grid;
				grid-template-columns: 2.75rem minmax(0, 1fr);
				gap: 1rem;
				align-items: center;
				max-width: 30rem;
				color: var(--g6);
				font-size: 0.95rem;
				font-weight: 800;
				line-height: 140%;

				> .icon {
					display: flex;
					align-items: center;
					justify-content: center;
					width: 2.75rem;
					aspect-ratio: 1 / 1;
					border-radius: 50%;
					border: var(--px) solid var(--c6);
					background-color: var(--bg);
					color: var(--c3);

					> svg {
						width: 1.35rem;
						height: 1.35rem;
					}
				}
			}
		}
	}

	> .form-card {
		min-width: 0;
		padding: 3rem;
		border-radius: 1.5rem;
		background-color: var(--bg);
		box-shadow: 0 1rem 3rem rgba(94, 84, 80, 0.14);

		> h3 {
			margin: 0 0 2rem;
			color: var(--c1);
			font-size: 1.7rem;
			font-weight: 800;
			line-height: 125%;
		}

		> .request-form {
			> .field-grid {
				display: grid;
				grid-template-columns: repeat(2, minmax(0, 1fr));
				gap: 1.25rem;

				> .field {
					display: flex;
					min-width: 0;
					flex-direction: column;

					&.field-wide {
						grid-column: 1 / -1;
					}

					> span {
						margin-bottom: 0.45rem;
						color: var(--g5);
						font-size: 0.78rem;
						font-weight: 700;
						line-height: 140%;

						> em {
							color: var(--c3);
							font-style: normal;
						}
					}

					> input,
					> .phone-control > input,
					> .phone-control > select {
						width: 100%;
						min-height: 3rem;
						padding: 0.75rem 1rem;
						border: var(--px) solid var(--c6);
						border-radius: 0.75rem;
						background-color: var(--c8);
						color: var(--g6);
						font-size: 1rem;
						transition: border-color 0.2s ease, box-shadow 0.2s ease;

						&:focus {
							border-color: var(--c3);
							box-shadow: 0 0 0 0.2rem var(--c7);
						}
					}

					> .phone-control {
						display: grid;
						grid-template-columns: 7rem minmax(0, 1fr);
						gap: 0.5rem;
						min-width: 0;

						> select {
							padding-inline: 0.65rem;
							cursor: pointer;
						}
					}
				}
			}

			> .reports {
				margin: 1.5rem 0 0;
				padding: 0;
				border: 0;

				> legend {
					margin-bottom: 0.65rem;
					padding: 0;
					color: var(--g5);
					font-size: 0.78rem;
					font-weight: 700;
					line-height: 140%;

					> em {
						color: var(--c3);
						font-style: normal;
					}
				}

				> .choices {
					display: grid;
					grid-template-columns: repeat(2, minmax(0, 1fr));
					gap: 1rem;

					> .choice {
						position: relative;
						display: block;
						cursor: pointer;

						> input {
							position: absolute;
							opacity: 0;
							pointer-events: none;
						}

						> span {
							display: flex;
							align-items: center;
							justify-content: center;
							min-height: 3rem;
							padding: 0.75rem 1rem;
							border: var(--px) solid var(--c6);
							border-radius: 0.75rem;
							background-color: var(--c8);
							color: var(--g5);
							font-size: 0.9rem;
							font-weight: 800;
							transition: background-color 0.2s ease, border-color 0.2s ease;
						}

						> input:checked + span {
							border-color: var(--c3);
							background-color: var(--c7);
							color: var(--c2);
						}

						> input:focus-visible + span {
							box-shadow: 0 0 0 0.2rem var(--c7);
						}
					}
				}
			}

			> .consent {
				display: grid;
				grid-template-columns: 1.25rem minmax(0, 1fr);
				gap: 0.75rem;
				align-items: start;
				margin-top: 1.5rem;
				color: var(--g4);
				font-size: 0.75rem;
				line-height: 145%;

				> input {
					width: 1.25rem;
					height: 1.25rem;
					margin: 0;
					accent-color: var(--c3);
				}
			}

			> .buttons {
				margin-top: 1.5rem;

				> button {
					width: 100%;
					cursor: pointer;

					&:disabled {
						cursor: wait;
						opacity: 0.65;
					}
				}
			}

			> .microcopy {
				margin-top: 0.75rem;
				color: var(--g4);
				font-size: 0.75rem;
				line-height: 145%;
				text-align: center;
			}

			> .form-status {
				display: none;
				margin-top: 1rem;
				padding: 0.75rem 1rem;
				border: var(--px) solid var(--g-red);
				border-radius: 0.75rem;
				background-color: var(--c8);
				color: var(--g-red);
				font-size: 0.78rem;
				font-weight: 700;
				line-height: 145%;
				text-align: center;

				&.has-error {
					display: block;
				}
			}
		}
	}

	@media (max-width: 1279px) {
		grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
		gap: var(--pd);

		> .form-card {
			padding: 2.5rem;
		}
	}

	@media (max-width: 991px) {
		grid-template-columns: minmax(0, 1fr);

		> .copy {
			display: grid;
			grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.7fr);
			gap: 1rem var(--pd);
			align-items: end;

			> h2,
			> .text {
				grid-column: 1;
			}

			> .highlights {
				grid-column: 2;
				grid-row: 1 / 3;
				margin-top: 0;
			}
		}
	}

	@media (max-width: 767px) {
		padding-block: 4rem;

		> .copy {
			grid-template-columns: minmax(0, 1fr);

			> h2 {
				font-size: 2rem;
			}

			> .highlights {
				grid-column: 1;
				grid-row: auto;
				margin-top: 1rem;
			}
		}
	}

	@media (max-width: 540px) {
		padding-block: 3rem;

		> .form-card {
			padding: 1.5rem;

			> .request-form > .field-grid {
				grid-template-columns: minmax(0, 1fr);

				> .field.field-wide {
					grid-column: auto;
				}
			}
		}
	}
}
