/* ==========================================================================
   Nafrini — pages « Espace » (1.9.5)
   Mes horaires (coach), Espace équipe (agent), Mon espace (client) et
   Espace coach : salutation, panneau d'Amelia sur toute la largeur,
   contenu de Nafrini Hub (séances, « Séance réalisée »).
   Jetons : theme.css. Rien ici ne touche les autres pages.
   ========================================================================== */

.es{
  padding-top:calc(var(--header-h) + clamp(24px, 3.5vw, 48px));
  padding-bottom:clamp(56px, 7vw, 112px);
  background:var(--paper);
}

/* --- En-tête --------------------------------------------------------------- */
.es__tete{ max-width:none; }
.es__etiquette{
  display:flex; align-items:center; gap:10px;
  margin:0 0 14px;
  font-family:var(--f-sans); font-size:11px; font-weight:400;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3);
}
.es__point{ width:6px; height:6px; border-radius:50%; background:var(--cherry); flex:none; }
.es__salut{
  margin:0;
  font-family:var(--f-display); font-weight:300;
  font-size:clamp(38px, 4.6vw, 60px); line-height:1.05; letter-spacing:-.01em;
  color:var(--ink);
}
.es__nom{ position:relative; display:inline-block; font-style:italic; color:var(--cherry); }
.es__trait{
  position:absolute; left:0; right:0; bottom:.06em; height:1px;
  background:var(--cherry);
  transform:scaleX(0); transform-origin:left;
}
.es--nomme .es__trait{ animation:esTrait 1.1s var(--ease) .15s forwards; }
.es__ligne{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px;
  margin:16px 0 0;
  font-family:var(--f-sans); font-size:15px; font-weight:300; line-height:1.55; color:var(--ink-2);
}
.es__sep{ width:4px; height:4px; border-radius:50%; background:var(--ink-4); }
.es__puces{ display:flex; flex-wrap:wrap; gap:10px; margin:24px 0 0; }
.es__puce{
  display:inline-flex; align-items:center; min-height:40px; padding:0 16px;
  border:1px solid var(--line); background:transparent;
  font-family:var(--f-sans); font-size:12px; letter-spacing:.06em; color:var(--ink-2);
  text-decoration:none;
  transition:border-color .3s var(--ease-soft), color .3s var(--ease-soft), background-color .3s var(--ease-soft);
}
.es__puce:hover, .es__puce:focus-visible{ border-color:var(--ink); color:var(--ink); }
.es__puce:focus-visible{ outline:2px solid var(--cherry); outline-offset:2px; }
.es__puce[aria-current="page"]{ border-color:var(--ink); background:var(--ink); color:var(--white); }

/* --- Panneau d'Amelia ------------------------------------------------------ */
.es__panneau{
  margin-top:clamp(22px, 2.6vw, 32px);
  background:var(--white);
  border:1px solid var(--line);
  box-shadow:0 24px 60px rgba(12,12,13,.06);
}
.es__panneau .amelia-v2-booking{
  width:100% !important; max-width:none !important; min-height:620px;
  /* Couleurs de la marque, transmises au panneau. */
  --am-c-primary:var(--cherry);
  --am-c-sb-bgr:var(--ink);
  --am-c-sb-text:#E9E7E3;
}
.es__panneau .am-cap,
.es__panneau .am-cat{ width:100%; max-width:none; }
/* Quand Amelia pose ses couleurs sur l'élément lui-même. */
.es__panneau [style*="--am-c-primary"]{ --am-c-primary:var(--cherry) !important; }
.es__panneau [style*="--am-c-sb-bgr"]{ --am-c-sb-bgr:var(--ink) !important; --am-c-sb-text:#E9E7E3 !important; }

/* --- Contenu de l'Espace coach (Nafrini Hub) ------------------------------- */
.es__contenu{ margin-top:clamp(22px, 2.6vw, 32px); }
.es-coach{ display:flex; flex-direction:column; gap:22px; }
.es-message{
  margin:0; padding:14px 18px;
  font-family:var(--f-sans); font-size:14px; line-height:1.5;
  border-left:3px solid var(--cherry); background:var(--white);
}
.es-message--ok{ border-left-color:#2E7D4F; }
.es-tuiles{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px; }
.es-tuile{ padding:20px 22px; background:var(--white); border:1px solid var(--line); }
.es-tuile__label{ margin:0 0 6px; font-family:var(--f-sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); }
.es-tuile__valeur{ margin:0; font-family:var(--f-display); font-size:34px; font-weight:300; line-height:1.1; color:var(--ink); }
.es-tuile__valeur span{ font-family:var(--f-sans); font-size:13px; color:var(--ink-3); }
.es-tuile__valeur--cerise{ color:var(--cherry); }
.es-tuile__texte{ margin:6px 0 0; font-family:var(--f-sans); font-size:15px; line-height:1.4; color:var(--ink); }
.es-groupe{ display:flex; flex-direction:column; gap:12px; }
.es-groupe__titre{ margin:8px 0 0; font-family:var(--f-sans); font-size:11px; font-weight:400; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); }
.es-groupe__note{ margin:-4px 0 0; font-family:var(--f-sans); font-size:13px; color:var(--ink-3); }
.es-cartes{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; }
.es-carte{
  display:flex; flex-direction:column; gap:10px;
  padding:22px 24px; background:var(--white); border:1px solid var(--line);
  transition:border-color .3s var(--ease-soft), box-shadow .3s var(--ease-soft), transform .4s var(--ease);
}
.es-carte:hover{ border-color:#D9D5CF; box-shadow:0 14px 36px rgba(12,12,13,.07); transform:translateY(-2px); }
.es-carte__tete{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.es-carte__quand{ font-family:var(--f-display); font-size:24px; font-weight:300; color:var(--ink); }
.es-carte__qui{ margin:0; font-family:var(--f-sans); font-size:15px; line-height:1.5; color:var(--ink-2); }
.es-carte__actions{ display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; margin-top:4px; }
.es-carte__form{ margin:0; }
.es-pastille{ flex:none; padding:5px 12px; font-family:var(--f-sans); font-size:12px; font-weight:500; white-space:nowrap; }
.es-pastille--vert{ background:#E6F2EA; color:#24653F; }
.es-pastille--ambre{ background:#FFF4DA; color:#996000; }
.es-pastille--rouge{ background:#FDECE9; color:#B42318; }
.es-pastille--neutre{ background:var(--line-soft); color:var(--ink-3); }
.es-action{
  display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 18px;
  font-family:var(--f-sans); font-size:11px; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; cursor:pointer; border:1px solid transparent; background:none;
  transition:background-color .3s var(--ease-soft), color .3s var(--ease-soft), border-color .3s var(--ease-soft);
}
.es-action--principal{ background:var(--cherry); border-color:var(--cherry); color:var(--white); }
.es-action--principal:hover, .es-action--principal:focus-visible{ background:var(--cherry-deep); border-color:var(--cherry-deep); }
.es-action--discret{ border-color:var(--ink); color:var(--ink); }
.es-action--discret:hover, .es-action--discret:focus-visible{ background:var(--ink); color:var(--white); }
.es-action--lien{ min-height:44px; padding:0 2px; color:var(--ink); text-decoration:underline; text-decoration-color:var(--cherry); text-underline-offset:4px; letter-spacing:.12em; }
.es-action:focus-visible{ outline:2px solid var(--cherry); outline-offset:2px; }
.es-note, .es-vide{ margin:0; font-family:var(--f-sans); font-size:13px; line-height:1.55; color:var(--ink-3); }
.es-vide{ padding:22px 24px; background:var(--white); border:1px solid var(--line); font-size:15px; color:var(--ink-2); }
/* Le curseur personnalisé du thème : le curseur normal revient sur les actions. */
html.has-cursor .es-action, html.has-cursor .es__puce{ cursor:pointer !important; }

/* --- Entrées --------------------------------------------------------------- */
.es-in{ opacity:0; transform:translateY(14px); animation:esRise .8s var(--ease) forwards; }
.es-d1{ animation-delay:.08s; } .es-d2{ animation-delay:.18s; } .es-d3{ animation-delay:.28s; } .es-d4{ animation-delay:.4s; }
@keyframes esRise{ to{ opacity:1; transform:none; } }
@keyframes esTrait{ to{ transform:scaleX(1); } }

/* --- Téléphone : le panneau reste tel quel -------------------------------- */
@media (max-width: 782px){
  .es{ padding-top:calc(var(--header-h) + 20px); }
  .es__panneau{ border:0; box-shadow:none; background:transparent; }
  .es__panneau .amelia-v2-booking{ min-height:0; }
  .es-tuiles, .es-cartes{ grid-template-columns:1fr; }
  .es-carte__actions .es-carte__form, .es-carte__actions .es-action--principal, .es-carte__actions .es-action--discret{ width:100%; }
  .es-carte__actions .es-action--principal, .es-carte__actions .es-action--discret{ width:100%; }
}

@media (prefers-reduced-motion: reduce){
  .es-in{ animation:none; opacity:1; transform:none; }
  .es--nomme .es__trait{ animation:none; transform:scaleX(1); }
  .es-carte{ transition:none; }
  .es-carte:hover{ transform:none; }
}

/* 1.9.7 — curseur du thème sur les pages « Espace » :
   au-dessus des fenêtres d'Amelia (calendrier, listes : couche 2 000 et plus),
   sinon il passe dessous et disparaît ; il ne capte jamais les clics. */
html.has-cursor .cursor{ z-index:2147483600; }
/* Au-dessus d'une zone sombre (détectée par espace.js) : anneau cerise
   (1.9.8), puis retour à la couleur normale. */
html.has-cursor.es-sur-sombre .cursor__ring{
  border-color:var(--cherry) !important;
  background-color:rgba(199,31,26,.14) !important;
}

/* ==========================================================================
   1.9.9 — « Se déconnecter » et Espace équipe (Nafrini Hub 0.37.0)
   ========================================================================== */
.es__haut{ display:flex; align-items:flex-start; justify-content:space-between; gap:24px; }
.es__titre{ min-width:0; }
.es__actions{ flex:none; padding-top:2px; }
.es-sortie{ margin:0; }
.es-sortie__bouton{
  display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:0 16px;
  border:1px solid var(--ink); background:transparent; color:var(--ink);
  font-family:var(--f-sans); font-size:11px; font-weight:500; letter-spacing:.14em; text-transform:uppercase;
  cursor:pointer; transition:background-color .3s var(--ease-soft), color .3s var(--ease-soft);
}
.es-sortie__bouton:hover, .es-sortie__bouton:focus-visible{ background:var(--ink); color:var(--white); }
.es-sortie__bouton:focus-visible{ outline:2px solid var(--cherry); outline-offset:2px; }
html.has-cursor .es-sortie__bouton, html.has-cursor .es-contact, html.has-cursor .es-filtres select{ cursor:pointer !important; }

.es-tuiles--4{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
.es-masque{ position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.es-filtres{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 16px; margin:6px 0 0; }
.es-filtres .es-groupe__titre{ margin:0; }
.es-filtres__champs{ display:flex; flex-wrap:wrap; gap:8px; }
.es-filtres select{
  min-height:44px; padding:0 34px 0 14px; border:1px solid var(--line); border-radius:0;
  background-color:var(--white); font-family:var(--f-sans); font-size:13px; color:var(--ink-2);
}
.es-liste{ display:flex; flex-direction:column; gap:10px; }
.es-rdv{
  display:grid; grid-template-columns:150px minmax(0, 1.35fr) minmax(0, 1fr) 130px minmax(0, 1.3fr);
  align-items:center; gap:18px; padding:16px 20px; background:var(--white); border:1px solid var(--line);
  transition:border-color .3s var(--ease-soft), box-shadow .3s var(--ease-soft), transform .4s var(--ease);
}
.es-rdv:hover{ border-color:#D9D5CF; box-shadow:0 10px 30px rgba(12,12,13,.06); transform:translateY(-1px); }
.es-rdv__quand, .es-rdv__client{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.es-rdv__heure{ font-family:var(--f-display); font-size:21px; font-weight:300; color:var(--ink); }
.es-rdv__rel, .es-rdv__detail{ font-family:var(--f-sans); font-size:12px; color:var(--ink-3); }
.es-rdv__nom{ font-family:var(--f-sans); font-size:15px; color:var(--ink); }
.es-rdv__coach{ display:flex; align-items:center; gap:10px; min-width:0; font-family:var(--f-sans); font-size:13px; color:var(--ink-2); }
.es-rdv__actions{ display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.es-rdv__actions .es-action{ min-height:40px; padding:0 14px; font-size:10.5px; }
.es-action--noir{ background:var(--ink); border-color:var(--ink); color:var(--white); }
.es-action--noir:hover, .es-action--noir:focus-visible{ background:#2A2A2E; border-color:#2A2A2E; }
.es-contact{
  display:inline-flex; align-items:center; justify-content:center; gap:8px; min-width:40px; height:40px; padding:0 10px;
  border:1px solid var(--line); background:var(--white); color:var(--ink);
  font-family:var(--f-sans); font-size:10.5px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; text-decoration:none;
  transition:border-color .3s var(--ease-soft), background-color .3s var(--ease-soft), color .3s var(--ease-soft);
}
.es-contact:hover, .es-contact:focus-visible{ border-color:var(--ink); }
.es-contact:focus-visible{ outline:2px solid var(--cherry); outline-offset:2px; }
.es-contact--wa{ color:#1F8F55; }
.es-contact--wa:hover, .es-contact--wa:focus-visible{ background:#1F8F55; border-color:#1F8F55; color:var(--white); }
.es-avatar{
  display:inline-flex; flex:none; align-items:center; justify-content:center; overflow:hidden; border-radius:50%;
  background:linear-gradient(135deg, var(--cherry), #5A0E0B); color:var(--white); font-family:var(--f-display); font-weight:300;
}
.es-avatar img{ display:block; width:100%; height:100%; object-fit:cover; }
.es-avatar--petit{ width:30px; height:30px; font-size:11px; }
.es-avatar--moyen{ width:52px; height:52px; font-size:18px; box-shadow:0 0 0 2px var(--white), 0 0 0 3px var(--cherry); }
.es-avatar--grand{ width:84px; height:84px; font-size:28px; box-shadow:0 0 0 3px var(--white), 0 0 0 4px var(--cherry); }
.es-equipe{ display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:16px; }
.es-coachcarte{
  display:grid; grid-template-columns:84px minmax(0, 1fr); gap:22px; padding:24px; background:var(--white); border:1px solid var(--line);
  transition:border-color .3s var(--ease-soft), box-shadow .3s var(--ease-soft), transform .4s var(--ease);
}
.es-coachcarte:hover{ border-color:#D9D5CF; box-shadow:0 14px 36px rgba(12,12,13,.07); transform:translateY(-2px); }
.es-coachcarte__tete{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.es-coachcarte__nom{ font-family:var(--f-display); font-size:24px; font-weight:300; color:var(--ink); }
.es-coachcarte__ligne{ margin:6px 0 0; font-family:var(--f-sans); font-size:13px; color:var(--ink-3); }
.es-coachcarte__ligne--fort{ margin-top:4px; color:var(--ink-2); }
.es-coachcarte__contacts{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.es-coachcarte__contacts .es-contact{ padding:0 14px; }
.es-coachcarte__contacts .es-contact--wa{ background:#1F8F55; border-color:#1F8F55; color:var(--white); }
.es-coachcarte__contacts .es-contact--wa:hover{ background:#17703F; border-color:#17703F; }
.es-pastille--bleu{ background:#E7EEF9; color:#225DB5; }

.es-semaine-carte{ padding:24px 26px; background:var(--white); border:1px solid var(--line); }
.es-semaine-carte__tete{ display:flex; align-items:center; gap:16px; margin-bottom:18px; }
.es-semaine-carte__nom{ font-family:var(--f-display); font-size:24px; font-weight:300; color:var(--ink); }
.es-semaine-carte__tete .es-pastille{ margin-left:auto; }
.es-semaine{ display:grid; grid-template-columns:repeat(7, minmax(0, 1fr)); gap:8px; }
.es-jour{ padding:12px; border:1px solid var(--line); }
.es-jour__nom{ margin:0 0 6px; font-family:var(--f-sans); font-size:10.5px; letter-spacing:.14em; color:var(--ink-3); }
.es-jour__heures{ margin:0; font-family:var(--f-sans); font-size:14px; color:var(--ink); }
.es-jour__pause{ margin:4px 0 0; font-family:var(--f-sans); font-size:12px; color:#996000; }
.es-jour--auj{ border-color:var(--ink); }
.es-jour--auj .es-jour__nom{ color:var(--cherry); }
.es-jour--repos{ border-style:dashed; background:#F7F5F2; }
.es-jour--repos .es-jour__heures{ color:var(--ink-3); }
.es-jour--conge{ border-style:dashed; border-color:#E8C26B; background:#FFF9EA; }
.es-jour--conge .es-jour__heures{ color:#996000; }
.es-jour--special{ border-color:#B9CBEA; background:#F4F7FC; }
.es-avenirs{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:16px; }
.es-avenirs__label{ font-family:var(--f-sans); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); }
.es-avenirs__vide{ font-family:var(--f-sans); font-size:13px; color:var(--ink-3); }
.es-avenir{ padding:7px 12px; font-family:var(--f-sans); font-size:12px; }
.es-avenir--conge{ background:#FFF4DA; color:#996000; }
.es-avenir--special{ background:#E7EEF9; color:#225DB5; }

@media (max-width: 1100px){
  .es-tuiles--4{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .es-rdv{ grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); }
  .es-rdv__actions{ grid-column:1 / -1; justify-content:flex-start; }
  .es-semaine{ grid-template-columns:repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 782px){
  .es__haut{ flex-direction:column-reverse; gap:14px; }
  .es__actions{ align-self:flex-end; }
  .es-tuiles--4, .es-equipe{ grid-template-columns:1fr; }
  .es-rdv{ grid-template-columns:1fr; gap:10px; }
  .es-semaine{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .es-coachcarte{ grid-template-columns:64px minmax(0, 1fr); gap:16px; }
  .es-coachcarte .es-avatar--grand{ width:64px; height:64px; font-size:22px; }
}
@media (prefers-reduced-motion: reduce){
  .es-rdv, .es-coachcarte{ transition:none; }
  .es-rdv:hover, .es-coachcarte:hover{ transform:none; }
}

/* 1.9.10 — « Appeler l’administrateur » (Espace équipe) : à part, en cerise. */
.es__puce--appel{ gap:8px; border-color:var(--cherry); color:var(--cherry); }
.es__puce--appel::before{
  content:""; width:14px; height:14px; flex:none; background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'><path d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/></svg>") center / contain no-repeat;
  mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'><path d='M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2'/></svg>") center / contain no-repeat;
}
.es__puce--appel:hover, .es__puce--appel:focus-visible{ border-color:var(--cherry); background:var(--cherry); color:var(--white); }

/* 1.9.11 — « Votre programme » (Mon espace, client d'un accompagnement). */
.es__programme{ margin-top:clamp(22px, 2.6vw, 32px); }
.es-programme{
  padding:26px 28px; background:var(--white); border:1px solid var(--line);
  box-shadow:0 18px 48px rgba(12,12,13,.05); animation:esRise .8s var(--ease) both;
}
.es-programme__tete{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.es-programme__etiquette{ margin:0; font-family:var(--f-sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); }
.es-programme__titre{ margin:8px 0 0; font-family:var(--f-display); font-size:clamp(24px, 2.4vw, 30px); font-weight:300; color:var(--ink); }
.es-programme__barre{ position:relative; height:4px; margin:20px 0 10px; overflow:hidden; background:var(--line-soft); }
.es-programme__reserve, .es-programme__fait{
  position:absolute; top:0; bottom:0; left:0;
  transform:scaleX(0); transform-origin:left; animation:esTrait 1.2s var(--ease) .3s forwards;
}
.es-programme__reserve{ background:rgba(199,31,26,.28); }
.es-programme__fait{ background:var(--cherry); }
.es-programme__texte{ margin:6px 0 0; font-family:var(--f-sans); font-size:14px; line-height:1.55; color:var(--ink-2); }
.es-programme__texte strong{ font-weight:500; color:var(--ink); }
.es-programme__pied{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line-soft); }
.es-programme__coach{ display:flex; align-items:center; gap:12px; font-family:var(--f-sans); font-size:14px; color:var(--ink-2); }
.es-programme__coach strong{ font-weight:500; color:var(--ink); }
@media (max-width: 782px){
  .es-programme{ padding:22px 20px; }
  .es-programme__pied .es-action{ width:100%; }
}
@media (prefers-reduced-motion: reduce){
  .es-programme{ animation:none; }
  .es-programme__reserve, .es-programme__fait{ animation:none; transform:none; }
}

/* 1.9.12 — « Besoin de plus de temps ? » (carte du programme). */
.es-programme__plus{ display:flex; flex-direction:column; gap:6px; margin-top:16px; padding:16px 18px; background:var(--paper); border-left:3px solid var(--cherry); }
.es-programme__plus .es-programme__texte{ margin:0; }
.es-programme__agent{ align-self:flex-start; margin-top:8px; padding:0 14px; }
@media (max-width: 782px){ .es-programme__agent{ align-self:stretch; } }

/* 1.9.14 — page « Connexion » (équipe : mot de passe ; client : lien par e-mail). */
.es-connexion{ display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr); gap:clamp(24px, 4vw, 56px); align-items:start; padding:clamp(24px, 3vw, 40px); }
.es-connexion > .es-message{ grid-column:1 / -1; }
.es-connexion__form{ display:flex; flex-direction:column; gap:16px; margin:0; }
.es-champ{ display:flex; flex-direction:column; gap:8px; }
.es-champ__label{ font-family:var(--f-sans); font-size:12px; letter-spacing:.06em; color:var(--ink-2); }
.es-champ__label em{ font-style:normal; color:var(--ink-3); }
.es-champ__input{
  width:100%; min-height:48px; padding:0 14px; box-sizing:border-box;
  border:1px solid var(--line); border-radius:0; background:var(--white);
  font-family:var(--f-sans); font-size:16px; color:var(--ink);
  transition:border-color .3s var(--ease-soft), box-shadow .3s var(--ease-soft);
}
.es-champ__input:focus{ outline:none; border-color:var(--ink); box-shadow:0 0 0 3px rgba(199,31,26,.12); }
.es-connexion__bouton{ min-height:50px; margin-top:4px; }
.es-connexion__aide{
  display:flex; flex-direction:column; gap:14px; padding:20px 22px;
  background:var(--paper); border-left:3px solid var(--cherry);
  font-family:var(--f-sans); font-size:14px; line-height:1.6; color:var(--ink-2);
}
.es-connexion__aide p{ margin:0; }
.es-connexion__aide strong{ font-weight:500; color:var(--ink); }
.es-connexion__aide a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--cherry); text-underline-offset:3px; }
html.has-cursor .es-champ__input{ cursor:text !important; }
html.has-cursor .es-connexion__bouton{ cursor:pointer !important; }
@media (max-width: 782px){ .es-connexion{ grid-template-columns:1fr; padding:20px 0; } }
