/*--------------------------------------------------------*/
/* FONTS
/*--------------------------------------------------------*/

/* roboto-300 - latin */
@font-face {
	font-family: 'Roboto';
	font-style: normal;
	font-weight: 300;
	src: local('Roboto Light'), local('Roboto-Light'),
		url('../fonts/roboto-v18-latin-300.woff2') format('woff2'),
		url('../fonts/roboto-v18-latin-300.woff') format('woff');
}

/* roboto-regular - latin */
@font-face {
	font-family: 'Roboto';
	font-style: normal;
	font-weight: 400;
	src: local('Roboto'), local('Roboto-Regular'),
		url('../fonts/roboto-v18-latin-regular.woff2') format('woff2'),
		url('../fonts/roboto-v18-latin-regular.woff') format('woff');
}

/* roboto-italic - latin */
@font-face {
	font-family: 'Roboto';
	font-style: italic;
	font-weight: 400;
	src: local('Roboto Italic'), local('Roboto-Italic'),
		url('../fonts/roboto-v18-latin-italic.woff2') format('woff2'),
		url('../fonts/roboto-v18-latin-italic.woff') format('woff');
}

/* roboto-700 - latin */
@font-face {
	font-family: 'Roboto';
	font-style: normal;
	font-weight: 700;
	src: local('Roboto Bold'), local('Roboto-Bold'),
		url('../fonts/roboto-v18-latin-700.woff2') format('woff2'),
		url('../fonts/roboto-v18-latin-700.woff') format('woff');
}

/* LilyScriptOne - Regular */
@font-face {
    font-family: 'Lily Script One';
    src: url('../fonts/LilyScriptOne-Regular.eot');
    src: local('Lily Script One'), local('LilyScriptOne-Regular'),
        url('../fonts/LilyScriptOne-Regular.eot?#iefix') format('embedded-opentype'),
        url('../fonts/LilyScriptOne-Regular.woff2') format('woff2'),
        url('../fonts/LilyScriptOne-Regular.woff') format('woff'),
        url('../fonts/LilyScriptOne-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

/* josefin-regular */
@font-face {
	font-family: 'Josefin';
	font-style: normal;
	font-weight: 400;
	src: local('Josefin'), local('Josefin-Regular'),
		url('../fonts/JosefinSans-Regular.ttf') format('truetype');

}

/* parisienne-regular */
@font-face {
	font-family: 'Parisienne';
	font-style: normal;
	font-weight: 400;
	src: local('Parisienne'), local('Parisienne-Regular'),
		url('../fonts/Parisienne-Regular.ttf') format('truetype');

}


/* Unfortunate-Event-Regular */
@font-face {
	font-family: 'Unfortunate-Event';
	font-style: normal;
	font-weight: 400;
	src: local('Unfortunate-Event'), local('Unfortunate-Event-Regular'),
		url('../fonts/Z003-MediumItalic.ttf') format('truetype');

}


/*--------------------------------------------------------*/
/* GENERAL RULES
/*--------------------------------------------------------*/

* {
	box-sizing: border-box;
	padding: 0;
	margin: 0;
}

html, body {
	font-family: "Josefin", serif;
	font-weight: 500;
	line-height: 150%;
	color: #FFFFFF;
	font-size: 28px;
}

body {
	background-color: #615597 ;
  color: white;
}

a {
	text-decoration: none;
}


/*--------------------------------------------------------*/


@media only screen and (max-width: 480px) {
	html, body {
		font-size: 16px;
		line-height: 160%;
	}
}





/*--------------------------------------------------------*/
/* HEADER
/*--------------------------------------------------------*/

#main-header {
	margin: 0;
	min-width: 100%;
  	height: 550px;
	/* min-height: calc(100vh / 1.4); */

	position: relative;

	/*background-image: url("../img/ui/header-nuit.png");*/

	/*background-image: linear-gradient(rgba(0,0,0,0) 90%, #615597 100%), url("../img/ui/header-nuit.png");*/
	background-image: linear-gradient(rgba(0,0,0,0) 80%, #615597 100%), url("../img/ui/banniere_deux_compresse.png");

	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}

@media only screen and (max-width: 1200px) {
	#main-header {
		height: calc(100vh / 2);
	}
}

@media only screen and (max-width: 900px) {
	#main-header {
		height: calc(100vh / 2.5);
	}
}

@media only screen and (max-width: 600px) {
	#main-header {
		height: calc(100vh / 3);
	}
}

@media only screen and (max-width: 500px) {
	#main-header {
		height: calc(100vh / 5);
	}
}

@media only screen and (max-width: 300px) {
	#main-header {
		height: calc(100vh / 7);
	}
}

@media only screen and (max-width: 200px) {
	#main-header {
		height: calc(100vh / 8);
	}
}

/*--------------------------------------------------------*/







/*--------------------------------------------------------*/
/* CONTENT
/*--------------------------------------------------------*/

section {
	text-align: justify;
}

section > * {
	max-width: 960px;

	margin-left: calc(50% - 480px);
	padding-left: 60px;
	padding-right: 60px;
}

section h2 {
	margin-bottom: 25px;
	padding: 100px 60px 15px 60px;

	color: #25295b;
	text-shadow: 3px 2px 1px #3e376d, 2px 3px 1px #3e376d;
	font-family: Josefin;
	font-size: 3rem;
	font-weight: 300;
	line-height: 150%;
	text-transform: none;
	text-align: center;
	word-wrap: break-word;
	hyphens: auto;
}

section p {
	padding-bottom: 20px;
	font-size: 1rem;
}

section p.stand-out {
	font-style: italic;
	text-align: center;
}


/*--------------------------------------------------------*/


@media only screen and (max-width: 880px) {
	/* section {
		width: 100%;

		margin: 0 auto 100px auto;
		padding: 0 60px;
	} */

	section > * {
		max-width: 960px;
		margin-left: auto;
		margin-right: auto;
		padding-left: 40px;
		padding-right: 40px;
	}
}

@media only screen and (max-width: 480px) {
	section > * {
		padding-left: 30px;
		padding-right: 30px;
	}

	section h2 {
		padding: 80px 0 10px 0;
		font-size: 1.6rem;
		hyphens: none;
		line-height: 2rem;
	}
}

@media only screen and (max-width: 320px) {
	section h2 {
		font-size: 1.4rem;
	}
}



/*--------------------------------------------------------*/
/* BUTTONS
/*--------------------------------------------------------*/

.button {
	display: block;
	width: 60%;

	margin: 20px auto 0 auto;
	padding: 15px 25px;

	background-image: url("../img/ui/button-background-dark-blue-2025.svg");
	background-repeat: no-repeat;
	background-size: 100%;

	/* color: #A6D0B2; */
	/* color: #AA473C; */
	/* color: #47132B; */
	/* color: #000000; */
	color: white;

	font-size: 1.4rem;
	font-weight: 400;
	text-transform: uppercase;
	text-align: center;

	line-height: 32px;
}

.button:hover {
	background-image: url("../img/ui/button-background-light-bleu-2025.svg");
	/* color: #00787E; */
	/* color: #47132B; */
	/* color: #AA473C; */
	color: #340424;
}

.button img {
	height: 32px;
	width: 32px;

	margin: 0 5px;
}

.button img.fix-alignement {
	margin-top: -3px;
}

.button > * {
	vertical-align: middle;
}


/*--------------------------------------------------------*/

@media only screen and (max-width: 800px) {
	.button {
		width: 75%;
		padding: 10px 15px;
		font-size: 1.2rem;
		line-height: 24px;
	}

	.button img {
		height: 24px;
		width: 24px;
	}
}

@media only screen and (max-width: 480px) {
	.button {
		width: 100%;
		padding: 10px 10px;
		font-size: 1.1rem;
		line-height: 24px;
	}
}

@media only screen and (max-width: 350px) {
	.button {
		padding: 0 5px;
		font-size: 0.9rem;
		line-height: 24px;
	}
}

/*--------------------------------------------------------*/
/* POPUP
/*--------------------------------------------------------*/

/* Popup container */
.popup-trigger {
	position: relative;
	display: inline-block;
	cursor: pointer;
	text-decoration: dotted underline;
  }


  /* The actual popup (appears on top) */
.popup-trigger .popup {
	visibility: hidden;
	min-width: 180px;
	max-width: 350%;
	background-color: #555;
	color: #fff;
	text-align: center;
	border-radius: 6px;
	padding: 8px 0;
	position: absolute;
	z-index: 1;
	bottom: 125%;
	left: 50%;
	margin-left: -80px;
  }

  /* Popup arrow */
.popup-trigger .popup::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -5px;
	border-width: 5px;
	border-style: solid;
	border-color: #555 transparent transparent transparent;
  }
  
  /* Toggle this class when clicking on the popup container (hide and show the popup) */
  .popup-trigger .show {
	visibility: visible;
	-webkit-animation: fadeIn 1s;
	animation: fadeIn 1s
  }
  
  /* Add animation (fade in the popup) */
  @-webkit-keyframes fadeIn {
	from {opacity: 0;}
	to {opacity: 1;}
  }
  
  @keyframes fadeIn {
	from {opacity: 0;}
	to {opacity:1 ;}
  }

/*--------------------------------------------------------*/
/* POULPE
/*--------------------------------------------------------*/

.poulpe {
	font-family: 'Lily Script One';
	text-transform: capitalize;
}

/*--------------------------------------------------------*/
/* CALENDAR
/*--------------------------------------------------------*/

#calendar {
	max-width: 95%;
	margin: 0 5% 0 5%;

	/* background-color: rgba(71, 19, 43, 0.05) ; */
}


/*--------------------------------------------------------*/


@media only screen and (max-width: 880px) {
	#calendar {
		overflow-x: scroll;
	}

	#cal-container {
		min-width: 1800px;
		margin: 0 0 40px 0; /* Fix the weird y-overflow of the calendar root */
	}
}




/*--------------------------------------------------------*/
/* PRICE TABLE
/*--------------------------------------------------------*/

table.prices {
	max-width: 600px;
	width: 100%;

	margin: 20px auto;

	border-collapse: collapse;
}

table.prices th,
table.prices td {
	padding: 8px 0;

	font-size: 1.3rem;
	text-align: center;
	vertical-align: middle;
}

table.prices th {
	color: #eb6d3d;
}

table.prices td {
	/* background-color: rgba(71, 19, 43, 0.03); */

	border-top: 2px solid rgba(154, 117, 152, 0.3);
	border-bottom: 2px solid rgba(154, 117, 152, 0.3);
}

table.prices tr:nth-child(odd) td {
	/* background-color: rgba(71, 19, 43, 0.05); */
}


/*--------------------------------------------------------*/


@media only screen and (max-width: 480px) {
	table.prices th,
	table.prices td {
		padding: 5px 0;

		font-size: 1.1rem;
	}
}





/*--------------------------------------------------------*/
/* LOCATION
/*--------------------------------------------------------*/

#mailing-address {
	font-size: 1.5rem;

	text-align: center;
	line-height: 32px;
	vertical-align: middle;
}

#mailing-address img {
	width: 32px;
	height: 32px;

	vertical-align: middle;
}


#interactive-map {
	width: 100%;

	margin: 20px 0;

	border: none;
	border-radius: 10px;
}


#public-transport-info {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	grid-template-rows: 1fr 1fr 1fr;

	margin-left: calc(50% - 480px - 50px);
	
	font-size: 1.5rem;

	line-height: 48px;
	vertical-align: middle;
	white-space: nowrap;
}

#public-transport-info > * {
	margin: 5px;

	justify-self: left;
}

#public-transport-info img {
	width: 48px;
	height: 48px;

	margin: 0 5px 0 0;

	vertical-align: bottom;
}

#transport-metro-icon,
#transport-metro-stop,
#transport-bus-1-icon,
#transport-bus-1-stop {
	grid-row: 1;
}

#transport-rer-icon,
#transport-rer-stop,
#transport-bus-2-icon,
#transport-bus-2-stop {
	grid-row: 2;
}

#transport-noctilien-icon,
#transport-noctilien-stop {
	grid-row: 3;
}

#transport-metro-icon,
#transport-rer-icon {
	grid-column: 1;
	justify-self: end;

}

#transport-metro-stop,
#transport-rer-stop {
	grid-column: 2;
}

#transport-bus-1-icon,
#transport-bus-2-icon,
#transport-noctilien-icon {
	grid-column: 3;
	justify-self: end;

}

#transport-bus-1-stop,
#transport-bus-2-stop,
#transport-noctilien-stop {
	grid-column: 4;
}


/*--------------------------------------------------------*/


@media only screen and (max-width: 880px) {
	#public-transport-info {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto auto auto auto auto;
		align-items: center;

		margin: 0;

		line-height: 48px;
	}

	#transport-metro-icon,
	#transport-metro-stop {
		grid-row: 1;
	}

	#transport-rer-icon,
	#transport-rer-stop {
		grid-row: 2;
	}

	#transport-bus-1-icon,
	#transport-bus-1-stop {
		grid-row: 3;
	}

	#transport-bus-2-icon,
	#transport-bus-2-stop {
		grid-row: 4;
	}

	#transport-noctilien-icon,
	#transport-noctilien-stop {
		grid-row: 5;
	}

	#transport-metro-icon,
	#transport-rer-icon,
	#transport-bus-1-icon,
	#transport-bus-2-icon,
	#transport-noctilien-icon  {
		grid-column: 1;
		justify-self: end;

	}

	#transport-metro-stop,
	#transport-rer-stop,
	#transport-bus-1-stop,
	#transport-bus-2-stop,
	#transport-noctilien-stop  {
		grid-column: 2;
	}
}

@media only screen and (max-width: 580px) {
	#mailing-address {
		font-size: 1.1rem;
	}

	#public-transport-info {
		grid-template-columns: 4fr 6fr;

		line-height: 32px;
		font-size: 1.1rem;
	}

	#public-transport-info img {
		width: 32px;
		height: 32px;
	}
}

@media only screen and (max-width: 380px) {
	#public-transport-info img {
		display: block;
	}
}





/*--------------------------------------------------------*/
/* SPONSORS
/*--------------------------------------------------------*/

#sponsors {
	text-align: center;
}

#sponsors img {
	height: 100px;
	object-fit: cover;

	margin: 20px;
}

#sponsors img.sponsor-disc {
	height: 155px;
}


/*--------------------------------------------------------*/


@media only screen and (max-width: 480px) {
	#sponsors img {
		height: 40px;

		margin: 5px;
	}

	#sponsors img.sponsor-disc {
		height: 60px;
	}
}





/*--------------------------------------------------------*/
/* CONTACT
/*--------------------------------------------------------*/

#contact-email {
	font-family: monospace;
	font-size: 1.5rem;
	text-align: center;
	word-wrap: break-word;
}

#contact-email img {
	width: 32px;
	height: 32px;

	vertical-align: bottom;
}


/*--------------------------------------------------------*/


@media only screen and (max-width: 480px) {
	#contact-email {
		font-size: 0.9rem;
	}

	#contact-email img {
		display: none;
	}
}
