/*
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 1.0.1
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/*--------------------------------------------------------------
# Table of Contents
--------------------------------------------------------------
1. Imports
2. Global Styles
3. Common Helper Classes
4. Form Elements & Styling
5. Post & Event Cards
6. Slick Slider
7. FacetWP Customizations
8. Responsive Styles
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# 1. Imports
--------------------------------------------------------------*/
/* Import Font Awesome */
@import url("//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css");

/*--------------------------------------------------------------
# 2. Global Styles
--------------------------------------------------------------*/
*,
a,
button,
input { 
  outline: none !important; 
}

a,
a svg { 
  transition: all .4s ease-in-out; 
}

body input[type=submit] { 
  border: none; 
}

img { 
  vertical-align: top; 
}

.bg-set { 
  background-position: center; 
  background-size: cover; 
  background-repeat: no-repeat; 
}

body ol,
body ul { 
  padding-left: 24px; 
}

body ol { 
  padding-left: 17px; 
}

body ol li { 
  padding: 5px 0; 
}

ul.elementor-nav-menu--dropdown a,
ul.elementor-nav-menu--dropdown a:focus,
ul.elementor-nav-menu--dropdown a:hover { 
  border-left: none; 
}

body .elementor-button-link .elementor-button-content-wrapper span,
body .elementor-button-link .elementor-button-content-wrapper svg { 
  display: inline-block; 
  vertical-align: middle; 
}

body:not(.elementor-page) .content-space { 
  padding: 0 10px; 
}

body:not(.elementor-page) .content-main { 
  padding: 50px 0; 
}

body:not(.elementor-page) .content-main > .elementor-container { 
  max-width: 1140px; 
  margin: 0 auto; 
  padding: 0 10px; 
}

/*--------------------------------------------------------------
# 3. Common Helper Classes
--------------------------------------------------------------*/
body .text-center { 
  text-align: center; 
}

body .bg-img { 
  background-repeat: no-repeat; 
  background-size: cover; 
  background-position: center; 
}

.float-left { 
  float: left; 
}

.w-100 { 
  width: 100%; 
}

body .gallery-slider img { 
  height: 200px; 
  object-fit: cover; 
}

.no-result { 
  padding: 40px 0 0; 
}

body .elementor-button.button-small { 
  font-size: 16px; 
  line-height: 28px; 
  font-weight: 600; 
  padding: 10px 30px; 
}

/*--------------------------------------------------------------
# 4. Form Elements & Styling
--------------------------------------------------------------*/
/* Select Element */
body select { 
  -webkit-appearance: none; 
  -moz-appearance: none; 
  appearance: none; 
  background-image: url(images/down-arrow.svg); 
  background-position: right center; 
  background-repeat: no-repeat; 
  background-size: 36px auto; 
  height: 45px; 
  line-height: 42px; 
  width: 100%; 
  padding: 0 50px 0 20px !important; 
  border: 1px solid #D3D3D3; 
  border-radius: 8px; 
}

body select:focus { 
  border-color: var(--e-global-color-secondary); 
}

/* Gravity Forms Styling */
body .gform_wrapper { 
  max-width: 553px; 
  margin: 0 auto; 
}

body .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), 
body input:not([type="button"]):not([type="submit"]) { 
  width: 100%; 
  font-family: 'Open Sans', sans-serif; 
  font-size: 16px; 
  font-weight: 400; 
  line-height: 22px; 
  color: #000; 
  padding: 10px 0; 
  border: none; 
  border-bottom: 1px solid #000; 
  background: transparent; 
  outline: none; 
}

body .gform_wrapper input::placeholder { 
  color: #aaa; 
}

body .gform_wrapper input:focus { 
  border-bottom: 2px solid #000; 
}

body .gform_wrapper textarea { 
  width: 100%; 
  padding: 10px 0; 
  font-family: 'Open Sans', sans-serif; 
  font-size: 16px; 
  font-weight: 400; 
  line-height: 22px; 
  color: #000; 
  border: none; 
  border-bottom: 1px solid #000; 
  background: transparent; 
  outline: none; 
  height: 100px !important; 
}

body .gform_wrapper input[type=checkbox], 
body .gform_wrapper input[type=radio] { 
  height: auto !important; 
}

body .ginput_container_consent { 
  position: relative; 
  padding-left: 25px; 
  font-size: 16px; 
  line-height: 24px; 
}

body .ginput_container_consent label:before { 
  content: ''; 
  border: 1px solid #E8E5E3; 
  background: #fff; 
  position: absolute; 
  left: 0; 
  top: 4px; 
  width: 16px; 
  height: 16px; 
  border-radius: 2px; 
}

body .ginput_container_consent input[type=checkbox]:checked + label:before { 
  border-color: var(--e-global-color-primary); 
  background: url(images/check-icon.svg) no-repeat center center var(--e-global-color-primary); 
}

body .gform_wrapper input[type=submit], 
body .gform_wrapper .gform_button { 
  font-family: 'Inter', sans-serif; 
  font-size: 18px; 
  font-weight: 700; 
  line-height: 143.52%; 
  color: #000; 
  padding: 16px 30px; 
  display: flex; 
  align-items: center; 
  justify-content: center; 
  gap: 10px; 
  border: 1px solid #000; 
  border-radius: 10px; 
  background: transparent; 
  transition: all 0.3s ease-in-out; 
  cursor: pointer; 
}

body .gform_wrapper input[type=submit]:hover, 
body .gform_wrapper .gform_button:hover { 
  background: #000; 
  color: #fff; 
}

body .gform_wrapper .gform_button::after { 
  content: '→'; 
  font-size: 18px; 
  font-weight: bold; 
  margin-left: 10px; 
  transition: transform 0.3s ease-in-out; 
}

body .gform_wrapper .gform_button:hover::after { 
  transform: translateX(5px); 
}

h2.gform_title {
  display: none;
}

/*--------------------------------------------------------------
# 5. Post & Event Cards
--------------------------------------------------------------*/
/* Post Grid Layout */
.post-boxes { 
  display: flex; 
  flex-wrap: wrap; 
  gap: 30px; 
  justify-content: flex-start; 
  align-items: stretch; 
}

.post-box { 
  flex: 0 0 calc(33.333% - 20px); 
  background: #fff; 
  border-radius: 10px; 
  overflow: hidden; 
  display: flex; 
  flex-direction: column; 
  justify-content: space-between; 
}

/* Post Image Container */
.post-img { 
  position: relative; 
  width: 100%; 
  height: auto; 
  background: #ddd; 
  border-radius: 10px 10px 0 0; 
  overflow: hidden; 
}

.post-img img { 
  width: 100%; 
  height: auto; 
  display: block; 
  object-fit: cover; 
}

/* Category Badges */
.post-cat { 
  position: absolute; 
  top: 16px; 
  left: 16px; 
  padding: 6px 14px; 
  border-radius: 6px; 
  background: #9A4CA2; 
  font-family: 'Inter', sans-serif; 
  font-size: 14px; 
  font-weight: 700; 
  color: #fff; 
  z-index: 5; 
}

.post-cat.blog { 
  background: #9A4CA2; 
}

.post-cat.video { 
  background: #FE463B; 
}



/* Post Content */
.post-b { 
  padding: 20px; 
  box-shadow: none; 
  background: transparent; 
  flex: 1; 
  display: flex; 
  flex-direction: column; 
  justify-content: flex-start; 
}

.post-date-badge { 
   padding: 0px 0px; 
  background: white; 
  font-family: 'Rubik', sans-serif; 
  font-size: 14px; 
  font-weight: 400; 
  color: #9A4CA2;
}

.event-date-badge { 
  padding: 0px 0px; 
  font-family: 'Rubik', sans-serif !important; 
  font-size: 14px !important; 
  font-weight: 400; 
  color: #9A4CA2;
	background-color: #FAFFFE;
	padding-top: 10px;
}

.event-cat {
  position: absolute; 
  top: 16px; 
  left: 16px; 
  padding: 6px 14px; 
  border-radius: 6px; 
  background: #2AB799; 
  font-family: 'Rubik', sans-serif; 
  font-size: 14px; 
  font-weight: 400; 
  color: #fff; 
  z-index: 5; 
}
.event-cat a {
    color: #ffffff;
    font-family: "Rubik", Sans-serif;
}
.event-cat a:hover {
    color: #ffffff;
    font-family: "Rubik", Sans-serif;
}
/* seems some conflict with event-cat a hover, so added this to theme customizer */

.post-title { 
  margin: 0 0 10px; 
  font-size: 24px; 
  line-height: 28px; 
  font-weight: 400; 
  color: #000; 
}

.post-title a { 
  text-decoration: none; 
  color: inherit; 
}

.post-title a:hover { 
  color: #2AB799; 
}

.post-text { 
  font-size: 16px; 
  line-height: 1.42; 
  color: rgba(0,0,0,0.8); 
  margin-bottom: 20px; 
  flex-grow: 1; 
}

.post-box h4 { 
  font-size: 24px; 
  font-family: 'Rubik', sans-serif !important; 
  margin-top: 10px; 
  margin-bottom: 4px; 
}

.post-box h4 a { 
  color: #000; 
  font-size: 24px; 
}

.post-text { 
  font-size: 15px; 
  font-family: 'Rubik', sans-serif !important; 
}

/* Read More Button */
.read-link.elementor-button.button-small { 
  display: inline-flex !important; 
  align-items: center !important; 
  justify-content: center !important; 
  margin-top: auto; 
  width: 100% !important; 
  height: 56px !important; 
  padding: 16px 53px !important; 
  border: 1px solid #2AB799 !important; 
  border-radius: 10px !important; 
  background: transparent !important; 
  font-family: 'Rubik', sans-serif !important; 
  font-weight: 700 !important; 
  font-size: 16px !important; 
  line-height: 1.43 !important; 
  text-decoration: none !important; 
  text-align: center !important; 
  color: #2AB799 !important; 
  cursor: pointer !important; 
  transition: background-color 0.3s ease !important; 
}

.read-link.elementor-button.button-small:hover { 
  background-color: #2AB799 !important; 
  color: #fff !important; 
}

.read-link.elementor-button.button-small svg { 
  transform: rotate(0deg) !important; 
  margin-left: 8px; 
}

/* Single Event Page */
.single-tribe_events .event-categories {
  display: flex;
  justify-content: center; 
  align-items: center; 
  flex-wrap: wrap; 
  gap: 10px; 
  margin-top: 15px;
}

.single-tribe_events .event-category-badge {
  font-family: 'Rubik', sans-serif;
  font-style: normal;
  font-weight: 400 !important;
  font-size: 14px !important;
  line-height: 143.52%; 
  padding: 8px 15px;
  border-radius: 5px;
  text-transform: uppercase;
  color: #fff; 
  display: inline-block;
  text-align: center;
  min-width: 100px; 
}

/*--------------------------------------------------------------
# 6. Slick Slider
--------------------------------------------------------------*/
/* Core Slick Slider Styles */
body .slick-slider { 
  position: relative; 
}

body .slick-slider.slick-dotted { 
  margin-bottom: 60px; 
}

body .slick-list { 
  position: relative; 
  display: block; 
  overflow: hidden; 
  margin: 0; 
  padding: 0; 
}

body .slick-list:focus { 
  outline: none; 
}

body .slick-list.dragging { 
  cursor: pointer; 
}

body .slick-slider .slick-track,
body .slick-slider .slick-list { 
  -webkit-transform: translate3d(0, 0, 0); 
  transform: translate3d(0, 0, 0); 
}

body .slick-track { 
  position: relative; 
  display: block; 
}

body .slick-track:before,
body .slick-track:after { 
  display: table; 
  content: ''; 
}

body .slick-track:after { 
  clear: both; 
}

body .slick-loading .slick-track { 
  visibility: hidden; 
}

body .slick-slide { 
  display: none; 
  float: left; 
  height: 100%; 
  min-height: 1px; 
  outline: none; 
}

[dir='rtl'] .slick-slide { 
  float: right; 
}

body .slick-slide.slick-loading img { 
  display: none; 
}

body .slick-slide.dragging img { 
  pointer-events: none; 
}

body .slick-initialized .slick-slide { 
  display: block; 
}

body .slick-loading .slick-slide { 
  visibility: hidden; 
}

body .slick-vertical .slick-slide { 
  display: block; 
  height: auto; 
  border: 1px solid transparent; 
}

body .slick-arrow.slick-hidden { 
  display: none; 
}

/* Slick Arrow Styling */
body .slick-slider .slick-arrow,
body .slick-arrow { 
  z-index: 5; 
  position: absolute; 
  top: 50%; 
  transform: translateY(-50%); 
  display: inline-block; 
  width: 70px; 
  height: 70px; 
  line-height: 70px; 
  font-size: 0; 
  cursor: pointer; 
  padding: 0; 
  outline: none !important; 
  border: 1px solid transparent !important; 
  background: none !important; 
  border-radius: 100%; 
  left: 0; 
  text-align: center; 
  box-shadow: none !important; 
  opacity: 1 !important;
  visibility: visible !important;
}

body .slick-slider .slick-arrow svg path { 
  fill: #000000 !important; 
}

body .slick-slider .slick-arrow.slick-next { 
  left: auto; 
  right: 0; 
}

/* 
body .slick-slider .slick-arrow:hover { 
  background: #fff !important; 
  color: var(--e-global-color-primary) !important; 
  border-color: var(--e-global-color-primary) !important; 
} 
*/

body .slick-slider .slick-arrow.slick-disabled { 
  display: none; 
}
/*
body .slick-slider .slick-arrow:hover svg path { 
  fill: var(--e-global-color-primary) !important; 
}
*/
body .slick-slider .slick-arrow svg { 
  position: absolute; 
  left: 50%; 
  top: 50%; 
  transform: translate(-50%, -50%); 
  display: block !important;
}

/* Post and Event Slider Specific Styles */
body .post-slider .slick-arrow,
body .event-slider .slick-arrow { 
  top: -80px; 
  transform: none; 
  left: auto; 
  right: 0; 
}

body .post-slider .slick-arrow.slick-prev { 
  left: auto; 
  right: 85px; 
}

body .event-slider .slick-arrow {
  top: -60px;
  right: 130px;
}

body .event-slider .slick-arrow.slick-next {
  left: auto;
  right: 44px;
  border: none !important;
  font-size: 57px !important;
  color: #000 !important;
}

/* Slick Dots Styling */
body ul.slick-dots { 
  margin: 0; 
  padding: 0; 
  list-style: none; 
  position: absolute; 
  bottom: -60px; 
  left: 50%; 
  width: auto; 
  transform: translateX(-50%); 
  line-height: 0; 
}

body ul.slick-dots li { 
  padding: 0 2px; 
  display: inline-block; 
}

body ul.slick-dots li button { 
  font-size: 0; 
  width: 15px; 
  height: 4px; 
  padding: 0; 
  border: none; 
  background: #EBEBEB; 
  vertical-align: top; 
  border-radius: 5px; 
}

body ul.slick-dots li button:hover,
body ul.slick-dots li.slick-active button { 
  background: var(--e-global-color-primary); 
}

/* Event Slider Customizations */
.event-slider .slick-slide { 
  transform: scale(0.9); 
  transition: transform 0.3s ease; 
  opacity: 0.8; 
}

.event-slider .slick-center { 
  transform: scale(1.05) !important; 
  opacity: 1; 
  z-index: 2; 
}

.slick-center .event-card,
.slick-center .default-card { 
  box-shadow: 0 8px 20px rgba(0,0,0,0.15); 
  border-radius: 8px; 
}

.event-slider .post-img img { 
  height: 235px !important; 
  object-fit: cover; 
  border-radius: 5px !important; 
  opacity: 1; 
}

.event-slider a.read-link.elementor-button.button-small { 
  display: none !important; 
}

.event-slider .slick-center a.read-link.elementor-button.button-small { 
  display: flex !important; 
}

.event-slider .post-b.text-m-center { 
  background: #FAFFFE; 
  box-shadow: 0px 4px 29.8px rgba(0,0,0,0.12); 
  border-radius: 10px; 
  padding: 16px; 
}

/*--------------------------------------------------------------
# 7. FacetWP Customizations
--------------------------------------------------------------*/
body .facetwp-facet { 
  margin: 0; 
}

.facetwp-pager { 
  text-align: center; 
}

body .facetwp-facet-pagination .facetwp-page { 
  display: inline-block; 
  width: 62px; 
  height: 62px; 
  line-height: 62px; 
  font-size: 16px; 
  font-weight: 800; 
  color: var(--e-global-color-primary) !important; 
  border: 1px solid var(--e-global-color-primary); 
  margin: 10px; 
  vertical-align: middle; 
  border-radius: 100%; 
}

body .facetwp-facet-pagination .facetwp-page:hover,
.facetwp-facet-pagination .facetwp-page.active { 
  background: #2AB799; 
  color: #fff !important; 
  border-color: #2AB799; 
} 

body .facetwp-facet-pagination .facetwp-page.next,
body .facetwp-facet-pagination .facetwp-page.prev { 
  display: inline-block; 
  width: 62px; 
  height: 62px; 
  line-height: 60px; 
  font-weight: 600; 
  font-size: 0; 
  border: 1px solid #2AB799; 
  color: #2AB799; 
  text-align: center; 
}

body .facetwp-facet-pagination .facetwp-page.next:before,
body .facetwp-facet-pagination .facetwp-page.prev:before { 
  font-family: 'FontAwesome'; 
  font-size: 20px; 
}

body .facetwp-facet-pagination .facetwp-page.prev:before { 
  content: "\f104"; 
}

body .facetwp-facet-pagination .facetwp-page.next:before { 
  content: "\f105"; 
}

body .facetwp-facet-pagination .facetwp-page.next:hover,
body .facetwp-facet-pagination .facetwp-page.prev:hover { 
  color: #fff; 
  background: #2AB799; 
  border-color: #2AB799; 
}

/* FSelect Styling */
body .fs-wrap { 
  width: 100%; 
  vertical-align: top; 
}

body .fs-label-wrap { 
  background-color: #fff; 
  border: 1px solid #D3D3D3; 
  font-size: 16px; 
  border-radius: 12px; 
}

body .fs-label-wrap .fs-label { 
  padding: 0 60px 0 20px; 
  height: 45px; 
  line-height: 45px; 
}

body .facetwp-type-fselect { 
  display: flex; 
}

body .fs-search { 
  display: none; 
}

body .fs-dropdown { 
  padding: 15px 0; 
  border: none; 
  margin-top: 10px; 
  box-shadow: 0px 3px 10px rgba(168, 168, 168, 0.10); 
}

body .fs-option:first-child { 
  display: none; 
}

body .fs-option { 
  padding: 15px 20px; 
  font-size: 14px; 
}

body .fs-option:hover,
.fs-wrap.single .fs-option.selected { 
  background: var(--e-global-color-primary); 
  color: #fff; 
}

body .fs-arrow { 
  border: none; 
  background: url(images/down-arrow.svg) no-repeat right center/35px auto; 
  width: 35px; 
  height: 10px; 
  transform: none !important; 
}

body .fs-dropdown .fs-options { 
  max-height: none; 
}

body .facetwp-icon { 
  display: none; 
}

body .facetwp-input-wrap { 
  display: block; 
}

body input.facetwp-search:not([type="button"]):not([type="submit"]) { 
  padding-left: 50px !important; 
  background-image: url(images/search2.svg); 
  background-repeat: no-repeat; 
  background-position: 15px center; 
}

body .facetwp-facet select { 
  background-color: rgba(0,0,0,0); 
}

/*--------------------------------------------------------------
# 8. Responsive Styles
--------------------------------------------------------------*/
/* @media (min-width: 768px) {
  body .event-slider .slick-arrow { 
    bottom: 30px; 
    top: auto; 
    left: 0; 
    right: auto; 
  }
  
  body .event-slider .slick-arrow.slick-next { 
    left: 80px; 
  }
  */

  body .event-slider,
  .event-slider-main,
  .event-slider-main .elementor-column-wrap,
  .event-slider-main .elementor-widget,
  .event-slider-main .elementor-widget-wrap { 
    position: inherit !important; 
  }
  
 body .slick-list { outline:none; position: relative; display: block; overflow: hidden; margin: 0; padding: 0; }

  
  body .event-slider .slick-list:before { 
    content: ''; 
    position: absolute; 
    top: 0; 
    right: 100%; 
    width: 4000px; 
    height: 100%; 
  }
}

@media (max-width: 992px) { 
  .post-box { 
    flex: 0 0 calc(50% - 15px); 
    margin-bottom: 20px; 
  } 
}

@media (max-width: 767px) { 
  body .text-m-center { 
    text-align: center; 
  }
  
  body .gform_footer { 
    display: block !important; 
  }

  /* Mobile Slider Arrows */  
  body .slick-slider .slick-arrow,
  body .slick-arrow { 
    width: 40px; 
    height: 40px; 
    line-height: 40px;
    opacity: 1 !important;
    visibility: visible !important;
    display: block !important;
  }
  
  body .post-slider,
  body .event-slider { 
    padding: 0 25px !important; 
    position: relative;
    z-index: 1;
  }
  
  body .post-slider .slick-arrow.slick-next,
  body .event-slider .slick-arrow.slick-next { 
    right: -5px !important;
    left: auto !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
  }
  
  body .post-slider .slick-arrow.slick-prev,
  body .event-slider .slick-arrow.slick-prev { 
    left: -5px !important;
    right: auto !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
  }
   
  /* body .slick-slider .slick-arrow {
    background-color: rgba(255, 255, 255, 0.7) !important;
    border-radius: 50% !important;
  }
} */

@media (max-width: 576px) { 
  .post-box { 
    flex: 0 0 100%; 
  } 
}

body .event-slider .slick-arrow { top: -80px; transform: none; left: auto; right: 0; }

.elementor-21002 .elementor-element.elementor-element-0deab62:not(.elementor-motion-effects-element-type-background), .elementor-21002 .elementor-element.elementor-element-0deab62 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
 
    background-repeat: no-repeat !important;
}

.elementor-21002 .elementor-element.elementor-element-0deab62 > .elementor-background-overlay {
    background-color: #050E03;
    opacity: 0.27;
    transition: background 0.3s, border-radius 0.3s, opacity 0.3s;
    background-repeat: no-repeat;
  
    background-size: cover !important;
    background-position: center;
}