/*
 * Direction visuelle commune des pages intérieures UCAO-UUC.
 * Cette feuille n'est volontairement pas chargée par index.php.
 */

:root {
    --pm-primary: #180391;
    --pm-primary-dark: #10035c;
    --pm-accent: #f3a712;
    --pm-ink: #17162d;
    --pm-muted: #69697c;
    --pm-line: #e9e8f2;
    --pm-soft: #f6f6fb;
    --pm-white: #ffffff;
    --pm-radius: 18px;
    --pm-shadow: 0 20px 55px rgba(29, 20, 79, 0.09);
}

html {
    scroll-behavior: smooth;
}

body {
    color: var(--pm-ink);
    background: #fbfbfe;
}

body .header-principal {
    display: block !important;
    min-height: 84px;
    background: #fff !important;
    transition: min-height 0.3s ease, background 0.3s ease, box-shadow 0.3s ease;
}

body .header-principal .nav-principale {
    min-height: 84px;
    padding-block: 10px !important;
    transition: min-height 0.3s ease, padding 0.3s ease;
}

body .header-principal.scrolled {
    min-height: 64px;
    background: rgba(255, 255, 255, 0.94) !important;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

body .header-principal.scrolled .nav-principale {
    min-height: 64px;
    padding-block: 6px !important;
}

body .header-principal.scrolled .nav-logo img,
body .header-principal.scrolled .logo img {
    height: 48px !important;
}

body > .container,
body > section > .container,
body > main > .container,
body > main section > .container,
.page-actualite > section > .container,
.page-actualite > .banniere-actualite > .container {
    width: min(1180px, calc(100% - 40px));
    max-width: 1180px;
}

/* Les contenus du footer restent visibles même en cas d'indisponibilité d'AOS. */
.footer [data-aos] {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
}

body .footer {
    position: relative !important;
    overflow: hidden !important;
    padding: 72px 0 28px !important;
    color: #444 !important;
    background: #fff !important;
    text-align: initial !important;
}

/* Héros des pages intérieures */
.banniere-universite,
.banniere-admission,
.banniere-connexion,
.banniere-contact,
.banniere-article,
.banniere-actualite,
.banniere-hero,
.hero-section,
.directors-hero,
.pm-download-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 440px;
    color: #fff;
    background-color: var(--pm-primary-dark);
}

.banniere-universite,
.banniere-admission,
.banniere-connexion,
.banniere-contact,
.banniere-actualite,
.banniere-hero,
.hero-section,
.directors-hero,
.pm-download-hero,
.slide-universite,
.slide-admission,
.slide-connexion,
.slide-contact {
    height: auto !important;
    min-height: 570px !important;
}

.banniere-universite::after,
.banniere-admission::after,
.banniere-connexion::after,
.banniere-contact::after,
.banniere-article::after,
.banniere-actualite::after,
.banniere-hero::after,
.hero-section::after,
.directors-hero::after,
.pm-download-hero::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background:
        radial-gradient(circle at 84% 18%, rgba(243, 167, 18, 0.2), transparent 28%),
        linear-gradient(108deg, rgba(12, 3, 72, 0.86), rgba(24, 3, 145, 0.62) 58%, rgba(24, 3, 145, 0.28));
}

.slide-universite,
.slide-admission,
.slide-connexion,
.slide-contact {
    min-height: 440px !important;
    display: grid !important;
    place-items: center;
    background-position: center !important;
    background-size: cover !important;
}

.slide-contact {
    position: absolute !important;
    isolation: isolate;
}

.slide-universite,
.slide-admission,
.slide-connexion,
.slide-contact {
    height: 100% !important;
    min-height: 0 !important;
}

.slide-contact::after {
    content: "";
    position: absolute;
    z-index: 0;
    inset: 0;
    background: linear-gradient(108deg, rgba(12, 3, 72, 0.72), rgba(24, 3, 145, 0.3));
}

.slide-contenu,
.hero-content,
.contenu-hero,
.banniere-actualite > .container,
.pm-download-hero .container {
    position: relative;
    z-index: 2;
    width: min(1180px, calc(100% - 40px));
    max-width: 1180px !important;
    margin-inline: auto;
    text-align: left !important;
}

.slide-titre,
.hero-title,
.titre-hero,
.titre-page,
.pm-download-hero h1 {
    max-width: 820px;
    margin-inline: auto;
    color: #fff !important;
    font-family: "Poppins", sans-serif !important;
    font-size: clamp(1.95rem, 3.8vw, 3.1rem) !important;
    font-weight: 800 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.04em;
    text-shadow: 0 6px 28px rgba(5, 2, 35, 0.18) !important;
    margin: 18px 0 16px !important;
    text-align: left !important;
}

.slide-sous-titre,
.hero-subtitle,
.sous-titre-hero,
.banniere-actualite .sous-titre,
.pm-download-hero p {
    max-width: 720px;
    margin: 0 !important;
    color: rgba(255, 255, 255, 0.8) !important;
    font-size: clamp(0.94rem, 1.35vw, 1.08rem) !important;
    line-height: 1.7;
    text-align: left !important;
}

.pm-hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--pm-accent);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.13em;
    text-transform: uppercase;
}

.pm-hero-eyebrow::before {
    content: "";
    width: 34px;
    height: 2px;
    flex: 0 0 auto;
    background: currentColor;
}

.pm-hero-eyebrow i {
    font-size: 0.8rem;
}

.pm-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.pm-hero-button {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 13px 21px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 0.9rem;
    font-weight: 750;
    text-decoration: none;
    transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.pm-hero-button:hover {
    transform: translateY(-2px);
}

.pm-hero-button-primary {
    color: var(--pm-primary-dark) !important;
    background: var(--pm-accent);
    box-shadow: 0 12px 28px rgba(243, 167, 18, 0.25);
}

.pm-hero-button-ghost {
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.36);
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(8px);
}

.boutons-banniere {
    justify-content: flex-start !important;
    margin-top: 30px !important;
}

.boutons-banniere .btn-banniere {
    min-height: 50px;
    padding: 13px 21px !important;
    border-radius: 10px !important;
}

.scroll-indicator,
.hero-scroll {
    display: none !important;
}

.banniere-actualite {
    display: grid;
    place-items: center;
    padding: 80px 0 !important;
    background-position: center !important;
    background-size: cover !important;
    text-align: center;
}

/* Titres et rythme des sections */
.section-admission,
.section-articles-recents,
.section-tous-articles,
.section-infos-contact,
.section-formulaire,
.section-map,
.section-portails,
.section-comptes,
.section-bibliotheque,
.section-historique,
.university-section,
.telechargements-section,
.section-president,
.article-main,
.ucaouuc-directors .director-section,
main > .section {
    padding-top: 86px !important;
    padding-bottom: 86px !important;
}

.section-titre,
.titre-section,
.section-title,
.section-titre-interne,
.section-header h2,
.section-header .section-title {
    color: var(--pm-ink) !important;
    font-family: "Poppins", sans-serif !important;
    font-size: clamp(1.4rem, 2.5vw, 2.05rem) !important;
    font-weight: 800 !important;
    line-height: 1.2;
    letter-spacing: -0.03em;
    overflow-wrap: anywhere;
}

/* Les pictogrammes de titres restent compacts et ne poussent jamais le texte. */
.titre-section,
.section-title,
.section-titre,
.section-titre-interne {
    min-width: 0;
}

.titre-section > i:first-child,
.section-title > i:first-child,
.section-titre > i:first-child,
.section-titre-interne > i:first-child {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    flex: 0 0 40px !important;
    display: inline-grid !important;
    place-items: center;
    margin: 0 10px 0 0 !important;
    border-radius: 11px;
    font-size: 1.05rem !important;
    line-height: 1 !important;
    vertical-align: 0.14em;
}

.section-titre::after,
.titre-section::after,
.section-title::after,
.section-titre-interne::after {
    width: 52px !important;
    height: 4px !important;
    border-radius: 999px;
    background: var(--pm-accent) !important;
}

.sous-titre,
.section-description,
.section-header > p {
    color: var(--pm-muted) !important;
    line-height: 1.7;
}

/* Cartes génériques */
.article-card,
.carte-frais,
.accordion-item,
.carte-portail,
.carte-compte,
.carte-info,
.card,
.role-card,
.campus-card,
.telechargement-item,
.related-card {
    border: 1px solid var(--pm-line) !important;
    border-radius: var(--pm-radius) !important;
    background: var(--pm-white) !important;
    box-shadow: var(--pm-shadow) !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
    min-width: 0;
    overflow: hidden;
}

/* Contention défensive : images, textes et grilles ne débordent pas des cartes. */
main,
main section,
main .container,
.contenu-onglets,
.contenu-onglet,
.accordion-container,
.accordion-item,
.accordion-header,
.grille-portails,
.grille-comptes,
.grille-infos,
.grille-articles,
.telechargements-grid,
.historique-contenu,
.carte-president,
.director-content {
    min-width: 0;
}

main img,
main video,
main iframe {
    max-width: 100%;
}

main h1,
main h2,
main h3,
main h4,
main p,
main li,
main a,
main button {
    overflow-wrap: anywhere;
}

.accordion-header {
    gap: 10px;
    padding: 16px 18px !important;
    font-size: 0.94rem !important;
    line-height: 1.45;
}

.accordion-header > i:not(.accordion-icon) {
    flex: 0 0 auto;
    font-size: 0.95rem !important;
}

.accordion-header .accordion-icon {
    flex: 0 0 auto;
    margin-left: auto !important;
    font-size: 0.85rem !important;
}

.cadre-info {
    gap: 12px;
    padding: 15px 18px !important;
}

.cadre-info > i {
    flex: 0 0 22px;
    width: 22px !important;
    max-width: 22px !important;
    font-size: 1rem !important;
    text-align: center;
}

.portail-icone,
.info-icone,
.compte-icone,
.role-icon,
.card-icon {
    max-width: 76px;
    max-height: 76px;
}

.portail-icone img,
.info-icone img,
.compte-icone img,
.role-icon img,
.card-icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Une illustration locale et contextuelle pour chaque bannière qui en manquait. */
.slide-connexion {
    background-image: url("../img/connexion.jpg") !important;
    background-position: center !important;
}

.banniere-hero {
    background: url("../img/Pr%20UCAO-UUC.jpg") center 38% / cover no-repeat !important;
}

.banniere-hero .overlay-hero {
    background: linear-gradient(108deg, rgba(12, 3, 72, 0.28), rgba(24, 3, 145, 0.05)) !important;
}

.directors-hero {
    background: url("../img/ucaouuc-siege.jpeg") center / cover no-repeat !important;
}

.directors-hero .hero-overlay {
    background: linear-gradient(108deg, rgba(12, 3, 72, 0.28), rgba(24, 3, 145, 0.04)) !important;
}

.pm-download-hero {
    background: url("../img/baniere-actu-ucao-uuc.jpg") center / cover no-repeat !important;
}

.slide-connexion::before {
    background: linear-gradient(108deg, rgba(12, 3, 72, 0.72), rgba(139, 0, 0, 0.42)) !important;
}

.slide-universite::before {
    background: linear-gradient(108deg, rgba(12, 3, 72, 0.58), rgba(24, 3, 145, 0.18)) !important;
}

/* Entrée sobre des contenus de bannière, sans animation envahissante. */
@keyframes pmRevealUp {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.pm-hero-eyebrow {
    animation: pmRevealUp 0.55s ease-out both;
}

.slide-contenu > h1,
.hero-content > h1,
.contenu-hero > h1,
.banniere-actualite > .container > h1,
.pm-download-hero h1 {
    animation: pmRevealUp 0.65s 0.08s ease-out both;
}

.slide-contenu > p,
.hero-content > p,
.contenu-hero > p,
.banniere-actualite > .container > p,
.pm-download-hero .container > p {
    animation: pmRevealUp 0.65s 0.16s ease-out both;
}

.pm-hero-actions,
.boutons-banniere {
    animation: pmRevealUp 0.65s 0.24s ease-out both;
}

.article-card:hover,
.carte-frais:hover,
.carte-portail:hover,
.carte-compte:hover,
.carte-info:hover,
.card:hover,
.role-card:hover,
.campus-card:hover,
.telechargement-item:hover,
.related-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 26px 65px rgba(29, 20, 79, 0.14) !important;
}

/* Actualités */
.section-articles-recents {
    background: #fff !important;
}

.section-tous-articles {
    background: var(--pm-soft) !important;
}

.grille-articles {
    gap: 26px !important;
}

.article-card {
    overflow: hidden;
}

.article-card .article-image {
    overflow: hidden;
    aspect-ratio: 16 / 10;
}

.article-card .article-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.article-card:hover .article-image img {
    transform: scale(1.055);
}

.article-card .article-content {
    padding: 22px !important;
}

.article-card .article-content h3,
.article-card .article-content h3 a {
    color: var(--pm-ink) !important;
    font-size: 1.08rem !important;
    line-height: 1.45;
    text-decoration: none;
}

.article-categorie {
    border-radius: 999px !important;
    color: #fff !important;
    background: var(--pm-primary) !important;
    font-size: 0.7rem !important;
    font-weight: 700;
}

.pagination a {
    border-radius: 9px !important;
}

/* Admission */
.onglets-admission {
    padding: 8px !important;
    border: 1px solid var(--pm-line);
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: 0 12px 34px rgba(29, 20, 79, 0.08);
}

.onglet {
    border-radius: 9px !important;
    font-weight: 700 !important;
}

.onglet.active {
    color: #fff !important;
    background: var(--pm-primary) !important;
}

.contenu-onglets,
.cadre-info,
.details-frais-section {
    border: 1px solid var(--pm-line) !important;
    border-radius: var(--pm-radius) !important;
    background: #fff !important;
    box-shadow: var(--pm-shadow) !important;
}

.accordion-header {
    padding: 20px 22px !important;
    color: var(--pm-ink) !important;
    background: #fff !important;
}

.accordion-item.active .accordion-header {
    color: var(--pm-primary) !important;
    background: #f1efff !important;
}

.etape-numero {
    background: var(--pm-primary) !important;
}

.btn-inscription,
.btn-banniere,
.btn-secondaire {
    border-radius: 10px !important;
    font-weight: 750 !important;
}

/* Tableau lisible et responsive des frais d'admission */
.grille-frais {
    align-items: start;
}

.details-frais-section {
    padding: 30px !important;
    overflow: hidden;
}

.details-frais-titre {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 22px !important;
    color: var(--pm-ink) !important;
    font-size: 1.35rem !important;
    line-height: 1.3;
}

.details-frais-titre i {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: var(--pm-primary);
    background: #eeecff;
    font-size: 0.95rem;
}

.pm-fees-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid var(--pm-line);
    border-radius: 15px;
    background: #fff;
    scrollbar-color: var(--pm-primary) #eceaf8;
    scrollbar-width: thin;
}

.pm-fees-table {
    width: 100%;
    min-width: 790px;
    border-collapse: collapse;
    color: var(--pm-ink);
    font-size: 0.88rem;
    font-variant-numeric: tabular-nums;
}

.pm-fees-table caption {
    padding: 13px 18px;
    color: var(--pm-muted);
    background: #fafafe;
    font-size: 0.78rem;
    font-weight: 650;
    text-align: left;
}

.pm-fees-table th,
.pm-fees-table td {
    padding: 14px 13px;
    border-bottom: 1px solid var(--pm-line);
    text-align: center;
    white-space: nowrap;
}

.pm-fees-table thead th {
    color: #fff;
    background: linear-gradient(135deg, var(--pm-primary-dark), var(--pm-primary));
    font-size: 0.8rem;
    letter-spacing: 0.015em;
}

.pm-fees-table thead th:first-child,
.pm-fees-table tbody th,
.pm-fees-table tfoot th {
    text-align: left;
}

.pm-fees-table tbody th {
    min-width: 205px;
    color: var(--pm-primary-dark);
    background: #f8f7ff;
    font-weight: 750;
}

.pm-fees-table tbody th small {
    display: block;
    margin-top: 3px;
    color: var(--pm-muted);
    font-size: 0.68rem;
    font-weight: 500;
}

.pm-fees-table tbody tr:nth-child(even) td {
    background: #fcfcff;
}

.pm-fees-table tbody td {
    font-weight: 650;
}

.pm-fees-table tfoot th,
.pm-fees-table tfoot td {
    border-bottom: 0;
    color: #fff;
    background: #8b0000;
    font-weight: 800;
}

.pm-fees-extras {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 20px;
}

.pm-fees-extras article {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    padding: 17px;
    border: 1px solid var(--pm-line);
    border-radius: 14px;
    background: #fff;
}

.pm-fee-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: #8b0000;
    background: #fff0f0;
    font-size: 0.9rem;
}

.pm-fees-extras h4 {
    margin: 0 0 3px;
    color: var(--pm-ink);
    font-size: 0.88rem;
    line-height: 1.35;
}

.pm-fees-extras p {
    margin: 0;
    color: var(--pm-muted);
    font-size: 0.72rem;
    line-height: 1.5;
}

.pm-fees-extras strong {
    padding: 7px 9px;
    border-radius: 8px;
    color: var(--pm-primary-dark);
    background: #eeecff;
    font-size: 0.78rem;
    white-space: nowrap;
}

.pm-fees-note {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 18px 0 0 !important;
    padding: 13px 15px;
    border-radius: 11px;
    color: #7d0000 !important;
    background: #fff0f0;
    font-size: 0.77rem;
    font-weight: 650;
    line-height: 1.5;
}

.pm-fees-note i {
    margin-top: 3px;
    flex: 0 0 auto;
}

/* Connexion */
.grille-portails,
.grille-comptes {
    gap: 24px !important;
}

.carte-portail,
.carte-compte {
    overflow: hidden;
    padding: 30px 24px !important;
}

.carte-portail h3,
.carte-compte h3 {
    color: var(--pm-ink) !important;
    font-size: 1.25rem !important;
}

.btn-portail,
.btn-compte,
.btn-bibliotheque {
    border-radius: 9px !important;
    background: var(--pm-primary) !important;
    box-shadow: 0 10px 25px rgba(24, 3, 145, 0.2) !important;
}

.section-comptes {
    background: var(--pm-soft) !important;
}

.bibliotheque-contenu {
    display: grid !important;
    grid-template-columns: minmax(0, 1.08fr) minmax(260px, 0.92fr);
    align-items: center !important;
    gap: 44px !important;
    padding: 48px 52px !important;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 24px !important;
    background:
        radial-gradient(circle at 88% 15%, rgba(243, 167, 18, 0.2), transparent 30%),
        linear-gradient(135deg, #3020a7 0%, #533ec7 100%) !important;
    box-shadow: 0 26px 60px rgba(24, 3, 145, 0.18);
}

.bibliotheque-texte,
.bibliotheque-visuel {
    min-width: 0 !important;
}

.bibliotheque-contenu .titre-section {
    display: flex;
    align-items: center;
    margin: 0 0 10px !important;
    color: #fff !important;
}

.bibliotheque-contenu .titre-section > i:first-child {
    color: var(--pm-accent) !important;
    background: rgba(255, 255, 255, 0.12);
}

.bibliotheque-contenu .titre-section::after {
    display: none !important;
}

.bibliotheque-contenu .sous-titre {
    margin: 0 !important;
    color: rgba(255, 255, 255, 0.78) !important;
}

.bibliotheque-description {
    max-width: 560px !important;
    margin: 24px 0 30px !important;
    color: rgba(255, 255, 255, 0.94) !important;
    font-size: 1rem !important;
    line-height: 1.75 !important;
}

.bibliotheque-description p {
    margin: 0;
    color: inherit !important;
}

.bibliotheque-contenu .btn-bibliotheque {
    padding: 13px 20px !important;
    color: var(--pm-primary) !important;
    background: #fff !important;
    box-shadow: 0 12px 28px rgba(13, 4, 74, 0.2) !important;
}

.bibliotheque-contenu .btn-bibliotheque:hover {
    color: var(--pm-primary-dark) !important;
    background: var(--pm-accent) !important;
}

.bibliotheque-visuel {
    display: grid;
    place-items: center;
}

.bibliotheque-visuel .logo-img {
    width: min(100%, 280px) !important;
    max-width: 280px !important;
    height: auto !important;
    filter: drop-shadow(0 14px 26px rgba(12, 4, 68, 0.2)) !important;
}

/* Contact */
.section-infos-contact {
    background: var(--pm-soft) !important;
}

.grille-infos {
    gap: 22px !important;
}

.carte-info {
    padding: 28px 24px !important;
}

.info-icone {
    border-radius: 15px !important;
    color: var(--pm-primary) !important;
    background: #efedff !important;
}

.formulaire-container {
    overflow: hidden;
    border: 1px solid var(--pm-line) !important;
    border-radius: 24px !important;
    background: #fff !important;
    box-shadow: var(--pm-shadow) !important;
}

.input-container input,
.input-container textarea,
.form-contact input,
.form-contact textarea {
    border: 1px solid var(--pm-line) !important;
    border-radius: 10px !important;
    background: #f9f9fc !important;
}

.input-container input:focus,
.input-container textarea:focus,
.form-contact input:focus,
.form-contact textarea:focus {
    border-color: rgba(24, 3, 145, 0.5) !important;
    box-shadow: 0 0 0 4px rgba(24, 3, 145, 0.08) !important;
}

.btn-envoyer {
    border-radius: 10px !important;
    background: var(--pm-primary) !important;
}

.map-container {
    overflow: hidden;
    border: 1px solid var(--pm-line);
    border-radius: 20px !important;
    box-shadow: var(--pm-shadow);
}

/* Histoire et université */
.section-historique {
    background: #fbfbfe !important;
}

.historique-contenu {
    gap: 46px !important;
    align-items: start !important;
}

.historique-texte {
    padding: 34px !important;
    border: 1px solid var(--pm-line);
    border-radius: 22px;
    background: #fff;
    box-shadow: var(--pm-shadow);
}

.historique-paragraphe {
    color: #49485b !important;
    font-size: 0.98rem !important;
    line-height: 1.85 !important;
}

.historique-personnalites {
    border: 0 !important;
    border-left: 4px solid var(--pm-accent) !important;
    border-radius: 12px !important;
    background: #fff8e8 !important;
}

.timeline {
    padding: 24px !important;
    border: 1px solid var(--pm-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--pm-shadow);
}

.timeline-content {
    border-radius: 12px !important;
    box-shadow: none !important;
}

.campuses-container {
    gap: 22px !important;
}

/* Gouvernance */
.directors-nav {
    top: 76px !important;
    border-bottom: 1px solid var(--pm-line) !important;
    background: rgba(255, 255, 255, 0.94) !important;
    box-shadow: 0 12px 30px rgba(29, 20, 79, 0.08) !important;
    backdrop-filter: blur(16px);
}

.directors-nav .nav-link {
    border-radius: 9px !important;
    color: var(--pm-muted) !important;
    font-weight: 700 !important;
}

.directors-nav .nav-link.active,
.directors-nav .nav-link:hover {
    color: #fff !important;
    background: var(--pm-primary) !important;
}

.director-content,
.content-details {
    border-radius: 22px !important;
}

.roles-grid {
    gap: 18px !important;
}

.role-card {
    padding: 24px !important;
}

.role-icon,
.header-icon {
    color: var(--pm-primary) !important;
    background: #efedff !important;
}

/* Portraits de la gouvernance : cadrage circulaire uniforme au cœur des sections. */
.ucaouuc-directors .header-icon {
    overflow: hidden;
    border: 3px solid #fff;
    box-shadow: 0 8px 22px rgba(24, 3, 145, 0.15);
}

.ucaouuc-directors .header-image {
    width: 100% !important;
    height: 100% !important;
    display: block;
    border-radius: 50%;
    object-fit: cover;
    object-position: center top;
}

.ucaouuc-directors .content-image {
    display: flex;
    justify-content: center;
}

.ucaouuc-directors .president-image-container {
    width: min(100%, 280px);
    position: relative;
    margin-inline: auto;
    text-align: center;
}

.ucaouuc-directors img.president-image {
    width: 260px !important;
    height: 260px !important;
    max-width: 100%;
    display: block;
    margin: 0 auto;
    border: 8px solid #fff;
    border-radius: 50% !important;
    background: #efedff;
    object-fit: cover;
    object-position: center top;
    box-shadow: 0 18px 42px rgba(24, 3, 145, 0.18) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

.ucaouuc-directors img.president-image:hover {
    transform: translateY(-5px) scale(1.015);
    box-shadow: 0 24px 52px rgba(24, 3, 145, 0.24) !important;
}

.ucaouuc-directors .president-name-badge {
    width: calc(100% - 20px);
    position: relative;
    z-index: 2;
    margin: -25px auto 0;
    padding: 14px 13px;
    border: 1px solid var(--pm-line);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 12px 28px rgba(24, 3, 145, 0.13);
    backdrop-filter: blur(10px);
}

.ucaouuc-directors .president-name {
    margin: 0 0 5px;
    color: var(--pm-ink);
    font-size: 0.98rem;
    line-height: 1.3;
}

.ucaouuc-directors .president-title {
    margin: 0;
    color: var(--pm-muted);
    font-size: 0.74rem;
    line-height: 1.45;
}

.ucaouuc-directors .president-title > strong {
    display: block;
    margin-bottom: 3px;
    color: #8b0000;
    font-size: 0.8rem;
}

.ucaouuc-directors .president-title span {
    display: block;
}

/* Pédagogie */
.page-nav {
    border-bottom: 1px solid var(--pm-line) !important;
    background: rgba(255, 255, 255, 0.94) !important;
    box-shadow: 0 12px 30px rgba(29, 20, 79, 0.07) !important;
    backdrop-filter: blur(14px);
}

.page-nav .nav-link,
.tab-link {
    border-radius: 9px !important;
    font-weight: 700 !important;
}

.page-nav .nav-link.active,
.tab-link.active {
    color: #fff !important;
    background: var(--pm-primary) !important;
}

.grid-layout {
    gap: 22px !important;
}

.card {
    padding: 28px !important;
}

.card-icon {
    border-radius: 15px !important;
    color: var(--pm-primary) !important;
    background: #efedff !important;
}

.tab-content,
.responsive-table-container {
    overflow: hidden;
    border: 1px solid var(--pm-line) !important;
    border-radius: 18px !important;
    background: #fff;
    box-shadow: var(--pm-shadow);
}

/* Mot du Président */
.section-president {
    background: #fbfbfe !important;
}

.carte-president,
.message-president,
.cadre-citation,
.encadre-special {
    border: 1px solid var(--pm-line) !important;
    border-radius: 22px !important;
    background: #fff !important;
    box-shadow: var(--pm-shadow) !important;
}

.cadre-photo {
    border-radius: 20px !important;
    box-shadow: var(--pm-shadow) !important;
}

.paragraphe-message {
    color: #49485b !important;
    line-height: 1.85 !important;
}

.section-citation {
    background: linear-gradient(135deg, var(--pm-primary-dark), var(--pm-primary)) !important;
}

/* Téléchargements */
.pm-download-hero {
    display: grid;
    place-items: center;
    background:
        linear-gradient(108deg, rgba(12, 3, 72, 0.9), rgba(24, 3, 145, 0.76)),
        url("../img/baniere-actu-ucao-uuc.jpg") center / cover;
}

.telechargements-section {
    background: var(--pm-soft) !important;
}

.telechargements-section > .container > .section-titre {
    display: none;
}

.telechargements-grid {
    gap: 26px !important;
}

.telechargement-item {
    overflow: hidden;
    padding-bottom: 24px !important;
}

.telechargement-item img {
    width: 100% !important;
    height: 210px !important;
    object-fit: cover !important;
}

.telechargement-item h2,
.telechargement-item p,
.telechargement-item .telechargement-date,
.telechargement-item .btn-telecharger {
    margin-inline: 22px !important;
}

.telechargement-item h2 {
    margin-top: 20px !important;
    color: var(--pm-ink) !important;
    font-size: 1.08rem !important;
}

.btn-telecharger {
    border-radius: 9px !important;
    color: #fff !important;
    background: var(--pm-primary) !important;
}

/* Article */
.article-main {
    background: #fbfbfe !important;
}

.contenu-article,
.article-body,
.gallery-section,
.related-articles {
    border: 1px solid var(--pm-line) !important;
    border-radius: 22px !important;
    background: #fff !important;
    box-shadow: var(--pm-shadow) !important;
}

.article-text {
    color: #414052 !important;
    font-size: 1rem !important;
    line-height: 1.9 !important;
}

.gallery-grid {
    gap: 14px !important;
}

.gallery-item {
    overflow: hidden;
    border-radius: 13px !important;
}

.back-btn,
.share-btn {
    border-radius: 9px !important;
}

/* Avertissement */
.avertissement-main {
    background:
        radial-gradient(circle at 82% 18%, rgba(243, 167, 18, 0.12), transparent 26%),
        var(--pm-soft) !important;
}

.avertissement-container {
    border: 1px solid var(--pm-line) !important;
    border-radius: 24px !important;
    box-shadow: var(--pm-shadow) !important;
}

.btn-retour {
    border-radius: 10px !important;
    background: var(--pm-primary) !important;
}

/* Appel à l'action commun en fin de page */
.pm-page-cta {
    padding: 20px 0 96px;
    background: #fbfbfe;
}

.pm-page-cta .container {
    width: min(1180px, calc(100% - 40px));
    max-width: 1180px;
}

.pm-page-cta-card {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 25px;
    overflow: hidden;
    padding: 40px 42px;
    border-radius: 24px;
    color: #fff;
    background:
        radial-gradient(circle at 92% 0%, rgba(243, 167, 18, 0.3), transparent 31%),
        linear-gradient(135deg, var(--pm-primary-dark), var(--pm-primary));
    box-shadow: 0 25px 60px rgba(24, 3, 145, 0.22);
}

.pm-page-cta-card::after {
    content: "";
    position: absolute;
    right: -65px;
    bottom: -90px;
    width: 240px;
    height: 240px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 50%;
}

.pm-page-cta-icon {
    width: 70px;
    height: 70px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 18px;
    color: var(--pm-accent);
    background: rgba(255, 255, 255, 0.1);
    font-size: 1.65rem;
}

.pm-page-cta-copy span {
    color: var(--pm-accent);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.pm-page-cta-copy h2 {
    margin: 7px 0 7px;
    color: #fff !important;
    font-size: clamp(1.55rem, 3vw, 2.35rem);
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.pm-page-cta-copy p {
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.9rem;
}

.pm-page-cta-actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 9px;
}

.pm-page-cta-actions a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 15px;
    border: 1px solid rgba(255, 255, 255, 0.38);
    border-radius: 9px;
    color: #fff;
    font-size: 0.78rem;
    font-weight: 750;
    text-decoration: none;
}

.pm-page-cta-actions a:first-child {
    color: var(--pm-primary);
    border-color: #fff;
    background: #fff;
}

@media (max-width: 900px) {
    .banniere-universite,
    .banniere-admission,
    .banniere-connexion,
    .banniere-contact,
    .banniere-article,
    .banniere-actualite,
    .banniere-hero,
    .hero-section,
    .directors-hero,
    .pm-download-hero,
    .slide-universite,
    .slide-admission,
    .slide-connexion,
    .slide-contact {
        min-height: 500px !important;
    }

    .historique-texte {
        padding: 26px !important;
    }

    .directors-nav {
        top: 68px !important;
    }

    .pm-page-cta-card {
        grid-template-columns: auto 1fr;
    }

    .pm-page-cta-actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
        padding-left: 95px;
    }

    .bibliotheque-contenu {
        grid-template-columns: 1fr;
        gap: 32px !important;
        padding: 36px 32px !important;
        text-align: left !important;
    }

    .bibliotheque-description {
        margin-inline: 0 !important;
    }

    .pm-fees-extras {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    body .header-haut {
        display: none !important;
    }

    body .header-haut .container {
        display: none !important;
    }

    body .header-haut .info-defilante {
        width: 100% !important;
        min-width: 0 !important;
        display: block !important;
        margin: 0 !important;
        font-size: 0.7rem;
    }

    body .header-haut .info-defilante-contenu {
        line-height: 24px;
    }

    body .header-haut .reseaux-sociaux,
    body .header-haut .heure-date {
        display: none !important;
    }

    body .header-principal,
    body .header-principal .nav-principale {
        min-height: 70px;
    }

    body .header-principal > .container {
        width: calc(100% - 28px) !important;
        max-width: none !important;
        margin-inline: auto !important;
        padding-inline: 0 !important;
        position: relative;
    }

    body .header-principal .nav-principale {
        width: 100%;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding-block: 7px !important;
    }

    body .header-principal .menu-principal,
    body .header-principal .btn-connexion {
        display: none !important;
    }

    body .header-principal .nav-droite {
        display: flex !important;
        flex: 0 0 auto;
        margin-left: auto;
        position: static !important;
        z-index: 3;
        transform: none !important;
    }

    body #btn-tiroir.btn-menu-mobile {
        width: 42px;
        height: 42px;
        display: flex !important;
        position: fixed !important;
        inset: 14px 14px auto auto !important;
        z-index: 1200;
        transform: none;
    }

    body .header-principal.scrolled #btn-tiroir.btn-menu-mobile {
        inset: 9px 14px auto auto !important;
    }

    body .header-principal.scrolled,
    body .header-principal.scrolled .nav-principale {
        min-height: 60px;
    }

    body .header-principal.scrolled .nav-logo img,
    body .header-principal.scrolled .logo img {
        height: 44px !important;
    }

    body > .container,
    body > section > .container,
    body > main > .container,
    body > main section > .container,
    .page-actualite > section > .container,
    .page-actualite > .banniere-actualite > .container {
        width: min(calc(100% - 28px), 1180px);
    }

    .section-admission,
    .section-articles-recents,
    .section-tous-articles,
    .section-infos-contact,
    .section-formulaire,
    .section-map,
    .section-portails,
    .section-comptes,
    .section-bibliotheque,
    .section-historique,
    .university-section,
    .telechargements-section,
    .section-president,
    .article-main,
    .ucaouuc-directors .director-section,
    main > .section {
        padding-top: 62px !important;
        padding-bottom: 62px !important;
    }

    .slide-titre,
    .hero-title,
    .titre-hero,
    .titre-page,
    .pm-download-hero h1 {
        width: 100% !important;
        max-width: 340px !important;
        font-size: clamp(1.85rem, 9vw, 2.6rem) !important;
        line-height: 1.12 !important;
        text-wrap: balance;
    }

    .slide-sous-titre,
    .hero-subtitle,
    .sous-titre-hero,
    .banniere-actualite .sous-titre,
    .pm-download-hero p {
        width: 100% !important;
        max-width: 340px !important;
        white-space: normal !important;
        overflow-wrap: anywhere;
        font-size: 0.94rem !important;
        line-height: 1.65 !important;
    }

    .slide-contenu,
    .hero-content,
    .contenu-hero,
    .banniere-actualite > .container,
    .pm-download-hero .container {
        width: min(calc(100% - 28px), 1180px) !important;
        max-width: calc(100% - 28px) !important;
        box-sizing: border-box !important;
        padding-inline: 14px !important;
    }

    .pm-hero-button {
        width: 100%;
    }

    .titre-section,
    .section-title,
    .section-titre,
    .section-titre-interne,
    .section-header h2,
    .section-header .section-title {
        font-size: clamp(1.35rem, 6.6vw, 1.8rem) !important;
    }

    .titre-section > i:first-child,
    .section-title > i:first-child,
    .section-titre > i:first-child,
    .section-titre-interne > i:first-child {
        width: 36px !important;
        height: 36px !important;
        min-width: 36px !important;
        max-width: 36px !important;
        flex-basis: 36px !important;
        font-size: 0.95rem !important;
    }

    .accordion-header {
        padding: 14px 15px !important;
        font-size: 0.88rem !important;
    }

    .cadre-info {
        align-items: flex-start !important;
        padding: 14px 15px !important;
    }

    .details-frais-section {
        padding: 20px 14px !important;
    }

    .details-frais-titre {
        align-items: flex-start;
        font-size: 1.12rem !important;
    }

    .pm-fees-table-wrap::before {
        content: "Faites glisser le tableau horizontalement";
        display: block;
        padding: 9px 13px;
        color: var(--pm-primary);
        background: #f2f0ff;
        font-size: 0.68rem;
        font-weight: 700;
        text-align: center;
    }

    .pm-fees-table {
        font-size: 0.8rem;
    }

    .pm-fees-table th,
    .pm-fees-table td {
        padding: 12px 10px;
    }

    .pm-fees-extras article {
        grid-template-columns: auto minmax(0, 1fr);
        align-items: start;
        padding: 15px;
    }

    .pm-fees-extras strong {
        grid-column: 2;
        justify-self: start;
    }

    .bibliotheque-contenu {
        gap: 26px !important;
        padding: 28px 22px !important;
        border-radius: 18px !important;
    }

    .bibliotheque-contenu .titre-section {
        align-items: flex-start;
    }

    .bibliotheque-visuel .logo-img {
        max-width: 220px !important;
    }

    .pm-page-cta {
        padding-bottom: 70px;
    }

    .pm-page-cta .container {
        width: min(calc(100% - 28px), 1180px);
    }

    .pm-page-cta-card {
        grid-template-columns: 1fr;
        padding: 30px 24px;
    }

    .pm-page-cta-actions {
        grid-column: auto;
        padding-left: 0;
    }

    .pm-page-cta-actions a {
        flex: 1;
    }

    .historique-texte,
    .carte-president,
    .message-president {
        padding: 22px !important;
    }

    .onglets-admission {
        overflow-x: auto;
        justify-content: start !important;
    }

    .onglet {
        flex: 0 0 auto !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    body *,
    body *::before,
    body *::after {
        transition: none !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
