/**
Theme Name: civicopilot
Author: Andy Burns
Author URI: https://civicopilot.com
Description: Astra child theme for civicopilot.com
Version: 1.1.0
Text Domain: civicopilot
Template: astra
*/

/*-----------------------------------------------------------------------------------*/
/* Global Layout & Base */
/*-----------------------------------------------------------------------------------*/

/* Adds top padding to elements with .e-top on medium+ screens */
@media screen and (min-width: 767px) {
  .e-top {
    padding-top: 100px;
  }
}

/* Post card hover effect */
.elementor-post__card:hover, #grow:hover {
  transform: scale(1.05);
  transition: ease-in-out 0.25s;
}

/* Add top margin to content area when using plain container and no sidebar */
@media (min-width: 1000px) {
  .ast-plain-container.ast-no-sidebar #primary {
    margin-top: 30px !important;
  }
}

/* Carbon badge text in footer */
#wcb_2 {
  color: white;
}
#wcb.carbonbadge,#wcb #wcb_2, #wcb #wcb_a, #wcb #wcb_g {
	font-size:0.8rem !important;
}

/* hide scroll bar on sidebar */
@media (min-width: 922px) {
  .ast-sticky-sidebar .sidebar-main {
    overflow-y: hidden;
	overflow:initial;
	}
}

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

/* Headings: disable all-caps and apply first-letter uppercase */
h1, h2, h3, h4, h5, h6 {
	text-transform: none;
}

/* Don't transform first letter in .crm h3 */
.crm h3::first-letter {
  text-transform: none;
}

h1::first-letter, h2::first-letter, h3::first-letter {
  text-transform: uppercase;
}

.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4, .entry-content h5, .entry-content h6,.ast-container :is(h1, h2, h3, h4, h5, h6), .ast-container .wp-block-heading {
	margin-top:1rem;
	margin-bottom:0.5rem;
}

/* when grouping element adds extra padding above */
:root :where(.is-layout-constrained) > p {
  margin-block-start: 0px;
}

/* Underline highlight for headings */
.underline, .entry-title, .ast-advanced-headers-title,
h1.wp-block-heading, h2.wp-block-heading, h3.wp-block-heading, .caldera-grid h3 {
  text-decoration: underline 0.25em var(--ast-global-color-4);
  text-decoration-skip-ink: none;
  text-underline-offset: -0.10em;
}

/* make links underline and hover raised up */
#content p a:not(.button),
#content li a:not(.button)
	{
  overflow: hidden;
  background-image: linear-gradient(#0c456f, #0c456f); /* Single color gradient */
  background-repeat: no-repeat;
  background-position: 0 1.3em; /* Initially positioned below the text */
  position: relative;
  transition: background-position 0.3s ease, background-image 0.3s ease; /* Smooth transition */
}

#content p a:not(.button):hover,
#content li a:not(.button):hover {
  background-position: 0 0.7em; /* Move the background up */
  background-image: linear-gradient(rgba(30, 203, 225, 0.4), rgba(30, 203, 225, 0.4)); /* Lighter gradient with opacity on hover */
}

/* Strong tags: heavy font and black color */
b, strong {
  font-weight: 900 !important;
  color:var(--ast-global-color-0);
}

/* breadcrumbs */
.ast-breadcrumbs-wrapper, .ast-breadcrumbs-wrapper * {
	text-transform:capitalize;
}

/* Traditional blockquote container styling */
.blockquote {
  padding: 2%;
  position: relative;
  font-style: italic;
  line-height: 1.75em;
  box-shadow: 0px 0px 3px 1px rgba(39, 68, 114, 0.3);
  border-radius: 5px;
  margin: 2em 0em;
  background: #fff;
}

/* FontAwesome quote icons */
.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;
}

/* Reset blockquote tag to inherit styling */
blockquote {
  color: inherit;
  margin-left: 0.5em;
  margin-right: 0;
  font-size: 0.9em;
}

/* WP blockquote default left border */
blockquote,.wp-block-quote:not(.has-text-align-right):not(.has-text-align-center) {
  border: 3px solid transparent; /* required for border-image */
  border-image: linear-gradient(135deg, #0c456f 10%, #1ecbe1 100%) 1;
  font-style: normal;
}

blockquote p {
	margin-bottom:0;
}

/* client blockquote */
.client-blockquote, .quote {
  	display: flex; /* make it flexbox*/
  	gap: 1rem;
	justify-content: center; /* centers items horizontally */
	text-align:center;
	font-size:1.15rem;

}

.client-blockquote:before,
.client-blockquote:after {
  	font-family: "Raleway", sans-serif;
  	font-weight: 800;   
 	font-size: 4em;  
	color:var(--ast-global-color-0);
}

.cvc-gradient .client-blockquote:before, .cvc-gradient .client-blockquote:after {
	color:#fff;
}

.quote:before, .quote:after {
 	font-family: "Raleway", sans-serif;
  	font-weight: 800;
	font-size: 3em; 
	color:var(--ast-global-color-0);
}

.client-blockquote:before, .quote:before {
  content: "\201C";   /* opening quote */
}

.client-blockquote:after, .quote:after {
  	content: "\201D";   /* closing quote */
  	align-self: end;
}

.client-blockquote p {
	font-size: 1.2rem;
 	font-family: "Raleway", Sans-serif;
  	line-height: 150%;
	margin-bottom:1rem;
}

@media only screen and (max-width:921px) {
	.client-blockquote p {
	font-size: 0.9rem;
	}
}

.testimonial-attribution {
	text-align: center;
}

/* Remove default list bullets and add padding for custom bullet */
#primary ul li, 
#content .elementor-widget-container ul li {
  position: relative;     /* Allows absolutely positioned bullet inside */
  padding-left: 30px;     /* Space for the custom bullet */
  list-style: none;       /* Remove browser default bullet */
}

/* Add spacing only to list items that are not the last */
#primary ul li:not(:last-child),
#content .elementor-widget-container ul li:not(:last-child) {
  padding-bottom: 1.3rem;
}

/* Create custom circular bullet using :after pseudo-element */
#primary ul li:after, 
#content .elementor-widget-container ul li:after {
  content: "";              /* Empty content to render a shape */
  position: absolute;       /* Position bullet relative to list item */
  top: 10px;                 /* Vertically align bullet with text */
  left: 0;                  /* Position bullet on far left */
  width: 5px;              /* Bullet diameter */
  height: 5px;             /* Bullet diameter */
  background-color: var(--ast-global-color-0); /* Brand-aligned bullet color */
  border-radius: 50%;       /* Makes bullet circular */
  text-align: center;       /* Not used here, but safe default */
}

/* adjust margins for lists */
@media only screen and (max-width: 544px) {
  ol, ul {
    margin: 0 0 1.5em 0.25em;
  }
}

.elementor-icon i::before, .elementor-icon-list-icon i, .ion.ion-md-checkmark-circle-outline {
  background: linear-gradient(to top right, #0C456F, #3BC3DA);
    background-clip: border-box;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

/* used for section dividers */
.gold-divider {
 	height: 8px !important;
	background-color: var( --e-global-color-astglobalcolor5 );
}

/*-----------------------------------------------------------------------------------*/
/* Navigation and Headers */
/*-----------------------------------------------------------------------------------*/

/* Entry and page title sizing *
.ast-single-post .entry-title, .page-title {
  font-size: 48px;
}
*/
.ast-advanced-headers-title {
	font-size:48px;
}
 
/* Reduce font size on success stories and blog */
.single-success-story .ast-advanced-headers-title, .single-post .ast-advanced-headers-title {
	font-size:42px;
}

/* Breadcrumb inner alignment */
div.ast-advanced-headers-breadcrumb div.ast-breadcrumbs-wrapper 
div.ast-breadcrumbs-inner nav.breadcrumb-trail.breadcrumbs 
div.ast-breadcrumbs {
  text-align: center;
}

.ast-advanced-headers-layout-1 .ast-advanced-headers-breadcrumb {
  padding-left: 0px;
}

/* gradient on breadcrumb */
.main-header-bar.ast-header-breadcrumb {
  background: linear-gradient(to right, var(--ast-global-color-6) 0%, var(--ast-global-color-2) 40%, white 100%);
}



/* Header menu background inherits parent */
.ast-advanced-headers .ast-primary-header .main-header-menu {
  background-color: inherit;
}

/* Logo area no padding */
.ast-logo-title-inline .ast-site-identity {
  padding: 0em;
}

/* Header SVG icon sizing */
.ahfb-svg-iconset svg {
  width: 36px;
  height: 36px;
}

/* Site logo hover opacity */
.site-logo-img:hover {
  opacity: 0.85;
  transition-duration: 0.5s;
}

/* Menu underline hover thickness */
.ast-desktop .ast-menu-hover-style-underline > .menu-item:hover > .menu-link::before,
.ast-desktop .ast-menu-hover-style-overline > .menu-item:hover > .menu-link::before {
  height: 2px;
}

/* Breadcrumb & header layout on desktop screens */
@media only screen and (min-width: 544px) {

	.single-post .ast-container.ast-title-bar-align-center {
 		width: 60%;
	}
	
  .ast-breadcrumbs-wrapper {
    text-align: left;
  }

  .ast-advanced-headers-layout-2 {
    text-align: center; /* align page title center */
  }
}
/* mobile page header */
@media only screen and (max-width: 544px) {
		
	.ast-advanced-headers-layout-2 {
		text-align:left; /* align page title left */
	}
}

/*-----------------------------------------------------------------------------------*/
/* Buttons */
/*-----------------------------------------------------------------------------------*/

/* Style for Elementor buttons on the front end */
.ast-button, .button, body:not(.elementor-editor-active) .elementor-button, .caldera-grid input[type=submit], .caldera-grid .btn-default {
  background-color: #000;
  color: #fff;
  border: none;
  border-radius: 50px;
  padding: 12px 32px;
  font-weight: 600;
  text-transform: uppercase;
  transition: all 0.3s ease-in-out;
}

/* Hover effect */
.ast-button:hover, .button:hover, body:not(.elementor-editor-active) .elementor-button:hover, .elementor-button:focus, .caldera-grid input[type=submit]:hover, .caldera-grid .btn-default:hover {
	background-image: linear-gradient(135deg, var(--ast-global-color-0) 9%, var(--ast-global-color-4) 100%);
  color: #fff;
	color: white;
 	border: none;
	transform: translateY(-8px);
	transition: all 0.5s ease-in-out;

}

/* White button styling on desktop */
@media (min-width: 920px) {
  .whitebtn a {
    background: #fff;
    margin-right: 1.0em;
    border-radius: 2px;
    color: var(--ast-global-color-3) !important;
  }

  .whitebtn:hover a {
    background: #eee;
    color: var(--ast-global-color-3)!important;
  }
}

/*-----------------------------------------------------------------------------------*/
/* Form Input Fields */
/*-----------------------------------------------------------------------------------*/
.caldera-grid .form-group {
	padding:15px 0;
}

@media only screen and (min-width:768px) {
	.caldera-grid .form-group {
	margin-left:15px;
	margin-right:15px;
}
}

/* Form field styling */
input[type="email"]:focus,
input[type="password"]:focus,
input[type="reset"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="text"]:focus,
input[type="url"]:focus,
select:focus,
textarea:focus {  
	background: var(--ast-global-color-5);
	color: #333;
}

/* Focused form field styling */
input[type="email"]:focus,
input[type="password"]:focus,
input[type="reset"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="text"]:focus,
input[type="url"]:focus,
select:focus,
textarea:focus {
	background-color: inherit;
	border-width: 1px;
	border-color: var(--ast-global-color-0);
	border-style: solid;
}

/* caldera heading spacing */
.caldera-grid h3 {
	padding-top:30px;
}

/* caldera labels */
.caldera-grid label {
	font-size: 1.2em;
	color:var(--ast-global-color-0);
	}

/* caldera radio options */
 .caldera-grid .radio label {
	color:unset;
	margin-top:15px;
	margin-bottom:15px;
}

.caldera-grid .checkbox-inline {color:unset;}

/* caldera form inputs */
.caldera-grid .form-control:not(textarea) {
	height:50px !important;
	padding:0;
}

.caldera-grid .form-control {
	font-size:1rem;
	padding:6px 0;
	background-color: transparent;
	border-color: var(--ast-global-color-0);
 	border-width: 0 0 2px;
	transition:none !important;
	-webkit-box-shadow: none;
	border-bottom-style: solid;
}

/* caldera input focus */
.caldera-grid .form-control:focus {
	background-color: transparent;
	border-color: #3BC3DA !important;
  	border-width: 0 0 2px !important;
	transition:none !important;
	-webkit-box-shadow: none;
	transition: all 0.25s !important;
	border-bottom-style: solid;
}

/* success message */
.caldera-grid .alert-success {
	background-color:var(--ast-global-color-0) !important;
	color:#fff !important;
	text-shadow:none !important;
}

/* remove debug log after error on form */
.alert.alert-error pre, .alert.alert-warning {display: none;}
.caldera-grid hr {border-top: 1px solid var(--ast-global-color-0) !important;}

/* progress breadcrumbs */
.caldera-grid .breadcrumb > .active > a {
  color: var(--ast-global-color-7);
}

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

/* FacetWP search box full width */
.facetwp-input-wrap {
  display: block !important;
}

.facetwp-facet input.facetwp-search {
  width: 100%;
}

/* 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-0);
  border-radius: 0px;
  text-decoration: none;
  color: inherit;
}

/* page numbers */
.facetwp-pager .facetwp-page.active {
  border-color: var(--ast-global-color-0);
  font-weight: bold;
	background: var(--ast-global-color-0);
	color:white;
}

/*-----------------------------------------------------------------------------------*/
/* Elementor */
/*-----------------------------------------------------------------------------------*/

/* Elementor icon list icon sizing */
.elementor-widget .elementor-icon-list-icon i {
  width: 1.25em;
  font-size: 28px !important;
}

/* Elementor price table header gradient */
.custom-price-header .elementor-price-table .elementor-price-table__header {
  background-image: linear-gradient(135deg, #0d4873 0%, #0d4988 45%, #0065a4 80%);
}

/* Mobile menu icon sizing */
.elementor-menu-toggle__icon--open.eicon-menu-bar,
.elementor-menu-toggle__icon--close.eicon-close {
  font-size: 40px;
}

.elementor-price-table .elementor-price-table__features-list li .elementor-price-table__feature-inner {
  margin-left: 0px;
}

.elementor-post__title a:hover {
  transition-duration: 0.5s;
}

.elementor-nav-menu--main .elementor-item:hover {
  transform: translateY(-5px);
}

/*-----------------------------------------------------------------------------------*/
/* Gradients */
/*-----------------------------------------------------------------------------------*/

.cvc-gradient,.card.cvc-gradient {
  background: linear-gradient(135deg, #0d4873 0%, #0d4988 45%, #0065a4 80%);
}

.cvc-gradient-white {
  background-image: linear-gradient(135deg, #fff 0%, #f7f7f7 45%, #d4dfed 80%);
}

.cvc-gradient-white-flip {
  background-image: linear-gradient(210deg, #fff 0%, #f7f7f7 45%, #d4dfed 80%);
}

/*-----------------------------------------------------------------------------------*/
/* Mobile */
/*-----------------------------------------------------------------------------------*/

/* Header bar min height for smaller devices */
@media (max-width: 921px) {
  .ast-mobile-header-wrap .ast-primary-header-bar {
    min-height: 100px;
  }
}

/* Header layout alignment on mobile */
@media (max-width: 544px) {
  .ast-advanced-headers-layout-1 .ast-advanced-headers-breadcrumb,
  .ast-advanced-headers-layout-1 .ast-advanced-headers-wrap {
    display: block;
    width: 100%;
    text-align: left;
  }
}

/* Mobile hamburger icon color on page header */
.ast-advanced-headers-parallax.ast-advanced-headers-vertical-center 
[data-section="section-header-mobile-trigger"] 
.ast-button-wrap .mobile-menu-toggle-icon .ast-mobile-svg {
  fill: #fff;
}

/* White outline around mobile hamburger icon */
.ast-merged-advanced-header.ast-title-bar-wrap.ast-advanced-headers-parallax.ast-advanced-headers-vertical-center 
[data-section="section-header-mobile-trigger"] 
.ast-button-wrap .ast-mobile-menu-trigger-outline {
  border-color: white;
}

/* Remove borders from mobile nav links */
.ast-builder-menu-mobile .main-navigation .main-header-menu .menu-item .menu-link {
  border: none;
}

/* Adjust title size on small screens */
@media (max-width: 400px) {
  .ast-single-post .entry-title, .page-title {
    font-size: 42px;
  }
}

/*-----------------------------------------------------------------------------------*/
/* Sidebar */
/*-----------------------------------------------------------------------------------*/
/* Move the sidebar before the content on mobile */
@media (max-width: 768px) {
    #primary {
        order: 2;
    }

    #secondary {
        order: 1;
    }

    .ast-container {
        display: flex;
        flex-direction: column;
    }
	
	.ast-separate-container #secondary {
	margin-bottom:0; /* remove excess margin */
	padding-bottom:0; /* remove excess padding */
}
}

@media (min-width: 922px) {
  .ast-sticky-sidebar .sidebar-main {
    top: 40px !important;
  }
}

/* reduce padding within secondary sidebar */
.ast-separate-container.ast-two-container #secondary .widget {
	padding:5%;
}

/* #secondary sidebar make items fit in viewport better */
#secondary .widget > :not(.widget-title) {
  font-size: 0.80rem;
}

#secondary #block-11 { 
	border-radius:8px;
}

/*-----------------------------------------------------------------------------------*/
/* Single Success Story */
/*-----------------------------------------------------------------------------------*/

/*
 * Sidebar 
 */
.single-success-story #secondary .sidebar-main {
	  box-shadow: 0 0 10px rgba(0,0,0,0.15); /* match card box shadow */
	  border-radius:8px;
}
	
.client-meta {
  display: flex;
  flex-direction: column;
}

.client-sidebar-info {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.project-feature-section {
	border-top: 1px solid var(--ast-global-color-7);
}

/* Wrapper for feature pill list */
.project-feature-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

/* Base style for feature pills */
.project-feature {
  display: inline-block;
  padding: 0.3em 0.8em;
  font-size: 0.8rem;
  line-height: 1.2;
}
	
.project-feature-section h6 {
		margin-top:0.5rem;
	}

.secondary a.button.project-feature {
  color: #fff;
  text-transform: capitalize;
  transform: none;
	font-weight:400;
}

/*
 * Primary content
 */
@media (min-width: 921px) {
.single-success-story h2 {
	font-size:2rem;
	}
}

.card {
  background: #fff;
  padding: 2em;
  margin-bottom: 3em;
  border-radius: 8px;
  box-shadow: 0 0 10px rgba(0,0,0,0.15);
}

.card img {
  max-width: 100%;
  height: auto;
  margin-bottom: 1em;
}

.card-takeaways {
	border-left: 0px solid var(--ast-global-color-0);
	padding: 1.5em;
}

.card.cvc-gradient, .card.cvc-gradient :is(h2, h3), .card.cvc-gradient, .card.cvc-gradient strong {
	color:white;
}

.card.card-takeaways.cvc-gradient ul li:after {
	background-color:#fff !important;
}

.card-summary {
	margin:0;
}
