/* En-tête clair */
.container-header {
  background: #ffffff;
  background-image: none;
  border-bottom: 3px solid #bcd9ee;
}
.container-header .mod-menu > li > a,
.container-header .mod-menu > li > button {
  color: #2f6c9f;
}
.container-header .mod-menu > li > a:hover {
  color: #1d4f7a;
  border-bottom-color: #8fc1e3;
}

/* Logo + titre à côté */
.container-header .navbar-brand {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0.5rem 0;
}
.container-header .navbar-brand img {
  max-height: 110px;
  width: auto;
}

/* Couleurs générales */
a { color: #2f6c9f; }
a:hover { color: #1d4f7a; }
body { background: #f4f9fd; }
h1, h2, h3 { color: #1d4f7a; }
.container-component { background: #ffffff; }
.container-header .mod-menu .icon-edit {
  display: none;
}
.container-header .mod-menu {
  flex-wrap: nowrap;
}
.container-header .mod-menu > li > a,
.container-header .mod-menu > li > button {
  padding: 0.5rem 0.55rem;
  font-size: 0.92rem;
  white-space: nowrap;
}
@font-face {
  font-family: "Lato";
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/lato-v25-latin-300.woff2") format("woff2");
}
@font-face {
  font-family: "Lato";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/lato-v25-latin-regular.woff2") format("woff2");
}
@font-face {
  font-family: "Lato";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/lato-v25-latin-700.woff2") format("woff2");
}

:root {
  --cassiopeia-font-family-body: "Lato", "Segoe UI", Arial, sans-serif;
  --cassiopeia-font-family-headings: "Lato", "Segoe UI", Arial, sans-serif;
}
body, h1, h2, h3, .mod-menu a {
  font-family: "Lato", "Segoe UI", Arial, sans-serif;
}

/* Hiérarchie des tailles : titre du site > titres de page > menu > texte */
body { font-size: 1rem; font-weight: 300; }
.container-header .navbar-brand::after {
  font-size: 2.4rem;
  font-weight: 700;
}
h1 { font-size: 2rem; font-weight: 700; }
h2 { font-size: 1.5rem; font-weight: 700; }
.container-header .mod-menu > li > a,
.container-header .mod-menu > li > button {
  font-size: 1.15rem;
  font-weight: 400;
  padding: 0.5rem 0.65rem;
}
.container-header {
  background: #e3f0fa;
  background-image: none;
  border-bottom: 3px solid #bcd9ee;
}
.container-header .mod-menu > li > a:hover {
  background: #cfe5f5;
}
.container-banner,
.container-top-a {
  background: #ffffff;
  border-bottom: 2px solid #bcd9ee;
}
/* Texte fantôme à côté du logo */
.container-header .site-description {
  display: none;
}

/* Précédent / Suivant */
.pager,
.pagenav,
.pagenavigation {
  display: none;
}

/* Bandeau d'actualité */
.container-banner,
.container-top-a {
  background: #ffffff;
  color: #1d4f7a;
  text-align: center;
  padding: 0.8rem 1rem;
  font-weight: 400;
  border-bottom: 2px solid #bcd9ee;
}
.container-banner,
.container-top-a {
  overflow: hidden;
  white-space: nowrap;
}
.container-banner .mod-articlesnews,
.container-top-a .mod-articlesnews {
  display: inline-block;
  padding-left: 100%;
  animation: defilement 30s linear infinite;
}
.container-banner .mod-articlesnews:hover,
.container-top-a .mod-articlesnews:hover {
  animation-play-state: paused;
}
.mod-articlesnews__item {
  display: inline-block;
  margin-right: 4rem;
}
@keyframes defilement {
  from { transform: translateX(0); }
  to   { transform: translateX(-100%); }
}
@media (prefers-reduced-motion: reduce) {
  .container-banner .mod-articlesnews,
  .container-top-a .mod-articlesnews {
    animation: none;
    padding-left: 0;
    white-space: normal;
  }
}
.article-info {
  display: none;
}
.container-banner img,
.container-top-a img {
  max-height: 120px;
  width: auto;
}

body.itemid-313 {
  background: linear-gradient(180deg, #e3f0fa 0%, #ffffff 100%);
}
body.accueil {
  background: linear-gradient(180deg, #bcd9ee 0%, #e3f0fa 50%, #ffffff 100%) fixed;
}
.container-header .brand-logo,
.container-header .brand-logo:hover {
  color: #1d4f7a;
  text-decoration: none;
}
body.accueil .container-component {
  background: rgba(255, 255, 255, 0.92);
}
.container-header .brand-logo span {
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.1;
}
@media (max-width: 700px) {
  .container-header .brand-logo span {
    font-size: 1.8rem;
  }
}
/* Liste des articles d'une catégorie */
.com-content-category table.category {
  border: none;
  border-collapse: separate;
  border-spacing: 0 0.6rem;
}
.com-content-category table.category th,
.com-content-category table.category td {
  border: none;
  background: transparent;
  box-shadow: none;
  padding: 1.2rem 1.5rem;
}
.com-content-category table.category tbody tr {
  background: linear-gradient(90deg, #bcd9ee 0%, #e3f0fa 60%, #f4f9fd 100%);
  transition: background 0.2s;
}
.com-content-category table.category tbody tr:hover {
  background: linear-gradient(90deg, #8fc1e3 0%, #cfe5f5 60%, #e3f0fa 100%);
}
.com-content-category table.category th {
  font-size: 1.6rem;
  font-weight: 700;
  border-left: 5px solid #8fc1e3;
  border-radius: 8px 0 0 8px;
}
.com-content-category table.category th a {
  font-size: 1.6rem;
  text-decoration: none;
  color: #1d4f7a;
}
.com-content-category table.category th a::after {
  content: " \2192";
}
.com-content-category table.category td {
  font-size: 1rem;
  border-radius: 0 8px 8px 0;
}