/**
Theme Name: Astra Child
Author: Kevin Bourke
Author URI: https://create.ie/
Description: A child theme for use with Astra parent theme. Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. 
Version: 1.0.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/
/* HEADER */
:root {
  --primary-color: #32055A;
  --secondary-color: #645FFF;
  --accent-color:#A5FFD7;
  --second-accent-color: #FF9BBE;
  --light-bg-color: #F9F5EC;
  --light-bg-color-darker: #F5EBD7;
  --heading-font: 'Bricolage Grotesque', sans-serif;
  --body-font: 'Rethink Sans', sans-serif;
  --grey-border: #d5d2dc;
}
.heading-font {
    font-family: var(--heading-font);
}
.body-font {
    font-family: var(--body-font);
}

#user-menu .fa-brands:before,
#user-menu .fa-regular:before,
#user-menu .fa-solid:before,
#user-menu .fa:before,
#user-menu .fab:before,
#user-menu .far:before,
#user-menu .fas:before {
    color: white;
    display: flex;
    align-items: center;
    font-size: 13px;
}
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.fa:before,
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.fab:before,
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.far:before,
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.fas:before {
    color: var(--primary-color);
}
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.outline.fa:before,
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.outline.fab:before,
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.outline.far:before,
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.outline.fas:before {
    color: white;
}
.elementor-nav-menu--dropdown .elementor-nav-menu {
    display: flex;
    flex-direction: column;
    row-gap: 10px;
    align-items: flex-start;
}
.elementor-nav-menu--dropdown li.fas,
.elementor-nav-menu--dropdown li.far,
nav li.fas,
nav li.far {
    display: flex;
    justify-content: center;
    align-content: center;
    flex-wrap: wrap;
    align-items: center;
}
nav li.fas:before,
nav li.far:before,
.elementor-nav-menu--dropdown li.fas:before,
.elementor-nav-menu--dropdown li.far:before {
    color: white;
}
#user-menu li a {
    padding-left: 6px;
}
#user-menu a:hover {
    color: #a4ffd6;
    text-decoration: underline;
}
/* MOBILE: 767px */
@media (max-width: 767px) {
    .elementor-nav-menu--dropdown li.menu-item.btn {
        width: calc( 100% - 20px );
    }
    .elementor-nav-menu--dropdown li.menu-item .elementor-item-active {
        text-decoration: underline;
    }
}
@media screen and (min-width:1024px) {
    header .logo img {
        transition: all ease-out .3s;
    }
    header .elementor-nav-menu--main .elementor-item {

    }
    header .elementor-sticky--active .elementor-nav-menu--main .elementor-item {
        padding-top: 0;
        padding-bottom: 0;
    }
    header .elementor-sticky--active .elementor-element.logo img {
        width: 160px;
    }
}
/* Buttons */

nav .menu-item.btn {
    background-color: var(--accent-color);
    border: solid 1px var(--accent-color);
    color: var(--primary-color);
    border-radius: 100px;
    display: flex;
    flex-direction: row;
    align-items: center;
    padding-left: 15px;
    padding-right: 10px;
    margin-left: 10px;
}
    
nav .elementor-nav-menu .menu-item.btn a.menu-link {
    color: var(--primary-color);
}
nav .menu-item.btn:hover {
    background-color: white;
    border-color: white;
}
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.outline {
    background-color: transparent;
    border: 1px solid white;
    color: white;
}
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.outline:hover {
    color: var(--accent-color);
    border-color: var(--accent-color);
}
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.outline a {
    color: white;
}
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.outline:hover {
    color: var(--accent-color);
    border-color: var(--accent-color);
}
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.outline:hover a {
    color: var(--accent-color);
}
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.outline:hover:before {
    color: var(--accent-color);
}
nav.elementor-nav-menu--dropdown .elementor-nav-menu li.menu-item.btn.outline a.elementor-item-active {
    color: var(--second-accent-color);
}
    
/** ---------------------------------------- **
*** ------- Forminator forms adjustments --- **
/** ---------------------------------------- **/

.dark-bg .forminator-field input[type=email],
.dark-bg .forminator-field input[type=number],
.dark-bg .forminator-field input[type=password],
.dark-bg .forminator-field input[type=reset],
.dark-bg .forminator-field input[type=search],
.dark-bg .forminator-field input[type=tel],
.dark-bg .forminator-field input[type=text],
.dark-bg .forminator-field input[type=url],
.dark-bg .forminator-field select,
.dark-bg .forminator-field textarea {
    color: var(--primary-color)
}
.dark-bg .forminator-input::placeholder {
    color: #9d9d9d;
}
.forminator-checkbox__label {
    font-family: 'Rethink Sans';
    font-size: 90%;
}
.dark-bg .forminator-checkbox__label {
    color: white;
}
.dark-bg .forminator-checkbox__label a {
    color: var(--accent-color);
}
.dark-bg .forminator-checkbox__label a:hover {
    text-decoration: underline;
}
.full-width-btn .forminator-button {
    width: 100%;
}
.form-hide-labels .forminator-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
/* Hidden recaptcha*/
.grecaptcha-badge { visibility: hidden; }
.dark-bg .forminator-field-html.recaptcha-info {
    color: white;
    font-size: 80%;
}
.dark-bg .forminator-field-html.recaptcha-info a {
    color: var(--accent-color);
}
.dark-bg .forminator-field-html.recaptcha-info a:hover {
    text-decoration: underline;
}
.light-bg .forminator-field-html.recaptcha-info a {
    color: var(--secondary-color);
}
.light-bg .forminator-field-html.recaptcha-info a:hover {
    text-decoration: underline;
}
.light-bg .forminator-field-html.recaptcha-info {
    color: var(--primary-color);
    font-size: 80%;
}
.light-bg .forminator-button.forminator-button-submit {
    background-color: var(--primary-color);
    color: white;
}
.light-bg .forminator-button.forminator-button-submit:hover {
    background-color: var(--secondary-color);
}
/** ------------------------------------- **
*** ------- GEO DIRECTORY adjustments --- **
/** ------------------------------------- **/

body .bsui .text-muted {
    color: var(--primary-color)!important;
}
body .bsui .nav-pills .nav-link.active {
    color: var(--primary-color);
}
body .bsui .nav-pills .nav-link {
    background-color: var(--light-bg-color);
}
.geodir-categories-container.bsui .btn-link {
    text-decoration: none;
}
.geodir-categories-container.bsui .btn-link:hover {
    text-decoration: none;
}
/* make map icons smaller and move for proper positioning. leaflet was open maps, other is google maps */
img.leaflet-marker-icon,
.geodir-map-canvas div[role="button"] img {
    width: 48px !important;
    height: 48px !important;
    margin-top: -48px !important;
    left: 24px;
}
/* Add listing form */

/* ** Reordering add listing fields ***/
form#geodirectory-add-post {
    display: flex;
    flex-direction: column;
}
/* 2. Set the order for the two fields you want to swap. */
.geodir-add-listing [data-argument="address_city"] {
    order: 1;
}

.geodir-add-listing [data-argument="address_region"] {
    order: 2;
}
.geodir-add-listing [data-argument="address_country"] {
    order: 3;
}

/* 3. Use the general sibling selector to target all fields that come *after* the County/Region field and give them a higher order. */
[data-argument="address_region"] ~ div {
    order: 4;
}
/* advanced editor */
.mce-btn button {
    background-color: initial;
}
button.wp-switch-editor {
    padding: 5px 10px;
}
.quicktags-toolbar .ed_button.button {
    border-radius: unset;
    background-color: initial;
}
/* category dropdown size*/
#gd_placecategory_wrap .form-select,
#default_category.form-select {
    background-size: 16px 16px;
}

/* remove elements from listing page */
.gd-locate-me-btn.input-group-text.c-pointer,
button.gm-svpc,
#address_set_address_button {
    display: none;
}
/* Hide the Tags field and descriptions on the GeoDirectory Add Listing form */
div[data-argument="post_tags"],
div[data-argument="address_zip"] small.form-text {
    display: none !important;
}
#address_set_address_button + small.form-text {
    margin-top: 8px;
}
input#address_street {
    border-top-right-radius: 7px;
    border-bottom-right-radius: 7px;
}
/* checkbox adjustment */
#geodirectory-add-post .form-check-input[type="checkbox"] {
    border-radius: .1875em;
    border: 2px solid var(--primary-color);
    width: 1.2em;
    height: 1.2em;
    margin-right: .5em;
    font-size: 1.3em;
}
#geodirectory-add-post .form-check {
    padding-left: 1.9em;
}
#geodirectory-add-post .form-check .form-check-label {
    padding-top: 0.4em;
}
body input[type="radio"]:checked,
body input[type=reset],
body input[type="checkbox"]:checked,
body input[type="checkbox"]:hover:checked,
body input[type="checkbox"]:focus:checked,
body input[type=range]::-webkit-slider-thumb {
    background-color: var(--accent-color);
}
/* radio button */
body .bsui .form-check-input[type="radio"],
body .bsui .form-check-input:checked[type="radio"] {
    border-radius: 50%;
    border-width: 3px;
    width: 20px;
    height: 20px;
}
body .bsui .form-check-input[type="radio"] {
    border-width: 2px;
}
#geodirectory-add-post .form-check-input[type="radio"] + .form-check-label {
    padding-top: 0.1em;
    margin-left: 3px;
}
#geodir_address_map_row .col-form-label:before {
    display: block;
    content: 'Location';
}
div[data-argument="private_address"] .col-form-label:before {
    display: block;
    content: 'Online Only/Private Address';
}
div[data-argument="accessible_activity"] .col-form-label:before {
    display: block;
    content: 'Accessible Activity?';
}
div[data-argument="accessible_event"] .col-form-label:before {
    display: block;
    content: 'Accessible Event?';
}
div[data-argument="inclusive_activity"] .col-form-label:before {
    display: block;
    content: 'Additional Learning Needs?';
}
div[data-argument="learning_needs_friendly"] .col-form-label:before {
    display: block;
    content: 'Learning Needs Friendly?';
}
div[data-argument="terms_conditions"] .col-form-label:before {
    display: block;
    content: 'Terms & Conditions *';
}
div[data-argument="private_address"] .col-sm-10,
div[data-argument="accessible_activity"] .col-sm-10 {
    padding-top: calc(.45rem + 1px);
}
div#post_images_row,
div#geodir_address_map_row {
    border-top: 1px solid #CCCCCc;
    margin-top: 30px;
    padding-top: 15px;
}
div#post_images_row .col-sm-10 > .form-text {
    padding-bottom: 15px;
}
label.form-check-label.form-label {
    color: var(--primary-color);
}
/* expand label content area slightly */
.geodir-add-listing .col-form-label {
    font-weight: bold;
    padding-left: 10px;
    padding-right: 10px;
}
.category-suggestion-link a,
.geodir-add-listing .form-text.text-muted a {
    color: var(--secondary-color);
}
@media (min-width: 768px) {
    #geodirectory-add-post .col-sm-2 {
    width: 20%;
    }
    #geodirectory-add-post .col-sm-10 {
        width: 80%;
    }
}


/* category cards */
/* Removes Catgeory background visible behind image. If no image though this will not look right */
.bsui .gd-categories-widget .bg-dark {
    background-color: transparent !important;
}
.gd-cptcat-count.badge.text-bg-secondary {
    background-color: var(--secondary-color) !important;
}
.gd-cptcat-cat-right.text-truncate a {
    font-family: var(--body-font);
    text-decoration: none !important;
}
/* ------- LISTINGS PAGE -------*/
/* Hide label on category filter */
.geodir-filter-cat label[for="geodir_search_post_category"] {
    display: none;
}
.elementor-widget-wp-widget-gd_search .geodir-filter-container .customize_filter_inner {
    padding-right: .8rem !important;
    padding-left: .8rem !important;
}
button.geodir_submit_search.btn.w-100.btn-primary:active,
button.geodir_submit_search.btn.w-100.btn-primary:focus {
    background-color: var(--secondary-color);
    border-color: var(--secondary-color);
}

/** ------ SINGLE ITEM ------- **/
/* this single-item-location class is a custom class on the button widget */
.single-item-location span.elementor-button-text {
    text-align: left;
}
.bsui .geodir_post_meta.geodir-field-accessible_activity {
    margin-left: 0 !important;
}
.bsui .geodir_post_meta.geodir-field-accessible_activity .geodir_post_meta_icon i {
    color: var(--secondary-color);
}
.bsui .geodir_post_meta.geodir-field-accessible_activity .geodir_post_meta_title {
    margin-left:5px;
}
/* Single listing page */
.geodir-tabs-content.geodir-entry-content {
    font-family: var(--body-font);
}
.geodir-tabs-content.geodir-entry-content h2,
.geodir-tabs-content.geodir-entry-content h3,
.geodir-tabs-content.geodir-entry-content h4,
.geodir-tabs-content.geodir-entry-content h5,
.geodir-tabs-content.geodir-entry-content h6 {
    font-family: var(--heading-font)
}
.geodir-entry-content a:not(.gd-tab-list-title a) {
    color: var(--secondary-color);
}
/** biography */
.geodir_post_meta.geodir-field-email,
.single-contact-info .web-link .elementor-icon-list-item a {
    overflow-wrap: anywhere;
    line-height: 1.2;
}
.geodir-entry-content .geodir-field-post_content p,
.geodir-entry-content .geodir-field-post_content ul,
.geodir-entry-content .geodir-field-post_content li,
.geodir-entry-content .geodir-field-post_content h1,
.geodir-entry-content .geodir-field-post_content h2,
.geodir-entry-content .geodir-field-post_content h3,
.geodir-entry-content .geodir-field-post_content h4,
.geodir-entry-content .geodir-field-post_content h5,
.geodir-entry-content .geodir-field-post_content h6 {
    background-color: transparent !important;
}
/** ---------------------------------------- **
*** ------ END GEO DIRECTORY adjustments --- **
/** ---------------------------------------- **/

/** ---------------------------------------- **
*** ------    GEO EVENTS adjustments.    --- **
/** ---------------------------------------- **/
.event-mini-date .geodir-schedule-row.list-group-item {
    padding: 5px 4px 4px!important;
    border-radius: 5px !important;
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 500;
}
.event-full-date .geodir-schedule-rows.list-group {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}
.event-full-date .geodir-schedule-row.list-group-item {
    color: var(--primary-color);
    margin-top: 2px !important;
    margin-bottom: 2px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-right: 5px !important;
    padding-left: 5px !important;
    border-right: solid 1px #ddd;
    border-bottom: none;
    font-weight: 600;
    font-size: 90%;
}
.event-full-date.event-main-date .geodir-schedule-row.list-group-item {
    color: var(--secondary-color);
    font-size: 100%;
    border-right-width: 0;
}
.event-full-date.recurring .geodir-schedule-row.list-group-item {
    padding-top: 2px !important;
}
.event-full-date .geodir-schedule-row.list-group-item:first-child {
    padding-left: 0!important;
}
.event-item-excerpt a.gd-read-more:before {
    display: inline;
    content: '... ';
}
span.more-dates-indicator {
    display: inline-block;
    padding: 5px;
    font-size: 90%;
}
.event-full-date-single-event .geodir-schedule-row.list-group-item {
    color: var(--primary-color);
    background-color: transparent;
}
@media (max-width: 767px) {
    .event-full-date .geodir-schedule-row.list-group-item {
        margin-top: 0px !important;
        margin-bottom: 0px !important;
        padding-top: 0 !important;
        font-size: 12px;
    }
}
/** ---------------------------------------- **
*** ------ GETPAID adjustments ------------- **
/** ---------------------------------------- **/
.getpaid-order-bumps img {
    width: 100px !important;
}
.bsui .getpaid-order-bumps .btn-secondary {
    color: white;
}
/* Account page */
@media (max-width: 767px) {
    .uwp_widgets.uwp_widget_account .uwp_page ul.nav {
        flex-direction: column !important;
    }
}
.uwp_widgets.uwp_widget_account .bg-light {
    background-color: var(--light-bg-color) !important;
}
.uwp_widgets.uwp_widget_account ul.nav li.nav-item {
    border: solid 1px var(--grey-border);
    border-top-width: 0;
}
.uwp_widgets.uwp_widget_account ul.nav li.nav-item:first-of-type {
    border-top-width: 1px;
}
.uwp_widgets.uwp_widget_account ul.nav li a.nav-link.active {
    background-color: var(--light-bg-color-darker);
}
.dont-hide-labels .uwp_widgets.uwp_widget_account .uwp-account-form .visually-hidden.form-label {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important; /* adjust if you want padding */
    overflow: visible !important;
    clip: auto !important; /* undo legacy clipping */
    clip-path: none !important; /* belt-and-braces */
    white-space: normal !important;
    border: none !important;
}
/** ---------------------------------------- **
*** ------ END GETPAID adjustments --------- **
/** ---------------------------------------- **/

/* Add Listing floating button */
#add-list-btn {
    opacity: 0;
    transition: all 0.3s ease-in-out;
}
#add-list-btn.show {
    opacity: 1;
}
/* add another z-index to the parent of floating element as the category block (img link :before) is above the element with the ID and z-index. */
.elementor-2053.elementor-location-floating_buttons .elementor-element.elementor-element-207c4de9 {
    z-index: 9999;
}
/* elementor price table */
.elementor-price-table__feature-inner {
    display: flex;
    align-items: center;
    line-height: 1.3;
}
/* Other Utilities */ 
/* CLIP/HIDE text element*/
.visually-hidden {
position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
  padding: 0;
  margin: -1px;
}
.bsui .btn.btn-secondary {
    color: white;
}

/* DISPLAY Base: general utility */
.hide { display: none !important; }
.show { display: block !important; }

/* MOBILE: under 768px */
@media (max-width: 767px) {
  .show-mobile { display: block !important; }
  .hide-mobile { display: none !important; }
}

/* TABLET: 768px to 1024px */
@media (min-width: 768px) and (max-width: 1024px) {
  .show-tablet { display: block !important; }
  .hide-tablet { display: none !important; }
}

/* DESKTOP: 1025px to 1199px */
@media (min-width: 1025px) and (max-width: 1199px) {
  .show-desktop { display: block !important; }
  .hide-desktop { display: none !important; }
}

/* XL: 1200px to 1440px */
@media (min-width: 1200px) and (max-width: 1440px) {
  .show-xl { display: block !important; }
  .hide-xl { display: none !important; }
}

/* XXL: 1441px and up */
@media (min-width: 1441px) {
  .show-xxl { display: block !important; }
  .hide-xxl { display: none !important; }
}

/* ------------------------------------------------------------
   2. STICKY HEADER LOGO SIZE
   The logo resizes when the header sticks. The stuck size is
   hardcoded. If the base logo width is smaller than this, the
   logo appears to GROW on scroll. Set the stuck size a little
   under the base logo width for a gentle shrink.
   Desktop only (min-width 1024px), which is intentional.
   ------------------------------------------------------------ */
@media screen and (min-width: 1024px) {
	header .logo img { transition: all ease-out .3s; }
	header .elementor-sticky--active .logo img {
		width: 80px !important;
		max-width: 80px !important;
	}
}