menu, nav, section, summary {
	display: block
}

audio, canvas, progress, video {
	display: inline-block
}

audio:not([controls]) {
	display: none;
	height: 0
}

[hidden] {
	display: none
}

*, ::after, ::before {
	background-repeat: no-repeat;
	box-sizing: inherit
}

::after, ::before {
	text-decoration: inherit;
	vertical-align: inherit
}

html {
	box-sizing: border-box;
	cursor: default;
	font-family: 'venti', sans-serif;
	line-height: 1.5;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%
}

body {
	margin: 0
}

h1 {
	font-size: 2em;
	margin: .67em 0
}

code, kbd, pre, samp {
	font-family: monospace, monospace;
	font-size: 1em
}

hr {
	height: 0;
	overflow: visible
}

nav ol, nav ul {
	list-style: none
}

abbr[title] {
	border-bottom: 1px dotted;
	text-decoration: none
}

b, strong {
	font-weight: inherit
}

b, strong {
	font-weight: bolder
}

dfn {
	font-style: italic
}

mark {
	background-color: #ff0;
	color: #000
}

progress {
	vertical-align: baseline
}

small {
	font-size: 83.3333%
}

sub, sup {
	font-size: 83.3333%;
	line-height: 0;
	position: relative;
	vertical-align: baseline
}

sub {
	bottom: -.25em
}

sup {
	top: -.5em
}

::-moz-selection {
	background-color: #b3d4fc;
	color: #000;
	text-shadow: none
}

::selection {
	background-color: #b3d4fc;
	color: #000;
	text-shadow: none
}

audio, canvas, iframe, img, svg, video {
	vertical-align: middle
}

img {
	border-style: none
}

svg {
	fill: currentColor
}

svg:not(:root) {
	overflow: hidden
}

a {
	background-color: transparent;
	-webkit-text-decoration-skip: objects
}

a:hover {
	outline-width: 0
}

table {
	border-collapse: collapse;
	border-spacing: 0
}

button, input, select, textarea {
	background-color: transparent;
	border-style: none;
	color: inherit;
	font-size: 1em;
	margin: 0
}

button, input {
	overflow: visible
}

button, select {
	text-transform: none
}

[type=reset], [type=submit] {
	-webkit-appearance: button
}

::-moz-focus-inner {
	border-style: none;
	padding: 0
}

::-moz-focusring {
	outline: 1px dotted ButtonText
}

fieldset {
	border: 1px solid silver;
	margin: 0 2px;
	padding: .35em .625em .75em
}

legend {
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal
}

textarea {
	overflow: auto;
	resize: vertical
}

[type=checkbox], [type=radio] {
	padding: 0
}

::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
	height: auto
}

[type=search] {
	-webkit-appearance: textfield;
	outline-offset: -2px
}

::-webkit-search-cancel-button, ::-webkit-search-decoration {
	-webkit-appearance: none
}

::-webkit-input-placeholder {
	color: inherit;
	opacity: .54
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit
}

[aria-busy=true] {
	cursor: progress
}

[aria-controls] {
	cursor: pointer
}

[aria-disabled] {
	cursor: default
}

[tabindex], a, area, button, input, label, select, textarea {
	touch-action: manipulation
}

[hidden][aria-hidden=false] {
	clip: rect(0, 0, 0, 0);
	display: inherit;
	position: absolute
}

[hidden][aria-hidden=false]:focus {
	clip: auto
}

::root {
	background-color: #fff
}

::-webkit-scrollbar {
	display: none !important;
	background: 0 0 !important;
	width: 0 !important
}

header.header {
	z-index: 99
}

.row, .wrapper {
	*zoom: 1
}

.row:after, .row:before, .wrapper:after, .wrapper:before {
	content: " ";
	display: table
}

.row:after, .wrapper:after {
	clear: both
}

*, :after, :before {
	margin: 0;
	padding: 0;
	box-sizing: border-box
}

img {
	width: auto;
	max-width: 100%;
	height: auto
}

.wrapper {
	width: 100%;
	position: relative;
	margin: 0 auto
}

.row, .wrapper {
	*zoom: 1
}

.row:after, .row:before, .wrapper:after, .wrapper:before {
	content: " ";
	display: table
}

.row:after, .wrapper:after {
	clear: both
}

*, :after, :before {
	margin: 0;
	padding: 0;
	box-sizing: border-box
}



@font-face {
	font-family: 'venti';
	src: url(../fonts/venti-subset.woff2) format("woff2");
	font-weight: normal;
	font-style: normal;
	-webkit-font-smoothing: antialiased !important;
	-moz-osx-font-smoothing: grayscale
}

@font-face {
	font-family: 'mmw';
	src: url(../fonts/mmw-subset.woff2) format("woff2");
	font-weight: normal;
	font-style: normal;
	-webkit-font-smoothing: antialiased !important;
	-moz-osx-font-smoothing: grayscale
}

.container .description a, .container .tarif .row .question, .font, .signature svg text, .signature svg textPath, blockquote, button, em, figcaption, footer h3 a, h1, h2, h3, h4, h5, h6, i, li, p, span, strong {
	font-weight: 100 !important;
	-webkit-font-smoothing: antialiased !important;
	-moz-osx-font-smoothing: grayscale !important;
	text-rendering: optimizeSpeed !important
}

strong {
	display: inline-block
}

h1 {
	font-size: 2rem;
	line-height: 3rem
}

@media only screen and (max-width:1024px) {
	h1 {
		font-size: 2rem;
		line-height: 3rem
	}
}

@media only screen and (max-width:568px) {
	h1 {
		font-size: 1.25rem;
		line-height: 1.75rem
	}
}

h2 {
	font-size: 2.4rem
}

@media only screen and (max-width:1024px) {
	h2 {
		font-size: 1.75rem
	}
}

@media only screen and (max-width:568px) {
	h2 {
		font-size: 1.25rem
	}
}

h3 {
	font-size: 2rem
}

@media only screen and (max-width:1024px) {
	h3 {
		font-size: 1.75rem
	}
}

@media only screen and (max-width:568px) {
	h3 {
		font-size: 1.25rem
	}
}

h5 {
	font-size: 1.5rem
}

h5 b {
	font-style: italic;
	text-decoration: line-through
}

h6 {
	font-size: 1.1rem
}

h6 b {
	font-style: italic;
	text-decoration: line-through
}

.isAnimated {
	transition: .75s .25s cubic-bezier(.77, 0, .175, 1) opacity
}

.visible {
	opacity: 0 !important
}

body, html {
	margin: 0;
	padding: 0;
	position: relative;
	font-family: 'venti', sans-serif;
	color: #303030
}

html {
	font-size: calc(12px + (20 - 12)*(100vw - 320px)/ (3840 - 320));
	background-color: #f6fdff;
	transition: .75s cubic-bezier(.77, 0, .175, 1) background-color;
	overflow-x: hidden
}

html.noscroll {
	overflow: hidden
}

html.black {
	background-color: #101010
}

.main {
	position: relative;
	width: 100vw;
	height: 100%;
	height: auto
}

.js-home {
	margin: 0;
	padding: 0
}

.logo--fixed {
	position: fixed;
	z-index: 9999;
	top: 44px;
	right: 52px;
	width: 28px
}

@media only screen and (max-width:1024px) {
	.logo--fixed {
		top: 10vh;
		right: 10vw
	}
}

@media only screen and (max-width:568px) {
	.logo--fixed {
		right: 50vw;
		transform: translateX(50%);
		position: absolute
	}
}

header {
	width: 100vw;
	height: 100vh;
	position: relative;
	overflow: inherit;
	z-index: 99
}

@media only screen and (max-width:768px) {
	header {
		height: auto;
	}
}

header figure {
	position: absolute;
	width: 50vw;
	top: 45vh;
	left: 0;
	height: 55vh;
	transition: 1.5s .25s cubic-bezier(.77, 0, .175, 1) opacity;
	overflow: hidden
}

header figure img {
	height: 100%;
	width: 100%;
	object-fit: cover;
}

header figure:after {
	content: '';
	position: absolute;
	z-index: 0;
	background-color: #f6fdff;
	width: 100%;
	height: 100%;
	top: 100%;
	left: 0;
	transition: 1.5s .25s cubic-bezier(.77, 0, .175, 1) top;
	will-change: top, transition
}

header figure.visible {
	opacity: 1 !important
}

header figure.visible:after {
	top: 0
}

header figure figcaption {
	display: none
}

@media only screen and (max-width:868px) {
	header figure {
		width: 100vw;
		top: 0vh;
		max-height: 400px;
		overflow: hidden;
		position: relative
	}
}

@media only screen and (max-width:568px) {
	header figure {
		height: 300px
	}
}

header .intro {
	max-width: 325px;
	position: absolute;
	top: 10vh;
	left: 10vw;
	opacity: 1;
	color: rgba(48, 48, 48, .5);
	transition: .25s cubic-bezier(.77, 0, .175, 1) opacity
}

header .intro:first-line {
	color: #303030
}

@media only screen and (max-width:568px) {
	header .intro {
		display: none
	}
}

header h1 {
	z-index: 10;
	width: 350px;
	transition: .5s .25s cubic-bezier(.77, 0, .175, 1) opacity;
	margin-bottom: 25vh;
}

@media only screen and (max-width:868px) {
	header h1 {
		width: 250px;
		margin-bottom: 5vh;
		margin-top: 15vh;
	}
}

@media only screen and (max-width:568px) {
	header h1 {
		width: 200px
	}
}

header .activity {
	max-width: 310px;
	transition: 1s .25s cubic-bezier(.77, 0, .175, 1) opacity;
	margin-bottom: 1vh;
}

@media only screen and (max-width:1260px) {
	header .activity {
		top: 65vh
	}
}

@media only screen and (max-width:868px) {
	header .activity {
		font-size: 18px;
		max-width: 310px
	}
}

@media only screen and (max-width:568px) {
	header .activity {
		text-align: center;
		width: 310px
	}
}

header .adress {
	max-width: 200px;
	font-size: 1rem;
	color: #3978d9;
	transition: 1.5s .25s cubic-bezier(.77, 0, .175, 1) all
}

header .adress:hover {
	color: #303030
}

@media only screen and (max-width:868px) {
	header .adress {
		font-size: 12px;
		max-width: 250px;
		margin-bottom: 10vh;
	}
}

@media only screen and (max-width:568px) {
	header .adress {
		text-align: center
	}
}

header .right {
	position: absolute;
	top: 40vh;
	left: 60vw;
}

@media only screen and (max-width:868px) {
	header .right {
		position: relative;
		top: inherit;
		left: inherit;
		width: 100%;
		padding: 32px;
		display: flex;
		justify-content: center;
		flex-flow: column wrap;
		align-items: center;
		align-content: center;
		text-align: center;
	}
}


a {
	text-decoration: none;
	color: #303030;
	cursor: pointer
}

.description-follow {
	position: absolute;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	transition: .25s cubic-bezier(.77, 0, .175, 1) opacity;
	z-index: 2000;
	font-size: 1.5rem;
	max-width: 300px;
	color: #000;
	text-shadow: 0 0 2px rgba(0, 0, 0, .2)
}

.description-follow.hidden {
	opacity: 0
}

.container {
	z-index: 100;
	position: relative;
	width: 100vw
}

.container .description {
	font-size: 2.75rem;
	max-width: 680px;
	margin: 10vh auto 0 auto;
}

@media only screen and (max-width:1260px) {
	.container .description {
		margin-left: 0;
		margin: 200px auto 0 auto
	}
}

@media only screen and (max-width:768px) {
	.container .description {
		margin-top: 40px;
		font-size: 27px;
		max-width: 500px
	}

	.container .description br {
		line-height: 60px
	}
}

@media only screen and (max-width:568px) {
	.container .description {
		max-width: 375px;
		padding: 0 25px;
		font-size: 22px
	}

	.container .description br {
		line-height: 50px
	}
}

.container .description p {
	display: inline
}

.container .description a {
	display: inline-block;
	font-family: 'mmw', sans-serif;
	color: #3978d9;
	position: relative
}

.container .description a:after {
	content: '';
	position: absolute;
	display: inline-block;
	bottom: 10px;
	left: 0;
	width: 0;
	height: 1px;
	transition: .25s cubic-bezier(.77, 0, .175, 1) all;
	background-color: #3978d9
}

.container .description a:hover:after {
	width: 100%
}

.container .description .readmore {
	opacity: .8;
	transition: .4s ease all;
	color: #3978d9;
	cursor: pointer;
	position: relative;
	display: inline-block;
	font-family: 'mmw', sans-serif;
	margin-top: 24px
}

.container .description .readmore:after {
	content: '';
	position: absolute;
	display: inline-block;
	bottom: 10px;
	left: 0;
	width: 0;
	height: 1px;
	transition: .25s cubic-bezier(.77, 0, .175, 1) all;
	background-color: #3978d9
}

.container .description .readmore:hover {
	opacity: 1
}

.container .description .readmore:hover:after {
	width: 100%
}

.container .description .more {
	padding-top: 40px;
	overflow: hidden;
	transition: .5s linear height;
	position: relative
}

.container .description .more:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 150px;
	opacity: 0;
	background: linear-gradient(0deg, #f6fdff, rgba(246, 253, 255, 0))
}

.container .description .more.reduce {
	height: 300px !important
}

.container .description .more.reduce:after {
	opacity: 1
}

.container .description .more.out {
	transition: 0s ease all !important;
	opacity: 0
}

.container .description .more p {
	font-size: 2rem
}

.container .description .more p b, .container .description .more p em, .container .description .more p strong {
	color: #3978d9;
	display: inline;
	line-height: 0
}

@media only screen and (max-width:768px) {
	.container .description .more p {
		font-size: 1.75rem
	}

	.container .description .more p br {
		line-height: 60px
	}
}

@media only screen and (max-width:568px) {
	.container .description .more p {
		font-size: 1.5rem
	}

	.container .description .more p br {
		line-height: 50px
	}
}

.container .tarif {
	border-top: 1px solid rgba(57, 120, 217, .2);
	border-bottom: 1px solid rgba(57, 120, 217, .2);
	margin-top: 128px;
	margin-bottom: 128px;
	padding: 128px 15vw
}

.container .tarif-2 {
	padding-top: 0;
	border-top: 0
}

@media only screen and (max-width:768px) {
	.container .tarif {
		margin-top: 48px;
		margin-bottom: 48px;
		padding: 48px 10vw;
		margin-left: auto;
		margin-right: auto
	}

	.container .tarif-2 {
		padding-top: 0;
		border-top: 0
	}
}

.container .tarif .row {
	display: flex;
	margin-bottom: 40px
}

.container .tarif .row.large {
	flex-flow: column wrap;
	max-width: 100%
}

.container .tarif .row.large .answer, .container .tarif .row.large .question {
	margin-top: 16px;
	width: 100% !important;
	max-width: 100% !important
}

@media only screen and (max-width:768px) {
	.container .tarif .row {
		flex-flow: column wrap
	}

	.container .tarif .row.large .answer, .container .tarif .row.large .question {
		margin-top: 0
	}
}

.container .tarif .row:last-of-type {
	margin-bottom: 0
}

.container .tarif .row .question {
	font-family: 'mmw', sans-serif;
	color: #3978d9;
	font-size: 2rem;
	width: 45%
}

@media only screen and (max-width:768px) {
	.container .tarif .row .question {
		width: 100%;
		font-size: 1.5rem
	}
}

.container .tarif .row .answer {
	font-size: 2rem;
	max-width: 45%
}

@media only screen and (max-width:768px) {
	.container .tarif .row .answer {
		max-width: 100%;
		font-size: 1.5rem
	}
}

.container .tarif .row .answer em {
	color: #3978d9;
	font-style: inherit
}

.container .tarif .row .answer span {
	font-size: 1.25rem;
	line-height: 1.75rem;
	max-width: 350px;
	display: block;
	margin-top: 20px;
	opacity: .5
}

@media only screen and (max-width:768px) {
	.container .tarif .row .answer span {
		max-width: 300px
	}
}

.container .gallery {
	width: 90vw;
	overflow: hidden;
	margin: 0 auto;
	position: relative;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between
}

@media only screen and (max-width:768px) {
	.container .gallery {
		justify-content: center
	}
}

.container .gallery a {
	width: 50%;
	position: relative;
	margin-bottom: 72px;
	display: flex;
	flex-flow: column wrap;
	overflow: hidden
}

.container .gallery a:after {
	content: '';
	position: absolute;
	z-index: 3;
	background-color: #f6fdff;
	width: 100%;
	height: 100%;
	top: 100%;
	left: 0;
	transition: 1.5s .25s cubic-bezier(.77, 0, .175, 1) top;
	will-change: top, transition
}

.container .gallery a.visible {
	opacity: 1 !important
}

.container .gallery a.visible:after {
	top: 0
}

@media only screen and (max-width:768px) {
	.container .gallery a {
		width: 90%
	}
}

.container .gallery a img {
	width: auto;
	height: auto;
	max-height: 50vh;
	max-width: 50vw;
	-o-object-fit: cover;
	object-fit: cover;
	z-index: 2;
	margin: 0 auto;
	transition: .75s cubic-bezier(.77, 0, .175, 1) opacity
}

@media only screen and (max-width:768px) {
	.container .gallery a img {
		width: 100%;
		max-height: 300px
	}
}

.container .gallery a img.spot {
	opacity: .1
}

.container .gallery a img.hover {
	opacity: .8
}

.container .gallery a:nth-of-type(even) {
	transform: translateY(50%)
}

@media only screen and (max-width:768px) {
	.container .gallery a:nth-of-type(even) {
		transform: translateY(0) translateX(25%)
	}
}

@media only screen and (max-width:768px) {
	.container .gallery a:nth-of-type(odd) {
		transform: translateY(0) translateX(-25%)
	}
}

footer {
	width: 100vw;
	padding: 170px 100px 100px 100px;
	text-align: center;
	position: relative
}

footer h3 a {
	font-family: 'mmw', sans-serif;
	color: #3978d9
}

footer .contact {
	margin-top: 8px;
	color: rgba(48, 48, 48, .5)
}

footer .contact a {
	color: #303030;
	opacity: .5;
	font-size: 1.25rem;
	transition: .25s cubic-bezier(.77, 0, .175, 1) all
}

footer .contact a:hover {
	opacity: 1;
	color: #3978d9
}

@media only screen and (max-width:768px) {
	footer .contact {
		margin-bottom: 150px
	}
}

@media only screen and (max-width:1024px) {
	.js-error h1 {
		padding: 2vw 10vw 0 10vw
	}
}

@media only screen and (max-width:768px) {
	a, button, input, label {
		cursor: pointer
	}

	.js-error h1 {
		padding: 2vw 5vw 0 5vw
	}

	.js-home #work {
		padding-top: 40vh
	}
}

@media only screen and (max-width:568px) {
	.js-home #work {
		padding-top: 47vh
	}
}

.default {
	background-color: #303030;
	color: #fff;
	height: 300px;
	display: flex;
	justify-content: center;
	align-items: center;
	border: 5px solid #fff
}

.signature {
	width: 100px;
	height: 100px;
	position: relative;
	transform: scale(.75);
	display: block
}

.signature svg {
	width: 100%;
	height: 100%;
	font-family: 'venti', sans-serif;
	text-transform: uppercase;
	display: block;
	overflow: visible;
	opacity: .4;
	font-size: 11px;
	position: relative;
	-webkit-animation: rotate 10s linear infinite;
	animation: rotate 10s linear infinite;
	transform-origin: center center
}

.signature__img {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transform-origin: center;
	width: 24px
}

@media only screen and (max-width:768px) {
	.signature {
		margin: 0 auto
	}
}

@-webkit-keyframes rotate {
	0% {
		transform: rotate(0)
	}

	100% {
		transform: rotate(-360deg)
	}
}

@keyframes rotate {
	0% {
		transform: rotate(0)
	}

	100% {
		transform: rotate(-360deg)
	}
}
