:root {
  --form-control-color: rebeccapurple;
}

.cta-buttom-full-width {
  display: block;
  background-color: #4238aa;
  color: #fff;
  padding: 10px 20px;
  border-radius: 6px;
  text-align: center;
  text-decoration: none;
  font-size: 22px;
  font-weight: 700;
  font-family: Cabin, sans-serif;
  width: 100%;
  border: 0;
}

.text-center {
  text-align: center;
  justify-content: center;
  margin-top: 20px;
}

.cta-buttom-inline {
  display: inline-block;
  background-color: #4238aa;
  color: #fff;
  padding: 15px 30px;
  border-radius: 50px;
  text-align: center;
  text-decoration: none;
  font-size: 20px;
  font-family: Cabin, sans-serif;
  border: 0;
}

.copy-content-button {
  padding: 10px 27px;
  font-size: 18px;
  width: 100%;
  margin-bottom: 8px;
  cursor: pointer;
}

@media (max-width: 767px) {
  .cta-buttom-inline {
    font-size: 15px;
    padding: 12px 19px;
  }

  .send-to-email {
    font-size: 16px;
  }
}

.disabled {
  background-color: #ccc;
  color: #666;
  border: 1px solid #999;
  cursor: not-allowed;
  pointer-events: none;
  opacity: 0.6;
}

.cta-buttom-full-width.download {
  text-transform: uppercase;
  padding: 14px 20px;
  border-radius: 12px;
  text-align: center;
  cursor: pointer;
}

.share-modal-container,
.share-slide-modal-container {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(255, 255, 255, 0.88);
}

.share-modal-inner {
  background-color: #fff;
  margin: 0 auto 60px 0;
  padding: 20px;
  border-radius: 5px;
  width: 80%;
  max-width: 750px;
  position: absolute;
  box-shadow: 0px 13px 18px #1712128c;
  border-radius: 25px;
  left: 50%;
  top: 80px;
  transform: translateX(-50%);
}
.content-box--custom .share-modal-inner {
  max-width: 800px;
}

.modal-header {
  text-align: center;
}

.modal-header h2 {
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 8px;
  font-size: 38px;
}

.modal-header p a {
  color: #000;
  text-decoration: none;
}

.close-btn {
  position: absolute;
  top: 10px;
  right: 10px;
  font-size: 24px;
  font-weight: bold;
  cursor: pointer;
  background: #433ca3;
  width: 28px;
  height: 28px;
  border-radius: 5px;
  color: #fff;
  text-align: center;
}

body.modal-open .candidate-guide-header {
  filter: blur(12px);
}

.content-box {
  background-color: #433ca3;
  padding: 20px;
  border: 5px solid #b1bbee;
  margin: 32px 0 30px 0;
  container-type: inline-size;
}
.content-box.content-box--custom {
  padding: 20px 20px calc(3rem + 20px);
}

.content-box .candidate-row,
.content-box .description-row {
  display: flex;
  justify-content: space-between;
}
.content-box .candidate-row.candidate-row--column-view {
  flex-direction: column;
}
.content-box .candidate-row .candidate-container {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-bottom: 20px;
  @container (min-width: 464px) {
    flex-direction: row;
  }
}
.content-box .candidate-row .candidate-container .text-container {
  width: 100%;
}
.content-box .candidate-row .candidate-container h3 {
  text-align: center;
  color: #fff;
  font-weight: bold;
  text-shadow: #000 1px 1px 1px;
  margin-bottom: 15px;
  letter-spacing: 1px;
}
.content-box .candidate-row .candidate-container h3.mob-visible {
  display: block;
  @container (min-width: 464px) {
    display: none;
  }
}
.content-box .candidate-row .candidate-container .description-column {
  height: 100%;
}
.content-box .candidate-row .candidate-container .candidate-column {
  display: grid;
}
.content-box .image-container {
  width: 110px;
  height: 110px;
  overflow: hidden;
  margin-bottom: 20px;
  box-shadow: 5px 5px 2px #000;
  border-radius: 4px;
  border-bottom: 2px solid #000;
}

.text-container {
  width: calc(100% - 130px);
}

.text-container h3 {
  font-size: 40px;
  text-transform: uppercase;
  margin: 0;
  font-weight: 700;
  color: #b1bbee;
  line-height: 35px;
}

.text-container p {
  color: #fff;
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 600;
}

.content-box .image-container img {
  max-width: 100%;
  object-position: center -11px;
  border-radius: 4px;
  border: 2px solid #000;
}

.candidate-column {
  width: 45%;
}
.candidate-headshot-wrap {
  display: flex;
  justify-content: space-between;
}

.description-column {
  background-color: #ffffff;
  width: 100%;
  border-radius: 15px;
  /*  box-shadow: 5px 5px 2px #000;*/
  border-style: solid;
  border-width: 2px 7px 7px 2px;
  border-color: #000;
  text-align: center;
}

.description-column .issue-name {
  margin: 0;
  border-radius: 8px 8px 0 0;
  padding: 11px 40px;
  color: #fff;
  position: relative;
}

.description-column .issue-name .star-icon,
.description-column .issue-name .star-icon {
  /* content: ''; */
  position: absolute;
  /* background-image: url('../assets/star.svg');
  background-repeat: no-repeat; */
  width: 20px;
  height: 20px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
}

.description-column .issue-name .right-star {
  right: 10px;
}

.description-column .issue-name .left-star {
  left: 10px;
}

.description-column .bg-blue {
  background-color: #613bff;
}

.description-column .bg-red {
  background-color: #ff3e4c;
}

.description-column .content {
  padding: 10px;
  background-color: #fff;
  border-radius: 0 0 7px 7px;
}

.description-column .content p {
  font-size: 14px;
}

.share-panel {
  max-width: 570px;
  margin: 20px auto 0 auto;
  text-align: center;
}

.share-icons,
.share-icons-slide {
  display: flex;
  justify-content: space-evenly;
  list-style: none;
  padding-left: 0;
}

.share-icons li,
.share-icons-slide li {
  width: 40px;
  height: 40px;
  background: #4238aa;
  align-content: center;
}

.share-icons li a,
.share-icons-slide li a {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}

.share-icons li a svg,
.share-icons-slide li a svg {
  height: 25px;
}

.share-icons li a svg path,
.share-icons-slide li a svg path {
  fill: #fff;
}

.padding-bottom {
  padding-bottom: 40px;
}

.copy-guide {
  border-radius: 6px;
  min-width: 312px;
  margin-bottom: 30px;
}

.send-to-email {
  margin-bottom: 20px;
  display: block;
  color: #1d1a62;
  text-decoration: none;
  font-size: 17px;
  font-family: Cabin, sans-serif;
  border: 1px solid #4238aa;
  border-radius: 50px;
  text-align: center;
  line-height: 30px;
}

.send-to-email span {
  position: relative;
  top: -6px;
}

.send-to-email svg {
  width: 33px;
  position: relative;
  top: 4px;
  margin-left: 20px;
}

.send-to-email svg path {
  fill: #4238aa;
}

.hide-template {
  display: none;
}

@media (max-width: 600px) {
  .issue-guide-quick-menu {
    background: #fff;
    padding: 20px;
  }
}

@container (max-width: 1023px) {
  .text-container h3 {
    font-size: 30px;
    line-height: 35px;
  }
}

@container (max-width: 500px) {
  .text-container {
    width: 100%;
    margin-top: 15px;
  }
  .candidate-headshot-wrap {
    display: block;
    text-align: center;
  }
  .content-box .image-container {
    margin: 0 auto;
  }
  .text-container h3 {
    font-size: 28px;
    line-height: 32px;
  }
  .candidate-row,
  .description-row {
    display: block;
  }

  .content-box .description-row,
  .content-box .candidate-row {
    display: block;
    margin-top: 30px;
  }

  .description-column {
    width: 100%;
    margin-bottom: 20px;
  }

  .share-modal-inner {
    width: 90%;
  }

  .modal-header h2 {
    font-size: 30px;
    line-height: 35px;
  }

  .cta-buttom-full-width.download {
    padding: 10px 15px;
    font-size: 17px;
  }
}

@container (max-width: 464px) {
  .candidate-column {
    display: block;
    width: 100%;
  }

  /* .text-container {
    width: 100%;
  } */
}

@container (max-width: 330px) {
  /* .text-container h3 {
    font-size: 14px;
    line-height: 20px;
  } */

  /* .text-container p {
    font-size: 11px;
  } */

  /* .content-box .image-container {
    width: 90px;
    height: 90px;
  } */

  /* .candidate-column {
    width: 100%;
  } */

  .description-column .issue-name {
    padding: 11px 35px;
    font-size: 15px;
    line-height: 24px;
  }
}

.hide-table {
  display: none;
}
.content-box--custom .splide .splide__list {
  align-items: center;
  transition: height 0.2s;
}
.content-box--custom .splide .splide__track {
  transition: all 0.5s ease-in-out;
}
.content-box--custom .splide .splide__slide {
  padding: 40px 20px 0;
  height: auto;
}

.content-box--custom .splide__pagination--custom {
  bottom: -3rem;
  flex-wrap: nowrap;
}
.content-box--custom .splide__pagination {
  counter-reset: pagination-num;
}

.content-box--custom .splide__pagination__page:before {
  counter-increment: pagination-num;
  content: counter(pagination-num);
  padding-top: 3px;
}
.content-box--custom .splide__pagination--custom .splide__pagination__page {
  align-items: center;
  background: #363e40;
  border-radius: 4px;
  color: #c4d5d7;
  display: inline-flex;
  font-family: Splide Heading, sans-serif;
  font-size: 1.1rem;
  height: 2.2rem;
  justify-content: center;
  line-height: 1;
  margin-left: 0.5rem;
  width: 2.2rem;
  opacity: 1;
}
.content-box--custom
  .splide__pagination--custom
  .splide__pagination__page.is-active {
  background: #613bff;
  color: #ffffff;
  opacity: 1;
  transform: scale(1);
}

.radio-container {
  display: grid;
}
.content-box--custom .wrapper {
  display: inline-flex;
  background: #fff;
  height: auto;
  width: 100%;
  max-width: 400px;
  align-items: center;
  justify-content: start;
  border-radius: 5px;
  padding: 20px 15px;
  box-shadow: 5px 5px 30px rgba(0, 0, 0, 0.2);
  font-family: Cabin, sans-serif;
  margin: 0 auto 25px;
  flex-direction: column;
  @media (min-width: 693px) {
    flex-direction: row;
    height: 100px;
    justify-content: space-evenly;
  }
}

.content-box--custom .wrapper .option {
  background: #fff;
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: start;
  margin: 5px 10px;
  border-radius: 5px;
  cursor: pointer;
  padding: 10px;
  border: 2px solid lightgrey;
  transition: all 0.3s ease;
  @media (min-width: 693px) {
    margin: 0 10px;
    padding: 0 10px;
    justify-content: space-evenly;
  }
}
.content-box--custom .wrapper .option .dot {
  height: 20px;
  width: 20px;
  background: #d9d9d9;
  border-radius: 50%;
  position: relative;
  margin-right: 10px;
  @media (min-width: 693px) {
    margin-right: 0;
  }
}
.content-box--custom .wrapper .option .dot::before {
  position: absolute;
  content: "";
  top: 4px;
  left: 4px;
  width: 12px;
  height: 12px;
  background: #4238aa;
  border-radius: 50%;
  opacity: 0;
  transform: scale(1.5);
  transition: all 0.3s ease;
}

.content-box--custom #option-1:checked:checked ~ .option-1,
.content-box--custom #option-2:checked:checked ~ .option-2 {
  border-color: #4238aa;
  background: #4238aa;
}
.content-box--custom #option-1:checked:checked ~ .option-1 .dot,
.content-box--custom #option-2:checked:checked ~ .option-2 .dot {
  background: #fff;
}
.content-box--custom #option-1:checked:checked ~ .option-1 .dot::before,
.content-box--custom #option-2:checked:checked ~ .option-2 .dot::before {
  opacity: 1;
  transform: scale(1);
}
.content-box--custom .wrapper .option span {
  font-size: 20px;
  color: #808080;
}
.content-box--custom #option-1:checked:checked ~ .option-1 span,
.content-box--custom #option-2:checked:checked ~ .option-2 span {
  color: #fff;
}

.content-box--custom .share-slide-modal-content {
  background-color: #433ca3;
}
.essb_links.essb_size_s .essb_link_svg_icon .js-open-share-slide-modal svg {
  height: 30px;
  margin-top: 2px;
}
.content-box--custom input[type="radio"] {
  display: none !important;
}

div:where(.swal2-container).swal2-backdrop-show{
  background: rgba(0,0,0,0.7)!important;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

div:where(.swal2-container) .swal2-html-container{
  max-height: 200px;
}



/* custom share shortcode */
ul.share-icons-slide.share-icons-slide-sc {
    justify-content: center; 
    gap:5px;
}

ul.share-icons-slide.share-icons-slide-sc li {
    width: 30px;
    height: 30px;
}

ul.share-icons-slide.share-icons-slide-sc li a.fb-icon {
    background-color: #0866FF;
}

ul.share-icons-slide.share-icons-slide-sc li a.tw-icon {
    background-color: #000;
    padding: 7px;
}

ul.share-icons-slide.share-icons-slide-sc li a.ld-icon {
    background-color: #007bb6;
    padding: 7px;
}

ul.share-icons-slide.share-icons-slide-sc li a.email-icon {
    background-color: #404040;
    padding: 7px;
}

ul.share-icons-slide.share-icons-slide-sc li a.bsky-icon {
    background-color: #0085ff;
    padding: 6px;
}

ul.share-icons-slide.share-icons-slide-sc li a.insta-icon {
    background-color: #C536A4;
    padding: 6px;
}

.issue-group-images-sc {
  padding: 0 !important;
}

.content-box-gallery{
  border: 5px solid #fff !important;
  background:none !important;

}


/* ==========================================================================
   Header Logo & Footer Social Media Overrides
   ========================================================================== */

/* 1. Header Logo Constraints */
#logo .logo-img {
    display: block;
    height: 23px;        
    width: auto;         
    margin-top: 2px;     
}

@media (max-width: 768px) {
    #logo .logo-img {
        height: 19px;    
    }
}

/* 2. Footer Social Icons Alignment & Sizing */
#footer-social-media {
    display: flex;
    gap: 15px;               
    align-items: center;
    margin-top: 15px;
    
    /* FIX: Prevents it from shrinking and forces it to take its own line if needed */
    flex-shrink: 0; 
}

/* Desktop layout layout safety net */
@media (min-width: 769px) {
    #footer-content {
        display: flex;
        flex-wrap: wrap; /* Allows components to drop down if they run out of room */
        align-items: center;
    }
    
    /* Forces the social media block to wrap neatly under the footer menu */
    #footer-menu {
        flex-grow: 1; 
    }
}

#footer-social-media a svg {
    width: 20px;             
    height: 20px;
    fill: #ffffff;           
    transition: fill 0.2s ease, transform 0.2s ease;
}

#footer-social-media a:hover svg {
    fill: #a3b83b;           
    transform: translateY(-2px); 
}


:root {
  --form-control-color: rebeccapurple;
  
  /* Brand Font Definitions mapped to variables */
  --font-headings: 'Roboto Slab', serif;
  --font-body: 'Rubik', sans-serif;
  --font-accent: 'Cabin', sans-serif;
}

/* ==========================================================================
   Global Brand Reset - Enforces Uniformity Across All Pages
   ========================================================================== */

/* 1. Forces paragraphs, lists, spans, and form entries to pull Rubik */
body, p, li, span, label, input, textarea, .entry-content, .acf-block-preview {
    font-family: var(--font-body) !important;
}

/* 2. Forces all structural layout headers to pull Roboto Slab */
h1, h2, h3, h4, h5, h6, .site-title, .entry-title, .heading-xl, .heading-lg {
    font-family: var(--font-headings) !important;
    font-weight: 700;
}

/* 3. Ensures your horizontal primary menu links stay consistently on Rubik */
.nav-main-link, .nav-footer a {
    font-family: var(--font-body) !important;
}

.cta-buttom-full-width {
  display: block;
  background-color: #4238aa;
  color: #fff;
  padding: 10px 20px;
  border-radius: 6px;
  text-align: center;
  text-decoration: none;
  font-size: 22px;
  font-weight: 700;
  font-family: var(--font-accent) !important; /* Forces Cabin explicitly */
  width: 100%;
  border: 0;
}

.cta-buttom-inline {
  display: inline-block;
  background-color: #4238aa;
  color: #fff;
  padding: 15px 30px;
  border-radius: 50px;
  text-align: center;
  text-decoration: none;
  font-size: 20px;
  font-family: var(--font-accent) !important; /* Forces Cabin explicitly */
  border: 0;
}
/* ==========================================================================
   Page Containers & Team Grid System
   ========================================================================== */

/* 1. Content Alignment (Mimicking your preferred Resources layout margins) */
.team-section-title {
    margin-top: 50px;
    margin-bottom: 35px;
}

/* 2. CSS Grid Framework matching your design blueprint */
.team-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr); /* 4 Clean Columns on Desktop */
    gap: 30px;                             /* Uniform spacing between cards */
    margin-bottom: 60px;
}

.team-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

/* 3. Uniform Square Image Masking Matrix */
.team-avatar-wrapper {
    width: 100%;
    aspect-ratio: 1 / 1; /* Locks image containers into a strict square box */
    margin-bottom: 12px;
    overflow: hidden;
    background-color: #f9f9f9;
}

.team-avatar {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Forces disparate headshot uploads to crop cleanly without stretch distortion */
}

/* 4. Typography Details - Inherits your brand fonts automatically */
.team-name {
    font-size: 1.125rem;
    margin: 0 0 4px 0;
    font-weight: 700;
    color: #111111;
}

.team-role {
    font-size: 0.9rem;
    margin: 0;
    color: #666666;
}

/* ==========================================================================
   Mobile Responsive Breakpoints
   ========================================================================== */
@media (max-width: 992px) {
    .team-grid {
        grid-template-columns: repeat(3, 1fr); /* 3 Columns on Tablet viewports */
        gap: 20px;
    }
}

@media (max-width: 768px) {
    .team-grid {
        grid-template-columns: repeat(2, 1fr); /* 2 Columns on Mobile layout space */
    }
}

@media (max-width: 480px) {
    .team-grid {
        grid-template-columns: 1fr;            /* 1 Column on smaller phone displays */
    }
}

/* Ultimate End-To-End Breakout Container */
.about-hero-breakout {
    position: relative !important;
    /* Forces the element to calculate 100% of the screen width regardless of parent padding */
    width: 100vw !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    
    /* Strips any margins/padding forced by parent themes */
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding: 0 !important;
    
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: cover !important;
    box-sizing: border-box !important;
}

/* Adjust the inner spacing height of the banner */
.about-hero-overlay {
    padding: 120px 0 !important; /* Adjust this to make the banner taller or shorter */
    background-color: rgba(0, 0, 0, 0.15) !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 768px) {
    .about-hero-overlay {
        padding: 80px 0 !important;
    }
} /* Styling for the expanded inline biography panel */
.bio-display-target {
    width: 100%;
    margin-top: 25px;
    background-color: #f9f9f9;
    border-left: 4px solid #4a52a2; /* Matches your main violet brand tone */
    padding: 25px;
    border-radius: 4px;
    box-sizing: border-box;
    transition: all 0.3s ease-in-out;
}

.bio-display-content .display-name {
    font-size: 1.5rem;
    color: #222222;
    margin-bottom: 5px;
    font-weight: 700;
}

.bio-display-content .display-role {
    font-size: 1.1rem;
    color: #666666;
    margin-bottom: 15px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.bio-display-content .display-text {
    font-size: 1.05rem;
    line-height: 1.6;
    color: #333333;
}

/* Subtle styling highlight when a card's profile is open */
.active-bio-card {
    border: 2px solid #4a52a2 !important;
    background-color: rgba(74, 82, 162, 0.03);
}