/**
Theme Name: sclp
Author: Andy Burns
Description: Custom theming for South Carolina Libertarian Party
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sclp
Template: astra
*/
/*-----------------------------------------------------------------------------------*/
/* Layout */
/*-----------------------------------------------------------------------------------*/
#primary {margin: 2em 0em;}

/*-----------------------------------------------------------------------------------*/
/* General */
/*-----------------------------------------------------------------------------------*/
/* flex helpers */
.flex {
    display: flex;
}

/* Flex container */
.flex {
  display: flex;
  flex-wrap: wrap; /* Allows wrapping on small screens */
  gap: 1rem;       /* Optional: controls spacing between items */
}

/* Flex helpers */
.flex-grow-1 {
  flex: 1 1 0;
  min-width: 120px;
  max-width: 100%;
}

.flex-grow-2 {
  flex: 2 1 0;
  min-width: 120px;
  max-width: 100%;
}

.flex-grow-3 {
  flex: 3 1 0;
  min-width: 120px;
  max-width: 100%;
}

::selection {
  background-color: var(--ast-global-color-6);
  color: white;
}

/*-----------------------------------------------------------------------------------*/
/* Typography */
/*-----------------------------------------------------------------------------------*/

/* Order list style */
.entry-content ol.ast-content-ol-list {
  counter-reset: my-ol-counter;
  margin-left:1.4em;
}
.entry-content ol.ast-content-ol-list li {
  position: relative;
  padding-left: 30px;
  list-style: none;
}
.entry-content ol.ast-content-ol-list li:before {
  position: absolute;
  top:50%;
  left: 0;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  color: var(--ast-global-color-1);
  text-align:center;
  background-color: var(--ast-global-color-2);
  content: counter(my-ol-counter,decimal);
  counter-increment: my-ol-counter;
  font-size: 11px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
 
/* Unordered list style */
.entry-content ul.ast-content-ul-list {
  margin-left:1.4em;
}
.entry-content ul.ast-content-ul-list li {
  position: relative;
  padding-left: 30px;
  list-style: none;
}
.entry-content ul.ast-content-ul-list li:after{
  position: absolute;
  top: -webkit-calc( 50% - -1px);
  top: calc( 50% - -1px);
  left: 0;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  padding-top: 2px;
  color: #333;
  text-align:center;
  background-color:var(--ast-global-color-2);
  content: "\e900";
  font-size: 10px;
  font-family: 'Astra';
  -webkit-border-radius: 50%;
  border-radius: 50%;
  -webkit-transform: rotate(270deg);
  -ms-transform: rotate(270deg);
  transform: rotate(270deg);
}

/*-----------------------------------------------------------------------------------*/
/* Buttons */
/*-----------------------------------------------------------------------------------*/
.ast-button, .button {
    background-color: var(--ast-global-color-2);
}

.ast-button:hover, .button:hover {
	color:#fff;
	background-color:var(--ast-global-color-8);
}

.button:hover a {
	color:white;
}

/*-----------------------------------------------------------------------------------*/
/* General */
/*-----------------------------------------------------------------------------------*/
hr {
  background-color: var(--ast-global-color-2);
}

/*-----------------------------------------------------------------------------------*/
/* Header */
/*-----------------------------------------------------------------------------------*/
/* header and submenu backward compatibility CSS */
.main-header-menu > .menu-item > a {height:auto;}

.header-main-layout-1 .ast-main-header-bar-alignment {
	margin-left:auto;
	margin-top:auto;
	margin-bottom:auto;
}

#ast-fixed-header .main-navigation ul .sub-menu {
	background:var(--ast-global-color-1);
}

/* logo hover */
.ast-site-identity:hover {opacity: 0.8;}

/* standardize top nav */
.main-navigation {
    vertical-align:middle !important;
	line-height:250%;
}

.main-header-bar-wrap {
    box-shadow: 0px 0px 5px 2px rgba(39,68,114,0.3);
}

/*-----------------------------------------------------------------------------------*/
/* Buttons */
/*-----------------------------------------------------------------------------------*/
.ast-button, .button, .caldera-forms-modal {
	font-weight:700;
	border-radius: 2px;
    padding: 10px 40px;
    color: var(--ast-global-color-0);
    border:none;
    background-color: var(--ast-global-color-2);
}

.ast-button:hover, .button:hover {
	color:#fff;
	background-color:#e6b800;
}

@media (min-width:920px) {
.yellowbtn a {
	background: var(--ast-global-color-2);
	margin-right: 1.0em;
	border-radius:2px;
	color: var(--ast-global-color-0) !important;
}

.yellowbtn:hover a {
	background: #e6b800;
	color:#fff !important;
	}
}

@media (min-width:920px) {
.bluebtn a {
	background: var(--ast-global-color-0);
	margin-right: 1.0em;
	border-radius:2px;
	color: #fff !important;
}

.bluebtn:hover a {
	background: var(--ast-global-color-1);
	color:#fff !important;
	}
}

@media (min-width:920px) {
.whitebtn a {
	background:white;
	color: var(--ast-global-color-0) !important;
	margin-right: 1.0em;
	border-radius:2px;
}

.whitebtn:hover a {
	background: rgba(255,255,255,0.85);
	}
}

/* button text color on sticky nav */
.main-header-bar.ast-sticky-active .main-header-menu > li.redbtn > a, .main-header-bar.ast-sticky-active .main-header-menu > li.yellowbtn > a { color: #fff;}

/*-----------------------------------------------------------------------------------*/
/* Sidebar */
/*-----------------------------------------------------------------------------------*/


/*-----------------------------------------------------------------------------------*/
/* Blog*/
/*-----------------------------------------------------------------------------------*/


/*-----------------------------------------------------------------------------------*/
/* Content */
/*-----------------------------------------------------------------------------------*/
/* page header */
.ast-title-bar-wrap.ast-advanced-headers-vertical-center {
		box-shadow: 0px 0px 5px 3px rgba(85, 103, 139, 0.3);

}

/* advanced headers title */
.ast-advanced-headers-title {
	font-size: 60px;
	text-align: center;
	font-weight:900;
}

@media (max-width:420px) {
	.ast-advanced-headers-title {font-size: 32px;}
}

/* style boxed containers with box shadow */
.ast-separate-container .ast-article-single, .single.ast-separate-container .ast-single-author-box {
box-shadow: 0px 0px 15px 0px rgba(0,0,0,0.5);
}

/*-----------------------------------------------------------------------------------*/
/* Footer */
/*-----------------------------------------------------------------------------------*/

/*-----------------------------------------------------------------------------------*/
/* Elementor */
/*-----------------------------------------------------------------------------------*/
/* blockquote */
.blockquote {
    padding: 2%;
    position: relative;
	font-style:italic;
}

.blockquote:before {
  position: relative;
  font-family: 'FontAwesome';
  top: 0;
  content:'\f10d';
  font-size: 30px;
  color: rgba(0,0,0,0.5); 
  padding:.25em;
  margin-right:.25em;
}

.blockquote:after {
  position: relative;
  font-family: 'FontAwesome';
  top: 0;
  content:'\f10e';
  font-size: 30px;
  color: rgba(0,0,0,0.5); 
  padding:.25em;
}

/*-----------------------------------------------------------------------------------*/
/* Event Organiser*/
/*-----------------------------------------------------------------------------------*/

/* Calendar view */
.fc-day-grid-event {
    background: var(--ast-global-color-1) !important;
	color:white !important;
	border:none !important;
}

.qtip-eo .qtip-titlebar {
	background:var(--ast-global-color-1) !important;
	color:white;
}

.fc-title {
    font-size: 0.85rem !important;
}

/* single event cpt */
.single-event h1.entry-title {
  font-size: 48px;
}

/* event map */
.single-event .eo-event-venue-map {
  	width: 100% !important;
	clear:both;
	padding-right: 8%;
    padding-left: 8%;
}

/* event meta */
.single-event .eo-event-meta {
	width:100% !important;
	margin-bottom:3%;
}

/* venue map */
.single-event #eo_venue_map-1, #eo_venue_map-2, #eo_venue_map-3 {
  height: 400px !important;
}

/* fix z-index */
.eo-event-venue-map {
  z-index: 1;
  position: relative;
}

/* register link change to button */
.single-event a.civicrm-event-organiser-register-link {
	padding:10px 30px;
    background: var(--ast-global-color-2);
	color:var(--ast-global-color-0);
	border-radius:3px;
	text-decoration:none;
	text-align:center;
}

.single-event a.civicrm-event-organiser-register-link:hover {
	background: var(--ast-global-color-8);
	color: white;
}

/* remove bullet from civicrm register button */
.single-event .civicrm-event-register-link, .single-event .civicrm-event-register-links {
	list-style: none;
 	margin-left: 0;
  	margin-top: 1%;
 	margin-bottom: 3%;
	display:none;
}

.civicrm-register-link {
  padding-top: 10px;
}

.single-event .eventorganiser-event-meta h4 {
	margin-bottom:0;
}

/* event featured image */
.single-event .post-thumbnail {
	margin-top: 3%;
	margin-bottom:3%;
}

/* event content */
.event-content {margin-top:3%;}

/*-----------------------------------------------------------------------------------*/
/* FacetWP General */
/*-----------------------------------------------------------------------------------*/

/* remove margin gap */
.facetwp-facet {
  margin-bottom: 0 !important;
}

/* background color for dropdown select items */
.fs-dropdown {
	background-color: var(--ast-global-color-1) !important;
	color:white;
}

/* hide empty fields */
.fwpl-item.is-empty {
  display: none;
}

/* page numbers */
.facetwp-pager .facetwp-page {
  display: inline-block;
  padding: 0.5em 0.75em;
  margin: 0 0.25em;
  border: 1px solid var(--ast-global-color-1);
  border-radius: 0px;
  text-decoration: none;
  color: inherit;
}

.facetwp-pager .facetwp-page.active {
  border-color: #333;
  font-weight: bold;
	background: var(--ast-global-color-1);
	color:white;
}

.facetwp-facet .fs-wrap,.facetwp-input-wrap {
    width:100%;
}

/* search filters */
.facetwp-facet input[type="text"] {
	height:50px;
	font-size: 1rem;
	border:1.5px solid white;
	width:100%;
}

/* Optional: style placeholder text */
.facetwp-search::placeholder {
}

.facetwp-search:focus {
	border:5px solid white;
}

.facetwp-facet input[type="text"]:focus {
	border-color:white;
}

/* Adjust the height and background of the fSelect visible input */
.facetwp-type-fselect .fs-wrap {
  height: 50px;
  background-color:transparent;
  border: 1px solid #fff; 
  border-radius: 3px; 
  box-shadow: none; 
}

/* Adjust inner label height and line alignment */
.facetwp-type-fselect .fs-label-wrap {
  height: 100%;
  display: flex;
  align-items: center;
  padding: 0 12px;
}

.fs-label-wrap .fs-label {
	color:#9CA3AF;
}

/* arrow */
.facetwp-facet .fs-label-wrap span.fs-arrow {
}

/* Style the search input field directly */
.facetwp-type-search .fs-wrap {
  width: 100%;
  height: 50px;
  border-radius: 3px;
  box-shadow: none;
  padding: 0 12px;
}

/* hide go button */
.facetwp-autocomplete-update {
  display: none;
}

/*-----------------------------------------------------------------------------------*/
/* FacetWP candidate Listing */
/*-----------------------------------------------------------------------------------*/
/* candidate grid layout */
.fwpl-layout.candidate-listing {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 2rem;
  align-items: stretch;
}

/* Let each result item stretch to fill the grid cell */
.fwpl-result {
  height: 100%;
}

/* Ensure all inner wrappers take full height and stack content vertically */
.fwpl-row,.candidate-wrap,.candidate-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* Make the entire card clickable and styled */
.candidate-card > a {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
  background: var(--ast-global-color-1);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 6px 16px rgba(40, 15, 53, 0.35);
  transition: box-shadow 0.3s ease, transform 0.2s ease;
}

/* Add hover effect to the card */
.candidate-card > a:hover {
  box-shadow: 0 10px 24px rgba(40, 15, 53, 0.5);
  transform: translateY(-8px);
}

.fwpl-layout.el-ikr8y9 .candidate-featured-image img { 
  width: 100%;
  aspect-ratio: 4 / 3;          
  height: auto;                
  object-fit: cover;  
  object-position: top;  
  display: block;
}

/* Limit image height inside each FacetWP card */
.fwpl-layout.el-ikr8y9 .candidate-featured-image {
  height: auto;    
  overflow: hidden;
}

/* Meta section with candidate details */
.candidate-meta {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  font-size:0.9rem;
  gap: 0.5rem;
  padding: 1rem;
  background: var(--ast-global-color-1);
  color: white;
}

/* candidate name and title styling */
.candidate-name {
  font-size: 1.2rem;
  line-height:100%;
  font-weight: 700;
}

/* candidate office styling */
.candidate-office {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  font-size:0.9rem;
	line-height:120%;
}

/* elected officials */
.candidate-term {
  display: flex;
  flex-direction: column;   /* stack vertically */
  gap: 0em;               /* small space between office and dates */
  line-height:140%;
}

.candidate-dates {
  display: flex;
  gap: 0.3em;                /* space around the dash */
  align-items: center;
}

.term-separator {
  opacity: 0.6;
}