@charset "utf-8";
/* Unified Elections — shared styles. Consolidates the per-folder profile-card.css
   that every legacy election site shipped its own copy of. */

/* ---- Candidate card (was profile-card-3, duplicated per election) ---- */
.profile-card-3 {
  font-family: 'Open Sans', Arial, sans-serif;
  position: relative;
  /* Own stacking context: contains the card's positioned children (photo, content,
     badges) so their z-index can't rise above the sticky navbar (.sticky-top = 1020)
     and overlap it on scroll. */
  z-index: 0;
  float: left;
  overflow: hidden;
  width: 100%;
  text-align: center;
  height: 400px;
  border: none;
}
.profile-card-3 .background-block {
  float: left;
  width: 100%;
  height: 200px;
  overflow: hidden;
  background: linear-gradient(135deg, #002347 0%, #003366 60%, #00427d 100%);
}
.profile-card-3 .background-block .background {
  width: 100%;
  vertical-align: top;
  opacity: 0.9;
  filter: blur(0.5px);
  transform: scale(2.8);
}
.profile-card-3 .card-content {
  width: 100%;
  padding: 15px 25px;
  color: #fff;
  float: left;
  background: #003366;
  height: 50%;
  border-radius: 0 0 5px 5px;
  position: relative;
  z-index: 2;   /* above the rotated ::before (-1); contained by the card's context */
}
/* Position + district (and party) sit on the navy card-content — force a light,
   high-contrast colour with a soft shadow so they stay legible over the panel. */
.profile-card-3 .card-content .ec-card-office,
.profile-card-3 .card-content .ec-card-party {
  display: block;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .45);
}
.profile-card-3 .card-content .ec-card-party  { font-size: 14px; opacity: .95; margin-top: 2px; }
.profile-card-3 .card-content .ec-card-office { font-size: 15px; font-weight: 600; margin-top: 4px; }
.profile-card-3 .card-content a { color: #fff; }
.profile-card-3 .card-content a:hover { text-decoration: none; color: lime; }
.profile-card-3 .card-content::before {
  content: '';
  background: #003366;
  width: 120%;
  height: 100%;
  left: 11px;
  bottom: 51px;
  position: absolute;
  z-index: -1;
  transform: rotate(-13deg);
  border-top: solid 2px lime;
}
.profile-card-3 .profile {
  border-radius: 50%;
  position: absolute;
  bottom: 50%;
  left: 50%;
  max-width: 100px;
  opacity: 1;
  box-shadow: 3px 3px 20px rgba(0, 0, 0, 0.5);
  border: 2px solid #fff;
  transform: translate(-50%, 0%);
  z-index: 3;   /* above card-content, still inside the card's stacking context */
}
.profile-card-3 h2 { margin: 0 0 5px; font-weight: 600; font-size: 1.5em; }
.profile-card-3 h2 small { display: block; font-size: 15px; margin-top: 2%; }
.profile-card-3 i {
  display: inline-block;
  font-size: 16px;
  color: #fff;
  text-align: center;
  border: 2px solid lime;
  width: 30px;
  height: 30px;
  line-height: 30px;
  border-radius: 50%;
  margin: 0 5px;
}
.profile-card-3 .icon-block { float: left; width: 100%; padding-bottom: 5%; }
.profile-card-3 .icon-block a { text-decoration: none; }
.profile-card-3 i:hover { background-color: lime; color: #fff; text-decoration: none; }

/* ---- Landing + election page chrome ---- */
.ec-hero {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #e3e7eb;
  margin-bottom: 22px;
  background: linear-gradient(135deg, #002347 0%, #003366 60%, #00427d 100%);
  color: #fff;
  padding: 26px 24px;
}
.ec-hero h1 { color: #fff; margin: 0 0 6px; }
.ec-hero .ec-count { font-size: 2.2em; font-weight: 700; line-height: 1; color: lime; }
.ec-hero .btn { margin-top: 12px; }
.ec-level-block { margin-bottom: 28px; }
.ec-level-block h2 { color: #003366; border-bottom: 2px solid lime; padding-bottom: 6px; }
.ec-section-head { color: #003366; font-size: 1.15em; margin: 18px 0 6px; }
.ec-archive a { display: inline-block; margin: 3px 8px 3px 0; }
.ec-empty { color: #777; background: #f3f7fb; border: 1px solid #d6e3f0; border-radius: 8px; padding: 12px 14px; }

/* ---- Candidate profile page ---- */
#ec-profile-header { background: #f7f9fc; border: 1px solid #e3e7eb; border-radius: 10px; padding: 18px; margin-bottom: 18px; }
#ec-profile-header h1 { color: #003366; margin: 0; }
#ec-profile-header .ec-party { color: #444; font-size: 1.1em; margin: 2px 0 10px; }
#ec-profile-header .ec-photo { width: 100%; border-radius: 8px; }
.ec-social-icons .fa-stack { color: #003366; }
.ec-result { background: #e8f5e9; border: 1px solid #b7dfba; border-radius: 8px; padding: 8px 12px; margin: 8px 0; color: #1b5e20; font-weight: 600; }

/* Contain legacy candidate-authored HTML (bio/platform) — old campaign banners
   carry fixed pixel widths (width="940" etc.) that would otherwise overflow the
   column. Scale media to the tab area and let wide tables scroll inside it. */
.tab-content { overflow-wrap: break-word; word-wrap: break-word; }
.tab-content img,
.tab-content iframe,
.tab-content video,
.tab-content embed { max-width: 100%; height: auto; }
.tab-content table { display: block; max-width: 100%; overflow-x: auto; }
#ec-profile-header img.ec-photo { max-width: 100%; height: auto; }
