:root {
	--color: #452e3a;
	--cursive-font: "Sacramento";
	--default-font: "Montserrat";
	--color-2: #7d7288;
}

/** GENERICS *****************************************************************/
html, body {
	height: 100%;
}

body {
	font-family: var(--default-font), sans-serif;
	margin: 0;
	color: var(--color);
	display: flex;
	flex-flow: column;
	background: #f2f6fb;
	background: linear-gradient(0deg, #f2f6fb 0%, #e6eaf2 90%, #f4eef5 100%);
	background-attachment: fixed;
}

a {
	color: var(--color-2);
	font-style: italic;
	cursor: pointer;
	font-weight: bold;
}

li {
	padding-bottom: 20px;
}

section {
	display: flex;
	flex-direction: column;
}

p, li {
	text-align: justify;
}

/** NAVIGATION ***************************************************************/
nav {
	display: flex;
	width: 100%;
	margin: 0;
	align-items: center;
	justify-content: start;
	height: 100px;
	background-color: #ffffff;
}

nav a {
	text-decoration: none;
}

/* Logo */
nav > a:first-of-type > img {
	width: 200px;
	height: 200px;
}

/* Menu bar */
nav > div {
	flex-grow: 2;
	display: flex;
	align-items: center;
	justify-content: center;
}

nav ul {
	list-style: none;
	display: flex;
	justify-content: space-between;
	flex-grow: 3;
	margin-right: 20px;
}

nav ul a,
nav ul a:hover,
nav ul a:visited {
	font-style: normal;
	color: var(--color);
	font-weight: normal;
}

nav ul li {
	cursor: pointer;
	margin: 15px 0;
	padding: 0;
}

nav ul li:hover {
	text-decoration: underline solid var(--color) 1.5pt;
}

/* Social icons */
nav img {
	margin: 0;
	flex-grow: 0;
    width: 20px;
    height: 20px;
}

nav > div > div {
	margin: 2%;
}

/** FOOTER *******************************************************************/
footer {
	background-color: #f2f6fb;
	display: flex;
	width: 100%;
	font-size: 10pt;
	padding-top: 3px;
}

footer > div:first-child {
	flex-grow: 3;
	text-align: center;
}

/** CLASSES ******************************************************************/
/* Background-image blocks */
.bg-image {
	background-repeat: no-repeat;
	background-size: cover;
	flex-grow: 1;
}

/* Quotes as title */
.title-quote, 
.quote {
	font-style: italic;
}

.title-quote {
	font-size: 44pt;
	font-family: var(--cursive-font);
	margin-left: auto;
	margin-right: 10px;
	width: 60%;
}

.quote {
	margin: 100px auto;
	width: 80%;
	font-size: 16pt;
}

.title-quote > span,
.quote > span {
	font-family: var(--default-font);
	font-style: normal;
	display: block;
}

.title-quote > span {
	font-size: 18pt;
	text-align: right;
}

.quote > span {
	font-size: 11pt;
	text-align: center;
	font-style: italic;
	opacity: 0.8;
}

/* Bordered blocks */
.border {
	display: inline-block;
	background-color: white;
	padding: 15px 10px;
}

/* Title blocks */
.title {
	font-family: var(--cursive-font);
	font-style: italic;
	text-align: center;
	font-size: 44pt;
	font-weight: normal;
	margin-bottom: 30px;
}

/* Centered content blocks */
.centered-page, .tight-centered-page {
	margin-left: auto;
	margin-right: auto;
}

.centered-page {
	width: 70%;
}

.tight-centered-page {
	width: 40%;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
}

/* Text with one img */
.illustrated-text {
	display: flex;
	flex-direction: row;
	align-items: center;
}

.illustrated-text > div {
	display: inline-block;
	width: 55%;
	padding: 5%;
	vertical-align: middle;
}

.illustrated-text > img {
	max-height: 450px;
	height: 70%;
	width: 30%;
}

/* Several blocks of text arranged to be one page per viewport */
.slideshow {
	display: flex;
	flex-direction: column;
}

.slideshow > section {
	height: 100vh; 
	margin-bottom: 100px;
}

/* Several blocks of text arranged as tabs */
.tabbar {
	font-size: 11pt;
	font-weight: bold;
	margin-top: 0;
	height: 50px;
	display: flex;
	width: 100vw;
	left: 0;
	position: absolute;
	background-color: #ffffff;
	align-items: center;
	justify-content: center;
}

.tabbar > div {
	cursor: pointer;
	padding: 5px;
	margin: auto;
	color: #a598b4;
}

.tabbar > div:hover {
	opacity: 1.0;
	color: #7d7288;
}

.tabbar #selected {
	color: var(--color);
}

/* Step-by-step is a succession of 
	blocks aligned to represent various steps 
*/
.step-by-step {
	display: flex; 
	gap: 20px;
}

.step-by-step > div {
	flex: 1 1 0;
	width: 0; 
	background-color:#ffffff; 
	padding: 20px; 
	padding-top: 0px;
}

/* Side by side represents two blocks side by side */
.side-by-side {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: row;
	margin: 5%;
	text-align: justify;
	width: 80%;
}

.side-by-side > *:first-child > * {
	max-width: 700px;
	max-height: 400px;
}

/* Wrap represents an alignment of several blocks which
   should wrap multi-line if their width is higher than 
   the vw */
.wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
}

/* Icons will represent any block that should be forced 
   on a specific (small) size */
.icon {
	width: 20px;
	height: 20px;
}

/* Render information into a dedicated box with price 
   informations and other elements */
.pricing-box {
	background-color: white;
	margin: 10px;
	padding: 20px;
	display: inline-block;
	text-align: center;
}

.pricing-box > ul {
	list-style-type: none;
	padding-left: 0;
}

.pricing-box > h3 {
	font-family: var(--cursive-font);
	font-size: 35pt;
	font-weight: normal;
	margin-bottom: 10px;
	padding: 0;
	margin: 0;
}

.pricing-box > ul h3 {
	font-size: 35pt;
	display: block;
	text-align: center;
	font-weight: normal;
	margin: 0;
}

.pricing-box > ul div {
	font-style: italic;
	opacity: 0.5;
	text-align: center;
	margin-top: 0;
	margin-bottom: 20px;
}

.pricing-box > a {
	display: inline-block;
	font-weight: normal;
	text-align: center;
	color: #ffffff !important;
	font-style: normal;
	background-color: var(--color);
	padding: 7px;
	border-radius: 3px;
	text-decoration: none;
}

.pricing-box li {
	display: flex;
	justify-content: start;
	align-items: center;
}

.pricing-box li:first-child {
	display: block;
}

.pricing-box li > img {
	margin-right: 10px;
}

.important {
	font-size: 16pt; 
	font-weight: bold;
}

.important:first-of-type {
	margin-top: 5%; 
}

.important:last-of-type {
	margin-bottom: 5%;
}

.note {
	font-size: 10pt;
	font-style: italic;
}

.handwriting {
	font-family: var(--cursive-font);
	font-size: 26pt;
	font-style: italic;
}

.blog-summary {
	margin: 50px;
	background-color: white;
}

.blog-summary > img {
	width: 100%;
	height: 200px;
	object-fit: cover;
}
.blog-summary > div {
	padding: 10px;
	text-align: justify;
}

.blog-summary h2 {
	margin-bottom: 5px;
}

.blog-summary span {
	opacity: 0.7;
	font-size: 10pt;
	font-style: italic; 
}

.blog-summary a {
	width: 100%;
	text-decoration: none;
	color: var(--color);
	font-style: italic;
	font-weight: bold;
	display: flex;
	justify-content: right;
	align-items: center;
}

.blog-summary a > img {
	height: 1em;
	width: 1em;
	margin-left: 10px;
}

.post > div:first-of-type > img {
	margin-top: 30px;
	height: 350px;
	width: 100%;
	object-fit: cover;
}

.post > div:first-of-type > h1 {
	font-family: "Sacramento", cursive;
	font-size: 50pt;
	font-weight: normal;
	text-align: center;
}

.post > div:first-of-type > span {
	opacity: 0.7;
	display: block;
	width: 100%;
	font-style: italic;
	font-size: 11pt;
	text-align: center; 
}

.post > div:nth-of-type(2) {
	margin: 0px 50px;
}

.post > div:nth-of-type(2) h2 {
	margin-top: 70px;
}

.post > div:last-of-type {
	height: 100px;
	text-align: center;
	font-size: 14pt;
	font-weight: bold;
	font-style: italic;
	margin: 50px 0;
	border-top: solid thin #dddddd;
	padding-top: 10px;
}