/*
* ===============================
*  START: Theme Default CSS
* ===============================
*/
/* Polices avec font-display: swap pour éviter FOIT */
@import url("https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Russo+One&display=swap");

/* Optimisation des animations pour les performances */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

:root {
	/* ----------------------------------
   @font family declaration
  ------------------------------------ */
	--tj-ff-body: "Sora", sans-serif;
	--tj-ff-heading: "Sora", sans-serif;
	--tj-ff-russo: "Russo One", sans-serif;
	--tj-ff-fontawesome: "Font Awesome 6 Pro";
	/* ----------------------------------
   @color declaration
  ------------------------------------ */
	--tj-body: #f5f5f5;
	--tj-white: #ffffff;
	--tj-black: #0a0a0a;
	--tj-black-2: #f9f9f9;
	--tj-heading-primary: #1c2a3a;
	--tj-heading-secondary: #e74c3c;
	--tj-theme-primary: #1e78ff; /* Bleu spatial plus vif */
	--tj-theme-secondary: #0f1c2a; /* Bleu nuit profond */
 	--tj-theme-accent-1: #141438; 	/* Bleu spatial foncé Main Accueil */
	/* --tj-theme-accent-1: #1a1a55;  */
	/* #0b0b1f; */
	--tj-theme-accent-2: #14273c; /* Bleu nuit profond */
	/* --tj-theme-accent-perso: radial-gradient(circle at 30% 50%, #3d3d8f, #23236d 70%, #1a1a55); */
	--tj-theme-accent-perso: radial-gradient(circle at 30% 50%, #0b0b1f, #1d1d62 70%, rgb(14, 14, 100));
	--tj-grey-1: #95a5a6;
	--tj-grey-2: #ecf0f1;
	--tj-grey-3: #bdc3c7;
	--tj-grey-4: #7f8c8d;
	/* ----------------------------------
   @font weight declaration
  ------------------------------------ */
	--tj-fw-normal: normal;
	--tj-fw-elight: 200;
	--tj-fw-light: 300;
	--tj-fw-regular: 400;
	--tj-fw-medium: 500;
	--tj-fw-sbold: 600;
	--tj-fw-bold: 700;
	--tj-fw-ebold: 800;
	--tj-fw-black: 900;
	/* ----------------------------------
    @font size declaration
  ------------------------------------ */
	--tj-fz-body: 16px;
	--tj-fz-btn: 15px;
	--tj-fz-p: 18px;
	--tj-fz-h1: 65px;
	--tj-fz-h2: 45px;
	--tj-fz-h3: 30px;
	--tj-fz-h4: 24px;
	--tj-fz-h5: 22px;
	--tj-fz-h6: 18px;
	--tj-fz-sub-title: 36px;
}

* {
	margin: 0;
	padding: 0;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	scrollbar-width: thin;
	scrollbar-color: var(--tj-theme-primary) var(--tj-theme-secondary);
}

::-webkit-scrollbar {
	height: 4px;
	width: 4px;
	background: var(--tj-theme-secondary);
}

::-webkit-scrollbar-thumb {
	background: var(--tj-theme-primary);
	-webkit-border-radius: 1ex;
	-webkit-box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.75);
}

::-webkit-scrollbar-corner {
	background: transparent;
}

html,
body {
	min-height: 100%;
	overflow-x: hidden;
}

img {
	max-width: 100%;
}

body {
	font-family: var(--tj-ff-body);
	font-size: var(--tj-fz-body);
	font-weight: var(--tj-fw-regular);
	color: var(--tj-body);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: var(--tj-ff-heading);
	font-weight: var(--tj-fw-bold);
	line-height: 1.2;
	color: var(--tj-white);
	margin-bottom: 15px;
}

h1 {
	font-size: var(--tj-fz-h1);
}

h2 {
	font-size: var(--tj-fz-h2);
}

h3 {
	font-size: var(--tj-fz-h3);
}

h4 {
	font-size: var(--tj-fz-h4);
}

h5 {
	font-size: var(--tj-fz-h5);
}

h6 {
	font-size: var(--tj-fz-h6);
}

h1 > a,
h2 > a,
h3 > a,
h4 > a,
h5 > a,
h6 > a {
	color: inherit;
	font-size: inherit;
	font-family: inherit;
	font-weight: inherit;
	text-decoration: none;
}

a:hover {
	text-decoration: none;
}

a h1:hover,
a h2:hover,
a h3:hover,
a h4:hover,
a h5:hover,
a h6:hover {
	text-decoration: none;
}

.site-content {
	overflow: hidden;
}

.ul-reset {
	margin: 0;
	padding: 0;
	list-style: none;
}
.tj-btn-primary {
	text-decoration: none;
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	gap: 10px;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	font-size: var(--tj-fz-btn);
	line-height: 1;
	font-weight: var(--tj-fw-bold);
	color: var(--tj-white);
	text-transform: capitalize;
	background-size: 200%;
	background-image: -webkit-gradient(
		linear,
		left top,
		right top,
		from(var(--tj-theme-primary)),
		color-stop(51%, var(--tj-theme-secondary)),
		to(var(--tj-theme-primary))
	);
	background-image: -o-linear-gradient(
		left,
		var(--tj-theme-primary) 0%,
		var(--tj-theme-secondary) 51%,
		var(--tj-theme-primary) 100%
	);
	background-image: linear-gradient(
		to right,
		var(--tj-theme-primary) 0%,
		var(--tj-theme-secondary) 51%,
		var(--tj-theme-primary) 100%
	);
	border: 1px solid rgba(255, 255, 255, 0.742); /* Ajout du contour blanc fin */
	border-radius: 50px;
	padding: 17px 35px;
	-webkit-transition: 0.4s;
	-o-transition: 0.4s;
	transition: 0.4s;
}
.tj-btn-primary i {
	-webkit-transform: rotate(-45deg);
	-ms-transform: rotate(-45deg);
	transform: rotate(-45deg);
	-webkit-transition: 0.4s;
	-o-transition: 0.4s;
	transition: 0.4s;
}
.tj-btn-primary:hover {
	background-position: -100%;
}
.tj-btn-primary:hover i {
	-webkit-transform: rotate(0);
	-ms-transform: rotate(0);
	transform: rotate(0);
}
.tj-btn-secondary {
	text-decoration: none;
	font-size: var(--tj-fz-btn);
	line-height: 1;
	font-weight: var(--tj-fw-medium);
	color: var(--tj-white);
	border-radius: 50px;
	padding: 17px 35px;
	border: 1px solid var(--tj-white);
	-webkit-transition: 0.3s;
	-o-transition: 0.3s;
	transition: 0.3s;
	letter-spacing: 1px;
}
.tj-btn-secondary:hover {
	background: var(--tj-theme-primary);
	color: var(--tj-white);
	border-color: var(--tj-theme-primary);
}
.lead {
	font-size: 20px;
}
.social-icons {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}
.social-icons li {
	margin-right: 20px;
}
.social-icons li:last-child {
	margin-right: 0;
}
.social-icons li a {
	color: var(--tj-white);
	width: 35px;
	height: 35px;
	border: 1px solid var(--tj-white);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	text-decoration: none;
	z-index: 1;
}
.social-icons li a i {
	transition: 0.3s;
}
.social-icons li a::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--tj-theme-primary);
	-webkit-transform: scale(0);
	-ms-transform: scale(0);
	transform: scale(0);
	-webkit-transition: 0.3s;
	-o-transition: 0.3s;
	transition: 0.3s;
	border-radius: 50%;
	z-index: -1;
}
.social-icons li a:hover {
	border: 1px solid var(--tj-theme-primary);
	color: var(--tj-white);
}
.social-icons li a:hover::before {
	-webkit-transform: scale(1.1);
	-ms-transform: scale(1.1);
	transform: scale(1.1);
}
.funfact-item {
	gap: 15px;
}
.funfact-item .number {
	font-size: 64px;
	line-height: 1;
	font-weight: var(--tj-fw-bold);
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}
.section-header {
	margin-bottom: 50px;
	max-width: 700px;
	width: 100%;
}
.section-header .section-title {
	font-size: 45px;
	background: var(--tj-theme-primary);
	background: -webkit-gradient(
		linear,
		left top,
		right top,
		from(var(--tj-theme-primary)),
		to(var(--tj-white))
	);
	background: -o-linear-gradient(
		left,
		var(--tj-theme-primary) 0%,
		var(--tj-white) 100%
	);
	background: linear-gradient(
		to right,
		var(--tj-theme-primary) 0%,
		var(--tj-white) 100%
	);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	display: inline-block;
}
.section-header p:last-child {
	margin-bottom: 0;
}
.owl-carousel .owl-nav button.owl-next,
.owl-carousel .owl-nav button.owl-prev,
.owl-carousel button.owl-dot {
	padding: 3px !important;
}
.owl-dots {
	text-align: center;
	margin-top: 25px;
}
.owl-dots .owl-dot {
	margin-right: 5px;
}
.owl-dots .owl-dot:last-child {
	margin-right: 0;
}
.owl-dots .owl-dot span {
	width: 8px;
	height: 8px;
	background: var(--tj-grey-2);
	border-radius: 50%;
	display: block;
	opacity: 0.2;
}
.owl-dots .owl-dot.active span {
	background: var(--tj-theme-primary);
	opacity: 1;
}
.tj-nice-select {
	float: none;
	width: 100%;
	background: transparent;
	border: 1px solid rgba(255, 255, 255, 0.1);
	color: var(--tj-grey-1);
}
.tj-nice-select:hover {
	border-color: rgba(255, 255, 255, 0.1);
}
.tj-nice-select:focus {
	-webkit-box-shadow: none;
	box-shadow: none;
	border-color: var(--tj-theme-primary);
}
.tj-nice-select::after {
	content: "";
	top: 50%;
	right: 10px;
	position: absolute;
	background: url(../img/icons/down-arrow.svg);
	background-position: center;
	background-size: cover;
	border: none;
	-webkit-transform: rotate(0);
	-ms-transform: rotate(0);
	transform: rotate(0);
	width: 15px;
	height: 12px;
	margin-top: -6px;
	-webkit-transform-origin: center;
	-ms-transform-origin: center;
	transform-origin: center;
}
.tj-nice-select.open::after {
	-webkit-transform: rotate(-180deg);
	-ms-transform: rotate(-180deg);
	transform: rotate(-180deg);
}
.nice-select .option:hover,
.nice-select .option.focus,
.nice-select .option.selected.focus,
.nice-select .option {
	color: var(--tj-theme-accent-1);
}
/* ===============================
* END: Theme Default CSS
* =============================== */


/*
* ===============================
*  START: Preloader
* ===============================
*/
body.loaded {
	overflow: hidden !important;
	height: 100% !important;
}

.preloader {
	position: fixed;
	z-index: 10;
	height: 100vh;
	width: 100%;
	left: 0;
	top: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	overflow: hidden;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	background: transparent;
	z-index: 99999999999999;
}

.preloader svg {
	position: absolute;
	top: 0;
	width: 100vw;
	height: 110vh;
	fill: var(--tj-black-2);
}

.preloader .preloader-heading .load-text {
	font-size: 20px;
	font-weight: 200;
	letter-spacing: 15px;
	text-transform: uppercase;
	z-index: 20;
}

.load-text span {
	-webkit-animation: loading 1s infinite alternate;
	animation: loading 1s infinite alternate;
}

.load-text span:nth-child(1) {
	-webkit-animation-delay: 0s;
	animation-delay: 0s;
}

.load-text span:nth-child(2) {
	-webkit-animation-delay: 0.1s;
	animation-delay: 0.1s;
}

.load-text span:nth-child(3) {
	-webkit-animation-delay: 0.2s;
	animation-delay: 0.2s;
}

.load-text span:nth-child(4) {
	-webkit-animation-delay: 0.3s;
	animation-delay: 0.3s;
}

.load-text span:nth-child(5) {
	-webkit-animation-delay: 0.4s;
	animation-delay: 0.4s;
}

.load-text span:nth-child(6) {
	-webkit-animation-delay: 0.5s;
	animation-delay: 0.5s;
}

.load-text span:nth-child(7) {
	-webkit-animation-delay: 0.6s;
	animation-delay: 0.6s;
}

@-webkit-keyframes loading {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}

@keyframes loading {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
	}
}
/* ===============================
* END: Preloader
* =============================== */


/*
* ===============================
* START: Headers
* ===============================
*/

/* --- Base Layout --- */
.tj-header-area {
	padding: 40px 0 20px;
	position: relative;
	z-index: 9;
	background-color: var(--tj-black-2);
	transition: all 0.3s ease;
	position: fixed;
	width: 100%;
	z-index: 999;
}

/* --- Style: Fixed Header (Used in HTML) --- */
.tj-header-area.header-2 {
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	padding: 20px 0;
	z-index: 100;
	background-color: transparent;
	transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	backdrop-filter: blur(0px);
}

/* --- State: Sticky (Scrolling Down) --- */
.tj-header-area.header-2.sticky {
	background-color: var(--tj-theme-accent-1); /* tj-theme-accent-1 avec transparence  rgba(26, 26, 85, 0.98) */
	box-shadow: 0 4px 10px -5px var(--tj-theme-primary);
	padding: 7px 0;
	animation: fade 0.5s;
	backdrop-filter: blur(10px);
}

/* --- State: Sticky Out (Scrolling Up) --- */
.tj-header-area.header-2.sticky-out {
	top: 0;
	opacity: 1;
	animation: bounceInUp 1s forwards;
	background: var(--tj-theme-secondary) !important; /* Fond uni d'origine */
	box-shadow: 0 2px 5px rgba(0,0,0,0.1);
	padding: 10px 0;
}

/* --- Logo Section --- */
.tj-header-area .logo-box {
	max-width: 60px;
	width: 100%;
	margin-right: 35px;
}
.tj-header-area .logo-box a {
	display: inline-block;
}

/* --- Text Logo (Portfolio) --- */
.tj-header-area .header-info-list ul li {
	margin-right: 25px;
}
.tj-header-area .header-info-list ul li a {
	color: var(--tj-white);
	font-size: 24px;
	font-weight: var(--tj-fw-medium);
	text-decoration: none;
}

/* --- Navigation Menu --- */
.tj-header-area .header-menu {
	margin-left: auto;
}
.tj-header-area .header-menu ul {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	column-gap: 35px;
}
.tj-header-area .header-menu ul li {
	position: relative;
}
.tj-header-area .header-menu ul li a {
	display: flex;
	color: var(--tj-white);
	font-size: var(--tj-fz-btn);
	font-weight: var(--tj-fw-medium);
	text-decoration: none;
	position: relative;
	padding: 10px 0;
}

/* --- Hover Effect (Underline Gradient) --- */
.tj-header-area .header-menu ul li a::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 2px;
	border-radius: 4px;
	bottom: 9px;
	left: 0;
	
	background: linear-gradient(
		260deg,
		var(--tj-theme-secondary) 0%,
		var(--tj-theme-primary) 100%
	);
	
	transform-origin: right;
	transform: scaleX(0);
	transition: transform 0.3s ease-in-out;
}
.tj-header-area .header-menu ul li.current-menu-ancestor a::before,
.tj-header-area .header-menu ul li:hover a::before {
	transform-origin: left;
	transform: scaleX(1);
}
.tj-header-area .header-button {
	margin-left: 55px;
}

/* --- Mobile Menu Button (Hamburger) --- */
.tj-header-area .menu-bar {
	margin-left: 25px;
}
.tj-header-area .menu-bar button {
	border: none;
	padding: 0;
	background-color: transparent;
	height: 25px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	position: relative;
	transform-origin: center center;
	transform: rotate(0deg);
	cursor: pointer;
	transition: transform 300ms ease;
}

/* Hamburger Lines */
.tj-header-area .menu-bar button span {
	height: 3px;
	width: 35px;
	display: block;
	background: var(--tj-white);
	cursor: pointer;
	transition: all 0.3s ease-in-out 0s;
	margin-left: auto;
}
.tj-header-area .menu-bar button span:nth-child(2) {
	width: 40px;
	transition-delay: 200ms;
}
.tj-header-area .menu-bar button span:nth-child(3) {
	width: 30px;
}

/* The vertical line for the Cross animation */
.tj-header-area .menu-bar button span:nth-child(4) {
	position: absolute;
	top: -8px;
	left: 50%;
	transform: translateX(-50%);
	display: block;
	width: 3px;
	height: 0;
	transition: height 400ms;
}

/* --- Mobile Menu Open State (Cross Animation) --- */
.tj-header-area .menu-bar.menu-bar-toggeled button {
	transform: rotate(45deg);
	transition-delay: 400ms;
}
.tj-header-area .menu-bar.menu-bar-toggeled button span:nth-child(1),
.tj-header-area .menu-bar.menu-bar-toggeled button span:nth-child(3) {
	width: 0;
}
.tj-header-area .menu-bar.menu-bar-toggeled button span:nth-child(4) {
	height: 40px;
	transition: height 200ms ease 200ms;
}
/* ===============================
* END: Header Area
* =============================== */

/*
* ===============================
*  START: Hero Section
* ===============================
*/

/* --- Layout & Background --- */
.hero-section {
	padding: 200px 0 50px;
	background: var(--tj-theme-accent-1);
	position: relative;
	overflow: hidden;
	z-index: 1;
}

/* Background Blob/Blur Effect (Right side) */
.hero-section:before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 322px;
	height: 308px;
	border-radius: 50%;

	/* Gradient & Blur */
	background: var(--tj-theme-primary);
	background: linear-gradient(
		260deg,
		var(--tj-theme-primary) 0%,
		rgba(115, 67, 210, 0) 100%
	);
	filter: blur(150px);
	-webkit-filter: blur(150px);

	margin-right: -5%;
	margin-top: -5%;
	z-index: -1;
}

/* --- SVG Text Animation ("DEV.") --- */
.hero-section .intro_text svg {
	font-family: var(--tj-ff-russo);
	position: absolute;
	width: 100%;
	height: 100%;
	left: 46%;
	top: 55%;
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: -1;
}
.hero-section .intro_text svg text {
	text-transform: uppercase;
	animation: stroke 3s infinite alternate;
	stroke-width: 1.2;
	stroke: #4b4b4b;
	fill: transparent;
	font-size: 240px;
	display: inline-block;
	opacity: 0.4;
}
@keyframes stroke {
	0% {
		stroke-dashoffset: 25%;
		stroke-dasharray: 0 50%;
		stroke-width: 1;
	}
	100% {
		stroke-dashoffset: 100%;
		stroke-dasharray: 100% 0;
		stroke-width: 1;
	}
}

/* --- Typography --- */
.hero-sub-title {
	font-size: var(--tj-fz-sub-title);
	font-weight: var(--tj-fw-bold);
	display: block;
	margin-bottom: 10px;
}

/* Custom Title Style (Matches HTML) */
.hero-title-perso {
    font-size: 65px;
    color: var(--tj-theme-primary);
}

.hero-content-box .lead {
	max-width: 550px;
	width: 100%;
	margin-bottom: 0;
}
.hero-content-box .button-box {
	margin-top: 40px;
	gap: 25px;
}

/* --- Profile Image Area --- */
.hero-image-box img {
	max-width: 400px;
	width: 100%;
	height: auto;
	border-radius: 38px;

	/* Default State: Rotated */
	transform: rotate(4.29deg);
	position: relative;
	border: 2px solid var(--tj-white);
	transition: 0.3s;
}

/* Hover State: Straight */
.hero-image-box img:hover {
	border: 2px solid var(--tj-theme-primary);
	transform: rotate(0);
}

.hero-image-box {
	position: relative;
}

/* Image Background Blob/Blur */
.hero-image-box:before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 220px;
	height: 220px;
	border-radius: 50%;

	background: var(--tj-theme-primary);
	background: linear-gradient(
		260deg,
		var(--tj-theme-primary) 0%,
		rgba(115, 67, 210, 0) 100%
	);
	-webkit-filter: blur(150px);
	filter: blur(150px);

	margin-left: -5%;
	margin-bottom: -5%;
	z-index: -1;
}

.fw-bold {
    font-weight: var(--tj-fw-bold) !important;
}

.fw-regular {
	font-weight: var(--tj-fw-regular) !important;
}

.text-highlight {
	color: var(--tj-theme-primary);
}
/* ===============================
* END: Hero Section
* =============================== */

/*
* ===============================
*  START: Portfolio Section
* ===============================
*/
.portfolio-section {
	padding-top: 120px;
	padding-bottom: 80px;
	background: var(--tj-theme-accent-perso);
}
.portfolio-section .section-header {
	margin-left: auto;
	margin-right: auto;
}
.portfolio-filter {
    margin-bottom: 50px;
}

.filter-button-group button {
    background: #fff;
    border: 2px solid rgba(0, 0, 0, 0.1);
    color: #000000;
    padding: 12px 25px;
    margin: 0 8px;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 500;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}

/* État actif */
.filter-button-group button.tj-active-filter {
    background: var(--tj-theme-primary);
    color: #fff;
    border-color: var(--tj-theme-primary);
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(30, 120, 255, 0.3);
}

/* État inactif (désélectionné) */
.filter-button-group button.tj-filter-btn:not(.tj-active-filter) {
    background: #f8f9fa;
    color: #181818;
    border-color: rgba(0, 0, 0, 0.1);
    transform: translateY(0);
    box-shadow: none;
}

/* Survol */
.filter-button-group button.tj-filter-btn:hover:not(.tj-active-filter) {
    background: rgba(255, 255, 255, 0.9);
    color: var(--tj-theme-primary);
    border-color: var(--tj-theme-primary);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Style spécifique pour le bouton "Tous" */
.filter-button-group button.tj-filter-btn[data-filter="*"].tj-active-filter {
    background: var(--tj-theme-primary);
    color: #fff;
    border-color: var(--tj-theme-primary);
    box-shadow: 0 5px 15px rgba(30, 120, 255, 0.3);
    pointer-events: none; /* Empêche la désélection par clic */
}

/* Version mobile */
@media (max-width: 767px) {
    .filter-button-group button {
        padding: 10px 20px;
        margin: 5px;
        font-size: 14px;
    }
    
    .portfolio-filter {
        margin-bottom: 30px;
    }
}

.portfolio-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3 colonnes de taille égale */
    gap: 30px; /* Espacement entre les cartes */
    padding: 20px 0;
}

.portfolio-item {
    width: 100%;
    display: flex;
    justify-content: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.project-card {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 15px;
    overflow: hidden;
    transition: all 0.3s ease;
    width: 100%; /* Prend toute la largeur disponible */
    height: 450px;
    display: flex;
    flex-direction: column;
    cursor: pointer;
    position: relative;
}

.project-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}

.project-image {
    position: relative;
    overflow: hidden;
    flex: 1; /* Permet à l'image de prendre l'espace restant */
}

.project-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.project-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(30, 120, 255, 0.227);
    opacity: 0;
    transition: opacity 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none; /* Ajouté */
}

/* .project-card:hover .project-overlay {
    opacity: 1;
} */

.project-link {
    color: #fff;
    font-size: 30px;
    line-height: 1;
    pointer-events: none; /* Empêche le bouton de bloquer le clic */
}

.project-info {
    padding: 15px;
    background: rgba(30, 120, 255, 0.1);
    min-height: 190px; /* Hauteur augmentée */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.project-title {
    font-size: 18px;
    margin-bottom: 10px;
    color: var(--tj-white);
}

.competences-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 15px;
}

.competence-tag {
    flex: 0 0 auto; /* Uniquement cette ligne modifiée */
    /* Le reste des propriétés existantes reste inchangé */
    background: var(--tj-theme-primary);
    color: white;
    padding: 6px 12px;
    border-radius: 15px;
    font-size: 0.75rem;
    text-align: center;
    box-sizing: border-box;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.competence-btn {
    margin-top: auto; /* Pousse le bouton vers le bas */
    /* Styles existants conservés */
}
/* ===============================
* END: Portfolio Section
* =============================== */


/*
* ===============================
*  START: Popup Section
* ===============================
*/
.popup_content_area {
    max-width: 100% !important; /* S'assurer qu'il n'y a pas de limite interne */
    width: 100% !important; /* Prendre toute la largeur disponible */
    margin: 0 !important; /* Supprimer les marges internes */
}

.popup-mfp {
	overflow: hidden;
}
.popup-mfp .mfp-container {
	position: fixed;
	padding: 0 !important; /* Supprimer les paddings internes */
	overflow-y: scroll;

	scrollbar-width: thin;
	scrollbar-color: var(--tj-theme-primary) var(--tj-theme-secondary);
}
.popup-mfp .mfp-container::-webkit-scrollbar {
	height: 4px;
	width: 4px;
	background: var(--tj-theme-secondary);
}

.popup-mfp .mfp-container::-webkit-scrollbar-thumb {
	background: var(--tj-theme-primary);
	-webkit-border-radius: 1px;
	-webkit-box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.75);
}

.popup-mfp .mfp-container::-webkit-scrollbar-corner {
	background: transparent;
}

.popup-mfp .zoom-anim-dialog {
	opacity: 0;
	-webkit-transition: all 0.2s ease-in-out;
	-o-transition: all 0.2s ease-in-out;
	transition: all 0.2s ease-in-out;
	-webkit-transform: scale(0.8);
	-ms-transform: scale(0.8);
	transform: scale(0.8);
}

.popup-mfp.mfp-ready .zoom-anim-dialog {
	opacity: 1;
	-webkit-transform: scale(1);
	-ms-transform: scale(1);
	transform: scale(1);
}

.popup-mfp.mfp-removing .zoom-anim-dialog {
	-webkit-transform: scale(0.8);
	-ms-transform: scale(0.8);
	transform: scale(0.8);
	opacity: 0;
}

.popup-mfp.mfp-bg {
	opacity: 0;
	-webkit-transition: opacity 0.3s ease-out;
	-o-transition: opacity 0.3s ease-out;
	transition: opacity 0.3s ease-out;
}

.popup-mfp.mfp-ready.mfp-bg {
	opacity: 0.8;
}

.popup-mfp.mfp-removing.mfp-bg {
	opacity: 0;
}

.popup_content_area .mfp-close {
	background: linear-gradient(
		135deg,
		var(--tj-theme-primary) 16.35%,
		var(--tj-black-2) 91.35%
	);
	color: var(--tj-white);
	opacity: 1;
	width: 45px;
	height: 45px;
	border-radius: 50%;
	font-size: 30px;
	line-height: 1;
	font-weight: var(--tj-fw-normal);
	right: -45px;
	top: -45px;
	-webkit-transition: 0.3s;
	-o-transition: 0.3s;
	transition: 0.3s;
}
.popup_content_area .mfp-close:hover {
	-webkit-transform: rotate(180deg);
	-ms-transform: rotate(180deg);
	transform: rotate(180deg);
}
.popup_modal_img {
	padding: 70px 60px 0; /* Ajustement des paddings d'image */
	text-align: center;
	max-height: 670px;
	overflow: hidden;
	width: 100%; /* Prendre toute la largeur disponible */
}
.popup_modal_img img {
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}
.popup_modal_content {
	background-color: var(--tj-white);
	padding: 90px 80px; /* Augmentation de l'espacement interne */
	width: 100%; /* Prendre toute la largeur disponible */
}
.popup_modal_content .portfolio_info {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	align-items: start;
	gap: 50px;
	padding: 0 40px;
}
.popup_modal_content .portfolio_info .portfolio_info_text,
.popup_modal_content .portfolio_info .portfolio_info_items {
	max-width: calc(50% - 25px);
	width: 100%;
}
.portfolio_description .title,
.portfolio_info .portfolio_info_text .title {
	color: var(--tj-black-2);
	margin-bottom: 10px;
}
.portfolio_description .desc,
.portfolio_info .portfolio_info_text .desc {
	font-size: 16px;
	color: var(--tj-theme-accent-1);
	letter-spacing: 0.02em;
}
.portfolio_description .desc p:last-child,
.portfolio_info .portfolio_info_text .desc p:last-child {
	margin-bottom: 0;
}
.portfolio_info .portfolio_info_text .btn {
	margin-top: 20px;
}
.portfolio_info .portfolio_info_items {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-column-gap: 20px;
	-moz-column-gap: 20px;
	column-gap: 20px;
	row-gap: 30px;
}
.portfolio_info .portfolio_info_items .info_item {
	max-width: calc(50% - 10px);
	width: 100%;
}
.portfolio_info_items .info_item .key {
	display: block;
	font-size: 16px;
	letter-spacing: 0.02em;
	color: var(--tj-theme-accent-1);
}
.portfolio_info_items .info_item .value {
	display: block;
	font-size: 16px;
	font-weight: var(--tj-fw-medium);
	color: var(--tj-theme-accent-1);
	margin-top: 5px;
}
.portfolio_info_items .info_item .value a {
	color: inherit;
	font-size: inherit;
	text-decoration: none;
	-webkit-transition: 0.3s;
	-o-transition: 0.3s;
	transition: 0.3s;
}
.portfolio_info_items .info_item .value a:hover {
	color: var(--tj-theme-primary);
}
.popup_modal_content .portfolio_gallery {
	margin-top: 50px;
}
.portfolio_gallery .gallery_item {
	max-width: 930px;
	width: 100%;
}
.portfolio_gallery .owl-dots {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	gap: 6px;
}
.portfolio_gallery .owl-dots .owl-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: var(--tj-theme-primary);
	opacity: 0.6;
	-webkit-transition: 0.3s;
	-o-transition: 0.3s;
	transition: 0.3s;
	margin: 0;
	padding: 0;
}
.portfolio_gallery .owl-dots .owl-dot:hover,
.portfolio_gallery .owl-dots .owl-dot.active {
	width: 30px;
	opacity: 1;
	border-radius: 30px;
}
.portfolio_gallery .owl-dots .owl-dot span {
	display: none;
}
.popup_modal_content .portfolio_story_approach,
.popup_modal_content .portfolio_description {
	padding: 0 40px;
	margin-top: 50px;
}

.portfolio_story_approach .portfolio_approach,
.portfolio_story_approach .portfolio_story {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	gap: 50px;
	margin-bottom: 50px;
}
.portfolio_approach .approach_title,
.portfolio_story .story_title {
	max-width: 265px;
	width: 100%;
}
.portfolio_approach .approach_title .title,
.portfolio_story .story_title .title {
	font-size: 20px;
	text-transform: uppercase;
	color: var(--tj-black-2);
	margin-bottom: 0;
}
.portfolio_approach .approach_content,
.portfolio_story .story_content {
	max-width: 600px;
	width: 100%;
	letter-spacing: 0.02em;
	color: var(--tj-theme-accent-1);
	font-size: 16px;
}
.portfolio_approach .approach_content p:last-child,
.portfolio_story .story_content p:last-child {
	margin: 0;
}
.popup_modal_content .portfolio_navigation {
	background-color: var(--tj-theme-primary);
	padding: 35px 50px;

	display: -webkit-box;

	display: -ms-flexbox;

	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	gap: 20px;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
}
.portfolio_navigation .navigation_item {
	max-width: calc(50% - 10px);
	width: 100%;
}
.portfolio_navigation .navigation_item .project {
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	-webkit-box-align: end;
	-ms-flex-align: end;
	align-items: end;
	gap: 15px;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	text-decoration: none;
}
.portfolio_navigation .navigation_item .project i {
	font-size: 30px;
	line-height: 1;
	color: var(--tj-white);
	max-width: 30px;
	-webkit-transform: rotate(-45deg);
	-ms-transform: rotate(-45deg);
	transform: rotate(-45deg);
	margin-bottom: 10px;
	-webkit-transition: 0.4s;
	-o-transition: 0.4s;
	transition: 0.4s;
}
.portfolio_navigation .navigation_item.prev-project .project i {
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}
.portfolio_navigation .navigation_item .project:hover i {
	-webkit-transform: rotate(0);
	-ms-transform: rotate(0);
	transform: rotate(0);
}
.portfolio_navigation .navigation_item .project .nav_project .label {
	font-size: 16px;
	letter-spacing: 0.02em;
	display: block;
	color: var(--tj-white);
}
.portfolio_navigation .navigation_item .project .nav_project .title {
	font-size: 45px;
	margin: 0;
	color: var(--tj-white);
}
.portfolio_navigation .navigation_item.next-project {
	text-align: end;
}
/* END: Popup Section */

/*
* ===============================
* START: Profile Section
* ===============================
*/

.profile-section {
    padding: 100px 0;
    background-color: var(--tj-black-2);
}

/* --- Profile Photo --- */
.profile-photo-box {
    margin-bottom: 30px;
    width: 100%; /* Prend toute la largeur */
    height: 100%; /* Prend toute la hauteur */
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.profile-image {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 20px;
    /* Box Shadow & Border for depth */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(0, 0, 0, 0.05);
}

/* --- Text Content --- */
.profile-content {
    padding-left: 50px;
}

.profile-description .section-title {
    color: var(--tj-heading-primary);
    margin-bottom: 20px;
}

.profile-description .lead {
    color: var(--tj-grey-4);
    font-size: var(--tj-fz-p);
    line-height: 1.8;
}

.about-summary-text {
    font-size: 1rem;
    color: rgba(28, 42, 58, 0.75);
    margin-bottom: 0;
}

/* --- Info Cards Grid (Job, Location...) --- */
.about-stat-grid .about-stat-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    background: rgba(255, 255, 255, 0.92);
    border-radius: 18px;
    padding: 18px 20px;
    border: 1px solid rgba(30, 120, 255, 0.12);
    box-shadow: 0 12px 24px rgba(15, 28, 42, 0.08);
    height: 100%;
}

.about-stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: rgba(30, 120, 255, 0.15);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--tj-theme-primary);
    font-size: 20px;
    flex-shrink: 0;
}

.about-stat-label {
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.75rem;
    font-weight: var(--tj-fw-sbold);
    color: var(--tj-heading-primary);
    margin-bottom: 6px;
}

.about-stat-value {
    color: rgba(28, 42, 58, 0.82);
    font-size: 0.95rem;
    line-height: 1.4;
}

@media (max-width: 767px) {
    .about-stat-grid .about-stat-card {
        padding: 16px;
    }
}

/* --- Shared Title Styles (Black/White variants) --- */
.section-title-perso-white {
	color: var(--tj-white);
    font-size: 45px;
    font-family: var(--tj-ff-heading);
    font-weight: var(--tj-fw-bold);
    margin-bottom: 40px;
    text-align: center;
    width: 100%;
    position: relative;
    display: inline-block;
}

.section-title-perso-white::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -20px;
    width: 60px;
    height: 3px;
    background-color: var(--tj-theme-primary);
    border-radius: 2px;
}

.section-title-perso-black {
	color: black;
    font-size: 45px;
    font-family: var(--tj-ff-heading);
    font-weight: var(--tj-fw-bold);
    margin-bottom: 40px;
    text-align: center;
    width: 100%;
    position: relative;
    display: inline-block;
}

.section-title-perso-black::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -20px;
    width: 60px;
    height: 3px;
    background-color: var(--tj-theme-primary);
    border-radius: 2px;
}

/* --- Skills List --- */
.skills-title {
    color: var(--tj-heading-primary);
    margin-bottom: 30px;
}

.skill-item .skill-icon {
    color: var(--tj-theme-primary);
}

.skill-item .skill-text {
    color: var(--tj-heading-primary);
}
/* ===============================
* END: Profile Section
* =============================== */

/*
* ===============================
* START: Timeline Section
* =============================== */

/* --- Layout --- */
.timeline-section {
    padding: 100px 0;
    background: var(--tj-theme-accent-perso);
}

/* --- Category Title --- */
.timeline-category-title {
    color: var(--tj-white);
    font-size: 40px;
    font-family: var(--tj-ff-heading);
    font-weight: var(--tj-fw-bold);
    margin-bottom: 40px;
    padding-left: 40px;
}

.timeline-category-icon {
    margin-right: 8px;
    font-size: 0.9em;
}

/* --- Timeline Item --- */
.timeline-item {
    position: relative;
    padding: 20px 0 20px 40px;
    margin-left: 20px;
}

/* Timeline Point (Circle) */
.timeline-item::before {
    content: '';
    position: absolute;
    top: 32px;
    left: 0;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--tj-white);
    border: 4px solid var(--tj-theme-primary);
    z-index: 1;
    box-shadow: 0 0 10px rgba(30, 120, 255, 0.5);
}

/* Timeline Vertical Line */
.timeline-item:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 56px;
    left: 10px;
    width: 4px;
    height: calc(100% - 24px);
    background: var(--tj-white);
    z-index: 0;
}

/* --- Date Badge --- */
.timeline-date {
    font-size: 16px;
    color: var(--tj-white);
    margin-bottom: 10px;
    font-family: var(--tj-ff-heading);
    font-weight: var(--tj-fw-medium);
    background: var(--tj-theme-primary);
    padding: 8px 16px;
    border-radius: 20px;
    display: inline-block;
}

/* --- Content Card --- */
.timeline-content {
    background: var(--tj-white);
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.timeline-title {
    font-size: 24px;
    margin-bottom: 5px;
    color: var(--tj-heading-primary);
    font-family: var(--tj-ff-heading);
    font-weight: var(--tj-fw-bold);
}

.timeline-company {
    font-size: 16px;
    color: var(--tj-theme-primary);
    margin-bottom: 10px;
    font-family: var(--tj-ff-body);
    font-weight: var(--tj-fw-medium);
}

.timeline-description {
    font-size: 16px;
    color: var(--tj-heading-primary);
    line-height: 1.6;
    font-family: var(--tj-ff-body);
    font-weight: var(--tj-fw-regular);
    margin-bottom: 0;
}

/* --- Company Logo --- */
.company-logo {
    width: auto;
    height: 24px;
    margin-right: 8px;
    object-fit: contain;
}

.company-logo-sm {
    height: 15px;
}
/* ===============================
* END: Timeline Section
* =============================== */

/*
* ===============================
* START: Competences Section
* ===============================
*/
.competences-section {
    padding: 120px 0;
    background: var(--tj-white);
    overflow: hidden; /* Pour les animations qui dépassent */
}

.competences-section .section-title-competences{
    font-size: 45px;
	color: #0a0a0a;
	display: inline-block;
}

.competences-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    padding: 20px;
    transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform; /* Optimisation des performances */
}

.competence-card {
    background: linear-gradient(145deg, #f8f9fa, #f0f2f5);
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1),
                background 0.6s cubic-bezier(0.16, 1, 0.3, 1); /* Transition plus longue et plus fluide */
    border: 1px solid rgba(40, 116, 228, 0.504);
    box-shadow: 
        -5px -5px 10px rgba(255, 255, 255, 0.8),
        5px 5px 10px rgba(0, 0, 0, 0.03),
        0 8px 20px -10px rgba(0, 0, 0, 0.3),
        inset 0 0 0 rgba(255, 255, 255, 0),
        inset 0 0 0 rgba(0, 0, 0, 0);
    transform: scale(0.95) translateY(0);
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1),
                background 0.3s ease-in-out; /* Transition spécifique pour le background */
    border-radius: 25px;
    padding: 30px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    box-shadow: 0 10px 30px rgba(0,0,0,0.05);
}

.competence-card:hover {
    transform: scale(0.95) translateY(-5px);
    box-shadow: 
        -2px -2px 5px rgba(255, 255, 255, 0.8),
        2px 2px 5px rgba(0, 0, 0, 0.05),
        0 12px 25px -12px rgba(0, 0, 0, 0.35),
        inset 0 0 0 rgba(255, 255, 255, 0),
        inset 0 0 0 rgba(0, 0, 0, 0);
}

.competence-card.mleave {
    transform: scale(0.9);
    opacity: 0.5;
}

.competence-card.active {
    opacity: 1;
    transform: translateY(0);
    background: rgba(30, 120, 255, 0.1);
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    border: 2px solid var(--tj-theme-primary);
}

.competence-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, var(--tj-theme-primary), var(--tj-theme-secondary));
    border-radius: 50%;
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    font-size: 24px;
    color: var(--tj-white);
    border: 1px solid rgba(255, 255, 255, 0.2);
    box-shadow: 0 5px 15px rgba(30, 120, 255, 0.2);
}

.competence-card.active .competence-icon {
    width: 80px;
    height: 80px;
    font-size: 32px;
    background: linear-gradient(145deg, var(--tj-theme-primary), var(--tj-theme-accent-1));
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(30, 120, 255, 0.3);
}

.competence-title {
    color: var(--tj-heading-primary);
    font-size: 22px;
    text-align: center;
    margin-bottom: 15px;
    transition: all 0.4s ease;
    font-weight: var(--tj-fw-bold);
}

.competence-description {
    color: var(--tj-grey-4);
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    max-height: 0;
    opacity: 0;
    transform: translateY(20px);
    overflow: hidden;
    text-align: center;
    margin: 0;
}

.competence-card.active .competence-description {
    max-height: 200px;
    opacity: 1;
    transform: translateY(0);
    margin: 20px 0;
}

.competence-projects-btn {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
    margin: 10px auto 0;
    padding: 12px 30px;
    /* background: linear-gradient(145deg, var(--tj-theme-primary), var(--tj-theme-secondary)); */
	background: var(--tj-theme-primary);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 30px;
    color: var(--tj-white);
    text-decoration: none;
	font-size: 0.8rem;
	font-weight: var(--tj-fw-bold);
	text-transform: uppercase;
    box-shadow: 0 5px 20px rgba(30, 120, 255, 0.2);
}

.competence-card.active .competence-projects-btn {
    opacity: 1;
    transform: translateY(0);
}

.competence-projects-btn:hover {
	background: var(--tj-theme-primary);
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(30, 120, 255, 0.3);
}

/* Responsive adjustments */
@media (max-width: 992px) {
    .competences-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .competences-grid {
        grid-template-columns: 1fr;
    }
}

.competence-subtitle {
    color: var(--tj-theme-primary);
    font-size: 14px;
    text-align: center;
    margin-top: -10px;
    margin-bottom: 10px;
    font-weight: var(--tj-fw-medium);
    opacity: 0.8;
    transition: all 0.4s ease;
}

.competence-card.active .competence-subtitle {
    opacity: 1;
    color: var(--tj-theme-secondary);
}

.competence-description {
    margin-top: -5px; 
}
/* ===============================
* END: Competences Section
* =============================== */

/*
* ===============================
* START: Projects Section
* =============================== */
.projects-section {
    padding-top: 120px;
    padding-bottom: 120px;
    background: var(--tj-theme-accent-perso);
}

.project-card {
    background: rgba(255, 255, 255, 0.453);
    border-radius: 15px;
    overflow: hidden;
    transition: all 0.3s ease;
    margin-bottom: 30px;
}

.project-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}

.project-card .image-box {
    position: relative;
    overflow: hidden;
}

.project-card .image-box img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.project-card:hover .image-box img {
    transform: scale(1.1);
}

.project-card .content-box {
    padding: 20px;
    background: rgba(30, 120, 255, 0.1);
    backdrop-filter: blur(5px);
}

.project-card .content-box h3 {
    color: var(--tj-white);
    margin-bottom: 10px;
    font-size: 1.5rem;
}

.project-card .content-box p {
    color: var(--tj-grey-2);
    margin-bottom: 15px;
}

.project-card .competences-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.project-card .competence-tag {
    background: var(--tj-theme-primary);
    color: var(--tj-white);
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.8rem;
}

/* Style spécifique pour le bouton "Tous" */
.filter-button-group button.tj-filter-btn[data-filter="*"] {
    border-color: rgba(0, 0, 0, 0.15);
    background: rgba(255, 255, 255, 0.95);
}

.filter-button-group button.tj-filter-btn[data-filter="*"].tj-active-filter {
    pointer-events: none; /* Désactive les clics uniquement quand actif */
    opacity: 0.9;
}

/* Réactive le hover même quand actif */
.filter-button-group button.tj-filter-btn[data-filter="*"].tj-active-filter:hover {
    transform: translateY(-2px);
}

/* Responsive uniquement pour les boutons de filtre */
@media (max-width: 992px) {
    .filter-button-group {
        gap: 8px;
        justify-content: flex-start;
        padding: 0 20px;
    }
}

@media (max-width: 768px) {
    .filter-button-group {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 10px;
        justify-content: flex-start;
        margin: 0 -20px 30px;
        padding: 0 20px;
    }
    
    .filter-button-group::-webkit-scrollbar {
        height: 4px;
    }
    
    .filter-button-group::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.1);
    }
    
    .filter-button-group::-webkit-scrollbar-thumb {
        background: var(--tj-theme-primary);
        border-radius: 2px;
    }
}

@media (max-width: 480px) {
    .filter-button-group {
        gap: 6px;
    }
}

.tj-filter-btn {
    min-width: 120px !important; /* Largeur minimale réduite */
    padding: 10px 15px !important; /* Padding ajusté pour réduire la largeur */
}

/* Ajustements responsive */
@media (max-width: 768px) {
    .tj-filter-btn {
        min-width: 90px; /* Largeur encore plus réduite sur mobile */
        padding: 6px 12px;
    }
}

/* Conteneur principal des projets */
.projects-section .container {
    max-width: 1300px;
    padding: 0 20px;
}

/* Grille des projets */
.portfolio-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3 colonnes de taille égale */
    gap: 30px; /* Espacement entre les cartes */
    padding: 20px 0;
}

.portfolio-item {
    width: 100%;
    display: flex;
    justify-content: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.project-card {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 15px;
    overflow: hidden;
    transition: all 0.3s ease;
    width: 100%; /* Prend toute la largeur disponible */
    height: 450px;
    display: flex;
    flex-direction: column;
    cursor: pointer;
    position: relative;
}

.project-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2);
}

/* Conteneur d'image */
.project-card .image-box {
    position: relative;
    overflow: hidden;
    height: 250px; /* Hauteur fixe pour l'image */
    flex-shrink: 0; /* Empêche le redimensionnement */
}

/* Image du projet */
.project-card .image-box img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Force l'image à remplir le conteneur */
    transition: transform 0.3s ease;
}

/* Contenu de la carte */
.project-card .content-box {
    padding: 20px;
    background: rgba(30, 120, 255, 0.1);
    backdrop-filter: blur(5px);
    flex-grow: 1; /* Permet au contenu de remplir l'espace restant */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.project-card .content-box h3 {
    color: var(--tj-white);
    margin-bottom: 10px;
    font-size: 1.5rem;
}

.project-card .content-box p {
    color: var(--tj-grey-2);
    margin-bottom: 15px;
}

.project-card .competences-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.project-card .competence-tag {
    background: var(--tj-theme-primary);
    color: var(--tj-white);
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.8rem;
}

/* Style pour la fenêtre modale */
.project-modal {
    background: radial-gradient(circle at 30% 50%, #ffffff, #e9e9ff 70%, #ffffff); /* linear-gradient(145deg, rgba(255, 255, 255, 0.95), rgba(229, 229, 229, 0.95)); */
    border-radius: 20px;
    color: #000000;
    padding: 30px;
    max-width: 1100px;
	
    margin: 20px auto;
    position: relative;
    box-shadow: 
        0 10px 30px rgba(38, 120, 253, 0.396),
        inset 0 0 0 1px rgba(255, 255, 255, 0.5);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.project-modal .modal-header {
    margin-bottom: 30px;
	padding: 15px;
	color: #000 !important;
}

.project-modal .modal-header h2 {
	color: #000 !important;
	font-size: 2.5rem;
    text-align: center;
    margin: 0 auto;
    width: 100%;
    position: relative;
    display: block;
}

.project-modal .modal-header h2::after {
    content: '';
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: -15px;
    width: 300px; /* Largeur augmentée de 60px à 100px */
    height: 3px;
    background-color: var(--tj-theme-primary);
    border-radius: 2px;
}

.project-modal .modal-section {
    margin-bottom: 25px;
}

.project-modal .modal-section-title {
    color: var(--tj-theme-primary);
    margin-bottom: 15px;
    font-size: 1.3rem;
}

.project-team-info {
    font-style: italic;
    color: #666;
    margin-top: -10px;
    margin-bottom: 20px;
    font-size: 0.9em;
}

/* Responsive pour les écrans moyens */
@media (max-width: 992px) {
    .portfolio-grid {
        grid-template-columns: repeat(2, 1fr); /* 2 cartes par ligne */
    }
}

/* Responsive pour les petits écrans */
@media (max-width: 576px) {
    .portfolio-grid {
        grid-template-columns: 1fr; /* 1 carte par ligne */
    }
    
    .project-card {
        height: auto; /* Hauteur automatique sur mobile */
    }
    
    .project-card .image-box {
        height: 200px; /* Hauteur réduite sur mobile */
    }
}

@media (min-width: 992px) {
    .portfolio-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 30px;
    }
    
    .portfolio-item {
        width: 100%;
        max-width: 100%;
        flex: 0 0 calc(33.333% - 20px);
    }
}

@media (max-width: 991px) and (min-width: 768px) {
    .portfolio-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }
}

@media (max-width: 767px) {
    .portfolio-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

.project-card {
    height: 400px; /* Hauteur uniformisée */
    margin: 0; /* Suppression des marges parasites */
}

.project-image {
    height: 250px; /* Fixe la hauteur de l'image */
}

.project-info {
    height: 120px; /* Hauteur fixe pour la zone d'info */
    padding: 15px;
}

/* Nouvelle classe dédiée */
.projects-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(300px, 1fr));
    gap: 30px;
    padding: 20px 0;
    width: 100%;
}

/* Suppression des hauteurs fixes */
.project-card {
    display: flex;
    flex-direction: column;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 15px;
    overflow: hidden;
    transition: transform 0.3s ease;
}

/* Image adaptative */
.project-image {
    height: 200px; 
    min-height: 200px;
}

/* Contenu flexible */
.project-info {
    padding: 12px 15px; /* Réduction du padding vertical */
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    max-height: 130px; /* Réduction de 150px à 130px */
    overflow-y: auto;
}

/* Corrections responsive */
@media (max-width: 1200px) {
    .projects-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .projects-grid {
        grid-template-columns: 1fr;
    }
    
    .project-image {
        height: 150px;
    }
    .project-info {
        max-height: 100px; /* Réduction plus importante sur mobile */
        padding: 10px 12px; /* Padding réduit */
    }
}

/* Animations modales */
.my-mfp-zoom-in .zoom-anim-dialog {
    animation: modalSlideIn 0.6s cubic-bezier(0.23, 1, 0.32, 1);
}

.mfp-removing .zoom-anim-dialog {
    animation: modalSlideOut 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}

@keyframes modalSlideIn {
    0% {
        opacity: 0;
        transform: translateY(50px) scale(0.95);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes modalSlideOut {
    0% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
    100% {
        opacity: 0;
        transform: translateY(-50px) scale(0.95);
    }
}

/* Galerie modale */
.modal-gallery {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* Changé de 3 à 2 colonnes */
    gap: 15px;
    margin-top: 25px;
}

.modal-gallery-item {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.3s ease;
}

.modal-gallery-item img {
    width: 100%;
    height: 300px; /* Augmenté de 250px à 300px */
    object-fit: cover;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.modal-gallery-item:hover {
    transform: translateY(-3px);
}

.modal-gallery-item::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,0.7) 100%);
    pointer-events: none;
}

@media (max-width: 768px) {
    .modal-gallery {
        grid-template-columns: 1fr; /* Une seule colonne sur mobile */
    }
    
    .modal-gallery-item img {
        height: 200px; /* Augmenté de 150px à 200px pour mobile */
    }
}


.modal-image-viewer {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 24px;
    background: rgba(8, 10, 24, 0.92);
    backdrop-filter: blur(6px);
    z-index: 1400;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s ease;
}

.modal-image-viewer.is-active {
    opacity: 1;
    pointer-events: auto;
}

.modal-image-viewer__content {
    position: relative;
    max-width: min(1100px, 92vw);
    width: 100%;
    transform: translateY(24px) scale(0.95);
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.modal-image-viewer.is-active .modal-image-viewer__content {
    transform: translateY(0) scale(1);
}

.modal-image-viewer__img {
    width: 100%;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 30px 60px rgba(8, 10, 24, 0.45);
}

.modal-image-viewer__caption {
    margin-top: 18px;
    text-align: center;
    color: rgba(255, 255, 255, 0.85);
    font-size: 1rem;
    letter-spacing: 0.4px;
}

.modal-image-viewer__caption:empty {
    display: none;
}

.modal-image-viewer__close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.15);
    background: rgba(10, 12, 26, 0.75);
    backdrop-filter: blur(8px);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease, background 0.3s ease, border-color 0.3s ease;
}

.modal-image-viewer__close::before,
.modal-image-viewer__close::after {
    content: "";
    position: absolute;
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: #ffffff;
    transition: transform 0.3s ease;
}

.modal-image-viewer__close::before {
    transform: rotate(45deg);
}

.modal-image-viewer__close::after {
    transform: rotate(-45deg);
}

.modal-image-viewer__close:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.35);
    transform: scale(1.05);
}

.modal-image-viewer__close:active {
    transform: scale(0.96);
}

body.modal-image-open {
    overflow: hidden;
}

@media (max-width: 768px) {
    .modal-image-viewer {
        padding: 24px 16px;
    }

    .modal-image-viewer__content {
        max-width: 100%;
    }
}

.mfp-container {
    padding: 0 !important; /* Supprimer les paddings internes */
}

.mfp-inline-holder .mfp-content {
    max-width: 1800px !important; /* Forcer la largeur maximale */
    width: 95% !important; /* Forcer la largeur relative */
    margin: 2rem auto !important; /* Centrer la modale */
}

.popup_content_area {
    max-width: 100% !important; /* S'assurer qu'il n'y a pas de limite interne */
    width: 100% !important; /* Prendre toute la largeur disponible */
    margin: 0 !important; /* Supprimer les marges internes */
}

/* Ajustements pour le contenu */
.popup_modal_content {
    padding: 90px 80px;
    width: 100%; /* Prendre toute la largeur disponible */
}

.popup_modal_img {
    padding: 70px 60px 0;
    width: 100%; /* Prendre toute la largeur disponible */
}

/* Adaptation pour très grands écrans */
@media (min-width: 1920px) {
    .mfp-inline-holder .mfp-content {
        max-width: 2000px !important;
    }
}

/* Adaptation mobile révisée */
@media (max-width: 1600px) {
    .mfp-inline-holder .mfp-content {
        max-width: 95% !important;
    }
}

@media (max-width: 1200px) {
    .popup_modal_content {
        padding: 60px 50px;
    }
    
    .popup_modal_img {
        padding: 50px 40px 0;
    }
}

@media (max-width: 768px) {
    .mfp-inline-holder .mfp-content {
        max-width: 98% !important;
    }
    
    .popup_modal_content {
        padding: 40px 30px;
    }
    
    .popup_modal_img {
        padding: 30px 20px 0;
    }
}

/* Animation d'ouverture */
.mfp-ready .mfp-content {
    animation: modalOpen 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    backface-visibility: hidden; /* Évite les saccades */
    transform: translateZ(0); /* Optimise le rendu */
}

@keyframes modalOpen {
    0% {
        opacity: 0;
        transform: translateY(10px) scale(0.98);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Animation de fermeture */
.mfp-removing .mfp-content {
    animation: modalClose 0.15s ease-in both;
}

@keyframes modalClose {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    100% {
        opacity: 0;
        transform: scale(0.98);
    }
}

/* Animation de l'overlay */
.mfp-bg {
    opacity: 0;
    transition: opacity 0.2s ease-out;
}

.mfp-ready.mfp-bg {
    opacity: 0.9;
}

.mfp-removing.mfp-bg {
    opacity: 0;
}

/* Optimisation des performances */
.mfp-wrap,
.mfp-content {
    will-change: transform, opacity;
}

/* Style pour le lien GitHub dans les modales */
.github-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background-color: var(--tj-theme-primary);
    color: var(--tj-white);
    text-decoration: none;
    border-radius: 5px;
    transition: all 0.3s ease;
}

.github-link:hover {
    background-color: var(--tj-theme-secondary);
    transform: translateY(-2px);
}

.github-link i {
    font-size: 20px;
}

.modal-grid-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-top: 30px;
}

.modal-grid-column {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

@media (max-width: 768px) {
    .modal-grid-container {
        grid-template-columns: 1fr;
    }
}

.competence-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 20px; /* Padding légèrement réduit */
    background: white;
    color: black; /* Couleur du texte en thème primaire */
    text-decoration: none;
    border-radius: 30px;
    border: 1px solid rgba(30, 120, 255, 0.1); /* Bordure très légère */
    transition: all 0.3s ease;
    font-size: 0.8rem; /* Police plus petite */
	font-weight: var(--tj-fw-bold);
    text-transform: uppercase;
    box-shadow: 0 3px 10px rgba(30, 120, 255, 0.1); /* Ombre plus subtile */
	margin-bottom: 5px;
}

.competence-btn:hover {
    background: var(--tj-theme-primary);
    color: white; /* Changement de couleur du texte au survol */
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(30, 120, 255, 0.2); /* Ombre plus prononcée au survol */
}

.projects-grid {
    margin: 0 -15px;
}

.project-item {
    width: 100%;
    padding: 15px;
}

@media (min-width: 772px) {
    .project-item {
        width: 50%;
    }
}

@media (min-width: 992px) {
    .project-item {
        width: 33.333%;
    }
}

/* Modifications pour les cartes de projet */
.projects-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    justify-content: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.project-item {
    flex: 1 1 calc(33.333% - 20px);
    max-width: calc(33.333% - 20px);
    min-width: 300px;
}

/* Responsive adjustments */
@media (max-width: 1200px) {
    .project-item {
        flex: 1 1 calc(50% - 20px);
        max-width: calc(50% - 20px);
    }
}

@media (max-width: 771px) {
    .project-item {
        flex: 1 1 100%;
        max-width: 100%;
    }
}
/* ===============================
* END: Projects Section
* =============================== */

/*
* ===============================
* START: Contact Section
* =============================== */

/* Section principale */
.contact-section {
    background-color: var(--tj-theme-accent-perso);
    padding: 100px 0;
    position: relative;
    overflow: hidden;
}

/* Form box */
.contact-form-box {
    background: var(--tj-theme-accent-perso);
    backdrop-filter: blur(10px);
    border-radius: 20px;
    padding: 50px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.1);
    margin-bottom: 30px;
}

/* Titre de la section */
.contact-form-box .section-title-perso {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 20px;
    position: relative;
    display: inline-block;
    color: white !important;
}

.contact-form-box .section-title-perso::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -10px;
    width: 60px;
    height: 3px;
    background-color: var(--tj-theme-primary);
    border-radius: 2px;
}

/* Description du formulaire */
.contact-form-box .section-header p {
    color: rgba(255, 255, 255, 0.8);
}

/* Inputs du formulaire */
.contact-input,
.contact-select,
.contact-textarea {
    background: rgba(255, 255, 255, 0.1) !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    color: white !important;
    padding: 15px 20px !important;
    border-radius: 12px !important;
    transition: all 0.3s ease;
    width: 100%;
    margin-bottom: 15px;
}

.contact-input::placeholder,
.contact-textarea::placeholder {
    color: rgba(255, 255, 255, 0.6) !important;
}

.contact-input:focus,
.contact-select:focus,
.contact-textarea:focus {
    border-color: var(--tj-theme-primary) !important;
    box-shadow: 0 0 0 3px rgba(115, 67, 210, 0.1) !important;
    outline: none;
}

/* Contact info list */
.contact-info-list {
    padding-left: 0;
    list-style: none;
    margin-top: 30px;
}

.contact-info-list li {
    margin-bottom: 30px;
    padding-left: 70px;
    position: relative;
    cursor: pointer;
}

.contact-info-list .icon-box {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: var(--tj-theme-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 0;
    top: 0;
}

.contact-info-list .icon-box i {
    color: white;
    font-size: 20px;
    position: relative;
    top: 4px;
}

.contact-info-list .text-box p {
    color: rgba(0, 0, 0, 0.8);
    margin-bottom: 5px;
    font-size: 14px;
}

.contact-info-list .text-box a {
    color: white;
    text-decoration: none;
    font-size: 18px;
    font-weight: 500;
    transition: all 0.3s ease;
    display: block;
}

.contact-info-list .text-box a:hover {
    color: var(--tj-theme-primary);
}

.contact-info-list .text-box span {
    color: rgb(0, 0, 0);
    font-weight: bold;
}

/* Boutons */
.btn.tj-btn-contact {
    background-color: white;
    color: black;
    transition: all 0.3s ease;
    padding: 12px 30px;
    font-size: 16px;
    font-weight: 500;
    border-radius: 50px;
    display: block;
    width: 100%;
    line-height: 1;
    position: relative;
    overflow: hidden;
}

.btn.tj-btn-contact:hover {
    background-color: var(--tj-theme-primary);
    color: white;
    border-color: var(--tj-theme-primary);
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.form_btn {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

.tj-btn-primary {
    background: var(--tj-theme-primary);
    color: white;
    border: none;
    padding: 15px 30px;
    border-radius: 30px;
    font-size: 16px;
    font-weight: 500;
    transition: all 0.3s ease;
    cursor: pointer;
    width: 100%;
}

.tj-btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(115, 67, 210, 0.3);
}

/* Boutons des modales de contact */
.contact-modal .modal-action-btn {
    border: none;
    cursor: pointer;
}

/* Responsive */
@media (max-width: 991px) {
    .contact-section {
        padding: 80px 0;
    }
    
    .contact-form-box {
        padding: 30px;
    }
    
    .contact-info-list li {
        padding-left: 60px;
    }
    
    .contact-info-list .icon-box {
        width: 40px;
        height: 40px;
    }
}

@media (max-width: 767px) {
    .contact-section {
        padding: 60px 0;
    }
    
    .contact-form-box {
        padding: 20px;
    }
    
    .contact-info-list li {
        padding-left: 50px;
    }
    
    .contact-info-list .icon-box {
        width: 35px;
        height: 35px;
    }
    
    .contact-info-list .text-box a {
        font-size: 16px;
    }
}
/* ===============================
* END: Contact Section
* =============================== */

/*
* ===============================
*  START: Footer Area
* ===============================
*/
.tj-footer-area {
	background: var(--tj-theme-accent-1);
	padding: 50px 0 20px;
}
.footer-logo-box {
	max-width: 75px;
	width: 100%;
	margin: 0 auto 35px;
}
.footer-logo-box a {
	display: inline-block;
}
.footer-menu ul {
	margin: 0 0 27px;
	padding: 0;
	list-style: none;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	gap: 35px;
}
.footer-menu ul li a {
	color: var(--tj-white);
	font-size: var(--tj-fz-btn);
	font-weight: var(--tj-fw-bold);
	text-decoration: none;
	position: relative;
}
.footer-menu ul li a::before {
	content: "";
	position: absolute;
	width: 100%;
	height: 2px;
	border-radius: 4px;
	background: var(--tj-theme-primary);
	background: -o-linear-gradient(
		190deg,
		var(--tj-theme-secondary) 0%,
		var(--tj-theme-primary) 100%
	);
	background: linear-gradient(
		260deg,
		var(--tj-theme-secondary) 0%,
		var(--tj-theme-primary) 100%
	);
	bottom: -1px;
	left: 0;
	-webkit-transform-origin: right;
	-ms-transform-origin: right;
	transform-origin: right;
	-webkit-transform: scaleX(0);
	-ms-transform: scaleX(0);
	transform: scaleX(0);
	-webkit-transition: -webkit-transform 0.3s ease-in-out;
	transition: -webkit-transform 0.3s ease-in-out;
	-o-transition: transform 0.3s ease-in-out;
	transition: transform 0.3s ease-in-out;
	transition: transform 0.3s ease-in-out, -webkit-transform 0.3s ease-in-out;
}
.footer-menu ul li a:hover::before {
	-webkit-transform-origin: left;
	-ms-transform-origin: left;
	transform-origin: left;
	-webkit-transform: scaleX(1);
	-ms-transform: scaleX(1);
	transform: scaleX(1);
}
.copy-text p {
	margin-bottom: 0;
	color: var(--tj-theme-primary);
	font-weight: var(--tj-fw-light);
}
.copy-text p > a {
	text-decoration: none;
	color: inherit;
	font-weight: var(--tj-fw-medium);
	font-family: inherit;
}
.copy-text p > a:hover {
	color: var(--tj-theme-primary);
}
.copy-text-inspired p {
	margin-bottom: 0;
	color: var(--tj-theme-primary);
	font-weight: var(--tj-fw-light);
    font-size: 14px;
}
/* ===============================
* END: Footer Area
* =============================== */

/* ===============================
* START: Performance Optimizations
* =============================== */

/* Utiliser des animations composites (transform/opacity uniquement) */
.project-card,
.competence-card,
.hero-image-box img,
.profile-photo-box img {
	will-change: transform, opacity;
}

/* Optimiser les animations sur GPU */
.wow {
	will-change: transform, opacity;
	backface-visibility: hidden;
}

/* Améliorer le contraste pour l'accessibilité */
.about-stat-label,
.timeline-description,
.competence-description p {
	color: #333;
}

/* Améliorer le contraste des liens */
.footer-menu a,
.header-menu a {
	color: rgba(255, 255, 255, 0.9);
}

.footer-menu a:hover,
.header-menu a:hover {
	color: var(--tj-theme-primary);
}

/* Content visibility pour les sections hors écran */
.timeline-section,
.competences-section,
.projects-section,
.contact-section {
	content-visibility: auto;
	contain-intrinsic-size: 0 500px;
}

/* Optimisation des images */
img {
	image-rendering: -webkit-optimize-contrast;
}

/* ===============================
* END: Performance Optimizations
* =============================== */