@charset "utf-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=Spartan:wght@400;500;700&display=swap');

:root {
  --main-red:#C21D3E;
  --text-color:#282828;
  --lines-color:#919191;
  --text-background-color:#e3e3e3;
  --text-size: 14px;
  --text-line-height:24px;
}

html
{
	margin:0;
	padding:0;
	scroll-behavior: smooth;
}

body
{
	background-color:#ffffff;
	margin:0;
	padding:0;
	height:100%;
}

p, h1, h2, h3, h4, h5, h6
{
	margin:0;
	padding:0;
}

#global
{
	margin:0 auto;
}

#slideshow div
{
	position: absolute;
}

#slideshow div img
{
	width:100%; /*the whole screen*/
	display:inline-block;
}

.slideshow_background
{
	width:100%;
	height: calc( 45vw - 9px); /* (picture height / picture width) (1920/1010) 9px pour régler le ptit bogue*/ 
	background-color:#000000;  /* nouvelle résolution: 1920x864;*/
}

/********************************** THUMBNAILS **********************************/

.thumbnails_grid_container
{
  	display: flex;
  	flex-flow: row wrap;
    justify-content: center;
}

.thumbnail_flex
{
	width: calc( 25% - 40px);
    padding:20px;
    cursor: pointer;
    position:relative;
}

.thumbnail_image_container
{
	overflow: hidden;
	/*display: block;*/
}

.thumbnail_image 
{
	opacity: 1;
	display: block;
	transition: .5s ease;
	backface-visibility: hidden;
	
	transition: transform 0.75s, filter 0.75s ease-in-out;
 	transform: scale(1);
 	filter: grayscale(0%) brightness(100%);

 	width: 100%;
  	height: 100%;
}

.thumbnail_middle 
{
  	transition: .5s ease;
  	opacity: 0;
  	width: calc( 100% - 2vw); /* 2vw pour le padding du container */

 	position: absolute;
  	top: 50%;
  	left: 50%;
  	transform: translate(-50%, -50%);
 	-ms-transform: translate(-50%, -50%);
 	text-align: center;
 	pointer-events: none; 
}

.thumbnail_flex:hover .thumbnail_image 
{
  	transition: transform 0.75s, filter 0.75s ease-in-out;
	transform: scale(1.07);
	filter: grayscale(100%) brightness(50%);
}

.thumbnail_flex:hover .thumbnail_middle 
{
  opacity: 1;
}

.thumbnail_text
{	
	color: white;
	font-family:'Spartan', sans-serif;
	font-size: calc( 10px + 0.5vw );
	padding:3px;
	font-weight:500;
	line-height: calc( 10px + 1vw );

	-webkit-user-select: none; /* Safari */        
	-moz-user-select: none; /* Firefox */
	-ms-user-select: none; /* IE10+/Edge */
	user-select: none; /* Standard */
}

h3
{
	font-weight:700;
	font-size: calc( 12px + 0.8vw );
}

/********************************** FOOTER **********************************/

footer
{
	background-color:#000000;
	width:100%;
	height:45px;
	color:#ffffff;
	font-family: 'Spartan', sans-serif;
	font-size:12px;
	font-weight: 500;
	line-height:45px;
}

.copyrights
{
	width:calc( 33% - 40px);
	float:left;
	text-align:left;
	padding-left:40px;
}

.credits
{
	text-align: center;
	margin:0 auto;
	float:left;
	width:33%;
}

.fa 
{
  /*padding: 14px*/;
  width: calc( 33% - 40px);
  text-align: right;
  text-decoration: none;
  float:right;
  padding-right:40px;
  padding-top:15px;
}

.fa-facebook 
{
	float:right;
	/*background: #000000;*/
	color: white;
}

/********************************** PAGE CONTENT **********************************/

.page_section
{
	background-color:#ffffff;
	margin:0 auto;
	padding:20px 40px;
	font-family: 'Spartan', sans-serif;
	color:var(--lines-color);
	clear:both;
}

.spectacles_section
{
	background-color:#ffffff;
	margin:0 auto;
	padding:20px 40px;
	font-family: 'Spartan', sans-serif;
	color:var(--lines-color);
	width:calc( 50% - 80px);
	float:left;
	overflow: hidden;
}

.spectacles_section img
{
	max-width:100%;
	height:auto;
}

.spectacles_grid_section
{
	background-color:#ffffff;
	margin:0 auto;
	padding:20px 30px;
	width: calc( 100% - 60px);
}

h1
{
	width:calc( 100%- 40px);
	height:26px;
	line-height:26px;
	color:var(--main-red);
	font-weight: 700;
	font-size:26px;
	text-transform: uppercase;
	font-family: 'Spartan', sans-serif;
	padding:0px 40px;
	margin-top: 40px;
	margin-bottom: 20px;
}

h2
{
	width:100%;
	height:18px; 
	color:var(--main-red);
	font-weight: 700;
	text-transform: uppercase;
	font-size:18px;	
	line-height:18px;
	margin-top: 20px;
	margin-bottom: 10px;
}

.page_text
{
	width:100%;
	height:100%;
	margin-bottom:20px;
}

b
{
	color:var(--main-red);
}

/* paragraph */
p
{
	/*background-color:rgba(0,0,0,0.11);*/
	/*background-color:rgba(194,29,62,0.17);*/  /*POURPRE: 194, 29, 62  */ /*BLUE: 19,35,91  */  /*BLUE: 13, 48, 130  */
	color:var(--text-color);
	padding:40px;
	background-repeat: no-repeat;
	background-size: cover;
	position:relative;
	text-align: justify;
  	text-justify: inter-word;
  	font-size:var(--text-size);
	line-height:var(--text-line-height);
	font-weight: 500;
	background-color:var(--text-background-color);
	width:calc( 100% - 80px);
	 /* 100% - padding left and right */
}

p:before 
{
	content: "";
	position:absolute;
	z-index: 0;
	top:20px;
	bottom:-20px;
	left:20px;
	right:-20px;
	pointer-events: none;
}

.tl
{
	background-image: url(../image/territory_corner_tl.svg);
	margin-left:auto;
	background-position: top left;

}

.tl:before
{
	border-bottom: 1px solid var(--lines-color);
	border-right: 1px solid var(--lines-color);
}

.tr
{
	background-image: url(../image/territory_corner_tr.svg);
	margin-right:auto;
	background-position: top right;
}

.tr:before
{
	border-bottom: 1px solid var(--lines-color);
	border-left: 1px solid var(--lines-color);
}

.bl
{
	background-image: url(../image/territory_corner_bl.svg);
	margin-left:auto;
	background-position: bottom left;
}

.bl:before
{
	border-top: 1px solid var(--lines-color);
	border-right: 1px solid var(--lines-color);
}

.br
{
	background-image: url(../image/territory_corner_br.svg);
	margin-right:auto;
	background-position: bottom right;
}

.br:before
{
	border-top: 1px solid var(--lines-color);
	border-left: 1px solid var(--lines-color);
}

.tl_no_border
{
	background-image: url(../image/territory_corner_tl.svg);
	background-position: top left;
	/*width:calc( 100% - 80px);*/ /* 100% - padding left and right*/
}

.tr_no_border
{
	background-image: url(../image/territory_corner_tr.svg);
	background-position: top right;
	/*width:calc( 100% - 80px);*/ /* 100% - padding left and right */
}

.bl_no_border
{
	background-image: url(../image/territory_corner_bl.svg);
	background-position: bottom left;
	/*width:calc( 100% - 80px);*/ /* 100% - padding left and right */
}

.br_no_border
{
	background-image: url(../image/territory_corner_br.svg);
	background-position: bottom right;
	/*width:calc( 100% - 80px);*/ /* 100% - padding left and right */
}

/*liens*/
p a
{
	color:var(--main-red);
	font-weight:bold;
	text-decoration: underline;
}

p a:hover
{
	color:var(--main-red);
	font-weight:bold;
	text-decoration: none;
}

/********************************** SPECTACLES **********************************/

.spectacles_grid_container 
{
	display: flex;
    flex-flow: row wrap;
    justify-content: center;
}

.spectacles_photos_flex 
{
    width: calc( 20% - 20px);
    padding:10px;
    cursor: pointer;
}

.spectacles_photos_flex img
{
    width:100%;
    /*max-width:270px;*/
}

.spectacles_logos_flex
{
    width: calc( 16.66% - 20px);
    padding:10px;
    margin:auto;
}

.spectacles_logos_flex img
{
    max-width:100%;
    max-height:120px;
}

/********************************** CALENDAR **********************************/

hr
{
	border: 1px solid var(--lines-color);
	margin:4px 0px;
}

/********************************** COMPAGNIE **********************************/

.team_member
{
	overflow: hidden;
	width: 100%;
	padding-top:20px;
	/*padding-bottom:20px;*/
}

.team_member_name
{
	color:var(--main-red);
	font-weight:700;
	padding-bottom:10px;
	font-size:20px;
}

.team_img_left
{
	width:25%;
	float: left;
}

.team_img_right
{
	width:25%;
	float: right;
}

.team_img_left > img, .team_img_right > img
{
	display: block;
  	width:100%;
  	max-width:235px;
  	height:auto;
}

.team_img_left > img 
{
	margin-right: auto;
}

.team_img_right > img
{
	margin-left:auto;
}

.team_text
{
	width: 75%;
	float: left;
}

.columns_container 
{ 
	display: -ms-flex; display: -webkit-flex; display: flex; 
	flex-wrap: wrap;
}
.columns_container>div
{ 
	flex:1;
}
.column>p
{
	height:calc( 100% - 90px); /*je ne comprends pas ce calcul */
}

.column:nth-child(1)
{
	padding-right:20px; /* 20px de chaque cote puisque p a un margin de 40px*/
}

.column:nth-child(2)
{
	padding-left:20px; /* 20px de chaque cote puisque p a un margin de 40px*/
}

/********************************** CONTACT **********************************/

/* Style inputs with type="text", select elements and textareas */
input[type=text], select, textarea 
{
  width: 100%; /* Full width */
  padding: 8px; /* Some padding */ 
  border: 1px solid #ccc; /* Gray border */
  border-radius: 4px; /* Rounded borders */
  box-sizing: border-box; /* Make sure that padding and width stays in place */
  margin-top: 4px; /* Add a top margin */
  margin-bottom: 4px; /* Bottom margin */
  resize: vertical /* Allow the user to vertically resize the textarea (not horizontally) */
  outline-style: none;
  font-family: 'Spartan', sans-serif;
}

input[type=text], select, textarea :focus {
   	/*outline-color: var(--main-red);
    outline-style: solid;
    outline-width: 1px;*/ /*ne fonctionne pas*/ 

    outline-style: none;
}

.column.column-contact form
{
	height:170px;
}

#form_message
{
	outline-style: none;
	height:115px;
}

/* Style the submit button with a specific background color etc */
input[type=submit] 
{
  background-color: var(--main-red);
  color: white;  
  padding: 12px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  float:right;
  font-family: 'Spartan', sans-serif;
}

/* When moving the mouse over the submit button, add a darker green color */
input[type=submit]:hover{
  background-color: #a31834;
}

/* Add a background color and some padding around the form */
/*.container 
{
  border-radius: 5px;
  background-color: #f2f2f2;
  padding: 20px;
}*/

.column.column-contact /*même chose que le p */
{
	background-color: var(--text-background-color);
	padding:40px;
	background-image: url(../image/territory_corner_br.svg);
	background-repeat: no-repeat;
	background-position: bottom right;
	background-size: cover;
}

.column.column-contact:nth-child(1)
{
	margin-right:20px;
}

.column.column-contact:nth-child(2)
{
	margin-left:20px;
}

.form_column
{
	width:calc( 50% - 4px);
	float:left;
}



/********************************** MOBILE **********************************/

@media screen and (max-width: 768px) 
{
	.slideshow_background
	{
		height: 45vw; /* le petit bogue de 9 px n'est plus */
	}

	.thumbnail_flex
	{
		width: calc( 50% - 20px);
		padding:10px;
	}

	.thumbnail_text
	{
		font-size: 15px;
		line-height: 15px;
	}

	h3
	{
		font-size: 18px;
	}

	.team_img_left
	{
		width:100%;
		float: none;
	}

	.team_img_right
	{
		width:100%;
		float: none;
	}

	.team_img_left > img, .team_img_right > img
	{
		padding-bottom: 10px;
	}	

	.team_text
	{
		width:100%;
		float: none;
	}

	.team_member_name
	{
		font-size:18px;
	}

	.page_section
	{
		padding: 10px 20px;
		width:calc( 100% - 40px);
	}

	h1
	{
		padding:0px 20px;
		width: calc( 100% - 40px);
	}

	.column:nth-child(1), .column:nth-child(2)
	{
		padding-right:0px;
		padding-left:0px;
		flex:100%;
	}

	.column.column-contact
	{
		padding:40px;
		/*pour une raison quelconque, le margin-left de .column.column-contact:nth-child(2) avait priorité*/
		margin-left:0px !important;
		margin-right:0px !important;
		margin-bottom:20px;
	}

	p
	{
		padding:20px;
		margin-bottom:20px;
		background-size:150%;
		width:calc( 100% - 40px); /* 100% - padding gauche and droite */
	}

	p:before 
	{
		top:10px;
		bottom:-10px;
		left:10px;
		right:-10px;
	}

	.spectacles_section
	{
		padding: 10px 20px;
		width:calc( 100% - 40px);
	}

	.spectacles_grid_section  /*aussi utilisé pour les logos */
	{
		padding: 10px 10px;
		width:calc( 100% - 20px);
	}

	.spectacles_photos_flex 
	{
        width: calc( 33% - 20px);
        padding:10px;
    }

    .spectacles_logos_flex 
	{
        width: calc( 25% - 20px);
        padding:10px;
    }

	footer
	{
		font-size:1.8vw;
	}

	.copyrights
	{
		width:calc( 33% - 20px);
		padding-left:20px;
	}

	.fa
	{	  
	  width: calc( 33% - 20px);
	  padding-right:20px;
	}
}

@media screen and (max-width: 614px) /* pourquoi 614? parce que. */
{
	.spectacles_photos_flex 
	{
        width: calc( 50% - 20px);
        padding:10px;
    }

    .spectacles_logos_flex 
	{
        width: calc( 33% - 20px);
        padding:10px;
    }
}
