.widgets--research-areas {
	position: relative;
	overflow: hidden;
	padding: 5rem var(--pd);
	background: var(--gr3);

	&::after {
		content: "";
		position: absolute;
		bottom: -10rem;
		left: -8rem;
		width: 24rem;
		aspect-ratio: 1 / 1;
		border-radius: 50%;
		background-color: var(--bg2);
		opacity: 0.65;
	}

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

	> .intro {
		display: grid;
		grid-template-columns: minmax(0, 3fr) minmax(16rem, 2fr);
		gap: calc(var(--pd) * 2);
		align-items: end;

		> h2 {
			max-width: 48rem;
			margin: 0;
			color: var(--g6);
			font-size: 2.4rem;
			font-weight: 800;
			line-height: 120%;
		}

		> .summary {
			padding-left: 1.5rem;
			border-left: 0.3rem solid var(--c3);
			color: var(--g4);
			font-size: 1rem;
			line-height: 160%;

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

	> .areas {
		display: grid;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		gap: 1rem;
		align-items: stretch;
		margin-top: 3rem;
		counter-reset: research-area;

		> .area {
			display: flex;
			min-width: 0;
			min-height: 19rem;
			margin: 0;
			padding: 1.5rem;
			border: var(--px) solid var(--c7);
			border-radius: 1rem;
			background-color: var(--bg);
			box-shadow: 0 0.5rem 1.5rem rgba(94, 84, 80, 0.07);
			counter-increment: research-area;
			flex-direction: column;
			transition: transform 0.2s ease, box-shadow 0.2s ease;

			&:hover {
				box-shadow: 0 0.75rem 1.75rem rgba(94, 84, 80, 0.12);
				transform: translateY(-0.25rem);
			}

			> .number {
				display: flex;
				align-items: center;
				justify-content: center;
				width: 3rem;
				aspect-ratio: 1 / 1;
				/* margin-bottom: auto; */
				border-radius: 50%;
				background-color: var(--c8);
				color: var(--c3);
				font-size: 0.8rem;
				font-weight: 800;

				&::before {
					content: counter(research-area, decimal-leading-zero);
				}
			}

			> h3 {
				margin: 2.5rem 0 0.75rem;
				color: var(--c1);
				font-size: 1.2rem;
				font-weight: 800;
				line-height: 130%;
			}

			> .text {
				color: var(--g4);
				font-size: 0.9rem;
				line-height: 155%;

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

	> .publication-link {
		display: flex;
		justify-content: flex-end;
		margin-top: 2rem;

		> a {
			display: inline-flex;
			gap: 0.75rem;
			align-items: center;
			padding-bottom: 0.35rem;
			border-bottom: var(--px) solid currentColor;
			color: var(--c1);
			font-size: 0.9rem;
			font-weight: 800;
			text-decoration: none;

			&[href=""] {
				display: none;
			}

			&:hover {
				color: var(--c3);
			}

			> svg {
				width: 1.25rem;
				height: 1.25rem;
				transition: transform 0.2s ease;
			}

			&:hover > svg {
				transform: translateX(0.25rem);
			}
		}
	}

	@media (max-width: 1279px) {
		> .intro {
			gap: var(--pd);
		}

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

			> .area {
				min-height: 17rem;
			}
		}
	}

	@media (max-width: 991px) {
		> .intro {
			grid-template-columns: minmax(0, 1fr);
			align-items: start;

			> .summary {
				max-width: 42rem;
			}
		}

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

			> .area {
				min-height: 15rem;
			}
		}
	}

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

		> .intro > h2 {
			font-size: 2rem;
		}

		> .areas > .area {
			min-height: 16rem;
		}
	}

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

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

			> .area {
				min-height: 0;

				> .number {
					/* margin-bottom: 2.5rem; */
				}
			}
		}

		> .publication-link {
			justify-content: flex-start;
		}
	}
}
