@import url(reset.css);
/*///////////////////////////////////*/
/*// SUTRUCTURE //////////////////*/

/* activation typographie */
@import url('https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,100..900;1,100..900&display=swap');

/* font family */
body{
	font-family: "Public Sans", sans-serif;
	background: white;
	margin: 0;
	cursor: none;
}

.page{
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	padding: 30px;
	/* padding-bottom: 0; */
}

/* font size */
:root{
	--size-XXXL: 95px;
	--size-XXL: 39px;
	--size-XL: 25px;
	--size-L: 20px;
	--size-M: 16px;
	--size-S: 13px;
}

p{ font-size: var(--size-M); font-weight: 400;}  /* Text courant */
h1{font-size: var(--size-XL); font-weight: 450;} /* Logo */
h2{font-size: var(--size-XL); font-weight: 500;} /* Titre des projects */
h3{font-size: var(--size-L); font-weight: 600;} /* Text overlay */

/* couleur */
:root{
	--couleur-principale: #43fc15;
}

/*///////////////////////////////////*/
/*// GRAPHISME //////////////////*/

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

/*///////////////////////////////////*/
/*// CURSEUR //////////////////*/

.cursor-dot {
	width: 14px;
	height: 14px;
	background: var(--couleur-principale);
	border-radius: 50%;
	position: fixed;
	top: 0;
	left: 0;
	pointer-events: none;
	z-index: 9999;
	transform: translate(-50%, -50%);

	transition:
	width .25s ease,
	height .25s ease,
	background-color .25s ease;
}

.cursor-dot.hover {
	width: 20px;
	height: 20px;
	background: black;
}

/*///////////////////////////////////*/
/*// NAVIGATION //////////////////*/
header{
	display:grid;
	grid-template-columns:1fr auto 1fr;
	align-items:start;
	width:100%;
	margin-bottom:40px;
	position:relative;
	z-index:1001;

}

header > *{
	position:relative;
	z-index:1002;
}

/* INFOS AU CENTRE */
.infos{
	display:flex;
	flex-direction:column;
	align-items:center;
	text-align:center;
	gap:4px;
	font-size:var(--size-S);
}

.logo a{
	color:inherit;
	text-decoration:none;
}
.logo,
.infos{
	transition:.3s ease;
}

.logo a {
	transition: color .2s ease;
}

.logo a:hover,
.logo a:active {
	color: var(--couleur-principale);
}

/* BURGER MENU */
header.active .logo,
header.active .infos{
	color:white;
}

/* burger normal */
.burger{
	justify-self:end;
	appearance:none;
	background:none;
	border:none;
	cursor:pointer;
	display:flex;
	flex-direction:column;
	gap:7px;
}

/* les lignes */
.burger span{
	width:30px;
	height:2px;
	background:black;
	transition:.35s ease;
}

.burger:hover span:nth-child(1){
	transform:rotate(45deg) translate(6px,6px);
}

.burger:hover span:nth-child(2){
	opacity:0;
}

.burger:hover span:nth-child(3){
	transform:rotate(-45deg) translate(6px,-6px);
}

.burger span{
	transform-origin:center;
	transition:
	transform 0.35s ease,
	opacity 0.2s ease;
}

/* overlay noir caché */
.overlay{
	position:fixed;
	top:0;
	left:0;
	width:100vw;
	height:100vh;
	background:black;
	display:flex;
	justify-content:center;
	align-items:center;
	opacity:0;
	visibility:hidden;
	transition:.4s ease;
	z-index:999;
}

/* menu texte */
.overlay nav{
	display:flex;
	flex-direction:column;
	gap:25px;
	text-align:center;
}

.overlay a{
	color:white;
	text-decoration:none;
	font-size:var(--size-XXXL);
	font-weight:600;
}

.overlay a{
	transition: color .2s ease;
}

.overlay a:hover,
.overlay a:active {
	color: var(--couleur-principale);
}

/* survol → ouvrir menu */
.overlay.active{
	opacity:1;
	visibility:visible;
}

/* burger → croix blanche */
.burger.active span{
	background:white;
}

.burger.active span:nth-child(1){
	transform:rotate(45deg) translate(6px,6px);
}

.burger.active span:nth-child(2){
	opacity:0;
}

.burger.active span:nth-child(3){
	transform:rotate(-45deg) translate(6px,-6px);
}

/*///////////////////////////////////*/
/*// HOME PAGE //////////////////*/
/* slider project */

.slider{
	padding: 0 !important;
	background: black;
	overflow: hidden;
}

.myslider {
	height: 100%;
}

.slider img {
    width: auto;
    display: block;
	margin: 0 auto;
	position: relative;
	top: 0;
}

.slick-slide img {
	width: 100%;
    height: calc(100vh - 100px);
	object-fit: contain;
	object-position: center;
}

.arrow{
	position:absolute;
	top:50%;
	transform:translateY(-50%);
	background:none;
	border:none;
	font-size:60px;
	cursor:pointer;
	z-index:10;
}

button.slick-prev.slick-arrow {
	background: transparent !important;
	border: none !important;
	color: transparent;
}

button.slick-prev.slick-arrow:after {
	content: "←";
	display: block;
	color: white !important;
	font-size: 32px;
	font-weight: 250;
	width: 40px;
	height: 40px;
	top: calc(10% - 20px);
	left: 30px;
	position: absolute;
	z-index: 1;
}

button.slick-next.slick-arrow {
	background: transparent !important;
	border: none !important;
	color: transparent;
}

button.slick-next.slick-arrow:after {
	content: "→";
	display: block;
	color: white !important;
	font-size: 32px;
	font-weight: 250;
	width: 40px;
	height: 40px;
	top: calc(10% - 20px);
	right: 30px;
	position: absolute;
	z-index: 1;
}

button.slick-prev.slick-arrow,
button.slick-next.slick-arrow {
	background: transparent !important;
	border: none !important;
	color: transparent;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.slider:hover button.slick-prev.slick-arrow,
.slider:hover button.slick-next.slick-arrow {
	opacity: 1;
}

/*///////////////////////////////////*/
/*// WORK PAGE //////////////////*/
/* grille project */
#portfolio{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:20px;
}

/* cadre de chaque projet */
.project{
	position:relative;
	overflow:hidden;
	aspect-ratio:4 / 3;
}

/* lien = toute la surface du projet */
.project a{
	display:block;
	width:100%;
	height:100%;
}

/* images */
.project img{
	width:100%;
	height:100%;
	display:block;
	object-fit:cover;
}

/* zoom agenda */
.agenda-image{
	object-position:center;
	transform:scale(1.15);
}

/* pages par project */
h2{
	font-size: var(--size-XL);
	font-weight: 500;
}

.project{
	position: relative;
	overflow: hidden;
}

.overlay-project{
	position:absolute;
	inset:0;
	background:var(--couleur-principale);
	opacity:0;
	transition:.35s ease;
	padding:20px;
	display:flex;
	flex-direction: column; /* empile le titre et le texte l'un sous l'autre */
	align-items:flex-start;
}

.overlay-project h3{
	color:black;
	font-size: var(--size-XL); /* titre projet */
	font-weight:500;
	margin-bottom: 8px; /* mini description */
}

.overlay-project p{
	color:black;
	font-size: var(--size-L);
	font-weight: 400;
}

.project:hover .overlay-project{
	opacity:1;
}

/*///////////////////////////////////*/
/*// PAGE PROJETS //////////////////*/
.project-title h2{
	font-size: var(--size-XXL);
	margin-bottom: 5px;
}

.project-title p{
	font-size: var(--size-XL);
	line-height: 1.3;
}

.project-description p{
	font-size: var(--size-L);
	line-height: 1.6;
	max-width: 650px;
	margin-bottom: 1.5rem; /* espace entre chaque paragraphe */
}

.project-description p:last-child{
	margin-bottom: 0; /* évite un espace en trop si un paragraphe est le dernier élément visible */
}

.more-text{
	display: none;
}

.more-text.open{
	display: block;
}

.read-more{
	font-size: var(--size-L);
	text-decoration: none;
	color: inherit;
	background: none;
	border: none;
	cursor: pointer;
	transition: color .2s ease, opacity .2s ease;
	margin-top: 1rem;
	display: block;
}

.read-more:hover,
.read-more.open {
	color: #888888;
}

.read-more.open:hover {
	color: black;
}

.project-intro {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 80px;
    row-gap: 50px;
    margin: 100px 0;
}

/* IMAGE UNIQUE */
.project-image {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.project-image img {
    grid-column: 1;
    width: 100%;
    height: auto;
    display: block;
}

/* DEUX IMAGES */
.project-two {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.project-two img {
    width: 100%;
    height: 500px;
    object-fit: cover;
    object-position: center;
    display: block;
}

/*///////////////////////////////////*/
/*// ABOUT PAGE //////////////////*/
.about{
	flex: 1;
	display: grid;
	grid-template-columns: 170px 700px;
	column-gap: 70px;
	margin-top: 70px;
	align-items: start;
}

.about h2{
	font-size: var(--size-XXL);
	font-weight: 500;
}

.about p{
	max-width: 700px;
	font-size: var(--size-XL);
	line-height: 1.45;
	margin: 0;
}

/*///////////////////////////////////*/
/*// ABOUT PAGE //////////////////*/
.contact h3{
	font-size: var(--size-XXXL);
	margin-top: 5%;
}

.mail a{
	font-size: var(--size-XXL);
	text-decoration: underline;;
	color:black;
	display: block;
	margin-top: 30px;
}


/*///////////////////////////////////*/
/*// FOOTER //////////////////*/

#contact{
	margin-top: 200px;
	width: calc(100% + 60px);
	margin-inline: -30px;
	padding: 30px;
	padding-bottom: 0;
}

.footer-inner{
	display:grid;
	grid-template-columns: repeat(2, 1fr);
	column-gap:30px;
	align-items:end;
}

.footer-name{
	margin: 0;
	font-size: var(--size-M);
	color: black;
}

.footer-right{
	display:flex;
	flex-direction:column;
	align-items:flex-start;
	gap:40px;
}

.footer-right h3{
	margin:0;
	font-size:var(--size-M);
	font-weight:400;
}

.footer-links{
	display:flex;
	gap:70px;
}

.footer-links a{
	text-decoration:none;
	color:black;
	font-size:var(--size-L);
	font-weight:500;
}