/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
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: 2.0.0
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
*/

/* Add your custom styles here */


/* TEXTS */

h3,h4,h5,h6,p,ul,li,input, .course_meta{
line-height:1.4em !important;
}

h1, h2, h3, h4, h5, .site-navigation ul.menu li a, .e-n-tab-title {
font-family: 'Henrietta regular' !important;
}

p,ul,li{
font-family: "DM Sans", sans-serif !important;
font-weight:400 !important;
font-optical-sizing: auto !important;
font-style: normal !important;
}

h1{
font-size: 3em !important;
}

h2{
font-size: 2.5em !important;
}

h3{
font-size: 2em !important;
}

h4{
font-size: 1.5em !important;
}

h5{
font-size: 1em !important;
}

@media only screen and (max-width: 768px) {

h1{
font-size: 2.5em !important;
}

h2{
font-size: 2em !important;
}
	
h4{
font-size: 1.25em !important;
}
	
h5{
font-size: 1em !important;
}

}

.small_caps{
	text-transform:uppercase !important;
	letter-spacing:5px;
}

.center_align{
text-align:center !important;
}

.left_align{
text-align:left !important;	
}

.home_header{
min-height:70vh;
}

.min_height_33{
min-height:33vh;
}

.min_height_40{
min-height:40vh;
}

.min_height_50{
min-height:50vh;
}

.min_height_70{
min-height:70vh;
}

.min_height_90{
min-height:90vh;
}

/* TEXT COLOURS */

.half_white_text, .half_white_text *{
color:rgba(255,255,255,0.75) !important;
}

.white_text, .white_text *{
color:#ffffff !important;
}

.black_text, .black_text *{
color:#231f21 !important;
}

.yellow_text *{
color:#ffc300 !important;
}

.green_text, .green_text *{
color:#164142 !important;
}

.verdigris_text, .verdigris_text *{
color:#64b6ac !important;
}

.raspberry_text *{
color:#d81159 !important;
}

.rosequartz_text *{
color:#bcabae !important;
}

.light_grey_text, .light_grey_text *{
color:#cccccc !important;
}

.grey_text, .grey_text *{
color:#999999 !important;
}

/* BACKGROUND COLOURS */

.white_bkg {
background-color:#ffffff !important;
}

.black_bkg {
background-color:#231f21 !important;
}

.yellow_bkg {
background-color:#ffc300 !important;
}

.green_bkg {
background-color:#164142 !important;
}

.verdigris_bkg {
background-color:#64b6ac !important;
}

.raspberry_bkg {
background-color:#d81159 !important;
}

.rosequartz_bkg{
background-color: #bcabae !important;
}

.grey_bkg{
background-color: #f4f5f6 !important;
}

.white_grey_bkg {
background: #FFFFFF;
background: linear-gradient(0deg,rgba(255, 255, 255, 1) 0%, rgba(244, 245, 246, 1) 100%) !important;
}

.grey_white_bkg {
background: #FFFFFF;
background: linear-gradient(180deg,rgba(255, 255, 255, 1) 0%, rgba(244, 245, 246, 1) 100%) !important;
}

/* PADDINGS */

.no_margin_padding{
margin:0px !important;
padding:0px !important;
}

.no_margin_padding_p h1,
.no_margin_padding_p h2,
.no_margin_padding_p h3,
.no_margin_padding_p h4,
.no_margin_padding_p p{
margin:0px !important;
padding:0px !important;
}

.padding_50_top_bottom{
padding-top:50px !important;
padding-bottom:50px !important;
}

.margin_top_20{
margin-top:20px !important;
}

.margin_bottom_20{
margin-bottom:20px !important;
}

.margin_bottom_50{
margin-bottom:50px !important;
}

.padding_20{
padding:20px !important;	
}

.padding_25{
padding:25px !important;	
}

.padding_50{
padding:50px !important;
}

.padding_top_50{
padding-top:50px !important;
}

.padding_bottom_50{
padding-bottom:50px !important;
}

.padding_bottom_25{
padding-bottom:25px !important;
}

.padding_top_25{
padding-top:25px !important;
}

.padding_right_10{
padding-right:10px !important;
}

.padding_right_20{
padding-right:20px !important;
}

/* WIDTHS */

.max_width_80{
max-width:80% !important;
}

@media only screen and (max-width: 768px) {
.max_width_80{
max-width:100% !important;
}
}


.line_height_1,
.line_height_1 h1,
.line_height_1 h2,
.line_height_1 h3,
.line_height_1 h4,
.line_height_1 h5,
.line_height_1 p{
line-height:1em !important;
}


/* =========================
   BUTTONS
   Applies to Elementor buttons & CF7 submit button
========================= */

/* Shared button style */
.button,
button:not(.slick-slider button):not(.e-n-tab-title),
.elementor-button,
.wpcf7-submit,
.um-button{
    font-family: 'Henrietta regular', sans-serif !important;
    color: #ffffff !important;
    background-color: #000000 !important;
    padding: 10px 20px;
    border: 1px solid transparent !important;
    border-radius: 4px;
    cursor: pointer;
    text-align: center;
    display: inline-block;
    transition: all 0.3s ease;
	line-height:1em !important;
}

/* Hover effect */
.button:hover,
button:not(.slick-slider button):not(.e-n-tab-title):hover,
.elementor-button:hover,
.um-button:hover{
    background-color: #ffffff !important;
    color: #000000 !important;
    border: 1px solid rgba(0,0,0,0) !important;
}

.wpcf7-submit:hover {
    background-color: #ffffff !important;
    color: #000000 !important;
    border: 1px solid #000000 !important;
}

/* =========================
   CONTACT FORM 7
========================= */

/* Form wrapper: full width */
.wpcf7-form {
    width: 100%;
    font-family: 'Henrietta regular', sans-serif;
    color: #333;
}

/* Labels */
.wpcf7-form label {
    font-family: 'Henrietta regular', sans-serif;
    display: block;
    margin-bottom: 5px;
}

.wpcf7-form .labelz {
color: #999999;
}

/* Inputs, textareas, selects */
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form input[type="url"],
.wpcf7-form input[type="number"],
.wpcf7-form input[type="password"],
.wpcf7-form textarea,
.wpcf7-form select {
    font-family: 'Henrietta regular', sans-serif !important;
    width: 100%;
    padding: 12px 16px;
    margin-top: 10px;
    margin-bottom: 15px;
    border: 1px solid #ccc;
    border-radius: 6px;
    background-color: #fff;
    font-size: 16px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

/* Focus state */
.wpcf7-form input:focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus {
    color: #64b6ac;
    border-color: #64b6ac;
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
    outline: none;
}



/* Placeholder text */
.wpcf7-form ::placeholder {
    color: #aaa;
    font-style: italic;
}



/* Error messages */
.wpcf7-not-valid-tip {
    color: #ff0000;
    font-size: 14px;
    margin-top: -10px;
    margin-bottom: 10px;
    display: block;
}



/* CF7 submit button spacing */
.wpcf7-submit {
margin-top: 25px !important;
}



/* HIDE HEADER AND FOOTER */

.home .site-header, .home #site-footer{
display:none !important;
}





/* MODALS */

.custom-modal {
  display: none;
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.6);
}

.custom-modal-content {
  background-color: #fff;
  margin: 5% auto;
  padding: 0;
  border-radius: 10px;
  max-width: 800px;
  width: 90%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  position: relative;
}

.custom-close {
  color: #000;
  position: absolute;
  top: 10px;
  right: 20px;
  font-size: 28px;
  font-weight: bold;
  cursor: pointer;
}



















/* Vacancies & Courses common */
.vacancies-slider .vacancy, .courses-slider .course {
    padding: 1.5rem;
    margin: 0.5rem;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.vacancy-title, .course-title { margin-top: 0; color: #1e40af; }
.vacancy-meta, .course-meta { list-style: none; padding: 0; margin: 0 0 1rem; }
.vacancy-meta li, .course-meta li { margin: 0.2rem 0; }
.vacancy-description, .course-description { line-height: 1.6; }

.slick-prev, .slick-next { color: #1e40af !important; }
.slick-dots li button:before { color: #1e40af !important; }



/* STYLE SLICK BUTTONS */

.slick-next,
.slick-prev {
color: transparent !important;
font-size: 0 !important;
padding:0px !important;
border:0px !important;
background:none !important;
}











.counsellors-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    margin-top: 20px;
}

.counsellor-card {
    text-align: center;
    background: #f9f9f9;
    padding: 20px;
    border-radius: 8px;
    transition: transform 0.3s;
}

.counsellor-card:hover {
    transform: translateY(-5px);
}

.counsellor-thumb {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 15px;
    border: 3px solid #78B4AC;
}

.counsellor-card h4 {
    margin: 0 0 10px;
    font-size: 1.1em;
    color: #333;
}




.counsellor-filter {
    margin-bottom: 30px;
    text-align: center;
}

.counsellor-filter select {
padding: 8px 12px;
font-size: 1em;
}

.elementor_header_standard{
background: #64b6ac;
color: #fff;
padding: 125px 20px 25px;
}

.elementor_header_standard h1{
color: #ffffff !important;
}

.elementor_main_standard{
	padding-top:50px !important;
	padding-bottom:50px !important;
}

   /* Background overlay for header, main content, and footer */
.elementor_header_standard::before,
.elementor_main_standard::before{
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100%;
            background-image: url("https://hhdevelopment.co.uk/wp-content/uploads/2025/10/flower_2.png");
            background-repeat: no-repeat;
            background-size: cover;
            background-attachment: fixed;
            opacity: 0.03;
            pointer-events: none;
            z-index: 0;
        }

/* HEADER AND FOOTER */

#site-header{
position:absolute;
z-index:99;
width:100vw;
transition:0.5s background;
padding-bottom:25px;
background: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));
}

#site-header::after {
content: "";
position: absolute;
left: 20px;
right: 20px;
bottom: 10px;
height: 1px; /* thickness of border */
background-color: #ffffff; /* border color */
opacity:0;
transition:0.5s opacity;
}

.scrolled #site-header::after {
opacity:1;
transition:0.5s opacity;
}

.scrolled #site-header{
transition:0.5s background;
position: fixed;
top:-5px !important;
transition:0.5s all !important;
background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
}

.site-navigation ul.menu li a{
color:#ffffff;
	transition:0.5s color;
}


.site-navigation ul.menu li ul.sub-menu li a {
color: #ccc;
}

.site-navigation ul.menu li a:hover{
color:#d81159;
	transition:0.5s color;
}


.custom-logo-link{
width:250px;
margin:0px 20px;
opacity:0;
transition:0.5s opacity;
}

.scrolled .custom-logo-link{
opacity:1;
transition:0.5s opacity;
}

#site-footer{
background-color:#231f21;
}

/* DROPDOWNS */

/* Dropdown Wrapper (optional, for layout control) */
.select-wrapper {
  position: relative;
  display: inline-block;
  width: 250px;
}

/* Base Dropdown */
select {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: #ffffff;
  border: 2px solid #78B4AC;
  color: #164142;
  padding: 12px 45px 12px 15px;
  font-size: 1rem;
  font-family: inherit;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

/* Custom arrow using pseudo-element */
.select-wrapper::after {
  content: "▼";
  font-size: 0.8rem;
  color: #78B4AC;
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  transition: transform 0.3s ease;
}

/* Hover and focus effects */
select:hover {
  border-color: #164142;
  box-shadow: 0 4px 12px rgba(120,180,172,0.15);
}

select:focus {
  outline: none;
  border-color: #164142;
  box-shadow: 0 0 0 3px rgba(120,180,172,0.3);
}

/* Active state (when clicked) */
.select-wrapper:has(select:focus)::after {
  transform: translateY(-50%) rotate(180deg);
}

/* Option styling (browser-dependent, still helps a bit) */
select option {
  background-color: #fff;
  color: #164142;
  padding: 10px;
}


/* STICKY */
.sticky-div {
  position: sticky;
  top: 0px; /* distance from the top of the viewport */
  padding: 110px 0 20px 0 !important;
  z-index: 90; /* ensure it stays above other elements */
}

/* STICKY */
.sticky-div-filter {
  position: sticky;
  top: 0px; /* distance from the top of the viewport */
}





/* COUNSELLORS SLIDER */

.counsellors-slider .slick-slide {
    padding: 0; /* 20px total gap between slides (10px each side) */
    box-sizing: border-box;
}

.counsellors-slider {
    margin: 40px -10px; /* negative margin to compensate for slide padding */
}

.counsellors-slider .counsellor {
    background-size: cover !important;
    background-position: center center;
    display: flex !important;
    align-items: flex-end;   /* push content to bottom */
    justify-content: flex-start; /* align content left */
    color: #fff;
    min-height: 400px;
    position: relative;
	margin:0 10px !important;
}

.counsellor.gradient-overlay {
    position: relative;
    background-size: cover;
    background-position: center;
    transition: background 0.5s ease; /* smooth transition */
}

.counsellor.gradient-overlay::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.8), rgba(0,0,0,0));
    transition: opacity 0.5s ease;
    opacity: 1;
    z-index: 1;
    pointer-events: none; /* so content remains clickable */
}

.counsellor.gradient-overlay:hover::before {
opacity: 0;
transition:0.5s opacity;
}

.counsellor-content {
padding: 15px 25px;
width:100%;
z-index:2;
transition:0.5s padding;
}

.counsellor:hover .counsellor-content{
padding: 0px 25px 30px 25px;
transition:0.5s padding;
}

.counsellor:hover .button{
background-color:#64b6ac !important;
transition:0.5s all;
}

.counsellor:hover .button:hover{
background-color:#ffffff !important;
transition:0.5s all;
}

.counsellors-slider .counsellor-content h3 a{
color:#ffffff;
}

.counsellors-slider .counsellor-content p{
color:rgba(255,255,255,0.6);
}

.counsellor-name {
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
}

.counsellor-specialties {
    list-style: none;
    padding: 0;
    margin: 10px 0;
}

.counsellor-specialties li {
    display: inline-block;
    background: rgba(255,255,255,0.8);
    border-radius: 20px;
    padding: 5px 10px;
    margin: 2px;
    font-size: 0.85rem;
    color: #000;
}

/*==================================================*/

.site-navigation ul.menu li ul.sub-menu {
	display:block;
}

.site-navigation ul.menu li ul li {
border:none !important;
}

/* Base state: folded, hidden */
.site-navigation ul.menu li ul.sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%; /* full width of parent */
    background-color: #272727;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    pointer-events: none;
    transition: max-height 0.5s ease-out, opacity 0.5s ease-out;
}

/* Submenu links: start shifted left, invisible */
.site-navigation ul.menu li ul.sub-menu li a {
    display: block;
    width: 100%;
    padding: 15px 20px;
    color: #fff;
    text-align: left;
    transform: translateX(-30px); /* start off left */
    opacity: 0;
    transition: transform 0.5s ease, opacity 0.5s ease;
}

/* Hover parent: unfold submenu */
.site-navigation ul.menu li:hover > ul.sub-menu {
    max-height: 1000px; /* big enough to fit all items */
    opacity: 1;
    pointer-events: auto;
}

/* Submenu items slide in from left with staggered delay */
.site-navigation ul.menu li:hover > ul.sub-menu li:nth-child(1) a {
    transition-delay: 0.05s;
    transform: translateX(0);
    opacity: 1;
}
.site-navigation ul.menu li:hover > ul.sub-menu li:nth-child(2) a {
    transition-delay: 0.10s;
    transform: translateX(0);
    opacity: 1;
}
.site-navigation ul.menu li:hover > ul.sub-menu li:nth-child(3) a {
    transition-delay: 0.15s;
    transform: translateX(0);
    opacity: 1;
}
.site-navigation ul.menu li:hover > ul.sub-menu li:nth-child(4) a {
    transition-delay: 0.20s;
    transform: translateX(0);
    opacity: 1;
}
.site-navigation ul.menu li:hover > ul.sub-menu li:nth-child(5) a {
    transition-delay: 0.25s;
    transform: translateX(0);
    opacity: 1;
}

.site-navigation ul.menu li:hover > ul.sub-menu li:nth-child(6) a {
    transition-delay: 0.3s;
    transform: translateX(0);
    opacity: 1;
}

.site-navigation ul.menu li:hover > ul.sub-menu li:nth-child(7) a {
    transition-delay: 0.35s;
    transform: translateX(0);
    opacity: 1;
}

.site-navigation ul.menu li:hover > ul.sub-menu li:nth-child(8) a {
    transition-delay: 0.4s;
    transform: translateX(0);
    opacity: 1;
}

.site-navigation ul.menu li:hover > ul.sub-menu li:nth-child(9) a {
    transition-delay: 0.45s;
    transform: translateX(0);
    opacity: 1;
}

.site-navigation ul.menu li:hover > ul.sub-menu li:nth-child(10) a {
    transition-delay: 0.5s;
    transform: translateX(0);
    opacity: 1;
}

/* Submenu link hover color */
.site-navigation ul.menu li ul.sub-menu li a:hover {
    background-color: #3a3a3a;
    color: #fff;
}

/* Top-level hover sync */
.site-navigation ul.menu li:hover > a {
    background-color: #272727;
    color: #fff;
}

.site-navigation ul.menu li.menu-item-has-children:after {
display:none !important;
}

.site-navigation ul.menu li.menu-item-has-children {
padding-inline-end: 0px !important;
}

.um .um-field-label {
color: #ffffff !important;
font-family: 'Henrietta regular' !important;

}

.um-field-label label {
font-size: 18px !important;
line-height: 22px !important;
font-weight: 400 !important;
}

.holder_image img{
width:100%;
height:auto;
}



.custom-posts-grid {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
gap: 25px;
}

.post-card {
  flex: 1 1 calc(33.333% - 20px);
  max-width: 33.333%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.post-thumb {
  width: 100%;
  aspect-ratio: 1 / 1; /* Keeps the container perfectly square */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.post-content {
padding: 20px;
display: flex;
flex-direction: column;
justify-content: flex-start;
flex: 1;
}

.post-date {
text-transform:uppercase;
color: #cccccc;
margin: 10px 0 20px 0 !important;
padding:0px !important;
letter-spacing: 5px;
}

.post-title {
font-size: 1.2rem;
line-height:1em !important;
margin: 0px !important;
padding:0px !important;
}

.post-excerpt {
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 15px;
}

.read-more {
  align-self: flex-start;
  padding: 8px 14px;
  background: #000;
  color: #fff;
  border-radius: 4px;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.3s ease;
}

.read-more:hover {
  background: #64b6ac;
}

.custom-pagination {
  text-align: center;
  margin-top: 30px;
  width: 100%;
}

.custom-pagination a,
.custom-pagination span {
  display: inline-block;
  margin: 0 5px;
  padding: 8px 12px;
  background: #f4f4f4;
  color: #333;
  text-decoration: none;
}

.custom-pagination .current {
  background: #64b6ac;
  color: #fff;
}

/* Responsive */
@media (max-width: 1024px) {
  .post-card {
    flex: 1 1 calc(50% - 20px);
    max-width: 50%;
  }
}

@media (max-width: 768px) {
  .post-card {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

.um-account-heading, .um-account-name{
display:none !important;
}


/* Hide specific Elementor section for all except clients */
body:not(.um-role-client) .elementor-element.elementor-element-CLIENTID {
    display: none !important;
}

/* Hide specific Elementor section for all except counsellors */
body:not(.um-role-counsellor) .elementor-element.elementor-element-COUNSELLORID {
    display: none !important;
}

/* Hide section for logged-in users */
body.logged-in .elementor-element.elementor-element-GUESTID {
    display: none !important;
}

/* Show section only for logged-out visitors */
body:not(.logged-in) .elementor-element.elementor-element-GUESTID {
    display: block !important;
}

.box{
	background-color: #fff;
    border-radius: 8px;
    -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .2);
    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .2);
    margin: 48px 0 24px;
    position: relative;
}


/* TOP BAR */
.top-bar {
background: #231f21;
padding: 10px 15px;
}

.top-bar .container {
display: flex;
justify-content: space-between;
align-items: center;
margin: 0 auto;
}

.top-bar .top-left span {
margin-right: 20px;
color: #fff;
}

.top-bar .top-right .top-nav-list {
  list-style: none;
  display: flex;
  gap: 15px;
  margin: 0;
  padding: 0;
}

.top-bar .top-right .top-nav-list li a {
color: #fff;
text-decoration: none;
transition: color 0.3s;
}

.top-bar .top-right .top-nav-list li a:hover {
color: #0073e6;
}

.home .top-bar {display:none !important;}

/* MAX MEGA MENU */

.widget_media_image,
.mega-menu-item{
padding:0px !important;
margin:0px !important;
font-family: 'Henrietta regular' !important;
}

.widget_media_image img{
max-width:60px !important;
height:auto !important;
margin:0px auto !important;
}

.mega-menu-item-722 a,
.mega-menu-item-2115 a,
.mega-menu-item-2116 a,
.mega-menu-item-2117 a{
text-align:center !important;
padding:0px !important;
margin:0px !important;
}

.textwidget p{
font-family: "DM Sans", sans-serif !important;
font-weight:400 !important;
font-optical-sizing: auto !important;
font-style: normal !important;
padding:0px !important;
margin:5px 0 20px !important;
}


/* COUNSELLORS PAGE */

/* Counsellors Wrapper Grid */
.counsellors-wrapper {
    display: grid;
    grid-template-columns: 3fr 1fr; /* main content wider than filters */
    gap: 25px;
}

/* Counsellors Grid Cards */
.counsellors-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 25px;
    margin-top: 0;
    padding-top: 0;
}

/* Counsellor Card Styling */
.counsellor-card {
    background: #fff;
    padding: 20px 20px 30px 20px;
    text-align: center;
    border: 1px solid #eaeaea;
    border-radius: 8px;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.counsellor-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}

.counsellor-card img {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #78B4AC;
}

.counsellor-card h3 {
font-size: 1.5em !important;
margin: 0 0 10px;
}

.counsellor-card p {
margin: 5px 0;
}

.counsellor-intro {
margin:10px 0 !important;
padding:10px 0;
border-top: solid 1px rgba(0, 0, 0, 0.05);
border-bottom: solid 1px rgba(0, 0, 0, 0.05);
}

.counsellor-categories strong,
.counsellor-locations strong {
    font-weight: 600;
}

/* Filters Column */
.counsellor-filters {
    display: flex;
    flex-direction: column;
    gap: 15px;
    background: #f4f5f6;
    border-radius: 5px;
    padding: 20px;
    border: 1px solid #ccc;
    position: sticky;
    top: 20px;
}

.counsellor-filters h4 {
    margin: 0 0 15px 0;
}

.counsellor-filters select {
    padding: 10px 15px;
    font-size: 1em;
    border-radius: 4px;
    border: 1px solid #ccc;
    background: #fff;
}

/* Responsive */
@media (max-width: 768px) {
    .counsellors-wrapper {
        grid-template-columns: 1fr;
    }
    .counsellors-grid {
        grid-template-columns: 1fr;
    }
    .counsellor-filters {
        order: -1; /* show filters above grid on mobile */
    }
}



.counsellors-grid-container {
    position: relative; /* needed for overlay positioning */
}

.grid-loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255,0.9);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 18px;
    color: #333;
    z-index: 999;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.grid-loading-overlay.active {
    opacity: 1;
    pointer-events: all;
}

.spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #ccc;
    border-top-color: #1abc9c;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-bottom: 10px;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Make sure each column is hoverable */
#mega-menu-1358-1-1,
#mega-menu-1358-1-2,
#mega-menu-1358-1-3 {
  position: relative;
  
}

/* Smooth transitions for image and text */
#mega-menu-1358-1-1 img,
#mega-menu-1358-1-2 img,
#mega-menu-1358-1-3 img,
#mega-menu-1358-1-1 a.mega-menu-link,
#mega-menu-1358-1-2 a.mega-menu-link,
#mega-menu-1358-1-3 a.mega-menu-link {
transition: all 0.5s !important;
}

/* Tint PNG to #64b6ac on hover (keeps transparency) */
#mega-menu-1358-1-1:hover img,
#mega-menu-1358-1-2:hover img,
#mega-menu-1358-1-3:hover img {
  filter: brightness(0) saturate(100%) invert(77%) sepia(11%) 
          saturate(844%) hue-rotate(122deg) brightness(91%) contrast(90%);
	transition: all 0.5s !important;
}

/* Change link text color to #64b6ac on hover */
#mega-menu-1358-1-1:hover a.mega-menu-link,
#mega-menu-1358-1-2:hover a.mega-menu-link,
#mega-menu-1358-1-3:hover a.mega-menu-link {
  color: #64b6ac !important;
	transition: all 0.5s !important;
}


/* SIGN IN AND SIGN UP FORM */

.page-id-1190 .um-field-checkbox-option, .um-field-radio-option {
color: #fff !important;
}

.page-id-1190  .um-field-checkbox-state i, .page-id-1190  .um-field-radio-state i {
color: #fff !important;
}

.um-2938 ._um_row_1{
display:flex !important;
padding:0px !important;
max-width:100% !important;
}

.um-2938.um{
width:100% !important;
max-width:100% !important;
}

.um-2938 .um-col-121{
margin-right:10px !important;
}
.um-2938 .um-col-122{
margin-left:10px !important;
}

/* TOP NAV LOGIN BUTTON */

/* Parent menu item */
.login_top_nav_button {
  position: relative; /* needed for dropdown positioning */
  display: inline-block; /* ensures width behaves like button */
	text-align:center;
}

/* Parent button styling */
.login_top_nav_button > a {
  background-color: #D81159; /* button color */
  color: #fff !important;
  padding: 5px 15px;
  border-radius: 16px; /* fully rounded initially */
  text-decoration: none;
  display: inline-block;
  transition: background-color 0.3s ease, box-shadow 0.3s ease, border-radius 0.3s ease;
}

/* ALT TOP HEADER BUTTON */
.alt_top_header_button{
color:#ffffff !important;
background:none !important;
border:1px solid #ffffff !important;
padding: 4px 14px !important;
margin-right:10px !important;
}

/* Button hover: connected effect */
.login_top_nav_button:hover > a{
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

/* Button hover: connected effect */
.reg_top_header_button:hover,
.alt_top_header_button:hover{
background-color: #ffffff !important;
color:#231f21 !important;
transition:0.5s all !important;
}

/* Dropdown menu */
.login_top_nav_button .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background-color: #D81159; /* same as button */
  border-radius: 0 0 16px 16px; /* bottom corners rounded */
  box-shadow: 0 8px 16px rgba(0,0,0,0.1);
  min-width: 100%; /* match button width */
  z-index: 1000;
  padding: 0;
	text-align:center;
}

/* Submenu links */
.login_top_nav_button .sub-menu li a {
  display: block;
  color: #fff;
  padding: 8px 10px;
  text-decoration: none;
  transition: background 0.2s ease;
  border-radius: 0; /* reset by default */
}

/* Hover effect on dropdown items */
.login_top_nav_button .sub-menu li a:hover {
  background-color: #c20f50;
}

/* Keep last submenu item rounded */
.login_top_nav_button .sub-menu li:last-child a {
  border-bottom-left-radius: 16px;
  border-bottom-right-radius: 16px;
}

/* Show dropdown on hover */
.login_top_nav_button:hover > .sub-menu {
display: block;
}


/* Wrap menu + role text side by side */
.top-nav-flex {
  display: flex;
  align-items: center;
  justify-content: flex-end; /* aligns both to the right if needed */
  gap: 16px; /* space between role text and menu */
}

/* Role text styling */
.logged-in-role {
  list-style: none;
  margin: 0;
  padding: 0;
  font-weight: 500;
  color: #ffffff;
}

/* Make sure dropdown button aligns nicely with role text */
.top-nav-list {
  display: flex;
  align-items: center;
  gap: 16px;
}



.force_border_radius,
.force_border_radius a{
border-radius:16px !important;
}

#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-item > a.mega-menu-link {
border-radius: 100px !important;
}

#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu {
border-radius: 5px !important;
background: #f4f5f6 !important;
border: 1px solid #ddd !important;
}

#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu a{
padding:7px 18px !important;
color: #555 !important;
}

#mega-menu-wrap-menu-1 #mega-menu-menu-1 > li.mega-menu-flyout ul.mega-sub-menu li.mega-menu-item a.mega-menu-link {
font-size: 16px !important;
}

.dashicons-span {
font-size: 16px;         /* Adjust icon size */
margin-left: 3px;        /* Space from menu text */
vertical-align: middle;  /* Align with text */
color: #cccccc;     /* Inherit menu text color */
display: inline-block;
transition: color 0.3s ease;
}

.white_button a{
color: #231f21 !important;
background:#ffffff !important;	
}

.white_outline_button a{
background:none !important;
border:1px solid #ffffff !important;
}

.white_button a:hover, .white_outline_button a:hover{
background: #231f21 !important;
color:#ffffff !important;	
}

.mega-indicator{
display:none !important;
}


.dropdown-button-wrapper {
            position: relative;
            display: inline-block;
        }
        .dropdown-btn {
            background-color: #64b6ac;
            color: #ffffff;
            padding: 14px 24px;
            font-size: 16px;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            transition: background-color 0.3s ease, box-shadow 0.3s ease;
        }
        .dropdown-btn:hover {
            background-color: #58a59b;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
        }
        .dropdown-menu {
            display: none;
            position: absolute;
            top: calc(100% + 0px);
            left: 0;
            background-color: #ffffff;
            border: 1px solid #e0e0e0;
            border-radius: 8px;
            box-shadow: 0 8px 16px rgba(0,0,0,0.1);
            min-width: 220px;
            padding: 8px 0;
            z-index: 1000;
        }
        .dropdown-menu li {
            list-style: none;
        }
        .dropdown-menu li a {
            display: block;
            color: #333333;
            text-decoration: none;
            padding: 12px 20px;
            transition: background-color 0.2s ease;
        }
        .dropdown-menu li a:hover {
            background-color: #f5f5f5;
        }
        .dropdown-button-wrapper:hover .dropdown-menu {
            display: block;
        }



/* BKG SCROLLER */

.scroller {
min-height:50vh !important; /* adjust as needed */
background-image: url('/wp-content/uploads/2025/11/text-scaled.gif');
background-repeat: repeat-x;
background-size: cover;
background-position: 0 0;
will-change: background-position;
transition: 0s all !important;
}

.checkbox-filter label {
    display: block;
    margin-bottom: 8px; /* optional spacing between checkboxes */
}

/* USER PAGE */
.um-account-side i::before {
color: rgba(255, 255, 255, 1);
}

div.uimob800 .um-account-side li a.current{
background-color:#231F24 !important;
border-radius:8px !important;
}

.um .um-cover-add:hover, .um .um-field-checkbox.active:not(.um-field-radio-state-disabled) i, .um .um-field-radio.active:not(.um-field-radio-state-disabled) i, .um .um-item-meta a, .um .um-member-less a:hover, .um .um-member-more a:hover, .um .um-member-name a:hover, .um .um-members-pagi a:hover, .um .um-profile-subnav a.active, .um .um-tip:hover, .um-account-name a:hover, .um-account-nav a.current, .um-account-side li a.current span.um-account-icon, .um-account-side li a.current:hover span.um-account-icon, .um-dropdown li a:hover, i.um-active-color, span.um-active-color {
color: #231F24 !important;
}

div.uimob800 .um-account-side ul {
border: none !important;
}

.um-request-button {
background-color: #231F24 !important;
}

.um .um-tip {
color: #231F24 !important;
}

.um-field-checkbox:hover i, .um-field-radio:hover i {
color: #231F24 !important;
}

.um-field-checkbox-state i, .um-field-radio-state i {
color: #ffffff !important;
}

.um-field-checkbox-option, .um-field-radio-option {
color: #ffffff !important;
}

.um:not(.um-admin) {
color: rgba(255,255,255,0.5) !important;
}

.um-account-main label {
font-size: 13px !important;
}

.um label:not(.um-field-label label){
margin-bottom:10px !important;
}

.um-account-wrapper .um-field-checkbox-option,
.um-account-wrapper .um-field-radio-option {
color: #ffffff !important;
}

.um-account-side li {
background: none !important;
border-radius:4px !important;
}

.um-account-side li a.current, .um-account-side li a.current:hover {
background-color: #231F24 !important;
}

.um-account-side li a span.um-account-title {
color: #ffffff !important;
}

.um-account-side li a:hover span.um-account-title {
color: #231F24 !important;
}

.um-account-side li a.current span.um-account-title {
color: #ffffff !important;
}

.um-field-export_data{
display:none !important;
}

.um-account-side li a:hover {
color: #231F24 !important;
background: #ffffff !important;
}

.um-account-side li a:hover i::before{
color: #231F24 !important;
}

.um-account-side li a.current:hover i::before{
color: #ffffff !important;
}

.um-account-side li a {
font-size:16px !important;
}






/* ==== EVENTS STYLING (APPLIES TO BOTH SHORTCODES) ==== */


.upcoming-events .event {
    display: flex;
    align-items: flex-start;
    position: relative;
padding: 1.5rem;
    margin: 0.5rem;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}
}

@media (max-width: 768px) {
	.upcoming-events .event {
	width:100% !important;
	}	
}

.event-date-badge {
	padding:8px 5px !important;
    width: 45px;
    text-align: center;
    background: #231f21;
    color: #fff;
    margin-right: 15px;
    flex-shrink: 0;
top:-10px;
right:0px;
	position:absolute;
}

.event-date-badge .day {
    font-size: 1.5rem;
    font-weight: bold;
	line-height:1em !important;
	padding:0px !important;
	margin:0px !important;
}

.event-date-badge .month {
    font-size: 0.9rem;
    text-transform: uppercase;
	line-height:1em !important;
	padding:0px !important;
	margin:0px !important;
}

.event-date-badge .year {
    font-size: 0.7rem;
    opacity: 0.8;
		line-height:1em !important;
	padding:0px !important;
	margin:0px !important;
}

.upcoming-events .event h2 {
	color:#164142;
    margin-top: 0;
    margin-bottom: 10px;
	margin-right:40px;
}

.upcoming-events .event .description {
    margin-bottom: 10px;
}


/* Container for full events page */
.upcoming-events {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 3rem;
  margin: 0;
  padding: 0;
}

/* Container for the "next three events" block */
.next-events {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5rem;
  margin: 2rem auto;
  padding: 0 1rem;
}

/* Each individual event card */
.event {
  background: #fff;
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  flex: 1 1 300px;
  max-width: 350px;
  display: flex;
  flex-direction: column;
}

/* Hover lift effect */
.event:hover {
  transform: translateY(-6px);
  box-shadow: 0 10px 20px rgba(0,0,0,0.12);
}

/* Event image */
.event img {
width: 100%;
height: 200px;
object-fit: cover;
margin-bottom:10px;
}

/* Content wrapper */
.event h2,
.event h3 {
font-size: 1.5rem;
font-weight: 600;
line-height: 1;
}

.event p strong {
color: #64b6ac;
}

/* "More Info" link button */
.event a {
display: inline-block;
color: #fff;
padding: 0.6rem 1.2rem;
text-decoration: none;
margin: 1rem auto 0px;
transition: background 0.25s ease;
}

.event a:hover {
background: #a30000;
}

/* Description (for full page version) */
.event .description {
color: #444;
font-size: 0.95rem;
line-height: 1.5;
}

.event .description p{
margin:0px !important;
}

/* Responsive tweaks */
@media (max-width: 768px) {
  .upcoming-events, .next-events {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .event {
    max-width: 90%;
  }
}