/* Pages intérieures de la famille Educeet (chargé par _educeet/page.html.twig, après educeet.css et educeet-school.css) */

/* ancres du menu (#slug) : visibles sous l'en-tête collant */
.ed-anchor, .ed-page [id] { scroll-margin-top: 120px; }

/* colonne d'images qui reste visible le long d'un texte long */
@media (min-width: 992px) { .ed-sticky { position: sticky; top: 120px; } }
.ed-inner-about .it-about-text .ed-prose p { margin-bottom: 1em; }
.ed-inner-about .it-about-2-thumb-sm { max-width: 55%; }

/* contenu vide */
.ed-empty__icon { display: block; font-size: 40px; margin-bottom: 14px; color: var(--it-theme-1); opacity: .7; }

/* cartes génériques */
.ed-card { background: #fff; border-radius: 20px; padding: 32px; box-shadow: 0 10px 40px rgba(3, 4, 28, .06); }
.ed-side-card { background: var(--it-gray-1, #f6f6f6); border-radius: 20px; padding: 28px; }
.ed-side-card hr { border: 0; border-top: 1px solid var(--it-gray-2, #e5e5e5); margin: 18px 0; }

/* onglets / sous-navigation (it-faq-tab-box) */
.ed-tabs .nav-tab { display: flex; flex-wrap: wrap; gap: 10px; border: 0; }
.ed-tabs .nav-link { border-radius: 100px; padding: 10px 22px; font-weight: 600; border: 1px solid var(--it-gray-2, #e5e5e5); background: #fff; color: var(--it-heading-primary, #111); }
.ed-tabs .nav-link.active, .ed-tabs .nav-link:hover { background: var(--it-theme-1); border-color: var(--it-theme-1); color: #fff; }
.ed-subnav { position: relative; z-index: 2; margin-top: -32px; }
.ed-subnav .nav-tab { background: #fff; border-radius: 100px; padding: 10px; box-shadow: 0 10px 40px rgba(3, 4, 28, .08); width: fit-content; max-width: 100%; margin: 0 auto; }

/* étiquettes (cycles, classes, catégories du blog) */
.ed-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.ed-tags--filter { justify-content: center; }
.ed-tags span, .ed-tags a { display: inline-block; padding: 6px 16px; border-radius: 100px; background: var(--it-gray-1, #f4f4f4); font-size: 14px; color: var(--it-heading-primary, #111); }
.ed-tags a.active, .ed-tags a:hover { background: var(--it-theme-1); color: #fff; }

/* alertes des formulaires */
.ed-alert { padding: 14px 18px; border-radius: 12px; margin-bottom: 20px; background: color-mix(in srgb, var(--it-theme-3) 15%, #fff); color: var(--it-heading-primary, #111); border-left: 4px solid var(--it-theme-3); }
.ed-alert--error { background: #fdecec; border-left-color: #d93025; }
.ed-select { width: 100%; height: 60px; padding: 0 20px; border-radius: 10px; border: 1px solid var(--it-gray-2, #e5e5e5); background: #fff; }
.it-signup-input textarea { min-height: 160px; }

/* documents téléchargeables */
.ed-doc { display: flex; align-items: center; gap: 18px; padding: 22px; border-radius: 20px; background: #fff; border: 1px solid var(--it-gray-2, #e5e5e5); height: 100%; }
.ed-doc__ico { flex: 0 0 64px; height: 64px; border-radius: 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; background: color-mix(in srgb, var(--it-theme-1) 10%, #fff); color: var(--it-theme-1); font-size: 24px; }
.ed-doc__ico small { font-size: 10px; font-weight: 700; letter-spacing: .05em; }
.ed-doc__body { flex: 1; min-width: 0; }
.ed-doc__title { font-size: 17px; margin-bottom: 4px; }
.ed-doc__btn { flex: 0 0 auto; }
@media (max-width: 575px) { .ed-doc { flex-wrap: wrap; } .ed-doc__btn { width: 100%; } }

/* chiffres clés (fiche de l'école) */
.ed-fact { gap: 16px; padding: 20px; border-radius: 16px; background: #fff; box-shadow: 0 8px 30px rgba(3, 4, 28, .06); height: 100%; }
.ed-fact strong { display: block; font-size: 20px; color: var(--it-heading-primary, #111); }
.ed-fact__icon { flex: 0 0 52px; width: 52px; height: 52px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--it-theme-1); color: #fff; font-size: 20px; }
.ed-fact__icon--lg { width: 80px; height: 80px; font-size: 32px; }

/* mot du directeur */
.ed-quote { position: relative; padding-left: 28px; border-left: 4px solid var(--it-theme-2); }
.ed-quote__mark { font-size: 28px; color: var(--it-theme-2); margin-bottom: 10px; }
.ed-signature { gap: 14px; }
.ed-signature img { border-radius: 12px; object-fit: contain; background: #fff; box-shadow: 0 4px 16px rgba(0, 0, 0, .08); }

/* frise de l'histoire */
.ed-timeline { position: relative; padding-left: 36px; }
.ed-timeline::before { content: ""; position: absolute; left: 9px; top: 6px; bottom: 6px; width: 2px; background: var(--it-gray-2, #e5e5e5); }
.ed-timeline__item { position: relative; margin-bottom: 30px; }
.ed-timeline__dot { position: absolute; left: -36px; top: 22px; width: 20px; height: 20px; border-radius: 50%; background: var(--it-theme-1); box-shadow: 0 0 0 5px color-mix(in srgb, var(--it-theme-1) 20%, #fff); }
.ed-timeline__card { background: #fff; border-radius: 20px; padding: 26px; box-shadow: 0 10px 40px rgba(3, 4, 28, .06); display: grid; gap: 24px; }
.ed-timeline__card.has-img { grid-template-columns: 1fr 220px; align-items: center; }
.ed-timeline__date { display: inline-block; padding: 4px 14px; border-radius: 100px; background: var(--it-theme-2); color: var(--it-common-black, #111); font-weight: 700; margin-bottom: 12px; }
@media (max-width: 767px) { .ed-timeline__card.has-img { grid-template-columns: 1fr; } }

/* clubs, infrastructures, partenaires */
.ed-features .ed-feature:last-child { margin-bottom: 0 !important; }
.ed-partner { background: #fff; border-radius: 20px; padding: 26px; border: 1px solid var(--it-gray-2, #e5e5e5); display: flex; flex-direction: column; }
.ed-partner__logo { height: 120px; display: flex; align-items: center; justify-content: center; border-radius: 14px; background: var(--it-gray-1, #f6f6f6); margin-bottom: 20px; padding: 16px; }
.ed-partner__logo img { max-height: 88px; max-width: 100%; object-fit: contain; }
.ed-partner__name { margin-bottom: 10px; }
.ed-partner__links { display: flex; flex-wrap: wrap; gap: 14px; margin-top: auto; font-weight: 600; }
.ed-partner__links a { color: var(--it-theme-1); }

/* équipe */
.ed-team-dept { font-size: 14px; margin-top: 4px; }
.it-team-area .it-team-item .it-team-content { padding-top: 18px; }

/* pédagogie */
.ed-explorer__list { max-height: 560px; overflow-y: auto; }
.ed-explorer__list .sidebar-widget-list { width: 100%; text-align: left; border: 0; display: flex; justify-content: space-between; align-items: center; }
.ed-explorer__list .sidebar-widget-list.active { background: var(--it-theme-1); color: #fff; }
.ed-explorer__list .sidebar-widget-list.active span { color: #fff; }
.ed-class-head { gap: 20px; }
.ed-totals { gap: 12px; }
.ed-totals > div { text-align: center; padding: 12px 18px; border-radius: 14px; background: var(--it-gray-1, #f6f6f6); }
.ed-totals b { display: block; font-size: 22px; color: var(--it-theme-1); }
.ed-totals span { font-size: 13px; }

/* agenda */
.ed-month { margin: 10px 0 24px; padding-bottom: 10px; border-bottom: 2px solid var(--it-theme-2); text-transform: capitalize; }
.ed-event--past { opacity: .7; }

/* galerie */
.ed-gallery__item { position: relative; display: block; }
.ed-gallery__item img { transition: transform .5s ease; }
.ed-gallery__item:hover img { transform: scale(1.06); }
.ed-gallery__zoom { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 34px; color: #fff; background: color-mix(in srgb, var(--it-theme-1) 55%, transparent); opacity: 0; transition: opacity .3s; }
.ed-gallery__item:hover .ed-gallery__zoom, .ed-gallery__item:focus .ed-gallery__zoom { opacity: 1; }
.ed-gallery__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 16px 12px; color: #fff; font-size: 14px; background: linear-gradient(transparent, rgba(0, 0, 0, .65)); }

/* contact */
.it-contact-list ul li { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 18px; }
.ed-map iframe { width: 100%; height: 420px; border: 0; display: block; }
.ed-contact-card span, .ed-contact-card a.border-line { color: #fff; }
.ed-contact-card a.border-line { font-size: 22px; font-weight: 700; }

/* articles */
.postbox-dsc .ed-prose { font-size: 17px; }
.rc-post-thumb img { width: 90px; height: 80px; object-fit: cover; border-radius: 10px; }
.it-pagination li.ed-pager-gap span { display: inline-block; width: 40px; text-align: center; }
/* horaires d'ouverture (page Contact) : lignes de texte simples, pas des pastilles d'icône */
.ed-hours { display: block; font-size: 15px; line-height: 1.7; color: var(--it-text-body); }
/* textes riches de l'école : titres à taille raisonnable, lecture confortable */
.ed-prose h1, .ed-prose h2 { font-size: clamp(24px, 1.2vw + 16px, 32px); line-height: 1.25; margin: 1.6em 0 .6em; }
.ed-prose h3 { font-size: clamp(20px, .8vw + 14px, 26px); line-height: 1.3; margin: 1.4em 0 .5em; }
.ed-prose h4, .ed-prose h5, .ed-prose h6 { font-size: 19px; margin: 1.2em 0 .4em; }
.ed-prose > :first-child { margin-top: 0; }
.ed-prose p { margin-bottom: 1em; }
.ed-reading .ed-prose { font-size: 17px; line-height: 1.85; }
.ed-ratio--fill { height: 100%; }
.ed-ratio--fill > img:first-child { aspect-ratio: auto; height: 100%; min-height: 220px; }
/* ancres : le titre visé n'est pas caché par l'en-tête collant */
[id] { scroll-margin-top: 120px; }
/* texte court à côté des photos : titres plus discrets */
.it-about-text .ed-prose h1, .it-about-text .ed-prose h2 { font-size: 22px; }
.it-about-text .ed-prose h3, .it-about-text .ed-prose h4 { font-size: 19px; }
/* ---- texte riche de l'école : toujours dans l'identité du thème ----
   L'éditeur de l'administration enregistre des styles en ligne (police, couleur, taille, fond, justification) :
   ils sont neutralisés pour que la police, les couleurs et les tailles soient celles du thème choisi. */
.ed-prose, .ed-prose * { font-family: inherit !important; }
.ed-prose { font-family: var(--it-ff-body); color: var(--it-text-body); }
.ed-prose *:not(a):not(mark) { color: inherit !important; background-color: transparent !important; }
.ed-prose h1, .ed-prose h2, .ed-prose h3, .ed-prose h4, .ed-prose h5, .ed-prose h6 { font-family: var(--it-ff-heading) !important; color: var(--it-heading-primary) !important; }
.ed-prose p, .ed-prose li, .ed-prose span, .ed-prose td { font-size: inherit !important; line-height: inherit !important; }
.ed-prose [style*="justify"] { text-align: left !important; }
.ed-prose [style*="margin-left"] { margin-left: 0 !important; }
.ed-prose a { color: var(--it-theme-1) !important; text-decoration: underline; text-underline-offset: 3px; }
.ed-prose strong, .ed-prose b { color: var(--it-heading-primary) !important; font-weight: 700; }
.ed-prose ul, .ed-prose ol { padding-left: 1.3em; margin-bottom: 1em; }
.ed-prose ul li::marker { color: var(--it-theme-1); }
.ed-prose blockquote { border-left: 4px solid var(--it-theme-2); background: var(--it-gray-1) !important; padding: 14px 20px; border-radius: 0 14px 14px 0; font-style: italic; margin: 1.2em 0; }
.ed-prose table { width: 100%; border-collapse: collapse; margin: 1em 0; }
.ed-prose th, .ed-prose td { border: 1px solid var(--it-gray-2); padding: 8px 12px; }
.ed-prose th { background: var(--it-gray-1) !important; color: var(--it-heading-primary) !important; }
.ed-prose img { max-width: 100%; height: auto !important; border-radius: 16px; }
.ed-prose iframe, .ed-prose video { max-width: 100%; border-radius: 16px; }
/* ---- pages à rubriques (À propos, Vie scolaire, Élèves & parents) : onglets ---- */
.ed-tabs-on [data-ed-tabs] .nav-link { cursor: pointer; }
.ed-tabs-on [data-ed-tabs] .nav-link.active { background: var(--it-theme-1); color: #fff; border-color: var(--it-theme-1); }
.ed-tabs-on > section.ed-anchor, .ed-tabs-on > .ed-anchor { padding-top: 70px !important; padding-bottom: 90px !important; }
.ed-tabs-on > section.ed-anchor { background: transparent; }
@media (max-width: 767px) { .ed-tabs-on [data-ed-tabs] .nav { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start !important; } .ed-tabs-on [data-ed-tabs] .nav-link { white-space: nowrap; } }
/* ---- agenda compact ---- */
.ed-events .it-event-item { margin-bottom: 24px !important; }
.ed-events .it-event-title { font-size: 17px !important; line-height: 1.35; margin-bottom: 8px !important; }
.ed-events .it-event-content p { font-size: 14px; }
.ed-events .ed-more-event { display: none; }
.ed-events.ed-show-all .ed-more-event { display: block; }
.ed-month { margin: 10px 0 18px; font-size: 18px; text-transform: capitalize; }
/* ---- images des pages intérieures : plus mesurées ---- */
.ed-inner-section .ed-ratio > img:first-child, .ed-inner-section .ed-ratio > a > img { max-height: 260px; }
.ed-inner-about .ed-ratio > img:first-child { max-height: 320px; }
.ed-inner-about--long .ed-ratio > img:first-child { max-height: 300px; }
/* ---- tableau des matières plus serré ---- */
.ed-inner-section .ed-table th, .ed-inner-section .ed-table td, .ed-inner-section table th, .ed-inner-section table td { padding: 9px 14px; font-size: 14.5px; }
/* cartes de l'agenda de même hauteur, texte sur 3 lignes au plus */
.ed-events .row > [class*="col-"] { display: flex; }
.ed-events .row > [class*="col-"] > .it-event-item { width: 100%; }
.ed-events .ed-more-event { display: none !important; }
.ed-events.ed-show-all .ed-more-event { display: flex !important; }
.ed-events .it-event-content p, .ed-events .it-event-content .ed-muted { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
/* images insérées dans les textes de l'école (rubriques des pages intérieures) : taille mesurée */
.ed-inner-section .ed-prose img, .ed-inner-section .ed-prose figure { max-width: min(100%, 420px) !important; max-height: 300px; object-fit: cover; }

/* ---- pédagogie compacte : niveaux en pastilles, matières en grille ---- */
.ed-level-pills { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.ed-level-pill { border: 1px solid var(--it-gray-2); background: #fff; border-radius: 999px; padding: 7px 16px; font-weight: 600; font-size: 15px; color: var(--it-heading-primary); display: inline-flex; align-items: center; gap: 8px; transition: .15s; }
.ed-level-pill small { font-size: 12px; background: var(--it-gray-1); border-radius: 999px; padding: 1px 8px; color: var(--it-text-body); }
.ed-level-pill:hover { border-color: var(--it-theme-1); }
.ed-level-pill.active { background: var(--it-theme-1); border-color: var(--it-theme-1); color: #fff; }
.ed-level-pill.active small { background: rgba(255, 255, 255, .2); color: #fff; }
.ed-class-name { font-size: 24px; }
.ed-class-chip { font-size: 13px; background: var(--it-gray-1); border-radius: 8px; padding: 3px 10px; }
.ed-explorer--compact .ed-totals > div { padding: 6px 14px; }
.ed-subjects { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.ed-subject { background: #fff; border: 1px solid var(--it-gray-2); border-left: 3px solid var(--it-theme-1); border-radius: 10px; padding: 9px 12px; line-height: 1.3; }
.ed-subject strong { display: block; font-size: 15px; color: var(--it-heading-primary); }
.ed-subject span { font-size: 13px; color: var(--it-text-body); }
/* partenaires : cadre du logo de hauteur fixe, logo centré (logos de proportions différentes) */
.ed-partner__logo { height: 130px; display: flex; align-items: center; justify-content: center; padding: 16px; }
.ed-partner__logo img { max-height: 100%; max-width: 100%; width: auto; object-fit: contain; }
.ed-partner .ed-partner__logo { flex: none !important; }
.ed-partner__links { margin-top: auto; }

/* Départements pédagogiques (themes/_shared/departments.html.twig) : un bloc par département, fiches compactes */
.sd-depts { margin-top: 56px; }
.sd-depts__title { margin: 0 0 22px; }
.sd-dept { background: #ffffff; border: 1px solid rgba(0,0,0,.08); border-radius: 16px; padding: 18px 20px; margin-bottom: 18px; }
.sd-dept__head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; margin-bottom: 14px; }
.sd-dept__name { margin: 0; font-size: 1.12rem; line-height: 1.3; }
.sd-dept__count { font-size: .82rem; font-weight: 600; color: var(--it-heading-primary, #1d1d1f); background: color-mix(in srgb, var(--it-theme-1) 8%, #ffffff); border-radius: 999px; padding: 3px 11px; white-space: nowrap; }
.sd-people { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 10px; }
.sd-person { display: flex; align-items: center; gap: 12px; min-width: 0; min-height: 64px; padding: 9px 12px; border-radius: 12px; background: color-mix(in srgb, var(--it-theme-1) 8%, #ffffff); }
.sd-person__avatar { flex: none; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.sd-person__avatar--initials { display: grid; place-items: center; font-weight: 700; font-size: .9rem; letter-spacing: .02em; color: var(--it-heading-primary, #1d1d1f); background: color-mix(in srgb, var(--it-theme-1) 30%, #ffffff); }
.sd-person__text { display: flex; flex-direction: column; min-width: 0; }
.sd-person__name { font-weight: 600; line-height: 1.25; color: var(--it-heading-primary, #1d1d1f); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere; }
.sd-person__role { font-size: .82rem; line-height: 1.3; opacity: .78; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sd-more > summary { cursor: pointer; margin-top: 12px; font-weight: 600; color: var(--it-heading-primary, #1d1d1f); text-decoration: underline; text-underline-offset: 3px; }
.sd-more > summary:focus-visible { outline: 3px solid var(--it-theme-1); outline-offset: 3px; border-radius: 4px; }
.sd-more .sd-people { margin-top: 10px; }

/* activation d'un compte : étapes (adresse, code, mot de passe) */
.ed-steps-mini { display: flex; gap: 6px; list-style: none; padding: 0; counter-reset: st; }
.ed-steps-mini li { flex: 1; padding: 6px 8px; border-radius: 999px; background: color-mix(in srgb, var(--it-theme-1) 8%, #fff); color: var(--it-heading-primary, #111); font-size: .8rem; font-weight: 700; text-align: center; counter-increment: st; }
.ed-steps-mini li::before { content: counter(st) ". "; }
.ed-steps-mini li[aria-current] { background: var(--it-theme-1); color: #fff; }
