/*
 * Layout - DIGITALGREEN
 * Système de layout et grille de base
 */

/* Container */
.container {
	max-width: var(--container-max-width);
	margin: 0 auto;
	padding: 0 var(--container-padding);
}

.container-fluid {
	width: 100%;
	padding: 0 var(--container-padding);
}

/* Site structure */
.site {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.site-content {
	flex: 1;
}

.content-area {
	width: 100%;
}

.site-main {
	width: 100%;
}

/* Grille simple */
.row {
	display: flex;
	flex-wrap: wrap;
	margin: 0 calc(-1 * var(--spacing-md));
}

.col {
	flex: 1;
	padding: 0 var(--spacing-md);
}

.col-auto {
	flex: 0 0 auto;
}

/* Colonnes fixes */
.col-1 { flex: 0 0 8.333333%; }
.col-2 { flex: 0 0 16.666667%; }
.col-3 { flex: 0 0 25%; }
.col-4 { flex: 0 0 33.333333%; }
.col-5 { flex: 0 0 41.666667%; }
.col-6 { flex: 0 0 50%; }
.col-7 { flex: 0 0 58.333333%; }
.col-8 { flex: 0 0 66.666667%; }
.col-9 { flex: 0 0 75%; }
.col-10 { flex: 0 0 83.333333%; }
.col-11 { flex: 0 0 91.666667%; }
.col-12 { flex: 0 0 100%; }

/* Flexbox utilities */
.d-flex {
	display: flex;
}

.d-block {
	display: block;
}

.d-inline {
	display: inline;
}

.d-inline-block {
	display: inline-block;
}

.d-none {
	display: none;
}

/* Flex direction */
.flex-row {
	flex-direction: row;
}

.flex-column {
	flex-direction: column;
}

/* Justify content */
.justify-start {
	justify-content: flex-start;
}

.justify-center {
	justify-content: center;
}

.justify-end {
	justify-content: flex-end;
}

.justify-between {
	justify-content: space-between;
}

.justify-around {
	justify-content: space-around;
}

/* Align items */
.align-start {
	align-items: flex-start;
}

.align-center {
	align-items: center;
}

.align-end {
	align-items: flex-end;
}

.align-stretch {
	align-items: stretch;
}

/* Position */
.position-relative {
	position: relative;
}

.position-absolute {
	position: absolute;
}

.position-fixed {
	position: fixed;
}

.position-sticky {
	position: sticky;
}

/* Responsive */
@media (max-width: 768px) {
	.container {
		padding: 0 var(--spacing-md);
	}
	
	.row {
		margin: 0 calc(-1 * var(--spacing-sm));
	}
	
	.col {
		padding: 0 var(--spacing-sm);
	}
	
	/* Stack columns on mobile */
	.row > [class*="col-"] {
		flex: 0 0 100%;
		max-width: 100%;
	}
	
	/* Mobile specific columns */
	.col-mobile-6 {
		flex: 0 0 50%;
		max-width: 50%;
	}
}
