:root{
  --fulli-primary:#0085f3;
  --fulli-primary-600:#024f95;
  --fulli-navy:#0B1B2B;
  --text-main:#0f2b46;
  --text-muted:#5b6b7b;
  --card-bg:#ffffff;
  --card-border:#e7edf3;
  --field-border:#d9dde2;

  --kc-marketing-bg:url('../images/hero-fulli.jpg');

    --ff-h-bold: "Obviously-Bold", sans-serif;
    --ff-h-semi: "Obviously-SemiBold", sans-serif;
    --c-h-on-dark: #fff; /* Exemple de couleur foncée pour les titres sur fond clair */
    --c-h-on-light: var(--fulli-navy); /* Exemple de couleur claire pour les titres sur fond foncé */
}

.color-primary { color: var(--fulli-primary) !important; }
.color-secondary { color: var(--fulli-primary-600) !important; }

html,body{height:100%;}
body.kc-body{
  margin:0;
  background:linear-gradient(180deg,#0B1B2B 0%, #0d2238 100%);
  color:var(--text-main);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}

/* Layout 2 colonnes */
.kc-two-col{
  height:100vh;
  display:grid;
  grid-template-columns: 1fr 2fr; /* ~33%/67% */
}
.kc-col{ display:flex; align-items:stretch; }

/* Colonne gauche */
.kc-col-left{ position:relative; }
.kc-form-card{
  display: flex;
  flex-direction: column;
  flex:1;
  width:min(460px,92%);
  background:var(--card-bg);
  border:1px solid var(--card-border);
  border-radius:0;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
  padding:24px 40px;
  gap: 24px;
}
.kc-card-top--centered{
  display:flex; align-items:center; justify-content:center;
  padding:8px 0;
}
.kc-brand--stack{
  display:grid; justify-items:center; text-align:center; gap:8px; margin-bottom:6px;
}
.kc-logo{ width:64px; height:auto; }
.kc-title{ margin:0; font-size:2rem; font-weight:800; letter-spacing:.2px; text-align:center; color: var(--c-h-on-light); }
.kc-subtitle{ margin:2px 0 0; font-size:.95rem; color:var(--text-muted); }
.kc-content { width: 100%; display: flex; flex: 1;}
.kc-content-wrapper { flex: 1; display: flex; flex-direction: column;}
.kc-form-fields{ margin-top:10px; display: flex; flex-direction: column; justify-content: flex-start; }
.kc-form-fields form{ display:grid; gap:16px; margin-top: 24px; min-width:0; }
.kc-form-fields form  > div:first-child { min-width:0; }
.kc-form-fields form .text-label {
    white-space: normal;      /* Empêche le texte de passer à la ligne */
    overflow: hidden;         /* Cache le texte qui dépasse */
    text-overflow: ellipsis;  /* Ajoute "..." à la fin du texte coupé */
    display: block;           /* Nécessaire pour que overflow: hidden fonctionne correctement sur des éléments inline */
}
.kc-form-fields input[type="text"],
.kc-form-fields input[type="password"],
.kc-form-fields input[type="email"]{
  width:100%; height:46px; font-size:15px;
  border-radius:12px; border:1px solid var(--field-border);
  padding:10px 50px 10px 10px; outline:none; background:#fff;
}
.kc-form-fields input:focus{
  border-color:var(--fulli-primary);
  box-shadow:0 0 0 3px rgba(0,91,172,.15);
}
.kc-form-fields input::placeholder{ color:#9aa7b4; }
.kc-form-fields .button,
.kc-form-fields input[type="submit"],
.kc-form-fields button[type="submit"]{
  background:var(--fulli-primary);
  border:none; color:#fff; height:46px;
  border-radius:12px; font-weight:700; letter-spacing:.3px; cursor:pointer;
}
.kc-form-fields .button:hover,
.kc-form-fields input[type="submit"]:hover,
.kc-form-fields button[type="submit"]:hover{ background:var(--fulli-primary-600); }

/* État désactivé : bouton submit (button, input, .button) */
.kc-form-fields button[type="submit"][disabled],
.kc-form-fields button[type="submit"][aria-disabled="true"],
.kc-form-fields input[type="submit"]:disabled,
.kc-form-fields .button[disabled],
.kc-form-fields .button[aria-disabled="true"] {
  background: #c9ced6;
  color: #6b7280;
  cursor: not-allowed;
  box-shadow: none;
  filter: none;
  opacity: 1;
  border: none;
}

/* Icône dans le bouton (si présente) */
.kc-form-fields button[type="submit"][disabled] img,
.kc-form-fields button[type="submit"][aria-disabled="true"] img {
  opacity: .5;
}

/* Bloquer hover/active quand désactivé */
.kc-form-fields button[type="submit"][disabled]:hover,
.kc-form-fields button[type="submit"][aria-disabled="true"]:hover,
.kc-form-fields input[type="submit"]:disabled:hover,
.kc-form-fields .button[disabled]:hover,
.kc-form-fields .button[aria-disabled="true"]:hover {
  background: #c9ced6;
  color: #6b7280;
}

/* Focus visible mais discret en désactivé (a11y) */
.kc-form-fields button[type="submit"][disabled]:focus-visible,
.kc-form-fields button[type="submit"][aria-disabled="true"]:focus-visible,
.kc-form-fields input[type="submit"]:disabled:focus-visible {
  outline: 2px dashed #aab2bd;
  outline-offset: 2px;
}
/* Sélecteur de langue flottant */
.kc-locale-floating{
  position:absolute; top:16px; right:24px; z-index:10;
}
.kc-locale-floating #kc-locale,
.kc-locale-floating .kc-dropdown{ position:static; }
.kc-locale-floating .kc-dropdown > a,
.kc-locale-floating .kc-dropdown > button{
  display:flex; align-items:center; gap:6px;
  height:36px; padding:0 10px;
  border:1px solid var(--field-border);
  border-radius:10px;
  background:#fff; color:#334; text-decoration:none; font-size:.9rem;
}
.kc-locale-floating .kc-dropdown ul{
  right:0; left:auto; border-radius:10px; overflow:hidden;
}
/* ===== Locale switcher ===== */
.kc-locale { display:flex; justify-content:flex-end; padding: 12px 20px; }
@media (min-width: 768px){ .kc-locale { padding: 20px; } }

.kc-locale__select{
  --_h: 38px;
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
  height: var(--_h);
  line-height: var(--_h);
  padding: 0 36px 0 12px;
  border: 1px solid var(--field-border, #e6ebf5);
  border-radius: 10px;
  background: #fff;
  color: #001966;
  font: 500 14px/1.2 Inter, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

/* Icône caret (SVG inline) */
.kc-locale__select{
  background-image:
    url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 10l5 5 5-5' stroke='%23001966' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 16px 16px;
}

.kc-locale__select:hover{
  border-color: var(--fulli-primary, #005bac);
  background-color: #f8fbff;
}

.kc-locale__select:focus{
  outline: none;
  border-color: var(--fulli-primary, #005bac);
  box-shadow: 0 0 0 3px rgba(0,91,172,.12);
}

/* État désactivé */
.kc-locale__select:disabled{
  opacity: .6; cursor: not-allowed; background: #f3f6fa;
}


/* Optionnel : resserrer un peu la largeur si seulement 2-3 langues */
.kc-locale__select.kc-locale__select--compact{ min-width: 90px; }

/* Accessibilité : cacher le label si tu l’ajoutes visuellement masqué */
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* Colonne droite (hero + cartes) */
.kc-col-right{ position:relative; overflow:hidden; }
.kc-marketing{
  position:relative; width:100%; height:100%;
  background-image:var(--kc-marketing-bg);
  background-position:center; background-size:cover; background-repeat:no-repeat;
  display:flex; align-items:center;
}
.kc-marketing-content{ position:relative; display: flex; flex-direction: column; height: 100%; z-index:1; color:#fff; max-width:960px; margin:0 6vw; }
.kc-mkt-title{ font-size:clamp(1.7rem,2.3vw + 1rem,2.4rem) !important; margin:32px 0 8px; font-weight:900 !important; text-align: left !important }
.kc-mkt-text{ font-size:clamp(1rem,.8vw + .85rem,1.15rem); opacity:.95; margin:0 0 16px; }
.kc-mkt-footnote{ font-size:.92rem; opacity:.88; margin-top:14px; }

/* Cartes d’assistance (glass) */
.kc-assist-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:18px;
  margin:0 0 12px;
  margin-top: auto;
}
.assist-card{
  background:rgba(0,0,0,.35);
  backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.15);
  border-radius:12px;
  padding:14px;
  color:#fff;
}
.assist-icon{ display:flex; align-items: center; gap: 16px; font-size:2rem; margin-bottom:6px; }
.assist-card h3{ margin:4px 0 6px; font-size:1.05rem; font-weight:700; color:#D6E9F9; }
.assist-card p{ margin:0; font-size:.95rem; line-height:1.4; color:#f3f7fb; }

/* Responsive */
@media (max-width:1024px){
  .kc-two-col{ grid-template-columns:1fr; }
  .kc-col-right{ display:none; }
  .kc-form-card{ width:min(520px,96%); padding:16px 32px; gap: 16px; }

}
@media (max-width:640px){
  .kc-title{ font-size:1.8rem; }
  .kc-logo{ width:48px; height:auto; }
}


/* Alerts */
.alert {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
  gap: 8px;
  border: 0;
  line-height: 1.56;
  position: relative;
  text-align: left;
  padding: 1rem;
  border-radius: 8px;
  font-size: 0.95rem;
}

/* Utilitaires */
.min-w-0 { min-width : 0 ! important;}