/* Essor : vrai noir, gris neutres, beige et or. Typographie reprise du site de vide-dressing. */
:root {
  --bg: #0a1322;
  --surface: #0e1a2b;
  --surface-2: #13233a;
  --line: #22324a;
  --line-strong: #3a4c66;
  --beige: #e9ecf1;
  --beige-dim: #9aa1ad;
  --gold: #c9973a;
  --gold-bright: #ddb466;
  --gold-deep: #b5852c;
  --gold-wash: #172840;
    --paper: #f3f2f2;
  --paper-ink: #0e1a2b;
  --danger: #e8a08b;
  --danger-deep: #b5503a;
  --serif: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  --sans: "Jost", "Helvetica Neue", Arial, sans-serif;
  --field-bg: #08101d;
  color-scheme: dark;
  box-sizing: border-box;
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
*, *::before, *::after { box-sizing: inherit; }
html { scroll-padding-top: env(safe-area-inset-top, 0px); }
html.modal-open { overflow: hidden; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--beige);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 600; margin: 0; line-height: 1.15; }
h1 { font-size: clamp(2.2rem, 4.5vw, 3.2rem); font-weight: 500; letter-spacing: -0.005em; }
h2 { font-size: clamp(1.6rem, 3vw, 2.1rem); }
h3 { font-size: 1.4rem; }
p { margin: 0 0 1em; }
a { color: var(--gold); text-underline-offset: 3px; }
a:hover { color: var(--gold-bright); }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.86em; }
button { font-family: inherit; }
:focus-visible { outline: 2px solid var(--gold-bright); outline-offset: 2px; }
.muted { color: var(--beige-dim); }
.muted-note { color: var(--beige-dim); padding: 24px 0; }

/* ---------- Structure ---------- */
.shell { display: grid; grid-template-columns: 272px minmax(0, 1fr); min-height: 100vh; }
.shell.single { display: block; }
.side {
  position: sticky; top: env(safe-area-inset-top, 0px); height: 100vh; overflow-y: auto;
  padding: 36px 24px 28px; background: var(--surface); border-right: 1px solid var(--line);
  display: flex; flex-direction: column;
}
.brandmark { font-family: var(--serif); font-size: 2rem; font-weight: 600; color: var(--beige); text-decoration: none; line-height: 1; }
.brandmark:hover { color: var(--gold-bright); }
.side-sub { color: var(--beige-dim); font-size: 0.9rem; margin: 8px 0 30px; line-height: 1.45; }
.nav { display: flex; flex-direction: column; gap: 2px; }
.nav-link {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
  padding: 10px 14px; border: 0; border-radius: 4px; background: none; cursor: pointer;
  color: var(--beige-dim); font-size: 0.98rem; text-decoration: none;
}
.nav-link:hover { background: var(--surface-2); color: var(--beige); }
.nav-link.on { background: var(--gold-wash); color: var(--gold-bright); box-shadow: inset 2px 0 0 var(--gold); }
.side-foot { margin-top: auto; padding-top: 28px; display: flex; flex-direction: column; gap: 4px; }
.side-contact { font-size: 0.92rem; color: var(--beige-dim); padding: 0 14px 14px; line-height: 1.6; }
.foot-link { padding: 6px 14px; font-size: 0.85rem; color: var(--beige-dim); text-decoration: none; }
.foot-link:hover { color: var(--gold-bright); }
.col { min-width: 0; }
.main { padding: 64px clamp(20px, 5vw, 72px) 140px; max-width: 1080px; }
.main.narrow { max-width: 980px; }
.mbar { display: none; }

.demo-bar, .preview-bar {
  display: flex; flex-wrap: wrap; gap: 6px 18px; justify-content: center; align-items: center;
  padding: 9px 16px; font-size: 0.86rem; background: var(--gold-wash); color: var(--beige); border-bottom: 1px solid var(--line-strong);
}
.bar-links { display: inline-flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.bar-links a { padding: 3px 14px; border-radius: 999px; border: 1px solid var(--gold-deep); color: var(--gold-bright); text-decoration: none; font-size: 0.86rem; }
.bar-links a:hover { background: rgba(201,151,58, 0.16); }
.bar-links a.on { background: #c9973a; border-color: #c9973a; color: #0a1322; font-weight: 500; }
.btn-text { background: none; border: 0; color: var(--gold-bright); cursor: pointer; font-size: inherit; text-decoration: underline; text-underline-offset: 3px; padding: 4px 0; display: inline-flex; align-items: center; gap: 6px; }
.btn-text:hover { color: var(--beige); }

/* ---------- Boutons, pastilles, champs ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 10px 22px; border-radius: 999px; border: 1px solid var(--gold-deep);
  background: transparent; color: var(--gold); font-size: 0.95rem; font-weight: 500; cursor: pointer; text-decoration: none; line-height: 1.2;
}
.btn:hover { background: rgba(201,151,58, 0.12); color: var(--gold-bright); border-color: var(--gold); }
.btn-primary { background: #c9973a; border-color: #c9973a; color: #0a1322; }
.btn-primary:hover { background: #ddb466; border-color: #ddb466; color: #0a1322; }
.btn-danger { color: var(--danger); border-color: rgba(232, 160, 139, 0.55); }
.btn-danger:hover { background: rgba(232, 160, 139, 0.12); color: var(--danger); border-color: var(--danger); }
.btn-danger-solid { background: var(--danger-deep); border-color: var(--danger-deep); color: #fff7f3; }
.btn-danger-solid:hover { background: #c95e47; border-color: #c95e47; color: #fff; }
.btn:disabled, .icon-btn:disabled { opacity: 0.4; cursor: default; pointer-events: none; }
.btn.block { width: 100%; }
.icon-btn {
  display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid var(--line); background: none; color: var(--beige-dim); cursor: pointer; text-decoration: none;
}
.icon-btn:hover { color: var(--gold-bright); border-color: var(--gold-deep); }
.icon-btn.danger:hover { color: var(--danger); border-color: var(--danger); }
.ico { flex-shrink: 0; }

.pill {
  display: inline-block; padding: 3px 12px; border-radius: 999px; border: 1px solid var(--line-strong);
  color: var(--beige-dim); font-size: 0.8rem; white-space: nowrap; background: rgba(255, 255, 255, 0.03);
}
.pill.st-valide, .pill.sg-en_cours { border-color: var(--gold); color: var(--gold-bright); }
.pill.st-encours, .pill.sg-suivi_gratuit { background: var(--gold-wash); border-color: var(--gold-deep); color: var(--gold-bright); }
.pill.st-lance, .pill.sg-termine { background: #c9973a; border-color: #c9973a; color: #0a1322; font-weight: 500; }

.field { margin-bottom: 16px; }
.field label { display: block; font-size: 0.88rem; color: var(--beige-dim); margin-bottom: 6px; }
input[type=text], input[type=email], input[type=password], input[type=search], input[type=date], input:not([type]), select, textarea {
  width: 100%; background: var(--field-bg); border: 1px solid var(--line); border-radius: 4px; color: var(--beige);
  padding: 11px 13px; font: inherit; font-size: 1rem;
}
textarea { resize: vertical; line-height: 1.55; }
textarea.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.88rem; }
input:focus, select:focus, textarea:focus { border-color: var(--gold); outline: 1px solid var(--gold); outline-offset: 0; }
::placeholder { color: #7d8798; }
.hint { font-size: 0.84rem; color: var(--beige-dim); margin: 6px 0 0; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.grid2 .span { grid-column: 1 / -1; }
.form-error { color: var(--danger); min-height: 1.4em; font-size: 0.92rem; margin: 0 0 10px; }
.form-actions { display: flex; justify-content: flex-end; padding-top: 6px; }

.switch { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-size: 0.92rem; color: var(--beige); }
.switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.switch .track { width: 42px; height: 24px; border-radius: 999px; background: #22324a; border: 1px solid var(--line-strong); position: relative; flex-shrink: 0; }
.switch .track::after { content: ""; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--beige-dim); }
.switch input:checked + .track { background: var(--gold-deep); border-color: var(--gold); }
.switch input:checked + .track::after { left: 20px; background: #0a1322; }
.switch input:focus-visible + .track { outline: 2px solid var(--gold-bright); outline-offset: 2px; }

/* ---------- En-têtes de page, onglets, barre d'outils ---------- */
.page-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; flex-wrap: wrap; margin-bottom: 32px; }
.page-head .sub { color: var(--beige-dim); margin: 10px 0 0; max-width: 56ch; }
.head-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.crumb { font-size: 0.9rem; color: var(--beige-dim); margin-bottom: 14px; }
.crumb a { color: var(--beige-dim); }
.toolbar { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-bottom: 28px; }
.tabs { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--line-strong); border-radius: 999px; max-width: 100%; overflow-x: auto; }
.tab {
  padding: 7px 16px; border-radius: 999px; border: 0; background: none; color: var(--beige-dim);
  font-size: 0.92rem; cursor: pointer; white-space: nowrap; text-decoration: none;
}
.tab:hover { color: var(--beige); }
.tab.on { background: #22324a; color: var(--beige); }
.tab .count { color: var(--gold); font-size: 0.82rem; margin-left: 4px; }
.sub-tabs { margin: 8px 0 32px; }
.search { flex: 1 1 240px; max-width: 360px; border-radius: 999px !important; border-color: var(--line-strong) !important; padding: 10px 18px !important; }
.urlbox { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 0.9rem; padding: 12px 16px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); margin-bottom: 8px; }
.urlbox code { color: var(--beige); word-break: break-all; }

/* ---------- Cartes et listes ---------- */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 20px; }
.card { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 24px; display: flex; flex-direction: column; gap: 10px; text-align: left; color: inherit; text-decoration: none; }
.card[role=button], a.card { cursor: pointer; }
.card[role=button]:hover, a.card:hover { border-color: var(--gold-deep); }
.card-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.cat { font-family: var(--serif); font-style: italic; font-weight: 500; font-size: 1.08rem; color: var(--gold); }
.card h3 { margin: 2px 0 0; }
.card .desc { color: var(--beige-dim); font-size: 0.95rem; margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.card .meta { font-size: 0.9rem; margin: 4px 0 0; padding-top: 10px; border-top: 1px solid var(--line); }
.pagebadge { margin: 0; font-size: 0.84rem; color: var(--beige-dim); }
.pagebadge.live { color: var(--gold-bright); }
.card-actions { display: flex; gap: 10px; align-items: center; margin-top: 8px; }

.clients { display: grid; gap: 12px; }
.client {
  display: grid; grid-template-columns: 1.3fr 1fr 1.3fr auto; gap: 8px 22px; align-items: center;
  padding: 18px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; cursor: pointer;
}
.client:hover { border-color: var(--gold-deep); }
.client h3 { font-size: 1.3rem; }
.client p { margin: 2px 0 0; font-size: 0.92rem; }
.c-info { display: flex; flex-direction: column; gap: 2px; font-size: 0.92rem; min-width: 0; overflow-wrap: anywhere; }

.rows { display: grid; gap: 10px; }
.row { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; background: var(--surface); border: 1px solid var(--line); border-radius: 6px; }
.row-main { min-width: 0; }
.row-main h3 { font-size: 1.25rem; }
.row-main h3 a { color: var(--beige); text-decoration: none; }
.row-main h3 a:hover { color: var(--gold-bright); }
.row-main p { margin: 4px 0 0; font-size: 0.9rem; overflow-wrap: anywhere; }
.row-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.section-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin: 40px 0 16px; }
.tab-panel .section-head:first-child { margin-top: 0; }
.panel-form { max-width: 820px; }
.panel-form + .section-head { margin-top: 56px; }

.empty { text-align: center; padding: 72px 20px; border: 1px dashed var(--line-strong); border-radius: 6px; max-width: 640px; margin: 24px auto; }
.empty p { color: var(--beige-dim); max-width: 46ch; margin: 12px auto 24px; }
.empty-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.pubbox { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 18px; border: 1px solid var(--line-strong); border-radius: 6px; margin-top: 8px; background: var(--surface-2); }
.pubbox .hint { margin: 4px 0 0; }

/* ---------- Fenêtres ---------- */
.overlay { position: fixed; inset: 0; z-index: 100; background: rgba(0, 0, 0, 0.86); display: flex; align-items: flex-start; justify-content: center; padding: 5vh 16px; overflow-y: auto; animation: fade 0.12s ease-out; }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
.modal { background: var(--surface); border: 1px solid var(--line-strong); border-radius: 8px; width: 100%; max-width: 660px; display: flex; flex-direction: column; margin: auto; }
.modal.wide { max-width: 1040px; }
.modal.small { max-width: 480px; }
.modal-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 22px 28px 0; }
.modal-head h2 { font-size: 1.7rem; }
.modal-body { padding: 22px 28px 8px; }
.modal-foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 28px 24px; border-top: 1px solid var(--line); margin-top: 8px; }
.foot-right { display: flex; gap: 10px; margin-left: auto; }
.confirm-text { color: var(--beige); margin: 0; }
.editor { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.preview-label { display: block; font-size: 0.88rem; color: var(--beige-dim); margin-bottom: 6px; }
.preview { border: 1px solid var(--line); border-radius: 4px; padding: 16px 18px; max-height: 420px; overflow-y: auto; background: #08101d; }
.preview .link-card { pointer-events: none; }

#toasts { position: fixed; left: 50%; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 200; display: flex; flex-direction: column; gap: 8px; align-items: center; width: max-content; max-width: calc(100vw - 32px); }
.toast { background: #13233a; color: var(--beige); border: 1px solid var(--gold-deep); border-radius: 999px; padding: 10px 22px; font-size: 0.94rem; }
.toast.error { border-color: var(--danger); color: var(--danger); }

/* ---------- Écrans simples ---------- */
.splash { max-width: 520px; margin: 18vh auto; padding: 0 24px; text-align: center; }
.splash p { color: var(--beige-dim); margin-top: 14px; }
.login { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.login-card { width: 100%; max-width: 400px; padding: 40px 34px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--surface); }
.login-card h1 { font-size: 2.6rem; }
.login-card .sub { color: var(--beige-dim); margin: 10px 0 28px; }
.login-card .side-sub { margin: 22px 0 0; text-align: center; }

/* ---------- Côté public ---------- */
.hero { margin-bottom: 36px; }
.hero h1 { margin-bottom: 18px; }
.lede { white-space: pre-line; font-size: 1.18rem; color: var(--beige-dim); max-width: 58ch; line-height: 1.6; margin: 0; }

.offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; margin: 0 0 56px; }
.offer { background: var(--paper); color: var(--paper-ink); border-radius: 6px; border-top: 4px solid var(--gold); padding: 32px 30px 30px; display: flex; flex-direction: column; }
.offer h3 { color: var(--paper-ink); font-size: 1.55rem; }
.offer .price, .stat-chip .n, .tab .count { font-variant-numeric: lining-nums; font-feature-settings: "lnum" 1; }
.offer .price { font-family: var(--serif); font-weight: 600; font-size: clamp(1.7rem, 3vw, 2.25rem); line-height: 1.1; margin: 16px 0 4px; color: var(--paper-ink); }
.offer .price-note { color: #4f5c70; font-size: 0.92rem; margin: 0; }
.offer ul { list-style: none; padding: 0; margin: 24px 0 0; border-top: 1px solid rgba(14, 14, 14, 0.2); }
.offer li { padding: 11px 0 11px 20px; position: relative; border-bottom: 1px solid rgba(14, 14, 14, 0.12); font-size: 0.97rem; }
.offer li:last-child { border-bottom: 0; }
.offer li::before { content: ""; position: absolute; left: 0; top: 1.15em; width: 10px; height: 1px; background: rgba(14, 14, 14, 0.55); }

.toc { border: 1px solid var(--line); border-radius: 6px; background: var(--surface); padding: 20px 26px 14px; margin: 0 0 12px; }
.toc-title { font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--beige-dim); margin: 0 0 8px; }
.toc ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 36px; }
.toc li { break-inside: avoid; }
.toc-link { display: block; width: 100%; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--line); padding: 9px 0; color: var(--beige); font-size: 0.97rem; cursor: pointer; }
.toc-link:hover { color: var(--gold-bright); }
.guide-section { scroll-margin-top: 16px; }

.prose { max-width: 66ch; }
.prose p, .prose li { font-size: 1.02rem; }
.prose ul, .prose ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.prose li { margin-bottom: 0.5em; padding-left: 0.2em; }
.prose li::marker { color: var(--gold); }
.prose strong { color: var(--beige); font-weight: 700; }
.prose h4.sub { font-size: 1.35rem; margin: 1.6em 0 0.5em; }
.prose figure { margin: 1.4em 0; }
.prose img { max-width: 100%; height: auto; border-radius: 4px; display: block; }
.prose .source { font-size: 0.86rem; color: var(--beige-dim); margin-top: -0.4em; }
.prose .source a { color: var(--beige-dim); }
.box { border: 1px solid var(--line); border-radius: 6px; padding: 18px 22px 8px; margin: 1.2em 0; background: var(--surface); }
.box.good { border-color: var(--gold-deep); }
.box p { margin: 0 0 0.6em; }
.box ul { margin-bottom: 0.8em; }
.link-card { display: inline-block; padding: 13px 24px; border-radius: 999px; background: #c9973a; color: #0a1322; text-decoration: none; font-weight: 500; }
.link-card:hover { background: #ddb466; color: #0a1322; }
.stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin: 1.2em 0; }
.stat-chip { border: 1px solid var(--line-strong); border-radius: 6px; padding: 16px 18px; background: var(--surface); }
.stat-chip .n { font-family: var(--serif); font-size: 2rem; font-weight: 600; color: var(--gold-bright); line-height: 1; }
.stat-chip .l { font-size: 0.88rem; color: var(--beige-dim); margin-top: 8px; line-height: 1.4; }
.table-wrap { overflow-x: auto; margin: 1.2em 0; }
.prose table, .table-wrap table { width: 100%; border-collapse: collapse; font-size: 0.96rem; }
th, td { text-align: left; padding: 11px 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { color: var(--beige-dim); font-weight: 500; font-size: 0.86rem; }
.checklist { list-style: none; padding: 0 !important; }
.checklist li { display: flex; gap: 14px; align-items: baseline; padding: 11px 0; margin: 0; border-bottom: 1px solid var(--line); }
.checklist li:last-child { border-bottom: 0; }
.checklist .tag { flex-shrink: 0; min-width: 8.5em; font-size: 0.8rem; padding: 3px 12px; border-radius: 999px; border: 1px solid var(--gold-deep); color: var(--gold-bright); text-align: center; }

/* ---------- Adaptation mobile ---------- */
@media (max-width: 880px) {
  .shell { display: block; }
  .side { display: none; }
  .mbar {
    display: flex; gap: 6px; overflow-x: auto; padding: 12px 16px; background: var(--surface); border-bottom: 1px solid var(--line);
    position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20;
  }
  .mbar .nav-link { width: auto; flex-shrink: 0; white-space: nowrap; border: 1px solid var(--line); border-radius: 999px; padding: 8px 16px; font-size: 0.92rem; }
  .mbar .nav-link.on { border-color: var(--gold-deep); box-shadow: none; }
  .main { padding: 36px 20px 100px; }
  .client { grid-template-columns: 1fr; }
  .toc ul { columns: 1; }
  .editor { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .grid2 { grid-template-columns: 1fr; }
  .modal-head, .modal-body, .modal-foot { padding-left: 20px; padding-right: 20px; }
  .modal-foot { flex-wrap: wrap; }
  .row { flex-direction: column; align-items: flex-start; }
  .checklist li { flex-direction: column; gap: 6px; }
  .pubbox { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- Zones de travail en fond blanc (projets, clients, listes, fenêtres, formulaires) ---------- */
.card, .row, .client, .modal, .urlbox, .pubbox, .empty, .login-card, .panel-form, .help-sheet, .media-card, .shell.public .main {
  --surface: #f7f7f8;
  --surface-2: #f1f2f4;
  --field-bg: #ffffff;
  --line: #d5dae2;
  --line-strong: #9aa1ad;
  --beige: #13233a;
  --beige-dim: #5f6d82;
  --gold: #6e4f17;
  --gold-bright: #6e4f17;
  --gold-deep: #6e4f17;
  --gold-wash: #f7efdf;
  --danger: #a63a22;
  --danger-deep: #a63a22;
  background: var(--surface);
  color: var(--beige);
}
.panel-form { padding: 28px 28px 22px; border: 1px solid var(--line); border-radius: 6px; }
.pubbox { background: var(--surface-2); }
.empty { border-style: solid; }
.btn-danger { border-color: var(--danger); }
.card[role=button]:hover, a.card:hover, .client:hover { border-color: #6e4f17; }
/* l'aperçu d'une section imite le côté public : il reste noir */
.preview {
  --surface: #0e1a2b; --surface-2: #13233a; --field-bg: #08101d; --line: #22324a; --line-strong: #3a4c66;
  --beige: #e9ecf1; --beige-dim: #9aa1ad; --gold: #c9973a; --gold-bright: #ddb466; --gold-deep: #b5852c; --gold-wash: #172840;
  background: #0a1322; color: var(--beige);
}
.modal ::placeholder, .panel-form ::placeholder, .login-card ::placeholder { color: #5f6d82; }

/* ---------- Côté public : page blanche, menu noir, offres en cartes noires ---------- */
.shell.public .col { background: #f7f7f8; }
.shell.public .main { background: transparent; }
.shell.public .box, .shell.public .stat-chip, .shell.public .toc { background: var(--surface-2); }
.shell.public .box.good { background: var(--gold-wash); }
.shell.public .offer { background: #0a1322; color: #e9ecf1; border-top: 4px solid #c9973a; }
.shell.public .offer h3 { color: #e9ecf1; }
.shell.public .offer .price { color: #ddb466; }
.shell.public .offer .price-note { color: #9aa1ad; }
.shell.public .offer ul { border-top-color: rgba(233,236,241, 0.22); }
.shell.public .offer li { border-bottom-color: rgba(233,236,241, 0.12); }
.shell.public .offer li::before { background: #c9973a; }
/* le schéma des piliers est dessiné pour un fond sombre : il garde son cadre noir */
.prose img[src^="data:image/svg+xml"], .prose img[src$=".svg"] { background: #0a1322; padding: 14px; border-radius: 6px; }

.cta { margin: -24px 0 52px; }

/* ---------- Mode d'emploi d'Essor (page blanche) ---------- */
.help-sheet { padding: 36px clamp(20px, 4vw, 48px) 48px; border-radius: 6px; max-width: 860px; }
.help-sheet .box, .help-sheet .toc, .help-sheet .stat-chip { background: var(--surface-2); }
.help-sheet .box.good { background: var(--gold-wash); }
.help-sheet code { background: var(--surface-2); padding: 2px 6px; border-radius: 3px; overflow-wrap: anywhere; }

.nav-link.sub { padding-left: 30px; font-size: 0.92rem; }
.mbar .nav-link.sub { padding-left: 16px; }

.pubbox.banner { margin: 0 0 28px; }
.side-sub.also { margin: 18px 14px 4px; font-size: 0.8rem; }
.guide-cards { margin-bottom: 48px; }

/* ---------- Sections repliables ---------- */
.acc-tools { display: flex; gap: 20px; justify-content: flex-end; margin: 22px 0 6px; font-size: 0.9rem; }
.acc-list { border-bottom: 1px solid var(--line); }
.acc { border-top: 1px solid var(--line); }
.acc > summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 18px;
  padding: 22px 4px; font-family: var(--serif); font-weight: 600; line-height: 1.2;
}
.acc > summary::-webkit-details-marker { display: none; }
.acc > summary h2 { margin: 0; font-size: clamp(1.35rem, 2.4vw, 1.75rem); }
.acc > summary::after {
  content: ""; flex-shrink: 0; width: 10px; height: 10px; margin-right: 6px;
  border-right: 2px solid var(--gold); border-bottom: 2px solid var(--gold); transform: rotate(45deg); transition: transform 0.15s;
}
.acc[open] > summary::after { transform: rotate(-135deg); }
.acc > summary:hover h2 { color: var(--gold-bright); }
.acc-body { padding: 4px 4px 34px; }
.fold { border: 1px solid var(--line); border-radius: 6px; margin: 1.2em 0; background: var(--surface-2); }
.fold > summary { cursor: pointer; padding: 14px 18px; font-weight: 500; list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.fold > summary::-webkit-details-marker { display: none; }
.fold > summary::after { content: "+"; color: var(--gold); font-size: 1.3rem; line-height: 1; }
.fold[open] > summary::after { content: "\2212"; }
.fold-body { padding: 0 18px 8px; }
.preview .fold { background: #13233a; }

.cta.end { margin: 44px 0 0; }

/* ---------- Formulaire d'inscription ---------- */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.signup { border: 1px solid var(--line-strong); border-radius: 6px; padding: 22px 24px; margin: 1.6em 0; background: var(--surface-2); max-width: 560px; }
.signup-title { font-family: var(--serif); font-size: 1.4rem; font-weight: 600; margin: 0 0 14px; }
.signup-row { display: flex; gap: 10px; flex-wrap: wrap; }
.signup-row input { flex: 1 1 220px; }
.check { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; font-size: 0.9rem; color: var(--beige-dim); }
.check input { margin-top: 4px; flex-shrink: 0; }
.hp { position: absolute !important; left: -9999px; width: 1px !important; height: 1px !important; opacity: 0; }
.signup-msg { margin: 10px 0 0; min-height: 1.2em; color: var(--danger); font-size: 0.92rem; }
.signup-done { margin: 0; font-family: var(--serif); font-size: 1.3rem; }
.signup-demo p:last-child { margin: 0; color: var(--beige-dim); }

/* ---------- Marketing et communication ---------- */
.mk-prev { margin: 6px 0 0; font-size: 0.92rem; color: var(--beige-dim); max-width: 70ch; }
.mk-row { cursor: pointer; }
.mk-row .row-actions { gap: 12px; flex-shrink: 0; }
.mk-block { display: block; }
.mk-block-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 8px; }
.mk-block-head h3 { margin: 0; }
.mk-text > :first-child { margin-top: 0; }
.mk-text > :last-child { margin-bottom: 0; }
.toolbar select { margin-left: auto; }

/* ---------- Centre de contrôle ---------- */
.ctrl-banner { display: block; margin: 0 0 20px; padding: 12px 16px; border: 1px solid var(--line-strong); border-radius: 6px; color: var(--beige); text-decoration: none; font-size: 0.95rem; }
a.ctrl-banner:hover { border-color: var(--gold); }
.ctrl-banner.bad { border-color: #c4584d; color: #f0b3ac; }
.ctrl-banner.ok { color: var(--gold); }
.ctrl-h { font-size: 1.4rem; margin: 30px 0 12px; }
.ctrl-row .row-actions { gap: 12px; flex-shrink: 0; }
.pill.lv-todo { border-color: #b3261e; color: #b3261e; }
.pill.lv-watch { border-color: var(--gold-deep); color: var(--gold-bright); }
.ctrl-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ctrl-checks li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 6px; color: var(--beige-dim); }
.ctrl-checks .good { color: var(--gold); }
.ctrl-checks .bad { color: #f0b3ac; }

/* ---------- Guides payants et fiches PDF ---------- */
.locked { margin: 36px 0 0; padding: 26px 28px; border: 1px solid var(--gold-deep); border-radius: 6px; background: #f7efdf; color: #0e1a2b; }
.locked h2 { font-size: 1.5rem; margin: 0 0 8px; }
.locked p { margin: 0 0 6px; }
.sheet-card { margin: 28px 0 0; }
.sheet-panel { margin: 24px 0; }
.sheet-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 12px; }
.file-btn { cursor: pointer; }
.modal .check.dark, .sheet-panel .check.dark { color: #2c3d57; margin: 12px 0 0; }

/* Numéros des projets, guides et sections */
.num { color: var(--gold-deep); font-variant-numeric: tabular-nums; margin-right: 2px; }

/* ---------- Mot de passe : œil pour afficher la saisie ---------- */
.pw-wrap { position: relative; }
.pw-wrap input { padding-right: 48px; width: 100%; }
.pw-toggle {
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
  background: none; border: 0; border-radius: 4px; color: var(--beige-dim); cursor: pointer;
}
.pw-toggle:hover, .pw-toggle[aria-pressed="true"] { color: var(--gold); }

/* ---------- Identité Essor OS (charte graphique v1.1) ---------- */
:root { --script: "Allura", "Snell Roundhand", cursive; --gold-title: #8a6420; }
.essor-lock { display: inline-flex; flex-direction: column; gap: 2px; line-height: 1; }
.essor-lock-row { display: inline-flex; align-items: center; gap: 10px; }
.essor-mark { display: block; flex-shrink: 0; }
.essor-name { font-family: var(--serif); font-weight: 500; font-size: 1.45rem; color: #e9ecf1; letter-spacing: 0.01em; }
.essor-slogan { font-family: var(--script); font-size: 1.25rem; color: #c9973a; line-height: 1.2; }
.essor-slogan.big { font-size: clamp(1.6rem, 3vw, 2.1rem); margin: 0.4em 0 0; color: var(--gold-title); }
a.essor-home, a.mhead { text-decoration: none; }
.essor-home { display: block; margin-bottom: 22px; }
.essor-home:hover .essor-name { color: #ddb466; }
.offer-of { font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: #c9973a; margin: 0 0 8px; }
.mhead { display: none; }
@media (max-width: 880px) {
  .mhead { display: flex; justify-content: center; padding: 16px 16px 12px; background: #0a1322; border-bottom: 1px solid #22324a; }
}

/* Titres en or : or #c9973a sur fond noir, or profond #8a6420 sur fond clair */
.shell.public .hero h1, .shell.public .acc > summary h2, .shell.public .prose h2, .shell.public .prose h3, .shell.public .prose h4,
.shell.public .signup-title, .shell.public .locked h2 { color: var(--gold-title); }
.shell.public .acc > summary:hover h2 { color: #6e4f17; }
.shell.public .offer h3 { color: #c9973a; }
.shell.public .brandmark { color: #c9973a; }

/* Le sens du mot « essor » */
.essor-meaning {
  display: grid; grid-template-columns: auto 1fr; gap: 26px; align-items: start;
  margin: 64px 0 0; padding: 30px 30px 26px; border: 1px solid #c9973a; border-radius: 6px; max-width: 66ch;
}
.essor-meaning-mark { background: #0a1322; border-radius: 6px; padding: 18px 16px; }
.essor-meaning .kicker { font-size: 0.74rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-title); margin: 0 0 6px; }
.essor-meaning h2 { color: var(--gold-title); margin: 0 0 14px; font-size: clamp(1.5rem, 2.6vw, 1.9rem); }
.essor-meaning p { font-size: 1.02rem; }
@media (max-width: 560px) { .essor-meaning { grid-template-columns: 1fr; padding: 24px 20px; } .essor-meaning-mark { justify-self: start; } }

/* Pied de page public : bande noire */
.essor-foot { background: #0a1322; border-top: 1px solid #22324a; }
.essor-foot-in { max-width: 880px; padding: 34px clamp(20px, 5vw, 56px) 30px; }
.essor-foot .essor-name { font-size: 1.6rem; }
.essor-foot .essor-slogan { font-size: 1.4rem; margin-top: 4px; }
.essor-phrase { color: #e9ecf1; font-size: 0.95rem; margin: 18px 0 6px; max-width: 52ch; }
.essor-copy { color: #7d8798; font-size: 0.82rem; margin: 0; }
.shell.public .col { display: flex; flex-direction: column; min-height: 100vh; }
.shell.public .main { flex: 1 0 auto; padding-bottom: 80px; }
.essor-foot-in { padding-left: clamp(20px, 5vw, 72px); }

/* ---------- Page d'accueil Essor OS ---------- */
.home a { text-decoration: none; }
.home h1, .home h2, .home h3 { letter-spacing: normal; }
.home .h-burger { display: none !important; }
.home .h-nav-mob { display: none !important; }
.home .h-ico-close { display: none; }
.home.menu-open .h-ico-open { display: none; }
.home.menu-open .h-ico-close { display: block; }
@media (max-width: 759px) {
  .home .h-nav-desk { display: none !important; }
  .home .h-burger { display: flex !important; }
  .home.menu-open .h-nav-mob { display: flex !important; }
}
.home .h-nav-mob button { width: 100%; }
.home .hv-link:hover { color: #c9973a !important; }
.home .hv-gold:hover { background: #8a6420 !important; border-color: #8a6420 !important; color: #0a1322 !important; }
.home .hv-fill:hover { background: #c9973a !important; color: #0a1322 !important; }
.home .hv-ghost:hover { background: rgba(201,151,58,.12) !important; color: #e9ecf1 !important; }
.home .hv-dark:hover { background: #0e1a2b !important; color: #e9ecf1 !important; }

/* Slogan du menu des pages d'offre : sur une seule ligne. */
.side .essor-slogan { white-space: nowrap; font-size: 1rem; }

/* Administration : éditeur de la page d'accueil */
.home-form .home-block { border: 1px solid var(--line); border-radius: 6px; padding: 20px 20px 8px; margin: 0 0 24px; }
.home-form legend { padding: 0 8px; font-family: var(--serif); font-size: 1.35rem; color: #8a6420; }
.home-form .home-item { border-top: 1px solid var(--line); padding: 14px 0 4px; margin-top: 8px; }
.home-form .home-item-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 6px; }
.home-form .home-item-head span { display: flex; gap: 4px; }
.home-form .home-block > .btn { margin: 8px 0 16px; }
.home-form .home-save { position: sticky; bottom: 0; background: var(--surface); border-top: 1px solid var(--line); padding: 14px 0; margin: 0; }
.home .h-reslink { color: inherit; text-decoration: underline; text-decoration-color: #c9973a; text-underline-offset: 4px; }
.home .h-reslink:hover { color: #8a6420; }

/* Bannière des pages d'offre, images et vidéos dans les textes */
.banner { margin: 0 0 28px; }
.banner img { display: block; width: 100%; height: auto; border-radius: 6px; }
.prose figure img, .prose figure video { display: block; width: 100%; height: auto; border-radius: 6px; }
.prose figure.video figcaption { font-size: .85rem; color: var(--beige-dim); margin-top: 6px; }

/* Administration : Images et vidéos */
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 18px; }
.media-card { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; overflow: hidden; display: flex; flex-direction: column; }
.media-card img, .media-card video { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: #0e1a2b; }
.media-info { padding: 12px 14px 14px; }
.media-info h3 { font-size: 1rem; margin: 0 0 2px; }
.media-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.media-help { margin-top: 18px; color: var(--beige-dim); }
.home-form .home-thumb { display: block; max-width: 220px; margin-top: 8px; border-radius: 4px; }

/* Badges de type (Images et vidéos, Documents) : une couleur par type */
.type-badge { display: inline-block; font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; margin-bottom: 6px; }
.type-badge.t-photo { background: #e3f0e6; color: #2f6b3e; }
.type-badge.t-video { background: #f8e1dc; color: #a03a26; }
.type-badge.t-doc { background: #e1e8f5; color: #2c4f8a; }
.type-badge.t-lien { background: #eceef2; color: #6e4f17; }

/* Marque : complément du nom (Académie) */
.essor-suffix { display: block; margin-top: 2px; font-family: var(--sans); font-size: .66rem; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: var(--gold); }
.essor-signature { font-family: var(--serif); font-style: italic; font-size: 1.3rem; line-height: 1.4; color: #8a6420; margin: 18px 0 4px; }

/* Citations : bloc noir centré, grands guillemets dorés */
.prose .citation, figure.citation { margin: 40px 0 8px; background: #0a1322; border-radius: 6px; padding: 30px clamp(22px, 5vw, 48px) 32px; text-align: center; }
figure.citation .citation-mark { display: block; font-family: var(--serif); font-weight: 500; font-size: 96px; line-height: 1; height: 46px; color: #c9973a; }
figure.citation .citation-mark.end { margin-top: 8px; height: 40px; line-height: .55; }
figure.citation blockquote { margin: 0; padding: 0; border: 0; font-family: var(--serif); font-style: italic; font-size: clamp(1.45rem, 3.2vw, 1.9rem); line-height: 1.35; color: #e9ecf1; }
figure.citation figcaption { margin-top: 6px; font-family: var(--sans); font-size: .75rem; letter-spacing: .22em; text-transform: uppercase; color: #c9973a; }
figure.citation figcaption em { text-transform: none; letter-spacing: .02em; font-family: var(--serif); font-size: 1rem; color: #9aa1ad; }
figure.citation .citation-slogan { margin: 14px 0 0; font-family: 'Allura', cursive; font-size: 1.6rem; color: #c9973a; }

/* Sommaire cliquable des pages d'offre (reste visible en haut pendant la lecture) */
.toc { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 14px; margin: 4px 0 28px; padding: 12px 0; background: var(--surface, #f7f7f8); border-top: 1px solid rgba(201,151,58,.45); border-bottom: 1px solid rgba(201,151,58,.45); }
.toc-label { flex: none; font-size: .7rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: #8a6420; }
.toc-items { display: flex; flex-wrap: wrap; gap: 8px; }
.toc-item { flex: none; font: inherit; font-size: .88rem; color: #0e1a2b; background: #fff; border: 1px solid #d5dae2; border-radius: 999px; padding: 6px 14px; cursor: pointer; white-space: nowrap; }
.toc-item:hover, .toc-item:focus-visible { border-color: #c9973a; color: #8a6420; }
.prose h4.sub, #s-offres { scroll-margin-top: 150px; }
@media (max-width: 760px) {
  .toc { gap: 10px; }
  .toc-label { display: none; }
  .toc-items { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .toc-items::-webkit-scrollbar { display: none; }
  .prose h4.sub, #s-offres { scroll-margin-top: 76px; }
}

/* Insérer une image depuis un champ de texte */
.field .media-insert { margin: 4px 0 8px; font-size: .85rem; }
.media-grid.pick { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; margin-top: 10px; }
.media-card.pick-item { padding: 0; text-align: left; cursor: pointer; font: inherit; }
.media-card.pick-item:hover, .media-card.pick-item:focus-visible { outline: 2px solid #c9973a; }
.media-card.pick-item .media-info { display: block; padding: 8px 10px 10px; }
.media-card.pick-item strong { display: block; font-size: .85rem; font-weight: 500; }

/* ===== Dossier 24 : sommaire sans barre grise, espace élèves, filigrane, économie de données, hors connexion ===== */
.toc-items { scrollbar-width: none; -ms-overflow-style: none; }
.toc-items::-webkit-scrollbar { display: none; width: 0; height: 0; }

.offline-bar { position: sticky; top: 0; z-index: 30; padding: 8px 16px; background: #2a2418; color: #e9ecf1; font-size: .85rem; text-align: center; border-bottom: 1px solid #c9973a; }

.lite-media { display: block; width: 100%; margin: 12px 0; padding: 18px 16px; font: inherit; font-size: .9rem; text-align: left; color: #8a6420; background: #eceef2; border: 1px dashed #c9973a; border-radius: 6px; cursor: pointer; }
.lite-media:hover, .lite-media:focus-visible { background: #e3e6ec; }

/* Cours protégé : filigrane au nom de l'élève, pas de copie, pas d'impression */
.protected { position: relative; -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; }
.protected .wm { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 2; display: flex; flex-wrap: wrap; align-content: flex-start; gap: 70px 90px; padding: 40px 10px; }
.protected .wm span { transform: rotate(-24deg); font-size: .8rem; letter-spacing: .08em; color: rgba(168, 132, 63, .16); white-space: nowrap; }
.print-note { display: none; }
@media print {
  .protected { display: none !important; }
  .print-note { display: block !important; }
}
.locked-login { margin-top: 10px; }

/* Espace élèves */
.espace { min-height: 100vh; background: #f7f7f8; color: #0e1a2b; display: flex; flex-direction: column; }
.espace-head { background: #0a1322; padding: 14px clamp(16px, 4vw, 40px); display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid rgba(201,151,58,.35); }
.espace-back { color: #e9ecf1; font-size: .8rem; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; }
.espace-main { width: 100%; max-width: 680px; margin: 0 auto; padding: clamp(32px, 6vw, 64px) 20px; flex: 1; }
.espace-main h1 { font-family: var(--serif); font-weight: 500; font-size: clamp(2.2rem, 6vw, 3rem); color: #8a6420; margin: 0 0 12px; }
.espace-lede { font-size: 1.05rem; line-height: 1.65; margin: 0 0 24px; }
.espace-small { font-size: .9rem; color: #5f6d82; margin: 14px 0 0; }
.espace-small a, .espace-main .btn-text { color: #8a6420; }
.espace-note { padding: 10px 14px; border-radius: 6px; background: #eceef2; border-left: 3px solid #c9973a; }
.espace-note.warn { border-left-color: #b5503a; }
.espace-form { background: #fff; border: 1px solid #dde1e8; border-radius: 8px; padding: 20px; }
.espace-form label { color: #0e1a2b; }
.espace-form input { background: #fff; color: #0e1a2b; border-color: #d5dae2; font-size: 1.05rem; }
.espace-form .form-error { color: #b5503a; }
.espace-courses { display: grid; gap: 16px; margin-bottom: 28px; }
.espace-course, .espace-box { background: #fff; border: 1px solid #dde1e8; border-top: 3px solid #c9973a; border-radius: 8px; padding: 18px 20px; }
.espace-course-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.espace-course h2, .espace-box h2 { font-family: var(--serif); font-weight: 500; font-size: 1.5rem; margin: 2px 0 0; color: #0e1a2b; }
.espace-kicker { margin: 0; font-size: .7rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #8a6420; }
.espace-info { font-size: .93rem; line-height: 1.55; color: #2c3d57; margin: 10px 0; }
.espace-pill, .enr-pill { display: inline-block; font-size: .75rem; padding: 3px 10px; border-radius: 999px; border: 1px solid; white-space: nowrap; }
.espace-pill.ok, .enr-pill.ok { color: #2f6b3a; border-color: #8fbf98; background: #eef7ef; }
.espace-pill.warn, .enr-pill.warn { color: #8a4b12; border-color: #e0b07a; background: #fdf3e7; }
.espace-pill.off, .enr-pill.off { color: #5f6d82; border-color: #c3c9d3; background: #f7f7f8; }
.espace-guides { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.espace-guides a { display: block; padding: 12px 14px; border: 1px solid #dde1e8; border-radius: 6px; color: #0e1a2b; text-decoration: none; background: #f7f7f8; }
.espace-guides a:hover { border-color: #c9973a; color: #8a6420; }
.espace-switch { display: flex; gap: 12px; align-items: flex-start; margin: 12px 0; cursor: pointer; line-height: 1.5; }
.espace-switch input { margin-top: 5px; width: 18px; height: 18px; accent-color: #c9973a; }
.espace-box .btn { color: #8a6420; border-color: #c9973a; }
.espace-foot { background: #0a1322; text-align: center; padding: 18px; }
.essor-foot-links { margin: 6px 0 0; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.essor-foot-links a { color: #e9ecf1; text-decoration: none; }

/* Administration : élèves */
.students { display: grid; gap: 12px; }
.student-row { display: grid; grid-template-columns: minmax(180px, 1fr) 2fr; gap: 16px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.student-main { cursor: pointer; }
.student-main h3 { margin: 0 0 4px; }
.student-enr { display: grid; gap: 8px; }
.enr-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.enr-open { background: none; border: 0; padding: 0; color: var(--beige); font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; text-align: left; }
.enr-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.small { font-size: .85rem; }
@media (max-width: 760px) { .student-row { grid-template-columns: 1fr; } }
.espace { color-scheme: light; }

/* ===== Dossier 25 : page « Nos formations », photos d'un texte ===== */
.catalogue { min-height: 100vh; background: #0a1322; color: #e9ecf1; display: flex; flex-direction: column; }
.cat-head { padding: 14px clamp(16px, 4vw, 40px); display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid rgba(201,151,58,.35); }
.cat-main { width: 100%; max-width: 1240px; margin: 0 auto; padding: clamp(36px, 6vw, 72px) clamp(20px, 5vw, 60px) 80px; flex: 1; }
.cat-kicker { margin: 0; font-size: 12px; font-weight: 500; letter-spacing: .3em; text-transform: uppercase; color: #c9973a; }
.cat-main h1 { margin: 14px 0 0; font-family: var(--serif); font-weight: 400; font-size: clamp(2.6rem, 6vw, 4.4rem); line-height: 1.05; color: #fff; }
.cat-intro { max-width: 640px; margin: 18px 0 0; font-weight: 300; font-size: 1.08rem; line-height: 1.7; }
.cat-filters { display: flex; flex-wrap: wrap; gap: 10px; margin: 36px 0 8px; }
.cat-btn { font: inherit; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; color: #c9973a; background: transparent; border: 1px solid #c9973a; border-radius: 999px; padding: 9px 18px; cursor: pointer; }
.cat-btn.on, .cat-btn:hover { background: #c9973a; color: #0a1322; }
.cat-group { margin-top: 48px; }
.cat-group h2 { margin: 0 0 22px; font-family: var(--serif); font-weight: 500; font-size: clamp(1.7rem, 3vw, 2.2rem); color: #c9973a; border-bottom: 1px solid rgba(201,151,58,.35); padding-bottom: 12px; }
.cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); gap: 22px; }
.cat-card { border: 1px solid #c9973a; padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.cat-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.cat-label { font-size: 11px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; color: #c9973a; }
.cat-badge { flex: none; font-size: 11px; letter-spacing: .08em; color: #fff; padding: 3px 10px; border-radius: 999px; }
.cat-card h3 { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 2rem; line-height: 1.1; color: #fff; }
.cat-line { width: 40px; height: 1px; background: #c9973a; }
.cat-card p { margin: 0; flex: 1; font-weight: 300; line-height: 1.7; }
.cat-cta { align-self: flex-start; margin-top: 6px; padding: 14px 22px; border: 1px solid #c9973a; color: #c9973a; font-size: 12px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; }
.cat-cta:hover { background: #c9973a; color: #0a1322; }
.cat-group[hidden] { display: none; }

.media-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 8px; }
.media-tools .media-insert { margin: 0; }
.mm-list { display: grid; gap: 12px; }
.mm-row { display: grid; grid-template-columns: 110px 1fr auto; gap: 14px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: 8px; }
.mm-thumb { width: 110px; height: 72px; object-fit: cover; border-radius: 4px; display: flex; align-items: center; justify-content: center; background: var(--surface-2); font-size: .8rem; }
.mm-info { display: grid; gap: 6px; }
.mm-actions { display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 640px) { .mm-row { grid-template-columns: 80px 1fr; } .mm-thumb { width: 80px; height: 56px; } .mm-actions { grid-column: 1 / -1; flex-direction: row; } }

/* ===== Dossier 26 : relecture et correction depuis le site, prix en euros, liste de tâches ===== */
.owner-note { margin: 0 0 16px; padding: 10px 14px; font-size: .9rem; color: #5f6d82; background: #eceef2; border-left: 3px solid #c9973a; border-radius: 4px; }
.edit-chapter-wrap { margin: 18px 0 0; text-align: right; }
.edit-chapter { font: inherit; font-size: .82rem; letter-spacing: .06em; color: #8a6420; background: #fff; border: 1px solid #c9973a; border-radius: 999px; padding: 7px 16px; cursor: pointer; }
.edit-chapter:hover { background: #c9973a; color: #0a1322; }
@media print { .edit-chapter-wrap, .owner-note { display: none !important; } }
.price-eur { margin: 2px 0 0; font-size: .9rem; opacity: .75; }
.todo-pin { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 20px; padding: 16px 20px; border: 1px solid var(--gold, #c9973a); border-radius: 10px; background: var(--surface); cursor: pointer; }
.todo-pin h2 { margin: 2px 0 6px; font-size: 1.25rem; }
.todo-kicker { margin: 0; font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold, #c9973a); }
@media (max-width: 640px) { .todo-pin { flex-direction: column; align-items: flex-start; } }

/* ===== Dossier 27 : progression, questions de validation, pour aller plus loin ===== */
.progress-box { margin: 0 0 18px; padding: 14px 18px; background: #fff; border: 1px solid #dde1e8; border-left: 3px solid #c9973a; border-radius: 6px; }
.progress-box p { margin: 0 0 8px; }
.progress-bar { display: block; height: 8px; background: #e3e6ec; border-radius: 999px; overflow: hidden; }
.progress-bar > span { display: block; height: 100%; background: #c9973a; border-radius: 999px; transition: width .4s ease; }
.progress-bar.small { height: 5px; margin-top: 6px; }
.toc-link.is-locked { opacity: .55; }
.toc-link.is-done { color: #2f6b3a; }
.locked-chapter { margin: 0; padding: 14px 16px; color: #5f6d82; background: #f7f7f8; border-radius: 6px; }
.quiz { margin: 26px 0 0; padding: 20px 22px; background: #fbf7ee; border: 1px solid #e8d7b0; border-radius: 8px; -webkit-user-select: text; user-select: text; }
.quiz-title { margin: 0 0 4px; font-family: var(--serif); font-size: 1.35rem; color: #8a6420; }
.quiz-help { margin: 0 0 14px; font-size: .92rem; color: #5f6d82; }
.quiz-q { margin: 0 0 14px; padding: 12px 14px; border: 1px solid #e3e6ec; border-radius: 6px; background: #fff; }
.quiz-q legend { padding: 0 4px; font-weight: 600; }
.quiz-opt { display: flex; gap: 10px; align-items: flex-start; padding: 6px 2px; cursor: pointer; line-height: 1.45; }
.quiz-opt input { margin-top: 4px; accent-color: #c9973a; }
.quiz-flag { display: none; margin: 6px 0 0; font-size: .85rem; color: #b5503a; }
.quiz-q.wrong { border-color: #d9958a; background: #fdf3f1; }
.quiz-q.wrong .quiz-flag { display: block; }
.quiz-msg { min-height: 1.2em; margin: 4px 0 10px; color: #b5503a; font-size: .92rem; }
.quiz-done { margin: 22px 0 0; padding: 10px 14px; color: #2f6b3a; background: #eef7ef; border: 1px solid #8fbf98; border-radius: 6px; font-weight: 600; }
.quiz-empty p:last-child { margin: 0; color: #5f6d82; }
.further { margin: 40px 0 0; padding: 22px 24px; background: #fff; border: 1px solid #dde1e8; border-top: 3px solid #c9973a; border-radius: 8px; }
.further h2 { margin: 0 0 10px; font-family: var(--serif); font-weight: 500; color: #8a6420; }
.espace-guides a { display: flex; flex-direction: column; gap: 4px; }
.eg-prog { font-size: .82rem; color: #5f6d82; }
.enr-prog { font-size: .8rem; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--line); color: var(--beige-dim); }
@media print { .quiz, .progress-box { display: none !important; } }

/* ==================== Espace étudiants (charte Essor OS v2) ==================== */
html[data-esp="nuit"], html[data-esp="nuit"] body { background: #0a1322; }
html[data-esp="jour"], html[data-esp="jour"] body { background: #f3f2f2; }
.esp {
  --bg: #0a1322; --surface: #0e1a2b; --surface-2: #0e1a2b; --line: rgba(201,151,58, .28); --line-strong: #8a6420;
  --beige: #fbf7ee; --beige-dim: #e9ecf1; --gold: #c9973a; --gold-bright: #c9973a; --gold-deep: #8a6420; --gold-wash: #0e1a2b; --field-bg: #0a1322;
  --e-text: #fbf7ee; --e-muted: #e9ecf1; --e-title: #c9973a; --e-kicker: #c9973a; --e-fill: #c9973a; --e-track: rgba(201,151,58, .18);
  --e-btn: #c9973a; --e-btn-tx: #0a1322; --e-btn-hv: #8a6420; --e-seg: #c9973a; --e-seg-tx: #0a1322; --e-card: #0e1a2b; --e-cardline: rgba(201,151,58, .32);
  color-scheme: dark;
  min-height: 100vh; background: var(--bg); color: var(--e-text); font-family: var(--sans); font-weight: 400;
  transition: background .35s ease, color .35s ease;
}
.esp[data-mode="jour"] {
  --bg: #f3f2f2; --surface: #FFFFFF; --surface-2: #FFFFFF; --line: rgba(168, 132, 63, .32); --line-strong: #c9973a;
  --beige: #0e1a2b; --beige-dim: #0e1a2b; --gold: #8a6420; --gold-bright: #8a6420; --gold-deep: #8a6420; --gold-wash: #fbf7ee; --field-bg: #FFFFFF;
  --e-text: #0e1a2b; --e-muted: #0e1a2b; --e-title: #8a6420; --e-kicker: #8a6420; --e-fill: #c9973a; --e-track: #e9ecf1;
  --e-btn: #0a1322; --e-btn-tx: #fbf7ee; --e-btn-hv: #0e1a2b; --e-seg: #0a1322; --e-seg-tx: #fbf7ee; --e-card: #FFFFFF; --e-cardline: rgba(201,151,58, .55);
  color-scheme: light;
}
.esp[data-mode="jour"] .essor-name { color: #0e1a2b; }
.esp a { color: inherit; }
.esp :focus-visible { outline: 2px solid #c9973a; outline-offset: 2px; }
.esp-ic { flex: none; display: block; }

/* Bandeau administratrice */
.esp-preview { padding: 10px 20px; text-align: center; font-size: .86rem; background: var(--e-card); border-bottom: 1px solid var(--e-cardline); color: var(--e-muted); }
.esp-preview a { color: var(--e-title); }

/* En-tête */
.esp-top { position: sticky; top: 0; z-index: 20; background: var(--bg); border-bottom: 1px solid var(--line); transition: background .35s ease; }
.esp-top-in { max-width: 1240px; margin: 0 auto; padding: 14px clamp(18px, 4vw, 48px); display: flex; align-items: center; gap: 24px; }
.esp-logo { text-decoration: none; display: inline-flex; }
.esp-nav { display: flex; gap: clamp(18px, 2.6vw, 36px); margin-left: auto; }
.esp-nav a { font-size: 12px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; color: var(--e-muted); padding: 8px 0; border-bottom: 1px solid transparent; }
.esp-nav a:hover { color: var(--e-text); }
.esp-nav a[aria-current="page"] { color: var(--e-title); border-bottom-color: var(--e-fill); }
.esp-tools { display: flex; align-items: center; gap: 14px; }
.esp-avatar { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 1px solid var(--e-fill); color: var(--e-title); font-family: var(--serif); font-size: 1.15rem; text-decoration: none; }
.esp-avatar[aria-current="page"] { background: var(--e-fill); color: #0a1322; }

/* Sélecteur Nuit / Jour / Auto */
.esp-seg { display: inline-flex; padding: 3px; border: 1px solid var(--line); border-radius: 999px; gap: 2px; }
.esp-seg-btn { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 12px; border: 0; border-radius: 999px; background: transparent; color: var(--e-muted); font: 500 12.5px/1 var(--sans); cursor: pointer; transition: background .25s, color .25s; }
.esp-seg-btn:hover { color: var(--e-text); }
.esp-seg-btn[aria-pressed="true"] { background: var(--e-seg); color: var(--e-seg-tx); }
.esp-seg.big .esp-seg-btn { min-height: 42px; padding: 0 18px; font-size: 14px; }

/* Contenu */
.esp-main { max-width: 1240px; margin: 0 auto; padding: clamp(32px, 5vw, 64px) clamp(18px, 4vw, 48px) 48px; }
.esp-foot { text-align: center; padding: 24px 20px 40px; border-top: 1px solid var(--line); max-width: 1240px; margin: 0 auto; }
.esp-slogan { font-family: var(--script); color: #c9973a; font-size: 1.7rem; margin: 0; line-height: 1.2; }
.esp[data-mode="jour"] .esp-slogan { color: #8a6420; }
.esp-slogan.big { font-size: clamp(1.9rem, 3vw, 2.5rem); }
.esp-kicker { margin: 0 0 12px; font-size: 12px; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--e-kicker); }
.esp-h1 { font-family: var(--serif); font-weight: 600; font-size: clamp(2.3rem, 4.6vw, 3.6rem); line-height: 1.05; color: var(--e-title); margin: 0 0 18px; letter-spacing: -.01em; text-wrap: balance; }
.esp-h2 { font-family: var(--serif); font-weight: 600; font-size: clamp(1.7rem, 3vw, 2.3rem); line-height: 1.12; color: var(--e-text); margin: 0 0 12px; text-wrap: balance; }
.esp-h3 { font-family: var(--serif); font-weight: 600; font-size: 1.55rem; line-height: 1.18; color: var(--e-text); margin: 0 0 12px; }
.esp-h3 a { text-decoration: none; }
.esp-h3 a:hover { color: var(--e-title); }
.esp-lede { font-size: clamp(1.05rem, 1.5vw, 1.2rem); line-height: 1.7; color: var(--e-muted); max-width: 62ch; margin: 0 0 18px; text-wrap: pretty; }
.esp-meta { font-size: .93rem; color: var(--e-muted); margin: 10px 0 0; }
.esp-small { font-size: .92rem; color: var(--e-muted); margin: 16px 0 0; }
.esp-note { padding: 12px 16px; border: 1px solid var(--e-fill); border-radius: 2px; font-size: .95rem; }
.esp-link { display: inline-flex; align-items: center; gap: 6px; color: var(--e-title); font-size: .93rem; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(201,151,58, .5); }
.esp-link:hover { color: var(--e-text); }
.esp-num { font-variant-numeric: tabular-nums lining-nums; color: var(--e-text); }
.esp-big { font-family: var(--serif); font-size: 3.4rem; line-height: 1; margin: 0 0 14px; color: var(--e-title); font-variant-numeric: lining-nums; }
.esp-hello { margin-bottom: clamp(28px, 4vw, 44px); }
.esp-section { margin: clamp(36px, 5vw, 56px) 0; }
.esp-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 18px; }

/* Cartes */
.esp-card { background: var(--e-card); border: 1px solid var(--e-cardline); border-radius: 2px; padding: clamp(22px, 3vw, 34px); margin-bottom: 20px; transition: background .35s ease; }
.esp-card > .esp-ic { color: var(--e-title); margin-bottom: 16px; }
.esp-card p { line-height: 1.65; }
.esp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 20px; }
.esp-grid.two { grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); }
.esp-grid .esp-card { margin: 0; display: flex; flex-direction: column; }
.esp-course .esp-actions { margin-top: auto; padding-top: 18px; }
.esp-course-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.esp-resume { border-top: 2px solid var(--e-fill); }
.esp-empty { text-align: left; }
.esp-pill { display: inline-block; margin: 0; padding: 4px 12px; border-radius: 999px; font-size: .78rem; border: 1px solid var(--e-fill); color: var(--e-title); white-space: nowrap; }
.esp-pill.off { opacity: .8; }
.esp-locked { max-width: 640px; }
.esp-locked .esp-pill { margin-bottom: 14px; }
.esp-verified { display: inline-flex; align-items: center; gap: 10px; padding: 9px 14px; border: 1px solid var(--line); border-radius: 2px; font-size: .86rem; color: var(--e-muted); }
.esp-verified .esp-ic { color: var(--e-fill); }

/* Barres de progression */
.esp-bar { display: block; height: 4px; background: var(--e-track); border-radius: 2px; overflow: hidden; margin-top: 14px; }
.esp-bar > span { display: block; height: 100%; background: var(--e-fill); border-radius: 2px; transition: width 1s cubic-bezier(.2, .7, .2, 1); }
.esp-bar.thick { height: 6px; margin-top: 8px; }
.esp-prog { display: flex; justify-content: space-between; gap: 12px; margin-top: 20px; font-size: .92rem; color: var(--e-muted); }

/* Boutons */
.esp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 22px; }
.esp-actions.center { justify-content: center; }
.esp-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 50px; padding: 0 26px; border: 1px solid var(--e-btn); border-radius: 2px; background: var(--e-btn); color: var(--e-btn-tx) !important; font: 500 13px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background .25s, border-color .25s, color .25s; }
.esp-btn:hover { background: var(--e-btn-hv); border-color: var(--e-btn-hv); }
.esp-btn.ghost { background: transparent; border-color: var(--e-fill); color: var(--e-title) !important; }
.esp-btn.ghost:hover { background: var(--e-fill); color: #0a1322 !important; }
.esp-btn.small { min-height: 44px; padding: 0 20px; font-size: 12px; }
.esp-btn.block { width: 100%; }
.esp-btn:disabled { opacity: .45; cursor: not-allowed; }
.esp-textbtn { background: none; border: 0; padding: 0; display: inline-flex; align-items: center; gap: 6px; font: inherit; color: var(--e-title); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.esp-iconbtn { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; background: transparent; border: 1px solid var(--line); border-radius: 2px; color: var(--e-muted); font: 13px var(--sans); cursor: pointer; }
.esp-iconbtn[aria-pressed="true"] { border-color: var(--e-fill); color: var(--e-title); }

/* Formulaires */
.esp-form { display: grid; gap: 16px; margin-top: 8px; }
.esp-field { display: grid; gap: 8px; }
.esp-field > span { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--e-kicker); }
.esp-field input, .esp-field textarea { width: 100%; padding: 14px 16px; background: var(--field-bg); color: var(--e-text); border: 1px solid var(--line-strong); border-radius: 2px; font: 1rem/1.5 var(--sans); }
.esp-field input:focus, .esp-field textarea:focus { outline: 0; border-color: #c9973a; box-shadow: 0 0 0 1px #c9973a; }
.esp-error { min-height: 1.2em; margin: 0; font-size: .93rem; color: var(--e-title); }
.esp-switch { display: flex; gap: 14px; align-items: flex-start; margin: 4px 0 18px; cursor: pointer; }
.esp-switch input { width: 20px; height: 20px; margin-top: 3px; accent-color: #c9973a; }
.esp-dl { margin: 0; display: grid; gap: 14px; }
.esp-dl div { display: grid; grid-template-columns: 160px 1fr; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.esp-dl dt { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--e-kicker); }
.esp-dl dd { margin: 0; }

/* Connexion */
.esp-login { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.esp-login-brand { background: #0a1322; color: #fbf7ee; padding: clamp(28px, 5vw, 64px); display: flex; flex-direction: column; justify-content: space-between; gap: 40px; min-height: 100vh; border-right: 1px solid rgba(201,151,58, .35); }
.esp .esp-login-brand .essor-name { color: #fbf7ee; }
.esp-login-brand .esp-kicker { color: #c9973a; }
.esp-login-brand .esp-link { color: #c9973a; }
.esp-login-brand .esp-slogan { color: #c9973a; }
.esp-login-title { font-family: var(--serif); font-weight: 500; font-size: clamp(2.4rem, 4.4vw, 3.8rem); line-height: 1.05; color: #fbf7ee; margin: 0 0 14px; }
.esp-login-text { color: #e9ecf1; font-size: 1.08rem; line-height: 1.7; max-width: 40ch; margin: 22px 0 0; }
.esp-login-form { padding: clamp(24px, 5vw, 64px); display: flex; flex-direction: column; }
.esp-login-tools { display: flex; justify-content: flex-end; }
.esp-login-box { width: 100%; max-width: 440px; margin: auto; padding: 40px 0; }

/* Page de formation */
.esp-crumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: .88rem; color: var(--e-muted); margin-bottom: 28px; }
.esp-crumb a { color: var(--e-title); text-decoration: none; }
.esp-crumb a:hover { text-decoration: underline; }
.esp-fhead { margin-bottom: 36px; border-bottom: 1px solid var(--line); padding-bottom: 32px; }
.esp-split { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; }
.esp-sticky { position: sticky; top: 96px; }
.esp-sticky .esp-btn { margin-top: 22px; }
.esp-toc { list-style: none; margin: 8px 0 0; padding: 0; }
.esp-toc li { border-top: 1px solid var(--line); }
.esp-toc li:first-child { border-top: 0; }
.esp-toc-row { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 16px 6px; text-decoration: none; transition: background .2s; }
a.esp-toc-row:hover { background: var(--e-track); }
.esp-toc-row.is-locked { opacity: .6; }
.esp-toc-n { font-size: .82rem; color: var(--e-kicker); font-variant-numeric: tabular-nums lining-nums; letter-spacing: .08em; }
.esp-toc-t { font-family: var(--serif); font-size: 1.2rem; line-height: 1.3; color: var(--e-text); }
.esp-toc-t small { display: block; font-family: var(--sans); font-size: .82rem; color: var(--e-muted); margin-top: 3px; }
.esp-toc-row.is-next .esp-toc-t { color: var(--e-title); }
.esp-status { display: inline-flex; align-items: center; gap: 6px; font-size: .8rem; color: var(--e-muted); white-space: nowrap; }
.esp-status.done, .esp-status.next { color: var(--e-title); }
.esp-res { display: flex; align-items: center; gap: 14px; padding: 14px 0; text-decoration: none; border-bottom: 1px solid var(--line); color: var(--e-text); }
.esp-res .esp-ic { color: var(--e-title); }
.esp-res small { display: block; font-size: .84rem; color: var(--e-muted); }
.esp-further { margin-top: 16px; }

/* Leçon */
.esp-lesson { display: grid; grid-template-columns: 240px minmax(0, 720px); justify-content: center; gap: clamp(32px, 6vw, 72px); align-items: start; }
.esp-lesson-side { position: sticky; top: 96px; }
.esp-ltoc ol { list-style: none; margin: 0 0 28px; padding: 0; border-left: 1px solid var(--line); }
.esp-ltoc button { display: flex; gap: 12px; align-items: baseline; width: 100%; text-align: left; background: none; border: 0; border-left: 2px solid transparent; margin-left: -1px; padding: 8px 0 8px 16px; font: .95rem/1.4 var(--sans); color: var(--e-muted); cursor: pointer; }
.esp-ltoc button:hover { color: var(--e-text); border-left-color: var(--e-fill); }
.esp-ltoc button span { font-size: .75rem; color: var(--e-kicker); font-variant-numeric: tabular-nums; }
.esp-lhead { border-bottom: 1px solid var(--line); padding-bottom: 28px; margin-bottom: 36px; }
.esp-lhead-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 14px; }
.esp-lhead-top .esp-kicker { margin: 0; }
.esp-prose { max-width: none; font-size: 1.08rem; line-height: 1.8; color: var(--e-text); }
.esp-prose p, .esp-prose li { font-size: 1.08rem; }
.esp-prose h4.sub { font-size: 1.7rem; color: var(--e-title); margin: 1.8em 0 .6em; scroll-margin-top: 96px; }
.esp-prose strong { color: var(--e-text); }
.esp .protected .wm span { color: rgba(168, 132, 63, .14); }
.esp-valid { margin-top: 44px; border-top: 2px solid var(--e-fill); }
.esp-valid.ok { display: flex; gap: 18px; align-items: flex-start; }
.esp-valid.ok > .esp-ic { color: var(--e-fill); margin: 4px 0 0; }
.esp-notes textarea { resize: vertical; }
.esp-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line); }
.esp-pager a { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--e-text); font-family: var(--serif); font-size: 1.1rem; line-height: 1.3; }
.esp-pager a.right { justify-content: flex-end; text-align: right; }
.esp-pager small { display: block; font-family: var(--sans); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--e-kicker); }
.esp-pager .esp-ic { color: var(--e-title); }
.esp-exit-reading { display: none; }
.esp.is-reading .esp-top, .esp.is-reading .esp-tabs, .esp.is-reading .esp-lesson-side, .esp.is-reading .esp-crumb, .esp.is-reading .esp-preview, .esp.is-reading .esp-foot { display: none; }
.esp.is-reading .esp-lesson { grid-template-columns: minmax(0, 720px); }
.esp.is-reading .esp-exit-reading { display: inline-flex; position: fixed; right: 20px; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 30; min-height: 44px; align-items: center; padding: 0 18px; border: 1px solid var(--e-fill); border-radius: 999px; background: var(--e-card); color: var(--e-title); font: 500 13px var(--sans); cursor: pointer; }

/* Quiz */
.esp-quiz-wrap { max-width: 760px; margin: 0 auto; }
.esp-quiz-top { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.esp-quiz-top .esp-meta { margin: 0; }
.esp-quiz { padding: clamp(26px, 4vw, 48px); }
.esp-q { margin: 30px 0 26px; }
.esp-opts { display: grid; gap: 12px; }
.esp-opt { display: flex; align-items: center; gap: 16px; width: 100%; min-height: 60px; padding: 14px 18px; text-align: left; background: transparent; border: 1px solid var(--line-strong); border-radius: 2px; color: var(--e-text); font: 1.02rem/1.45 var(--sans); cursor: pointer; transition: border-color .2s, background .2s; }
.esp-opt:hover { border-color: #c9973a; }
.esp-opt[aria-checked="true"] { border-color: #c9973a; background: var(--e-track); box-shadow: inset 3px 0 0 #c9973a; }
.esp-opt-key { flex: none; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--e-fill); border-radius: 50%; font-size: .86rem; color: var(--e-title); }
.esp-opt[aria-checked="true"] .esp-opt-key { background: #c9973a; color: #0a1322; }
.esp-quiz-nav { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 28px; }
.esp-quiz-res { text-align: center; }
.esp-quiz-res .esp-lede { margin-left: auto; margin-right: auto; }
.esp-score { font-family: var(--serif); font-size: 1.6rem; color: var(--e-muted); margin: 0 0 10px; font-variant-numeric: lining-nums; }
.esp-score span { font-size: 4.4rem; line-height: 1; color: var(--e-title); }
.esp-review { list-style: none; padding: 0; margin: 24px auto 0; max-width: 560px; text-align: left; }
.esp-review li { padding: 14px 0; border-top: 1px solid var(--line); }
.esp-review span { display: block; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--e-kicker); margin-bottom: 4px; }

/* Fin de formation */
.esp-fin { max-width: 760px; margin: 0 auto; text-align: center; padding: clamp(20px, 5vw, 60px) 0; }
.esp-fin-mark { display: flex; justify-content: center; margin-bottom: 26px; }
.esp-fin .esp-lede { margin-left: auto; margin-right: auto; }

/* Aide */
.esp-faq { border-top: 1px solid var(--line); margin-top: 18px; }
.esp-faq-item { border-bottom: 1px solid var(--line); }
.esp-faq-item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; padding: 20px 4px; font-family: var(--serif); font-size: 1.3rem; color: var(--e-text); }
.esp-faq-item summary::-webkit-details-marker { display: none; }
.esp-faq-item summary::after { content: "+"; color: var(--e-fill); font-family: var(--sans); font-size: 1.4rem; line-height: 1; }
.esp-faq-item[open] summary::after { content: "\2212"; }
.esp-faq-a { padding: 0 4px 18px; color: var(--e-muted); max-width: 70ch; }
.esp-faq-a p { margin: 0 0 .8em; }

/* Barre d'onglets (téléphone) */
.esp-tabs { display: none; }

@media (max-width: 900px) {
  .esp-nav { display: none; }
  .esp-tools { margin-left: auto; }
  .esp-tools .esp-seg-btn span { display: none; }
  .esp-tools .esp-seg-btn { padding: 0 9px; }
  .esp-tools .esp-avatar { display: none; }
  .esp-tabs { display: grid; grid-template-columns: repeat(4, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; background: var(--bg); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom, 0px); }
  .esp-tabs a { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 4px 9px; font-size: 11px; text-decoration: none; color: var(--e-muted); }
  .esp-tabs a[aria-current="page"] { color: var(--e-title); box-shadow: inset 0 2px 0 var(--e-fill); }
  .esp-main { padding-bottom: 96px; }
  .esp-foot { padding-bottom: 96px; }
  .esp-split { grid-template-columns: 1fr; }
  .esp-split-side { order: -1; }
  .esp-sticky { position: static; }
  .esp-lesson { grid-template-columns: minmax(0, 1fr); }
  .esp-lesson-side { position: static; }
  .esp-ltoc ol { margin-bottom: 18px; }
  .esp-login { grid-template-columns: 1fr; }
  .esp-login-brand { min-height: 0; gap: 26px; border-right: 0; border-bottom: 1px solid rgba(201,151,58, .35); }
  .esp-login-box { padding: 28px 0 40px; }
  .esp-dl div { grid-template-columns: 1fr; gap: 4px; }
  .esp-iconbtn span { display: none; }
  .esp-iconbtn { padding: 0 11px; }
  .esp-toc-row { grid-template-columns: 34px minmax(0, 1fr); }
  .esp-toc-row .esp-status { grid-column: 2; }
  .esp-pager { grid-template-columns: 1fr; }
  .esp-pager a.right { justify-content: flex-start; text-align: left; flex-direction: row-reverse; }
}
@media (prefers-reduced-motion: reduce) { .esp, .esp * { transition: none !important; } }

/* ---------- Espace étudiants : attestations, ateliers, vérification ---------- */
.esp-cert-card { text-decoration: none; display: block; border-top: 2px solid var(--e-fill); }
.esp-cert-card:hover .esp-h3 { color: var(--e-title); }
.esp-ws { border-top: 1px solid var(--line); margin-top: 16px; }
.esp-ws-row { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; gap: 20px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); }
.esp-ws-date { text-align: center; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--e-kicker); }
.esp-ws-date span { display: block; font-family: var(--serif); font-size: 2.3rem; line-height: 1; letter-spacing: 0; color: var(--e-title); font-variant-numeric: lining-nums; }
.esp-ws-main .esp-h3 { margin: 0; font-size: 1.35rem; }
.esp-ws-main .esp-meta { margin-top: 4px; }
.esp-verify-box { max-width: 620px; margin: 0 auto; }
.esp-verify-box .esp-form { margin-bottom: 24px; }
.esp-vres.ok { display: flex; gap: 18px; align-items: flex-start; border-top: 2px solid var(--e-fill); }
.esp-vres.ok > .esp-ic { color: var(--e-fill); margin-top: 4px; }
.esp-vres .esp-dl { margin-top: 10px; }

/* Attestation A4 paysage : toutes les mesures suivent la largeur (1123 unités). */
.esp-cert-wrap { container-type: inline-size; width: 100%; max-width: 1123px; margin: 8px auto 0; }
.esp-cert-sheet {
  --u: calc(100cqw / 1123);
  --c-bg: #0a1322; --c-text: #fbf7ee; --c-text2: #e9ecf1; --c-label: #c9973a; --c-name: #fbf7ee; --c-course: #c9973a; --c-rule: #c9973a; --c-rule2: #8a6420; --c-seal: #c9973a; --c-b1: #c9973a; --c-b1w: 1px; --c-b2: #8a6420;
  aspect-ratio: 1123 / 794; width: 100%; background: var(--c-bg); padding: calc(28 * var(--u)); color: var(--c-text); font-family: var(--sans);
  -webkit-print-color-adjust: exact; print-color-adjust: exact; box-shadow: 0 0 0 1px rgba(201,151,58, .25);
}
html.cert-light .esp-cert-sheet { --c-bg: #f3f2f2; --c-text: #0e1a2b; --c-text2: #0e1a2b; --c-label: #0e1a2b; --c-name: #8a6420; --c-course: #8a6420; --c-rule: #c9973a; --c-rule2: #c9973a; --c-seal: #8a6420; --c-b1w: 2px; --c-b2: #c9973a; }
.esp-cert-b1 { height: 100%; border: var(--c-b1w) solid var(--c-b1); padding: calc(7 * var(--u)); }
.esp-cert-b2 { height: 100%; border: 1px solid var(--c-b2); padding: calc(36 * var(--u)) calc(56 * var(--u)) calc(28 * var(--u)); display: flex; flex-direction: column; }
.esp-cert-top { display: flex; justify-content: space-between; align-items: center; }
.esp-cert-logo { display: inline-flex; align-items: center; gap: calc(10 * var(--u)); font-family: var(--serif); font-size: calc(26 * var(--u)); color: var(--c-text); }
.esp-cert-logo svg { width: calc(44 * var(--u)); height: auto; }
.esp-cert-num { font-size: calc(12 * var(--u)); letter-spacing: .16em; color: var(--c-text2); font-variant-numeric: lining-nums; }
.esp-cert-body { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.esp-cert-body p { margin: 0; }
.esp-cert-label { font-size: calc(14 * var(--u)); letter-spacing: .42em; text-transform: uppercase; color: var(--c-label); font-weight: 500; margin-bottom: calc(26 * var(--u)) !important; }
.esp-cert-intro { font-family: var(--serif); font-style: italic; font-size: calc(24 * var(--u)); color: var(--c-text2); margin-bottom: calc(10 * var(--u)) !important; }
.esp-cert-name { font-family: var(--serif); font-weight: 600; font-size: calc(68 * var(--u)); line-height: 1.05; color: var(--c-name); }
.esp-cert-rule { display: block; width: calc(140 * var(--u)); height: 1px; background: var(--c-rule); margin: calc(22 * var(--u)) 0; }
.esp-cert-txt { font-size: calc(16 * var(--u)); color: var(--c-text2); margin-bottom: calc(10 * var(--u)) !important; }
.esp-cert-course { font-family: var(--serif); font-weight: 600; font-style: italic; font-size: calc(44 * var(--u)); line-height: 1.1; color: var(--c-course); }
.esp-cert-detail { font-size: calc(14 * var(--u)); letter-spacing: .06em; color: var(--c-text2); margin-top: calc(14 * var(--u)) !important; font-variant-numeric: lining-nums; }
.esp-cert-foot { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: calc(40 * var(--u)); }
.esp-cert-foot p { margin: 0; }
.esp-cert-small { font-size: calc(11 * var(--u)); letter-spacing: .2em; text-transform: uppercase; color: var(--c-label); margin-bottom: calc(8 * var(--u)) !important; }
.esp-cert-date { font-family: var(--serif); font-weight: 600; font-size: calc(22 * var(--u)); color: var(--c-text); padding-bottom: calc(10 * var(--u)); border-bottom: 1px solid var(--c-rule2); width: calc(220 * var(--u)); font-variant-numeric: lining-nums; }
.esp-cert-seal { position: relative; width: calc(132 * var(--u)); height: calc(132 * var(--u)); }
.esp-cert-seal-ring { position: absolute; inset: 0; width: 100%; height: 100%; }
.esp-cert-seal-text { fill: var(--c-seal); }
.esp-cert-seal-mark { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.esp-cert-seal-mark svg { width: calc(58 * var(--u)); height: auto; }
.esp-cert-sign { justify-self: end; width: calc(220 * var(--u)); }
.esp-cert-sign-space { display: block; height: calc(56 * var(--u)); }
.esp-cert-sign p { border-top: 1px solid var(--c-rule2); padding-top: calc(8 * var(--u)); font-size: calc(13 * var(--u)); color: var(--c-text2); }
.esp-cert-bottom { display: flex; justify-content: space-between; align-items: baseline; gap: calc(20 * var(--u)); margin-top: calc(22 * var(--u)); padding-top: calc(12 * var(--u)); border-top: 1px solid var(--c-rule2); }
.esp-cert-bottom p { margin: 0; font-size: calc(12 * var(--u)); color: var(--c-text2); letter-spacing: .04em; font-variant-numeric: lining-nums; }
.esp-cert-bottom strong { color: var(--c-label); font-weight: 500; }
.esp-cert-bottom .esp-cert-slogan { font-family: var(--script); font-size: calc(24 * var(--u)); color: var(--c-label); letter-spacing: 0; white-space: nowrap; }
html.cert-light .esp-cert-bottom .esp-cert-slogan { color: #8a6420; }
.esp-cert-sheet .esp-cert-name, .esp-cert-sheet .esp-cert-course { overflow-wrap: anywhere; }

@page cert { size: A4 landscape; margin: 0; }
@media print {
  html.cert-print, html.cert-print body, html.cert-print .esp { background: #FFFFFF !important; min-height: 0; }
  html.cert-print .esp-top, html.cert-print .esp-tabs, html.cert-print .esp-foot, html.cert-print .esp-preview,
  html.cert-print .esp-cert-head, html.cert-print .offline-bar, html.cert-print #toasts { display: none !important; }
  html.cert-print .esp-main { padding: 0 !important; max-width: none; margin: 0; }
  html.cert-print .esp-cert-wrap { page: cert; width: 297mm; max-width: none; height: 210mm; margin: 0; }
  html.cert-print .esp-cert-sheet { box-shadow: none; height: 210mm; aspect-ratio: auto; }
}
@media (max-width: 900px) {
  .esp-ws-row { grid-template-columns: 56px minmax(0, 1fr); }
  .esp-ws-row .esp-btn { grid-column: 2; justify-self: start; }
}

/* ==================== Éditeur de leçon (administration) ==================== */
.ed-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; flex-wrap: wrap; margin: 6px 0 22px; }
.ed-head h1 { margin: 4px 0 8px; }
.ed-kicker { margin: 0; font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold); }
.ed-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.ed-status { margin: 0; font-size: .92rem; color: var(--beige-dim); display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; }
.ed-status.ok::before { content: "●"; color: var(--gold); margin-right: 2px; }
.ed-publish { display: inline-flex; gap: 8px; align-items: center; color: var(--gold); cursor: pointer; }
.ed-draft { margin: 0 0 18px; padding: 12px 16px; border: 1px solid var(--gold-deep); border-radius: 6px; font-size: .92rem; }
.ed-meta { margin-bottom: 4px; }
.ed-tabs { display: none; gap: 6px; margin: 18px 0 10px; }
.ed-tabs button, .ed-seg button { border: 1px solid var(--line-strong); background: transparent; color: var(--beige); border-radius: 999px; padding: 7px 16px; font: inherit; font-size: .88rem; cursor: pointer; }
.ed-tabs button[aria-pressed="true"], .ed-seg button[aria-pressed="true"] { background: var(--gold); border-color: var(--gold); color: #0a1322; }
.ed-work { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 22px; margin-top: 18px; align-items: start; }
.ed-write { position: sticky; top: 12px; display: flex; flex-direction: column; min-width: 0; }
.ed-tools { display: flex; flex-wrap: wrap; gap: 4px; padding: 6px; border: 1px solid var(--line-strong); border-bottom: 0; border-radius: 6px 6px 0 0; background: var(--surface); position: sticky; top: 0; z-index: 2; }
.ed-tool { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 4px; background: transparent; color: var(--beige); cursor: pointer; flex: none; }
.ed-tool:hover, .ed-tool:focus-visible { border-color: var(--gold); color: var(--gold); }
.ed-tool.sep { margin-left: auto; }
.ed-help { font-family: var(--serif); font-size: 1.2rem; }
#ed-body { width: 100%; min-height: 62vh; resize: vertical; padding: 18px 20px; border: 1px solid var(--line-strong); border-radius: 0 0 6px 6px; background: var(--field-bg); color: var(--beige); font: 15px/1.75 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; tab-size: 2; }
#ed-body:focus { outline: 0; border-color: var(--gold); }
.ed-count { margin: 8px 2px 0; font-size: .85rem; color: var(--beige-dim); }
.ed-view { min-width: 0; }
.ed-view-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ed-seg { display: inline-flex; gap: 4px; }
.ed-seg button { padding: 5px 12px; font-size: .8rem; }
.ed-pv-esp.esp { min-height: 0; max-height: 78vh; overflow: auto; border: 1px solid var(--e-cardline); border-radius: 6px; padding: clamp(22px, 3vw, 40px); }
.ed-pv-esp.is-phone { max-width: 390px; margin: 0 auto; padding: 22px 18px; }
.ed-pv-esp.is-phone .esp-h1 { font-size: 2.1rem; }
.ed-pv-esp .esp-h1 { font-size: clamp(2rem, 3vw, 2.8rem); }
.ed-quiz { margin-top: 36px; padding-top: 26px; border-top: 1px solid var(--line); }
.ed-quiz h2 { margin-bottom: 6px; }
.ed-q { border: 1px solid var(--line-strong); border-radius: 6px; padding: 16px 18px; margin: 14px 0; background: var(--surface); }
.ed-q-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.ed-q-n { font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
.ed-q input[type=text] { width: 100%; padding: 10px 12px; background: var(--field-bg); color: var(--beige); border: 1px solid var(--line-strong); border-radius: 4px; font: inherit; }
.ed-q-text { font-size: 1.02rem; margin-bottom: 12px; }
.ed-opts { display: grid; gap: 8px; margin-bottom: 10px; }
.ed-opt { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; }
.ed-good { display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; color: var(--beige-dim); cursor: pointer; }
.ed-good input { accent-color: #c9973a; width: 18px; height: 18px; }
.ed-good input:checked + span { color: var(--gold); }
.ed-foot { margin-top: 28px; display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.ed-foot .spacer { flex: 1; }
@media (max-width: 1100px) {
  .ed-tabs { display: flex; }
  .ed-work { grid-template-columns: minmax(0, 1fr); }
  .ed-work[data-tab="ecrire"] .ed-view { display: none; }
  .ed-work[data-tab="apercu"] .ed-write { display: none; }
  .ed-write { position: static; }
  .ed-tools { overflow-x: auto; flex-wrap: nowrap; }
  .ed-tool.sep { margin-left: 8px; }
  #ed-body { min-height: 55vh; }
}

/* ==================== Site public, design v3 (accueil et catalogue) ==================== */
html[data-site="nuit"], html[data-site="nuit"] body { background: #0a1322; }
html[data-site="jour"], html[data-site="jour"] body { background: #f3f2f2; }
.eh {
  --bg: #0a1322; --bg-alt: #0e1a2b; --surface: #0e1a2b; --ink: #FFFFFF; --text: #f3f2f2; --text-2: #c9cfd8; --gold: #c9973a; --gold-text: #c9973a;
  --rule: #8a6420; --rule-soft: rgba(201,151,58, .32); --btn-bg: #c9973a; --btn-fg: #0a1322; --btn-hover: #8a6420; --sec-hover: rgba(201,151,58, .12);
  --quote-bg: #0a1322; --quote-ink: #FFFFFF; --quote-gold: #c9973a; --admin-bg: #0a1322; --pad: 32px;
  container-type: inline-size; background: var(--bg); color: var(--text); font-family: 'Jost', sans-serif; font-weight: 300;
  font-variant-numeric: lining-nums; font-feature-settings: 'lnum' 1; min-height: 100vh; overflow-x: hidden; transition: background .4s ease, color .4s ease;
}
.eh[data-mode="jour"] {
  --bg: #f3f2f2; --bg-alt: #fbf7ee; --surface: #FFFFFF; --ink: #0a1322; --text: #0e1a2b; --text-2: #0e1a2b; --gold-text: #8a6420;
  --rule: #c9973a; --rule-soft: rgba(201,151,58, .55); --btn-bg: #0a1322; --btn-fg: #c9973a; --btn-hover: #0e1a2b; --sec-hover: rgba(201,151,58, .14); --admin-bg: #fbf7ee;
}
.eh *, .eh *::before, .eh *::after { box-sizing: border-box; }
.eh a { color: var(--gold-text); text-decoration: none; }
.eh a:hover { color: var(--gold); }
.eh a:focus-visible, .eh button:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.eh ::selection { background: #c9973a; color: #0a1322; }
.eh h1, .eh h2, .eh h3 { font-family: 'Cormorant Garamond', serif; font-weight: 500; color: var(--ink); margin: 0; }
.eh h2 { margin-top: 20px; font-size: clamp(38px, 4cqw, 58px); line-height: 1.05; text-wrap: balance; }
.eh em { font-style: italic; color: var(--gold-text); }
.eh-nowrap { white-space: nowrap; }
.eh-logo-j { display: none; } .eh[data-mode="jour"] .eh-logo-n { display: none; } .eh[data-mode="jour"] .eh-logo-j { display: block; }
.eh-wrap { max-width: 1200px; margin: 0 auto; }
.eh-narrow { max-width: 920px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; }
.eh-center { text-align: center; }
.eh-kicker { font-weight: 500; font-size: 11px; line-height: 1.6; letter-spacing: .22em; text-transform: uppercase; color: var(--gold-text); }
.eh-num { font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 18px; color: var(--gold-text); }
.eh-slogan { font-family: 'Allura', cursive; font-size: clamp(28px, 2.4cqw, 34px); line-height: 1.2; color: var(--gold-text); }
.eh-hide { opacity: 0; transform: translateY(14px); transition: opacity 1s cubic-bezier(.2, .6, .2, 1), transform 1s cubic-bezier(.2, .6, .2, 1); }
.eh-hide.in { opacity: 1; transform: none; }

/* Barre administratrice */
.eh-admin { background: var(--admin-bg); border-bottom: 1px solid var(--rule-soft); }
.eh-admin-in { max-width: 1264px; margin: 0 auto; padding: 6px var(--pad); min-height: 36px; display: flex; align-items: center; justify-content: center; gap: 4px 20px; flex-wrap: wrap; font-size: 12px; }
.eh-admin-on { display: flex; align-items: center; gap: 8px; color: var(--text-2); }
.eh-admin-on span { width: 5px; height: 5px; background: var(--gold); }
.eh-admin-sep { width: 1px; height: 12px; background: var(--rule-soft); }
.eh-admin a { color: var(--text); padding: 2px 0; font-weight: 400; }
.eh-admin a.on { color: var(--gold-text); font-weight: 500; border-bottom: 1px solid var(--gold); }

/* En-tête */
.eh-head { position: sticky; top: 0; z-index: 20; background: var(--bg); border-bottom: 1px solid var(--rule); transition: background .4s ease; }
.eh-head-in { max-width: 1264px; margin: 0 auto; padding: 0 var(--pad); min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.eh-brand { display: flex; align-items: center; gap: 16px; padding: 10px 0; flex: none; }
.eh-brand img { width: 150px; height: auto; }
.eh-brand-sep { width: 1px; height: 20px; background: var(--rule); }
.eh-brand-sfx { font-weight: 500; font-size: 11px; letter-spacing: .32em; text-transform: uppercase; color: var(--gold-text); }
.eh-nav { display: flex; align-items: center; gap: clamp(20px, 2.2vw, 36px); }
.eh-nav a, .eh-tools a, .eh-brand-sfx { white-space: nowrap; }
.eh-nav a, .eh-foot-links a { font-weight: 500; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; color: var(--ink); }
.eh-nav a:hover, .eh-foot-links a:hover { color: var(--gold); }
.eh-tools { display: flex; align-items: center; gap: 24px; }
.eh-modes { display: flex; align-items: center; gap: 2px; border-left: 1px solid var(--rule-soft); padding-left: 20px; }
.eh-modes button { appearance: none; background: none; border: 0; border-bottom: 1px solid transparent; cursor: pointer; padding: 6px 8px; min-height: 32px; font: 500 11px 'Jost', sans-serif; letter-spacing: .16em; text-transform: uppercase; color: var(--text-2); }
.eh-modes button[aria-checked="true"] { color: var(--gold-text); border-bottom-color: var(--gold); }
.eh-burger { display: none; appearance: none; background: none; border: 0; cursor: pointer; height: 44px; min-width: 44px; align-items: center; gap: 12px; color: var(--ink); }
.eh-burger-l { font: 500 11px 'Jost', sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.eh-burger-i { display: flex; flex-direction: column; align-items: flex-end; gap: 7px; width: 22px; }
.eh-burger-i span { display: block; height: 1px; background: var(--gold); width: 22px; } .eh-burger-i span + span { width: 14px; }
.eh-menu { display: none; border-top: 1px solid var(--rule-soft); background: var(--bg); }
.eh.menu-open .eh-menu { display: block; }
.eh-menu-in { max-width: 1264px; margin: 0 auto; padding: 8px var(--pad) 36px; }
.eh-menu nav { display: flex; flex-direction: column; }
.eh-menu nav a { display: flex; justify-content: space-between; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--rule-soft); font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 28px; line-height: 1.15; color: var(--ink); }
.eh-menu nav a span { font-family: 'Jost', sans-serif; font-size: 14px; color: var(--gold-text); }
.eh-menu .eh-btn.block { margin-top: 28px; }
.eh-menu-modes { margin-top: 28px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.eh-menu-modes > span { font-weight: 500; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--text-2); }
.eh-menu-modes .eh-modes { border: 0; padding: 0; }

/* Boutons */
.eh-actions { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; margin-top: 48px; }
.eh-btn { display: inline-flex; align-items: center; justify-content: center; height: 48px; padding: 0 28px; background: var(--btn-bg); color: var(--btn-fg) !important; font-weight: 500; font-size: 14px; letter-spacing: .04em; transition: background .25s ease; border: 1px solid var(--btn-bg); }
.eh-btn:hover { background: var(--btn-hover); border-color: var(--btn-hover); }
.eh-btn.line { background: transparent; border-color: var(--gold); color: var(--gold-text) !important; }
.eh-btn.line:hover { background: var(--sec-hover); }
.eh-btn.small { height: 40px; padding: 0 18px; font-size: 13px; }
.eh-btn.block { display: flex; width: 100%; justify-content: flex-start; }
.eh-cta { margin-top: auto; padding-top: 32px; align-self: flex-start; }
.eh-cta span { display: inline-block; padding-bottom: 6px; border-bottom: 1px solid var(--gold); font-weight: 500; font-size: 14px; letter-spacing: .04em; color: var(--gold-text); }
.eh-cta.muted span { opacity: .7; border-bottom-style: dashed; }

/* Sections */
.eh-sec { padding: clamp(96px, 10cqw, 160px) var(--pad); }
.eh-big { padding-top: clamp(104px, 11cqw, 176px); padding-bottom: clamp(104px, 11cqw, 176px); }
.eh-top { border-top: 1px solid var(--rule-soft); }
.eh-alt { background: var(--bg-alt); transition: background .4s ease; }
.eh-hero { padding: clamp(88px, 9cqw, 144px) var(--pad) clamp(104px, 11cqw, 176px); }
.eh-hero .eh-wrap { display: flex; flex-direction: column; align-items: center; }
.eh-symbol { width: clamp(72px, 6cqw, 96px); height: auto; }
.eh-hero-brand { margin-top: 32px; font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: clamp(30px, 2.6cqw, 38px); line-height: 1.1; color: var(--ink); }
.eh-rule-s { width: 40px; height: 1px; background: var(--gold); margin: 22px 0 18px; }
.eh-hero-copy { margin-top: clamp(56px, 6cqw, 88px); display: flex; flex-direction: column; align-items: center; }
.eh-hero h1 { font-size: clamp(36px, 5.4cqw, 80px); line-height: 1.06; letter-spacing: -.005em; max-width: 23ch; text-wrap: balance; }
.eh-hero-copy > p { margin: 36px 0 0; font-size: clamp(17px, 1.3cqw, 19px); line-height: 1.7; color: var(--text-2); max-width: 44ch; text-wrap: pretty; }
.eh-frame { width: 100%; border: 1px solid var(--rule); padding: 14px; margin-top: clamp(64px, 7cqw, 104px); }
.eh-frame img { display: block; width: 100%; object-fit: cover; }
.eh-slot { width: 100%; background: var(--bg-alt); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; padding: 24px; }
.eh-slot-line { display: block; width: 28px; height: 1px; background: var(--gold); }
.eh-slot-k { font-weight: 500; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; color: var(--gold-text); }
.eh-slot-t { font-size: 14px; line-height: 1.5; color: var(--text-2); max-width: 32ch; }
.eh-verbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 48px; margin-top: 64px; }
.eh-verb { padding: 36px 0 40px; border-top: 1px solid var(--rule); }
.eh-verb h3 { margin-top: 20px; font-size: clamp(34px, 3cqw, 44px); line-height: 1.05; }
.eh-verb p { margin: 20px 0 0; font-size: 16px; line-height: 1.7; color: var(--text-2); max-width: 26ch; }
.eh-headrow { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.eh-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 24px; margin-top: 64px; }
.eh-card { background: var(--surface); border: 1px solid var(--rule-soft); padding: 40px 32px 36px; display: flex; flex-direction: column; min-height: 440px; transition: border-color .3s ease; }
.eh-card:hover { border-color: var(--gold); }
.eh-card h3 { margin-top: 24px; font-size: 34px; line-height: 1.08; }
.eh-rule-c { width: 32px; height: 1px; background: var(--gold); margin: 24px 0; }
.eh-card p { margin: 0; font-size: 15.5px; line-height: 1.7; color: var(--text-2); text-wrap: pretty; }
.eh-split-head { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 32px 64px; align-items: end; }
.eh-split-head > p { margin: 0; font-size: 18px; line-height: 1.7; color: var(--text-2); max-width: 36ch; }
.eh-list { margin-top: 64px; border-top: 1px solid var(--rule); }
.eh-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px 40px; padding: 32px 0; border-bottom: 1px solid var(--rule-soft); color: var(--text) !important; transition: padding .3s ease; }
a.eh-row:hover { padding-left: 12px; }
.eh-row .eh-num { flex: 0 0 40px; }
.eh-row-t { flex: 1 1 300px; font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 28px; line-height: 1.2; color: var(--ink); }
.eh-row-d { flex: 1.3 1 320px; font-size: 15.5px; line-height: 1.7; color: var(--text-2); }
.eh-row-go { flex: none; font-weight: 500; font-size: 14px; letter-spacing: .04em; color: var(--gold-text); }
.eh-row-go.muted { opacity: .65; }
.eh-more { margin-top: 48px; }
.eh-next { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 48px; margin-top: 72px; }
.eh-next > div { border-top: 1px solid var(--rule); padding-top: 32px; }
.eh-next h3 { font-size: 28px; line-height: 1.2; }
.eh-next p { margin: 20px 0 0; font-size: 15.5px; line-height: 1.7; color: var(--text-2); max-width: 34ch; }
.eh-about { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: clamp(48px, 7cqw, 112px); align-items: center; }
.eh-about .eh-frame { max-width: 460px; margin-top: 0; }
.eh-rule-m { width: 48px; height: 1px; background: var(--gold); margin: 28px 0 36px; }
.eh-lead { margin: 0; font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: clamp(24px, 2.1cqw, 30px); line-height: 1.45; color: var(--ink); max-width: 32ch; text-wrap: pretty; }
.eh-rule-v { width: 1px; height: 56px; background: var(--gold); margin: 32px 0 40px; }
.eh-vision { margin: 0; font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: clamp(26px, 2.6cqw, 38px); line-height: 1.4; color: var(--ink); text-wrap: balance; }
/* Essor OS Plus : étapes, blocs salle / espace, questions fréquentes */
.eh-steps { list-style: none; padding: 0; margin-bottom: 0; }
.eh-steps .eh-row { margin: 0; }
.eh-feature { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 48px clamp(48px, 7cqw, 112px); align-items: center; }
.eh-feature .eh-frame { margin-top: 0; }
.eh .eh-feature-t { margin: 0 0 24px; }
.eh-solo .eh-lead { max-width: 44ch; }
@media (max-width: 1439px) { .eh-head .eh-sfx-long { display: none; } }
.eh-foot-brand { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.eh-points { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.eh-points li { display: flex; gap: 18px; align-items: baseline; padding: 20px 0; border-bottom: 1px solid var(--rule-soft); font-size: 17px; line-height: 1.5; color: var(--text); }
.eh-points li::before { content: ''; flex: none; width: 7px; height: 7px; transform: translateY(-3px) rotate(45deg); background: var(--gold); }
.eh-lead-s { font-size: clamp(21px, 1.7cqw, 25px); max-width: 38ch; }
.eh-faq-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: 40px clamp(48px, 7cqw, 112px); align-items: start; }
.eh-faq { border-top: 1px solid var(--rule); }
.eh-faq-i { border-bottom: 1px solid var(--rule-soft); }
.eh-faq-i summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 24px; align-items: baseline; padding: 24px 0; font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 23px; line-height: 1.3; color: var(--ink); }
.eh-faq-i summary::-webkit-details-marker { display: none; }
.eh-faq-i summary::after { content: '+'; flex: none; font-family: 'Jost', sans-serif; font-weight: 300; font-size: 26px; line-height: 1; color: var(--gold-text); transition: transform .25s ease; }
.eh-faq-i[open] summary::after { transform: rotate(45deg); }
.eh-faq-i summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
.eh-faq-i p { margin: 0 0 26px; max-width: 62ch; font-size: 15.5px; line-height: 1.75; color: var(--text-2); }
@media (prefers-reduced-motion: reduce) { .eh-faq-i summary::after { transition: none; } }
.eh-join { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 48px 0; align-items: center; }
.eh-join h2 { max-width: 12ch; }
.eh-join-r { border-left: 1px solid var(--rule); padding-left: clamp(24px, 5cqw, 80px); }
.eh-join-r p, .eh-why-r p { margin: 0 0 36px; font-size: 17px; line-height: 1.75; color: var(--text-2); max-width: 42ch; }
.eh-why { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 56px clamp(48px, 7cqw, 112px); align-items: start; }
.eh-why img { width: 96px; height: auto; display: block; }
.eh-why h2 { margin-top: 40px; }
.eh-why-r { border-top: 1px solid var(--rule); padding-top: 36px; }
.eh-why-r p { margin-bottom: 0; }
.eh-sign { margin-top: 28px !important; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 26px !important; line-height: 1.35 !important; color: var(--gold-text) !important; max-width: 28ch; }
.eh-quote { padding: clamp(104px, 11cqw, 168px) var(--pad); background: var(--quote-bg); }
.eh-quote figure { margin: 0 auto; max-width: 900px; display: flex; flex-direction: column; align-items: center; }
.eh-qmark { font-family: 'Cormorant Garamond', serif; font-size: 72px; line-height: .6; height: 36px; color: var(--quote-gold); }
.eh-quote blockquote { margin: 32px 0 0; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: clamp(28px, 3cqw, 44px); line-height: 1.3; color: var(--quote-ink); text-wrap: balance; }
.eh-quote figcaption { margin-top: 36px; font-weight: 500; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--quote-gold); }
.eh-quote .eh-rule-c { background: var(--quote-gold); margin: 48px 0 32px; }
.eh-quote .eh-slogan { color: var(--quote-gold); font-size: clamp(30px, 2.6cqw, 38px); }
.eh-contact { padding-top: clamp(120px, 12cqw, 192px); padding-bottom: clamp(120px, 12cqw, 192px); }
.eh-contact h2 { margin-top: 28px; font-size: clamp(36px, 4.8cqw, 72px); }
.eh-contact em, .eh-cat em { font-weight: 400; }
.eh-foot { padding: 0 var(--pad); }
.eh-foot-in { max-width: 1200px; margin: 0 auto; border-top: 1px solid var(--rule); padding: 36px 0 44px; display: flex; justify-content: space-between; align-items: center; gap: 24px 40px; flex-wrap: wrap; }
.eh-foot-logo { width: 130px !important; height: auto; }
.eh-foot-links { display: flex; gap: 32px; flex-wrap: wrap; align-items: center; }
.eh-foot-links a { font-size: 11px; }
.eh-foot-links > span { font-size: 13px; color: var(--text-2); }

/* Catalogue */
.eh-h1 { margin-top: 20px !important; font-size: clamp(42px, 5cqw, 72px); line-height: 1.04; }
.eh-filters { display: flex; flex-wrap: wrap; gap: 8px 28px; margin-top: 56px; padding: 18px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule-soft); }
.eh-filters button { appearance: none; background: none; border: 0; border-bottom: 1px solid transparent; padding: 6px 0; cursor: pointer; font: 500 12px 'Jost', sans-serif; letter-spacing: .18em; text-transform: uppercase; color: var(--ink); }
.eh-filters button span { color: var(--gold-text); margin-left: 4px; letter-spacing: 0; }
.eh-filters button[aria-pressed="true"] { color: var(--gold-text); border-bottom-color: var(--gold); }
.eh-cat-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); margin-top: 48px; }
.eh-cat-card { min-height: 0; }
.eh-cat-card[hidden] { display: none; }
.eh-cat-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.eh-badge { flex: none; padding: 3px 10px; border: 1px solid var(--gold); font-weight: 500; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-text); }
.eh-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.eh-tags span { padding: 4px 10px; border: 1px solid var(--rule-soft); font-size: 12px; color: var(--text-2); }
.eh-empty { margin-top: 40px; color: var(--text-2); }

/* Tablette et téléphone */
@media (max-width: 1239px) {
  .eh-nav, .eh-tools { display: none; }
  .eh-burger { display: flex; }
}
@media (max-width: 1099px) {
  .eh-verbs { grid-template-columns: repeat(2, 1fr); }
  .eh-card { min-height: 0; }
  .eh-join-r { border-left: 0; padding-left: 0; border-top: 1px solid var(--rule); padding-top: 36px; }
}
@media (max-width: 599px) {
  .eh { --pad: 20px; }
  .eh-head-in { min-height: 56px; }
  .eh-brand img { width: 124px; }
  .eh-brand { gap: 12px; }
  .eh-verbs { grid-template-columns: 1fr; }
  .eh-frame { padding: 10px; }
  .eh-row .eh-num { flex-basis: 100%; }
  .eh-actions { flex-direction: column; align-items: stretch; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .eh, .eh * { transition: none !important; } .eh-hide { opacity: 1; transform: none; } }

/* Logo officiel dans l'espace étudiants */
.eh-brandmark { display: inline-flex; align-items: center; gap: 14px; }
.eh-brandmark img { width: 132px; height: auto; display: block; }
.eh-brandmark .eh-brand-sep { width: 1px; height: 18px; background: #8a6420; }
.eh-brandmark .eh-brand-sfx { font: 500 10.5px 'Jost', sans-serif; letter-spacing: .32em; text-transform: uppercase; color: #c9973a; white-space: nowrap; }
.esp .eh-logo-j { display: none; }
.esp[data-mode="jour"] .eh-logo-n { display: none; } .esp[data-mode="jour"] .eh-logo-j { display: block; }
.esp[data-mode="jour"] .eh-brandmark .eh-brand-sfx { color: #8a6420; } .esp[data-mode="jour"] .eh-brandmark .eh-brand-sep { background: #c9973a; }
.esp-login-brand .eh-brandmark .eh-brand-sfx { color: #c9973a !important; }
@media (max-width: 599px) { .eh-brandmark img { width: 112px; } .eh-brandmark { gap: 10px; } }

.eh-verb-img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; margin: 0 0 28px; border: 1px solid var(--rule-soft); }
.eh-verb-img.eh-slot { padding: 12px; gap: 10px; }

/* Administration : page de vente */
.form-sub { margin: 34px 0 12px; font-size: 1.35rem; color: var(--gold); }
.sale-fmt { border: 1px solid var(--line-strong); border-radius: 6px; padding: 14px 18px 6px; margin: 0 0 16px; }
.sale-fmt legend { padding: 0 8px; font-family: var(--serif); font-size: 1.25rem; color: var(--gold); }

/* ==================== Page de vente (design v3) ==================== */
.es-hero { padding-top: clamp(72px, 8cqw, 120px); }
.es-hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px clamp(48px, 6cqw, 96px); align-items: end; }
.es-hook { margin: 24px 0 0; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: clamp(22px, 2cqw, 28px); line-height: 1.35; color: var(--gold-text); max-width: 30ch; }
.es-text { margin: 22px 0 0; font-size: 17px; line-height: 1.75; color: var(--text-2); max-width: 52ch; }
.es-left { justify-content: flex-start; margin-top: 40px; }
.es-stats { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid var(--rule); }
.es-stats div { padding: 22px 0 22px; border-bottom: 1px solid var(--rule-soft); }
.es-stats div:nth-child(odd) { padding-right: 24px; border-right: 1px solid var(--rule-soft); }
.es-stats div:nth-child(even) { padding-left: 24px; }
.es-stats dt { font-weight: 500; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--gold-text); }
.es-stats dd { margin: 10px 0 0; font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 30px; line-height: 1.15; color: var(--ink); }
.es-hero .eh-frame { margin-top: clamp(56px, 6cqw, 88px); }
.es-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: 40px clamp(48px, 6cqw, 96px); align-items: start; }
.es-note { margin: 22px 0 0; font-size: 15.5px; line-height: 1.7; color: var(--text-2); max-width: 38ch; }
.es-quotes { border-top: 1px solid var(--rule); }
.es-quotes p { margin: 0; padding: 26px 0; border-bottom: 1px solid var(--rule-soft); font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: clamp(22px, 2cqw, 28px); line-height: 1.35; color: var(--ink); }
.es-ba { display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(32px, 5cqw, 80px); margin-top: 48px; border-top: 1px solid var(--rule); }
.es-ba > div { padding-top: 32px; }
.es-ba > div + div { border-left: 1px solid var(--rule-soft); padding-left: clamp(32px, 5cqw, 80px); }
.es-ba ul { list-style: none; margin: 20px 0 0; padding: 0; }
.es-ba li { padding: 12px 0; font-size: 16px; line-height: 1.6; color: var(--text-2); border-bottom: 1px solid var(--rule-soft); }
.es-ba .es-after li { font-family: 'Cormorant Garamond', serif; font-size: 22px; line-height: 1.35; color: var(--ink); }
.es-who { margin-top: 0; }
.es-who h3 { margin-top: 16px; font-size: clamp(26px, 2.4cqw, 34px); line-height: 1.15; }
.es-who li { padding-left: 22px; position: relative; }
.es-who li::before { content: ""; position: absolute; left: 0; top: 22px; width: 10px; height: 1px; background: var(--gold); }
.es-who .es-not li::before { width: 8px; opacity: .6; }
.es-prog { border-top: 1px solid var(--rule); }
.es-prog details { border-bottom: 1px solid var(--rule-soft); }
.es-prog summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 20px; padding: 24px 0; }
.es-prog summary::-webkit-details-marker { display: none; }
.es-prog summary::after { content: "+"; margin-left: 12px; color: var(--gold-text); font-size: 20px; }
.es-prog details[open] summary::after { content: "\2212"; }
.es-pt { flex: 1; font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 26px; line-height: 1.2; color: var(--ink); }
.es-pn { font-size: 13px; color: var(--text-2); white-space: nowrap; }
.es-prog ol { margin: 0 0 24px 58px; padding: 0; color: var(--text-2); }
.es-prog li { padding: 8px 0; font-size: 16px; line-height: 1.5; }
.es-prog li::marker { color: var(--gold-text); font-family: 'Cormorant Garamond', serif; }
.es-incl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 48px; margin-top: 56px; }
.es-incl > div { padding: 30px 0 34px; border-top: 1px solid var(--rule); }
.es-incl h3 { font-size: 24px; line-height: 1.2; }
.es-incl p { margin: 14px 0 0; font-size: 15.5px; line-height: 1.7; color: var(--text-2); }
.es-role { margin-top: 8px; font-size: 14px; color: var(--text-2); }
.es-faq { border-top: 1px solid var(--rule); }
.es-faq details { border-bottom: 1px solid var(--rule-soft); }
.es-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 20px; padding: 24px 0; font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 22px; line-height: 1.3; color: var(--ink); }
.es-faq summary::-webkit-details-marker { display: none; }
.es-faq summary::after { content: "+"; color: var(--gold-text); font-family: 'Jost', sans-serif; font-size: 20px; }
.es-faq details[open] summary::after { content: "\2212"; }
.es-faq details p { margin: 0 0 24px; font-size: 16px; line-height: 1.7; color: var(--text-2); max-width: 62ch; }
.es-fmts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 24px; margin-top: 56px; }
.es-fmt { min-height: 0; }
.es-fmt h3 { margin-top: 18px; }
.es-fmt > p { margin-top: 14px !important; }
.es-fmt-k { margin-top: 26px; font-weight: 500; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-text); }
.es-fmt ul { list-style: none; margin: 12px 0 0; padding: 0; }
.es-fmt li { padding: 8px 0 8px 18px; position: relative; font-size: 14.5px; line-height: 1.5; color: var(--text-2); border-bottom: 1px solid var(--rule-soft); }
.es-fmt li::before { content: ""; position: absolute; left: 0; top: 17px; width: 8px; height: 1px; background: var(--gold); }
.es-fmt-dl { margin: 24px 0 28px; }
.es-fmt-dl div { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--rule-soft); font-size: 14px; }
.es-fmt-dl dt { font-weight: 500; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--gold-text); padding-top: 3px; }
.es-fmt-dl dd { margin: 0; text-align: right; color: var(--text); }
.es-price { font-family: 'Cormorant Garamond', serif; font-size: 24px; color: var(--ink) !important; }
.es-fmt .eh-btn { margin-top: auto; }
.eh button.eh-btn { cursor: pointer; font-family: 'Jost', sans-serif; }
@media (max-width: 1099px) {
  .es-hero-grid, .es-two { grid-template-columns: 1fr; }
  .es-incl { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 599px) {
  .es-ba { grid-template-columns: 1fr; }
  .es-ba > div + div { border-left: 0; padding-left: 0; border-top: 1px solid var(--rule-soft); margin-top: 28px; }
  .es-incl { grid-template-columns: 1fr; }
  .es-prog ol { margin-left: 22px; }
  .es-stats dd { font-size: 24px; }
}

/* Texte mis en forme (guides) dans le site v3 */
.eh { --beige: var(--text); --beige-dim: var(--text-2); --line: var(--rule-soft); --line-strong: var(--rule); --gold-wash: var(--bg-alt); --gold-bright: var(--gold-text); --gold-deep: var(--gold-text); --field-bg: var(--surface); --surface-2: var(--surface); }
.eh .es-prose { max-width: none; color: var(--text-2); font-size: 16.5px; line-height: 1.8; }
.eh .es-prose h4.sub, .eh .es-prose h3 { font-family: 'Cormorant Garamond', serif; color: var(--ink); font-size: 28px; }
.eh .es-prose strong { color: var(--ink); }

/* Photo d'ambiance : affichée entière, jamais recadrée (les bannières contiennent souvent du texte) */
.es-photo img { height: auto; aspect-ratio: auto; object-fit: contain; }
.es-text strong { color: var(--ink); font-weight: 500; }

/* ==================== Pages publiques (guides, checklists, documentation), design v3 ==================== */
.eh { --paper: var(--surface); --paper-ink: var(--ink); --gold-title: var(--gold-text); }
.ep-sub { border-bottom: 1px solid var(--rule-soft); background: var(--bg-alt); }
.ep-sub-in { max-width: 1200px; margin: 0 auto; padding: clamp(48px, 6cqw, 88px) var(--pad) 0; }
.ep-title { display: inline-block; margin-top: 18px; font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: clamp(40px, 5cqw, 68px); line-height: 1.04; color: var(--ink) !important; }
.ep-subtitle { margin: 16px 0 0; font-size: 17px; line-height: 1.7; color: var(--text-2); max-width: 60ch; }
.ep-tabs { display: flex; gap: 4px 32px; margin-top: 40px; overflow-x: auto; scrollbar-width: thin; }
.ep-tabs a { flex: none; padding: 14px 0 16px; border-bottom: 1px solid transparent; font-weight: 500; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--ink) !important; white-space: nowrap; }
.ep-tabs a:hover { color: var(--gold) !important; }
.ep-tabs a[aria-current="page"] { color: var(--gold-text) !important; border-bottom-color: var(--gold); }
.ep-in { max-width: 860px; margin: 0 auto; padding: clamp(56px, 6cqw, 96px) var(--pad) clamp(80px, 9cqw, 140px); }
.ep .preview-bar { max-width: 1200px; margin: 0 auto; }
.ep .hero { margin: 0 0 44px; }
.ep .hero h1 { margin: 0 0 22px; font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: clamp(36px, 4.4cqw, 58px); line-height: 1.06; color: var(--ink); text-wrap: balance; }
.ep .lede { font-size: 18px; line-height: 1.75; color: var(--text-2); max-width: 60ch; white-space: normal; }
.ep .lede strong { color: var(--ink); font-weight: 500; }
.ep .banner { margin: 0 0 48px; border: 1px solid var(--rule); padding: 14px; }
.ep .banner img { border-radius: 0; }
.ep .prose, .ep .acc-body { color: var(--text-2); font-size: 16.5px; line-height: 1.8; }
.ep .prose h4.sub, .ep .prose h3, .ep .prose h2 { font-family: 'Cormorant Garamond', serif; font-weight: 500; color: var(--ink); }
.ep .prose h4.sub { font-size: 28px; margin: 1.8em 0 .5em; }
.ep .prose strong { color: var(--ink); font-weight: 500; }
.ep .prose a:not(.link-card) { color: var(--gold-text); text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(201,151,58, .5); }
.ep .prose li::marker { color: var(--gold-text); }
.ep .prose table { border-collapse: collapse; width: 100%; }
.ep .prose th, .ep .prose td { border-bottom: 1px solid var(--rule-soft) !important; padding: 10px 12px; text-align: left; background: transparent !important; color: var(--text-2) !important; }
.ep .prose th { color: var(--gold-text) !important; font-weight: 500; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.ep .box { background: var(--surface); border: 1px solid var(--rule-soft); border-radius: 0; padding: 22px 26px 12px; }
.ep .box.good { border-color: var(--gold); border-top-width: 2px; }
.ep .stat-chip { background: var(--surface); border: 1px solid var(--rule-soft); border-radius: 0; }
.ep .stat-chip .n { color: var(--gold-text); font-weight: 500; }
.ep .fold { background: var(--surface); border: 1px solid var(--rule-soft); border-radius: 0; }
.ep .fold > summary { font-family: 'Cormorant Garamond', serif; font-size: 20px; color: var(--ink); }
.ep .link-card { display: inline-flex; align-items: center; min-height: 48px; padding: 0 28px; border-radius: 0; background: var(--btn-bg); color: var(--btn-fg) !important; font-weight: 500; font-size: 14px; letter-spacing: .04em; text-decoration: none; }
.ep .link-card:hover { background: var(--btn-hover); color: var(--btn-fg) !important; }
.ep .cta { margin: 0 0 56px; }
.ep .cta.end { margin: 48px 0 0; }
.ep .toc { background: transparent; border: 0; border-top: 1px solid var(--rule); border-radius: 0; padding: 24px 0 8px; margin: 0 0 28px; }
.ep .toc-title, .ep .toc-label { font-family: 'Jost', sans-serif; font-style: normal; font-weight: 500; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--gold-text); }
.ep .toc-link, .ep .toc-item { color: var(--text) !important; background: none; border: 0; font-family: 'Cormorant Garamond', serif; font-size: 19px; padding: 6px 0; cursor: pointer; text-align: left; }
.ep .toc-link:hover, .ep .toc-item:hover { color: var(--gold) !important; }
.ep .acc-tools button { color: var(--gold-text); }
.ep .acc-list { border-top: 1px solid var(--rule); }
.ep details.guide-section { border-bottom: 1px solid var(--rule-soft); }
.ep details.guide-section > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 26px 0; }
.ep details.guide-section > summary::-webkit-details-marker { display: none; }
.ep details.guide-section > summary h2 { margin: 0; font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: clamp(24px, 2.4cqw, 30px); line-height: 1.2; color: var(--ink); }
.ep details.guide-section > summary::after { content: "+"; color: var(--gold-text); font-size: 22px; line-height: 1; }
.ep details.guide-section[open] > summary::after { content: "\2212"; }
.ep .acc-body { padding: 0 0 36px; }
.ep .offers { gap: 24px; margin: 0 0 56px; }
.ep .offer { background: var(--surface); color: var(--text); border: 1px solid var(--rule-soft); border-top: 2px solid var(--gold); border-radius: 0; }
.ep .offer h3 { color: var(--ink); font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 30px; }
.ep .offer .price { font-family: 'Cormorant Garamond', serif; font-size: 30px; color: var(--gold-text); }
.ep .offer li { color: var(--text-2); }
.ep .locked { background: var(--surface); color: var(--text); border: 1px solid var(--gold); border-radius: 0; padding: 34px 36px; }
.ep .locked h2 { font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 30px; color: var(--ink); }
.ep .locked a:not(.link-card) { color: var(--gold-text); }
.ep .further { background: var(--surface); border: 1px solid var(--rule-soft); border-top: 2px solid var(--gold); border-radius: 0; color: var(--text-2); }
.ep .further h2 { color: var(--gold-text); }
.ep .progress-box, .ep .owner-note { background: var(--surface); border: 1px solid var(--rule-soft); border-left: 2px solid var(--gold); border-radius: 0; color: var(--text-2); }
.ep .owner-note a { color: var(--gold-text); }
.ep .quiz { background: var(--surface); border: 1px solid var(--rule-soft); border-top: 2px solid var(--gold); border-radius: 0; color: var(--text); }
.ep .quiz-title { color: var(--gold-text); }
.ep .quiz-help, .ep .quiz-opt { color: var(--text-2); }
.ep .quiz legend { color: var(--ink); }
.ep .signup { background: var(--surface); border: 1px solid var(--gold); border-radius: 0; color: var(--text); }
.ep .signup input[type=email] { background: var(--bg); color: var(--text); border: 1px solid var(--rule); border-radius: 0; }
.ep .signup .btn-primary { background: var(--btn-bg); color: var(--btn-fg); border-radius: 0; border: 0; }
.ep .essor-meaning { background: var(--bg-alt); border: 0; border-top: 1px solid var(--rule); border-radius: 0; color: var(--text-2); margin-top: 64px; }
.ep .essor-meaning h2 { font-family: 'Cormorant Garamond', serif; font-weight: 500; color: var(--ink); }
.ep .essor-meaning .essor-slogan, .ep .essor-signature { color: var(--gold-text); }
.ep .citation, .ep figure.citation { border-radius: 0; }
.ep .edit-chapter { border: 1px solid var(--gold); background: transparent; color: var(--gold-text); border-radius: 0; padding: 8px 14px; cursor: pointer; }
.ep-contact { margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--rule-soft); color: var(--text-2); }
.ep-contact a { color: var(--gold-text); }
.ep-also { margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--rule); }
.ep-also-links { display: flex; flex-wrap: wrap; gap: 12px 28px; margin-top: 14px; }
.ep-also-links a { font-family: 'Cormorant Garamond', serif; font-size: 22px; color: var(--ink) !important; }
.ep-also-links a:hover { color: var(--gold) !important; }
@media (max-width: 599px) { .ep .toc ul { columns: 1; } .ep .locked { padding: 26px 22px; } }
.ep .toc { display: block; }
.ep .toc-label, .ep .toc-title { display: block; margin: 0 0 12px; }
.ep .toc-items { display: flex; flex-wrap: wrap; gap: 4px 26px; }
.ep .toc ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 40px; }
.ep .toc li { break-inside: avoid; }
.ep .toc-link.is-done { color: var(--gold-text) !important; }
.ep .toc-link.is-locked { opacity: .55; }

/* Réseaux sociaux (pied de page) */
.eh-socials { width: 100%; display: flex; gap: 10px; justify-content: flex-end; margin-top: -8px; }
.eh-social { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--rule-soft); color: var(--gold-text) !important; transition: border-color .25s, background .25s; }
.eh-social:hover { border-color: var(--gold); background: var(--sec-hover); }
@media (max-width: 599px) { .eh-socials { justify-content: flex-start; margin-top: 0; } }

/* Flèches haut / bas */
.eh-jump { position: fixed; right: 24px; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); z-index: 30; display: flex; flex-direction: column; gap: 8px; }
.eh-jump-btn { width: 44px; height: 44px; display: none; align-items: center; justify-content: center; background: var(--bg); color: var(--gold-text); border: 1px solid var(--gold); cursor: pointer; transition: background .25s; }
.eh-jump-btn:hover { background: var(--sec-hover); }
.eh-jump.show-up .up, .eh-jump.show-down .down { display: inline-flex; }
.eh-help ~ .eh-jump, .eh:has(.eh-help) .eh-jump { right: 92px; }

/* Bulle d'aide (accueil) */
.eh-help { position: fixed; right: 24px; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); z-index: 35; display: flex; flex-direction: column; align-items: flex-end; gap: 14px; }
.eh-help-bubble { width: 56px; height: 56px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--btn-bg); color: var(--btn-fg); border: 1px solid var(--btn-bg); cursor: pointer; box-shadow: 0 6px 24px rgba(0, 0, 0, .28); transition: transform .25s; }
.eh-help-bubble:hover { transform: translateY(-2px); }
.eh-help.open .eh-help-bubble { background: var(--bg); color: var(--gold-text); border-color: var(--gold); }
.eh-help-panel { width: min(360px, calc(100vw - 32px)); background: var(--bg); border: 1px solid var(--gold); border-top-width: 2px; box-shadow: 0 18px 50px rgba(0, 0, 0, .35); padding: 22px 22px 20px; }
.eh-help-head { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: start; }
.eh-help-head img { margin-top: 6px; }
.eh-help-title { font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 22px; line-height: 1.2; color: var(--ink); }
.eh-help-head p { margin: 8px 0 0; font-size: 14px; line-height: 1.6; color: var(--text-2); }
.eh-help-x { background: none; border: 0; color: var(--text-2); font-size: 24px; line-height: 1; cursor: pointer; padding: 0 2px; }
.eh-help-choices { margin-top: 18px; border-top: 1px solid var(--rule-soft); }
.eh-help-choices a { display: flex; justify-content: space-between; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--rule-soft); font-size: 15px; color: var(--ink) !important; }
.eh-help-choices a span { color: var(--gold-text); }
.eh-help-choices a:hover { color: var(--gold) !important; }
.eh-help-form { margin-top: 16px; display: grid; gap: 10px; }
.eh-help-form textarea { width: 100%; resize: vertical; min-height: 76px; padding: 12px 14px; background: var(--surface); color: var(--text); border: 1px solid var(--rule); font: 15px/1.5 'Jost', sans-serif; }
.eh-help-form textarea:focus { outline: 0; border-color: var(--gold); }
.eh-help-form .eh-btn { justify-content: center; }
@media (max-width: 599px) { .eh-help { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); } .eh-jump { right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); } .eh:has(.eh-help) .eh-jump { right: 84px; } }

/* Photo des cartes « Nos offres » */
.eh-card-img { display: block; width: calc(100% + 64px); max-width: none; margin: -40px -32px 28px; aspect-ratio: 4 / 3; object-fit: cover; border-bottom: 1px solid var(--rule-soft); }

/* Packs : prix séparé et économie */
.es-was { text-decoration: line-through; text-decoration-color: var(--gold); opacity: .75; }
.es-save dd { color: var(--gold-text); font-weight: 500; }
.es-read { margin: 0 0 24px 58px; }
@media (max-width: 599px) { .es-read { margin-left: 22px; } }
.eh:has(.eh-help.open) .eh-jump { display: none; }

/* ---------- Blog (version 38, maquettes Design) ---------- */
.bl{--rc:var(--gold)}
.bl-wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.bl-narrow{max-width:860px}
.bl-script{font-family:'Allura',cursive;font-size:clamp(34px,4vw,46px);color:var(--gold);line-height:1}
.bl-hero{padding:clamp(48px,8vw,104px) 0 clamp(28px,4vw,44px)}
.bl-hero h1,.bl-rhero h1,.bl-ahead h1,.bl-h1{font-family:'Cormorant Garamond',serif;font-weight:500;line-height:1.04;letter-spacing:-.01em;color:var(--ink);text-wrap:balance;margin:10px 0 0}
.bl-hero h1{font-size:clamp(40px,6.2vw,80px);max-width:15ch}
.bl-hero p{margin:22px 0 0;font-weight:300;font-size:clamp(16px,1.5vw,19px);line-height:1.7;color:var(--text-2);max-width:56ch}
.bl-rubnav{position:sticky;top:var(--hdr,64px);z-index:10;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft)}
.bl-rubnav-in{max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,48px);display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.bl-rubnav-in::-webkit-scrollbar{display:none}
.bl-rubnav a{flex:none;padding:16px 12px 14px;font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)!important;border-bottom:2px solid transparent;white-space:nowrap}
.bl-rubnav a.on,.bl-rubnav a:hover{color:var(--ink)!important;border-bottom-color:var(--rc)}
.bl-sec{padding:clamp(36px,5vw,64px) 0}
.bl-kick{font-weight:500;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-text);margin:0 0 18px}
.bl-sechead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;border-top:2px solid var(--rc);padding-top:18px;margin-bottom:8px}
.bl-sechead h2{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(28px,3vw,38px);margin:0;color:var(--ink)}
.bl-sechead p{margin:6px 0 0;color:var(--text-2);font-size:15px}
.bl-sechead a{flex:none;font-size:13px;letter-spacing:.06em;color:var(--gold-text)}
.bl-row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,40px);align-items:center;padding:26px 0;border-bottom:1px solid var(--rule-soft);color:inherit!important}
.bl-big{grid-template-columns:minmax(0,7fr) minmax(0,5fr);padding-top:0}
.bl-pic{aspect-ratio:16/9;overflow:hidden;position:relative;background:#0a1322}
.bl-pic img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.bl-row:hover .bl-pic img{transform:scale(1.03)}
.bl-txt h3{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(24px,2.4vw,32px);line-height:1.12;margin:10px 0 10px;color:var(--ink)}
.bl-big .bl-txt h3{font-size:clamp(30px,3.4vw,46px)}
.bl-txt p{margin:0;font-size:16px;line-height:1.65;color:var(--text-2)}
.bl-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.bl-meta span:first-child{font-weight:500}
.bl-more{display:inline-flex;gap:8px;margin-top:16px;font-size:13px;letter-spacing:.06em;color:var(--gold-text)}
.bl-empty{color:var(--text-2)}
/* visuels de rubrique */
.bv{position:absolute;inset:0;overflow:hidden;container-type:size}
.bv i{position:absolute;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:1px solid;display:block}
.bv b{position:absolute;display:block;pointer-events:none}
.bv-glow{inset:0;background:radial-gradient(circle at 72% 48%,rgba(201,151,58,.18) 0%,transparent 55%)}
.bv-line{left:0;right:0;bottom:22%;height:1px;background:linear-gradient(90deg,transparent,rgba(201,151,58,.35) 30%,transparent)}
.bv-f1{inset:5%;border:1px solid rgba(201,151,58,.42)}
.bv-f2{inset:calc(5% + 5px);border:1px solid rgba(201,151,58,.14)}
.bv-lab{position:absolute;left:calc(5% + 18px);top:calc(5% + 14px);display:flex;align-items:center;gap:10px;font-size:max(10px,3.2cqmin);letter-spacing:.24em;text-transform:uppercase;color:#e8c57f}
.bv-lab em{width:26px;height:1px;background:#c9973a}
/* page rubrique */
.bl-rhero{position:relative;min-height:clamp(320px,38vw,460px);display:flex;align-items:flex-end;overflow:hidden}
.bl-rhero-veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,10,8,.8) 0%,rgba(11,10,8,.35) 60%,rgba(11,10,8,0) 100%)}
.bl-rhero-in{position:relative;width:100%;padding-top:clamp(40px,6vw,72px);padding-bottom:clamp(40px,6vw,72px);color:#eceef2}
.bl-rhero h1{color:#eceef2;font-size:clamp(44px,7vw,88px)}
.bl-rhero p{margin:18px 0 0;max-width:52ch;color:#eceef2;font-weight:300;font-size:clamp(16px,1.5vw,19px);line-height:1.65}
.bl-rhero .bl-script{color:#e8c57f;margin-top:20px}
.bl-crumb{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-2)}
.bl-rhero .bl-crumb,.bl-rhero .bl-crumb a{color:#e8c57f}
.bl-count{margin-top:20px;display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#e8c57f}
.bl-count em{width:36px;height:1px;background:#c9973a}
.bl-others{margin-top:40px;display:flex;flex-wrap:wrap;gap:10px 22px;align-items:baseline}
.bl-others .bl-kick{width:100%;margin:0}
.bl-others a{font-family:'Cormorant Garamond',serif;font-size:24px;color:var(--ink);border-bottom:2px solid var(--rc);padding-bottom:2px}
/* article */
.bl-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:60;pointer-events:none}
.bl-progress i{display:block;height:100%;width:0;background:var(--gold)}
.bl-ahead{padding:clamp(40px,6vw,80px) 0 28px}
.bl-ahead h1{font-size:clamp(36px,5.2vw,64px);margin:16px 0 0}
.bl-lede{margin:20px 0 22px;font-size:clamp(17px,1.6vw,20px);line-height:1.65;font-weight:300;color:var(--text-2);max-width:60ch}
.bl-draft{color:var(--gold-text);font-weight:500}
.bl-cover{position:relative;aspect-ratio:21/9;margin:0 0 clamp(32px,4vw,56px);overflow:hidden;background:#0a1322}
.bl-cover img{width:100%;height:100%;object-fit:cover}
.bl-agrid{display:grid;grid-template-columns:240px minmax(0,720px);gap:clamp(32px,5vw,72px);justify-content:center;align-items:start}
.bl-side{position:sticky;top:calc(var(--hdr,64px) + 24px);display:flex;flex-direction:column;gap:22px}
.bl-toc summary{list-style:none;cursor:pointer;font-weight:500;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-text);margin-bottom:12px}
.bl-toc summary::-webkit-details-marker{display:none}
.bl-toc ol{list-style:none;margin:0;padding:0;counter-reset:t;display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--rule-soft)}
.bl-toc li{counter-increment:t}
.bl-toc a{display:block;padding:6px 0 6px 14px;margin-left:-1px;border-left:2px solid transparent;font-size:14px;line-height:1.4;color:var(--text-2)!important}
.bl-toc a::before{content:counter(t,decimal-leading-zero) '  ';color:var(--gold-text);font-size:12px}
.bl-toc a.on,.bl-toc a:hover{color:var(--ink)!important;border-left-color:var(--rc)}
.bl-main{min-width:0}
.bl-ess{border-top:3px solid var(--rc);background:var(--bg-alt);padding:20px 24px;margin:0 0 34px}
.bl-ess ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:16px;line-height:1.55}
.bl-ess li::marker{color:var(--gold-text);font-weight:500}
.bl-warn{border-top:3px solid var(--rc);background:var(--bg-alt);padding:14px 18px;margin:0 0 28px;font-size:14.5px;line-height:1.6}
.bl-prose{font-size:18px;line-height:1.8;counter-reset:h}
.bl-prose p,.bl-prose li{font-size:18px}
.bl-prose h4.sub{font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(26px,2.6vw,34px);line-height:1.15;letter-spacing:0;text-transform:none;color:var(--ink);margin:46px 0 14px;padding-top:16px;border-top:1px solid var(--rule-soft);scroll-margin-top:100px}
.bl-prose h4.sub::before{content:attr(data-n);display:block;font-family:'Jost',sans-serif;font-size:12px;letter-spacing:.24em;color:var(--rc);margin-bottom:6px}
.bl-prose .box,.bl-prose blockquote{border-left:0;border-top:3px solid var(--gold);background:var(--bg-alt)}
.bl-src{font-size:13px;color:var(--text-2);margin:28px 0 0}
.bl-cta{margin:42px 0 8px;padding:28px;border:1px solid var(--rule-soft);text-align:center}
.bl-cta .eh-btn{white-space:normal;text-align:center;max-width:100%}
.bl-share{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;font-size:13px;letter-spacing:.06em}
.bl-share span{font-weight:500;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-text);width:100%}
.bl-main .bl-share{margin:36px 0 0;padding-top:20px;border-top:1px solid var(--rule-soft)}
.bl-main .bl-share span{width:auto}
.bl-next{border-top:1px solid var(--rule-soft)}
@media (max-width:999px){
  .bl-agrid{grid-template-columns:minmax(0,1fr)}
  .bl-side{position:static;border:1px solid var(--rule-soft);padding:14px 16px}
  .bl-side .bl-share{display:none}
  .bl-toc summary{margin:0}.bl-toc[open] summary{margin-bottom:12px}
  .bl-cover{aspect-ratio:16/9}
}
@media (max-width:720px){
  .bl-row,.bl-big{grid-template-columns:minmax(0,1fr);gap:16px}
  .bl-sechead{flex-direction:column;align-items:flex-start;gap:8px}
  .bl-prose,.bl-prose p,.bl-prose li{font-size:17px}
}

/* ---------- Revue esthétique (version 38, constats de Design) ---------- */
.eh { overflow-x: clip; --hdr: 65px; }
@media (max-width: 599px) { .eh { --hdr: 57px; } }
/* En-tête : tient à 1280 px avec le lien Blog (Auto n'est plus coupé) */
.eh-nav { gap: clamp(16px, 1.6vw, 36px); }
.eh-nav a { letter-spacing: .14em; }
.eh-tools { gap: 16px; }
.eh-brand img { width: 140px; }
@media (max-width: 599px) { .eh-brand img { width: 124px; } }
/* Accueil */
.eh-slogan-under { margin: 14px 0 0; }
.eh-soon { margin: 22px 0 0; font-size: 14px; color: var(--text-2); }
.eh-soon span { font-weight: 500; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-text); margin-right: 8px; }
.eh-card { min-height: 0; }
/* Catalogue : visuel de catégorie en tête de carte */
.eh-cat-card { padding-top: 0; overflow: hidden; }
.eh-cat-pic { position: relative; aspect-ratio: 16 / 9; margin: 0 -32px 24px; overflow: hidden; background: #0a1322; }
.eh-cat-pic img { width: 100%; height: 100%; object-fit: cover; }
/* Téléphone : moins de défilement à vide, bulle d'aide et flèches ne se chevauchent plus */
@media (max-width: 599px) {
  .eh-sec { padding-top: 72px; padding-bottom: 72px; }
  .eh-big { padding-top: 80px; padding-bottom: 80px; }
  .eh:has(.eh-help) .eh-jump { display: none; }
}
/* Pages de vente : mentions de prix lisibles, sommaire en deux colonnes sur ordinateur */
.price-eur, .offer .price-note, .shell.public .offer .price-note { opacity: 1; font-size: max(13px, .9rem); color: #e9ecf1; }
.eh[data-mode="jour"] .price-eur, .eh[data-mode="jour"] .offer .price-note { color: #0e1a2b; }
@media (min-width: 900px) { .toc-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; } .toc-item { white-space: normal; text-align: left; border-radius: 0; border: 0; border-bottom: 1px solid rgba(201,151,58,.35); background: transparent; color: inherit; } }
/* Guides et ressources : colonne de lecture centrée, encadrés à filet or en haut, temps de lecture des chapitres */
.ep-in .prose, .ep-in .acc-list, .ep-in .acc-tools { max-width: 720px; margin-left: auto; margin-right: auto; }
.progress-box, .owner-note, .espace-note { border-left: 1px solid rgba(201,151,58,.35); border-top: 2px solid #c9973a; border-radius: 0; }
.acc > summary { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
.acc-min { flex: none; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--gold-deep, #8a6420); }
/* Espace étudiants : même sélecteur Nuit / Jour / Auto que le site, cartes noires à filet or, boutons du site */
.esp { --surface: #0a1322; --surface-2: #0a1322; --e-card: #0a1322; --gold-wash: #0a1322; }
.esp-seg { border: 0; border-left: 1px solid var(--line); border-radius: 0; padding: 0 0 0 10px; }
.esp-seg-btn { border-radius: 0; background: transparent !important; color: var(--e-muted) !important; border-bottom: 1px solid transparent; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; padding: 0 6px; }
.esp-seg-btn svg { display: none; }
.esp-seg-btn[aria-pressed="true"] { color: var(--e-title, #c9973a) !important; border-bottom-color: var(--e-title, #c9973a); }
.esp .btn, .esp button.btn, .espace .btn { border-radius: 0; }
/* Vidéos Vimeo dans les leçons */
.vimeo-box { position: relative; aspect-ratio: 16 / 9; background: #0a1322; }
.vimeo-box iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* En-tête : réglage fin pour que le menu complet, lien Blog compris, tienne à 1 280 px */
@media (min-width: 1240px) and (max-width: 1399px) {
  .eh-head-in { gap: 18px; padding-left: 28px; padding-right: 28px; }
  .eh-nav { gap: 20px; }
  .eh-nav a { letter-spacing: .12em; font-size: 11.5px; }
  .eh-tools { gap: 12px; }
  .eh-brand img { width: 132px; }
  .eh-brand { gap: 12px; }
}
/* Ressources de la formation (version 41) */
.res-block{margin:14px 0;padding-top:12px;border-top:1px solid var(--line, rgba(201,151,58,.3))}
.res-list{list-style:none;margin:8px 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}
.res-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.res-list li>span:last-child{display:flex;gap:6px}
/* Progression de la réception d'une formation (version 43) */
.rc-prog{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:300;background:#0a1322;color:#fbf7ee;border:1px solid #c9973a;border-radius:10px;padding:12px 16px;width:min(420px,92vw);box-shadow:0 10px 30px rgba(0,0,0,.4)}
.rc-prog p{margin:0 0 8px;font-size:14px}
.rc-bar{height:6px;border-radius:99px;background:rgba(201,151,58,.25);overflow:hidden}.rc-bar i{display:block;height:100%;width:0;background:#c9973a;transition:width .3s}
/* Exercice de frappe (version 43) */
.frappe{border:1px solid rgba(201,151,58,.45);border-top:3px solid #c9973a;border-radius:10px;padding:16px;margin:18px 0;background:rgba(201,151,58,.05)}
.fr-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}.fr-goal{font-size:13px;opacity:.8}
.fr-note{font-size:13px;opacity:.85;margin:6px 0}
.fr-text{font-family:'DejaVu Sans Mono',Consolas,monospace;font-size:19px;line-height:1.7;margin:12px 0;word-break:break-word}
.fr-text span.ok{color:#2E7D5B}.fr-text span.ko{background:rgba(201,151,58,.35);text-decoration:underline}.fr-text span.cur{border-bottom:3px solid #c9973a}
.fr-in{width:100%;box-sizing:border-box;font:inherit;font-size:17px;padding:10px 12px;border-radius:8px;border:1px solid rgba(201,151,58,.5);background:transparent;color:inherit;resize:none}
.fr-hint{font-size:14px;margin:8px 0;min-height:1.4em}
.fr-kb{display:flex;flex-direction:column;gap:4px;align-items:center;margin:8px 0;user-select:none}
.fr-row{display:flex;gap:4px}.fr-row.r1{margin-left:22px}.fr-row.r2{margin-left:34px}.fr-row.r3{margin-left:10px}
.fr-key{min-width:34px;height:34px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:11px;line-height:1.05;border-radius:6px;border:1px solid rgba(0,0,0,.15);opacity:.85}
.fr-key.f0,.fr-key.f7{background:#e9ecf1}.fr-key.f1,.fr-key.f6{background:#D8E3EF}.fr-key.f2,.fr-key.f5{background:#DCEBDF}.fr-key.f3,.fr-key.f4{background:#f7efdf}
.fr-key{color:#0e1a2b}.fr-key.on{outline:3px solid #c9973a;transform:translateY(-2px);opacity:1;font-weight:700}
.fr-space{min-width:240px;background:#e9ecf1}
.fr-stats{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:14px;margin-top:6px}.fr-acc.low{font-weight:700}
.fr-again{margin-left:auto;border:1px solid #c9973a;background:transparent;color:inherit;border-radius:99px;padding:6px 14px;cursor:pointer}
.fr-msg{font-size:14px;font-weight:500;min-height:1.4em}
@media (max-width:600px){.fr-kb{display:none}}
/* Cartes de prix (version 44) : même hauteur, prix et bouton alignés, avantages repliables */
.es-fmt{display:flex;flex-direction:column}
.es-fmt .es-fmt-dl{margin-top:auto}
.es-feats .es-extra{display:none}
.es-fmt.open .es-feats .es-extra{display:list-item}
.es-more{align-self:flex-start;background:none;border:0;padding:4px 0 12px;color:var(--gold-text, #8a6420);font:inherit;font-size:13px;letter-spacing:.06em;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.es-more .es-more-c{display:none}.es-fmt.open .es-more .es-more-o{display:none}.es-fmt.open .es-more .es-more-c{display:inline}
/* Sommaire des chapitres d'un guide : jamais collé en haut (version 44) */
.toc:has(> ul), .toc:has(.toc-title){position:static;top:auto;z-index:auto;display:block;padding:20px 26px 14px;margin:0 0 16px;border:1px solid var(--line);border-radius:6px}
@media (max-width:700px){.toc ul{columns:1 !important;column-count:1 !important}}
.sales-import{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 16px}
.es-fmt .es-fmt-dl ~ *{margin-top:18px !important}
/* Version 45 : exercice de frappe adapté à la largeur, mots non coupés */
.frappe{container-type:inline-size}
.fr-text .fr-w{white-space:nowrap}.fr-text .sp{white-space:normal}
.fr-text .sp.cur{border-bottom:3px solid #c9973a}.fr-text .sp.ko{background:rgba(201,151,58,.35)}
.fr-row{gap:min(4px,0.7cqw)}
.fr-key{min-width:min(34px,6.2cqw);height:min(34px,6.2cqw);font-size:min(11px,2.3cqw);border-radius:min(6px,1cqw)}
.fr-row.r1{margin-left:min(22px,4cqw)}.fr-row.r2{margin-left:min(34px,6cqw)}.fr-row.r3{margin-left:min(10px,2cqw)}
.fr-space{min-width:min(240px,44cqw)}
.fr-kb{max-width:100%;overflow:hidden}
/* Sommaire long : 10 premiers chapitres, puis « Voir tout » */
.toc.toc-long:not(.open) li:nth-child(n+11){display:none}
.toc-more{background:none;border:0;padding:8px 0 0;color:var(--gold-text,#8a6420);font:inherit;font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.toc-more .c{display:none}.toc.open .toc-more .o{display:none}.toc.open .toc-more .c{display:inline}
/* Formulaire : champs prénom, WhatsApp et e-mail identiques ; case de consentement clairement vide */
.ep .signup input[type=text],.ep .signup input[type=tel],.ep .signup input[type=email],.signup input[type=text],.signup input[type=tel]{background:var(--bg,#fff);color:var(--text,#0e1a2b);border:1px solid var(--rule,#c9973a);border-radius:0;opacity:1}
.signup input[type=checkbox]{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:2px solid #c9973a;background:#fff;border-radius:2px;flex:none;cursor:pointer;vertical-align:middle;position:relative}
.signup input[type=checkbox]:checked{background:#c9973a}
.signup input[type=checkbox]:checked::after{content:"";position:absolute;left:4px;top:0;width:5px;height:10px;border:solid #0a1322;border-width:0 2px 2px 0;transform:rotate(45deg)}
/* Page de tunnel : contenu resserré */
.ep-tunnel .ep-in{padding-top:clamp(24px,4vw,48px)}
/* Case de texte toujours visible sous les boutons d'images */
.field textarea{display:block;width:100%;min-height:140px;border:1px solid var(--line,rgba(201,151,58,.45));background:var(--field-bg,#fff);color:var(--beige)}
/* Cartes de prix : prix aligné (la ligne « Modalités » réserve sa hauteur) */
.es-fmt .es-note{min-height:6.6em}
/* Version 47 : cartes d'offres sur une ligne, même hauteur, liste repliable */
.offers{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
@media (min-width:900px){.offers:has(> .offer:nth-child(3):last-child){grid-template-columns:repeat(3,1fr)}}
.ep .offer{padding:26px 22px 22px}
.offer-long:not(.open) ul li:nth-child(n+6){display:none}
.offer-more{align-self:flex-start;margin-top:auto;padding-top:10px;background:none;border:0;color:#8a6420;font:inherit;font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.offer-more .c{display:none}.offer.open .offer-more .o{display:none}.offer.open .offer-more .c{display:inline}
/* Images des leçons : jamais étirées au-delà de leur taille réelle, cadres harmonisés */
.prose figure img,.prose p > img,.esp-lesson figure img,.esp-lesson p > img{width:auto !important;max-width:100%;height:auto;display:block;margin:0 auto;border:1px solid rgba(201,151,58,.45);border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.08);background:#fff}
.prose figure,.esp-lesson figure{margin:18px auto;text-align:center}
.prose iframe,.esp-lesson iframe,.prose video,.esp-lesson video{border:1px solid rgba(201,151,58,.45);border-radius:4px}
/* Version 48 : rapport de contrôle */
.chk-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:999;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:5vh 16px}
.chk-in{background:var(--surface,#fff);color:var(--text,#0e1a2b);max-width:760px;width:100%;padding:26px 30px;border-top:3px solid #c9973a}
.chk-in h3{margin:18px 0 6px;font-size:16px}.chk-in ul{padding-left:20px}.chk-in li{margin:4px 0}
/* Version 48 : cadres d'images de même taille (largeur pleine, hauteur maximale commune, image centrée) */
.prose figure,.esp-lesson figure{width:100%;background:#fff;border:1px solid rgba(201,151,58,.45);border-radius:4px;padding:10px;box-sizing:border-box}
.prose figure img,.esp-lesson figure img{border:0 !important;box-shadow:none !important;max-height:520px;object-fit:contain}
/* Version 49 : rapport de contrôle lisible (fond clair, texte foncé) */
.chk-in{background:#f7f7f8 !important;color:#0e1a2b !important}.chk-in h2,.chk-in h3,.chk-in p,.chk-in li{color:#0e1a2b !important}.chk-in .muted{color:#4f5c70 !important}.chk-in a{color:#6e4f17 !important;text-decoration:underline}
/* Version 49 : chapitres et recherche dans l'espace étudiants */
.esp-search{width:100%;margin:6px 0 14px;padding:10px 12px;border:1px solid rgba(201,151,58,.55);border-radius:6px;background:var(--esp-bg,#fff);color:inherit;font:inherit}
.esp-chap{border-top:1px solid rgba(201,151,58,.35)}.esp-chap:first-child{border-top:0}
.esp-chap > summary{list-style:none;cursor:pointer;display:flex;gap:14px;align-items:baseline;padding:14px 4px}
.esp-chap > summary::-webkit-details-marker{display:none}
.esp-chap > summary::after{content:"+";margin-left:auto;color:#8a6420;font-size:20px;line-height:1}.esp-chap[open] > summary::after{content:"–"}
.esp-chap-n{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#8a6420;white-space:nowrap}
.esp-chap-t{display:flex;flex-direction:column;font-weight:500}.esp-chap-t small{font-weight:400;opacity:.75;margin-top:2px}
.esp-chap .esp-toc{margin:0 0 12px}
.adm-search{width:100%;max-width:520px;margin:4px 0 14px;padding:9px 12px;border:1px solid rgba(201,151,58,.55);border-radius:6px;background:transparent;color:inherit;font:inherit}
.esp-review .esp-explain{margin:6px 0 0;padding:8px 12px;border-left:3px solid #c9973a;background:rgba(201,151,58,.10);font-size:14px;line-height:1.5}
