@import "fonts";

$col-white: #fff;
$col-bg: #0b1b2e;
$col-accent: #845368;
$col-secondary: #8493A4;

$size-mobile: 950px;

/* Global */

*,
*:before,
*:after {
	box-sizing: border-box;
}

html { scroll-behavior: smooth }

body {
	margin: 0;
	padding: 0;
	background-color: $col-bg;
	color: $col-white;

	line-height: 1.5;
	font-size: 16px;
	font-family: "moderat", sans-serif;
}

.wrap {
	max-width: 90rem;
	margin: 0 auto;
	padding: 0 2rem;
}

.narrow {
	max-width: 50rem;
	margin: 0 auto;
}

.text-center {
	text-align: center;
}

img {
	display: block;
	max-width: 100%;
}

h1, h2, h3, h4, h5, h6 {
	text-align: center;
}
h1 {
	font-size: 2.178rem;
	text-transform: uppercase;
}

.text-bold {
	font-weight: bold;
}

section {
	padding: 3rem 0;
}

.button {
	display: flex;
	justify-content: center;
	align-items: center;
	color: $col-white;
	text-decoration: none;
	font-size: 1.25rem;
	font-weight: bold;
	border-radius: 2.5rem;
	height: 5rem;
	margin: 0 auto;
	border: .15rem solid $col-accent;
	width: 100%;
	max-width: 30em;
	transition: all .1s ease-out;

	&:hover {
		background-color: $col-accent;
	}
}


/* Specific */

body.noscroll {
	overflow: hidden;
}

.intro {
	min-height: 100vh;
	display: flex;
	flex-direction: column;

	header {
		position: relative;
		border-bottom: 1px solid #5D6E81;
		margin-bottom: 4em;
		height: 5rem;

		.wrap {
			height: 100%;
		}

		.border-container {
			width: 100%;
			height: 100%;
			display: flex;
			align-items: stretch;
			justify-content: space-between;
			gap: 2rem;
			border-width: 0 1px;
			border-style: solid;
			border-color: #5D6E81;
			padding-left: 2rem;
		}

		.logo {
			display: flex;
			align-items: center;
			flex-shrink: 0;
			height: 100%;

			img {
				height: 2rem;
			}
		}

		nav {
			display: flex;

			&.visible {
				display: flex;
			}

			a {
				display: flex;
				align-items: center;
				justify-content: center;
				flex-shrink: 0;
				padding: 0 1.5em;
				overflow: hidden;
				font-weight: bold;
				text-decoration: none;
				text-align: center;
				color: #fff;
				border-left: 1px solid #5D6E81;

				&:hover {
					color: lighten($col-accent, 25%);
				}
			}
		}

		.menu-button {
			display: none;
			align-items: center;
			flex-shrink: 0;
			padding: 0 1.5em;
			cursor: pointer;
			border-left: 1px solid #5D6E81;

			.image {
				height: 2rem;
				width: 2rem;
				background-image: url("/static/img/menu-closed.svg");
				background-size: contain;
				background-position: center;
				background-repeat: no-repeat;

				&.open {
					background-image: url("/static/img/menu-open.svg");
				}
			}
		}
	}

	section {
		flex: 1;
		display: flex;
		flex-direction: column;
		justify-content: center;

		.grid {
			display: grid;
			grid-template-columns: 1fr;
			grid-column-gap: 2rem;
			grid-row-gap: 4rem;
			align-items: center;
		}

		.text {
			max-width: 25rem;
			margin: 0 auto;
			text-align: center;

			.title {
				font-weight: bold;
				font-size: 1.953rem;
			}

			p {
				font-size: 1.25rem;
			}
		}

		.player {
			cursor: pointer;

			video {
				width: 100%;
				border-radius: 2rem;
				box-shadow: 0 0 90px 20px rgba(194,66,66,0.75);
				transition: box-shadow 1s ease;
			}
		}

		.video-list {
			display: flex;
			justify-content: center;
			flex-wrap: wrap;
			gap: 1rem;

			img {
				display: block;
				border-radius: 1rem;
				cursor: pointer;
				flex: 1;
				max-width: 45%;
				width: 100%;

				&.active {
					outline: .15rem solid $col-accent;
				}
			}
		}

		.button {
			width: 100%;
			max-width: 80%;
		}
	}
}

.facts {
	text-align: center;
	margin-top: 2rem;
	padding: 5rem 0;
	background-image: url("/static/img/bg/1.svg");
	background-repeat: no-repeat;
	background-position: top center;
	background-size: 100% auto;

	.title {
		display: block;
		position: relative;
		font-size: 1.953rem;
		font-weight: bold;
		padding-bottom: 1em;
		margin-bottom: 1em;

		&:after {
			content: "";
			display: block;
			position: absolute;
			left: 50%;
			bottom: 0;
			width: 5rem;
			height: 1px;
			transform: translatex(-2.5rem);
			background-color: #E6F3FA;
		}
	}

	.fact-list {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 2rem;
		padding: 5rem 0 3rem 0;

		.item {
			position: relative;
			display: flex;
			align-items: center;
			flex-direction: column;
			max-width: 13rem;
			padding: 1em 0;

			img {
				height: 5em;
			}

			.heading {
				font-weight: bold;
				margin: 2em 0 1em 0;
			}

			p {
				margin: 0;
			}

			&:after {
				content: "";
				display: block;
				width: 75%;
				height: 1px;
				background-color: $col-secondary;
				margin-top: 4em;
			}
			&:last-child:after {
				display: none;
			}
		}
	}

	.source {
		font-size: .9em;
		padding: 0;
		color: $col-secondary;
	}
}

.principles {
	display: grid;
	grid-template-columns: 1fr;
	grid-column-gap: 8rem;
	grid-row-gap: 2rem;
	margin-top: 5em;

	.dropdown {

		select {
			width: 100%;
			padding: 1.5em;
			background-color: $col-bg;
			color: $col-white;
			border: 1pt solid $col-accent;
			border-radius: 1em;
			font-size: 1rem;
			font-weight: bold;
			cursor: pointer;
			transition: background-color .1s ease-out;

			&:hover {
				background-color: $col-accent;
			}
		}
	}

	.list {
		display: none;
		flex-direction: column;
		gap: 2em;

		&>div {
			padding: 1.5em;
			outline: 1pt solid $col-secondary;
			outline-offset: -1pt;
			border-radius: 1em;
			cursor: pointer;
			transition: background-color .1s ease-out;

			&.active {
				border-radius: 1em 0 0 1em;
				position: relative;
				overflow: visible;

				&:after {
					content: "";
					display: block;
					position: absolute;
					right: 0;
					top: 0;
					width: 3em;
					height: 100%;
					background-color: $col-accent;
					clip-path: polygon(0 0, 0 100%, 100% 50%);
					transform: translatex(3em);
				}
			}

			&.active, &:hover {
				background-color: $col-accent;
				outline: none;

				p:last-child {
					color: $col-white;
				}
			}

			.title {
				margin: 0;
				font-weight: bold;
				text-align: left;
				font-size: 1.138rem;
			}

			p:last-child {
				margin-bottom: 0;
				color: $col-secondary;
				font-size: 0.95em;
			}
		}
	}

	.content {
		display: flex;
		flex-direction: column;
		justify-content: center;

		&>div {
			height: 0;
			overflow: hidden;
			opacity: 0;
			transform: translatey(-1em);
			transition: opacity .2s ease-out, transform .2s ease-out;

			&.visible {
				height: auto;
				opacity: 1;
				transform: translatex(0);
			}
		}

		h2 {
			position: relative;
			text-align: left;
			padding-bottom: 1rem;
			margin-top: 0;

			&:after {
				content: "";
				display: block;
				position: absolute;
				left: 0;
				bottom: 0;
				width: 2em;
				height: 1pt;
				background-color: $col-secondary;
			}
		}

		a {
			text-decoration: none;
			color: lighten($col-accent, 25%);
		}
	}
}

.checklist {
	display: flex;
	justify-content: flex-start;
	gap: 1em;
	margin-top: 2rem;
	overflow-x: scroll;

	// Firefox
	scrollbar-width: none;
	// Chrome, Safari, Edge
	&::-webkit-scrollbar {
		width: 0;
	}

	// `overflow-y: visible` does not work
	padding: 1rem;

	.card {
		display: flex;
		flex-direction: column;
		flex-shrink: 0;
		width: 15em;
		border: .15em solid $col-accent;
		border-radius: 1.5rem;
		padding: 1.5em;
		background-color: $col-bg;
		text-align: left;
		user-select: none;

		img {
			width: 100%;
			border-radius: 1rem;
		}

		&>.title {
			position: relative;
			font-weight: bold;
			font-size: 1.138rem;
			padding: 1em 0;

			&:after {
				content: "";
				display: block;
				position: absolute;
				left: 0;
				bottom: 0;
				width: 25%;
				height: 1px;
				background-color: #fff;
			}
		}

		.download {
			margin-top: 1rem;
			cursor: pointer;
			color: inherit;
			text-decoration: none;
			margin-top: auto;

			&:hover {
				color: lighten($col-accent, 25%);
			}

			.title {
				display: flex;
				align-items: baseline;
				font-size: 1.25em;
				font-weight: bold;
				margin-bottom: .25em;

				&:after {
					content: url("/static/img/download-icon.svg");
					display: inline-block;
					height: 1em;
					margin-left: .5rem;
				}
			}
			.meta {
				color: $col-secondary;
				font-size: .85em;
			}
		}
	}
}

.stories {
	padding-top: 5rem; // To clear the image
	background-image: url("/static/img/bg/2.svg");
	background-size: 90rem auto;
	background-position: center top;
	background-repeat: no-repeat;

	&:before {
		content: "";
		display: block;
		width: 100%;
		height: 5rem;
		background-image: url("/static/img/stories.svg");
		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;
	}

	h1 {
		padding-top: 0;
	}

	.stories-masonry {
		// This is supposed to be a masonry layout,
		// but works better this way for now.
		display: flex;
		flex-direction: column;
		gap: 2em;
		margin: 5rem auto;

		&>div {
			padding: 2.5em;
			border: 1pt solid $col-accent;
			border-radius: 1.5rem;
			background-color: $col-bg;

			h2 {
				position: relative;
				text-align: left;
				padding-bottom: 1rem;
				margin-top: 0;

				&:after {
					content: "";
					display: block;
					position: absolute;
					left: 0;
					bottom: 0;
					width: 2em;
					height: 1pt;
					background-color: $col-secondary;
				}
			}

			h3 {
				text-align: left;
				margin-top: 2em;
			}

			p:last-child {
				margin-bottom: 0;
			}
		}
	}

	.stories-list {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 1rem;
		margin: 4rem auto;

		.story {
			flex: 1;
			display: flex;
			flex-direction: column;
			max-width: 40rem;
			border: 1pt solid $col-secondary;
			border-radius: 1.5rem;
			padding: 1.5em;
			color: inherit;
			background-color: $col-bg;
			text-decoration: none;
			transition: all .1s ease-out;

			&:hover {
				background-color: $col-accent;
				border-color: $col-accent;

				.title {
					color: $col-white;
				}

				.readmore:before {
					background-color: $col-white;
				}
			}

			.title {
				color: #A4A4A4;
				font-weight: bold;
				font-size: 1.25em;
			}

			.readmore {
				position: relative;
				font-size: 1.25em;
				font-weight: bold;
				padding-top: 1em;
				margin-top: auto;

				&:before {
					content: "";
					display: block;
					position: absolute;
					left: 0;
					top: .5em;
					width: 3em;
					height: 1pt;
					background-color: $col-secondary;
				}
			}
		}
	}
}

.contact-list {
	display: flex;
	flex-direction: column;
	margin: 5rem 0;

	.contact {
		padding: 3rem 0;
		border-bottom: 1px solid $col-secondary;
		flex: 1;

		&:last-child {
			border: none;
		}

		.title {
			font-weight: bold;
			font-size: 1.25em;
		}

		.meta {
			display: flex;
			flex-direction: column;
			gap: 1rem;
			font-weight: bold;

			&>div {
				display: flex;
				align-items: center;
				gap: 1rem;

				&:before {
					content: "";
					height: 2rem;
					width: 2rem;
					border: 1px solid $col-secondary;
					border-radius: .5rem;
					background-size: 50%;
					background-position: center;
					background-repeat: no-repeat;
				}
			}

			.phone:before {
				background-image: url("/static/img/icons/phone.svg");
			}
			.website:before {
				background-image: url("/static/img/icons/web.svg");
			}
			.email:before {
				background-image: url("/static/img/icons/email.svg");
			}

			a {
				text-decoration: none;
				color: inherit;

				&:hover {
					color: lighten($col-accent, 25%);
				}
			}
		}
	}
}

.faq-list {
	width: 100%;
	margin-top: 5em;

	.faq {
		position: relative;
		display: grid;
		grid-template-columns: 1em auto;
		column-gap: 1em;
		width: 100%;
		padding: 2em;
		cursor: pointer;

		background-color: inherit;
		transition: all .5s ease;

		// Hide bottom border.
		// It is -2px to avoid float rounding errors
		// which cause the border to appear in some widths.
		margin-bottom: -2px;

		&:before,
		&:last-child:after {
			content: "";
			position: absolute;
			left: 10%;
			width: 80%;
			border-width: 1px 0 0 0;
			border-style: solid;
			border-color: $col-secondary;
		}
		&:before { top: 0 }
		&:last-child:after { bottom: 0 }

		&.active {
			background-color: $col-accent;
			z-index: 1;

			&:before { border: 0 }

			.answer {
				height: auto;
				margin-top: 1em;
				opacity: 1;
			}

			.mark:before {
				content: "\2212";
			}
		}

		.mark {
			text-align: center;

			&:before {
				content: "\002B";
				display: block;
				text-align: right;
				color: #fff;
				font-weight: bold;
				font-size: 1.138rem;
			}
		}

		.question {
			font-size: 1.138rem;
		}

		.answer {
			height: 0;
			overflow: hidden;
			opacity: 0;
			transition: all .5s ease;

			a {
				color: lighten($col-bg, 75%);
			}

			ul {
				margin: 0;
			}
		}

	}
}

footer {
	$logo-radius: 4.5em;
	position: relative;
	text-align: center;
	font-size: 1.138rem;
	padding: $logo-radius+1 2em 4em 2em;
	margin-top: $logo-radius+6;

	border-top: 1px solid $col-secondary;

	&:before {
		content: "";
		position: absolute;
		top: -$logo-radius;
		left: 50%;
		transform: translatex(-$logo-radius);
		height: $logo-radius*2;
		width: $logo-radius*2;
		border: 1px solid $col-secondary;
		border-radius: 50%;
		background-image: url("/static/img/pedf-logo-white.svg");
		background-position: center;
		background-size: 75%;
		background-repeat: no-repeat;
		background-color: $col-bg;
	}

	.grid {
		display: grid;
		grid-template-columns: 1fr;
		grid-row-gap: 2em;
		grid-column-gap: 2em;
	}

	a {
		color: inherit;
		text-decoration: none;

		&:hover {
			color: lighten($col-accent, 25%);
		}
	}
}

@media only screen and (min-width: $size-mobile) {

	h1 {
		padding-top: 5rem;
	}

	.intro section {

		.grid {
			grid-template-columns: 2fr 3fr;
		}

		.text {
			text-align: left;
			line-height: 1.25;
			margin: 0; // Disable centering

			.title {
				font-size: 2.5rem;
			}
		}

		.video-list {
			order: 4;

			img {
				max-width: 10rem;
			}
		}

		.button {
			margin: 0 auto 0 0; // Align left
			max-width: 70%;
		}
	}

	.facts {

		.fact-list {
			flex-direction: row;
			justify-content: center;
			align-items: stretch;
			gap: 0;

			.item {
				border-right: 1px solid $col-secondary;
				justify-content: center;
				padding: 0 3rem;
				max-width: 17rem;

				&:after {
					display: none;
				}

				&:last-child {
					border: none;
				}
			}
		}
	}

	.principles {
		grid-template-columns: 1fr 1fr;

		.dropdown{
			display: none;
		}

		.list {
			display: flex;
		}

		.content > div {
			transform: translatey(0);
			transform: translatex(-2em);
		}
	}

	.checklist {

		.card {
			width: 17em;
		}
	}

	.stories .stories-list {
		flex-direction: row;
		align-items: stretch;
	}

	.contact-list {
		flex-direction: row;

		.contact {
			padding: 0 3rem;
			border-bottom: none;
			border-right: 1px solid $col-secondary;
		}
	}

	.faq-list .faq {
		&:before,
		&:last-child:after {
			width: 100%;
			left: 0;
		}
	}

	.checklist {
		justify-content: center;
	}
	
	footer .grid {
		grid-template-columns: 3fr 2fr;
	}
}

@media only screen and (max-width: $size-mobile) {

	.intro header {

		.border-container {
			border-left: 0;
			padding: 0;
		}

		.menu-button {
			 display: flex;
		}

		nav {
			display: none;

			border: none;
			flex-direction: column;
			position: absolute;
			left: 0;
			top: 100%;
			width: 100%;
			min-height: 100vh;
			margin-top: 1px; // Fix covering border of header
			background-color: $col-bg;

			a {
				padding: 2em 1rem;
				border: 0;
				font-weight: bold;
				font-size: 1.138rem;
				border-bottom: 1px solid #5D6E81;
			}
		}
	 }
}
