* {
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

:root {
	--color-red: #AC3131;
	--color-blue: #002C54;
	--color-grey: #353640;
	--font-sans-serif: "DM Sans", sans-serif;
	--font-serif: "DM Serif Display", serif;
}

html,
body {
	-webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    padding: 0;
    margin: 0;
    color: var(--color-grey);
    background: white;
    line-height: 1.4;
    font-size: 18px;
	font-family: var(--font-sans-serif);
}  

a {
	color: currentColor;
	text-underline-offset: 2px;

	&:hover {
		text-decoration: none;
	}
}

header {
	background-color: white;
	border: 1px;
	position: fixed;
	z-index: 10;
	width: calc(100% - 96px);
	max-width: 1800px;
	top: 32px;
	left: 0;
	right: 0;
	margin: auto;
	padding: 16px 20px;
	border-radius: 3px;
	display: flex;
	justify-content: space-between;
    align-items: center;
	box-shadow: 0 0 50px rgba(0, 0, 0, 0.77);

	@media only screen and (max-width: 900px) {
		width: calc(100% - 48px);
	}

	&.fr {
		.logo {
			background: url(images/nato-l-logo-fr.png);
			background-repeat: no-repeat;
			background-size: contain;
			width: 149px;
			height: 44px;
			text-indent: -9999px;
			overflow: hidden;
		}
	}

	.logo {
		background: url(images/nato-l-logo-en.png);
		background-repeat: no-repeat;
		background-size: contain;
        width: 121px;
        height: 44px;
		text-indent: -9999px;
		overflow: hidden;
	}

	nav {
		display: flex;
		align-items: center;
        margin-right: 10px;

		@media only screen and (max-width: 900px) {
			display: none;
		}

		.button--primary {
			padding: 6px 12px;

			&:hover {
				color: var(--color-red);
				text-decoration: none;
			}
		}

		a {
			font-weight: 500;
			text-decoration: none;
			color: var(--color-grey);
			font-size: 14px;
			font-family: var(--font-sans-serif);

			&:hover {
				text-decoration: underline;
				text-underline-offset: 2px;
			}
		}
	}
	
	.nav-toggle {
		display: none;
	}

	ul {
		list-style: none;
		display: flex;
		gap: 32px;
		margin: 0;
		padding: 0;
	}

	li {
		margin: 0;
	}

	@media only screen and (max-width: 900px) {
		.nav-toggle {
			display: block;
			appearance: none;
			border: 0;
			width: 32px;
			height: 32px;
			position: relative;
			background-color: transparent;
            margin-right: -4px;

			span {
				background-color: var(--color-blue);
                position: absolute;
                top: 0;
                left: 0;
                width: 24px;
                height: 2px;
                top: 6px;
                left: 0;
                right: 0;
                margin: auto;

				&:nth-child(2),
				&:nth-child(3) {
                    top: calc(50% - 1px);
				}

				&:nth-child(4) {
                    bottom: 6px;
                    top: auto;
				}
			}

			&.is-open {
				span {
					&:nth-child(1) {
						display: none;
					}

					&:nth-child(2){
						transform: rotate(45deg);
					}

					&:nth-child(3) {
						transform: rotate(-45deg);
					}

					&:nth-child(4) {
						display: none;
					}
				}
			}
		}

		.main-nav {
			display: none;

			&.is-open {
				display: block;
				position: absolute;
				width: 100%;
				background: white;
				top: calc(100% - 2px);
				left: 0;
				border-radius: 0px 0px 3px 3px;
				text-align: right;
			}
		}

		 ul {
			flex-direction: column !important;
			gap: 16px !important;
			padding: 20px 20px 30px 20px !important;
		}

		a {
			font-size: 16px !important;
		}
	}
}

footer {
	background-color: white;
	display: flex;
	align-items: center;
	justify-items: center;

	.container {
		padding: 48px;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 20px;
		width: 100%;
	}

	&.fr {
		.logo {
			background: url(images/nato-l-logo-fr.png);
			background-repeat: no-repeat;
			background-size: contain;
			width: 230px;
			height: 80px;
			text-indent: -9999px;
			overflow: hidden;
		}
	}

	.logo {
		background: url(images/nato-l-logo-en--large.png);
		background-repeat: no-repeat;
		background-size: contain;
        width: 230px;
        height: 80px;
		text-indent: -9999px;
		overflow: hidden;
	}

	a {
		color: var(--color-red);
	}
}

#hero {
	background-color: var(--color-blue);
	color: white;
	min-height: 700px;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	position: relative;

	&::before {
		content: "";
		width: 360px;
		height: 360px;
		background-color: var(--color-red);
		border-radius: 50%;
		position: absolute;
		right: -200px;
		bottom: -140px;
		z-index: 0;
	}

	.container {
		position: relative;
		padding: 160px 48px 80px;
		width: 100%;
		max-width: 1400px;
		display: flex;
		justify-content: space-between;
		flex-wrap: nowrap;
		gap: 80px;

		@media only screen and (max-width: 900px) {
			padding: 200px 24px 80px;
			flex-direction: column;
			align-items: center;
			text-align: center;
			gap: 40px;
		}
	}

	.text-block {
		width: 50%;
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 40px;

		@media only screen and (max-width: 900px) {
        	align-items: center;
			width: 100%;
		}
	}

	.text-list {
		display: flex;
		align-items: center;
		justify-content: flex-start;
		width: 100%;
		max-width: 400px;
		gap: 20px;

		@media only screen and (max-width: 900px) {
        	justify-content: center;
			width: 100%;
		}

		span {
			display: block;
			font-size: 18px;
			font-weight: 900;

			@media only screen and (max-width: 900px) {
				font-size: 14px;
			}
		}
	}

	.media-block {
		width: 50%;

		@media only screen and (max-width: 900px) {
			width: 100%;
		}

		iframe {
			width: 100%;
		}
	}
}

#links-hub {
	display: flex;
	justify-content: center;
	position: relative;
	overflow: hidden;
	width: 100%;

	.links-block {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start;
		color: white;
		width: 100%;

		ul {
			list-style: none;
			padding: 0;
			display: flex;
			flex-wrap: nowrap;
			width: 100%;
			gap: 6px;
			margin: 6px;
			
			@media only screen and (max-width: 900px) {
				flex-wrap: wrap;
			}
		}

		li {
			padding: 0;
			width: 25%;
			min-height: 200px;

			@media only screen and (max-width: 900px) {
				width: calc(50% - 3px);
			}
		}

		a {
			display: block;
			position: relative;
			background-color: #f8f8f8;
			color: var(--color-blue);
			width: calc(25% - 15px);
			padding: 20px;
			text-decoration: none;
			width: 100%;
			height: 100%;
			margin: 0;
			font-family: var(--font-serif);
			font-weight: 400;
			font-size: 30px;
			text-align: center;
			display: flex;
			justify-content: center;
			align-items: center;

			&:hover {
				background-color: var(--color-blue);
				color: white;

				&::before {
					border-right: 1px solid white;
					border-top: 1px solid white;
				}

				&::after {
               		background-color: white;
				}
			}

			&::before {
				content: "";
				position: absolute;
				bottom: 14px;
				right: 14px;
				width: 10px;
				height: 10px;
				border-right: 1px solid var(--color-blue);
				border-top: 1px solid var(--color-blue);
			}

			&::after {
				content: "";
                position: absolute;
                bottom: 18px;
                right: 12px;
                background-color: var(--color-blue);
                width: 18px;
                height: 1px;
                transform: rotate(-45deg);
			}

			span {
				font-size: 14px;
				display: block;

				&:first-child {
					font-family: var(--font-serif);
					font-size: 22px;
					margin-bottom: 10px;
				}
			}
		}
	}
}

#reports {
	display: flex;
	justify-content: center;
	position: relative;
	overflow: hidden;

	.container {
		padding: 180px 48px 100px;
		width: 100%;
		max-width: 700px;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 40px;
		position: relative;
	}

	.text-block {
		text-align: center;
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 20px;
    	color: var(--color-grey);
		max-width: 600px;
	}

	.links-block {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start;
		color: white;
		gap: 20px;

		a {
			display: flex;
			position: relative;
			background-color: var(--color-blue);
			width: calc(50% - 15px);
			padding: 20px;
			text-decoration: none;
			min-height: 160px;
            flex-direction: column;
            justify-content: space-between;

			@media only screen and (max-width: 600px) {
				width: 100%;
			}

			&:hover {
				background-color: var(--color-red);
			}

			&::before {
				content: "";
				position: absolute;
				bottom: 14px;
				right: 14px;
				width: 10px;
				height: 10px;
				border-right: 1px solid white;
				border-top: 1px solid white;
			}

			&::after {
				content: "";
                position: absolute;
                bottom: 18px;
                right: 12px;
                background-color: white;
                width: 18px;
                height: 1px;
                transform: rotate(-45deg);
			}

			span {
				font-size: 18px;
				display: block;

				&:first-child {
					font-family: var(--font-serif);
					font-size: 22px;
					margin-bottom: 10px;
				}
			}
		}
	}

	p {
		font-family: var(--font-sans-serif);
	}
}

#in-the-media {
	display: flex;
	justify-content: center;
	position: relative;
	overflow: hidden;

	.container {
		padding: 80px 48px 100px;
		width: 100%;
		max-width: 1400px;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 40px;
		position: relative;

		@media only screen and (max-width: 900px) {
			padding: 80px 24px 100px;
		}
	}

	.text-block {
		text-align: center;
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 20px;
    	color: var(--color-grey);
		max-width: 600px;
	}

	.links-block {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start;
		color: white;
		gap: 20px;

		a {
			display: block;
			position: relative;
			background-color: var(--color-red);
			width: calc(25% - 15px);
			padding: 20px;
			text-decoration: none;

			@media only screen and (max-width: 900px) {
				width: calc(50% - 15px);
			}

			&:hover {
				background-color: var(--color-blue);
			}

			&::before {
				content: "";
				position: absolute;
				bottom: 14px;
				right: 14px;
				width: 10px;
				height: 10px;
				border-right: 1px solid white;
				border-top: 1px solid white;
			}

			&::after {
				content: "";
                position: absolute;
                bottom: 18px;
                right: 12px;
                background-color: white;
                width: 18px;
                height: 1px;
                transform: rotate(-45deg);
			}

			span {
				font-size: 14px;
				display: block;

				&:first-child {
					font-family: var(--font-serif);
					font-size: 22px;
					margin-bottom: 10px;

					@media only screen and (max-width: 600px) {
						font-size: 18px;
					}
				}
			}
		}
	}

	p {
		font-family: var(--font-sans-serif);
	}
}

#the-benefits {
    color: var(--color-grey);
	min-height: 340px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	overflow: hidden;
	text-align: left;

	.container {
		width: 100%;
		max-width: 1400px;
		display: flex;
		justify-content: space-between;
		flex-wrap: nowrap;
		position: relative;

		@media only screen and (max-width: 900px) {
			flex-direction: column;
			align-items: center;
		}
	}

	.text-block {
		padding: 80px 48px;
		width: 50%;
		display: flex;
		flex-direction: column;
		justify-content: center;

		@media only screen and (max-width: 900px) {
			width: 100%;
			padding: 40px 24px;
		}
	}

	.image-block {
		padding: 80px 48px;
		width: 50%;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 30px;
		position: relative;

		@media only screen and (max-width: 900px) {
			width: 100%;
			max-width: 400px;
		}

		img {
			max-width: 100%;
			position: relative;
		}

		&::before {
			content: "";
			width: 90%;
			aspect-ratio: 1;
			background-color: var(--color-blue);
			border-radius: 50%;
			position: absolute;
			left: 2%;
			top: 20%;
			z-index: 0;
		}
	}

	h3 {
		font-size: 20px;
		font-family: var(--font-sans-serif);
		font-weight: 900;
	}

	ul {
		list-style: none;

		li {
			margin-top: 20px;
			position: relative;

			@media only screen and (max-width: 900px) {
				font-size: 16px;
			}

			&::before {
				content: "";
				position: absolute;
				width: 28px;
				height: 28px;
				background-color: var(--color-blue);
				border-radius: 50%;
				left: -36px;
				top: 0;
			}

			&::after {
				content: "";
				position: absolute;
				width: 20px;
				height: 20px;
				background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M13.3327 4L5.99935 11.3333L2.66602 8' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
				background-repeat: no-repeat;
				left: -30px;
                top: 7px;
			}
		}
	}
}

#the-founders {
	display: flex;
	justify-content: center;
	position: relative;
	overflow: hidden;
	background-color: var(--color-red);

	.container {
		padding: 180px 48px 100px;
		width: 100%;
		max-width: 1400px;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 40px;
		position: relative;
		
		@media only screen and (max-width: 900px) {
			padding: 180px 24px 100px;
		}
	}

	.text-block {
		text-align: center;
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 20px;
    	color: white;
		max-width: 600px;
	}

	.bio-block {
		display: flex;
		flex-wrap: wrap;
		justify-content: flex-start;
		color: white;
		gap: 60px;
		
		@media only screen and (max-width: 900px) {
			flex-direction: column;
		}

		.bio {
			padding-left: 140px;
			position: relative;
			width: calc(50% - 60px);
		
			@media only screen and (max-width: 900px) {
				padding-left: 100px;
				width: 100%;
			}
		}
	}

	img {
		width: 120px;
		height: 120px;
		border-radius: 50%;
		position: absolute;
		left: 0;
		top: 0;		
		
		@media only screen and (max-width: 900px) {
			width: 80px;
			height: 80px;
		}
	}

	h3 {
		font-size: 20px;
		font-family: var(--font-sans-serif);
		font-weight: 900;
	}

	h4 {
		font-size: 12px;
		font-family: var(--font-sans-serif);
		font-weight: 900;
		margin-bottom: 10px;
	}

	a {
		font-size: 16px;
		font-family: var(--font-sans-serif);
		font-weight: 900;
		margin-top: 10px;
		text-decoration: none;

		&:hover {
			text-decoration: underline;
		}
	}

	p {
		font-family: var(--font-sans-serif);
		font-size: 14px;
	}
}

#podcast {
	background-color: var(--color-blue);
	color: white;
	min-height: 340px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	overflow: hidden;
	text-align: center;

	.container {
		width: 100%;
		display: flex;
		justify-content: space-between;
		flex-wrap: nowrap;
		position: relative;

		@media only screen and (max-width: 900px) {
			flex-wrap: wrap;
		}
	}

	.podcast-block {
		padding: 80px 48px 80px 48px;
		width: 50%;
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 30px;
		background-color: var(--color-red);

		@media only screen and (max-width: 900px) {
			width: 100%;
			padding: 60px 24px;
		}
	}

	.youtube-block {
		padding: 220px 48px 80px 48px;
		width: 50%;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 30px;

		@media only screen and (max-width: 900px) {
			width: 100%;
			padding: 150px 24px 60px 24px;
		}
	}

	h3 {
		font-size: 20px;
		font-family: var(--font-sans-serif);
		font-weight: 900;
	}

	.button--primary {
		border-radius: 3px;
		background-color: var(--color-blue);
		border: 2px solid var(--color-blue);
        align-self: center;

		&:hover {
			background-color: transparent;
		}
	}

}

#our-vision {
    color: var(--color-grey);
	min-height: 340px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	overflow: hidden;
	text-align: left;
	margin-top: 100px;

	.container {
		width: 100%;
		max-width: 1400px;
		display: flex;
		justify-content: space-between;
		flex-wrap: nowrap;
		position: relative;

		@media only screen and (max-width: 900px) {
			flex-direction: column;
			align-items: center;
		}
	}

	.text-block {
		padding: 80px 48px;
		width: 50%;
		display: flex;
		flex-direction: column;
		justify-content: center;

		@media only screen and (max-width: 900px) {
			width: 100%;
			padding: 40px 24px;
		}
	}

	.image-block {
		padding: 80px 48px 0;
		width: 50%;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		align-items: center;
		gap: 30px;
		position: relative;

		@media only screen and (max-width: 900px) {
			width: 100%;
			max-width: 400px;
		}

		img {
			max-width: 100%;
		}

		h3 {
			position: absolute;
			top: 30%;
			right: 40px;
			color: white;
			background-color: var(--color-blue);
			padding: 12px 20px;
			font-size: 16px;
		}

		span {
			position: absolute;
			top: 50%;
			right: 30px;
			color: white;
			background-color: var(--color-red);
			padding: 12px 20px;
			font-size: 14px;
		}
	}

	ul {
		list-style: none;

		li {
			margin-top: 20px;
			position: relative;

			@media only screen and (max-width: 900px) {
				font-size: 16px;
			}

			&::before {
				content: "";
				position: absolute;
				width: 28px;
				height: 28px;
				background-color: var(--color-blue);
				border-radius: 50%;
				left: -36px;
				top: 0;
			}

			&::after {
				content: "";
				position: absolute;
				width: 20px;
				height: 20px;
				background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M13.3327 4L5.99935 11.3333L2.66602 8' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
				background-repeat: no-repeat;
				left: -30px;
                top: 7px;
			}
		}
	}
}

#the-history {
    color: var(--color-grey);
	min-height: 340px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	overflow: hidden;
	text-align: left;

	.container {
		width: 100%;
		max-width: 1400px;
		display: flex;
		justify-content: space-between;
		flex-wrap: nowrap;
		position: relative;

		@media only screen and (max-width: 900px) {
			flex-direction: column;
			align-items: center;
		}
	}

	.text-block {
		padding: 80px 48px;
		width: 50%;
		display: flex;
		flex-direction: column;
		justify-content: center;

		@media only screen and (max-width: 900px) {
			width: 100%;
			padding: 40px 24px;
		}
	}

	.image-block {
		padding: 80px 48px;
		width: 50%;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 30px;
		position: relative;

		@media only screen and (max-width: 900px) {
			width: 100%;
			max-width: 400px;
			padding: 40px 24px;
		}

		img {
			max-width: 100%;
			position: relative;
		}

		&::before {
			content: "";
			width: 40%;
			aspect-ratio: 1;
			background-color: var(--color-red);
			border-radius: 50%;
			position: absolute;
			right: 2%;
			bottom: 2%;
			z-index: 0;
		}
	}

	ul {
		list-style: none;

		li {
			margin-top: 20px;
			position: relative;

			@media only screen and (max-width: 900px) {
				font-size: 16px;
			}

			&::before {
				content: "";
				position: absolute;
				width: 28px;
				height: 28px;
				background-color: var(--color-red);
				border-radius: 50%;
				left: -36px;
				top: 0;
			}

			&::after {
				content: "";
				position: absolute;
				width: 20px;
				height: 20px;
				background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M13.3327 4L5.99935 11.3333L2.66602 8' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
				background-repeat: no-repeat;
				left: -30px;
                top: 7px;
			}
		}
	}
}

#join-us {
	background-color: var(--color-blue);
	color: white;
	min-height: 340px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	overflow: hidden;

	&::before {
		content: "";
		width: 360px;
		height: 360px;
		background-color: var(--color-red);
		border-radius: 50%;
		position: absolute;
		left: -200px;
		bottom: -140px;
		z-index: 0;
	}

	.container {
		padding: 80px 48px 100px 48px;
		width: 100%;
		max-width: 1400px;
		display: flex;
		justify-content: space-between;
		flex-wrap: nowrap;
		gap: 80px;
		position: relative;

		@media only screen and (max-width: 900px) {
			padding: 80px 24px;
			flex-direction: column;
			align-items: center;
			text-align: center;
		}
	}

	.text-block {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 30px;
	}

	.button-block {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
	}

	h3 {
		font-size: 20px;
		font-family: var(--font-sans-serif);
		font-weight: 900;
	}
}

h1, h2, h3, h4 {
	margin: 0;
	font-family: var(--font-serif);
	font-weight: 400;
}

h2 {
	font-size: 42px;

	@media only screen and (max-width: 900px) {
		font-size: 32px;
	}
}

.button--primary {
	border-radius: 3px;
	background-color: var(--color-red);
	border: 2px solid var(--color-red);
	color: white;
    padding: 14px 40px;
	text-decoration: none;
	font-weight: 500;

	&:hover {
		background-color: transparent;
	}
}
