
@import url('https://fonts.googleapis.com/css2?family=Inter&display=swap');

* {
	color: #000000;
	text-decoration: none;
	font-family: "Avenir Next", "Avenir", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	padding: 0;
	margin: 0;
	line-height: 1.4;
	font-weight: thin;
}

#information {
    
    position: absolute;
    margin-left:900px;
    max-width: 250px;
  
    }


.copy {
    position: absolute;
    margin-left: 900px;
    margin-top: 370px;
    font-size: 9px;

    
    }

/* Layout 3 colonnes : marge gauche / galerie / marge droite */
.layout {
	display: grid;
	grid-template-columns: 200px 1fr 200px;
	max-width: 1300px;
	margin: 40px auto;
}

.side-left {
	padding-top: 20px;
}

.side-left a {
	font-size: 24px;
}

.side-right {
	padding-top: 20px;
}

.side-right nav a {
	display: block;
	margin-bottom: 12px;
	font-size: 18px;
}

nav1 {
	font-size: 24px;
	float: left;
}

main {
	padding: 0 20px;
	margin-top: 80px; /* marge haute commune pour le contenu de toutes les pages */
	margin-left: 150px;
	margin-right: 150px;
}

/* Pas de marge top pour la page index */
body.container main.grid {
	margin-top: 55px;
}

body.pixel-art main {
	padding: 0 10px;
	margin-top: 60px; /* marge haute pour les pages projet */
	margin-left: 150px;
	margin-right: 150px;
}


article {
	margin: 0;
}

h1 {
	font-size: 24px;
}

p {
	line-height: 1.8;
	color: #000000;
}

body.pixel-art #txtboutique {
	margin-top: 20px; /* espace réduit au-dessus du bloc texte sur pixel-art */
}

body.pixel-art .txtboutique {
	margin-bottom: 10px; /* espace réduit sous le texte */
	line-height: 1.7; /* interligne augmenté entre les éléments */
}

/* Premier titre du projet à la même taille que GABU */
.txtboutique > strong:first-child {
	font-size: 32px;
	text-transform: uppercase;
	display: inline-block;
	margin-bottom: 10px;
}

/* Tous les autres strong dans txtboutique en taille normale */
.txtboutique strong {
	font-size: inherit;
}

.landscape-section {
	margin: 0;
	margin-bottom: 7.5px; /* demi-espacement car la grille ajoute aussi du padding */
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.landscape-section figure {
	width: 100%;
	padding: 0;
	margin: 0;
	opacity: 1;
}

.landscape-section figure img {
	width: 100%;
	height: auto;
	display: block;
}

.description-toggle {
	margin-top: 10px;
	margin-bottom: 20px;
	display: block;
}

body.pixel-art .description-toggle {
	margin-top: 15px; /* écart avant description */
	margin-bottom: 25px; /* écart après description */
}

.description-header {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

/* "description" pas en gras */
.description-header .description-label {
	font-weight: normal;
}

.description-button {
	border: none;
	background: transparent;
	font-size: 16px;
	cursor: pointer;
	line-height: 1;
	padding: 0;
	font-weight: bold;
}

.description-content {
	display: none;
}

.description-content.open {
	display: block;
}


.cv1 {
    position: absolute;
    font-weight: 300;
}

.cv2 {
	margin-left: 150px;
	display: block;
}

.cv3 {
	font-weight: 300;
}

figure {
	position: relative;
}

figure div {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.7);
	opacity: 0;
	transition: .5s ease;
}

figure:hover div {
	opacity: 1;
}

figure div span {
	color: #000000;
	font-size: 20px;
	text-align: center;
	font-weight: 400;
}

figure img {
	filter: grayscale(0%);
	transition: .5s ease;
}

figure:hover img {
	filter: grayscale(0%);
	transition: .5s ease;
}

footer {
	max-width: 1300px;
	margin: 100px auto 7px auto;
	text-align: center;
	font-size: 12px;
}

#boutique {
	width: 25px;
	position: fixed;
	bottom: 74px;
	right: 14px;
}

#email {
	width: 25px;
	position: fixed;
	bottom: 44px;
	right: 14px;
	filter: grayscale(100%);
}

#instagram {
	width: 25px;
	position: fixed;
	bottom: 14px;
	right: 14px;
	filter: grayscale(100%);
}



/*###############################################CONTACT*/
form {
    padding: 0;
	margin: 130px 0 0 0;
}

::-webkit-input-placeholder {
    color: #888888;
    opacity: 1;
}

::-moz-placeholder {
    color: #888888;
    opacity: 1;
}

:-ms-input-placeholder {
    color: #888888;
    opacity: 1;
}

input:-moz-placeholder {
    color: #888888;
    opacity: 1;
}

input[type=email] {
    display: block;
	box-sizing: border-box;
	max-width: 220px;
	width: 100%;
    height: 25px;
    margin: 0 0 23px 0;
    padding: 2px 4px 2px 4px;
    border: 1px solid #999999;
    font-family: 'Inter', sans-serif;
    font-size: 9.5pt;
    font-weight: 300;
    color: #86861c;
}

    input[type=email]:focus {
        border: 1px solid #222222;
    }

input[name=_subject] {
    display: block;
    box-sizing: border-box;
	max-width: 360px;
	width: 100%;
    height: 25px;
    margin: 0 0 23px 0;
    padding: 2px 4px 2px 4px;
    border: 1px solid #999999;
    font-family: "Inter", sans-serif;
    font-size: 9.5pt;
    font-weight: 300;
    color: #86861c;
}

    input[name=_subject]:focus {
        border: 1px solid #222222;
    }

textarea[name=message] {
    display: block;
    box-sizing: border-box;
	max-width: 360px;
	width: 100%;
    height: 188px;
    resize: none;
    margin: 0 0 21px 0;
    padding: 2px 4px 2px 4px;
    border: 1px solid #999999;
    font-family: "Inter", sans-serif;
    font-size: 9.5pt;
    font-weight: 300;
    color: #86861c;
}

    textarea[name=message]:focus {
        border: 1px solid #86861c;
    }

input[type=submit] {
    display: block;
    box-sizing: border-box;
    width: 70px;
    height: 35px;
    margin: 15px 0 0 0;
    padding: 0;
    border: 1px solid #222222;
    font-family: "Inter", sans-serif;
    font-size: 11pt;
    color: white;
    background-color: #222222;
    text-align: center;
    vertical-align: middle;
}

input:active[type=submit] {
    color: #222222;
    background-color: white;
}

p {
    padding: 0;
    margin: 0 0 6px 0;
    font-family: "Inter", sans-serif;
    font-size: 11pt;
    line-height: 1.8;
    color: #000000;
}

/* Atelier page flex layout */
.atelier-flex {
	display: flex;
	gap: 30px;
	margin-bottom: 40px;
	margin-top: 20px;
}

.atelier-photo {
	flex: 2;
}

.atelier-info {
	flex: 1;
}



/* ############################################## GRID */






*, *:after, *:before { 
	-webkit-box-sizing: border-box; 
	-moz-box-sizing: border-box; 
	box-sizing: border-box; 
}

body, html { 
	font-size: 100%; 
	padding: 0; 
	margin: 0 120px 0 120px; /* grandes marges gauche/droite */
	height: -moz-calc(100% - 162px);
	height: -webkit-calc(100% - 162px);
	height: -o-calc(100% - 162px);
	height: calc(100% - 162px);
}

/* Logo GABU fixé dans la marge gauche */
header > a:first-child {
	position: fixed;
	top: 60px;
	left: 100px;
	font-size: 32px;
	z-index: 1000;
}

/* Navigation projets / atelier / contact dans la marge droite */
header nav {
	position: fixed;
	top: 60px;
	right: 30px;
	z-index: 1000;
}

header nav a {
	display: inline-block;
	margin-left: 30px;
	font-size: 20px;
}

/* Lien de navigation actif en gras */
header nav a#active {
	font-weight: bold;
}

/* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before, .clearfix:after { content: " "; display: table; }
.clearfix:after { clear: both; }



figure {
	padding: 0;
	margin: 0;
}



/* Galerie par défaut (index) */
.grid {
	list-style: none;
	margin: 150px auto 0 auto; /* plus d'espace en haut sur l'index */
	padding: 0;
}

/* Galerie sur la page pixel-art */
body.pixel-art .grid {
	margin-top: 0; /* pas de marge supplémentaire, le padding des figures suffit */
	margin-left: -7.5px; /* compenser le padding gauche de la première colonne */
	margin-right: -7.5px; /* compenser le padding droit de la dernière colonne */
	clear: both;
}

.grid figure {
	display: block;
	float: left;
	padding: 15px;	        /* Spaltenanzahl - Marges augmentées */
	width: 33.3333%;			/* 3 colonnes sur grand écran */
	opacity: 0;
}

body.pixel-art .grid figure {
	padding: 7.5px; /* 15px entre images (7.5px de chaque côté) */
	width: 50%; /* 2 colonnes sur pixel-art */
	box-sizing: border-box;
}

.grid figure.shown,
.no-js .grid figure,
.no-cssanimations .grid figure {
	opacity: 1;
}

.grid figure a,
.grid figure img {
	outline: none;
	border: none;
	display: block;
	max-width: 100%;
}

/* Effect 2: Move Up */
.grid.effect-2 figure.animate {
	-webkit-transform: translateY(200px);
	transform: translateY(200px);
	-webkit-animation: moveUp 0.65s ease forwards;
	animation: moveUp 0.65s ease forwards;
}



@-webkit-keyframes moveUp {
	0% { }
	100% { -webkit-transform: translateY(0); opacity: 1; }
}

@keyframes moveUp {
	0% { }
	100% { -webkit-transform: translateY(0); transform: translateY(0); opacity: 1; }
}


@media screen and (max-width: 900px) {
	html, body {
		min-width: 100px;
	}

	header {
		position: static;
		margin: 20px auto 30px auto;
		text-align: center;
	}

	/* Override fixed positioning for GABU title on tablet/mobile */
	header > a:first-child {
		position: static;
		display: block;
		font-size: 28px;
		text-align: center;
		margin-bottom: 10px;
	}

	header a#active {
		position: static;
		font-size: 18px;
	}

	header nav {
		position: static;
		margin-top: 10px;
		text-align: center;
	}

	header nav a {
		margin: 0 10px;
		font-size: 16px;
	}

	.grid figure {
		width: 50%;
		padding: 5px;
	}

	body.pixel-art .grid figure {
		padding: 5px;
	}

	body.pixel-art .grid {
		margin-left: -5px;
		margin-right: -5px;
	}

	body, html {
		font-size: 100%; 
		padding: 0; 
		margin: 0 40px 0 40px;
	}

	/* Fix main content margins for project pages */
	main {
		margin-left: 20px;
		margin-right: 20px;
	}

	body.pixel-art main {
		margin-left: 20px;
		margin-right: 20px;
	}

	.cv1 {
		position: relative;
	}
	.cv2 {
		margin-left: 0;
	}
}


@media screen and (max-width: 480px) {
	html, body {
		min-width: 100px;
	}

	header {
		margin: 20px auto 25px auto;
		text-align: center;
	}

	/* Override fixed positioning for GABU title on mobile */
	header > a:first-child {
		position: static;
		display: block;
		font-size: 24px;
		text-align: center;
		margin-bottom: 10px;
	}

	header a#active {
		position: static;
		display: inline-block;
		margin-bottom: 8px;
		font-size: 14px;
	}

	header nav {
		position: static;
		margin-top: 5px;
		text-align: center;
	}

	header nav a {
		margin: 0 8px;
		font-size: 14px;
	}

	/* Reduce gallery spacing on mobile */
	.grid figure {
		width: 50%;
		padding: 3px;
	}

	body.pixel-art .grid figure {
		padding: 3px;
	}

	body.pixel-art .grid {
		margin-left: -3px;
		margin-right: -3px;
	}

	body, html { 
		font-size: 100%; 
		padding: 0; 
		margin: 0 15px 0 15px;
	}

	/* Fix main content margins for project pages on mobile */
	main {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding: 0 10px;
		margin-top: 20px;
	}

	body.pixel-art main {
		margin-left: 0 !important;
		margin-right: 0 !important;
		padding: 0 10px;
		margin-top: 20px;
	}

	/* Fix text wrapping for project pages */
	.txtboutique {
		display: block;
		word-wrap: break-word;
		overflow-wrap: break-word;
	}

	/* Fix grid margin on project pages */
	.grid {
		margin-top: 80px;
	}

	/* Fix landscape section spacing */
	.landscape-section {
		gap: 8px;
	}

	.cv1 {
		position: relative;
	}
	.cv2 {
		margin-left: 0;
	}

	/* Fix footer */
	footer {
		margin: 40px auto 10px auto;
	}

	/* Atelier page - stack columns vertically */
	.atelier-flex {
		flex-direction: column;
		gap: 20px;
	}

	.atelier-photo,
	.atelier-info {
		flex: none;
		width: 100%;
	}
}

/* Additional fixes for atelier page flexbox on mobile */
@media screen and (max-width: 600px) {
	/* Stack the flexbox columns vertically on mobile */
	article > div[style*="display: flex"] {
		flex-direction: column !important;
	}
	
	article > div[style*="display: flex"] > div {
		flex: none !important;
		width: 100% !important;
	}
}

