/* ----------------------------- */
/* RESET
/* ----------------------------- */

@charset "UTF-8";
html {
  /* set base font-size to equiv "10px", which is adapted to rem unit */
  font-size: 62.5%;
  /* IE9-IE11 math fixing. See http://bit.ly/1g4X0bX */
  font-size: calc(1em * 0.625);
}
html {
  box-sizing: border-box;
}
*,
*:before,
*:after {
  box-sizing: inherit;
}
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
  display: block;
}
ol, ul {
  list-style: none;
}
blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
img{
  max-width: 100%;
  height: auto;
}


/* ----------------------------- */
/* ELEMENTS GENERIQUES
/* ----------------------------- */

html{
	scroll-behavior: smooth;
}

hr{
  display: block;
  clear: both;
  height: 2px;
  margin: 0;
  padding: 0;
  border: 0;
  color: #fff;
  background-color: #fff;
}

hr.clear{
  height: 0;
  margin: 0;
}

sub,
sup{
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}

sub{
  bottom: -.25em;
}

sup{
  top: -.5em;
}

h1, h2, h3, h4, h5, h6{
  font-size: inherit;
  font-weight: normal;
}


/* ----------------------------- */
/* TYPOGRAPHIE
/* ----------------------------- */

@font-face {
    font-family: 'Infini';
    src: url('../fonts/Infini-Regular.woff2') format('woff2'),
        url('../fonts/Infini-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Infini';
    src: url('../fonts/Infini-Italic.woff2') format('woff2'),
        url('../fonts/Infini-Italic.woff') format('woff');
    font-weight: normal;
    font-style: italic;
}


body{
  font-family: 'Infini', Georgia, serif;
  font-weight: normal;
  font-style: normal;
  color: #000;
  background-color: #f2f2f2;
  line-height: 1.2;
  margin: 0;
  font-variant-numeric: lining-nums;
  /*-webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;*/
}

.logo,
.t38U{
	font-size: 3.8rem;
	text-transform: uppercase;
}

body,
.t30{
	font-size: 3rem;
}

section.oeuvres,
.t14{
	font-size: 1.4rem;
}

.submenu,
.t12U{
	font-size: 1.2rem;
	text-transform: uppercase;
}

.logo{
	transition: letter-spacing 0.3s ease;
}
.logo:hover{
	letter-spacing: -0.025em;
}


/* Mobile */
@media (max-width: 767px){
	.logo,
	.t32U{
		font-size: 3.2rem;
	}

	body,
	.t26{
		font-size: 2.6rem;
	}

	section.oeuvres,
	.t24{
		font-size: 2rem;
	}

}


/* ----------------------------- */
/* VALEURS DE ZOOM
/* ----------------------------- */

@media (min-width: 1920px){
  html {
    font-size: 80%;
    font-size: calc(1em * 0.80);
  }
}
@media (min-width: 1600px) and (max-width: 1919px){
  html {
    font-size: 70%;
    font-size: calc(1em * 0.70);
  }
}
@media (min-width: 1200px) and (max-width: 1599px){
  html {
    font-size: 62.5%;
    font-size: calc(1em * 0.625);
  }
}
@media (min-width: 1000px) and (max-width: 1199px){
  html {
    font-size: 57%;
    font-size: calc(1em * 0.57);
  }
}

@media (min-width: 900px) and (max-width: 999px){
  html {
    font-size: 52%;
    font-size: calc(1em * 0.52);
  }
}
@media (min-width: 768px) and (max-width: 899px){
  html {
    font-size: 50%;
    font-size: calc(1em * 0.50);
  }
}
@media (max-width: 767px){
  html {
    font-size: 52%;
    font-size: calc(1em * 0.52);
  }
}

/* ----------------------------- */
/* LIENS
/* ----------------------------- */

a{
	color: #000;
	text-decoration: none;
}

*.is-active a,
a:active,
a:hover{
	box-shadow: inset 0 -0.2em #f2f2f2, inset 0 -0.28em #000;
}

.logo a{
	box-shadow: none !important;
}

/* Mobile */
@media (max-width: 767px){
	.header *.is-active a,
	.header a:active,
	.header a:hover,
	.footer *.is-active a,
	.footer a:active,
	.footer a:hover{
		box-shadow: inset 0 -0.2em #fff, inset 0 -0.28em #000;
	}
}


/* ----------------------------- */
/* ZOOM LIGHTBOX
/* ----------------------------- */

img[data-action='zoom'] {
	cursor: pointer;
}
.zoom-img,
.zoom-img-wrap {
	position: relative;
	z-index: 666;
	-webkit-transition: all 300ms;
	transition: all 300ms;
}
img.zoom-img {
	cursor: pointer;
	filter: none !important;
}
.zoom-overlay {
	z-index: 100;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #f2f2f2;
	pointer-events: none;
	filter: 'alpha(opacity=0)';
	opacity: 0;
	-webkit-transition: opacity 0.3s;
	transition: opacity 0.3s;
}
.zoom-overlay-open .zoom-overlay {
	filter: 'alpha(opacity=100)';
	opacity: 1;
}


/* ----------------------------- */
/* DESIGN GLOBAL
/* ----------------------------- */

html.js body{
	opacity: 0;
	transition: opacity 1s ease;
}

html.js body.visible{
	opacity: 1;
}

body{
	overflow-y: scroll;
}

.logo,
.menu,
.nav-contact,
.nav-actu{
	position: fixed;
}

.nav-actu{
	text-align: right;
}

.submenu{
	line-height: 1.4;
}

section{
	width: 35%;
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}

section.oeuvres{
	padding-top: 3.7rem;
}

section.textes{
	width: 45%;
}

section:last-of-type{
	margin-bottom: 3rem;
}


/* Desktop */
@media (min-width: 768px){
	.toggle-menu{
		display: none;
	}
	.logo{
		top: 3rem;
		left: 3rem;
	}
	.menu{
		top: 3rem;
		right: 3rem;
		text-align: right;
	}
	.submenu{
		top: 19rem;
		right: 3rem;
		text-align: right;
	}
	.submenu{
		opacity: 0;
		visibility: hidden;
		position: fixed;
		transition: opacity 0.5s ease, visibility 0s 0.5s;
	}
	.submenu.is-visible{
		opacity: 1;
		visibility: visible;
		transition: opacity 0.5s ease, visibility 0s;
	}
	.nav-contact{
		bottom: 3rem;
		left: 3rem;
	}
	.nav-actu{
		bottom: 3rem;
		right: 3rem;
	}
	.texte{
		padding-top: 19rem;
	}
	.page-corps{
		padding-top: 11rem;
	}
	.texte > *{
		position: relative;
		top: -1rem;
	}
}

/* Medium */
@media (min-width: 768px) and (max-width: 850px){
	body{
		font-size: 2.4rem;
	}
	section.textes{
		width: 35%;
	}
}

/* Mobile */
@media (max-width: 767px){

	.header{
		position: fixed;
	    height: 7rem;
	    width: 100%;
	    background-color: #f2f2f2;
	    transition: all 0.5s ease;
	    z-index: 10;
	}
	.header.is-open{
		background-color: #fff;
		height: 100%;
	}
	.logo{
		top: 1.5rem;
		left: 2rem;
	}
	.menu{
		top: 7rem;
		left: 2rem;
	}
	.submenu{
		top: 19rem;
		left: 2rem;
	}
	.submenu{
		opacity: 0;
		visibility: hidden;
		position: fixed;
		transition: opacity 0.5s ease, visibility 0s 0.5s;
	}
	.header.is-open .submenu.is-visible{
		opacity: 1;
		visibility: visible;
		transition: opacity 0.5s ease 0.5s, visibility 0s;
	}
	.nav-contact{
		bottom: 2rem;
		left: 2rem;
	}
	.nav-actu{
		bottom: 2rem;
		right: 2rem;
	}
	section{
		width: 100%;
		padding-left: 2rem;
		padding-right: 2rem;
	}
	section + section{
		margin-top: 10rem;
	}
	section.oeuvres{
		padding-top: 7rem;
	}
	section.textes{
		width: 100%;
	}
	section.page-corps,
	.texte{
		padding-top: 7rem;
	}
	.texte + .texte{
		margin-top: 10rem;
	}

	section:last-of-type{
		margin-bottom: 2rem;
	}

	.toggle-menu{
		position: fixed;
		top: 2rem;
		right: 2rem;
		width: 3.8rem;
		height: 3.8rem;
		background-image: url(../images/icon-menu.svg);
		background-repeat: no-repeat;
		z-index: 11;
	}
	.toggle-menu.is-active{
		background-image: url(../images/icon-close.svg);
		background-size: 2.8rem;
		background-position: top center;
	}
	.menu{
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.5s ease, visibility 0s 0.5s;
	}
	.header.is-open .menu{
		opacity: 1;
		visibility: visible;
		transition: opacity 0.5s ease 0.5s, visibility 0s;
	}
	.footer > *{
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.3s ease, visibility 0s 0.3s;
		z-index: 11;
	}
	.footer > *.is-visible{
		opacity: 1;
		visibility: visible;
		transition: opacity 0.5s ease 0.5s, visibility 0s;
	}
}


/* ----------------------------- */
/* CONTENUS
/* ----------------------------- */

section img{
	display: block;
	width: 100%;
}

.oeuvre + .oeuvre{
	padding-top: 6rem;
}

.oeuvre-titre{
	margin-top: 0.5em;
}

.texte-titre{
	font-style: italic;
}

.texte-titre + .texte-corps,
.texte-auteur + .texte-corps{
	margin-top: 1em;
}

.texte p + p,
.page-corps p + p{
	margin-top: 1em;
}
