/* La Dame du Bois – Espace client. Couleurs et polices reprises des réglages globaux du site. */
.ldb-wrap {
  --ldb-vert: var(--e-global-color-primary, #355342);
  --ldb-or: var(--e-global-color-secondary, #C9A66B);
  --ldb-sable: #E6D2B3;
  --ldb-ivoire: #F8F6F2;
  --ldb-rose: #F0E2DF;
  --ldb-texte: #3B3B3B;
  --ldb-doux: #5F5F5F;
  --ldb-erreur: #9B2C2C;
  --ldb-titre: var(--e-global-typography-primary-font-family, "Cormorant Garamond"), Georgia, serif;
  --ldb-corps: var(--e-global-typography-6e1c76d-font-family, "Nunito"), "Helvetica Neue", Arial, sans-serif;
  box-sizing: border-box;
  max-width: 920px;
  margin: 0 auto;
  padding: clamp(32px, 6vw, 72px) 20px clamp(48px, 8vw, 96px);
  font-family: var(--ldb-corps);
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--ldb-texte);
}
.ldb-wrap *, .ldb-wrap *::before, .ldb-wrap *::after { box-sizing: border-box; }
.ldb-wrap--connexion { max-width: 520px; }
.ldb-wrap--suivi { max-width: 1040px; }

.ldb-wrap h1, .ldb-wrap h2, .ldb-wrap h3 { font-family: var(--ldb-titre); font-weight: 700; color: var(--ldb-vert); line-height: 1.2; margin: 0 0 .5em; }
.ldb-wrap h1 { font-size: clamp(2.2rem, 5vw, 3.2rem); }
.ldb-wrap h2 { font-size: clamp(1.6rem, 3vw, 2rem); }
.ldb-wrap h3 { font-size: 1.5rem; }
.ldb-wrap p { margin: 0 0 1em; }
.ldb-wrap a { color: var(--ldb-vert); text-decoration: underline; text-underline-offset: 3px; }
.ldb-wrap a:hover { text-decoration-thickness: 2px; }
.ldb-wrap a:focus-visible, .ldb-wrap button:focus-visible, .ldb-wrap input:focus-visible, .ldb-wrap textarea:focus-visible, .ldb-wrap select:focus-visible, .ldb-wrap summary:focus-visible { outline: 2px solid var(--ldb-vert); outline-offset: 3px; }
.ldb-intro { font-size: 1.15rem; color: var(--ldb-doux); }
.ldb-aide { display: block; font-size: .92rem; color: var(--ldb-doux); }
.ldb-vide { padding: 28px; background: var(--ldb-ivoire); border: 1px dashed var(--ldb-sable); border-radius: 6px; color: var(--ldb-doux); }
.ldb-titre-liste { margin-top: 1.8em !important; padding-bottom: .3em; border-bottom: 1px solid var(--ldb-or); }

/* Navigation */
.ldb-nav { margin-bottom: clamp(24px, 4vw, 40px); border-bottom: 1px solid var(--ldb-sable); }
.ldb-nav ul { display: flex; flex-wrap: wrap; gap: 4px 8px; list-style: none; margin: 0; padding: 0; }
.ldb-nav a { display: block; padding: 12px 14px; min-height: 44px; font-weight: 600; text-decoration: none; border-bottom: 3px solid transparent; }
.ldb-nav a:hover { border-bottom-color: var(--ldb-sable); }
.ldb-nav a[aria-current="page"] { border-bottom-color: var(--ldb-or); }
.ldb-nav__fin { margin-left: auto; }
.ldb-nav__fin a { font-weight: 400; color: var(--ldb-doux); }

/* Messages */
.ldb-flash { padding: 14px 18px; border-radius: 6px; border-left: 4px solid var(--ldb-vert); background: #EEF3EE; color: #23392D; }
.ldb-flash--err { border-left-color: var(--ldb-erreur); background: #FBEFEF; color: #7A1F1F; }

/* Cartes */
.ldb-carte { display: block; padding: clamp(20px, 3.5vw, 32px); background: #fff; border: 1px solid var(--ldb-sable); border-radius: 6px; }
.ldb-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin: 24px 0; }
.ldb-wrap a.ldb-carte--lien { text-decoration: none; color: var(--ldb-texte); transition: border-color .2s, box-shadow .2s; }
.ldb-wrap a.ldb-carte--lien:hover { border-color: var(--ldb-or); box-shadow: 0 6px 22px rgba(53, 83, 66, .1); }
.ldb-carte__cta { display: inline-block; margin-top: 4px; font-weight: 700; color: var(--ldb-vert); text-decoration: underline; text-underline-offset: 4px; }
.ldb-gestion { margin-top: 48px; background: var(--ldb-ivoire); }

/* Boutons */
.ldb-wrap .ldb-btn, .ldb-wrap .ff-btn-submit, .ldb-wrap #fls_login_form input[type="submit"], .ldb-wrap .fls_reset_pass_wrapper button, .ldb-wrap .fls_reset_pass_wrapper input[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 26px;
  font-family: var(--ldb-corps); font-size: 1rem; font-weight: 700; letter-spacing: .02em; line-height: 1.2;
  color: #fff !important; background: var(--ldb-vert) !important; border: 2px solid var(--ldb-vert) !important; border-radius: 4px;
  text-decoration: none; cursor: pointer; transition: background .2s, border-color .2s;
}
.ldb-wrap .ldb-btn:hover, .ldb-wrap .ff-btn-submit:hover, .ldb-wrap #fls_login_form input[type="submit"]:hover, .ldb-wrap .fls_reset_pass_wrapper button:hover { background: #26402F !important; border-color: #26402F !important; }
.ldb-wrap .ldb-btn--petit { min-height: 44px; padding: 8px 18px; font-size: .95rem; }
.ldb-wrap .ldb-btn--contour { background: transparent !important; color: var(--ldb-vert) !important; }
.ldb-wrap .ldb-btn--contour:hover { background: var(--ldb-vert) !important; color: #fff !important; }
.ldb-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--ldb-sable); }

/* Formulaires */
.ldb-wrap label { display: block; margin-bottom: 6px; font-weight: 600; color: var(--ldb-texte); }
.ldb-wrap input[type="text"], .ldb-wrap input[type="email"], .ldb-wrap input[type="password"], .ldb-wrap textarea, .ldb-wrap select {
  width: 100%; padding: 12px 14px; min-height: 48px; font-family: var(--ldb-corps); font-size: 1rem; line-height: 1.5;
  color: var(--ldb-texte); background: #fff; border: 1px solid #8C8C8C; border-radius: 4px;
}
.ldb-wrap textarea { min-height: 120px; resize: vertical; }
.ldb-wrap input:focus, .ldb-wrap textarea:focus, .ldb-wrap select:focus { border-color: var(--ldb-vert); }
.ldb-champs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 20px; }
.ldb-case { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 10px; }
.ldb-case input { flex: none; width: 22px; height: 22px; margin: 3px 0 0; accent-color: var(--ldb-vert); }
.ldb-case label { margin: 0; font-weight: 400; }
.ldb-groupes { margin: 0 0 20px; padding: 16px 18px; border: 1px solid var(--ldb-sable); border-radius: 6px; background: #fff; }
.ldb-groupes legend { padding: 0 8px; font-weight: 600; }
.ldb-connexion #fls_login_form p, .ldb-connexion .fls_reset_pass_wrapper p { margin-bottom: 16px; }
.ldb-connexion .login-remember label { display: flex; align-items: center; gap: 8px; font-weight: 400; }
.ldb-connexion .login-remember input { width: 20px; height: 20px; accent-color: var(--ldb-vert); }
.ldb-connexion .hide, .ldb-connexion .fls_hide { display: none; }
.ldb-wrap--connexion .ldb-carte { margin-bottom: 20px; }
.ldb-wrap--connexion .ldb-carte + p { display: none; }
.ldb-wrap--connexion:has(.fls_reset_pass_wrapper:not(.hide)) .ldb-carte + p { display: block; }
.ldb-ecrire .fluentform .ff-el-group { margin-bottom: 18px; }
.ldb-ecrire .fluentform .ff-el-input--label label { font-weight: 600; }

/* Notes */
.ldb-note { margin: 0 0 24px; padding: clamp(18px, 3vw, 28px); background: #fff; border: 1px solid var(--ldb-sable); border-left: 4px solid var(--ldb-or); border-radius: 6px; scroll-margin-top: 120px; }
.ldb-note--nouveau { border-left-color: var(--ldb-vert); background: #FBFCFA; }
.ldb-note header h2, .ldb-note header h3 { font-size: 1.5rem; margin-bottom: 2px; text-transform: capitalize; }
.ldb-note__meta { font-size: .92rem; color: var(--ldb-doux); }
.ldb-note__texte { margin-bottom: 16px; overflow-wrap: anywhere; }
.ldb-pastille { display: inline-block; padding: 2px 10px; font-family: var(--ldb-corps); font-size: .8rem; font-weight: 700; text-transform: none; color: #fff; background: var(--ldb-vert); border-radius: 999px; vertical-align: middle; }
.ldb-pastille--gris { background: #5F5F5F; }
.ldb-fil { list-style: none; margin: 0 0 16px; padding: 0; display: grid; gap: 12px; }
.ldb-msg { max-width: 88%; padding: 12px 16px; background: var(--ldb-rose); border-radius: 6px; overflow-wrap: anywhere; }
.ldb-msg--moi { justify-self: end; background: var(--ldb-ivoire); border: 1px solid var(--ldb-sable); }
.ldb-msg p { margin: 0; }
.ldb-msg .ldb-msg__meta { margin-bottom: 4px; font-size: .88rem; font-weight: 600; color: var(--ldb-doux); }
.ldb-repondre { margin-top: 8px; }
.ldb-repondre summary { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; color: var(--ldb-vert); cursor: pointer; }
.ldb-repondre form { margin-top: 10px; }
.ldb-pages { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-top: 28px; }

/* Suivi */
.ldb-table-zone { overflow-x: auto; }
.ldb-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--ldb-sable); }
.ldb-table th, .ldb-table td { padding: 14px 16px; text-align: left; vertical-align: middle; border: 0; border-bottom: 1px solid var(--ldb-sable); background: #fff; }
.ldb-table thead th { font-size: .88rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ldb-doux); background: var(--ldb-ivoire); }
.ldb-table tbody th { font-weight: 700; color: var(--ldb-vert); }
.ldb-table .ldb-aide { font-weight: 400; }

/* Ressource ouverte */
.ldb-media { margin: 0 0 20px; }
.ldb-media__titre { margin-bottom: 6px !important; font-weight: 600; }
.ldb-media--video iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; border: 0; border-radius: 6px; }
.ldb-media--fichier { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; background: var(--ldb-ivoire); border: 1px solid var(--ldb-sable); border-radius: 6px; }
.ldb-media .wp-video, .ldb-media video { max-width: 100%; height: auto; }
.ldb-ressource img, .ldb-ressource video, .ldb-ressource iframe { max-width: 100%; }
.ldb-ressource img { height: auto; border-radius: 6px; }
.ldb-ressource .wp-block-file { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 16px 18px; background: var(--ldb-ivoire); border: 1px solid var(--ldb-sable); border-radius: 6px; }
.ldb-ressource audio { width: 100%; }

.ldb-wrap .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

@media (max-width: 600px) {
  .ldb-nav__fin { margin-left: 0; }
  .ldb-msg { max-width: 100%; }
  .ldb-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .ldb-table, .ldb-table tbody, .ldb-table tr, .ldb-table th, .ldb-table td { display: block; width: 100%; }
  .ldb-table tr { padding: 12px 0; border-bottom: 1px solid var(--ldb-sable); }
  .ldb-table th, .ldb-table td { padding: 4px 16px; border: 0; }
  .ldb-table td:nth-child(2)::before { content: "Dernière note : "; color: var(--ldb-doux); }
  .ldb-table td:nth-child(3)::before { content: "Notes : "; color: var(--ldb-doux); }
  .ldb-table td:nth-child(4)::before { content: "À lire : "; color: var(--ldb-doux); }
}
@media (prefers-reduced-motion: reduce) { .ldb-wrap * { transition: none !important; } }
