/* Application sécurisée du box-sizing sans casser les éléments en inline */
*, *::before, *::after {
	box-sizing: border-box;
}

html, body {
	width: 100%;
	max-width: 100%;
	overflow-x: hidden; /* Empêche le déplacement horizontal de la page */
	font-size: 1em;
	background: #0b0b0b;
	color: #e2e2e2;
	font-family: 'Hind Siliguri', sans-serif;
	font-weight: 500;
	overflow-y: auto;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	margin: 0;
	padding: 0;
}

ol, ul, li {
	list-style: none;
	display: inline;
}

a, img {
	outline: none;
	border: none;
	text-decoration: none;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

a img {
	transition: opacity 0.3s ease, transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
	will-change: opacity, transform;
}

a:hover img {
	opacity: 0.9;
}

h1 {
	font-size: 1.4em;
	font-weight: 700;
	color: #FFF;
	margin-bottom: 0.8rem;
}

h2 {
	font-size: 1.4em;
	font-weight: 700;
	color: #FFF;
	margin-bottom: 0.8rem;
}

h3 {
	font-size: 1em;
	font-weight: 700;
	color: #FFF;
	margin-bottom: 0.5rem;
}

p {
	margin-bottom: 1rem;
	line-height: 1.6;
}

p + p {
	margin-top: 0;
}

a:link {
	color: #fff;
	font-size: 0.9em;
}

a:visited {
	color: #cfcfcf;
}

a:hover {
	color: #FFF;
}

a:active {
	color: #FFF;
}

.stars {
	color: #c0c0c0;
	letter-spacing: 3px;
	font-size: 14px;
}

.legende {
	font-size: 0.9em;
	color: #7f7f7f;
	margin-top: 6px;
	margin-bottom: 0;
}

.bold {
	font-weight: 600;
}

.sum {
	font-size: 1em;
}

.blue {
	color: #2d62ff;
}

.xlg {
	color: #c1c1c1;
}

.white {
	color: #FFF;
}

.link-simple {
	font-size: 1em;
	color: #2d62ff;
}

.text-muted {
	font-size: 0.85rem;
	color: #7f7f7f;
	margin-top: 6px; 
	margin-bottom: 0;
}

.global {
	width: 100%;
	max-width: 1200px;
	margin: 100px auto 40px auto;
	padding: 0 10px;
}

.wrapper {
	width: 100%;
	padding: 0 5%;
}

section {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto 60px auto;
	text-align: left;
}

.wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	width: 100%;
}

.bloc-left-top,
.bloc-left,
.bloc-right-top,
.bloc-right {
	flex: 1 1 45%;
	max-width: 50%;
}

.bloc-right-top img,
.bloc-right img {
	margin-left: auto;
}

section a:has(.bouton),
section > a:not(.portfolio-nav a) {
	display: block;
	width: 100%;
	clear: both;
}

.bloc-left-top a {
	display: inline-block;
	width: auto;
}

header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	margin: 0 auto;
	width: 100%;
	max-width: 1200px;
	height: 70px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 10px;
	background-color: #0b0b0b;
	z-index: 1000;
	box-shadow: none;
	border-bottom: 1px solid transparent;
	transition: height 0.4s ease, background-color 0.4s ease, border-color 0.4s ease, box-shadow 0.4s ease;
}

header.scrolled {
	height: 58px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.header-logo {
	width: 50%;
}

.header-logo img {
	transform-origin: left center;
	transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

header.scrolled .header-logo img {
	transform: scale(0.8);
}

.header-menu {
	width: 50%;
	text-align: right;
}

.header-menu nav ul {
	display: block;
}

.header-menu nav ul li {
	display: inline-block;
	white-space: nowrap;
	margin-left: 25px;
}

.header-menu a {
	text-transform: uppercase;
	position: relative;
}

.header-menu nav ul li a::after {
	content: '';
	position: absolute;
	width: 0;
	height: 1px;
	bottom: -4px;
	left: 0;
	background-color: #073bc9;
	transition: width 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}

.header-menu nav ul li a:hover::after {
	width: 100%;
}

body#a-propos a#a-propos-a,
body#portfolio a#portfolio-a,
body#contact a#contact-a {
	color: #fff;
	font-weight: 900;
	text-transform: uppercase;
}

footer {
	width: 100%;
	height: 75px;
	color: #FFF;
	font-size: 0.9em;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.footer-content {
	width: 100%;
	max-width: 1200px;
	padding: 0 10px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 0 auto;
}

.footer-text {
	width: 50%;
}

.footer-logo {
	width: 50%;
}

.footer-logo img {
	margin-left: auto;
}

footer a:hover {
	color: #5e5e5e;
}

footer a:active {
	color: #5e5e5e;
}

.bouton,
.portfolio-nav > a.bouton,
button[type="submit"].bouton,
input[type="submit"].bouton {
	display: table;
	border-radius: 30px;
	border: 0;
	cursor: pointer;
	color: #ffffff;
	font-weight: 600;
	font-size: 0.90rem;
	padding: 8px 30px;
	text-decoration: none;
	text-align: center;
	white-space: nowrap;
	appearance: none;
	-webkit-appearance: none;
	font-family: inherit;
	margin-top: 15px;
}

.bg-xdg {
	background-color: #1149e3;
	font-weight: 600;
}

.bg-xdg:hover {
	background-color: #073bc9 !important;
}

.bg-dg {
	background-color: #252525;
	font-weight: 600;
}

.bg-dg:hover {
	background-color: #1b1b1b !important;
}

.bg-border {
	background-color: #0b0b0b;
	border: 2px #1149e3 solid;
	font-weight: 600;
}

.bg-border:hover {
	background-color: #1149e3 !important;
}

.border-lg {
	border: 0px #F2F2F2 solid;
}

.portfolio-nav {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 15px;
	flex-wrap: wrap;
	margin-bottom: 40px;
	width: 100%;
	text-align: center;
}

.portfolio-nav > a.bouton {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: auto;
	clear: none;
	margin: 0;
}

.portfolio-nav > a.bouton.active {
	color: #FFF;
	cursor: default;
}

.contact-grid {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr;
	gap: 40px;
	margin-top: 20px;
	max-width: 1200px;
	width: 100%;
}

.contact-form-container,
.info-card {
	background: transparent;
	border: none;
	padding: 0;
	border-radius: 0;
}

.form-group {
	margin-bottom: 20px;
}

.form-group label {
	display: block;
	margin-bottom: 8px;
	font-size: 0.9rem;
	color: #fff;
}

.form-group label .required {
	color: #2d62ff;
}

.form-group input,
.form-group textarea {
	width: 100%;
	max-width: 100%;
	padding: 10px 15px;
	background: #0b0b0b;
	border: 1px solid #202020;
	border-radius: 30px;
	color: #fff;
	font-family: inherit;
	font-size: 14px; /* Empêche le zoom auto sur iOS */
}

.form-group input:focus,
.form-group textarea:focus {
	outline: none;
	border-color: #2d62ff;
	background: #151515;
}

.info-card + .info-card {
	margin-top: 25px;
}

.info-card h2 {
	font-size: 1.25rem;
	margin-bottom: 12px;
}

.contenu a:link,
.contenu a:visited {
	color: #2d62ff;
	font-size: 1em;
}

.contenu a:hover {
	color: #CCC;
}

.contenu a:active {
	color: #FFF;
}

.left { text-align: left; }
.center { text-align: center; }
.center-disabled { text-align: left; }
.right { text-align: right; }
.inline { display: inline; }

.width-100 {
	width: 100%;
}

.margin-center {
	margin-left: auto !important;
	margin-right: auto !important;
}

.margin-right-s { margin-right: 1%; }
.margin-right-m { margin-right: 5%; }
.margin-bottom-s { margin-bottom: 2.5%; }
.margin-bottom-m { margin-bottom: 7.5%; }

/* --- RESPONSIVE : max-width: 859px --- */
@media only screen and (max-width: 859px) {
	.wrap {
		flex-direction: column;
	}
	
	.bloc-left-top,
	.bloc-right-top,
	.bloc-left,
	.bloc-right {
		flex: 1 1 100%;
		max-width: 100%;
		width: 100%;
	}
	
	.bloc-right-top img,
	.bloc-right img {
		margin: 0 auto;
	}
	
	.center-disabled { 
		text-align: center; 
	}
	
	.margin-center-disabled { 
		margin: 0 auto; 
	}
}

/* --- RESPONSIVE : max-width: 768px --- */
@media only screen and (max-width: 768px) {
	.contact-grid {
		grid-template-columns: 1fr;
		width: 100%;
	}
}

/* --- RESPONSIVE : max-width: 750px (Header mobile unifié et opaque) --- */
@media only screen and (max-width: 750px) {
	.global { 
		width: 100%; 
		max-width: 100%; 
		margin-top: 170px; 
		margin-right: auto;
		margin-bottom: 30px;
		margin-left: auto;
		padding: 0 10px; 
	}
	
	.wrapper { 
		padding: 0 5%; 
	}
	
	header { 
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		width: 100%;
		max-width: 100%;
		display: flex;
		flex-direction: column; 
		height: auto !important; 
		min-height: auto;
		gap: 12px;
		padding: 15px 10px !important; 
		background-color: #0b0b0b !important; 
		border-bottom: 1px solid rgba(255, 255, 255, 0.15);
		box-shadow: 0 4px 20px rgba(0, 0, 0, 0.8); 
		z-index: 1000;
	}
	
	.header-logo { 
		width: 100%; 
		text-align: center; 
	}
	
	.header-logo img {
		margin: 0 auto;
		transform: none !important;
	}
	
	.header-menu { 
		width: 100%; 
		text-align: center; 
	}

	.header-menu nav ul {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
		gap: 15px;
		padding-left: 0 !important; 
		margin: 0 auto;
	}
	
	.header-menu nav ul li { 
		display: inline-block;
		margin: 0 !important; 
	}

	.bouton,
	.portfolio-nav > a.bouton,
	button[type="submit"].bouton,
	input[type="submit"].bouton {
		width: 100% !important;
		display: block !important;
		text-align: center !important;
		margin-left: auto !important;
		margin-right: auto !important;
		margin-top: 15px !important;
		padding: 11px 30px !important;
		font-size: 0.95rem !important;
	}
}

/* --- RESPONSIVE : max-width: 660px --- */
@media only screen and (max-width: 660px) {
	.margin-bottom-m { 
		margin-bottom: 10% !important; 
	}
	
	.margin-bottom-s { 
		margin-bottom: 7.5% !important; 
	}
	
	footer { 
		height: auto; 
		padding: 20px 0; 
	}
	
	.footer-content { 
		flex-direction: column; 
		gap: 15px; 
		text-align: center; 
	}
	
	.footer-text,
	.footer-logo { 
		width: 100%; 
		text-align: center; 
	}
	
	.footer-logo img { 
		margin: 0 auto; 
	}
	
	.portfolio-nav { 
		gap: 10px; 
		margin-bottom: 30px; 
	}
	
	.portfolio-nav > a.bouton { 
		width: 100% !important; 
	}
}