/*-----------------------------------------------------------------*/
/* ARCHIVES
/*-----------------------------------------------------------------*/

/* NEWS & EVENTS (partly)
----------------------------------------- */
.loop-news
{
	display: grid;

	grid-gap: 70px;
	grid-template-columns: 1fr 1fr;
}

.news-school .loop-news
{
	grid-gap: 60px;
	grid-template-columns: 1fr 1fr 1fr;
}

.loop-news article
{
	width: calc(50% - 35px);
	margin: 35px 0;

	text-align: left;
}

.news-school .loop-news article
{
	width: calc(33.33% - 30px);
	margin: 30px 0;
}

@supports (display: grid)
{
	.loop-news article,
	.news-school .loop-news article
	{
		width: auto;
		margin: 0;
	}
}

.loop-news a
{
	text-decoration: none;

	color: var(--color__black);
}

.loop-news .article__image
{
	margin: 0;
}

.loop-news .article__date
{
	font-family: var(--font-family__heading);
	font-size: 1.4rem;
	font-weight: var(--font-weight__bold);

	position: relative;

	display: block;

	margin-bottom: 10px;
}

.loop-news .article__date:before
{
	display: inline-block;

	width: 27px;
	height: 1px;
	margin: -1px 10px 0 0;

	content: '';
	vertical-align: middle;

	background: var(--color__white-darker);
}

.loop-news .article__wrapper
{
	position: relative;

	overflow: hidden;

	max-height: 190px;
	margin: 0 0 10px 0;
}

.loop-news .article__wrapper:after
{
	position: absolute;
	bottom: 0;
	left: 0;

	display: block;

	width: 100%;
	height: 60px;

	content: '';

	background: linear-gradient(to bottom, rgba(255,255,255,0) 20%, rgba(255,255,255,0.9) 80%,rgba(255,255,255,1) 100%);
}

.news-school .loop-news .article__wrapper:after
{
	background: linear-gradient(to bottom, rgba(244,244,241,0) 20%, rgba(244,244,241,0.9) 80%,rgba(244,244,241,1) 100%);
}

.loop-news .article__title,
.loop-event .event__title
{
	font-size: 2.2rem;
	line-height: 2.7rem;

	margin: 0 0 15px 0;

	transition: var(--transition-delay__default);
	text-decoration: underline;
	letter-spacing: -1px;

	color: var(--color__red);
}

.loop-news .article__info
{
	padding: 30px 20px 0 20px;
}

.loop-news .article__excerpt p
{
	font-size: 1.7rem;
	line-height: 2.3rem;

	margin: 0;
}

.loop-news .article__more,
.loop-event .event__more
{
	font-size: 1.7rem;

	transition: var(--transition-delay__default);

	color: var(--color__red);
}

.news-school .loop-news .article__more
{
	display: none;
}

.loop-news .article__more span,
.loop-event .event__more span
{
	text-decoration: underline;
}

.loop-news a:hover .article__title,
.loop-news a:hover .article__more,
.loop-event a:hover .event__more
{
	color: var(--color__red-dark);
}

.loop-news .article__more .icon,
.loop-event .event__more .icon
{
	display: inline-block;

	width: 17px;
	height: 17px;
	margin: -2px 3px 0 0;

	vertical-align: middle;
}

@media (max-width: 1100px)
{
	.news-school .loop-news
	{
		grid-gap: 30px;
	}

	.news-school .loop-news article
	{
		width: calc(33.33% - 15px);
		margin: 15px 0;
	}

	@supports (display: grid)
	{
		.news-school .loop-news article
		{
			width: auto;
			margin: 0;
		}
	}
}

@media (max-width: 960px)
{
	.news-school .loop-news
	{
		padding: 0 15px;
	}

	.news-school .loop-news article:nth-child(3)
	{
		display: none;
	}

	.news-school .loop-news
	{
		grid-gap: 60px;
		grid-template-columns: 1fr 1fr;
	}

	.news-school .loop-news article
	{
		width: calc(50% - 30px);
		margin: 30px 0;
	}

	@supports (display: grid)
	{
		.news-school .loop-news article
		{
			width: auto;
			margin: 0;
		}
	}
}

@media (max-width: 760px)
{
	.loop-news
	{
		grid-gap: 30px;
	}

	.loop-news article
	{
		margin: 15px 0;
	}

	@supports (display: grid)
	{
		.loop-news article
		{
			margin: 0;
		}
	}

	.news-school .loop-news
	{
		padding: 0;
	}

	.news-school .loop-news
	{
		grid-gap: 30px;
		grid-template-columns: 1fr 1fr;
	}

	.news-school .loop-news article
	{
		width: calc(50% - 15px);
		margin: 15px 0;
	}

	@supports (display: grid)
	{
		.news-school .loop-news article
		{
			width: auto;
			margin: 0;
		}
	}

	.loop-news .article__info
	{
		padding: 15px 10px 0 15px;
	}

	.loop-news .article__wrapper
	{
		max-height: 160px;
	}

	.loop-news .article__title,
	.loop-event .event__title
	{
		font-size: 1.7rem;
		line-height: 2.5rem;

		margin-bottom: 10px;
	}

	.loop-news .article__excerpt p
	{
		font-size: 1.5rem;
		line-height: 2.1rem;
	}

	.loop-news .article__more,
	.loop-event .event__more
	{
		display: none;
	}
}

@media (max-width: 600px)
{
	.loop-news,
	.news-school .loop-news
	{
		grid-gap: 15px;
	}

	.loop-news article,
	.news-school .loop-news article
	{
		margin: 7.5px 0;
	}

	@supports (display: grid)
	{
		.loop-news article,
		.news-school .loop-news article
		{
			margin: 0;
		}
	}
}

@media (max-width: 500px)
{
	.news-school .loop-news article:nth-child(3)
	{
		display: block;
	}

	.loop-news,
	.news-school .loop-news
	{
		max-width: 400px;
		margin: 0 auto;

		grid-template-columns: 1fr;
	}

	.loop-news article,
	.news-school .loop-news article
	{
		width: 100%;
	}
}

/* EVENTS
----------------------------------------- */
.archive-title a
{
	font-size: 1.7rem;

	margin: 12px 0 0 20px;

	color: var(--color__black-light);
}

.archive-title a:hover
{
	color: var(--color__red);
}

.loop-event__month
{
	font-family: var(--font-family__heading);
	font-size: 1.4rem;
	font-weight: var(--font-weight__bold);

	position: relative;

	width: 100%;
	margin: 30px 0 0 0;

	letter-spacing: 3.5px;
	text-transform: uppercase;
}

.loop-event__month:before
{
	position: absolute;
	z-index: 1;
	top: 0;
	bottom: 0;
	left: 0;

	display: block;

	width: 100%;
	height: 1px;
	margin: auto 0;

	content: '';

	background: var(--color__white-darker);
}

.loop-event__month span
{
	position: relative;
	z-index: 2;

	padding-right: 8px;

	background: var(--color__white);
}

.loop-event .event
{
	margin: 25px 0;
}

.loop-event .event a
{
	text-decoration: none;

	color: var(--color__black);
}

.loop-event .event__date
{
	flex-direction: column;
	flex-wrap: nowrap;

	width: 100px;
	height: 120px;

	text-align: center;

	border: 1px solid var(--color__white-darker);
	border-radius: 7px;
}

.loop-event .event__day
{
	font-family: var(--font-family__heading);
	font-size: 3.2rem;
	font-weight: var(--font-weight__bold);

	letter-spacing: -1px;
}

.loop-event .event__month
{
	font-size: 1.3rem;
	font-weight: var(--font-weight__bold);

	padding-top: 3px;

	letter-spacing: 2px;
	text-transform: uppercase;

	color: var(--color__black-lighter);
}

.loop-event .event__time
{
	font-size: 1.3rem;

	margin-top: 10px;
	padding: 10px 8px 0 8px;

	letter-spacing: -0.5px;

	color: var(--color__black-light);
	border-top: 1px solid var(--color__white-darker);
}

.loop-event .event__info
{
	width: calc(100% - 100px - 25px); /* 100% - date width - margin */
}

.loop-event .event__excerpt p
{
	font-size: 1.7rem;
	line-height: 2.3rem;

	margin-bottom: 5px;
}

@media (max-width: 760px)
{
	.archive-title h1
	{
		width: 100%;
		margin: 0;
	}

	.archive-title a
	{
		font-size: 1.5rem;

		width: 100%;
		margin: 0 0 15px 0;
	}

	.loop-event .event
	{
		margin: 15px 0;
	}

	.loop-event .event__date
	{
		width: 80px;
		height: 100px;
	}

	.loop-event .event__day
	{
		font-size: 2.8rem;
	}

	.loop-event .event__month
	{
		font-size: 1.2rem;

		margin-bottom: 5px;
		padding: 2px 3px 5px 3px;
	}

	.loop-event .event__info
	{
		width: calc(100% - 80px - 15px); /* 100% - date width - margin */
	}

	.loop-event .event__excerpt p
	{
		font-size: 1.5rem;
		line-height: 2.1rem;

		margin: 0;
	}
}

@media (max-width: 600px)
{
	.loop-event__month
	{
		margin-bottom: 10px;
	}

	.loop-event .event > a > .row
	{
		align-items: stretch;
	}

	.loop-event .event__date
	{
		justify-content: flex-start;

		width: 60px;
		height: auto;

		border-top: none;
		border-bottom: none;
		border-left: none;
		border-radius: 0;
	}

	.loop-event .event__info
	{
		width: calc(100% - 60px - 15px); /* 100% - date width - margin */
	}
}

/* DIRECTORY
----------------------------------------- */
.post-type-archive-directory .description
{
	max-width: 800px;
}

.post-type-archive-directory .description p
{
	margin-bottom: 15px;
}

/* ALPHABET FILTER */
.directory-filter_alphabet
{
	position: relative;

	margin: 0 -15px 25px -15px;
}

.directory-filter_alphabet:before,
.directory-filter_alphabet:after
{
	position: absolute;
	z-index: 1;
	bottom: 0;

	display: block;

	width: 15px;
	height: 100%;

	content: '';

	background: var(--color__white);
}

.directory-filter_alphabet:before
{
	left: 0;
}

.directory-filter_alphabet:after
{
	right: 0;
}

.directory-filter_alphabet button
{
	font-family: var(--font-family__heading);
	font-size: 2rem;
	font-weight: var(--font-weight__bold);

	position: relative;

	margin-top: 10px;
	padding: 0 17px 5px 17px;

	letter-spacing: -1px;
	text-transform: uppercase;

	color: var(--color__black);
	border-bottom: 1px solid var(--color__white-darker);
}

.directory-filter_alphabet button.alphabet-all
{
	text-transform: none;
}

.directory-filter_alphabet button:after
{
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;

	display: block;

	width: 20px;
	height: 1px;
	margin: 0 auto;

	content: '';
	transition: var(--transition-delay__default);

	background: transparent;
}

.directory-filter_alphabet button.alphabet-all:after
{
	width: 30px;
}

.directory-filter_alphabet button:hover,
.directory-filter_alphabet button.current
{
	color: var(--color__red);
}

.directory-filter_alphabet button.current:after
{
	background: var(--color__red);
}

/* FILTER TOOLS (PARTIALLY FOR COURSES) */
.directory-filter_tools
{
	position: relative;

	margin-bottom: 50px;
}

.directory-filter_search,
.course-filter_search
{
	width: 100%;
	max-width: 400px;
}

.directory-filter_search input[type='text'],
.course-filter_search input[type='text']
{
	padding-left: 50px;
}

.directory-filter_search .icon,
.course-filter_search .icon
{
	position: absolute;
	top: 5px;
	left: 5px;

	width: 40px;
	height: 40px;

	color: var(--color__black-lightest);
}

.tax-directory-school .directory-filter_search,
.tax-directory-department .directory-filter_search
{
	position: relative;
}

.directory-filter_tax
{
	font-size: 1.7rem;

	position: relative;

	margin-left: 20px;
}

.directory-filter_tax button
{
	font-size: inherit;
	line-height: 48px;

	position: relative;
	z-index: 2;

	padding: 0 52px 0 30px;

	text-decoration: underline;

	color: var(--color__black);
	border: 1px solid transparent;
}

.directory-filter_tax button:hover,
.directory-filter_tax button.active
{
	border: 1px solid var(--color__beige-light);
	background: var(--color__white);
}

.directory-filter_tax button:hover
{
	border-radius: 5px;
}

.directory-filter_tax button.active
{
	border-radius: 5px 5px 0 0;
}

.directory-filter_tax button .icon-arrow
{
	right: 30px;
}

.directory-filter_tax ul
{
	position: absolute;
	z-index: 1;
	top: calc(100% - 1px);
	left: 0;

	display: none;

	border: 1px solid var(--color__beige-light);
	border-radius: 0 5px 5px 5px;
	background: var(--color__white);
	box-shadow: 0 2px 24px rgba(0, 0, 0, 0.1);
}

.directory-filter_department ul
{
	right: 0;
	left: auto;

	border-radius: 5px 0 5px 5px;
}

.directory-filter_tax ul li
{
	margin: 0;
	padding: 0;
}

.directory-filter_tax ul li:before
{
	display: none;
}

.directory-filter_tax a
{
	display: block;

	padding: 11px 30px;

	white-space: nowrap;
	text-decoration: none;
	word-break: break-all;

	color: var(--color__black);
	border-top: 1px solid var(--color__beige-light);
	background: var(--color__white);
}

.directory-filter_tax li:first-child a
{
	border: none;
	border-radius: 0 5px 0 0;
}

.directory-filter_department li:first-child a
{
	border-radius: 5px 0 0 0;
}

.directory-filter_tax li:last-child a
{
	border-radius: 0 0 5px 5px;
}

.directory-filter_tax a:hover
{
	background: var(--color__white-dark);
}

/* LOOP */
.loop-directory__letter
{
	position: relative;

	overflow: hidden;

	padding-left: 17%;
}

.loop-directory__letter-symbol
{
	font-family: var(--font-family__heading);
	font-size: 10rem;
	font-weight: var(--font-weight__default);
	line-height: 7.3rem;

	position: absolute;
	top: 30px;
	left: 0;

	letter-spacing: -3.5px;
	text-transform: uppercase;

	color: var(--color__white-darker);
}

.loop-directory__letter:before
{
	position: absolute;
	top: 30px;
	left: 11%;

	display: block;

	width: 1px;
	height: calc(100% - 60px); /* 100% - margin on person item */

	content: '';

	background: var(--color__white-darker);
}

.loop-directory .person
{
	font-size: 1.6rem;

	width: 50%;
	margin: 30px 0;
}

.loop-directory .person__image
{
	width: 30%;
	min-width: 80px;
	max-width: 160px;
	height: auto;
}

.loop-directory .person__image figure
{
	margin: 0;
}

.loop-directory .person__info
{
	width: 70%;
	padding: 0 8% 0 4%;
}

.loop-directory .person__info h2
{
	font-size: 2.7rem;
	font-weight: var(--font-weight__default);

	margin: 10px 0 15px 0;
}

.loop-directory .person__info h2 span
{
	font-weight: var(--font-weight__bold);
}

.loop-directory .person__info strong
{
	display: block;

	width: fit-content;
	margin-bottom: 2px;
}

.loop-directory .person__info a[href^='mailto']
{
	display: block;

	width: fit-content;
	margin-top: 2px;

	text-decoration: underline;

	color: var(--color__black);
}

.loop-directory .person__info a[href^='mailto']:hover
{
	color: var(--color__red);
}

.tax-school-directory .content-wrapper,
.tax-department-directory .content-wrapper
{
	width: 100%;
}

.tax-school-directory .loop-directory,
.tax-department-directory .loop-directory
{
	padding: 30px 0;
}

/* LOOP - SIMPLE */
.loop-directory-simple .person
{
	width: 25%;
	margin: 30px 0;
	padding: 0 15px;

	text-align: center;
}

.loop-directory-simple .row
{
	display: block;
}

.loop-directory-simple .person__image
{
	display: block;

	width: 120px;
	margin: 0 auto 15px auto;
}

.loop-directory-simple .person__image figure
{
	margin: 0;
}

.loop-directory-simple .person__image img
{
	width: 100%;
	height: auto;
}

.loop-directory-simple .person__info
{
	font-size: 1.6rem;
}

.loop-directory-simple .person__info h3
{
	font-size: 1.8rem;

	margin: 0 0 5px 0;
}

.loop-directory-simple .person__info strong
{
	display: block;
}

.loop-directory-simple .person__info a[href^='mailto']
{
	word-break: break-all;

	color: var(--color__black);
}

.loop-directory-simple .person__info a[href^='mailto']:hover
{
	color: var(--color__red);
}

@media (max-width: 1100px)
{
	/* LOOP */
	.loop-directory .person__info h2
	{
		font-size: 2.4rem;

		margin: 0 0 5px 0;
	}
}

@media (max-width: 960px)
{
	/* FILTER TOOLS */
	.directory-filter_tools
	{
		margin-bottom: 30px;
	}

	.directory-filter_search
	{
		max-width: 100%;
		margin-bottom: 30px;
	}

	.directory-filter_tax
	{
		position: static;
	}

	.directory-filter_faculty
	{
		margin-left: 0;
	}

	.directory-filter_tax button
	{
		line-height: normal;

		padding: 0 22px 0 0;

		border: none;
	}

	.directory-filter_tax button:hover,
	.directory-filter_tax button.active
	{
		border: none;
	}

	.directory-filter_tax button .icon-arrow
	{
		right: 0;
	}

	.directory-filter_tax ul
	{
		top: calc(100% + 5px);

		width: 100%;

		border-radius: 5px;
	}

	.directory-filter_department ul
	{
		right: auto;
		left: 0;
	}

	.directory-filter_tax a
	{
		padding: 11px 15px;
	}

	.directory-filter_tax li:first-child a
	{
		border-radius: 5px 5px 0 0;
	}

	/* LOOP */
	.loop-directory__letter
	{
		padding: 80px 0 0 0;
	}

	.loop-directory__letter:before
	{
		display: none;
	}

	.loop-directory__letter-symbol
	{
		font-size: 8rem;

		top: 0;
		left: 0;

		width: 100%;
	}

	.loop-directory__letter-symbol:after
	{
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;

		display: block;

		width: calc(100% - 100px);
		height: 1px;
		margin: auto 0;

		content: '';

		background: var(--color__white-darker);
	}

	.tax-school-directory .loop-directory,
	.tax-department-directory .loop-directory
	{
		padding: 0;
	}

	/* LOOP - SIMPLE */
	.loop-directory-simple .person
	{
		width: 33.33%;
	}

	.loop-directory-simple .person:nth-child(4)
	{
		display: none;
	}
}

@media (max-width: 760px)
{
	/* ALPHABET FILTER */
	.directory-filter_alphabet
	{
		margin: 0 0 20px 0;
		padding: 5px 10px 38px 10px;

		border: 1px solid var(--color__white-darker);
		border-radius: 5px;
	}

	.directory-filter_alphabet:before,
	.directory-filter_alphabet:after
	{
		display: none;
	}

	.directory-filter_alphabet button
	{
		margin: 6px;
		padding: 4px;

		border-width: 2px;
		border-color: transparent;
	}

	.directory-filter_alphabet button:hover,
	.directory-filter_alphabet button.current
	{
		border-color: var(--color__red);
	}

	.directory-filter_alphabet button:first-child:after
	{
		display: none;
	}

	.directory-filter_alphabet button.alphabet-all
	{
		position: absolute;
		right: 10px;
		bottom: 5px;
	}

	/* FILTER TOOLS */
	.directory-filter_search
	{
		margin-bottom: 20px;
	}

	.directory-filter_tax a
	{
		font-size: 1.5rem;
	}

	/* LOOP */
	.loop-directory__letter
	{
		padding-top: 30px;
	}

	.loop-directory__letter-symbol
	{
		font-size: 4rem;
		line-height: 2.3rem;
	}

	.loop-directory__letter-symbol:after
	{
		width: calc(100% - 50px);
	}

	.loop-directory .person
	{
		font-size: 1.5rem;

		width: 100%;
		margin: 20px 0;
	}

	.loop-directory .person__info h2
	{
		font-size: 2.1rem;

		margin-bottom: 15px;
	}

	.loop-directory .person__info strong
	{
		margin-bottom: 10px;
	}
}

@media (max-width: 600px)
{
	/* LOOP - SIMPLE */
	.loop-directory-simple .person
	{
		width: 100%;
		max-width: 340px;
		margin: 15px 0;
	}

	.loop-directory-simple .person:nth-child(4)
	{
		display: block;
	}

	.loop-directory-simple .person .row
	{
		display: flex;
	}

	.loop-directory-simple .person__image
	{
		width: 80px;
		margin: 0;
	}

	.loop-directory-simple .person__info
	{
		width: calc(100% - 80px - 15px);
		margin-left: 15px;

		text-align: left;
	}

	.loop-directory-simple .person__info h3
	{
		padding-top: 5px;
	}
}

@media (max-width: 400px)
{
	/* FILTER TOOLS */
	.directory-filter_search
	{
		margin-bottom: 15px;
	}

	.directory-filter_tools
	{
		display: block;
	}

	.directory-filter_tax
	{
		margin: 10px 0;
	}

	/* LOOP */
	.loop-directory .person__info h2
	{
		margin-bottom: 5px;
	}

	.loop-directory .person__info strong
	{
		margin-bottom: 2px;
	}
}

/* COURSES
----------------------------------------- */
.course-filter_search
{
	position: relative;

	margin-bottom: 40px;
}

.loop-course .course
{
	font-size: 1.7rem;

	margin-top: -1px;
	padding: 12px 20px;

	border: 1px solid var(--color__white-darker);
}

.loop-course .course a
{
	text-decoration: none;

	color: var(--color__black-light);
}

.loop-course .course h2
{
	font-size: 1.7rem;

	margin: 0;

	transition: var(--transition-delay__default);
	text-decoration: underline;

	color: var(--color__red);
}

.loop-course .course a:hover h2
{
	color: var(--color__red-dark);
}

.loop-course .course span
{
	text-transform: uppercase;
}
