/* ================================================================
   vent.css — Styles spécifiques au carnet "Le Cers et le Marin"
   Complète maclape-design-system.css et mc-timeline.css
   ================================================================ */

* { box-sizing: border-box; }

#wrapper {
  font-family: Georgia, serif;
  font-size: 1.0em;
  line-height: 1.7;
  color: #1a1a18;
  background: #fff;
}


.low { font-size: .8em; }

/* Embed responsive */
.embed-container {
  position: relative; padding-bottom: 56.25%;
  height: 0; overflow: hidden; max-width: 100%;
}
.embed-container iframe, .embed-container object, .embed-container embed {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
}

/* Image captions */
.mc-img-caption {
  font-family: var(--mc-font-ui);
  font-size: .72em;
  color: var(--mc-gray-400);
  text-align: center;
  margin-top: .4em;
  font-style: italic;
}
.mc-img-caption strong {
  font-style: normal;
  color: var(--mc-gray-600);
}

/* Mobile scroll-margin */
@media (max-width: 980px) {
  section[id], div[id], h2[id], h3[id], h4[id] {
    scroll-margin-top: 60px;
  }
}

/* Mosaic gallery */
.mc-mosaic { column-count: 3; column-gap: 6px; margin: 1rem 0; }
@media (max-width: 700px) { .mc-mosaic { column-count: 2; } }
@media (max-width: 420px) { .mc-mosaic { column-count: 1; } }

.mc-mosaic-item {
  break-inside: avoid;
  page-break-inside: avoid;
  margin-bottom: 6px;
  text-align: center;
}
.mc-mosaic-item img { width: 100%; height: auto; display: block; }
.mc-mosaic-item .mc-img-caption { font-size: .65em; }

/* Quote block (texte ancien) */
.mc-ancient-quote {
  background: var(--mc-gray-50);
  border: var(--mc-border-light);
  border-left: 3px solid var(--mc-amber-500);
  border-radius: 0 var(--mc-radius-md) var(--mc-radius-md) 0;
  padding: .9rem 1.2rem .9rem 1.4rem;
  margin: .8rem 0 1.2rem;
  font-size: .88em;
  line-height: 1.7;
}
.mc-ancient-quote__latin {
  font-style: italic;
  color: var(--mc-gray-400);
  font-size: .84em;
  display: block;
  margin-bottom: .4em;
}
.mc-ancient-quote__text {
  color: var(--mc-gray-700);
}
.mc-ancient-quote__text u { text-decoration: underline; color: var(--mc-green-800); font-weight: 600; }
.mc-ancient-quote__attr {
  display: block;
  text-align: right;
  margin-top: .5em;
  font-size: .78em;
  font-family: var(--mc-font-ui);
  color: var(--mc-gray-400);
  font-style: normal;
}

/* Rose des vents list */
.mc-rose-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .3rem;
}
.mc-rose-list li {
  font-size: .88em;
  padding: .3rem .6rem;
  border-radius: var(--mc-radius-sm);
  line-height: 1.4;
}
.mc-rose-list li:nth-child(odd) { background: var(--mc-green-50); }

/* Windy widget container */
.mc-widget-wrap {
  margin: 1.5rem 0;
}


sup { text-transform: none !important; }

.mc-wind-badge {
  display: inline-flex;
  align-items: center;
  font-family: var(--mc-font-mono, monospace);
  font-size: .68em;
  font-weight: 700;
  letter-spacing: .04em;
  background: var(--mc-amber-50, #fffbeb);
  color: var(--mc-amber-800, #92400e);
  border: 1px solid var(--mc-amber-300, #fcd34d);
  border-radius: 20px;
  padding: .12em .6em;
  white-space: nowrap;
  vertical-align: middle;
  margin: .2em .15em 0 0;
}
.mc-wind-badge--green {
  background: var(--mc-green-50, #f0fdf4);
  color: var(--mc-green-800, #166534);
  border-color: var(--mc-green-300, #86efac);
}
.mc-wind-badge--gray {
  background: var(--mc-gray-100, #f3f4f6);
  color: var(--mc-gray-600, #4b5563);
  border-color: var(--mc-gray-300, #d1d5db);
}


a.anchor { display: block; position: relative; top: -80px; }


.mc-infobox__body .mc-ancient-quote {
  border-left: none;
  border-top: 3px solid var(--mc-amber-400);
  border-radius: var(--mc-radius-md);
  padding-left: .9rem;
}


.mc-card__head {
  position: relative;
}
.mc-date-pill {
  position: absolute;
  top: 10px;
  right: 12px;
  font-family: var(--mc-font-mono);
  font-size: .62em;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--mc-green-800);
  background: rgba(255,255,255,.92);
  border-radius: 20px;
  padding: 2px 9px;
  line-height: 1.6;
  white-space: nowrap;
  box-shadow: 0 1px 3px rgba(0,0,0,.15);
}

/* Transitions entre parties */
.mc-part-intro {
  padding: .9rem 0 .5rem;
  border-bottom: 1px solid rgba(0,0,0,.07);
  margin-bottom: 0;
}
.mc-part-intro__text {
  font-size: .92em;
  line-height: 1.75;
  color: var(--mc-gray-600);
  font-style: italic;
  margin: 0;
  max-width: 640px;
}
.mc-part-intro__text strong {
  font-style: normal;
  color: var(--mc-green-800);
}

.mc-part-outro {
  margin: 2rem 0 0;
  padding: 1rem 1.2rem 1rem 1.4rem;
  border-left: 2px solid var(--mc-gray-200);
  background: transparent;
}
.mc-part-outro__text {
  font-size: .88em;
  line-height: 1.72;
  color: var(--mc-gray-500);
  font-style: italic;
  margin: 0;
}
.mc-part-outro__text strong {
  font-style: normal;
  color: var(--mc-gray-600);
}
.mc-part-outro__arrow {
  display: block;
  text-align: right;
  font-family: var(--mc-font-ui);
  font-size: .65em;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--mc-green-600);
  margin-top: .5rem;
}

/* Encart définition, léger, lisible */
.mc-term-def {
  margin: 1.2rem 0 1.4rem;
  border-left: 3px solid var(--mc-green-600);
  padding: .8rem 1.1rem .8rem 1.2rem;
  background: #f9f7f2;
  border-radius: 0 var(--mc-radius-md) var(--mc-radius-md) 0;
}
.mc-term-def__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .5rem .8rem;
  margin-bottom: .55rem;
}
.mc-term-def__term {
  font-family: var(--mc-font-ui);
  font-size: .88em;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--mc-green-800);
}
.mc-term-def__etym {
  font-size: .78em;
  font-style: italic;
  color: var(--mc-gray-400);
  letter-spacing: .01em;
}
.mc-term-def__body {
  font-size: .9em;
  line-height: 1.7;
  color: var(--mc-gray-700);
  margin: 0 0 .45rem;
}
.mc-term-def__note {
  font-size: .8em;
  line-height: 1.6;
  color: var(--mc-gray-500);
  margin: 0;
  border-top: 1px solid rgba(0,0,0,.07);
  padding-top: .4rem;
}
.mc-term-def__note strong { color: var(--mc-green-700); }

/* Photo grid, 4 col desktop · 2 col tablet · 2 col mobile */
.mc-photo-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin: 1rem 0;
}
@media (max-width: 700px) {
  .mc-photo-grid { grid-template-columns: repeat(2, 1fr); }
}
.mc-photo-grid__item {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.mc-photo-grid__item a {
  display: block;
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.mc-photo-grid__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}
.mc-photo-grid__item a:hover img { transform: scale(1.04); }
.mc-photo-grid__item figcaption {
  font-family: var(--mc-font-ui);
  font-size: .66em;
  color: var(--mc-gray-400);
  text-align: center;
  padding: .3em .2em .1em;
  line-height: 1.4;
  font-style: italic;
}
.mc-photo-grid__item figcaption strong {
  font-style: normal;
  color: var(--mc-gray-600);
}


.mc-collapsible {
  border: 1px solid #fde68a;
  border-left: 3px solid var(--mc-amber-500, #f59e0b);
  border-radius: 0 var(--mc-radius-md, 6px) var(--mc-radius-md, 6px) 0;
  background: #fffbf0;
  margin: 1.6rem 0;
}
.mc-collapsible__summary {
  cursor: pointer;
  padding: .85rem 1.2rem .85rem 1.3rem;
  display: flex;
  align-items: center;
  gap: .8rem;
  list-style: none;
  user-select: none;
}
.mc-collapsible__summary::-webkit-details-marker { display: none; }
.mc-collapsible__summary::marker { display: none; }
.mc-collapsible__icon {
  flex-shrink: 0;
  width: 1.5em;
  height: 1.5em;
  border-radius: 50%;
  background: var(--mc-amber-500, #f59e0b);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .72em;
  font-weight: 700;
  font-family: var(--mc-font-ui);
  transition: transform .22s ease;
  line-height: 1;
}
details.mc-collapsible[open] .mc-collapsible__icon {
  transform: rotate(90deg);
}
.mc-collapsible__label {
  flex: 1;
  min-width: 0;
}
.mc-collapsible__label-eyebrow {
  font-family: var(--mc-font-ui);
  font-size: .62em;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--mc-amber-600, #d97706);
  display: block;
  margin-bottom: .15em;
}
.mc-collapsible__label-title {
  font-family: var(--mc-font-ui);
  font-size: .88em;
  font-weight: 600;
  color: #78350f;
  display: block;
  line-height: 1.35;
}
.mc-collapsible__body {
  padding: .6rem 1.3rem 1.3rem 1.3rem;
  border-top: 1px solid #fde68a;
}
/* table inside collapsible */
.mc-collapsible-table {
  width: 100%;
  min-width: 480px;
  border-collapse: collapse;
  font-size: .82em;
  margin: 1rem 0;
  table-layout: fixed;
  word-wrap: break-word;
}
.mc-collapsible-table col.col-dir     { width: 52px; }
.mc-collapsible-table col.col-mar     { width: 100px; }
.mc-collapsible-table col.col-lat     { width: 100px; }
.mc-collapsible-table col.col-note-w  { width: auto; }
.mc-collapsible-table thead th {
  font-family: var(--mc-font-ui);
  font-size: .72em;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--mc-amber-700, #b45309);
  background: #fef3c7;
  padding: .45rem .7rem;
  text-align: left;
  border-bottom: 2px solid #fde68a;
}
.mc-collapsible-table tbody td {
  padding: .38rem .7rem;
  vertical-align: top;
  border-bottom: 1px solid rgba(0,0,0,.05);
  color: var(--mc-gray-700, #374151);
  line-height: 1.45;
}
.mc-collapsible-table tbody tr:last-child td { border-bottom: none; }
.mc-collapsible-table tbody tr:hover td { background: #fffbf0; }
.mc-collapsible-table .col-dir { font-weight: 600; color: var(--mc-amber-800, #92400e); white-space: nowrap; }
.mc-collapsible-table .col-maritime { font-style: italic; }
.mc-collapsible-table .col-latin em { font-weight: 600; }
.mc-collapsible-table .col-note { color: var(--mc-gray-500); font-size: .9em; }


.mc-link-grid {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin: 1.2rem 0;
}
.mc-link-group__label {
  font-family: var(--mc-font-ui);
  font-size: .62em;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--mc-gray-400);
  margin: 0 0 .55rem;
}
.mc-link-item {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .7rem .9rem;
  border: var(--mc-border-green);
  border-radius: var(--mc-radius-md);
  background: var(--mc-white);
  text-decoration: none;
  color: inherit;
  transition: background .18s, border-color .18s, transform .12s;
  margin-bottom: .45rem;
}
.mc-link-item:last-child { margin-bottom: 0; }
.mc-link-item:hover {
  background: #f0fdf4;
  border-color: var(--mc-green-600);
  transform: translateX(2px);
}
.mc-link-item__icon {
  flex-shrink: 0;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  background: #f0fdf4;
  border: 1.5px solid var(--mc-green-600);
  color: var(--mc-green-700);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .75em;
  font-weight: 700;
  font-family: var(--mc-font-ui);
  line-height: 1;
  margin-top: .05em;
  transition: background .18s, color .18s;
}
.mc-link-item:hover .mc-link-item__icon {
  background: var(--mc-green-600);
  color: #fff;
}
.mc-link-item__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.mc-link-item__title {
  font-family: var(--mc-font-ui);
  font-size: .85em;
  font-weight: 600;
  color: var(--mc-gray-800);
  line-height: 1.35;
}
.mc-link-item__desc {
  font-family: var(--mc-font-ui);
  font-size: .72em;
  color: var(--mc-gray-400);
  line-height: 1.4;
}
.mc-link-item__type {
  flex-shrink: 0;
  align-self: flex-start;
  font-family: var(--mc-font-ui);
  font-size: .6em;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .2em .55em;
  border-radius: var(--mc-radius-full);
  background: #f0fdf4;
  color: var(--mc-green-700);
  border: 1px solid rgba(44,121,100,.2);
  white-space: nowrap;
  margin-top: .1em;
}
.mc-link-item__type--amber {
  background: #fffbeb;
  color: var(--mc-amber-700);
  border-color: rgba(217,119,6,.2);
}
.mc-link-item__type--blue {
  background: #eff6ff;
  color: #1d4ed8;
  border-color: rgba(29,78,216,.18);
}
.mc-link-item__type--green {
  background: #f0fdf4;
  color: var(--mc-green-700, #15803d);
  border-color: rgba(34,197,94,.3);
}

/* Panneau comparatif Cers/Marin: empiler sous 720px */
@media (max-width: 720px) {
  .vent-chart-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Print suppression */
@media print {
  #header, #nav, .mc-SurveyButton, .back-to-top { display: none !important; }
  .embed-container { display: none; }
}

/* ================================================================
   CLASSES UTILITAIRES LOCALES, factorisées depuis les styles inline
   Préfixe .vent- : spécifique à ce carnet
   Préfixe .mc-  : candidats à intégrer au design system
   ================================================================ */


.mc-wrap--flush { padding: 0; }


.mc-text-gray    { color: var(--mc-gray-400); }
.mc-text-green   { color: var(--mc-green-700); }


.mc-mt-1    { margin-top: 1rem; }
.mc-mt-05   { margin-top: .5rem; }
.mc-my-12   { margin: 1.2rem 0; }
.mc-my-08   { margin: .8rem 0 0; }


.mc-grid-2--top { align-items: start; }


.mc-no-indent { border-left: none !important; padding-left: 0 !important; }


.mc-flex-1    { flex: 1; }
.mc-d-inline  { display: inline; }


.vent-th-month {
  padding: .45rem .4rem;
  color: #1e3a5f;
  font-weight: 700;
  text-align: center;
}
.vent-td-center {
  text-align: center;
  padding: .35rem .4rem;
  color: var(--mc-gray-700);
}
.vent-td-center--bold {
  text-align: center;
  padding: .35rem .4rem;
  font-weight: 700;
  color: #1e40af;
}
.vent-td-header {
  text-align: center;
  padding: .35rem .4rem;
}
.vent-td-gray { color: var(--mc-gray-400); margin-left: .4em; }


.mc-latin-source__summary {
  cursor: pointer;
  font-style: italic;
  font-size: .85em;
  color: var(--mc-gray-400);
  list-style: none;
  border-bottom: 1px dotted var(--mc-gray-300);
}
.mc-latin-source__text {
  display: block;
  font-size: .82em;
  font-style: italic;
  color: var(--mc-gray-500);
  padding: .3em .5em;
  background: #f9f7f2;
  border-left: 2px solid var(--mc-gray-200);
  margin: .3em 0;
}


details.mc-quote-latin__trad-subtle > summary {
  list-style: none;
  cursor: pointer;
  display: block;
  user-select: none;
  outline: none;
}
details.mc-quote-latin__trad-subtle > summary::-webkit-details-marker { display: none; }
details.mc-quote-latin__trad-subtle > summary .mc-trad-lang {
  cursor: pointer;
  transition: opacity var(--mc-transition, .15s ease);
}
details.mc-quote-latin__trad-subtle > summary:hover .mc-trad-lang { opacity: 1; }
details.mc-quote-latin__trad-subtle > summary::after {
  content: '▸ afficher le texte original';
  font-family: var(--mc-font-ui);
  font-size: .72em;
  font-style: italic;
  color: var(--mc-gray-400);
  margin-left: .15em;
  letter-spacing: .01em;
}
details.mc-quote-latin__trad-subtle[open] > summary::after {
  content: '▾ masquer';
}


.vent-card-blue {
  background: #fff;
  border: 1.5px solid #bae6fd;
  border-radius: 6px;
  padding: .7rem .8rem;
}


.vent-eyebrow-green {
  font-size: .65em;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--mc-green-600);
  padding: .4rem 1rem .1rem;
  border-top: 0;
}
.vent-eyebrow-blue {
  font-family: var(--mc-font-ui);
  font-size: .62em;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #1d4ed8;
  margin: 0 0 .3em;
}

.vent-card-label {
  font-family: var(--mc-font-ui);
  font-size: .64em;
  font-weight: 700;
  color: #374151;
  line-height: 1.3;
}
.vent-card-meta {
  font-family: var(--mc-font-ui);
  font-size: .6em;
  color: #6b7280;
  margin-top: .15rem;
  line-height: 1.3;
}
.vent-card-body {
  font-family: var(--mc-font-ui);
  font-size: .74em;
  color: #374151;
  line-height: 1.55;
  margin: 0;
}
.vent-flow-num {
  font-size: 2.8em;
  font-weight: 700;
  line-height: 1;
  color: var(--mc-green-400);
  flex-shrink: 0;
  width: 2.2rem;
  text-align: right;
}
.vent-section-title {
  font-size: 1.6em;
  color: var(--mc-green-800);
  margin: 0;
}
.vent-pill-sm-green {
  font-size: .6em;
  padding: 2px;
}
.vent-pill-sm-blue {
  font-size: .55em;
  padding: 2px;
}
.vent-color-dark { color: #374151; }
.vent-color-blue { color: #1d4ed8; }


.mc-quote-latin__trad-subtle {
  display: none;
  margin-top: .3em;
  padding: .5em 0 .1em;
  border-top: 1px dashed var(--mc-amber-300, #fcd34d);
  font-style: italic;
  color: var(--mc-gray-500);
  font-size: .88em;
  line-height: 1.6;
}
.mc-quote-latin__trad-subtle.is-visible {
  display: block;
}


.mc-trad-lang {
  cursor: pointer;
  font-family: var(--mc-font-ui, 'Josefin Sans', sans-serif);
  font-weight: 700;
  font-size: .68em;
  letter-spacing: .07em;
  padding: 2px 7px;
  border-radius: 3px;
  display: inline-block;
  margin-top: .4em;
  transition: background-color 0.15s ease, color 0.15s ease;
  background-color: var(--mc-amber-100, #fef3c7);
  color: var(--mc-amber-800, #92400e);
  border: 1px solid var(--mc-amber-200, #fde68a);
  user-select: none;
}
.mc-trad-lang::after {
  content: ' ▾';
  font-size: .8em;
  opacity: .55;
}
.mc-trad-lang:hover {
  background-color: var(--mc-amber-500, #f59e0b);
  color: white;
  border-color: var(--mc-amber-500, #f59e0b);
}
.mc-trad-lang.is-active {
  background-color: var(--mc-amber-500, #f59e0b);
  color: white;
  border-color: var(--mc-amber-500, #f59e0b);
}
.mc-trad-lang.is-active::after {
  content: ' ▴';
  opacity: .8;
}


.mc-bib__ref {
  color: var(--mc-amber-700, #b45309);
  text-decoration: underline dotted var(--mc-amber-500, #f59e0b);
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  cursor: pointer;
  transition: color .15s ease, text-decoration-color .15s ease;
}
.mc-bib__ref:hover {
  color: var(--mc-amber-800, #92400e);
  text-decoration-color: var(--mc-amber-700, #b45309);
}
.mc-bib__ref:focus-visible {
  outline: 2px solid var(--mc-amber-500, #f59e0b);
  outline-offset: 2px;
  border-radius: 2px;
}
.mc-bib__ref.is-active {
  color: var(--mc-amber-800, #92400e);
  text-decoration-color: var(--mc-amber-700, #b45309);
  background: var(--mc-amber-50, #fffbeb);
}


text.mc-bib__ref,
svg .mc-bib__ref {
  fill: var(--mc-amber-700, #b45309);
  cursor: pointer;
  transition: fill .15s ease, opacity .15s ease;
}
text.mc-bib__ref:hover,
svg .mc-bib__ref:hover {
  fill: var(--mc-amber-800, #92400e);
}
text.mc-bib__ref.is-active,
svg .mc-bib__ref.is-active {
  fill: var(--mc-amber-800, #92400e);
  font-weight: 600;
  background: transparent;
}

li.mc-source {
  text-align: left;
  font-size: .94em;
  font-style: normal;
  color: var(--mc-gray-700);
  line-height: 1.65;
  padding: .7rem .9rem .75rem .9rem;
  border: none;
  border-top: none;
  background: var(--mc-gray-50, #f9fafb);
  border-radius: 4px;
  margin: 0;
  list-style: none;
}
li.mc-source::marker { content: ""; }


li.mc-source > em {
  font-style: italic;
  font-weight: 600;
  color: var(--mc-gray-900, #111827);
}
li.mc-source > a,
li.mc-source a.mc-text-green {
  font-weight: 600;
  font-style: italic;
  color: var(--mc-green-700);
  border-bottom: 1px solid rgba(44,121,100,.4);
  text-decoration: none;
  transition: border-color .15s ease;
}
li.mc-source > a:hover,
li.mc-source a.mc-text-green:hover {
  border-bottom-color: var(--mc-green-600);
}

li.mc-source .mc-text-gray em {
  font-weight: normal;
  font-style: italic;
  color: inherit;
}

li.mc-source > .mc-text-gray {
  display: block;
  margin-top: .4rem;
  padding-left: 0;
  font-size: .88em;
  font-style: normal;
  color: var(--mc-gray-500);
  line-height: 1.6;
}

/* État ciblé (lien d'ancrage ou ouverture via .is-active) */
li.mc-source:target,
li.mc-source.is-active {
  background: var(--mc-amber-50, #fffbeb);
  outline: 1px solid var(--mc-amber-300, #fcd34d);
}


.sp-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border: 1px solid #e5e0d8;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.sp-col-cers  { background:#eff6ff; border-right:1px solid #bfdbfe; }
.sp-col-marin { background:#f0fdf4; }
.sp-head-cers  { background:#1d4ed8; padding:.6rem .9rem .5rem; }
.sp-head-marin { background:#15803d; padding:.6rem .9rem .5rem; }
.sp-head-label { font-family:var(--mc-font-ui,'Josefin Sans',sans-serif); font-size:.88em; font-weight:700; color:#fff; letter-spacing:.04em; }
.sp-head-dir   { font-family:var(--mc-font-ui,'Josefin Sans',sans-serif); font-size:.58em; color:rgba(255,255,255,.7); letter-spacing:.08em; text-transform:uppercase; margin-left:.5rem; }
.sp-head-type  { font-family:var(--mc-font-ui,'Josefin Sans',sans-serif); font-size:.58em; color:rgba(255,255,255,.55); float:right; margin-top:.1rem; }
.sp-card { padding:.65rem .9rem .6rem; border-bottom:1px solid #dbeafe; }
.sp-col-marin .sp-card { border-bottom-color:#bbf7d0; }
.sp-card:last-child { border-bottom:none; }
.sp-card-top { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:.2rem; gap:.4rem; }
.sp-card-name-cers  { font-family:var(--mc-font-ui,'Josefin Sans',sans-serif); font-size:.72em; font-weight:700; color:#1e3a8a; text-transform:uppercase; letter-spacing:.04em; line-height:1.3; }
.sp-card-name-marin { font-family:var(--mc-font-ui,'Josefin Sans',sans-serif); font-size:.72em; font-weight:700; color:#14532d; text-transform:uppercase; letter-spacing:.04em; line-height:1.3; }
.sp-badge-cers  { font-family:var(--mc-font-ui,'Josefin Sans',sans-serif); font-size:.56em; font-weight:700; color:#fff; border-radius:3px; padding:1px 5px; white-space:nowrap; flex-shrink:0; }
.sp-badge-marin { font-family:var(--mc-font-ui,'Josefin Sans',sans-serif); font-size:.56em; font-weight:700; color:#fff; border-radius:3px; padding:1px 5px; white-space:nowrap; flex-shrink:0; }
.sp-card-desc { font-family:var(--mc-font-ui,'Josefin Sans',sans-serif); font-size:.7em; color:#374151; line-height:1.5; margin:0; }
/* Timeline */
.sp-timeline { margin:.7rem 0 0; }
.sp-tl-row { display:flex; align-items:center; gap:.7rem; margin-bottom:.4rem; }
.sp-tl-label { font-family:var(--mc-font-ui,'Josefin Sans',sans-serif); font-size:.65em; font-weight:700; width:42px; flex-shrink:0; text-align:right; }
.sp-tl-bar   { flex:1; height:20px; border-radius:3px; display:flex; align-items:center; padding:0 8px; }
.sp-tl-bar span { font-family:var(--mc-font-ui,'Josefin Sans',sans-serif); font-size:.6em; font-weight:700; color:#fff; }
.sp-tl-ticks { display:flex; justify-content:space-between; padding-left:49px; margin-top:.15rem; }
.sp-tl-tick  { font-family:var(--mc-font-ui,'Josefin Sans',sans-serif); font-size:.58em; color:#9ca3af; text-align:center; }
/* Mobile: stack */
@media (max-width:540px) {
  .sp-grid { grid-template-columns:1fr; }
  .sp-col-cers  { border-right:none; border-bottom:2px solid #bfdbfe; }
  .sp-head-type { display:none; }
  .sp-tl-label { width:36px; font-size:.6em; }
  .sp-tl-bar span { font-size:.56em; }
  .sp-tl-ticks { padding-left:43px; }
  .sp-tl-tick  { font-size:.52em; }
}

.vent-h-arbre { font-family: var(--mc-font-ui); font-size: .78em; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--mc-green-800); margin: .8rem 0 .35rem; }
.vent-th--right { text-align: right; padding: .55rem .7rem; font-family: var(--mc-font-ui); font-size: .82em; letter-spacing: .04em; text-transform: uppercase; color: var(--mc-gray-600); }
.vent-td-num { text-align: right; padding: .5rem .7rem; font-variant-numeric: tabular-nums; }
.vent-p-body { font-size: .9em; line-height: 1.72; color: var(--mc-gray-700); margin: 0 0 .8rem; }
.vent-td-num--amber { text-align: right; padding: .5rem .7rem; color: #b45309; font-weight: 600; font-variant-numeric: tabular-nums; }
.vent-tr--top { border-bottom: 1px solid var(--mc-gray-100); vertical-align: top; }
.vent-td--gray { padding: .6rem .7rem; color: var(--mc-gray-600); }
.vent-td--bold { padding: .6rem .7rem; font-weight: 600; }
.vent-tr { border-bottom: 1px solid var(--mc-gray-100); }
.vent-thead { background: var(--mc-gray-50); border-bottom: 2px solid var(--mc-gray-200); }
.vent-td-num--blue { text-align: right; padding: .5rem .7rem; font-weight: 600; color: #1e40af; font-variant-numeric: tabular-nums; }
.vent-cell { padding: .6rem .7rem; }
.vent-cell-sm { padding: .5rem .7rem; }
.vent-cell-sm--gray { padding: .5rem .7rem; color: var(--mc-gray-600); }
.vent-caption { font-size: .88em; color: var(--mc-gray-500); font-style: italic; margin: .3rem 0 0; }
.vent-part-eyebrow { font-family: var(--mc-font-ui); font-size: .62em; font-weight: 700; text-transform: uppercase; letter-spacing: .16em; color: var(--mc-green-600); margin-bottom: .3rem; }
/* Recall pliable - utilisé pour la digression Buys-Ballot/Cers */
details.mc-recall--collapsible > summary {
  cursor: pointer;
  list-style: none;
  font-size: .95em;
  line-height: 1.6;
  padding-left: 1.3rem;
  position: relative;
}
details.mc-recall--collapsible > summary::-webkit-details-marker {
  display: none;
}
details.mc-recall--collapsible > summary::before {
  content: '▸';
  position: absolute;
  left: 0;
  top: 0;
  font-size: .85em;
  color: #3b82f6;
  transition: transform .15s ease;
}
details.mc-recall--collapsible[open] > summary::before {
  transform: rotate(90deg);
}
details.mc-recall--collapsible > summary strong {
  color: var(--mc-gray-900);
  font-weight: 600;
}
