@import url('https://fonts.googleapis.com/css2?family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Cormorant+SC:wght@400;500;600&display=swap');

.codex-editor {
    --codex-ink: #2a1f14;
    --codex-ink-light: #5a4a38;
    --codex-ink-faint: #9a876e;
    --codex-ink-veryfaint: #c4ad8a;
    --codex-parchment: #f5eed8;
    --codex-parchment-dark: #e8dfc0;
    --codex-parchment-mid: #ede3c8;
    --codex-parchment-aged: #efe6cc;
    --codex-accent: #7a3b1e;
    --codex-accent-light: #b85c2a;
    --codex-border: #c9b88a;
    --codex-border-light: #ddd0a8;

    background: var(--codex-parchment);
    color: var(--codex-ink);
    font-family: 'EB Garamond', Georgia, serif;
    font-size: 18px;
    line-height: 1.85;
    padding: 2rem 2rem 3rem;
    max-width: 780px;
    margin: 0 auto;
}

/* Reset local minimal */
.codex-editor *,
.codex-editor *::before,
.codex-editor *::after {
    box-sizing: border-box;
}

/* Paragraphes */
.codex-editor p {
    margin: 0 0 1rem;
    text-align: justify;
    hyphens: auto;
}

.codex-editor p + p {
    text-indent: 1.5em;
}

/* Liens */
.codex-editor a {
    color: var(--codex-accent);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.codex-editor a:hover {
    color: var(--codex-accent-light);
}

/* Listes */
.codex-editor ul,
.codex-editor ol {
    margin: 0 0 1.2rem 1.4rem;
    padding: 0;
}

.codex-editor li {
    margin-bottom: 0.35rem;
    line-height: 1.8;
}

/* Titres éditoriaux */
.codex-editor h2 {
    font-family: 'Cormorant SC', serif;
    font-size: 1.15rem;
    font-weight: 500;
    color: var(--codex-accent);
    letter-spacing: 0.12em;
    margin: 2.8rem 0 1rem;
    padding-bottom: 0.25rem;
    border-bottom: 0.5px solid var(--codex-border-light);
    line-height: 1.35;
}

.codex-editor h3 {
    font-family: 'Cormorant SC', serif;
    font-size: 1rem;
    font-weight: 500;
    color: var(--codex-ink-light);
    letter-spacing: 0.08em;
    margin: 2rem 0 0.7rem;
    line-height: 1.35;
}

.codex-editor h4 {
    font-family: 'Cormorant SC', serif;
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--codex-ink-faint);
    letter-spacing: 0.08em;
    margin: 1.5rem 0 0.55rem;
    text-transform: uppercase;
    line-height: 1.35;
}

/* Blockquote natif */
.codex-editor blockquote {
    margin: 1.8rem 0;
    padding-left: 1.2rem;
    border-left: 2px solid var(--codex-border-light);
    color: var(--codex-ink-light);
    font-style: italic;
}

.codex-editor blockquote p {
    text-indent: 0;
}

.codex-editor blockquote p:last-child {
    margin-bottom: 0;
}

/* 1. Introduction de codex */
.codex-intro {
    font-size: 1.08rem;
    line-height: 1.95;
    color: var(--codex-ink-light);
    margin: 1.5rem 0 1.75rem;
}

.codex-intro p {
    text-indent: 0;
}

.codex-intro p:last-child {
    margin-bottom: 0;
}

/* 2. Citation immersive */
.codex-quote {
    background: var(--codex-parchment-mid);
    border-left: 3px solid var(--codex-accent);
    border-radius: 0 4px 4px 0;
    padding: 1.2rem 1.5rem;
    margin: 2rem 0;
    font-style: italic;
    color: var(--codex-ink-light);
    font-size: 1.02rem;
    line-height: 1.9;
}

.codex-quote p {
    text-indent: 0;
    margin-bottom: 0.6rem;
}

.codex-quote p:last-child {
    margin-bottom: 0;
}

/* 3. Extrait de journal */
.codex-journal {
    background: var(--codex-parchment-mid);
    border-left: 3px solid var(--codex-accent);
    border-radius: 0 4px 4px 0;
    padding: 1.2rem 1.5rem;
    margin: 2rem 0;
    font-style: italic;
    color: var(--codex-ink-light);
    font-size: 1.02rem;
    line-height: 1.9;
}

.codex-journal p {
    text-indent: 0;
    margin-bottom: 0.6rem;
}

.codex-journal p:last-child {
    margin-bottom: 0;
}

.codex-journal-date {
    display: block;
    font-family: 'Cormorant SC', serif;
    font-size: 0.8rem;
    letter-spacing: 0.15em;
    color: var(--codex-ink-faint);
    margin-bottom: 0.6rem;
    font-style: normal;
}

/* 4. Note du meneur */
.codex-mj-note {
    background: var(--codex-parchment-dark);
    border: 0.5px solid var(--codex-border);
    border-radius: 4px;
    padding: 1.2rem 1.5rem;
    margin: 1.8rem 0;
}

.codex-mj-note p {
    font-size: 0.95rem;
    color: var(--codex-ink-light);
    line-height: 1.7;
    text-indent: 0;
    margin-bottom: 0.45rem;
}

.codex-mj-note p:last-child {
    margin-bottom: 0;
}

.codex-mj-note::before {
    content: "Note Meneur";
    display: block;
    font-family: 'Cormorant SC', serif;
    font-size: 0.78rem;
    letter-spacing: 0.2em;
    color: var(--codex-accent);
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}

/* 5. Séparateur */
.codex-divider {
    text-align: center;
    color: var(--codex-border);
    margin: 2.2rem 0;
    font-size: 1rem;
    letter-spacing: 0.6em;
    line-height: 1;
}

.codex-divider::before {
    content: "✦ ✦ ✦";
}

/* Blocs bonus cohérents avec Daelrun */

/* Voix / témoignages */
.codex-voices {
    margin: 1.8rem 0;
    padding: 0;
    border: none;
}

.codex-voice {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.4rem;
    padding-left: 1.2rem;
    border-left: 2px solid var(--codex-border-light);
}

.codex-voice:last-child {
    margin-bottom: 0;
}

.codex-voice p,
.codex-voice-text {
    font-style: italic;
    color: var(--codex-ink-light);
    font-size: 1.05rem;
    line-height: 1.85;
    margin: 0 0 0.2rem;
    text-indent: 0;
}

.codex-voice-source {
    display: block;
    font-family: 'Cormorant SC', serif;
    font-size: 0.78rem;
    letter-spacing: 0.1em;
    color: var(--codex-ink-faint);
    text-align: right;
    padding-right: 0.2rem;
}

/* Note marginale */
.codex-margin {
    float: right;
    clear: right;
    width: 36%;
    margin: 0 -1.5rem 1rem 1.5rem;
    padding: 0.7rem 0.9rem;
    background: var(--codex-parchment-aged);
    border: 0.5px solid var(--codex-border);
    border-radius: 3px;
    font-size: 0.88rem;
    font-style: italic;
    color: var(--codex-ink-faint);
    line-height: 1.65;
}

.codex-margin p {
    text-indent: 0;
    margin-bottom: 0;
    text-align: left;
}

.codex-margin::before {
    content: "✦";
    display: block;
    color: var(--codex-accent-light);
    font-size: 0.7rem;
    margin-bottom: 0.3rem;
    font-style: normal;
}

/* Colophon */
.codex-colophon {
    margin-top: 3.5rem;
    padding-top: 1.5rem;
    border-top: 0.5px solid var(--codex-border-light);
    font-size: 0.85rem;
    color: var(--codex-ink-faint);
    font-style: italic;
    text-align: center;
    line-height: 1.7;
}

.codex-colophon p {
    text-indent: 0;
    text-align: center;
    margin-bottom: 0.35rem;
}

.codex-colophon strong {
    font-family: 'Cormorant SC', serif;
    font-style: normal;
    letter-spacing: 0.08em;
    font-weight: 500;
    color: var(--codex-ink-light);
}

/* HR natif */
.codex-editor hr {
    border: 0;
    border-top: 0.5px solid var(--codex-border-light);
    margin: 2rem 0;
}

/* Responsive */
@media (max-width: 640px) {
    .codex-editor {
        padding: 1.25rem 1rem 2rem;
        font-size: 16px;
    }

    .codex-margin {
        float: none;
        width: 100%;
        margin: 0 0 1rem 0;
    }

    .codex-editor h2 {
        margin-top: 2.2rem;
    }
}