/*!
Theme Name: Abbe Lab
Theme URI: https://bebold.ch
Author: bebold
Author URI: https://bebold.ch
Description: Thème du site Abbe Lab
Version: 1.0.0
Tested up to: 6.6
Requires PHP: 8.3
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: bebold
*/

/* ==========================================================================
   Variables
   ========================================================================== */

:root {
	--color-primary: #101D54;
	--color-link: #1F4ADA;
}

/* ==========================================================================
   Reset & Base
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	color: var(--color-primary);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

a {
	text-decoration: none;
	color: inherit;
}

.site-main a {
	color: var(--color-link);
	font-weight: 600;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* ==========================================================================
   Breadcrumb
   ========================================================================== */

.breadcrumb {
	margin-bottom: 32px;
	font-size: 16px;
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	line-height: 1em;
	color: var(--color-link);
}

.breadcrumb a {
	color: var(--color-link);
	text-decoration: none;
	font-weight: 600;
}

.breadcrumb a:hover {
	opacity: 0.8;
}

.breadcrumb__sep {
	margin: 0 0 0 4px;
	color: var(--color-link);
}

.breadcrumb__current {
	font-weight: 600;
	color: var(--color-link);
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
	background: #fff;
}

.site-header__container {
	display: flex;
	align-items: center;
	max-width: 1280px;
	margin: 0 auto;
	padding: 30px 40px 30px 40px;
	gap: 40px;
	justify-content: space-between;
}

.site-header__logo {
	flex-shrink: 0;
}

.site-header__logo img {
	height: 40px;
	width: auto;
	max-height: 40px;
}

.site-header__logo img[src$=".svg"] {
	width: 170px;
	height: auto;
}

.site-header__nav {
	margin-left: auto;
}

.site-header__menu-toggle {
	display: none;
}
.rst-toggle-menu {
    padding: 0px;
    width: 35px;
    height: auto;
    cursor: pointer;
    transition: all .2s ease;
    margin-top: 0px;
	display: none;
}
.menu-show .rst-toggle-menu {
    position: relative;
    height: 21px;
    width: 36px;
}
.rst-header-right{
	display: flex;
    align-items: center;
    gap: 20px;
}
.over-none{
	overflow: hidden;
}
.menu-show .rst-toggle-menu span:first-child {
    transform: translateY(-1px) rotate(45deg);
    position: absolute;
    left: 5px;
    margin: 0;
}
.menu-show .rst-toggle-menu span:nth-child(2) {
    opacity: 0;
}
.menu-show .rst-toggle-menu span:last-child {
    transform: translateY(0px) rotate(-45deg);
    position: absolute;
    left: 3px;
    top: 24px;
}
.rst-toggle-menu span {
    display: block;
    transition: all .4s ease;
    width: 100%;
    height: 3px;
    background: #101D54 !important;
    margin: 0px auto;
    margin-bottom: 6px;
    border-radius: 2px;
    -webkit-transform-origin: center center;
    transform-origin: center center;
    -webkit-transform-origin: top left;
    transform-origin: top left;
}
.rst-toggle-menu span:last-child {
    margin-bottom: 0;
}
.site-header__menu {
	display: flex;
	align-items: center;
	gap: 30px;
}

.site-header__menu > li > a {
	font-size: 16px;
	line-height: 20px;
	font-weight: 600;
	display: block;
	padding: 5px 0;
	transition: opacity 0.4s;
}
.site-header__menu > li{
	position: relative;
}
.site-header__menu > li:after{
	content:"";
	height: 11px;
	top: 100%;
	left: 0;
	width: 100%;
	position: absolute;
}
.site-header__menu .sub-menu{
	width: 300px;
	border-top: 1px solid var(--grey, #101D54);
	background: #fff;
	position: absolute;
	top: 100%;
	left: 0;
	display: none;
	margin-top: 11px;
	z-index: 999;
}
.site-header__menu > li:hover .sub-menu{
	display: block;
}
.site-header__menu .sub-menu li a{
	display: block;
	font-weight: 400;
	font-size: 14px;
	line-height: 16px;
	padding: 15px 20px;
	padding-bottom: 14px;
	letter-spacing: 0%;
	border-bottom: 1px solid var(--grey, #101D54);

}
.site-header__menu .sub-menu li a:hover{
	font-weight: 600;
}
.site-header__menu > li:hover > a {
	opacity: 0.8;
}

/* Language switcher (header) */

.site-header__lang {
	position: relative;
	flex-shrink: 0;
}

.site-header__lang-toggle {
	display: flex;
	align-items: center;
	gap: 7px;
	background: none;
	border: none;
	cursor: pointer;
	font-size: 16px;
	font-weight: 600;
	color: inherit;
	padding: 5px 10px;
}




.site-header__lang-list {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	padding: 8px 0;
	min-width: 120px;
	z-index: 100;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.site-header__lang:hover .site-header__lang-list,
.site-header__lang:focus-within .site-header__lang-list {
	display: block;
}

.site-header__lang-link {
	display: block;
	padding: 6px 16px;
	font-size: 16px;
	transition: background 0.2s;
}

.site-header__lang-link:hover {
	background: #f5f5f5;
}

.site-header__lang-item.is-active .site-header__lang-link {
	font-weight: 600;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer__main {
	background: var(--color-primary);
	color: #fff;
	padding: 35px 0;
}

.site-footer__main-container {
	display: flex;
	align-items: flex-start;
	gap: 60px;
}

.site-footer__logo {
	flex-shrink: 0;
}

.site-footer__logo img {
	height: 40px;
	width: auto;
	max-height: 40px;
}

.site-footer__logo img[src$=".svg"] {
	width: 170px;
	height: auto;
}

.site-footer__columns {
	display: flex;
	flex: 1;
	gap: 123.5px;
	justify-content: flex-end;
}
.site-footer__col.site-footer__col--1{
	min-width: 135px;
}
.site-footer__col.site-footer__col--2{
	min-width: 246px;
}
.site-footer__col {
	min-width: 0;
}

.site-footer__links {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.site-footer__link {
	font-size: 16px;
	line-height: 20px;
	font-weight: 700;
	transition: opacity 0.2s;
}

.site-footer__link:hover {
	opacity: 1;
}

.site-footer__lang-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.site-footer__lang-link {
	font-size: 16px;
	line-height: 20px;
	font-weight: 700;
	opacity: 1;
	transition: opacity 0.2s;
}

.site-footer__lang-link:hover {
	opacity: 1;
}

.site-footer__lang-item.is-active .site-footer__lang-link {
	font-weight: 700;
	opacity: 1;
}

/* Footer bottom */

.site-footer__bottom {
	background: #fff;
	color: var(--color-link);
	padding: 10px 0;
}

.site-footer__bottom-container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 1420px;
	margin: 0 auto;
	padding: 0 40px;
}

.site-footer__copyright {
	font-size: 14px;
	line-height: 20px;
}

.site-footer__copyright p {
	margin: 0;
}

.site-footer__copyright a {
	font-weight: 700;
}
.site-footer{
	margin-top: 23px;
	position: relative;
}
.backtotop{
	width: 45px;
	height: 45px;
	background: var(--Blue, #1F4ADA);
	border-radius: 50%;
	position: absolute;
	right: 60px;
	top: -23px;
	z-index: 999;
	display: flex;
	align-items: center;
	justify-content: center;	
}
.site-footer__bottom-links {
	display: flex;
	gap: 30px;
}

.site-footer__bottom-link {
	font-size: 14px;
	line-height: 20px;
	display: block;
	font-weight: 700;
}

/* ==========================================================================
   Flexible - Bandeau page d'accueil
   ========================================================================== */

.bandeau-accueil {
	position: relative;
	height: 300px;
	overflow: hidden;
}

.bandeau-accueil__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}


/* ==========================================================================
   Flexible - Image texte et lien
   ========================================================================== */



.image-texte-lien__container {
	display: flex;
	align-items: flex-start;
	gap: 60px;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 40px;
}

.image-texte-lien--image-droite .image-texte-lien__container {
	flex-direction: row-reverse;
}

.image-texte-lien__media {
	flex-shrink: 0;
	width: 260px;
}

.image-texte-lien__image {
	width: 100%;
	height: auto;
}

.image-texte-lien__image--grayscale {
	filter: grayscale(100%);
}

.image-texte-lien__content {
	flex: 1;
	min-width: 0;
}

.image-texte-lien__titre {
	margin: 0 0 8px;
	font-size: 24px;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--color-primary);
}

.image-texte-lien__sous-titre {
	margin: 0 0 20px;
	font-size: 16px;
	font-weight: 700;
	color: var(--color-primary);
}

.image-texte-lien__texte {
	color: var(--color-primary);
}

.image-texte-lien__texte p {
	margin: 0 0 12px;
}

.image-texte-lien__texte p:last-child {
	margin-bottom: 0;
}



/* ==========================================================================
   Flexible - Bandeau page interne
   ========================================================================== */

.bandeau-interne {
	position: relative;
	height: 100px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bandeau-interne__image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	z-index: 0;
}

.bandeau-interne__titre {
	position: relative;
	z-index: 1;
	margin: 0;
	color: #fff;
	font-size: 26px;
	font-weight: 500;
	text-align: center;
	line-height: 1.2em;
}

/* ==========================================================================
   Flexible - Personnes par catégorie
   ========================================================================== */

.personnes-categorie {
	padding: 0 0 130px 0;
}


.personnes-categorie__titre {
	margin: -7px 0 21px;
}

.personnes-categorie__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px 15px;
}

.personnes-categorie__item {
	display: flex;
    align-items: center;
    gap: 0px;
    padding: 0px;
    background: #F2F4F8;
}

.personnes-categorie__photo {
	flex-shrink: 0;
    width: 86px;
    min-width: 86px;
    height: 95px;
    overflow: hidden;
}

.personnes-categorie__img {
	width: 100%;
    height: 100%;
    object-fit: cover;
}

.personnes-categorie__info {
	flex: 1;
	min-width: 0;
    padding: 10px 30px;
    padding-left: 40px;
}

.personnes-categorie__nom {
	font-size: 20px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--color-primary);
    text-decoration: none;
}

a.personnes-categorie__nom {
	color: var(--color-link);
	display: flex;
    gap: 12px;
    justify-content: space-between;
    align-items: center;
}

a.personnes-categorie__nom:hover {
	opacity: 0.8;
}



/* ==========================================================================
   Flexible - Anciens membres
   ========================================================================== */

.anciens-membres {
	padding: 0 0 130px 0;
}



.anciens-membres__titre {
	margin: -7px 0 17px;
}

.anciens-membres__list {
	display: flex;
	flex-direction: column;
}

.anciens-membres__item {
	display: block;
	padding: 0 0 10px 0;
	font-size: 16px;
	line-height: 1.4em;
	letter-spacing: 3%;
	color: var(--color-primary);
}
.anciens-membres__item:last-child{
	padding-bottom: 0 !important;
}
.anciens-membres__nom {
	display: inline;
}

.anciens-membres__link {
	color: var(--color-link);
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 5px;
	font-weight: 600;
	letter-spacing: 5%;
}

.anciens-membres__link:hover {
	opacity: 0.8;
}

.anciens-membres__name-text {
	font-weight: 600;
	letter-spacing: 0;
}

.anciens-membres__chevron {

}

.anciens-membres__description {
	display: inline;
	color: var(--color-primary);
}
/* ==========================================================================
   Page template - Lectures & Medias
   ========================================================================== */

.lectures-medias {
	padding: 68px 0 128px;
}


.lectures-medias__nav {
	display: flex;
	gap: 40px;
	justify-content: space-between;
	margin-bottom: 60px;
}

.lectures-medias__nav-link {
	font-size: 16px;
	font-weight: 600;
	line-height: 1em;
	color: var(--color-link);
	text-decoration: none;
	letter-spacing: 5%;
	display: flex;
	gap: 5px;
	text-align: right;
	    align-items: center;
	transition: opacity 0.2s;
}
.lectures-medias__nav-link.first{
	text-align: left;
	    flex-direction: row-reverse;
}
.lectures-medias__nav-link.first svg{
	transform: rotate(180deg);
    display: block;
}
.lectures-medias__nav-link:hover {
	opacity: 0.8;
}



.lectures-medias__section {
	margin-bottom: 60px;
}

.lectures-medias__section-title {
	margin: 0 0 22px;
}

.lectures-medias__item {
	display: flex;
	gap: 116px;
	padding: 0 0 80px 0;
}
.lectures-medias__item:last-child{
	padding-bottom: 0;
}
.rst-paging-next-prev{
	display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
	margin-top: 128px;
}
.lectures-medias__item-image {
	flex-shrink: 0;
	width: 390px;
	overflow: hidden;
}

.lectures-medias__item-image img {
	width: 100%;
	height: 200px;
	    object-fit: cover;
	display: block;
}

.lectures-medias__item-content {
	flex: 1;
	min-width: 0;
}

.lectures-medias__item-meta {
	margin: 0 0 0px;
	font-weight: 500;
	font-size: 14px;
	line-height: 1.3;
	color: #101D54;
}

.lectures-medias__item-title {
	margin: -1px 0 19px;
	font-size: 20px;
	line-height: 1.3em;
	font-weight: 500;
	color: var(--color-primary);
}

.lectures-medias__item-text {
	font-size: 16px;
	line-height: 1.4;
	letter-spacing: 3%;
	color: var(--color-primary);
}
.lectures-medias__item-text strong,.lectures-medias__item-text a{
	font-weight: 600;
	letter-spacing: 0;
}

.lectures-medias__item-text p {
	margin: 0 0 12px;
}

.lectures-medias__item-text p:last-child {
	margin-bottom: 0;
}

.lectures-medias__item-link {
	display: flex;
	gap: 5px;
	margin-top: 10px;
	font-size: 16px;
	letter-spacing: 5%;
	line-height: 1em;
	font-weight: 600;
	color: var(--color-link);
	text-decoration: none;
}

.lectures-medias__item-link:hover {
	opacity: 0.8;
}

/* Scroll-and-reveal animations */

.reveal-item {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal-item.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.lectures-medias__item.is-highlighted {
	animation: highlight-flash 1.5s ease;
}

@keyframes highlight-flash {
	0%, 100% { background: transparent; }
	30% { background: rgba(31, 74, 218, 0.06); }
}

/* ==========================================================================
   Page template - Teaching & Lectures
   ========================================================================== */

.teaching-item {
	display: flex;
	gap: 116px;
	padding: 0px 0 76px 0;
}
.teaching-item:last-child{
	padding: 0;
}
.teaching-item__content {
	flex: 1;
	min-width: 0;
}

.teaching-item__media {
	flex-shrink: 0;
	width: 390px;
}

.rst-list-teaching{
	margin-top: 72px;
}
.teaching-item__media img {
	width: 100%;
	height: 200px;
	object-fit: cover;
	display: block;
}

.teaching-item__title {
	margin: -5px 0 10px;
	font-size: 20px;
	line-height: 1.3em;
	font-weight: 500;
	color: var(--color-primary);
}

.teaching-item__periode {
	margin: 0 0 21px;
	font-size: 16px;
	line-height: 1.3em;
	font-weight: 600;
	color: var(--color-primary);
}


.teaching-item__label {
	margin: 0 0 10px;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3em;
	color: var(--color-primary);
}

.teaching-item__text {
	font-size: 16px;
	line-height: 1.4;
	letter-spacing: 3%;
	color: var(--color-primary);
}

.teaching-item__text ul {
	list-style: disc;
	padding-left: 20px;
	margin: 0 0 11px;
}

.teaching-item__text ul li {
	margin-bottom: 0px;
}

.teaching-item__text p {
	margin: 0 0 11px;
}

.teaching-item__text p:last-child {
	margin-bottom: 0;
}

.teaching-item__link {
	display: flex;
	align-items: center;
	gap: 5px;
	margin-top: 28px;
	font-size: 16px;
	line-height: 1em;
	font-weight: 600;
	color: var(--color-link);
	text-decoration: none;
}

.teaching-item__link:hover {
	opacity: 0.8;
}

/* ==========================================================================
   Single - Projet (page détail)
   ========================================================================== */

.projet-detail {
	padding: 68px 0 130px;
}

.projet-detail .breadcrumb{
	margin-bottom: 57px;
}

.projet-detail__section-title {
	margin: -7px 0 18px;
}

/* About */

.projet-detail__about {
	margin-bottom: 124px;
}

.projet-detail__about-layout {
	display: flex;
	gap: 116px;
	
}

.projet-detail__about-text {
	flex: 1;
	min-width: 0;
	font-size: 16px;
	line-height: 1.3;
	letter-spacing: 3%;
	color: var(--color-primary);
}
.projet-detail__about-text strong{
	font-weight: 600;
	letter-spacing: 0%;
	line-height: 1.3;
}
.projet-detail__about-text a{
	font-weight: 700;
	letter-spacing: 0%;
	text-decoration: underline;
}
.projet-detail__bottom-link{
	display: flex;
    align-items: center;
    margin-top: 11px;
    font-size: 16px;
    font-weight: 600 !important;
    color: var(--color-link);
    line-height: 1em;
    letter-spacing: 5%;
    gap: 5px;
	text-decoration: none !important;
}
.projet-detail__about-text p {
	margin: 0 0 11px;
}
.projet-detail__about-text ol li,
.projet-detail__about-text ul li {
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0;
}
.projet-detail__about-text ol,
.projet-detail__about-text ul {
	padding-left: 20px;
	margin: 0 0 12px;
}

.projet-detail__about-text ol {
	list-style: decimal;
}

.projet-detail__about-text ul {
	list-style: disc;
}

.projet-detail__about-image {
	flex-shrink: 0;
	width: 289px;
}

.projet-detail__about-image img {
	width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

/* News */

.projet-detail__news {
	padding-top: 20px;
}

.projet-detail__news-title {
	margin: 0 0 10px;
	font-size: 20px;
	line-height: 1.3em;
	font-weight: 500;
	color: var(--color-primary);
}

.projet-detail__news-text {
	font-size: 16px;
	    letter-spacing: 3%;
	line-height: 1.4;
	color: var(--color-primary);
}

.projet-detail__news-text p {
	margin: 0 0 11px;
}
.projet-detail__news-text p:last-child {
    margin: 0 0 0px;
}

/* Membres grid */

.projet-detail__membres {
	padding: 0;
}

.projet-detail__membres-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px 15px;
}

.projet-detail__membre-item {
	display: flex;
	align-items: center;
	gap: 0px;
	padding: 0px;
	background: #F2F4F8;

}
.projet-detail__membre-info{
	padding: 10px 30px;
	padding-left: 40px;
}
.projet-detail__membre-photo {
	flex-shrink: 0;
	width: 86px;
	min-width: 86px;
	height: 95px;
	overflow: hidden;
}
.projet-detail__membres .projet-detail__section-title{
	margin-bottom: 22px;
}

.projet-detail__membre-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.projet-detail__membre-info {
	flex: 1;
	min-width: 0;
}

.projet-detail__membre-nom {
	font-size: 20px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--color-primary);
	text-decoration: none;
}

a.projet-detail__membre-nom {
	color: var(--color-link);
	display: flex;
	gap: 12px;
	justify-content: space-between;
	align-items: center;
}

a.projet-detail__membre-nom:hover {
	opacity: 0.8;
}


/* Bottom section */

.projet-detail__bottom-section {
	padding: 130px 0 0;
}
.projet-detail__bottom-section .projet-detail__section-title{
	margin-bottom: 20px;
}

.projet-detail__bottom-link:hover {
	opacity: 0.8;
}

/* ==========================================================================
   Flexible - Projets récents (cards horizontales)
   ========================================================================== */


/* ==========================================================================
   Page template - Projets (vue liste)
   ========================================================================== */

.projets-liste {
	padding: 68px 0 130px;
}

.projets-liste__container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 40px;
}

.projets-liste__item {
	display: flex;
	gap: 116px;
	padding:  0 0 130px 0;
}
.projets-liste__item:last-child{
	padding: 0;
}
.projets-liste__item:nth-child(2n) {
	flex-direction: row-reverse;
}

.projets-liste__item-image {
	flex-shrink: 0;
	width: 390px;
}

.projets-liste__item-image img {
	width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.projets-liste__item-content {
	flex: 1;
	min-width: 0;
}

.projets-liste__item-title {
	margin: -7px 0 17px;
	font-size: 32px;
	font-weight: 500;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--color-primary);
}

.projets-liste__item-subtitle {
	margin: 0 0 18px;
	font-size: 20px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--color-primary);
}

.projets-liste__item-intro {
	font-size: 16px;
	line-height: 1.4;
	color: var(--color-primary);
	margin-bottom: 12px;
	letter-spacing: 3%;
}
.projets-liste__item-intro strong{
	font-weight: 600;
	letter-spacing: 0;
}
.projets-liste__item-intro p {
	margin: 0 0 20px;
}

.projets-liste__item-link {
	display: flex;
	align-items: center;
	gap: 5px;
	margin-bottom: 24px;
	font-size: 16px;
	line-height: 1em;
	letter-spacing: 5%;
	font-weight: 600;
	color: var(--color-link);
	text-decoration: none;
}
.see_all_publications__liens-link{
	margin-top: 67px;
}
.see_all_publications__liens-link a{
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 5px;
	margin-bottom: 0px;
	font-size: 16px;
	line-height: 1em;
	letter-spacing: 5%;
	font-weight: 600;
	color: var(--color-link);
	text-decoration: none;
}

.projets-liste__item-link:hover,.see_all_publications__liens-link a:hover {
	opacity: 0.8;
}

.rst-projets-liste{
	margin-top: 67px;
}
/* Publications sélectionnées */

.projets-liste__publications {
	margin-top: 16px;
}

.projets-liste__publications-label {
	margin: 0 0 12px;
	font-size: 14px;
	line-height: 1.3em;
	font-weight: 500;
	color: var(--color-primary);
}

.projets-liste__publications-list {
	list-style: none;
	padding: 0px;
	margin: 0;
}

.projets-liste__publication-item {
	margin-bottom: 7px;
	font-size: 16px;
	line-height: 1.4;
	font-weight: 400;
	position: relative;
	color: var(--color-primary);
}
.projets-liste__publication-item:before{
	background: var(--color-primary);
	border-radius: 50%;
	width: 4px;
	height: 4px;
	content:"";
	position: absolute;
	left: 10px;
	top: 6px;
}
.projets-liste__publication-meta {
	margin: 0;
	font-weight: 600;
	line-height: 1.3;
	padding-left: 25px;
}

.projets-liste__publication-date {
	margin-right: 12px;
}

.projets-liste__publication-auteurs {
	margin: -1px 0 0;
	font-weight: 400;
	padding-left: 25px;
}

.projets-liste__publication-link {
	display: inline-block;
	margin-top: 0px;
	line-height: 1.2em;
	font-weight: 600;
	display: flex;
    gap: 5px;
	color: var(--color-link);
	text-decoration: none;
}

.projets-liste__publication-link:hover {
	opacity: 0.8;
}

/* Liens */

.projets-liste__liens {
	margin-top: 22px;
}

.projets-liste__liens-label {
	margin: 0 0 13px;
	font-size: 14px;
	line-height: 1.3em;
	font-weight: 500;
	color: var(--color-primary);
}

.projets-liste__liens-list {
	margin: 0;
	padding: 0;
}
.projets-liste__liens-list li:last-child .projets-liste__liens-link {
	margin-bottom: 0px;
}
.projets-liste__liens-link {
	display: flex;
	gap: 5px;
	margin-bottom: 10px;
	font-size: 16px;
	line-height: 1em;
	
	font-weight: 600;
	color: var(--color-link);
	text-decoration: none;
	letter-spacing: 5%;
}

.projets-liste__liens-link:hover {
	opacity: 0.8;
}

/* =============================================
   PAGE 404
   ============================================= */

.error-404 {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 60vh;
	padding: 80px 24px;
	text-align: center;
}

.error-404__inner {
	max-width: 560px;
}

.error-404__code {
	display: block;
	font-size: clamp(100px, 20vw, 200px);
	font-weight: 800;
	line-height: 1;
	color: #101D54;
	opacity: 0.08;
	letter-spacing: -0.04em;
	margin-bottom: -0.15em;
	user-select: none;
}

.error-404__title {
	font-size: clamp(22px, 4vw, 36px);
	font-weight: 700;
	color: #101D54;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 0 0 20px;
}

.error-404__desc {
	font-size: 16px;
	color: #101D54;
	opacity: 0.65;
	line-height: 1.6;
	margin: 0 0 40px;
}

.error-404__btn,
.site-main .error-404__btn {
	display: inline-block;
	padding: 12px 32px;
	background: #1F4ADA;
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	letter-spacing: 0.01em;
	transition: background 0.2s;
}

.error-404__btn:hover,
.site-main .error-404__btn:hover {
	background: #1638b0;
	color: #fff;
}

/* =============================================
   PAGE PUBLICATIONS
   ============================================= */

.publications {
	padding: 60px 0 130px;
}

/* ---- En-tête ---- */
.publications__header {
	margin-bottom: 32px;
}

.publications__title {
	margin: 0 0 4px;
}

.publications__source {
	font-size: 13px;
	color: #888;
	font-weight: 400;
}

/* ---- Barre filtres / compteur ---- */
.publications__topbar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 24px;
}

.publications__theme-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-right: auto;
}

.publications__theme-pill {
	display: inline-flex;
	align-items: center;
	padding: 6px 18px;
	border: none;
	border-radius: 0;
	background: #F5F6FA;
	color: #1F4ADA;
	font-size: 14px;
	font-weight: 500;
	font-family: inherit;
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
	white-space: nowrap;
}

.publications__theme-pill:hover {
	background: #e8eaf2;
}

.publications__theme-pill.is-active {
	background: #1F4ADA;
	color: #fff;
}

.publications__count {
	font-size: 15px;
	color: #101D54;
	font-weight: 500;
	margin: 0;
	white-space: nowrap;
}

.publications__year-dropdown {
	position: relative;
	display: inline-block;
}

.publications__year-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: transparent;
	border: none;
	color: #1F4ADA;
	font-size: 15px;
	font-weight: 500;
	padding: 4px 0;
	cursor: pointer;
	font-family: inherit;
	outline: none;
}

.publications__year-btn:hover {
	opacity: 0.75;
}

.publications__year-chevron {
	transition: transform 0.2s ease;
	flex-shrink: 0;
}

.publications__year-dropdown.is-open .publications__year-chevron {
	transform: rotate(180deg);
}

.publications__year-list {
	display: none;
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	min-width: 100px;
	background: #fff;
	border: 1px solid rgba(16, 29, 84, 0.12);
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(16, 29, 84, 0.10);
	list-style: none;
	margin: 0;
	padding: 6px 0;
	z-index: 100;
	max-height: 260px;
	overflow-y: auto;
}

.publications__year-dropdown.is-open .publications__year-list {
	display: block;
}

.publications__year-option {
	padding: 8px 16px;
	font-size: 13px;
	color: #101D54;
	cursor: pointer;
	transition: background 0.12s;
}

.publications__year-option:hover {
	background: rgba(31, 74, 218, 0.06);
}

.publications__year-list--wide {
	min-width: 220px;
}

.publications__year-option.is-selected {
	color: #1F4ADA;
	font-weight: 600;
}

/* ---- Liste de cartes ---- */
.publications__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/* ---- Carte ---- */
.publications__card {
	background: #F5F6FA;
	border: none;
	border-radius: 0;
	padding: 20px 24px;
}

.publications__card-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 10px;
}

.publications__card-title {
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
	margin: 0;
	flex: 1;
}

.publications__card-title a {
	color: #1F4ADA;
	text-decoration: none;
	display: inline-flex;
	align-items: baseline;
	gap: 4px;
}

.publications__card-title a:hover {
	text-decoration: underline;
}

.publications__card-title a .pub-arrow {
	font-style: normal;
	font-size: 13px;
	flex-shrink: 0;
}

/* ---- Lignes de méta ---- */
.publications__card-row {
	display: flex;
	align-items: baseline;
	gap: 10px;
	font-size: 16px;
	color: #101D54;
	margin-top: 6px;
}

.publications__card-label {
	font-size: 16px;
	color: #101D54;
	font-weight: 600;
	flex-shrink: 0;
	min-width: 56px;
}

.publications__card-year {
	font-weight: 700;
	font-size: 16px;
	flex-shrink: 0;
}

.publications__card-journal {
	font-size: 16px;
	font-weight: 700;
	color: #101D54;
}

.publications__card-arxiv {
	color: #1F4ADA;
	font-weight: 700;
	text-decoration: none;
}

.publications__card-arxiv:hover {
	text-decoration: underline;
}

.publications__card-authors {
	font-size: 16px;
	color: #101D54;
	line-height: 1.5;
}

.publications__card-cite {
	font-size: 16px;
	color: #1F4ADA;
	text-decoration: none;
	font-weight: 500;
}

.publications__card-cite:hover {
	text-decoration: underline;
}

.publications__card-cited {
	font-size: 16px;
	color: #888;
	margin-left: auto;
	white-space: nowrap;
}

.publications__card-cited a {
	color: #888;
	text-decoration: none;
}

.publications__card-cited a:hover {
	text-decoration: underline;
}

/* ---- Bouton BibTeX ---- */
.publications__card-cite {
	background: none;
	border: none;
	padding: 0;
	font-family: inherit;
	cursor: pointer;
}

/* ---- Bloc BibTeX dépliable ---- */
.publications__bibtex-block {
	margin-top: 12px;
	background: #fff;
	border: 1px solid rgba(16, 29, 84, 0.12);
	border-radius: 4px;
	padding: 16px;
	position: relative;
}

.publications__bibtex-pre {
	font-family: 'Courier New', Courier, monospace;
	font-size: 13px;
	line-height: 1.6;
	color: #101D54;
	white-space: pre-wrap;
	word-break: break-word;
	margin: 0 0 10px;
}

.publications__bibtex-copy {
	background: #1F4ADA;
	color: #fff;
	border: none;
	border-radius: 4px;
	font-size: 13px;
	font-weight: 500;
	padding: 5px 14px;
	cursor: pointer;
	font-family: inherit;
	transition: opacity 0.15s;
}

.publications__bibtex-copy:hover {
	opacity: 0.85;
}

/* ---- État vide ---- */
.publications__empty {
	font-size: 16px;
	color: #888;
	margin-top: 40px;
}

/* Masquer le sous-menu "Projets" sous Research dans le menu principal */
#primary-menu #menu-item-695,
#primary-menu #menu-item-613 > .sub-menu {
	display: none !important;
}

/* Souligner l'item de menu actif (et son parent si on est dans une sous-page) */
.site-header__menu > li.current-menu-item > a,
.site-header__menu > li.current-menu-parent > a,
.site-header__menu > li.current-menu-ancestor > a,
.site-header__menu > li.current_page_item > a,
.site-header__menu > li.current_page_parent > a,
.site-header__menu > li.current_page_ancestor > a {
	border-bottom: 1px solid #101D54;
}

/* Sous-nav Keynote / Press / Teaching : souligner l'item actif */
.lectures-medias__nav-link.is-active {
	text-decoration: underline;
	text-decoration-color: #1F4ADA;
	text-underline-offset: 4px;
}
