/* Copyright © 2021-2026 GauGoth Corp. All rights reserved */

@charset "utf-8";
/* CSS Document */

/* Note importante : on remarque que la totalité de la version du code "responsive" CSS est gérée 
par la détection du type de "pointer".
("@media (pointer:none), (pointer:coarse) { ... }")

Il en existe 3 types détectables :
- none
  Le mécanisme de saisie principal n'inclut pas de dispositif de pointage. 
  (exemple : assistant vocal)
- coarse
  Le mécanisme de saisie principal inclut un dispositif de pointage dont la précision est limitée.
  (exemple : appareil mobile à écran tactile)
- fine
  Le mécanisme de saisie principal inclut un dispositif de pointage précis.
  (exemple : ordinateur doté d'une souris)

Il s'agit donc d'une ruse pour détecter un écran tactile. 
Par ailleurs, un écran d'ordinateur tactile ne sera pas compté comme "mobile" car toujours doté d'une souris
("mécanisme de saisie principal").

Cette méthode est préférable à la détection de la largeur de l'écran ("@media (max-width: 768px) { ... }") : 
après des tests, on aura remarqué que que celle-ci ne marche pas correctement, 
surtout que de nombreux appareils mobiles ont en réalité une meilleure résolution qu'un écran d'ordinateur (smartphones compris !).
Exemple : Galaxy A13 (test sur navigateur Chrome) : 980 x 1928 (portrait) ; 980 x 332 (paysage)

==> UPDATE :
Il s'agissait en fait d'un problème de viewport. Il faut ajouter cette ligne dans le <head> de chaque fichier HTML. 
Cela a pour effet de régler la largeur de l'écran à la largeur réelle de l'appareil.

<meta name="viewport" content="width=device-width, initial-scale=1">

On peut alors utiliser les media queries classiques avec "max-width" pour le responsive design.
*/

/*########################## Variables CSS ##########################*/
:root {

  /**********************************************************/
  /* Couleurs principales (header, footer, body, container, font) */
  --content-background-color: #ffffff; 
  --text-color: #000000;
  --outline-color: #e19e24;
  --footer-background-color: #292929;
  --body-background: #431f00;
  --article-background-color: #afafaf;

  /**********************************************************/
  /* Couleurs secondaires (textes, liens, boutons, fonds divers) */
  --link-default-color: #3164ca;
  --link-visited-color: #0054ff;

  --article-title-background-color: #5b5b5b;
  --article-sources-background-color: #938b59;
  --article-switch-container-background-color: #686868;
  --article-switch-background-color: #202631;

  --secondary-onDark-text-color: #ffffff;

  --button-background-color: #3498db; /* Même couleur pour le border du no-btn */
  --button-hover-background-color: #1967d3;
  --button-checked-hover-background-color: #2581bd;
  --button-checked-active-background-color: #1c5f9e;
  --button-text-color: #ffffff;

  --dynamic-shadow-color: #595050;

  --background-img-txt-color: #ffffff;

  --outline-color-hover: #f6b338;
  --outline-color-active: #ffa600;
  --outline-color-light: #f2c777;
  --outline-color-lighter: #e4ca9a;

  --footer-background-color-darker: #363636;

  --popup-background-color: rgba(0, 0, 0, 0.75);
  --popup-bandeau-background-color: #e3e3e3e0;

  --white: #ffffff;
  --lighter-grey: #e3e3e3;
  --light-grey: #afafaf;
  --light-medium-grey: #777777;
  --mediumer-grey: #9d9d9d;
  --medium-grey: #898989;
  --dark-grey: #474747;
  --not-so-very-dark-grey: #363636;
  --very-dark-grey: #2a2a2c;
  --very-darker-grey: #1e1e1e;
  --black: #000000;

  /* Autres couleurs */
  --rubrique1-background-color: linear-gradient(#096B3F, #0B977C);
  --cookie-banner-background-color: #292929fa;

  --default-sticky-shadow-color: rgba(0, 0, 0, 0.2);

  --msg-font-color: #000000; /* Force la couleur noire (même en thème sombre) pour les messages d'erreur/avertissement */
  --error-background-light-color: #ffd2d2;
  --error-background-color: #ff6e6e;
  --error-background-hard-color: #e60813;
  --warning-background-light-color: #fff6d1;
  --warning-background-color: #ffd966;
  --info-background-light-color: #d6eaff;
  --info-background-color: #3498db;
  --success-background-light-color: #deffde;
  --success-background-color: #2ecc71;

  --error-border-color: #e60813;
  --warning-border-color: #fff700;
  --info-border-color: #17c7f3;
  --success-border-color: rgb(12, 220, 99);

  --form-text-color: #000000;

  --box-variables-text-color: #000000;

  /**********************************************************/
  /*************** Fonts ************************************/
  --font-family-base: Verdana, Arial, Helvetica, sans-serif;
  --font-size-default: 100%/1.4;
  --font-size-110: 110%/1.4;
  --font-size-120: 120%/1.4;
  --font-size-130: 130%/1.4;
  --font-size-140: 140%/1.4;
  --font-size-90: 90%/1.4;

  /* Buttons */
  --button-border-radius: 7px;
  --button-padding: 10px 15px;
  --button-active-padding: 8px 18px;

  --button-font-size: 120%/1.4;
  --button-hover-font-size: 130%/1.4;

  --button-hover-huge-font-size: 180%/1.4;

  /* Buttons "no-btn" */
  --no-btn-text-color: #000000;
  --no-btn-background-color: #e5e5e5;
  --no-btn-hover-background-color: #c1c1c1;
  --no-btn-active-background-color: #a9a9a9;


  /* Images */
  --dynamic-img-logo-border-radius: 24px;
  --dynamic-img-border-radius: 15px;
  --image-link-border-color: #585858;
  --image-link-border-color-hover: #000000;

  --background-img-bckd-color: #000;

  --default-active-opacity: 0.6;

  --logo-game-transparent-background-color: none;


  /* Other styles */
  --default-border-radius: 24px;
  --default-medium-border-radius: 14px;
  --default-small-border-radius: 10px;
  --default-tiny-border-radius: 5px;

  --default-transition-duration: 0.4s;
  --fast-transition-duration: 0.2s;

  --hr-height: 10px;
  --hr-border-radius: 5px;
  --hr-background: linear-gradient(#725216, #222);

  --cursor-pointer: pointer;


  /* Responsive */
  /* Pas possible malheureusement d'utiliser des variables dans les media queries */
  --max-width-responsive: 768px;
  --default-border-radius-responsive: 12px;

  /**********************************************************/
  --default-onLoad-opacity: 0.6;
  --default-onLoad-transition-duration: 0.6s;

  /* Header */
  /* Default */
  --header-link-color: #000000;
  --header-link-hover-color: #a45220;
  --navbar-box-shadow: 0 4px 6px var(--default-sticky-shadow-color);
  /* Hamburger menu */
  --hamburger-line-color: #000000;
  --hamburger-background-color: rgba(255, 255, 255, 0.95);
  --header-pipe-color: #6a6a6a;

  /* Footer */
  --text-footer-color: #ffffff;
  --separator-footer-color: #e3e3e3;
  --footer-table-font: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;

  /* z-indexs */
  --z-index-scrollToTopBtn: 99;
  --z-index-header: 200;
  --z-index-nav-links-mobile: 100;
  --z-index-hamburger: 101;
  --z-index-popup-background: 999;
  --z-index-popup: 1000;
  --z-index-bandeau: 1001;
  --z-index-cookie-banner: 199;

}

/* Dark theme variables (with media query preference) */
/* Comment this section to disable dark mode (waiting for a complete JS implementation) */
/*
 @media (prefers-color-scheme: dark) {
  :root {
    --content-background-color: var(--very-dark-grey); 
    --text-color: var(--lighter-grey);
    --outline-color: #9d6600;
    --body-background: #000000;
    --footer-background-color: #121212;
    --article-background-color: var(--not-so-very-dark-grey);

    --link-default-color: #4ea1ff;
    --link-visited-color: #82b9ff;

    --outline-color-hover: #a97300;
    --outline-color-active: #d48800;
    --outline-color-light: #b58936;
    --outline-color-lighter: #c3a66e;

    --article-title-background-color: var(--dark-grey);
    --article-sources-background-color: var(--not-so-very-dark-grey);
    --article-switch-container-background-color: #3a3a3a;
    --article-switch-background-color: #121418;

    --secondary-onDark-text-color: #ffffff;
    --dynamic-shadow-color: #000000;

    --button-hover-background-color: #2581bd;
    --button-checked-hover-background-color: #1c5f9e;
    --button-checked-active-background-color: #145080;

    --hr-background: linear-gradient(#323232, #010101);
    --header-link-hover-color: #bc7428;
    --logo-game-transparent-background-color: var(--dark-grey);
  }
}
*/

/*######################### Principaux éléments ##########################*/

body {
	font: var(--font-size-default) var(--font-family-base);
	background: var(--body-background);
	margin: 0;
	padding: 0;
	color: var(--text-color);
  @media (max-width: 768px) {font: var(--font-size-default) var(--font-family-base);}
}

.body_special {
	font: var(--font-size-default) var(--font-family-base);
	background-color: transparent;
	margin: 0;
	padding: 0;
	border:none;
	color: var(--text-color);
  /*No scroll bar*/
  overflow: hidden;
}



/* ~~ Sélecteurs d'éléments/balises ~~ */
ul, ol, dl { /* En raison des variations entre les navigateurs, il est conseillé d'attribuer une valeur de zéro aux marges intérieures et aux marges des listes. A des fins de cohérence, vous pouvez définir les valeurs désirées dans cette zone ou dans les éléments de liste (LI, DT, DD) qu'elle contient. N'oubliez pas que les paramètres que vous définissez ici se répercuteront sur la liste .nav, sauf si vous rédigez un sélecteur plus spécifique. */
	padding: 0;
	margin: 0;
}
h1, h2, h3, h4, h5, h6, p, ul, ol {
	margin-top: 0px;	 /* la suppression de la marge supérieure résout un problème où les marges sortent de leur div conteneur. La marge inférieure restante l'éloignera de tout élément qui suit. */
	padding-right: 15px;
	padding-left: 15px; /* l'ajout de la marge intérieure aux côtés des éléments à l'intérieur des divs, et non aux divs proprement dit, évite le recours à des calculs de modèle de boîte. Une autre méthode consiste à employer une div imbriquée avec marge intérieure latérale. */
	font-family: var(--font-family-base);
}

@media (max-width: 768px) {
  p {
    font: var(--font-size-110) var(--font-family-base);
  }
}

a img { /* ce sélecteur élimine la bordure bleue par défaut affichée dans certains navigateurs autour d'une image lorsque celle-ci est entourée d'un lien. */
	border: none;
}

/* ~~ La définition du style des liens de votre site doit respecter cet ordre, y compris le groupe de sélecteurs qui créent l'effet de survol. ~~ */
a:link {
	color: var(--link-default-color);
	text-decoration: underline; /* à moins que vous ne définissiez un style particulièrement exclusif pour vos liens, mieux vaut prévoir un soulignement, qui garantit une identification visuelle rapide. */
	word-wrap: break-word; 
  overflow-wrap: break-word;
}
/* On a décidé de ne pas utiliser le style visited car moins de cohérence dans la DA*/

a:visited {
	color: var(--link-default-color);
	text-decoration: underline;
  word-wrap: break-word; 
  overflow-wrap: break-word;
}

a:hover, a:active, a:focus { /* ce groupe de sélecteurs offrira à un navigateur au clavier la même expérience de survol que celle d'une personne employant la souris. */
	text-decoration: none;
}

/* ~~ ce conteneur entoure toutes les autres divs, en leur attribuant leur largeur sur base d'un pourcentage ~~ */
.container {
	width: 90%;
	max-width: 1260px;/* une valeur « max-width » peut s'avérer utile pour éviter que cette mise en page ne soit trop large sur un moniteur de grande taille. La lisibilité de la longueur de ligne est ainsi améliorée. IE6 ne tient pas compte de cette déclaration. */
	/*min-width: 780px;*/ /* une valeur « min-width » peut s'avérer utile pour éviter que cette mise en page ne soit trop étroite. La longueur de ligne est ainsi plus lisible dans les colonnes latérales. IE6 ne tient pas compte de cette déclaration. */
	background-color: var(--content-background-color);
	margin: 0 auto; /* la valeur automatique sur les côtés, associée à la largeur, permet de centrer la mise en page. Elle n'est pas nécessaire si vous fixez la largeur du conteneur à 100%. */
  @media (max-width: 768px) {width: 0%; max-width: 100%; min-width: 100%;} /* pour les écrans tactiles, la largeur du conteneur est fixée à 100% pour occuper toute la largeur de l'écran. */
}


/*################################# En-tête et barre de navigation #################################*/
/* ~~aucune largeur n'est attribuée à l'en-tête. Il occupera toute la largeur de votre mise en page. Il contient un espace réservé pour une image, qui doit être remplacé par votre logo lié.~~ */
.header, #header {
	background-color: var(--outline-color);
	padding: 0;
  position: sticky;
  top: 0;
  width: 100%;
  z-index : var(--z-index-header);
}

/* Permet la transition de l'en-tête : en effet, comme le header met un temps supplémentaire à charger,
on veut afficher un rectangle vide en attendant (à l'aide de l'id "header").*/
#header {
  background-color: var(--outline-color);
  height: 114px;
  opacity: var(--default-onLoad-opacity);
  transition: all var(--default-onLoad-transition-duration)  ease-in-out;
  @media (max-width: 768px) {
    height: 75px;
  }
}

#header.loaded {
  background-color: transparent;
  opacity: 1;
  height: auto;
}

.header--hidden {
  transform: translateY(-100%);
}

.navbar {
  display: flex;
  /* Effet concret de space-between :
  - Le premier élément enfant est collé au début du conteneur.
  - Le dernier élément enfant est collé à la fin.
  - L’espace restant est distribué également entre tous les autres éléments (mais pas sur les bords du conteneur).
  Attention : effet seulement avec "display: flex;"*/

  justify-content: space-between; 
  align-items: center;
  padding: 10px 20px;
  background-color: var(--outline-color);
  color: var(--header-link-color);
  box-shadow: var(--navbar-box-shadow);
  @media (max-width: 768px) {
    flex-wrap: wrap;
    padding: 5px 10px;
  }
}

.logo {
  transition: var(--default-transition-duration);
  padding: 5px;
  padding-left: 1px;
  padding-right: 1px;
  border-radius: var(--default-border-radius);
  height: 80px;
  width: 80px;
   @media (max-width: 768px) {
    height: 60px; 
    width: 60px;
    border-radius: var(--default-border-radius-responsive);
  }
}

.logo:hover {
  box-shadow: 5px 6px 20px var(--dynamic-shadow-color);
  transition: var(--default-transition-duration);
}

.logo:active, .logo:focus {
  box-shadow: 5px 6px 20px var(--dynamic-shadow-color);
  opacity: var(--default-active-opacity);
  transition: var(--default-transition-duration);
}

.nav-links {
  display: flex;
  align-items: center;
  list-style: none;
  text-decoration : none;
  margin: 0;
  padding: 0;
}

.header-link {
  margin: 20px 20px;
  @media (max-width: 768px) {
    margin: 10px 20px;
  }
}

/* La technique JS de vérifier la hauteur des mots ne marche pas correctement dans la v. Anglaise : 
en effet, les liens ne comportent qu'un seul mot (d'à peu près le même nombre de lettres) : 
la hauteur est presque toujours la même.*/
.nav-links li a {
  color: var(--header-link-color);
  text-decoration: none;
  /* Ajout pour éviter que les longs mots ne débordent du menu de navigation (pour aider pour le JS) 
  En fait ça marche pas... */
  word-wrap: break-word;
  overflow-wrap: break-word;
  font: bold var(--font-size-130) var(--font-family-base);
  @media (max-width: 768px) {font: normal var(--font-size-140) var(--font-family-base);}
}

.nav-links li a:active, .nav-links li a:focus, .nav-links li a:hover {
  color : var(--header-link-hover-color);
}

.nav-links li a:active, .nav-links li a:focus {
  text-decoration: underline;
}


.nav-links-other {
  color: var(--header-link-color);
  text-decoration: none;
  font-weight: bold;
}

.nav-links-other:link {
  color: var(--header-link-color);
  text-decoration: none;
}

.nav-links-other:visited {
  color: var(--header-link-color);
  text-decoration: none;
}

.nav-links-other:active, .nav-links-other:focus, .nav-links-other:hover {
  color : var(--header-link-hover-color);
}

.nav-links-other:active, .nav-links-other:focus {
  text-decoration: underline;
}

/*### LANGUAGE ###*/ 
.btn-container {
  display: table-cell;
  vertical-align: middle;
  text-align: center;
  cursor: var(--cursor-pointer);
  /*On agrandit le bouton pour les écrans tactiles*/
  @media (max-width: 768px) {
    transform: scale(1.2);
  }
}


.header-language {
  margin-right: 0px;
  @media (max-width: 768px) {
    margin: 20px 0px;
  }
}

/*######### Bouton switch mode Français/English #########*/
.btn-color-mode-switch {
  display: inline-block;
  margin: 0px;
  position: relative;
  cursor: var(--cursor-pointer);
  @media (max-width: 768px) {margin-left: 15px;}
}

.btn-color-mode-switch > label.btn-color-mode-switch-inner {
  margin: 0px;
  width: 100px;
  height: 40px;
  background-color: #957c00;
  border-radius: 26px;
  overflow: hidden;
  position: relative;
  transition: all 0.3s ease;
  display: block;
  cursor: var(--cursor-pointer);
}

.btn-color-mode-switch > label.btn-color-mode-switch-inner:before {
  content: attr(data-on);
  position: absolute;
  font-size: 20px;
  font-weight: 600;
  top: 7px;
  right: 14px;
  color: var(--secondary-onDark-text-color);
    cursor: var(--cursor-pointer);
}

.btn-color-mode-switch > label.btn-color-mode-switch-inner:after {
  content: attr(data-off);
  width: 50px;
  height: 25px;
  background-color: #ffea81;
  border-radius: 100px;
  position: absolute;
  font-size: 20px;
  display: flex;
  justify-content: center;
  left: 2px;
  top: 2.5px;
  text-align: center;
  transition: all 0.3s ease;
  box-shadow: 0px 0px 6px -2px var(--default-sticky-shadow-color);
  padding: 5px 0px;
  color: #111;
  font-weight: 600;
  cursor: var(--cursor-pointer);
}

.btn-color-mode-switch input[type="checkbox"] {
  width: 70px;
  height: 25px;
  opacity: 0;
  position: absolute;
  top: 0;
  z-index: 1;
  margin: 0px;
  cursor: var(--cursor-pointer);
}

.btn-color-mode-switch input[type="checkbox"]:checked + label.btn-color-mode-switch-inner {
  background-color: #ffea81;
  cursor: var(--cursor-pointer);
}

.btn-color-mode-switch input[type="checkbox"]:checked + label.btn-color-mode-switch-inner:after {
  content: attr(data-on);
  left: 48px;
  cursor: var(--cursor-pointer);
  background-color: #957c00;
  color: var(--secondary-onDark-text-color);
}

.btn-color-mode-switch input[type="checkbox"]:checked + label.btn-color-mode-switch-inner:before {
  content: attr(data-off);
  right: auto;
  left: 15px;
  cursor: var(--cursor-pointer);
  color: #111;
}

/*######### Social medias #########*/
.header-social-media {
  margin: 15px 5px;
  @media (max-width: 768px) {margin: 15px 5px 0px 15px;}

}

.header-social-media a {
  display: flex;
  align-items: center; 
}

.socialNet_link {
	transition: var(--default-transition-duration);
}

.socialNet_link:hover {
	border-radius: var(--default-medium-border-radius);
	box-shadow: 5px 10px 20px var(--dynamic-shadow-color);
	transition: var(--default-transition-duration);
}

.socialNet_link:active, .socialNet_link:focus {
	border-radius: 15px;
	box-shadow: 5px 10px 20px var(--dynamic-shadow-color);
	transition: var(--default-transition-duration);
	opacity: var(--default-active-opacity);
}

.header-link-YT {
  width: 45px;
  height: 45px;
}

.header-link-Insta {
  width: 37px;
  height: 37px;
}
.txt-social-media {
  font: bold var(--font-size-130) var(--font-family-base);
  margin-top: 5px;
}

.header-social-media-text {
  display: none;
  margin-left: 10px;
}

/*######### Styles pour les écrans plus petits (RESPONSIVE) #########*/
.logo-mobile {
  display: none;
  margin-right: 30%;
}

.logo-mobile a {
  display: flex;
  align-items: center; 
}

.nav-links.mobile {
  display: none; /* Enlevé lors du clic sur le hamburger (".active") */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--hamburger-background-color);
  flex-direction: column;
  display: none;
  z-index: var(--z-index-nav-links-mobile);
  overflow-y: scroll;
  padding: 20px;
  align-items: unset;
}

.hamburger {
  display: none;
  background: none;
  border: none;
  cursor: var(--cursor-pointer);
  position: relative;
  margin-right: 20px;
  width: 30px;
  height: 45px;
  z-index: var(--z-index-hamburger); /* Assurez-vous que le bouton est au-dessus du menu */
}

/* Rend le hamburger visible lorsque la largeur est assez petite (JS) */
.hamburger.mobile {
  display: block;
}

.hamburger-line {
  width: 30px;
  height: 3px;
  background-color: var(--hamburger-line-color);
  margin: 6px 0; /* 6px correspond au top et au bottom */
  transition: var(--default-transition-duration);
}

.header_pipe.mobile {
  border: solid var(--header-pipe-color) 1.5px;
  border-radius: var(--default-medium-border-radius);
  margin: 10px 5px;
}


.header-social-media-text.mobile {
  display: block;
}

/*### Utilisés lors du clic sur le hamburger ###*/
.nav-links.active {
  display: flex;
}


body.no-scroll {
overflow: hidden;
}

/* Transforme le hamburger en croix lors du clic */
.hamburger.active .hamburger-line:nth-child(1) {
  transform: rotate(-45deg) translate(-5px, 6px);
}

.hamburger.active .hamburger-line:nth-child(2) {
opacity: 0;
}

.hamburger.active .hamburger-line:nth-child(3) {
  transform: rotate(45deg) translate(-5px, -6px);
}

/*#### ####*/
/*################ ################*/

/* ~~ Informations de mise en page. ~~ 

1) La marge intérieure n'est placée qu'en haut et/ou en bas de la div. Les éléments à l'intérieur de cette div posséderont une marge intérieure sur les côtés. Vous évitez ainsi de devoir recourir à des « calculs de modèle de boîte ». N'oubliez pas que si vous ajoutez une marge intérieure latérale ou une bordure à la div proprement dite, elle sera ajoutée à la largeur que vous définissez pour créer la largeur totale. Vous pouvez également supprimer la marge intérieure de l'élément dans la div et placer une seconde div à l'intérieur, sans largeur et possédant une marge intérieure appropriée pour votre concept.

*/
.content {
	padding: 10px 0;
}

/* ~~ Ce sélecteur groupé donne de l'espace aux listes dans la zone .content ~~ */
.content ul, .content ol, .content-login ul, .content-login ol { 
	padding: 0 15px 15px 40px; /* cette marge intérieure reflète la marge intérieure droite dans les en-têtes et la règle de paragraphe ci-dessus. Une marge intérieure a été placée en bas, afin d'assurer un espace entre les autres éléments des listes, et à gauche pour créer le retrait. Vous pouvez les régler comme bon vous semble. */
  @media (max-width: 768px) {
    font: var(--font-size-110) var(--font-family-base);
  }
}

/* ~~ classes flottant/effacement diverses ~~ */
.fltrt {  /* cette classe peut servir à faire flotter un élément depuis la droite sur votre page. L'élément flottant doit précéder l'élément à côté duquel il doit apparaître sur la page. */
	float: right;
	margin-left: 8px;
}
.fltlft { /* cette classe peut servir à faire flotter un élément depuis la gauche sur votre page. L'élément flottant doit précéder l'élément à côté duquel il doit apparaître sur la page. */
	float: left;
	margin-right: 8px;
}
.clearfloat { /* cette classe peut être placée sur une div <br /> ou vide, en tant qu'élément final suivant la dernière div flottante (dans le #container) si le paramètre #footer est supprimé ou retiré du #container */
	clear:both;
	height:0;
	font-size: 1px;
	line-height: 0px;
}


/*######################### Boutons animés ##########################*/



.btn, .no-btn {
  display: inline-block;              /* >>> Compact par défaut <<< */
  max-width: 100%;                    /* n’excède jamais le conteneur */
  box-sizing: border-box;             /* padding inclus dans la largeur */
  white-space: normal;                /* autorise les retours à la ligne */
  word-wrap: break-word;              /* permet les coupures de mots longues */
  text-align: center;                 /* centre le texte à l'intérieur */
  vertical-align: middle;             /* aligne proprement dans le flux */
  
  -webkit-border-radius: var(--button-border-radius);
  border-radius: var(--button-border-radius);
  color: var(--button-text-color);
  background: var(--button-background-color);
  text-decoration: none;  
  padding: var(--button-padding);
  margin-top: 0;
  border: none;
  transition: var(--default-transition-duration);
  font: var(--button-font-size) var(--font-family-base);

  @media (max-width: 768px) {
    border-radius: var(--button-border-radius);
    margin-top: auto;
  }
}

/* Met le cursor en pointer sur les classes .btn et .no-btn si la classe est appliquée à un input ou un bouton */
button.btn,
input.btn, span.btn, span.no-btn,
input[type="button"].btn,
input[type="submit"].btn,
input[type="reset"].btn,
button.no-btn,
input.no-btn,
input[type="button"].no-btn,
input[type="submit"].no-btn,
input[type="reset"].no-btn {
  cursor: var(--cursor-pointer);
  @media (max-width: 900px) { 
    margin-bottom: 15px;
  }    
}


.btn:link, .no-btn:link {
  color: var(--button-text-color);
  text-decoration: none;  
  padding: var(--button-padding);
  margin-top: 0;
  font: var(--button-font-size) var(--font-family-base);
}

.btn:hover, .no-btn:hover {
  color: var(--button-text-color);
  background: var(--button-hover-background-color);
  text-decoration: none;
  box-shadow: 5px 6px 20px var(--dynamic-shadow-color);
  transition: var(--default-transition-duration);
  font: var(--button-hover-font-size) var(--font-family-base);
}

.btn:active, .no-btn:active {
  color: var(--button-text-color);
  background: var(--button-hover-background-color);
  border: solid var(--button-hover-background-color) 2px;
  padding: var(--button-active-padding);
  text-decoration: none;
  transition: var(--default-transition-duration);
  font: var(--button-hover-font-size) var(--font-family-base);
}

.btn:visited, .no-btn:visited {
  color: var(--button-text-color);
  padding: var(--button-padding);
  text-decoration: none;
  margin-top: 0;
  transition: var(--default-transition-duration);
  font: var(--button-font-size) var(--font-family-base);
}

.btn img, .no-btn img { /*Ce style s'applique à l'icône "download" des boutons download (seuls concernés)*/
  width: 18px;
}

.no-btn { /* Variante du bouton normal, mais pour dire NON (background blanc pour pas donner envie de cliquer #manipulation) */
  background-color: var(--no-btn-background-color);
  color: var(--no-btn-text-color);
  border: solid var(--button-background-color) 2px;
}

.no-btn:hover {
  background-color: #c1c1c1;
  color: var(--no-btn-text-color);
}

.no-btn:active {
  background-color: #a9a9a9;
  color: var(--no-btn-text-color);
  border-color: var(--button-background-color);
}

/* Generic icon-only action button (supports <a> and <button>). */
.icon-action-btn {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: transparent;
  border: none;
  border-radius: 8px;
  cursor: var(--cursor-pointer);
  color: inherit;
  text-decoration: none;
  transition: background-color 0.12s ease, transform 0.06s ease, color 0.12s ease;
}

.icon-action-btn:hover,
.icon-action-btn:focus {
  background-color: rgba(0, 0, 0, 0.08);
  outline: none;
}

.icon-action-btn:active {
  transform: scale(0.96);
}

.icon-action-btn:focus-visible {
  box-shadow: 0 0 0 4px rgba(225,158,36,0.24);
}

.icon-action-btn:disabled,
.icon-action-btn[aria-disabled="true"] {
  opacity: 0.5;
  cursor: default;
  transform: none;
}

.icon-action-btn-svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
  display: block;
}

/*######################### DIVERS ##########################*/


.rouge {
	color: #F00;
	font-family: var(--font-family-base);
}
	
.a_title:link {
	text-decoration: underline; 
	color: var(--text-color);
}

.a_title:visited {
	text-decoration: underline; 
	color: var(--text-color);
} 
.a_title:hover, .a_title:active, .a_title:focus { 
	text-decoration: none;
}


.image_link {
	border-radius: 30px;
	border: solid;
	border-color: var(--image-link-border-color);
	transition: var(--default-transition-duration);

  /* Les dimensions spécifiées dans le HTML sont ignorées pour les écrans tactiles : on met alors à 100% */
	@media (max-width: 768px) { 
    height: auto;
    width: 100%;
    border-radius: 15px;
  }
  @media (prefers-color-scheme: dark) {
    background-color: var(--logo-game-transparent-background-color);
  }
}

.image_link.social-network-ic {
  @media (max-width: 768px) { 
    height: auto;
    width: 65px;
    border-radius: 10px;
  }
}

.image_link:hover, .image_link:active, .image_link:focus { 
	border: solid;
	border-color: var(--image-link-border-color-hover);
	box-shadow: 15px 20px 20px var(--dynamic-shadow-color);
	transition: var(--default-transition-duration);
}

.image_center {
	margin-left: 35%;
}

.imageOnClick {
	border: none;
	border-radius: var(--dynamic-img-border-radius);
	transition: var(--default-transition-duration);
	
  /* Les dimensions spécifiées dans le HTML sont ignorées pour les écrans tactiles : on met alors à 100% */
	@media (max-width: 768px) { 
    height: auto;
    width: 100%;
    border-radius: var(--default-border-radius-responsive);
  }
}

.imageOnClick:hover, .imageOnClick:active, .imageOnClick:focus {
	box-shadow: 15px 20px 20px var(--dynamic-shadow-color); 
	/* box-shadow: <offset-x> <offset-y> <blur-radius> <color>;*/
	/* box-shadow: <position-x> <position-y> <rayon-étalement> <couleur>; */
	transition: var(--default-transition-duration);
}

.txt_center1 {
	text-align: center;
	font-size: 34px;
}
  
  
.container .content hr {
  height: var(--hr-height);
  background: var(--hr-background);
  border-radius: var(--hr-border-radius);
  margin: 20px;
}

.rubrique1 {
  background: var(--rubrique1-background-color);
  border-radius: var(--default-medium-border-radius);
  padding: 15px;
  margin: 20px;
  color: #fff;
  @media (max-width: 768px) {padding: 15px 2px 15px 2px; margin: 10px;}
}

.rubrique1 a {
  color: #08348c;
}

.box_counter {
	color: var(--secondary-onDark-text-color);
	font-family: 'Times New Roman', Times, serif;
	font-size: 20px;
	background-color: var(--dark-grey);
	border: solid;
	border-color: #1a1a1a;
	border-radius: 10px;
	padding: 5px;
	padding-left: 15px;
	padding-right: 15px;
}

.hashtags_pied_page {
  border-top: solid 4px var(--outline-color);
  border-bottom: solid 4px var(--outline-color);
  background-color: var(--medium-grey);
  padding: 10px;
}

.play-store-badge-accueil {
  vertical-align: middle;
  margin-bottom: 10px;
  @media (max-width: 768px) {
    width: 60%;
    height: auto;
  }
}

.android-badge {
  background-color: #ffffffe0; 
  border-radius: var(--default-medium-border-radius);
  width: 20%;
  height: auto;
  @media (max-width: 768px) {
    width: 40%;
    height: auto;
    border-radius: var(--default-small-border-radius);
  }
}

.logo-privacy-policy {
  width: 60px;
  height: auto;
}

.infos-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  border-top: solid 2px var(--outline-color);
  border-bottom: solid 2px var(--outline-color);
  background-color: var(--light-grey);
  padding: 10px;

  @media (max-width: 768px) {
    flex-direction: column;
    gap: 5px;
    padding: 5px;
  }
}

.infos-header p {
  margin: 0;
  text-align: center;

}

/*####################### Bouton "Back to top" #########################*/
#scrollToTopBtn {
  position: fixed;
  bottom: 30px;
  right: 20px;
  z-index: var(--z-index-scrollToTopBtn);
  font-size: 18px;
  border: none;
  outline: none;
  background-color: var(--outline-color);
  color: var(--secondary-onDark-text-color);
  cursor: var(--cursor-pointer);
  border-radius: var(--default-small-border-radius);
  transition: background-color 0.3s;
  padding: 5px;

  display: none; /* Caché par défaut */
}


#scrollToTopBtn:hover {
  background-color: var(--outline-color-hover);
}

#scrollToTopBtn:active, #scrollToTopBtn:focus {

  background-color: var(--outline-color-active);
}

.icon-scroll-size {
  width:40px;
  height: 40px;
}

/*####################### Pop-up #########################*/
#popup-conf-langue {
  display: block; /* Caché par défaut */
}

#popup-content {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: var(--content-background-color);
  padding: 20px;
  border-radius: var(--default-small-border-radius);
  border: 4px solid var(--outline-color);
  box-shadow: 0 4px 8px var(--default-sticky-shadow-color);
  z-index: var(--z-index-popup);
  overflow-y: auto; 
  max-height: 80vh; /* Limite la hauteur maximale à 80% de la hauteur de la fenêtre (sinon débordement même avec le scroll) */
  @media (max-width: 768px) {
      width: 80%; /* Ajuste la largeur pour les petits écrans */
      border-radius: var(--default-medium-border-radius);
  }
}

#popup-content.error {
  border-color: var(--error-border-color);
}

#popup-content.success {
  border-color: var(--success-border-color);
}

#popup-content.warning {
  border-color: var(--warning-border-color);
}

#popup-background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--popup-background-color);
  z-index: var(--z-index-popup-background);
}

/* Pop-up: bandeau sticky avec bouton de fermeture */
.popup-bandeau,
#pop-up-bandeau-close {
  position: sticky;
  top: 0;
  display: flex;
  align-items: center;
  justify-content: space-between; /* left area + close button on right */
  gap: 8px;
  padding: 8px 12px;
  background-color: var(--popup-bandeau-background-color);
  border-bottom: solid 2px var(--outline-color);
  z-index: var(--z-index-bandeau); /* au-dessus de #popup-content */
}

/* zone gauche du bandeau (titre ou espace libre) */
.popup-bandeau-title {
  flex: 1 1 auto;
  min-width: 0; /* permet l'ellipse si texte long */
  font-weight: 600;
  color: #111;
}

.popup-bandeau-title a {
  color: #111;
}

/* bouton de fermeture (icône SVG inside) */
.popup-close-btn,
#game-versions-log-close-btn {
  margin-left: 12px;
  background: transparent;
  border: none;
  padding: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: var(--cursor-pointer);

  border-radius: 6px;
  transition: background-color .12s ease, transform .06s ease;
  color: #111; /* icône SVG utilisera currentColor */
}

/* hover / focus / active */
.popup-close-btn:hover,
.popup-close-btn:focus,
#game-versions-log-close-btn:hover,
#game-versions-log-close-btn:focus {
  background-color: rgba(0,0,0,0.06);
  outline: none;
}

.popup-close-btn:active,
#game-versions-log-close-btn:active {
  transform: scale(0.98);
}


/* SVG icône */
.popup-close-icon {
  width: 20px;
  height: 20px;
  display: block;
  fill: currentColor; /* hérite de .popup-close-btn color */
}

/* focus visible pour accessibilité */
.popup-close-btn:focus-visible,
#game-versions-log-close-btn:focus-visible {
  box-shadow: 0 0 0 4px rgba(225,158,36,0.24);
  border-radius: 6px;
}

/* augmenter la zone tactile sur petits écrans */
@media (max-width: 768px) {
  .popup-bandeau,
  #pop-up-bandeau-close {
    padding: 10px 14px;
  }
  .popup-close-btn,
  #game-versions-log-close-btn {
    padding: 10px;
    border-radius: 8px;
  }
}


/*############## Cookie banner ##############*/
#cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background-color: var(--cookie-banner-background-color);
  color: var(--secondary-onDark-text-color);
  text-align: center;
  padding: 5px 0 15px 0;
  box-shadow: 0 -2px 8px var(--default-sticky-shadow-color);
  z-index: var(--z-index-cookie-banner);
}

#cookie-banner-text {
  margin: 10px;
}

.btn-cookie-banner {
  background-color: var(--outline-color);
  border: none;
  cursor: var(--cursor-pointer);
  margin-right: 10px;
  transition: var(--default-transition-duration);
  font: var(--font-size-90) var(--font-family-base);
  @media (max-width: 768px) {font: var(--font-size-130) var(--font-family-base); margin: 20px;}
}

.btn-cookie-banner:hover {
  background-color: var(--outline-color-hover);
  font: var(--font-size-default) var(--font-family-base);
  transition: var(--default-transition-duration);
  @media (max-width: 768px) {font: var(--font-size-140) var(--font-family-base);}
}

.btn-cookie-banner:active, .btn-cookie-banner:focus {
  background-color: var(--outline-color-active);
  border: none;
  font: var(--font-size-default) var(--font-family-base);
  transition: var(--default-transition-duration);
  @media (max-width: 768px) {font: var(--font-size-140) var(--font-family-base);}
}

.cookie-banner-content a {
  color: var(--secondary-onDark-text-color);
}


/*####################### Checkbox #########################*/
/* Note : compliqué de modifié le style par défaut du checkbox. On utilise donc cette ruse (avec un span) */
.checkbox-container {
  display: block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: var(--cursor-pointer);
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Masque le style par défaut du checkbox */
.checkbox-container input { 
  position: absolute;
  opacity: 0;
  cursor: var(--cursor-pointer);
  height: 0;
  width: 0;
}

.checkbox-mark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: var(--no-btn-background-color)  ;
  border: solid 2px var(--button-background-color);
  border-radius: var(--default-tiny-border-radius);
}

.checkbox-container:hover input ~ .checkbox-mark {
  background-color: var(--no-btn-hover-background-color);
  color: var(--button-text-color);
}

.checkbox-container:active input ~ .checkbox-mark, .checkbox-container:focus input ~ .checkbox-mark {
  background-color: var(--no-btn-active-background-color);
  color: var(--button-text-color);
}
.checkbox-container input:checked ~ .checkbox-mark {
  background-color: var(--button-background-color);
  color: var(--button-text-color);
}

.checkbox-mark:after { /* Indicateur du signe de check (✓), caché avant le check */
  content: "";
  position: absolute;
  display: none;
}

/* Montrer le checkmark (after) */
.checkbox-container input:checked ~ .checkbox-mark:after {
  display: block;
}

.checkbox-container input:checked ~ .checkbox-mark:after {
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

.checkbox-container:hover input:checked ~ .checkbox-mark {
  background-color: var(--button-checked-hover-background-color);
}
.checkbox-container:active input:checked ~ .checkbox-mark, .checkbox-container:focus input:checked ~ .checkbox-mark {
  background-color: var(--button-checked-active-background-color);
}

/*########### Article1 (version orange) #############*/


.Article1  {
  background-color: var(--article-background-color);
  margin: 5px 4% 0px 4%;
  color: var(--text-color);
  border-radius: 5px 5px 0px 0px;
  @media (max-width: 768px) {margin: 5px 2% 0px 2%;}
}

.Txt-Article1 {
  margin: 10px;
  margin-bottom: 0px;
  padding: 5px;
  @media (max-width: 768px) {margin: 2px;}
}

.date-Article1 {
  text-align: right;
  float: right;
  font-size: 16px;
  font-style:italic;
  font-weight:bold;
  padding-right: 5px;
}

.Titre-Article1 {
  color: var(--outline-color);
  background-color: var(--article-title-background-color);
  margin: 0px;
  padding: 5px;
  border: solid;
  border-color: var(--outline-color);
  border-width: 4px;
  border-top-left-radius: 5px;
  border-bottom-left-radius: 5px;
  border-top: none;
  border-right: none;
  transition: var(--default-transition-duration);
}

.Titre-Article1:hover {
  background-color: #4c4c4c;
  transition: var(--default-transition-duration);
}

.Titre-Article1-Main {
  color: var(--outline-color);
  background-color: var(--article-title-background-color);
  margin: 0px;
  padding: 5px;
  border: solid;
  border-color: var(--outline-color);
  border-width: 4px;
  border-top-left-radius: 5px;
  border-bottom-left-radius: 5px;
  border-top: none;
  border-right: none;
  cursor: default;
}

.a-Article1:link {
	text-decoration: underline; 
	color: var(--outline-color);
}

.a-Article1:visited {
	text-decoration: underline; 
	color: var(--outline-color);
} 

.a-Article1:hover, .a-Article1:active, .a-Article1:focus { 
	text-decoration: none;
}

#Article1-sources {
  background-color: var(--article-sources-background-color);
  margin: 0px 4% 5px 4%;
  padding: 5px;
  border-top: solid 5px var(--outline-color);
  color: var(--text-color);
  border-radius: 0 0 5px 5px;
  font-size: 80%;
  @media (max-width: 768px) {
    font-size: 70%;
    margin: 0px 2% 5px 2%;
  }
}

.Article1-icon-auteur {
  float: left;
  margin: 10px;
  border-radius: var(--default-tiny-border-radius);
}

/*#### A réserver lorsqu'on aura une page dédiée aux articles ####*/
#Article-switch {
  background-color: #686868;
  margin: 20px;
  padding: 20px;
  padding-bottom: 60px;
}

#Article-switch-right {
  text-align: right;
  float: right;
  padding: 10px;
  background-color: #202631;
  border-radius: var(--default-medium-border-radius);
  @media (max-width: 768px) {font-size: 80%;}
}

#Article-switch-left {
  text-align: left;
  float: left;
  padding: 10px;
  background-color: #202631;
  border-radius: var(--default-medium-border-radius);
  @media (max-width: 768px) {font-size: 80%;}
}

.a-Article-switch:link {
	text-decoration: none; 
	color: var(--secondary-onDark-text-color);
}

.a-Article-switch:visited {
	text-decoration: none; 
	color: var(--secondary-onDark-text-color);
} 

.a-Article-switch:hover, .a-Article-switch:active, .a-Article-switch:focus { 
	text-decoration: none;
}

/*######################### Fin ArticleSwitch ##########################*/

.box_counter {
	color: var(--secondary-onDark-text-color);
	font-family: 'Times New Roman', Times, serif;
	font-size: 20px;
	background-color: var(--dark-grey);
	border: solid;
	border-color: var(--very-dark-grey) ;
	border-radius: var(--default-small-border-radius);
	padding: 5px;
	padding-left: 15px;
	padding-right: 15px;
}

.video_youtube {
  border-radius: var(--default-medium-border-radius);
  border: solid;
  border-color: var(--medium-grey);
  width: 560px;
  max-width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
}

/*######################### Formulaires ##########################*/

.Titre-formulaire {
  background-color: #2a2a2c;
  margin: 5px 4% 0 4%;
  padding: 20px;
  color: var(--outline-color);
  text-align: center;
  border-radius: 5px 5px 0px 0px;
}

.box-formulaire {
  background-color: var(--outline-color-light);
  margin: 0 4% 5px 4%;
  padding: 20px;
  border-radius: 0px 0px 5px 5px;
  @media (max-width: 768px) {padding: 14px;}
}

.box-formulaire-interieur {
  background-color: var(--medium-grey);
  color: var(--form-text-color);
  padding: 25px 45px; 
  @media (max-width: 768px) {padding: 12px 17px;}
}

.formulaire-label {
  margin-bottom: 15px;
}

.formulaire-input_simple {
  padding: 7px;
  width: 97%;
  border: none;
  outline: none;
  box-shadow: none;
	font: var(--font-size-90) var(--font-family-base);
}

.formulaire-input_simple:hover, .formulaire-input_simple:active {
  background-color: var(--outline-color-lighter);
}

@media (pointer:none), (pointer: coarse) {
  .formulaire-input_simple:focus {
    background-color: var(--outline-color-lighter);
  }
 }

#formulaire-textarea {
  height: 200px;
	font: var(--font-size-90) var(--font-family-base);
  resize: vertical;
  @media (max-width: 768px) {font: var(--font-size-90)   var(--font-family-base); height: 400px;}
}

.formulaire-envoyer-js {
  font: bold var(--font-size-110) var(--font-family-base);
  background-color: var(--mediumer-grey);
  width: 97%;
  border-style: none;
  padding: 7px;
  transition: var(--default-transition-duration);
  text-align: center;
  @media (max-width: 768px) {font: bold var(--font-size-110) var(--font-family-base);}
}

.formulaire-envoyer-js:hover, .formulaire-envoyer-js:active {
  background-color: var(--dark-grey);
  color: var(--secondary-onDark-text-color);
  transition: var(--default-transition-duration);
  cursor: var(--cursor-pointer);
}

#form-pseudo {
  width: 30%;
  @media (max-width: 768px) {width: 70%;}
}

#form-email {
  width: 40%;
  @media (max-width: 768px) {width: 80%;}
}

#Confirm {
  display: none;
}

.hr-form-envoyer {
  height: 0;
  background: none;
  border-radius: none;
  margin: 8px;
}

.hr-formulaire {
  border: solid 2px var(--medium-grey);

  height: 0;
  background: none;
  border-radius: 0;
}


/*########## Form partie php ############""*/

.box-recap-message {
  background-color: var(--very-dark-grey);
  margin: 0 4% 5px 4%;
  padding: 20px;
  border-radius: var(--default-medium-border-radius);
  line-height: 2;
  transition: all var(--default-transition-duration);
}

.box-recap-message:hover {
  margin: 0 4% 5px 4%;
  padding: 20px;
  line-height: 2;
}

.box-variables {
  background-color: var(--medium-grey);
  color: var(--box-variables-text-color);
  border: solid var(--very-dark-grey);
  border-radius: var(--default-tiny-border-radius);
  padding: 5px;
  transition: all var(--default-transition-duration);
}


/*######################### Images d'arrière plan qui bougent pas (titre de la page) ##########################*/

.background { /* On rassemble toutes les indications de style sous cette classe. Les IDs spécifient seulement le background */
  /*background-position:-250px 30px;*/
	background-position: center;
  background-repeat: no-repeat ;
  background-color: var(--background-img-bckd-color)  ;
  background-attachment: fixed;
  background-size:cover;

  padding: 5px;
  padding-left: 15px;
  padding-top: 50px;
  min-height: 500px;
	margin: 20px;
  border-radius: var(--default-medium-border-radius);
	color: var(--background-img-txt-color);
  @media (max-width: 768px) {     
    background-position:0px 5%;
    padding-top: 5px;
    background-size:unset;
    border-radius: var(--default-small-border-radius);
    min-height: 200px;
  }
}


#title {
  margin-top: 5px;
  @media (max-width: 768px) {margin-bottom: 30px;}
}

#subtitle {
  font-size: 24px;
}

#background_screen_home {
    background-image: url("/src/medias/title-backgrounds/Mini_golf_level1.PNG");
    background-color: var(--background-img-bckd-color)  ;
    @media (max-width: 768px) {
    background-size: 215%;
    background-position-x: -143px;
  }
}

#background_404 {
  background-image: url("/src/medias/title-backgrounds/404-error.PNG");
  background-color: var(--background-img-bckd-color)  ;
  @media (max-width: 768px) {
    background-size: 131%;
    background-position-x: -70px;
  }    
}

#background_403 {
  background-image: url("/src/medias/title-backgrounds/403-error.PNG");
  background-color: var(--background-img-bckd-color)  ;
  @media (max-width: 768px) {
    background-size: 131%;
    background-position-x: -70px;
  } 
}

#background_500 {
  background-image: url("/src/medias/title-backgrounds/500-error.PNG");
  background-color: var(--background-img-bckd-color)  ;
  @media (max-width: 768px) {
    background-size: 131%;
    background-position-x: -70px;
  }    
}

#background_gallery {
  background-image: url("/src/medias/title-backgrounds/Balle_qui_tombe_v2.PNG");
  background-color: var(--background-img-bckd-color)  ;
  @media (max-width: 768px) {
  background-size: 280%;
    background-position-x: -200px;
    background-position-y: 50px;
  }
}

#background_credits {
  background-image: url("/src/medias/title-backgrounds/Fond_GauGoth_Corp.PNG");
  background-color: var(--background-img-bckd-color)  ;
  @media (max-width: 768px) {
    background-size: 275%;
  }
}

#background_easter_egg {
  background-image: url("/src/medias/title-backgrounds/screen-easter-egg.PNG");
  background-color: var(--background-img-bckd-color)  ;
  @media (max-width: 768px) {
    background-size: 192%;
    background-position-x: -209px;
  }
}

#background_help {
  background-image: url("/src/medias/title-backgrounds/Screen_pdf_comment_installer.PNG");
  background-color: var(--background-img-bckd-color)  ;
}

#background_help_en {
  background-image: url("/src/medias/title-backgrounds/Screen_pdf_comment_installer_en.PNG");
  background-color: var(--background-img-bckd-color)  ;
}

#background_counter {
  background-image: url("/src/medias/title-backgrounds/Compteur_image.png");
  background-color: var(--background-img-bckd-color)  ;
}

#background_counter_en {
  background-image: url("/src/medias/title-backgrounds/Compteur_image_en.png");
  background-color: var(--background-img-bckd-color)  ;
}

#background_contact {
  background-image: url("//src/medias/title-backgrounds/Contact-us.jpg");
  background-color: var(--background-img-bckd-color)  ;
  @media (max-width: 768px) {
    background-size: 200%;
    background-position-x: -250px;
  }
}

#background_privacy_policy {
  background-image: url("/src/medias/title-backgrounds/Credits-jeu-privacy-policy.png");
  background-color: var(--background-img-bckd-color)  ;
  @media (max-width: 768px) {
    background-size: 154%;
    background-position-x: -76px;
  }    
}

/*######################### Présentation spéciale pour la page de jeu, choisir la plateforme ##########################*/
/* Permet d'empêcher le tableau de "forcer" une largeur supérieure à l’écran et supprime la vilaine bande vide. (Sur écran peu large) */
.logo-game { 
  @media (max-width: 768px) { 
    width: 100%;
    height: auto;
  }
  @media (prefers-color-scheme: dark) {
    background-color: var(--logo-game-transparent-background-color);
    border-radius: var(--default-border-radius);
  }
}

.table_gaming_platform {
  width: 100%;
  display: flex;
  flex-direction: column;
}

.table_gaming_platform > div {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.important_part_grey {
	background-color: var(--light-medium-grey);
	padding: 20px 20px 50px 20px;
  @media (max-width: 768px) {
    padding: 10px 5px 15px 5px;
  }
}

.game-version-info {
  display: flex;
  @media (max-width: 768px) {
    display: block;
  }
}

.game-current-version {
  color: var(--secondary-onDark-text-color); 
  padding:10px;
}

#game-versions-log {
  color:var(--secondary-onDark-text-color);
  text-decoration: underline;
  font-weight: bold;
  cursor: var(--cursor-pointer);
  padding:10px;
  display: flex;
  margin-left: auto;
  @media (max-width: 768px) {
    display: block;
  }
}

.rubrique_gaming_platform_ {
	background-color: var(--very-dark-grey);
	border:solid;
  border-radius: var(--default-medium-border-radius);
	border-color: var(--black);
  padding: 0;
  margin: 5px;
	transition: var(--fast-transition-duration);
	word-wrap: break-word; /* permet de couper les mots longs (même but que la classe table_gaming_platform) */
  overflow-wrap: break-word;

  flex: 1 1 48%; /* environ la moitié de la largeur */

  @media (max-width: 900px) {
    flex: 1 1 100%; /* pleine largeur sur petits écrans */
    margin: 5px 0;
  }
}


.rubrique_gaming_platform_:hover {
	background-color: var(--very-darker-grey);
	transition: var(--fast-transition-duration);
}

.rubrique_gaming_platform_:active, .rubrique_gaming_platform_:focus {
	background-color: var(--black);
	transition: var(--default-transition-duration);
}


.hr_gaming_platform {
	height:2px;
	background:none;
	background-color: var(--medium-grey);
}

.title_gaming_platform {
	margin:0 0 10px 0;
	color: var(--secondary-onDark-text-color);
	padding:20px;
	border-radius: 10px 10px 0px 0px;
	text-align:center;
}

.title_gaming_platform.mobile {
  text-decoration: underline;
  cursor: var(--cursor-pointer);
  padding: 7px;
  /*Ces deux lignes pour rendre cliquable l'intégralité du titre (et pas que le lien) : sinon il subsite un blanc sur le margin-bottom */
  margin-bottom: 0;
  padding-bottom: 10px;
}

.icon-title-gaming_platform {
  vertical-align: middle;
  margin-right: 10px;
  background-color: var(--lighter-grey);
  padding: 2px;
  border-radius: 50%;
  width: 30px;
  height: 30px;
}

.content_gaming_platform {
	background-color: var(--content-background-color);
	padding:10px;
	margin:0;
	border-radius: 0px 0px 10px 10px;
}

.content_gaming_platform > p {
  text-align: center;
}

.content_gaming_platform.mobile {
  display: none;
}

/*
.content_gaming_platform:hover{
	transition: 0.4s;
	background-color:#555;
	color: #fff;
	cursor: help;

}

.content_gaming_platform:active, .content_gaming_platform:focus{
	transition: 0.4s;
	background-color:#444;
	color: #fff;
	cursor: help;

}
*/

.gaming_platform_logo_online, .gaming_platform_logo_online:link {
	transition: var(--default-transition-duration);
	padding: 20px;
	padding-bottom: 5px;
	border-radius: var(--default-border-radius);
	text-decoration: none;
}
  
.gaming_platform_logo_online:hover {
	box-shadow: 5px 6px 20px var(--dynamic-shadow-color);
	transition: var(--default-transition-duration);
	border: none;
}
  
.gaming_platform_logo_online:active, .gaming_platform_logo_online:focus {
	box-shadow: 5px 6px 20px var(--dynamic-shadow-color);
  opacity: var(--default-active-opacity);
	transition: var(--default-transition-duration);
	border: none;
}

.gaming_platform_logo_pc, .gaming_platform_logo_pc:link {
	transition: var(--default-transition-duration);
	padding: 5px;
	border-radius: var(--default-border-radius);
	text-decoration: none;
}
  
.gaming_platform_logo_pc:hover {
	box-shadow: 5px 6px 20px var(--dynamic-shadow-color);
	transition: var(--default-transition-duration);
	border: none;
}
  
.gaming_platform_logo_pc:active, .gaming_platform_logo_pc:focus {
	box-shadow: 5px 6px 20px var(--dynamic-shadow-color);
  opacity: var(--default-active-opacity);
	transition: var(--default-transition-duration);
	border: none; 
}

.btn-gaming:hover { /*Le but de cette classe est de faire grossir beaucoup les boutons de la page de jeu*/
  font: var(--button-hover-huge-font-size) var(--font-family-base);
}

.btn-gaming:active, .btn-gaming:focus {
  padding: 12px 22px;
  font: var(--button-hover-huge-font-size) var(--font-family-base);
}

.Google-play-get-app-badge {
  width: 258.4px;
  height: 76.8px;
  @media (max-width: 768px) {
    width: 90%;
    height: auto;
  }
}

.error-inner {
  font-weight: bold;
  color: var(--msg-font-color);
  background-color: var(--error-background-color);
  padding: 5px;
  border-top:  solid 2px var(--light-grey);
  border-bottom:  solid 2px var(--light-grey);
}

.warning-inner {
  font-weight: bold;
  color: var(--msg-font-color);
  background-color: var(--warning-background-color);
  padding: 5px;
  border-top:  solid 2px var(--light-grey);
  border-bottom:  solid 2px var(--light-grey);
}


/*######################### FOOTER ##########################*/

/* ~~ Pied de page ~~ */
.footer, #footer {
  background-color: var(--footer-background-color);
	padding: 10px 0;
  padding-top: 0;
	color: var(--text-footer-color);
  width: 100%;
  border: none;
}

/* Permet la transition de l'en-tête : en effet, comme le footer met un temps supplémentaire à charger,
on veut afficher un rectangle vide en attendant (à l'aide de l'id "footer").*/

#footer {
  background-color: var(--footer-background-color);
  height: 900px;
  opacity: var(--default-onLoad-opacity);
  transition: all var(--default-onLoad-transition-duration) ease-in-out;
  @media (max-width: 768px) {
    height: 1100px;
  }
}

#footer.loaded {
  background-color: transparent;
  opacity: 1;
  height: auto;
}

.tableau_footer {
  font-family: var(--footer-table-font);
}

.cellules3 {
  padding: 15px 85px 15px 85px;
  font-size: large;
  border-width: 0px 4px 0px 4px;
}

.a-foot:link {
	color: var(--secondary-onDark-text-color);
  text-decoration: underline;
}
.a-foot:visited {
	color: var(--secondary-onDark-text-color);
}

.a-foot-hidden:link, .a-foot-hidden:visited {
  color: var(--secondary-onDark-text-color);
  text-decoration: none;
  cursor: default;
}

.hr_footer{
  height: 2px;
	background: var(--text-footer-color);
  margin: 20px;
  @media (max-width: 768px) {
    margin: 10px;
  }
}

.txt_footer {
  padding: 15px;
  padding: 3px 15px 3px 15px;
}


.lang_footer_select {
	background-color: var(--very-darker-grey);
	color: var(--text-footer-color);
	font-size: large;
	padding: 4px 8px 4px 12px;
	border-radius: var(--default-tiny-border-radius);
	border-color: var(--light-medium-grey);
  @media (max-width: 768px) {
    margin-left: 15px;
    font: var(--font-size-110) var(--font-family-base);
  }
}

.lang_footer_select:hover, .lang_footer_select:focus, .lang_footer_select:active{
	background-color: var(--black);
}

.lang_footer_option {
	background-color: var(--black);
	border-color: var(--light-medium-grey);
}

.lang_footer_option:hover, .lang_footer_option:focus, .lang_footer_option:active{
	background-color: var(--black);
	border-color: var(--light-medium-grey);
}

.social-net-foot {
  @media (max-width: 768px) {
    width: 30px;
    height: auto;
  }
}

/* Elements spécifiques pour le tableau du footer en version mobile créé par le JS */
#footer-table-mobile {
  display: none;
}

.titre-colonne-footer {
  font-weight: bold;
  padding: 20px;
  display: flex;
  justify-content: center; /* Centre horizontalement */
  align-items: center;     /* Centre verticalement */
  border-bottom: solid 1px var(--separator-footer-color);
  border-top: solid 1px var(--separator-footer-color);
  background-color: var(--footer-background-color-darker);
  font: var(--font-size-140) var(--font-family-base);
}

.element-colonne-footer {
  padding: 10px;
  display: flex;
  justify-content: center; /* Centre horizontalement */
  align-items: center;     /* Centre verticalement */
}  

/*########################## WYSIWYG ##########################*/
/*######### Placeholder when loading #############*/

.editor-placeholder-loading {
  border: solid 1px #c8c8c8;
  border-radius: 3px;
  background-color: #f0f0f0;
  color: #999;
  font-family: Open Sans,Helvetica Neue,Helvetica,Arial,나눔바른고딕,Nanum Barun Gothic,맑은고딕,Malgun Gothic,sans-serif;
}


.editor-placeholder-loading.editor-placeholder-loading-dark {
  border: solid 1px #494c56;
  background-color: #121212;
}

.editor-placeholder-loading-header {
  height: 46px;
  border-bottom: solid 1px #b0b0b0;
  background-color: #f0f0f0;
}

.editor-placeholder-loading-header.editor-placeholder-loading-header-dark {
  background-color: #232428;
  border-bottom: solid 1px #303238;
}

.editor-placeholder-loading-text {
  height: 20px;
}
.editor-placeholder-loading-text::before {
  content: var(--editor-placeholder-content, "Loading...");
  display: block;
  margin: 20px;
  animation: loading-placeholder-shimmer 1.5s infinite;
}

.editor-placeholder-loading-error::before {
  content: var(--editor-placeholder-content, "Failed to load content. Please try again later.");
  display: block;
  margin: 20px;
  color: var(--error-background-hard-color);

}

@keyframes loading-placeholder-shimmer {
  0% {
    background-position: -200px 0;
  }
  100% {
    background-position: 200px 0;
  }
}

/*############ Personnalized WYSIWYG header #############*/
.wysiwyg-editor-header {
  background-color: #121212;
  border: solid 1px #494c56;
  border-bottom: none;
  padding: 10px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;


}

.wysiwyg-editor-header-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;

}

.wysiwyg-editor-header-top-left {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}


.wysiwyg-editor-header-top-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.wysiwyg-editor-header-bottom {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.wysiwyg-editor-header-bottom-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.wysiwyg-editor-header-bottom-right {
  display: flex;
  align-items: center;
  gap: 10px;
}


.wysiwyg-editor-title-display {
  color: var(--secondary-onDark-text-color);
  background-color: #121212;
  padding: 5px;
  border-radius: var(--default-tiny-border-radius);
  font-size: 20px;
  font-weight: bold;
  margin: 0;
  max-width: 30em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; 

  @media(max-width: 768px) {
    max-width: 12em;
    font-size: 18px;
  }
}

.wysiwyg-editor-title-input {
  color: var(--secondary-onDark-text-color);
  background-color: #121212;
  outline: none;
  font-size: 20px;
  font-weight: bold;
  padding: 5px;
  border: solid 1px var(--light-medium-grey);
  border-radius: var(--default-tiny-border-radius);
  min-width: 300px;
  width: min(100%, 300px);

  @media(max-width: 768px) {
    min-width: 240px;
    width: min(100%, 240px);
  }
}

.wysiwyg-editor-edit-title-btn, .wysiwyg-editor-save-btn, .wysiwyg-editor-download-btn, .wysiwyg-editor-discard-btn {
  background: transparent;
  border: none;
  color: var(--secondary-onDark-text-color);
  cursor: var(--cursor-pointer);
  padding: 5px;
  border-radius: 3px;
  transition: background-color 0.1s;
}

.wysiwyg-editor-edit-title-btn:hover, .wysiwyg-editor-save-btn:hover, .wysiwyg-editor-download-btn:hover, .wysiwyg-editor-discard-btn:hover {
  background-color: #36383f;
}

.wysiwyg-editor-edit-title-btn:active, .wysiwyg-editor-edit-title-btn:focus, .wysiwyg-editor-save-btn:active,
 .wysiwyg-editor-save-btn:focus, .wysiwyg-editor-download-btn:active, .wysiwyg-editor-download-btn:focus, 
 .wysiwyg-editor-discard-btn:active, .wysiwyg-editor-discard-btn:focus {
  background-color: #43454d;
}

.wysiwyg-editor-title {
  color: var(--secondary-onDark-text-color);
  font-size: 18px;
  font-weight: bold;
  padding: 5px;
  border: solid 1px var(--light-medium-grey);
  border-radius: var(--default-tiny-border-radius);
  width: 100%;
}

.wysiwyg-editor-last-save {
  color: var(--secondary-onDark-text-color);
  font-size: 12px;
  font-style: italic;
  padding: 5px;
  border-radius: var(--default-tiny-border-radius);
}

/* Notes tool helper block used in detail mode when file is missing. */
.notes-tool-missing-actions {
  margin-top: 10px;
  padding: 10px;
  border: solid 1px var(--separator-footer-color);
  border-radius: var(--default-small-border-radius);
  background-color: var(--not-so-very-dark-grey);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.notes-tool-missing-info {
  color: var(--lighter-grey);
  font-style: italic;
}