.site-header{background:white;border-top:5px solid var(--blue-900);border-bottom:1px solid var(--gray-100)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:104px}.brand{font-size:1.375rem;font-weight:700;text-decoration:none;color:var(--blue-900)}.brand span{display:block;font-size:.875rem;font-weight:400;color:var(--gray-700)}nav{display:flex;gap:1.75rem;flex-wrap:wrap}nav a{padding:.625rem 0;text-decoration:none;font-size:.875rem;font-weight:600}nav a[aria-current=page]{color:var(--blue-900);border-bottom:3px solid var(--blue-700)}.page-title{padding:2.5rem 0 1rem}.page-title p{color:var(--gray-700);max-width:780px}.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:.875rem;font-weight:700;color:var(--blue-700)!important;margin-bottom:.625rem}.card{padding:1.75rem;border:1px solid var(--gray-100);border-radius:12px;background:white;box-shadow:0 2px 4px #123b5d04}.card>p{color:var(--gray-700)}.empty{min-height:140px;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--gray-700);border-top:1px solid var(--gray-100);margin-top:1rem}.empty p{margin:0}.notice{border-left:4px solid var(--blue-700);background:var(--blue-100);color:var(--blue-900);padding:1rem 1.25rem;margin:1.5rem 0}.charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.secondary,.segmented button{color:var(--blue-900);background:white;border-color:var(--gray-300)}.secondary:hover,.segmented button:hover{background:var(--blue-100)}.segmented{display:flex;gap:.5rem;flex-wrap:wrap}.segmented button[aria-pressed=true]{color:white;background:var(--blue-900)}form[data-filters]{display:flex;align-items:end;gap:1rem;flex-wrap:wrap}form[data-filters]>label{flex:1 1 180px}.controls form>label{flex:1 1 300px}.date-range{display:flex;gap:1rem;flex:1 1 300px}.date-range label{flex:1;min-width:0}.form-error{color:#8d2424;flex-basis:100%;margin:0}.filter-panel{margin-bottom:1.5rem}.filter-panel summary{font-weight:700;color:var(--blue-900);cursor:pointer;min-height:44px}.filter-panel[open] summary{margin-bottom:1rem}.filter-panel .search-field{flex-basis:100%}.reading-note{border-left:3px solid var(--blue-700);padding:1rem 1.5rem;max-width:900px;margin-top:2rem}.pagination{align-items:center;justify-content:center;margin:1.5rem 0}.methodology-layout{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;align-items:start}.methodology-layout nav{display:block}.methodology-layout nav a{display:block}.methodology-layout section{scroll-margin-top:1rem}.site-footer{border-top:1px solid var(--gray-300);background:white;padding:2rem 0;color:var(--gray-700);font-size:.875rem}.article-card{border-top:1px solid var(--gray-100);padding:1rem 0}.article-card h3{margin:.5rem 0}.article-meta{font-size:.875rem;color:var(--gray-700)}.article-cards{display:none}.badge{display:inline-block;padding:.125rem .5rem;border:1px solid var(--gray-300);border-radius:4px;font-size:.875rem;margin:.25rem 0}.methodology-copy{white-space:pre-line}
.scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.25rem}.scope-grid ul{margin-bottom:0}.methodology-section+.methodology-section{margin-top:1.5rem}.framing-definitions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.5rem}.framing-definition{padding:1rem;border:1px solid var(--gray-300);border-radius:8px}.framing-definition h3{margin-bottom:.375rem}.framing-definition p{margin:0;color:var(--gray-700)}.framing-definition--positive{border-left:4px solid var(--positive)}.framing-definition--neutral{border-left:4px solid var(--neutral)}.framing-definition--mixed{border-left:4px solid var(--mixed)}.framing-definition--negative{border-left:4px solid var(--negative)}
.party-badges,.framing-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin:.75rem 0}.framing-badges{flex-direction:column;align-items:flex-start}.framing-row{display:flex;align-items:center;gap:.25rem}.badge--positive{border-color:var(--positive)}.badge--neutral{border-color:var(--neutral)}.badge--mixed{border-color:var(--mixed)}.badge--negative{border-color:var(--negative)}.badge--framing_unavailable{border-color:var(--gray-500)}.badge--review{border-color:var(--blue-500)}
.ranking-table-wrapper{overflow-x:auto;margin-top:1rem}.ranking-table{width:100%;border-collapse:collapse}.ranking-table th,.ranking-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--gray-100)}.ranking-table th{font-size:.875rem;color:var(--gray-700);font-weight:600}.ranking-table tbody tr:last-child td{border-bottom:0}.ranking-table td:first-child{font-weight:700;color:var(--blue-900)}.ranking-table td:nth-child(3),.ranking-table td:nth-child(4),.ranking-table td:nth-child(5){font-variant-numeric:tabular-nums}.ranking-table a{font-weight:700;text-decoration:none;color:var(--blue-900)}
.share-view{display:grid;gap:1rem;margin-top:1rem}.share-row__heading{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.375rem;font-variant-numeric:tabular-nums}.share-bar{height:12px;background:var(--gray-100);border-radius:999px;overflow:hidden}.share-bar__fill{display:block;height:100%;background:var(--party-color);border-radius:inherit}.framing-view{display:grid;gap:1.25rem;margin-top:1rem}.framing-party{border-top:1px solid var(--gray-100);padding-top:1rem}.framing-party:first-child{border-top:0;padding-top:0}.framing-party h3{margin-bottom:.625rem}.framing-list{display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:.375rem 1rem;margin:0}.framing-list dt{color:var(--gray-700)}.framing-list dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.timeline-table-wrapper{overflow-x:auto;margin-top:1rem}.timeline-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.timeline-table caption{text-align:left;font-weight:600;margin-bottom:.75rem}.timeline-table th,.timeline-table td{padding:.75rem .875rem;border-bottom:1px solid var(--gray-100);text-align:right;white-space:nowrap}.timeline-table th:first-child,.timeline-table td:first-child{text-align:left}.timeline-table thead th{font-size:.875rem;color:var(--gray-700);font-weight:600}.timeline-table tbody th{font-weight:600;color:var(--gray-700)}.timeline-table tbody tr:last-child th,.timeline-table tbody tr:last-child td{border-bottom:0}.segmented [aria-pressed="true"]{background:var(--blue-900);color:var(--white);border-color:var(--blue-900)}
.timeline-chart{margin-top:1.25rem}.timeline-chart svg{display:block;width:100%;height:auto;overflow:visible}.timeline-chart__grid line{stroke:var(--gray-100);stroke-width:1}.timeline-chart__grid text,.timeline-chart__labels text{fill:var(--gray-700);font-family:inherit;font-size:12px}.timeline-chart__line{fill:none;stroke:var(--party-color);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.timeline-legend{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;list-style:none;padding:0;margin:1rem 0}.timeline-legend li{display:flex;align-items:center;gap:.45rem;font-weight:600}.timeline-legend__sample{display:inline-block;width:28px;height:3px;background:var(--party-color)}

.party-link{
  display:inline-flex;
  align-items:center;
  gap:.625rem;
  font-weight:700;
}

.party-logo{
  width:32px;
  height:32px;
  object-fit:contain;
  flex:0 0 32px;
}

.media-party-balance-wrapper{
  overflow-x:auto;
}

.media-party-balance{
  width:100%;
  border-collapse:collapse;
  margin-top:1rem;
}

.media-party-balance th,
.media-party-balance td{
  padding:.75rem;
  border-bottom:1px solid var(--gray-300);
  text-align:center;
  white-space:nowrap;
}

.media-party-balance th:first-child{
  text-align:left;
}

.media-party-balance td[data-balance="positive"]{
  color:var(--positive);
  font-weight:700;
}

.media-party-balance td[data-balance="negative"]{
  color:var(--negative);
  font-weight:700;
}

.media-party-balance td[data-balance="neutral"]{
  color:var(--neutral);
}

/* Party palette from the approved barometer reference. */
[data-party="CAQ"]{--party-color:#00A6C8}
[data-party="PQ"]{--party-color:#242957}
[data-party="PLQ"]{--party-color:#ED1B35}
[data-party="QS"]{--party-color:#F58220}
[data-party="PCQ"]{--party-color:#000000}
.ranking-table [data-party] td,.ranking-table [data-party] a,
.share-row__heading,
.timeline-table [data-party],.timeline-legend li[data-party]{color:var(--party-color)}
.framing-party h3[data-party]{color:var(--white);background:var(--party-color);padding:.625rem .75rem}
.framing-list dt{color:var(--gray-700)}
.framing-list dd{color:var(--gray-900)}
.framing-list dd[data-framing="positive"]{color:var(--positive)}
.framing-list dd[data-framing="negative"]{color:var(--negative)}

.media-party-balance thead th[data-party]{color:var(--white);background:var(--party-color)}


/* Ajustements visuels approuvés — Baromètre */

/* Couleurs des partis */
[data-party="PCQ"]{
  --party-color:#123B5D;
}

/* Classement : seule la colonne Parti conserve la couleur du parti */
.ranking-table [data-party] td,
.ranking-table [data-party] th{
  color:var(--gray-900)!important;
}

.ranking-table [data-party] .party-link{
  color:var(--party-color)!important;
}

/* Répartition : cartouche du parti */
.share-row[data-party] .share-row__heading strong{
  display:inline-block;
  padding:.12rem .48rem;
  border-radius:.3rem;
  color:var(--white)!important;
  background:var(--party-color);
  line-height:1.25;
}

.share-row[data-party] .share-row__heading > span{
  color:var(--gray-900);
}

/* Cadrage : couleur propre à chacune des quatre catégories */
.framing-list dd[data-framing="positive"]{
  color:var(--positive);
}

.framing-list dd[data-framing="negative"]{
  color:var(--negative);
}

.framing-list dd[data-framing="neutral"]{
  color:var(--neutral);
}

.framing-list dd[data-framing="mixed"]{
  color:var(--mixed);
}

/* Média × parti : la couleur indique le signe du solde */
.media-party-balance tbody td[data-balance="positive"]{
  color:var(--positive)!important;
  font-weight:700;
}

.media-party-balance tbody td[data-balance="negative"]{
  color:var(--negative)!important;
  font-weight:700;
}

.media-party-balance tbody td[data-balance="neutral"]{
  color:var(--neutral)!important;
}

/* Tableau quotidien :
   en-têtes colorés, valeurs de données en couleur normale */
.timeline-table thead th[data-party]{
  color:var(--white);
  background:var(--party-color);
  text-align:center;
}

.timeline-table tbody td[data-party]{
  color:var(--gray-900);
}

/* Courbes pleines + animation */
.timeline-chart__line{
  stroke-dasharray:1;
  stroke-dashoffset:1;
}

.timeline-chart.is-visible .timeline-chart__line{
  animation:timeline-draw .9s ease-out forwards;
}

/* Points interactifs permettant l'infobulle */
.timeline-chart__point{
  fill:var(--party-color);
  stroke:var(--white);
  stroke-width:2;
  opacity:0;
  cursor:pointer;
}

.timeline-chart.is-visible .timeline-chart__point{
  animation:timeline-point-in .25s ease-out forwards;
}

.timeline-chart__point:hover,
.timeline-chart__point:focus{
  stroke-width:3;
  outline:none;
}

/* Animation des barres de répartition */
.share-bar__fill{
  transform:scaleX(0);
  transform-origin:left center;
}

.share-view.is-visible .share-bar__fill{
  animation:share-grow .65s ease-out forwards;
}

@keyframes timeline-draw{
  from{
    stroke-dashoffset:1;
  }
  to{
    stroke-dashoffset:0;
  }
}

@keyframes timeline-point-in{
  from{
    opacity:0;
  }
  to{
    opacity:1;
  }
}

@keyframes share-grow{
  from{
    transform:scaleX(0);
  }
  to{
    transform:scaleX(1);
  }
}

/* Respect du réglage d'accessibilité du système */
@media (prefers-reduced-motion:reduce){
  .timeline-chart__line{
    stroke-dashoffset:0;
    animation:none!important;
  }

  .timeline-chart__point{
    opacity:1;
    animation:none!important;
  }

  .share-bar__fill{
    transform:none;
    animation:none!important;
  }
}

/* Soutien volontaire */
.support-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  margin-bottom:1.5rem;
  padding:1.35rem 1.5rem;
  border:1px solid var(--gray-300);
  border-radius:8px;
  background:var(--white);
}

.support-card h2{
  margin-bottom:.35rem;
}

.support-card p{
  margin:0;
  color:var(--gray-700);
}

.support-link{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:420px;
  min-height:45px;
  padding:.75rem 1.5rem;
  border:0;
  border-radius:4px;
  color:#111;
  background:#ffc439;
  font:inherit;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
}

.support-link:hover{
  background:#f4b728;
}

@media(max-width:767px){
  .support-card{
    align-items:flex-start;
    flex-direction:column;
    gap:1rem;
  }
}


/* Correction d'affichage du bouton PayPal hébergé */
.support-card{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:start;
  gap:1.25rem;
}

.support-payment{
  width:100%;
  max-width:520px;
}

.support-payment > div{
  width:100%;
  min-width:280px;
}

@media(min-width:900px){
  .support-card{
    grid-template-columns:minmax(0,1fr) minmax(320px,420px);
    align-items:center;
  }

  .support-payment{
    justify-self:end;
  }
}

@media(max-width:899px){
  .support-payment{
    max-width:none;
  }
}


/* Isolation du composant PayPal hébergé */
#paypal-container-664XH24DHWNZA{
  width:100%;
  min-width:320px;
  max-width:420px;
  margin-left:auto;
}

/*
 * PayPal injecte ses propres contrôles.
 * On neutralise ici les contraintes générales du site
 * uniquement à l'intérieur du composant PayPal.
 */
#paypal-container-664XH24DHWNZA button,
#paypal-container-664XH24DHWNZA input,
#paypal-container-664XH24DHWNZA select{
  width:auto;
  max-width:none;
  min-height:0;
  padding:initial;
  border:initial;
  border-radius:initial;
  font:initial;
}

#paypal-container-664XH24DHWNZA iframe{
  display:block;
  width:100%!important;
  max-width:100%!important;
}

@media(max-width:767px){
  #paypal-container-664XH24DHWNZA{
    min-width:0;
    max-width:none;
    margin-left:0;
  }
}

/* Entête visuelle de la page d'accueil */
.site-header--hero{
  border-top:0;
}

.site-hero{
  width:100%;
  background:var(--white);
  overflow:hidden;
}

.site-hero img{
  display:block;
  width:100%;
  height:auto;
}

.site-header--hero .header-inner{
  min-height:64px;
  justify-content:flex-end;
}

.page-title--hero{
  padding-top:1.5rem;
}

.page-title--hero p{
  margin-bottom:0;
}
