@charset "UTF-8";
/* =========================================================
   style.css — surcharge client (généré)
   Mode : OVERLAY (image plein écran + carte flottante)
   Cascade plateforme : materialize.css -> index.css (global)
   -> fonts.css -> CE FICHIER.
   ========================================================= */

/* --- Reset / neutralisation du global --- */
* {
  box-sizing: border-box;
}

html {
  height: 100%;
  font-size: clamp(10px, 1vw, 13px);
}

body {
  height: 100%;
  margin: 0;
  background-color: #fff;
  color: #052a74;
  font-size: 1.2rem;
  font-family: 'Helvetica Neue LTStd', 'Arial', sans-serif;
}

a {
  text-decoration: none;
  color: #00a3fa;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
  transition: background-color 5000s ease-in-out 0s !important;
  -webkit-box-shadow: 0 0 0px 1000px #ffffff52 inset !important;
  -webkit-text-fill-color: #052a74 !important;
  border: 0;
}

::placeholder {
  color: #052a74 !important;
  opacity: 1 !important;
}

/* --- Modale récupération identifiants --- */
#modalRecupId {
  display: none;
  width: 600px;
}

#modalRecupId .modal-content {
  padding: 0;
}

#modalRecupId iframe {
  border: none;
  width: 100%;
  height: 280px;
}

/* --- Page (mobile-first) --- */
#page {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: url(../images/bg.jpg) no-repeat left center;
  background-size: cover;
}

.contenu {
  width: 100%;
  margin: 0;
  background: #fff;
  flex: 1 1 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3rem;
}

.bg {
  width: 100%;
  display: none;
}

header,
main {
  width: 100%;
  /* max-width:32rem; */
  margin: 0 auto;
}

#logo {
  max-width: 100%;
  min-width: 100px;
  margin: 0 auto 4.1rem auto;
  text-align: center;
}

#logo img {
  max-width: 100%;
  height: auto;
  border: 0;
}

/* --- Typo titres --- */
h2 {
  font-family: 'Helvetica Neue LTStd', 'Arial', sans-serif;
  font-size: 3.8rem;
  font-weight: 400;
  color: #052a74;
  text-align: left;
  margin: 0;
  text-transform: none;
  letter-spacing: 0rem;
  line-height: 1;
}

h3 {
  font-family: 'Helvetica Neue LTStd', 'Arial', sans-serif;
  font-size: 2.6rem;
  font-weight: 400;
  color: #052a74;
  text-align: left;
  text-transform: none;
  line-height: 1;
  margin: 0;
}

.instructions {
  font-family: 'Inter', 'Arial', sans-serif;
  text-align: left;
  color: #052a74;
  font-size: 1.42rem;
  line-height: 1.2;
  margin: 2.9rem 0 3.2rem;
}

.instructions .color,
.color {
  font-weight: 600;
  color: #d4af37;
}

/* --- Champs (style: box) --- */
#fields {
  width: 100%;
  max-width: 100%;
  margin-bottom: .8rem;
  border: 1px solid #00b4f4;
  border-radius: 7px;
}

#fields .field {
  position: relative;
  height: 7.4rem;
  background-color: rgba(0, 0, 0, 0);
  /* border:1px solid #00a3fa; */
  border-radius: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 0px 10px;
  justify-items: start;
  align-items: center;
  align-content: center;
}

#fields .field:first-child {
  margin-bottom: 0rem;
  border-bottom: 1px solid #9a9a9a;
}

#fields label.icone {
  /* position:absolute; */
  /* top:0; */
  /* left:0; */
  width: clamp(50px, 20vw, 8rem);
  height: 100%;
  display: flex;
  /* font-family: 'Inter', Arial, serif; */
  justify-content: flex-end;
  align-items: center;
  grid-area: 1 / 1 / 3 / 2;
  /* margin-right: 10px; */
}

#fields label.label {
  font-family: 'Inter', Arial, serif;
  color: inherit;
  font-size: 1em;;
}

#fields label.icone img {
  height: 4.5rem;
  width: auto;
}

#fields input[type='text'],
#fields input[type='password'],
#fields input[type='email'] {
  font-family: 'Inter', 'Arial', sans-serif !important;
  font-size: 1.35rem !important;
  font-weight: 300;
  color: #052a74 !important;
  /* position:absolute; */
  z-index: 1;
  /* bottom:0; */
  /* left: 9.1rem; */
  width: auto;
  height: 100% !important;
  border-bottom: 0;
  box-sizing: border-box;
  margin-bottom: 0;
  padding: 0 2rem 0 0;
  background: transparent;
  caret-color: #d4af37;
  border: 0;
}

#fields input:focus {
  box-shadow: none !important;
  outline: 0;
}

#fields input::placeholder {
  font-family: 'Inter', 'Arial', sans-serif;
  color: #052a74;
}

/* --- Bouton --- */
.boutons {
  display: flex;
  align-items: center;
  margin-top: 3.2rem;
}

.button_form {
  height: 5.5rem;
  width: 100%;
  font-family: 'Inter', 'Arial', sans-serif;
  font-weight: 400;
  font-size: 1.6rem;
  color: #ffffff;
  display: flex;
  align-items: center;
  /* margin:2rem auto 0; */
  text-align: center;
  position: relative;
  letter-spacing: 0.2rem;
  text-transform: none;
  flex: 1 1 50%;
  background-color: #00a3fa;
  border-radius: 12px;
  transition: all 0.4s ease-in-out;
  justify-content: center;
}

.button_form:hover,
.button_form:focus {
  background-color: #052a74;
  color: #ffffff;
}

/* --- Lien oublié --- */
#oubli_form {
  text-align: right;
  /* margin-top: 1em; */
  flex: 1 1 50%;
  font-size: 1rem;
}

#oubli_form a {
  font-family: 'Inter', 'Arial', sans-serif;
  /* font-style:italic; */
  font-size: 1.4rem;
  color: #00a3fa;
  text-decoration: underline;
  transition: all 0.3s ease-in-out;
}

#oubli_form a:hover {
  color: #052a74;
}

/* --- Responsive --- */
@media screen and (max-width:599px) {
  html {
    font-size: 11px;
  }

  .contenu {
    padding: 0 2rem;
  }

  #page {
    background: url(../images/bg.jpg) no-repeat center center;
    background-size: cover;
  }

  /* .contenu {
    background: rgba(255, 255, 255, 0.4);
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.27);
    border-radius: 30px;
    padding: 6.5rem;
    margin: 4rem auto;
  } */
}

@media screen and (min-width:600px) {
  html {
    font-size: 11px;
  }

  #page {
    padding: 2rem 0;
    position: relative;
  }

  .contenu {
    justify-content: center;
    min-height: 100%;
    margin: auto;
    width: 100%;
    max-width: 51.5rem;
    padding: 4rem;
    position: relative;
    border-radius: 4.5rem;
    z-index: 1;
  }

  .contenu::before {
    content: "";
    position: absolute;
    z-index: -1;
    width: 100%;
    height: 100%;
    top: -5px;
    left: -5px;
    background: #fff;
    border: 5px solid #fff;
    box-sizing: content-box;
    opacity: 0.2;
    border-radius: calc(4.5rem + 5px);

  }
}

@media screen and (min-width:960px) {
  html {
    font-size: 12px;
  }

  #page {
    background: url(../images/bg.jpg) no-repeat center center;
    background-size: cover;
    min-height: 100%;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-end;
    padding: 2rem 4rem;
    position: relative;
  }

  .contenu {
    width: 50%;
    flex: 0 0 auto;
    max-width: 700px;
    margin: 0 0px 0;
    background: rgb(255 255 255);
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.27);
    border-radius: 4.5rem;
    padding: clamp(30px, 9vh, 12rem) clamp(30px, 6vw, 8.3rem);
    position: relative;
    z-index: 1;
  }


  .bg {
    display: none;
  }

