/* 1️⃣ GLOBAL STYLES */
body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: linear-gradient(to bottom, #A7C4AD, #809D87);
    margin: 0;
}

a {
    text-decoration: none;
}

/* 2️⃣ HEADER */
header {
    font-family: "Arial Black", Arial, Verdana, sans-serif;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 30vh;
    background: linear-gradient(to right, #e2e2fd, #a2c0fa, #e2e2fd);
    box-shadow: 0px 0.5rem 0.8rem rgba(0, 0, 0, 0.2);
    padding: 1rem;
	width: 100vw; /* ✅ Force le header à prendre toute la largeur */
    max-width: 100%;
    overflow: hidden; /* ✅ Empêche tout débordement inutile */
}



/*

header img {
    width: 40vw;
    max-width: 90%;
    height: auto;
   animation: float 5s infinite ease-in-out;
    will-change: transform;
}*/

.header-logo {
    width: 40vw;
    max-width: 90%;
    height: auto;
	justify-content: center;
    animation: float 5s infinite ease-in-out;
}

@keyframes float {
    0% { transform: translateY(0rem); }
    50% { transform: translateY(-0.25rem); }
    100% { transform: translateY(0rem); }
}

header h2 {
    color: #6035ff;
    text-shadow: 0.2rem 0.2rem 0.3rem rgba(255, 255, 255, 0.5);
    font-weight: bold;
    font-size: clamp(1.2rem, 3vw, 1.8rem); /* ✅ Ajuste la taille dynamiquement */
}

/*Header languages*/

.lang-select {
    display: flex;
    justify-content: center; /* Centre horizontalement */
    gap: 2rem; /* Espacement entre les drapeaux */
    margin-top: 1rem; /* Ajoute un peu d'espace sous le titre */
}

.flag {
    width: 2.5rem; /* ✅ Taille un peu plus grande pour meilleure visibilité */
    height: auto;
    cursor: pointer;
    display: inline-block; /* ✅ Évite tout problème d'affichage */
    transition: transform 0.2s ease-in-out;
	
}

/* Petit effet hover */
.flag:hover {
    transform: scale(1.1);
}





/* 3️⃣ TITRE ET ICÔNE DES APPS */
.app_title img {
    width: 50vw;
    max-width: 600px;
    height: auto;
    display: block;
    margin: 0 auto;
}

.app_icon img {
    width: 10vw;
    height: auto;
}

/* 4️⃣ CONTENEUR & IMAGES AVEC HOVER */
.hover_image {
    position: relative;
    display: inline-block;
    width: fit-content;
	margin-left: 1.5rem;
}

.hover_image img {
    width: 100%;
    height: auto;
    display: block;
    transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}

.hover_image .hover {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    opacity: 0;
    transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}

.hover_image:hover img:not(.hover) {
    opacity: 0;
    transform: scale(1.05);
}

.hover_image:hover .hover {
    opacity: 1;
    transform: scale(1.05);
}

/* 5️⃣ DESCRIPTION & STRUCTURE DES APPS */
.app {
    font-family: Arial, Verdana, sans-serif;
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: clamp(1rem, 3.5vw, 1.2rem); /* ✅ Taille adaptée à l’écran */
}

.app img {
    margin-left: 2rem;
    margin-right: 1.5rem;
    transition: transform 0.3s ease-in-out;
}

.app img:hover {
    transform: scale(1.1);
}

.app_desc {
    color: black;
    padding-left: 1.25rem;
    margin-left: 1.25rem;
	font-weight: bold;
    font-size: clamp(1.2rem, 3.5vw, 1.5rem); /* ✅ Taille minimum plus grande */
    font-family: "Oswald", "Poppins", Arial , sans-serif;
}

.app ul {
     color: #0A558C; /* Bleu pétrole foncé intermédiaire */
    font-style: italic;
    font-weight: bold;
}

.app_desc, .app_desc ul {
   text-shadow: 0.05em 0.05em 0.2em rgba(255,255,255,0.6);
}

/* 📌 Conteneur d'app avec icône à droite et texte bien aligné */
.app_row {
    display: flex;
    flex-direction: row;
    align-items: flex-start; /* ✅ Aligne l’icône avec le haut du texte */
    justify-content: space-between;
    gap: 1rem;
}

.app_icon {
    display: flex;
    align-items: flex-start; /* ✅ Assure l’alignement en haut */
    justify-content: flex-end;
    flex-shrink: 0;
}




.all_apps {
    flex-grow: 1; /* ✅ Pousse le footer en bas si le contenu est insuffisant */
	overflow-y: auto; /* ✅ Active le scroll si le contenu dépasse */
    max-height: calc(100vh); /* ✅ Ajuste la hauteur max pour éviter le chevauchement du footer */
	padding-bottom: 6rem;
}

.btn {
    display: block; /* Rend le bouton en bloc */
    padding: 0.8rem 1.6rem;
    background: linear-gradient(135deg, #4a90e2, #8e44ad);
	 width: fit-content; /* Ajuste la largeur à son contenu */
    color: white;
    font-size: 1.2rem;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
    border-radius: 2rem;
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.2);
    margin-top: 1rem; /* Espace avec la liste */
	margin: 1rem auto 0 auto; /* Centre horizontalement */
}

/* Effet scale + légère ombre au hover */
.btn:hover {
    transform: scale(1.1);
    box-shadow: 0 0.3rem 0.7rem rgba(0, 0, 0, 0.3);
}




/* 6️⃣ RESPONSIVE - FORMAT 9:16 (Mobile) Portrait */
/* 6️⃣ RESPONSIVE - FORMAT MOBILE (max 3:4) */
@media screen and (max-aspect-ratio: 1/1) {

    /* HEADER MOBILE */
    header {
        height: 22vh;
        padding: 2vh;
    }

    .header-logo  {
        width: 60vw; /* Logo réduit légèrement */
        max-width: 100%;
    }

    /* STRUCTURE APP MOBILE */
    .app_row {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    /* ✅ Correction du centrage parfait ici */
.app_title,
.app_title * {

    width: auto !important; /* Force l'auto-sizing */
    max-width: none !important; /* Retire toutes les restrictions de largeur */
    overflow: visible !important; /* Empêche toute troncature */
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
    .app_title .hover_image {
        display: flex;
        justify-content: center;
        width: 100%;         /* Augmenté de 60vw à 90vw */
        max-width: 100%;      /* Augmenté de 60% à 90% */
        overflow: visible;   /* Changé de hidden à visible */
    }
	
    .app_title img {
        width: 55vw !important;  /* ✅ Taille réduite */
        max-width: 25rem !important; /* ✅ Empêche d'être trop large */
        height: auto !important;
    }

    .app_title img,
    .app_title .hover {
        width: 100%;              /* Prend la largeur complète du parent hover_image */
        height: auto;
        display: block;
    }

    .app_icon {
        margin-top: -3rem;
        margin-bottom: -3rem;
        line-height: 0;
    }

    .app_icon img,
    .app_icon .hover {
        width: 10vw;
        max-width: 6vh;
        height: auto;
        display: block;
    }

    /* GESTION HOVER SANS DÉCALAGE */
    .hover_image {
        position: relative;
        line-height: 0;
    }

    .hover_image img,
    .hover_image .hover {
        display: block;
        width: 100%;
        height: auto;
    }

    .hover_image .hover {
        position: absolute;
        top: 0;
        left: 0;
        opacity: 0;
        transition: opacity 0.3s ease-in-out;
    }

    .hover_image:hover .hover {
        opacity: 1;
    }

    .hover_image:hover img,
    .hover_image:hover .hover {
        transform: scale(1.1);
        transition: transform 0.3s ease-in-out;
    }

    /* DESCRIPTION APP MOBILE */
    .app_desc {
        width: 90%;
        padding-left: 0;
        margin-left: 0;
        text-align: left;
		padding-bottom: 8rem;
		
    }

    .app ul {
        padding-left: 1.5rem;
        margin: 0 auto;
        width: fit-content;
    }

    /* FOOTER MOBILE */
    footer {
        height: 6vh;
        padding: 1vh;
    }


	
	.contact img {
        width: 2.5rem; /* ✅ Icône de contact plus grande */
    }
	
	
	
}







/* Mobile LANDSCAPE*/

@media screen  and (min-aspect-ratio: 1/1) and (max-height: 879px){ 
    header {
        height: clamp(24vh, 36vh, 24rem); /* ✅ Encore plus grand */
        padding: 3vh 0; /* ✅ Ajustement du padding */
        overflow: visible;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 0rem; /* ✅ Réduit l’écart entre les éléments */
    }

    .header-logo {
        width: 32vw; /* ✅ Taille légèrement réduite */
        max-width: 16rem;
		margin-top: 1rem
    }

    header h2 {
        font-size: clamp(1rem, 2vw, 1.6rem); /* ✅ Réduction de la taille de police */
        margin-top: 0rem; /* ✅ Réduction de l’espace au-dessus */
        margin-bottom: 0.2rem; /* ✅ Réduction de l’espace en-dessous */
    }
	
	.app_icon img {
        width: 8vw;  /* ✅ Taille réduite */
        max-width: 6rem; /* ✅ Empêche qu’elle devienne trop grande */
        height: auto;
		margin-right: 0.5rem; /* ✅ Réduit l’espace entre l’icône et le texte */
       
    }
	
	    .app_title img {
        width: 40vw;  /* ✅ Réduit la taille */
        max-width: 20rem; /* ✅ Limite la taille max */
        height: auto;
    }
	
	    .app_desc {
        font-size: clamp(0.8rem, 2vw, 1.2rem); /* ✅ Réduit la taille du texte */
		  padding-left: 0; /* ✅ Supprime l’espace intérieur */
        margin-left: 0; /* ✅ Supprime tout décalage à gauche */
    }

    .app_desc ul {
        padding-left: 1rem; /* ✅ Réduit légèrement l’indentation */
    }

    .app_desc li {
        font-size: clamp(0.75rem, 1.8vw, 1rem); /* ✅ Réduit la taille du texte des listes */
        line-height: 1.2; /* ✅ Réduit l’espacement entre les lignes */
    }
	
	    .app_row {
        display: flex;
        align-items: center; /* ✅ Centre verticalement l’icône et le texte */
        gap: 0.5rem; /* ✅ Réduit l’espace entre l’icône et le texte */
    }
	
	    .lang-select {
        margin-bottom: 2rem; /* ✅ Augmente l’écart entre les drapeaux et le titre */
    }

    .app_title {
        margin-top: 0.5rem; /* ✅ Crée plus d’espace sous les drapeaux */
        margin-bottom: 0rem; /* ✅ Réduit l’espace sous le titre pour le rapprocher de la description */
    }
	
	.app_desc {
		
		margin-top: -1rem;

	}
}



/* 📌 Pour les écrans avec un ratio 1:1 ou plus large */
@media screen and (min-aspect-ratio: 1/1) and (min-height: 879px) {
    .app_title img {
        width: 40vw;
        max-width: 500px;
    }

    .app_icon img {
        width: 8vw;
        max-width: 10vh;
    }

    .header-logo  {
        width: 30vw;
        max-width: 500px;
    }

    header {
        height: 23vh;
        padding: 1vh;
    }

    header h2 {
        font-size: 1.2rem;
    }

    .app_desc {
        font-size: 1rem;
    }

    footer {
        height: 5vh;
        padding: 0.5vh;
    }

    footer p {
        font-size: 1rem;
    }

    .contact img {
        width: 1.5rem;
    }
}





/* 7️⃣ FOOTER */
footer {
	position: fixed; /* ✅ Fixe le footer en bas de l’écran */
    bottom: 0; /* ✅ S’assure qu’il est bien collé en bas */
    display: flex;
    flex-direction: row;
    align-items: center;
    height: 6vh;
    width: 100%;
    justify-content: center;
    background: linear-gradient(to right, #EDEDD8, #C8C7AB, #EDEDD8);
    margin-top: auto;
    box-shadow: 0px -0.4rem 0.6rem rgba(0, 0, 0, 0.15);
    border-top: none;
    padding: 0.5rem;
	z-index: 1000; /* ✅ Assure qu’il passe au-dessus du contenu */
}

footer p {
    font-family: "Oswald", "Poppins", Arial , sans-serif;
	font-weight: body;
    align-items: center;
    font-size: clamp(1rem, 2vw, 1.4rem);
    color: #007BFF;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.contact {
    display: flex;
    align-items: center;
}

.contact img {
    width: 2rem;
    height: auto;
    transition: transform 0.3s ease-in-out;
}

.contact img:hover {
    transform: scale(1.2);
}

footer p a {
    transition: transform 0.3s ease-in-out, color 0.3s ease-in-out;
    color: #007BFF;
    font-weight: bold;
}

footer p a:hover {
    transform: scale(1.1);
    color: #0056b3;
}
