/**
Theme Name: ASPP
Author: Civicopilot
Author URI: https://civicopilot.com/
Description: Astra based theme for Psychoanalytic organizations with event templating
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: aspp
Template: astra
*/

/*-----------------------------------------------------------------------------------*/
/* General */
/*-----------------------------------------------------------------------------------*/
:root {
  --radius-sm: 5px;
  --radius-md: 10px;
  --radius-top-right: 95px;
  --radius-event-card: var(--radius-md) var(--radius-top-right) var(--radius-md) var(--radius-md);
  --color-teal: #00A3A3;
}

#primary {
  margin: 2rem auto;
}

#secondary {
  margin: 2rem auto;
}

.single-event #primary {
  margin: 3rem auto;
}

.single-event #secondary {
  margin: 3rem auto;
}

.single-event #content.site-content {
  background-color: var(--ast-global-color-4);
  background-image: linear-gradient(var(--ast-global-color-4), #FFFFFF);
}

@media (min-width: 921px) {
  .single-event #content.site-content {
    background-image:
      url('assets/images/vector-6.png'),
      linear-gradient(var(--ast-global-color-4), #FFFFFF);
    background-position: top right, top left;
    background-repeat: no-repeat, repeat;
    background-size: 38% auto, auto;
  }
}

.single .entry-header {margin-bottom:1.5rem;}

header.entry-header a:hover {color:var(--ast-global-color-7);}

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

/*-----------------------------------------------------------------------------------*/
/* Elementor */
/*-----------------------------------------------------------------------------------*/
/* Heading line-height correction */
.elementor-widget-heading h3.elementor-heading-title {
  line-height: 1.1em;
}

/* Elementor boxed layout automatic padding */
.ast-page-builder-template .site .site-content #primary #main .entry-content .e-con-boxed.e-con.e-parent {
	padding-left:5%;
	padding-right:5%;
}

/* Preserve frontend list spacing without affecting the Elementor editor. */
body:not(.elementor-editor-active) .entry-content ul li,
body:not(.elementor-editor-active) .entry-content ol li,
body:not(.elementor-editor-active).single-event #primary ul li,
body:not(.elementor-editor-active).single-event #primary ol li {
  margin-bottom: 0.5rem;
}

/* Hide Elementor Notes in the admin bar. */
#wp-admin-bar-elementor_notes {
  display: none;
}

/* Elementor form focus */
.elementor-field-group .elementor-field-textual:focus {
  border-color: var(--ast-global-color-1) !important;
  box-shadow: 5px 5px 0 var(--ast-global-color-1);
  transition: all 0.3s ease-in-out;
}

.elementor-mark-required .elementor-field-label::after {
  color: var(--ast-global-color-7);
}

/*-----------------------------------------------------------------------------------*/
/* General utilities */
/*-----------------------------------------------------------------------------------*/

/* Astra container spacing */
.ast-plain-container.ast-no-sidebar #primary {
  margin-top: 30px; /* top page margin */
  margin-bottom: 50px; /* bottom page margin */
}

/* smaller text helper classes */
.xs-text {font-size:0.8rem;}
.sm-text {font-size:0.9rem;} 
.l-text {font-size:1.1rem;}
.xl-text {font-size:1.25rem;}

.equal-height {
	height:100%;
}

strong {color:var(--ast-global-color-2);}

/* headings spacing */
.entry-content :where(h2, h3, h4, h5, h6) {
  margin-top: 0;
  margin-bottom: 0.25rem;
}

.underline {
  text-decoration: underline;
  text-underline-offset: 6px; 
}

/* link underlines within paragraphs */
.presenters a, p a {
  text-decoration: underline;
  text-decoration-color:var(--ast-global-color-1);
  text-decoration-thickness: 1px;    /* thickness of underline */
  text-underline-offset: 5px;        /* space between text and underline */
}
/* link underline hover within paragraphs */
.presenters a:hover, p a:hover {
  text-decoration-color: var(--ast-global-color-2); /* or any other color */
	text-decoration:underline;
}

/* field label */
.field-label {
	color:var(--ast-global-color-1);
	font-weight:700;
}

/* input base */
input[type="text"] {
	box-shadow:none;
	border-color:var(--ast-global-color-1);
}

input[type="text"]:focus {
	border-color:var(--ast-global-color-2);
}

.curve-top-right,
.page-id-701 .sidebar-main {
	border-bottom-right-radius: var(--radius-md);
	border-bottom-left-radius: var(--radius-md);
	border-top-left-radius: var(--radius-md);
	border-top-right-radius: var(--radius-top-right);
}

.radius-10 {
	border-radius: var(--radius-md);
}

.single-event header.entry-header .event-category-venue {
  margin-top: 1rem;
  margin-bottom: 0rem;
  color: var(--ast-global-color-0);
  font-family: 'Alan Sans', sans-serif;
}

.single-event header.entry-header .event-category-venue a {
  color: inherit;
}

.psy-event-category-separator {
  color: var(--ast-global-color-3);
}

.psy-event-card--social .psy-event-category-separator {
  color: var(--ast-global-color-4);
}

.single-event .psy-event-category-separator {
  color: var(--ast-global-color-1);
}

.single-event header.entry-header .event-category-venue__icon {
  width: 0.85rem;
  height: 0.85rem;
  margin-right: 0.35rem;
  vertical-align: -0.1em;
}

/* heading link */
.entry-title a {
	font-weight:400 !important;
	font-family:'Source Serif 4',serif;
}

/* heading link hover */
.entry-title a:hover {
  color:var(--ast-global-color-2);
}

.entry-title {
	padding-bottom:0px;
	margin-bottom:0;
}

/* default line separator */
hr {
	border: none;
	margin:1rem 0;
  background-color: var(--ast-global-color-6);
}

/*-----------------------------------------------------------------------------------*/
/* Navigation */
/*-----------------------------------------------------------------------------------*/
/* remove gaps in nav for more room */
.ast-builder-menu-1 .main-header-menu, .ast-header-break-point .ast-builder-menu-1 .main-header-menu {
  margin-left: 0px;
}

/* remove padding between button and member login */
.site-header-section > div:last-child {
  padding-left: 0;
}

/* Target only the .menu-text span inside top-level menu items */
#primary-site-navigation-desktop .main-navigation > ul > li > .menu-link > .menu-text {
  position: relative;
  display: inline-block;
}

#primary-site-navigation-desktop .main-navigation > ul > li > .menu-link > .menu-text::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -5px;
  height: 2px;
  background-color: var(--ast-global-color-5);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.3s ease;
}

#primary-site-navigation-desktop .main-navigation > ul > li:hover > .menu-link > .menu-text::after,
#primary-site-navigation-desktop .main-navigation > ul > li.current-menu-item > .menu-link > .menu-text::after,
#primary-site-navigation-desktop .main-navigation > ul > li.current_page_item > .menu-link > .menu-text::after {
  transform: scaleX(1);
}

/* Hide Astra's default SVG so it can be replaced */
#primary-site-navigation-desktop
.main-navigation > ul > li > .menu-link > .dropdown-menu-toggle svg {
  display: none;
}

/* Add solid downward solid triangle  */
#primary-site-navigation-desktop
.main-navigation > ul > li > .menu-link > .dropdown-menu-toggle::after {
  content: "";
  display: inline-block;
  margin-left: 8px;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 7px solid var(--ast-global-color-5);
  vertical-align: middle;
}

/* primary to secondary menu seperator */
@media (min-width: 1024px) {
  #ast-desktop-header .ast-builder-grid-row {
    grid-template-columns: 1fr auto;
    column-gap: 40px;
  }

  #ast-desktop-header .site-header-primary-section-right {
    position: relative;
    padding-left: 40px;
  }

  #ast-desktop-header .site-header-primary-section-right::before {
    content: "";
    position: absolute;
    left: -10px;
    top: 50%;
    width: 2px;
    height: 20px;
    background-color: var(--ast-global-color-3);
    transform: translate(-50%, -50%);
  }
}

.ast-builder-menu-mobile .main-navigation .menu-item.current-menu-item > .menu-link {
	color: var(--ast-global-color-4);
}

.ast-breadcrumbs-wrapper .trail-items a {
  color:var(--ast-global-color-4);
}

.ast-breadcrumbs-wrapper .trail-item.trail-end {
	font-weight:bold;
}

.single-event .main-header-bar.ast-header-breadcrumb {display: none;}

/* fixes huge line height for login */
.ast-desktop:not(:has(.ast-header-sticked)) .ast-primary-header-bar .main-header-menu > .menu-item {
  line-height: inherit;
}


.ast-header-button-1[data-section*="section-hb-button-"] .ast-builder-button-wrap .ast-custom-button {
  text-align: center;
}

/* bg color of mobile menu container */
.ast-mobile-popup-drawer.active .ast-mobile-popup-inner {
  background-color: var(--ast-global-color-4);
}

/* secondary menu */

/* Join today btn*/
#ast-hf-menu-2 .mem-cta-btn a.menu-link {
  background-color: var(--ast-global-color-5);
  padding: 15px 30px;
  color:white;
  margin-left:25px;
}

#ast-hf-menu-2 .mem-cta-btn a.menu-link:hover {
  background-color: var(--ast-global-color-8);
}

/* my account btn */
#ast-hf-menu-2 .mem-account-btn a.menu-link {
  border: 2px solid var(--ast-global-color-5);
  padding: 15px 30px;
  color: var(--ast-global-color-5);
}

#ast-hf-menu-2 .mem-account-btn a.menu-link:hover {
  background-color: var(--ast-global-color-8);
  color: white;
  border-color: var(--ast-global-color-8);
}

/* Keep the logo and primary navigation on one row; min-width: 0 allows this
 * flex section to shrink within the header instead of overflowing its container. */
#ast-desktop-header .site-header-primary-section-left {
	flex-wrap: nowrap;
	min-width: 0;
}

/* Let the primary menu use the available space while remaining able to shrink. */
#ast-desktop-header .ast-builder-menu-1 {
	flex: 1 1 auto;
	min-width: 0;
}

/* Keep all top-level menu items in a single row. */
#ast-desktop-header .ast-builder-menu-1 .main-header-menu {
	flex-wrap: nowrap;
}

/* Prevent individual top-level links and their labels from wrapping. */
#ast-desktop-header .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link,
#ast-desktop-header .ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link > .menu-text {
  white-space: nowrap;
}

/* Keep account buttons together and at their natural width rather than shrinking. */
#ast-desktop-header .site-header-primary-section-right,
#ast-desktop-header .ast-builder-menu-2,
#ast-desktop-header .ast-builder-menu-2 .main-header-menu {
	flex: 0 0 auto;
	flex-wrap: nowrap;
}

/* Below 1250px, reduce primary-menu margins and link padding so the desktop
 * header continues to fit without wrapping or crowding the account buttons. */
@media (max-width: 1250px) {
	#ast-desktop-header .ast-builder-menu-1 > .ast-main-header-bar-alignment {
		margin-left: 15px;
	}
}

/*-----------------------------------------------------------------------------------*/
/* Buttons */
/*-----------------------------------------------------------------------------------*
.ast-button, .button {
	font-weight:700;
  padding: 20px 30px;
  border:none;
  background-color: var(--ast-global-color-5);
}

/*
.ast-button:hover, .button:hover {
	color:#fff;
	background-color:#a13c02;
}
  */


a:hover {
	transition: all .2s linear;
}

.aspp-btn a {
	background: var(--ast-global-color-1);
	margin-right: 1.0em;
	border-radius:20px;
	padding:10px 20px !important;
	color:white !important;
	text-transform:uppercase;
	letter-spacing:0.1rem;
}

.aspp-btn:hover a {
	background: var(--ast-global-color-0);
	color:#fff !important;
	}

/* Join button */
.ast-builder-menu-2 .ast-button.primary a.menu-link {
	color:white;
}

/*-----------------------------------------------------------------------------------*/
/* Sidebar */
/*-----------------------------------------------------------------------------------*/
@media (max-width: 768px){
  .ast-left-sidebar #content>.ast-container{
      -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
      flex-wrap: wrap;
      -webkit-box-orient: horizontal;
      -webkit-box-direction: normal;
      -webkit-flex-direction: row;
      -moz-box-orient: horizontal;
      -moz-box-direction: normal;
      -ms-flex-direction: row;
      flex-direction: row;
  }
}

@media (min-width: 993px) {
  .ast-right-sidebar #primary {
		padding-right: 30px;
		border-right: none;
  }

	.ast-right-sidebar #secondary {
		border-left:2px;
		padding-left:30px;
	}
}

@media (min-width: 993px) {
  .ast-left-sidebar #primary {
    padding-left: 0px;
  }
  .ast-left-sidebar #secondary {
    padding-right: 0px;
  }

/* therapist sidebar */
  .page-id-701 #secondary {
    width: 23%;
    border-right:none;
    margin-left: 0;
  }


  .page-id-701 .sidebar-main {
    background-color: var(--ast-global-color-0);
  }

.page-id-701 .ast-container {
    max-width: 1280px;
}
.page-id-701 #primary {
    width: 75%;
  }
}

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

/* Allow sticky sidebar content to remain visible on desktop. */
@media (min-width: 922px) {
  .ast-sticky-sidebar .sidebar-main {
    overflow: visible;
  }
}

/* sidebar */
#secondary li:last-child {
  margin-bottom: 1rem;
}
/*
/* #secondary sidebar make items fit in viewport better */
 #secondary .widget .psy-event-meta > :not(.widget-title) {
	color:white;
}

/* event details white text */
.single-event .psy-event-meta, .single-event .psy-event-meta h5,  .single-event .psy-event-meta h3,  .single-event .psy-event-meta strong {
	color:white;
}

@media (min-width: 921px) {
#secondary {
	line-height:1.5;
	padding-bottom:3rem;
  }
}

#secondary li {line-height:1;} 

/* actually not a list */
ul.pricing-tiers {
	margin:revert;
	list-style:none;
}

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

.facetwp-filter-panel {
  background: var(--ast-global-color-0);
  color: var(--ast-global-color-4);
  padding: 1.3rem 1.5rem;
}

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


/* page numbers */
.facetwp-pager {
  align-items: center;
  display: flex;
  gap: 1.25rem;
}

.facetwp-pager .facetwp-page {
  align-items: center;
  border: 3px solid var(--ast-global-color-1);
  border-radius: 5px;
  color: var(--ast-global-color-0);
  display: inline-flex;
  font-weight: 700;
  height: 50px;
  justify-content: center;
  line-height: 1;
  margin: 0;
  min-width: 50px;
  padding: 0;
  text-decoration: none;
}

.facetwp-pager .facetwp-page.active,
.facetwp-pager .facetwp-page:not(.prev):not(.next):hover,
.facetwp-pager .facetwp-page:not(.prev):not(.next):focus {
  background: var(--ast-global-color-5);
  border-color: var(--ast-global-color-5);
  color: var(--ast-global-color-4);
}

.facetwp-pager .facetwp-page.prev,
.facetwp-pager .facetwp-page.next {
  border: 0;
  color: var(--ast-global-color-0);
  background: transparent;
  font-size: 2rem;
  height: auto;
  min-width: 0;
}

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

.facetwp-type-fselect .fs-wrap,
.facetwp-input-wrap,
.fs-search input[type="text"] {
  background: #fff;
  border: 0;
  border-radius: var(--radius-sm);
  box-shadow: none;
}

.facetwp-type-fselect .fs-wrap,
.facetwp-input-wrap {
  height: 46px;
}

.facetwp-type-fselect .fs-label-wrap {
  align-items: center;
  color: var(--ast-global-color-3);
  display: flex;
  height: 100%;
  padding: 0 1rem;
}

.facetwp-facet .fs-label {
  min-width: 0;
  font-weight:700;
}

.facetwp-facet .fs-label-wrap span.fs-arrow {
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 10px solid var(--ast-global-color-5);
  margin-left: auto;
}

.facetwp-facet .facetwp-search {
  background: transparent !important;
  border: 0 !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: none;
  color: var(--ast-global-color-3) !important;
  font-size: 16px;
  font-weight: 700;
  height: 46px;
  padding: 0 3rem 0 1rem;
}

.facetwp-search::placeholder {
  color: var(--ast-global-color-3);
  opacity: 1;
}

.facetwp-facet input[type="text"]:focus {
  border-color: var(--ast-global-color-5);
}

.facetwp-input-wrap {
  display: block;
  position: relative;
}

/* === FacetWP filter panel layouts === */

.facetwp-filter-panel--horizontal {
  align-items: center;
  display: flex;
  gap: 1rem;
}

.facetwp-filter-panel__header {
  align-items: baseline;
  display: flex;
  gap: 0.75rem;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.facetwp-filter-panel .facetwp-filter-panel__title,
.facetwp-filter-panel .facetwp-filter-panel__label {
  color: var(--ast-global-color-4);
  font-weight: 700;
}

.facetwp-filter-panel .facetwp-filter-panel__title {
  flex: 0 0 auto;
  font-size: 1.75rem;
  line-height: 1;
  margin: 0;
  white-space: nowrap;
}

.facetwp-filter-panel .facetwp-type-reset {
  flex: 0 0 auto;
  font-size: 0.75rem;
  letter-spacing: 0.02em;
  line-height: 1.2;
  white-space: nowrap;
}

.facetwp-filter-panel .facetwp-reset {
  background: transparent;
  border: 0;
  color: var(--ast-global-color-4);
  font-size: inherit;
  font-weight: 700;
  letter-spacing: inherit;
  line-height: inherit;
  padding: 0;
  text-decoration: underline;
}

.facetwp-filter-panel .facetwp-reset:hover,
.facetwp-filter-panel .facetwp-reset:focus-visible {
  background: transparent;
  color: var(--ast-global-color-5);
}

.facetwp-filter-panel__group {
  margin-top: 1.25rem;
}

.facetwp-filter-panel__group > .facetwp-filter-panel__label {
  font-size: 1rem;
  line-height: 1.2;
  margin: 0 0 0.5rem;
}

.facetwp-filter-panel--horizontal > .facetwp-filter-panel__label {
  flex: 0 0 auto;
  font-size: 1.05rem;
}

/* === FacetWP therapist directory listing === */

.therapist-listing {
  display: grid;
  row-gap: 30px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.therapist-card {
  height: 100%;
  margin: 0;
}

.therapist-card__profile-link {
  background: var(--ast-global-color-4);
  border-radius: var(--radius-sm) var(--radius-top-right) var(--radius-sm) var(--radius-sm);
  color: var(--ast-global-color-3);
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  text-decoration: none;
  transition: box-shadow 180ms ease, transform 180ms ease;
}

.therapist-card__profile-link:hover {
  box-shadow: 0 0.5rem 1.25rem color-mix(in srgb, var(--ast-global-color-0) 16%, transparent);
  color: var(--ast-global-color-3);
  transform: translateY(-2px);
}

.therapist-card__profile-link:focus-visible {
  box-shadow: 0 0 0 3px var(--ast-global-color-1);
  outline: 0;
}

.therapist-card__photo {
  aspect-ratio: 4 / 3;
  background: var(--ast-global-color-6);
  flex: 0 0 auto;
  overflow: hidden;
  position: relative;
}

.therapist-card__photo-image {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.therapist-card__photo--placeholder {
  background: url("assets/images/ap-fallback.jpg") center / cover no-repeat;
}

.therapist-card__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 1rem;
}

.therapist-card .therapist-card__title {
  color: var(--ast-global-color-0);
  font-size: 1.1rem;
  line-height: 1.05;
  margin: 0;
}

.therapist-card__profile-link:hover .therapist-card__title {
  color: var(--ast-global-color-2);
}

.therapist-card__contact {
  font-size: 0.85rem;
  line-height: 1.35;
  margin-top: 0.35rem;
}

body hr.therapist-card__separator {
  background-color: var(--ast-global-color-7);
  flex: 0 0 1px;
  height: 1px;
  margin: 1rem 0;
  width: 100%;
}

.therapist-card__details {
  display: grid;
  gap: 0.65rem;
}

.therapist-card__label,
.therapist-card__value {
  display: block;
}

.therapist-card__detail {
  font-size: 0.85rem;
  line-height: 1.3;
}

.therapist-card__label {
  color: var(--ast-global-color-0);
  font-weight: 700;
}

.facetwp-listing-empty {
  margin: 0;
}

@media (max-width: 921px) {
  .therapist-listing {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 544px) {
  .therapist-listing {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* === Therapist profile === */

.work-address {
  font-style: normal;
  margin: inherit;
}

.work-address--with-map {
  display: block;
}

.work-address__last-line {
  align-items: baseline;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0 0.5rem;
}

.work-address__map-link {
  white-space: nowrap;
  color: var(--ast-global-color-7);
}

strong.therapist-profile-field__label {
  color: white;
}

.therapist-specialties {
  display: flex;
  flex-flow: row wrap;
  gap: 0.75rem 3rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.therapist-specialties__item {
  flex: 0 0 6rem;
  margin: 0;
}

@media (max-width: 600px) {
  .therapist-specialties__item {
    flex-basis: 100%;
  }
}

/* === event archive cards === */
.post-type-archive-event #primary,
.psy-event-listing,
.facetwp-template,
.facetwp-template > * {
  width: 100%;
}

/* Remove Astra's injected grid gutters from full-width event cards on listings page */
.psy-event-listing > .psy-event-card.ast-grid-common-col {
  padding-left: 0;
  padding-right: 0;
}

.events-listing-page {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.facetwp-filter-panel--horizontal > .facetwp-facet:not(.facetwp-type-reset) {
  flex: 1 1 0;
  min-width: 0;
}

.events-filter-bar > .facetwp-facet-presenters,
.events-filter-bar > .facetwp-facet-ce_content_area,
.events-filter-bar > .facetwp-facet-event_name {
  flex-grow: 1.3;
}

.events-result-counts {
  display: flex;
  justify-content: flex-end;
  margin-bottom: -1rem;
}


.events-pager {
  display: flex;
  justify-content: center;
}

.events-page-link {
  display: flex;
  justify-content: flex-end;
}

/* Apply the ASPP UI typeface to event and filtering interface elements. */
.events-filter-bar,
.events-result-counts,
.events-page-link,
.facetwp-pager .facetwp-page,
.facetwp-facet .facetwp-search,
.single-event a.civicrm-event-organiser-register-link,
.psy-event-card__category,
.psy-event-card__schedule,
.psy-event-card__featured-badge,
.psy-event-card__presenter,
.psy-event-card__presenters-list,
.psy-home-events__header {
  font-family: 'Alan Sans', sans-serif;
}

.ast-button-outline {
  background: transparent;
  border: 2px solid var(--ast-global-color-5);
  color: var(--ast-global-color-5);
  display: inline-block;
  font-weight: 700;
  padding: 0.8rem 1.2rem;
  text-decoration: none;
  text-transform: uppercase;
}

.ast-button-outline:hover,
.ast-button-outline:focus {
  background: var(--ast-global-color-8);
  border-color: var(--ast-global-color-8);
  color: var(--ast-global-color-4);
}

.events-featured {
  width: 100%;
}

.related-event {
  background: var(--ast-global-color-4);
  overflow: hidden;
  padding: 4rem 0;
  position: relative;
  width: 100%;
}

.related-event::after {
  background-image: url('assets/images/bg-element-right.svg');
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  height: min(70vw, 680px);
  pointer-events: none;
  position: absolute;
  right: min(-12vw, -160px);
  top: -2rem;
  width: min(58vw, 680px);
  z-index: 0;
}

.related-event > .ast-container {
  position: relative;
  z-index: 1;
}

/* === ASPP homepage event branding === */
.psy-home-events {
  background: var(--ast-global-color-4);
}

.psy-home-events::before,
.psy-home-events::after {
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  pointer-events: none;
  position: absolute;
  z-index: 0;
}

.psy-home-events::before {
  background-image: url('assets/images/bg-element-left.svg');
  bottom: 1.5rem;
  height: min(62vw, 520px);
  left: max(-14vw, -180px);
  width: min(52vw, 520px);
}

.psy-home-events::after {
  background-image: url('assets/images/bg-element-right.svg');
  height: min(70vw, 680px);
  right: max(-7vw, -90px);
  top: -2rem;
  width: min(58vw, 680px);
}

.psy-home-events__header h2,
.psy-related-events__header h3,
.view-all-events,
.btn-minimal.btn-minimal {
  color: var(--ast-global-color-0);
}

.psy-home-events .psy-event-card--credit {
  background: var(--ast-global-color-4);
}

.psy-home-events .psy-event-card--credit .btn-minimal {
  color: var(--color-teal);
}

.psy-home-events .psy-event-card--credit .btn-minimal:hover {
  color: var(--ast-global-color-0);
}

.psy-home-events .psy-event-card--social .psy-event-card__summary {
  background: var(--ast-global-color-2);
}

.psy-event-card--social .psy-event-card__art--fallback {
  background-color: var(--ast-global-color-4);
}

.psy-event-card--featured .psy-event-card__art--fallback {
  background-image: url('assets/images/event-preview.png');
}

.psy-event-card--social .psy-event-card__art--fallback-social {
  background: url('assets/images/social-event-preview.jpg') center / cover;
}

.psy-event-card .psy-event-card__art--fallback-drinks-with-shrinks {
  background: url('assets/images/drinks-with-shrinks-preview.png') center / cover;
}

.psy-home-events .psy-event-card--social .psy-event-card__category,
.psy-home-events .psy-event-card--social .psy-event-card__schedule,
.psy-home-events .psy-event-card--social h3,
.psy-home-events .psy-event-card--social h3 a {
  color: var(--ast-global-color-4);
}

.psy-home-events .psy-event-card--social .psy-event-card__category,
.psy-home-events .psy-event-card--social .btn-minimal {
  color: var(--ast-global-color-7);
}

.psy-home-events .psy-event-card--social .btn-minimal:hover {
  color: var(--ast-global-color-5);
}

@media (max-width: 768px) {
  .facetwp-filter-panel--horizontal {
    align-items: stretch;
    flex-direction: column;
  }

  .psy-home-events::before {
    bottom: 1rem;
    height: 360px;
    left: -170px;
    width: 360px;
  }

  .psy-home-events::after {
    height: 420px;
    right: -190px;
    top: 1rem;
    width: 420px;
  }
}

.single-event #primary .divider > h3 {
  overflow: hidden !important;
}

/*-----------------------------------------------------------------------------------*/
/* Event Organiser */
/*-----------------------------------------------------------------------------------*/
.ast-article-single img:not(figure img) {
  box-shadow: unset;
  -webkit-box-shadow: unset;
  -moz-box-shadow: unset;
}

/* === Event Organiser Extras sidebar ===
 * Markup: event-organiser-extras/event-sidebar-meta.php */
.psy-event-meta.psy-sidebar-meta.card {
  background:var(--ast-global-color-2);
  padding: 10% 8% 8% 8%;
  border-radius: var(--radius-event-card, 8px);
}

.psy-sidebar-meta {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.psy-sidebar-meta > * {
  margin-top: 0;
  margin-bottom: 0;
}

.psy-event-meta__intro,
.psy-event-meta__details,
.psy-event-meta__pricing,
.psy-event-meta__register {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}

.psy-event-meta__intro {
  gap: 1rem;
}

.psy-event-meta__details {
  gap: 0.8rem;
}

.psy-event-meta__pricing {
  gap: 0.75rem;
}

.psy-event-meta__pricing:empty {
  display: none;
}

.psy-event-meta__intro > *,
.psy-event-meta__details > *,
.psy-event-meta__pricing > *,
.psy-event-meta__register > *,
.psy-event-meta .pricing-tiers {
  margin-top: 0;
  margin-bottom: 0;
}

.psy-event-meta__separator {
  width: 100%;
}

.psy-event-meta__when {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.psy-event-meta__location {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.psy-event-meta__venue-location {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.psy-event-meta__row,
.psy-event-meta__where {
  line-height: 1.45;
}

.psy-event-meta__details .psy-event-meta__row,
.psy-event-meta__where {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
}

.psy-event-meta__icon {
  flex: 0 0 auto;
  width: 1rem;
  height: 1rem;
  margin-top: 0.15em;
}

.psy-event-meta__map-link a, .psy-event-meta__map-link a:visited {
  color: white;
  text-decoration: underline;
  text-underline-offset: 0.14em;
}

.psy-event-meta__map-link {
  margin-left: 1.55rem;
}

.psy-event-meta__register .button {
  text-align: center;
}

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

/* style the register button shortcode that is added in widgets area */
.full-width-eo-btn-mobile .civicrm-event-organiser-register-link {
	display:block;
	width:100%;
	text-align:center;
}

/* we don't need this button on desktop, just mobile so hide on desktop */
@media screen and (min-width: 768px) {
	.full-width-eo-btn-mobile {
		display:none;
	}
}

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

/* register link change to button */
.single-event a.civicrm-event-organiser-register-link {
	padding:20px 30px;
  background: var(--ast-global-color-5);
	color: #fff;
	font-weight: 700;
	text-decoration:none;
	text-transform:uppercase;
	letter-spacing:1.6px;
	display:block;
	width:100%;
	text-align:center;
}

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

@media screen and (max-width: 768px) {
    .psy-event-meta.psy-sidebar-meta.card {
        margin-bottom: 2rem;
    }
}

/* notice and alert for event registration limits */
.notice {
	padding: 10px 10px 10px 18px;
  border-width: 2px solid;
 	margin: 0.3rem 0;
  font-weight: inherit;
 	font-size: 15px;
}



.help {
		background-color: var(--ast-global-color-8);
}

.alert, #id-waitlist-approval-msg {
	border-left: 5px solid var(--ast-global-color-8);       
}




/* event title */
.event-title,.event-title a {
	font-family:'Source Serif 4',serif;
	line-height:120%;
	color:var(--ast-global-color-0);
}

/* Credits badge */
.badge-credits {
  background-color: #93C2A79C;
}

/* lighten the badge color for sidebar widget when dark bg */
.psy-event-meta .badge-credits {
	background-color:var(--ast-global-color-1);
	color:white;
}

/* Instructional level badge */
.badge-level {
  border: 1px solid var(--ast-global-color-6);
}

a.badge.badge-level:hover {
  color: white !important;
  background: var(--ast-global-color-6);
}

.badge-tag {
	 border: 1px solid var(--ast-global-color-5);
	padding:8px 20px;
}

a.badge.badge-tag:hover {
  background: var(--ast-global-color-5);
}

.subheading {
  	color: var(--ast-global-color-0);	
}

/* Preserve solid borders on focused form fields. */
input:focus, input[type="text"]:focus, input[type="email"]:focus, input[type="url"]:focus, input[type="password"]:focus, input[type="reset"]:focus, input[type="search"]:focus, input[type="number"]:focus, textarea:focus {
  border-style: solid;
}
