/* ==========================================================================
   Le Journal de Cratyle + Avis d'eleves
   (le reste de la mise en page est en classes Tailwind dans les templates)
   ========================================================================== */

/* Tailwind (.flex) passerait devant l'attribut hidden : on le force */
[data-slide][hidden] { display: none !important; }

/* ---------- Filtres : defilement horizontal sur mobile ---------- */
.cj-filtres { scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.cj-filtres::-webkit-scrollbar { display: none; }

/* ---------- Carrousel avis : defilement par carte (1 mobile, 3 desktop) ---------- */
.cj-carrousel-piste {
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}
.cj-carrousel-piste::-webkit-scrollbar { display: none; }
.cj-carrousel-carte { scroll-snap-align: start; }
.line-clamp-6 {
    display: -webkit-box;
    -webkit-line-clamp: 6;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ---------- Avis : grille en colonnes (hauteurs de texte variables) ---------- */
.cj-avis-grille { column-count: 1; column-gap: 28px; }
@media (min-width: 768px)  { .cj-avis-grille { column-count: 2; } }
@media (min-width: 1024px) { .cj-avis-grille { column-count: 3; } }
.cj-avis-carte { break-inside: avoid; }

/* ---------- Pagination ---------- */
.cj-pagination .page-numbers {
    min-width: 44px; height: 44px; padding: 0 14px;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    border: 1px solid #D4C5A9; color: #2C2C2C;
    font-size: 14px; font-weight: 700; letter-spacing: 1px;
}
.cj-pagination a.page-numbers:hover { border-color: #2C2C2C; }
.cj-pagination .page-numbers.current { background: #2C2C2C; border-color: #2C2C2C; color: #F5F1E8; }
.cj-pagination .page-numbers.dots { border-color: transparent; }
.cj-pagination .prev, .cj-pagination .next { font-size: 12px; letter-spacing: 1.5px; }

/* ---------- Video : lecteur charge au clic ---------- */
.cj-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ---------- Contenu d'un article (editeur de blocs) ---------- */
.journal-contenu { font-size: 18px; line-height: 1.8; color: #333; }
.journal-contenu > * + * { margin-top: 24px; }
.journal-contenu p { margin: 0; }
.journal-contenu p:not([class*="has-text-align"]) { text-align: justify; hyphens: auto; }
.journal-contenu p + p { margin-top: 24px; }
.journal-contenu a { color: #2C2C2C; text-decoration: underline; text-underline-offset: 3px; }
.journal-contenu a:hover { color: #B8A888; }
.journal-contenu h2 { margin: 40px 0 0; font-size: 24px; line-height: 1.35; font-weight: 700; color: #4A4A4A; }
.journal-contenu h3 { margin: 32px 0 0; font-size: 20px; line-height: 1.4; font-weight: 700; color: #4A4A4A; }
.journal-contenu h2 + *, .journal-contenu h3 + * { margin-top: 16px; }
.journal-contenu ul, .journal-contenu ol { margin: 0; padding-left: 24px; }
.journal-contenu ul { list-style: disc; }
.journal-contenu ol { list-style: decimal; }
.journal-contenu li + li { margin-top: 8px; }
.journal-contenu strong { font-weight: 700; }
.journal-contenu em { font-style: italic; }
.journal-contenu img { max-width: 100%; height: auto; }
.journal-contenu figure { margin: 32px 0 0; }
.journal-contenu figcaption { margin-top: 10px; font-size: 13px; font-style: italic; color: #6B6B6B; text-align: center; }
.journal-contenu hr { border: 0; border-top: 1px solid #D4C5A9; margin: 40px 0; }

/* Citations (blocs "Citation" et "Exergue") : centrees, filets or */
.journal-contenu .wp-block-quote,
.journal-contenu .wp-block-pullquote,
.journal-contenu blockquote {
    margin: 40px 0; padding: 32px 24px;
    border: 0; border-top: 1px solid #D4C5A9; border-bottom: 1px solid #D4C5A9;
    text-align: center;
}
.journal-contenu .wp-block-pullquote blockquote { margin: 0; padding: 0; border: 0; }
.journal-contenu .wp-block-quote::before,
.journal-contenu .wp-block-pullquote::before {
    content: "«"; display: block; margin-bottom: 18px;
    font-family: Georgia, serif; font-size: 52px; line-height: 0.6; color: #B8A888;
}
.journal-contenu .wp-block-quote p,
.journal-contenu .wp-block-pullquote p { font-size: 24px; line-height: 1.55; font-style: italic; color: #2C2C2C; }
.journal-contenu .wp-block-quote cite,
.journal-contenu .wp-block-pullquote cite {
    display: block; margin-top: 14px;
    font-size: 12px; font-style: normal; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #6B6B6B;
}

/* Encadre "A retenir" : bloc Groupe > Styles > Encadre « A retenir » */
.journal-contenu .is-style-a-retenir {
    margin-top: 40px; padding: 28px 32px;
    background: #EDE6D8; border-left: 4px solid #2C2C2C;
}
.journal-contenu .is-style-a-retenir::before {
    content: "À retenir"; display: block; margin-bottom: 14px;
    font-size: 13px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #2C2C2C;
}
.journal-contenu .is-style-a-retenir > * + * { margin-top: 12px; }
.journal-contenu .is-style-a-retenir li { font-size: 17px; line-height: 1.6; }

/* Integrations (YouTube, etc.) en 16/9 */
.journal-contenu .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; }
.journal-contenu .wp-block-embed__wrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

@media (max-width: 767px) {
    .journal-contenu { font-size: 17px; }
    .journal-contenu .wp-block-quote p,
    .journal-contenu .wp-block-pullquote p { font-size: 20px; }
    .journal-contenu .is-style-a-retenir { padding: 22px 20px; }
}

/* ---------- Manifeste (accueil) : taille et style unifies, texte droit ---------- */
.manifeste-texte,
.manifeste-texte * {
    font-style: normal !important;
    font-size: inherit !important;
}
