body.rrpac-popup-open { overflow: hidden; }

.rrpac-popup {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(0, 0, 0, 0.72);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.rrpac-popup.popup-visible { opacity: 1; }

.rrpac-popup-dialog {
  position: relative;
  width: min(700px, 100%);
  max-height: 90vh;
  overflow-y: auto;
  background: #fff;
  border-radius: 8px;
  padding: 40px;
  box-shadow: 0 20px 70px rgba(0, 0, 0, 0.35);
  transform: translateY(12px);
  transition: transform 0.3s ease;
}

.rrpac-popup.popup-visible .rrpac-popup-dialog { transform: translateY(0); }

.rrpac-popup-close {
  position: absolute;
  top: 8px;
  right: 14px;
  border: 0;
  background: transparent;
  color: #111;
  font-size: 36px;
  line-height: 1;
  cursor: pointer;
}

.endorsement-card h2 { margin: 0 45px 15px 0; }
.endorsement-hook { margin-bottom: 24px; }
.candidate { margin: 16px 0; padding: 16px; background: #f5f5f5; border-radius: 6px; }
.candidate-inner { display: flex; align-items: center; gap: 18px; }
.candidate-headshot { width: 105px; height: 105px; border-radius: 6px; object-fit: cover; object-position: center top; flex: 0 0 auto; }
.candidate-copy a { display: inline-block; margin-top: 7px; font-weight: 700; }
.endorsement-footnote { margin-top: 22px; font-size: 14px; font-style: italic; }
.rrpac-state-trigger { cursor: pointer; }

@media (max-width: 600px) {
  .rrpac-popup { padding: 12px; }
  .rrpac-popup-dialog { padding: 34px 20px 24px; }
  .candidate-inner { align-items: flex-start; }
  .candidate-headshot { width: 82px; height: 82px; }
}
