/* Variables */
:root {
	--couleur_1: #0070ff;
}

/* Par défaut */
html {
	scroll-behavior: smooth;
	background-image: url("images/fond.png");
	background-size: 5%;
}
body {
	margin: 0px;
	font-family: Serif;
	font-size: 22px;
	text-align: justify;
	cursor: url("images/pointeur-auto.png") 13 12, auto;
}
::selection {
	color: white;
	background: var(--couleur_1);
}

/* Pour faire fonctionner les anciennes balises de formatage HTML simple. */
i {
	font-style: italic;
}
u {
	text-decoration: underline;
}
b {
	font-weight: bold;
}
s {
	text-decoration: line-through;
}
tt {
	font-family: Monospace;
}
center {
	text-align: center;
}
big {
	font-size: larger;
}

/* Conteneurs */
#contenu {
	margin-left: 15%;
	margin-right: 15%;
	background-color: white;
	padding: 1em;
	border-right: solid 2px black;
	border-left: solid 2px black;
}
div.bandeau {
	background-color: white; /* #ebf5fb */
	box-shadow: 10px 5px 5px grey;
	border-bottom: solid 2px;
	display: flex;
	padding: 1.5em;
	z-index: 5;
	/* position: sticky; */
	/* top: 0px; */
}
div#icone {
	flex: 1;
}
div#intro {
	flex: 6;
}
div#intro_tel {
	display: none;
}
div.flexible {
	display: flex;
}
div.reglages_images {
	flex: 1;
	padding: 1em;
	border-right: solid;
}
div.previsualiser_image {
	flex: 1;
	padding: 1em;
}
div.reglages {
	flex: 1;
	padding-left: 1em;
	padding-right: 1em;
	padding-bottom: 1em;
	padding-top: 0px;
	border: solid;
}
div.previsualiser {
	flex: 3;
	padding-left: 1em;
}
footer {
	background-color: white;
	box-shadow: 10px 5px 5px grey;
	border-top: solid 2px;
	border-bottom: solid 2px;
}
footer p {
	margin-left: 15%;
	margin-right: 15%;
}
table {
	margin-left: 2%;
	margin-right: 2%;
}
div#genere {
	background-color: var(--couleur_1);
	text-align: center; 
	position: fixed; 
	top: 1%; 
	left: 35%; 
	width: 30%; 
	border: ridge 1em; 
	border-color: white; 
	box-shadow: grey 10px 10px 10px; 
	color: white; 
	border-radius: 10px;
	z-index: 100;
}
div#avis {
	background-color: #FA5858; 
	text-align: center; 
	position: fixed; 
	top: 20%; 
	left: 35%; 
	width: 30%; 
	border: ridge 1em; 
	border-color: white; 
	box-shadow: grey 10px 10px 10px; 
	color: white; 
	border-radius: 10px; 
}
div#notifications {
	position: fixed; 
	top: 1%; 
	width: 15em; 
}
div.notif {
	background-color: var(--couleur_1); /* #819FF7; */
	position: fixed;
	color: white;
	font-size: 0.8em;
	width: 18em; 
	border: ridge 3px; 
	border-color: white; 
	box-shadow: grey 2px 2px 2px; 
	border-radius: 3px; 
	right: -20%; 
	animation-name: arrivee_notifs;
	animation-duration: 1s; 
	animation-delay: 0.5s;
	animation-fill-mode: forwards;
	z-index: 30;
}
 
div#faq {
	padding: 2em;
	padding-top: 0.5em;
	border-radius: 0.5em;
	border: solid 3px black;
	background-color: white;
}
div#liste_articles {
	text-align: center; 
	display: flex;
}
div.min_article {
	flex: 10;
	height: 20em;
	border-radius: 15px;
	border: solid black 1px;
	overflow: scroll;
	box-shadow: 7px 3px 3px #aeb6bf;
	text-align: left;
	cursor: pointer;
	transition: .2s ease-in-out;
}
div.min_article:hover {
	background-color: #f3f3f3;
	transition: .2s ease-in-out; 
}
div#menu {
	position: fixed;
	top: 0px;
	left: 0px;
	width: 30%;
	height: 100%;
	background-color: #f3f3f3;
	font-size: 1.2em;
	padding: 0.5em;
	padding-top: 1em;
	text-align: left;
	z-index: 99;
	overflow: scroll;
	border-right: solid 1px black;
	box-shadow: 5px 10px 5px grey;
}

/* Titres */
h1 {
	margin-left: 10px;
	margin-right: 10px;
	animation-duration: 0.8s; 
	animation-name: arrive_titres;
	font-family: Serif;
}
h2 {
	margin-left: 10px;
	margin-right: 10px;
}
h3:not(.petittitre) {
	text-indent: 4em;
	font-size: 1.3em;
	text-decoration: underline var(--couleur_1);
}
div#faq h2 {
    font-family: 'Montserrat', sans-serif;
	font-size: 2.3em;
    font-weight: 700; 
    text-shadow: 
        -1px -1px 0 #000,  
        1px -1px 0 #000,
        -1px 1px 0 #000,
        2px 2px 0 #000;
	color: var(--couleur_1);
}

/* Autres textes */
p:not(.interlignes, #copyright) {
	font-weight: lighter;
	line-height: 1.4em;
	text-indent: 2em;
}
p#texte_menu, a.lien_menu {
	line-height: 2em;
	animation-duration: 0.7s; 
	animation-name: arrivee_coloree;
	color: black;
	transition: .5s ease-in-out; 
	text-decoration: none;
}
a.lien_menu:hover {
	color: white;
	text-shadow: 0 0 5px black, 0 0 25px black, 0 0 50px black, 0 0 100px blue;
	transition: .1s ease-in-out; 
	text-decoration: underline;
}
#info {
	font-size: 21px;
	color: red;
	text-shadow: 1px 1px 2px black;
}
#pub {
	text-decoration: underline 2px #F7FE2E;
	text-indent: 175px;
	font-size: 30px;
	text-shadow: #000000 1px 1px, #000000 -1px 1px, #000000 -1px -1px, #000000 1px -1px;
}
p.interlignes {
	line-height: 2.5em;
	text-align: justify;
}
.motscles {
	background-color: white;
	font-weight: lighter;
	font-family: serif;
	font-size: 0.9em;
	border-radius: 10px;
	border: double 4px;
	cursor: pointer;
	color: black;
	text-decoration: none;
	line-height: 1.3em;
	padding-right: 0.7em;
	padding-left: 0.7em;
	padding-top: 0.2em;
	padding-bottom: 0.2em;
	transition: .2s ease-in-out; 
}
.motscles:hover {
	background-color: #F2F2F2;
	font-size: 1em;
	transition: .2s ease-in-out; 
}
span#oblige {
	color: red;
}
span#oblige::before {
	content: '* ';
}
span.quest_accordeon {
	font-weight: bold;
	font-size: 1.2em;
	cursor: pointer;
	color: var(--couleur_1);
}
span.quest_accordeon::before {
	content: '> ';
}
span.quest_accordeon.active::before {
	content: 'V ';
}
span.rep_accordeon {
	display: none;
	padding: 0.5em;
	animation: apparaitre 0.5s;
}
blockquote {
	border-left: 4px solid #CCC;
	padding: 1em;
	margin-left: 2em;
	font-size: 1.1em;
	font-family: Poiret One;
	margin-bottom: 0px;
	font-weight: bold;
}
figcaption.source {
	margin-left: 3em;
	margin-top: 0px;
	font-style: italic;
	font-family: Poiret One;
}
figcaption.source::before {
	content: ' — ';
}
span.nouveau::after {
    /* display: inline-block; */ /* Pour que l'animation fonctionne, mais change l'apparence. */
	content: ' NEW';
    color: black;
    font-weight: bold; 
    font-size: 0.8em;
    text-shadow: 0px 0px 20px red;
    background-color: yellow;
	border-radius: 3px;
	padding: 0.1em;
	animation: battements 1s infinite;
}
span.beta::after {
    /* display: inline-block; */ /* Pour que l'animation fonctionne, mais change l'apparence. */
	content: ' beta';
    color: white;
    font-weight: bold; 
    font-size: 0.8em;
    text-shadow: 0px 0px 20px yellow;
    background-color: green;
	border-radius: 3px;
	padding: 0.1em;
	animation: battements 1s infinite;
}

/* Liens */
a:not(.liens_notifs, .lien_blanc, .lien_menu) {
	font-weight: bold;
    color: var(--couleur_1); 
	letter-spacing: 1px;
    text-decoration: none;
    font-size: 1.1em;
    position: relative;
	/* display: inline-block; */
	/* margin-left: -42px; */
}
a:not(.liens_notifs, .lien_blanc, .lien_menu)::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background: var(--couleur_1);
    transform: scaleX(0);
    transition: transform 0.3s ease;
}
a:hover::after {
    transform: scaleX(1); /* Élargit la ligne au survol */
}
a.lien_blanc {
	font-size: 1.1em;
	text-decoration: underline dotted; 
	color: white;
	transition: .1s ease-in-out; 
}
a.lien_blanc:hover {
	font-size: 1.2em;
	transition: .2s ease-in-out; 
}
a.lien_blanc:focus {
	text-decoration: none; 
	transition: .1s ease-in-out; 
}
a.liens_notifs  {
	color: white;
	text-decoration:  underline wavy white;
	font-weight: bold;
}

/* Boutons et champs*/
input[type="text"], input[type="mail"], input[type="url"], textarea, .URL {
	font-family: Serif;
}
#bouton_menu {
	cursor: pointer;
	padding: 0.1em;
	border: solid 2px black;
	border-radius: 50%;
	position: fixed;
	z-index: 100;
	top : 0.5em;
	left: 0.5em;
	display: block;
	animation-duration: 0.4s; 
	animation-name: zoom;
	transition: .2s ease-in-out;
}
#bouton_menu:hover {
	background-color: #f3f3f3;
	transition: .2s ease-in-out; 
}
label {
	cursor: pointer;
}
input#gras, input#italique {
	background-color: #E9E9ED;
}
input:not(#sortie, #valide, .bouton_suivant),select,textarea {
	font-size: 1em;
	font-family: Serif;
	background-color: #e3f0ff;
	border: solid black 1px;
	border-radius: 3px;
}
input.bouton_suivant {
	cursor: pointer;
	position: relative;
	font-size: 1em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 1em 2.5em;
	display: inline-block;
	border-radius: 6em;
	transition: all 0.2s;
	border: none;
	font-family: inherit;
	font-weight: 500;
	color: white;
	background-color: var(--couleur_1);
	border: solid 2px black;
}
input.bouton_suivant:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}
input.bouton_suivant:active {
	transform: translateY(-1px);
	box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
}
input.bouton_suivant::after { /* Ne fonctionne pas. */
	content: "";
	display: inline-block;
	height: 100%;
	width: 100%;
	border-radius: 6em;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
	transition: all 0.4s;
	background-color: #fff;
}
input.bouton_suivant:hover::after { /* Ne fonctionne pas. */
	transform: scaleX(1.4) scaleY(1.6);
	opacity: 0;
}

input#valide {
	transition: .3s ease-in-out; 
	cursor: pointer;
	width: 50%;
	padding: 1em;
	font-size: 1.5em;
	font-family: Serif;
	border: solid 3px black;
	border-radius: 5px;
	background-color: var(--couleur_1);
	color: white;
	font-weight: bold;
	animation: rebonds 1s infinite;
}
input#valide:hover {
	transition: .3s ease-in-out; 
	scale: 1.3;
	background: linear-gradient(0.4turn, var(--couleur_1), var(--couleur_1), #76b2ff);
	/* animation: none; */
}
input#tps:valid{
	border-color: green;
} 
input#tps:invalid{
	border-color: red;
}
input[type='button']:not(input#gras,input#italique,input.bouton_suivant) {
	background-color: white;
	color: black;
	border: solid 2px black;
	border-radius: 5px;
	cursor: pointer;
	transition: .1s ease-in-out; 
}
input[type='button']:not(input#gras,input#italique,input.bouton_suivant):hover {
	background-color: #D8D8D8;
	font-size: 1.1em;
	transition: .2s ease-in-out; 
}

/* Extraits de code */
textarea#sortie {
	width: 90%; 
	height: 200px; 
	resize: none;
}
tt.exemple {
	background-color: white;
	color: black;
	border-radius: 2px;
}

/* Bouton pour revenir en haut de la page */
#scrollUp {
	position: fixed;
	bottom : 45px;
	right: -100px;
	opacity: 0.8;
	/* transform: rotate(180deg); */
}
#scrollUp:hover {
	bottom : 55px;
	transition: .3s ease-in-out;
	opacity: 1;
}

/* Images */
img#icone_tel {
	width: 2em;
	display: none;
	vertical-align: middle;
}
img#download {
	transition: .3s ease-in-out;
} 
img#download:hover {
	width: 17%; 
	transition: .3s ease-in-out;
} 
img#download:active {
	width: 15%; 
	transition: .1s ease-in-out; 
	filter: blur(1px);
}
img.croix {
	width: 1.5em;
	cursor: pointer;
	position: fixed;
	z-index: 10;
}
img.illustration {
	width: 60%;
	text-align: center;
	border: solid 2px;
	border-radius: 3px;
}


/* Fonctions */
@keyframes arrive_titres {
  from {
    margin-left: -20%;
	filter: blur(5px);
  }
  to {
    margin-left: 0%;
	filter: blur(0px);
  }
}
@keyframes arrivee_coloree {
	0% {
		margin-left: -20%;
		color: yellow;
	}
	25% {
		color: orange;
	}
	50% {
		color: red;
	}
	75% {
		color: purple;
	}
	100% {
		margin-left: 0%;
		color: black;
	}
}
@keyframes arrivee_notifs {
  from {
	right: -4%;
	opacity: 50%;
  }
  to {
	right: 1%;
	opacity: 100%;
  }
}
@keyframes apparaitre {
	from {
		opacity: .4;
	}
	to {
		opacity: 1;
	}
}
@keyframes zoom {
	from {
		scale: 0.2;
	}
	to {
		scale: 1;
	}
}
@keyframes battements {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.2);
    }
}
@keyframes rebonds {
	0%, 100% {
		transform: translateY(0);
	}
	50% {
		transform: translateY(30px);
	}
}

/* Pour le responsive design */
@media screen and (max-width: 1000px) {
	body {
		font-size: 17px;
		font-family: Sans-Serif;
	}
	#contenu {
		margin-left: 3%;
		margin-right: 3%;
	}
	footer p {
		margin-left: 2%;
		margin-right: 2%;
	}
	div#ordi {
		display: none;
	}
	img#icone_tel {
		display: inline;
	}
	div#intro_tel {
		display: inline;
	}
	div.bandeau#haut {
		position: sticky;
		top: 0px;
		padding: 0.1em;
		flex-direction: column;
	}
	div.bandeau {
		display: block;
	}
	#bouton_menu {
		display: block;
	}
	div#menu {
		width: 100%;
		padding-top: 2em;
		font-size: 1.5em;
	}
	div.notif {
		bottom: 1em;
	}
	input[type="text"], input[type="mail"], input[type="url"], textarea, .URL {
		width: 99%;
		font-family: Sans-Serif;
	}
	img[alt="partie suivante"] {
		width: 25%;
	}
	.flexible {
        flex-direction: column;
    }
	div#reglages_images, div#reglages {
		border-right: 0px;
	}
	div#previsualiser {
		flex: 1;
	}
	h1 {
		font-size: 1.3em;
	}
	h2 {
		font-size: 1.1em;
	}
	div#genere {
		left: 5%; 
		width: 80%; 
	}
	div#avis {
		left: 5%; 
		width: 80%; 
	}
	img.illustration {
		width: 90%;
	}
}