body {
	margin: 0px;
}

#frame {
	width: calc(100% - 82px);
	height: calc(100vh - 102px);
	margin: 20px;
	margin-bottom: 0px;
	padding: 20px;
	border: 1px solid black;
	animation: pulse-shadow 4s ease-in-out infinite;
	display: grid;
	gap: 30px;
	grid-template:
		'header contenu'
		'nav contenu'
		'infos contenu';
	grid-template-columns: auto 1fr;
	grid-template-rows: 100px auto 1fr;
	position: relative; /* Pour les arrows */
}

@keyframes pulse-shadow {
	0% {
		box-shadow: 0px 0px 150px lightgrey inset; /* no shadow (white) */
	}
	50% {
		box-shadow: 0px 0px 500px grey inset; /* grey shadow */
	}
	100% {
		box-shadow: 0px 0px 150px lightgrey inset; /* back to white */
	}
}

#sidebar {
	width: 300px;
	display:flex;
	flex-shrink: 0; /* Maintain 300px width */
	flex-direction:column;
	margin-right: 10px;
	padding-right: 30px;
	border-right: 1px solid grey;

}

#titre_page {
	font-size: xx-large;
	text-decoration: none;
	font-style: italic;
}

#sous_titre {
	font-size:initial;
	margin-top:10px;
	margin-bottom:30px;
	max-width: 300px;
}

header {
	width: 285px;
	grid-area: header;
}

@media only screen and (max-width: 800px) {
	#frame {
		width: calc(100% - 42px);
		height: calc(100vh - 130px);
		margin: 10px;
		margin-bottom: 0px;
		padding: 10px;
		box-shadow: 0px 0px 150px lightgrey inset;
		grid-template:
			'header'
			'nav'
			'contenu'
			'infos';
		gap: 10px;
	}
	#sidebar {
		width: 100%;
		margin-right: 0px;
		padding-right: 0px;
		margin-bottom: 10px;
		padding-bottom: 10px;
		border-right: none;
		border-bottom: 1px solid grey;

	}
	#titre_page {
		font-size: xx-large;
		margin:10px;
	}
	#sous_titre {
		font-size: small;
		font-style: italic;
		margin-bottom: 20px;
		margin-top: 20px;
		max-width: none;
	}
	header {
		width: fit-content;
	}
}

a /* Liens par défaut (non survolés) */
{
	 text-decoration: none;
	 color: black;
}

a:hover /* Liens survolés par l'utilisateur */
{
	color: black;
	font-weight: bold;
}

#logo
{
	width: 100%;
}

#presentation {
	width: 100%;
	text-align: justify;
	display: flex;
	grid-area: contenu;
}

nav
{
	width: fit-content;
	padding-left: 20px;
	grid-area: nav;
	margin-left:20px;
}

/* Navigation bar */
#navigator
{
	display: grid;
}

nav ul 
{
	list-style-type: disclosure-closed;
	margin: auto;
	padding: 0px;
}

#navigator li a {
	display: block;
	padding: 7px;
	text-decoration: none;
}

#navigator li a:hover {
	background-color: #f1f1f1;
	border-radius: 5px;
}

@media only screen and (max-width: 800px) {
	nav {
		font-size:medium;
		justify-self: center;
	}
	#navigator {
		grid-template-columns: auto auto;
		gap: 0px 20px;
		justify-self: center;
		font-size:medium;
	}
}

.texte {
	text-align: justify;
	font-family: Verdana, Geneva, Tahoma, sans-serif;
}

.infos {
	grid-area: infos;
}

/* Footer */

footer
{
	/*border: 1px solid black;
	background-color: #FFF;*/
	margin: 0px 20px 0px;
}

footer ul {
	list-style-type: none; 
	display: flex;
	justify-content: space-between;
	margin: 0px;
	padding: 0px 20px;
	align-items: center;
}

@media only screen and (max-width: 800px) {
	footer {
		margin:0px;
		margin-left: 10px;
	}
}

table {
	border-collapse: collapse;
	font-size: small;
}

td, th {
	border: 1px solid rgb(190,190,190);
	padding: 10px 20px;
}

td {
	text-align: center;
}

caption {
	padding: 10px;
}