/*
Theme Name: Divi Child
Theme URI: 
Description: Child theme for Divi
Author: Aidan Ashby
Author URI: https://lucidrhino.design/
Template: Divi
Version: 1.0.0
*/

/* Import parent theme styles */
@import url("../Divi/style.css");

/* Switzer Font Family */
@font-face {
    font-family: 'Switzer';
    src: url('./fonts/Switzer-Light.woff2') format('woff2'),
         url('./fonts/Switzer-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Switzer';
    src: url('./fonts/Switzer-LightItalic.woff2') format('woff2'),
         url('./fonts/Switzer-LightItalic.woff') format('woff');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Switzer';
    src: url('./fonts/Switzer-Regular.woff2') format('woff2'),
         url('./fonts/Switzer-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Switzer';
    src: url('./fonts/Switzer-Italic.woff2') format('woff2'),
         url('./fonts/Switzer-Italic.woff') format('woff');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}
@font-face {
    font-family: 'Switzer';
    src: url('./fonts/Switzer-Semibold.woff2') format('woff2'),
         url('./fonts/Switzer-Semibold.woff') format('woff');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Switzer';
    src: url('./fonts/Switzer-SemiboldItalic.woff2') format('woff2'),
         url('./fonts/Switzer-SemiboldItalic.woff') format('woff');
    font-weight: 600;
    font-style: italic;
    font-display: swap;
}
/* Global Typography Settings */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Switzer', sans-serif !important;
    font-weight: 600;
}

/* Set Switzer as default font for all elements */
html *, input {
    font-family: 'Switzer', sans-serif;
}
:root {
	--et_global_body_font: 'Switzer', Arial, sans-serif !important;
	--et_global_heading_font: 'Switzer', Arial, sans-serif !important;
}
/* Ensure form elements inherit the font family */
input, button, textarea, select {
  font-family: inherit;
}
/* Style placeholder text */
::placeholder {
  font-family: inherit;      /* or repeat your stack */
  opacity: 1;                /* fix reduced opacity in Firefox */
}
body, p, ul, ol, a {
    font-weight: 400;
}
/* Optional: Specific heading styles */
h1 {
    font-size: 2.5em;
    line-height: 1.2;
}
h2 {
    font-size: 2em;
    line-height: 1.3;
}
h3 {
    font-size: 1.75em;
    line-height: 1.4;
}
h4 {
    font-size: 1.5em;
    line-height: 1.4;
}


/* Theme colours */
:root {
  /* Dark green */
  --dark-green: #0a3d2e;
  --dark-green-rgb: 10, 61, 46;

  /* Main theme green */
  --green: #00ab52;
  --green-rgb: 0, 171, 82;

  /* Pink */
  --pink: #ffacff;
  --pink-rgb: 255, 172, 255;

  /* Yellow */
  --yellow: #ffe42d;
  --yellow-rgb: 255, 228, 45;

  /* Orange */
  --orange: #ff5414;
  --orange-rgb: 255, 84, 20;

  /* Light grey */
  --light-grey: #f3f3eb;
  --light-grey-rgb: 243, 243, 235;
	
  /* Light green */
  --light-green: #e8f1ec;
  --light-green-rgb: 91, 95, 93;
}



/* Cursor selection colours */
::-moz-selection {background: #eb90eb; color: black;}
::selection {background: #eb90eb; color: black;}


/* Scroll to top button */
.et_pb_scroll_top.et-visible, .et_pb_scroll_top.et-hidden {
	background: var(--green);
    border-top-left-radius: 50px;
    border-bottom-left-radius: 50px;
	border: 3px solid white;
    border-right: none;
	bottom: 155px;
}


/* Mobile menu width & colours */
ul.et_mobile_menu {
	max-width: 300px;
	left: auto;
	right: 0;
}
/* Menu submenu dropdown typography */
header .et_pb_menu .sub-menu li.menu-item a {
	text-transform: none;
	padding: 0 0 15px 0;
	line-height: 1.4em;
}
/* Conform parent and childless mobile menu items */
header #menusmartphone .et_mobile_menu li.menu-item-has-children>a {
	background-color: #fff;
}

/* Main menu search */
.et_pb_menu__close-search-button, .et_pb_menu__search input, .et_pb_menu__search input::placeholder, .et_pb_menu__search .et_pb_menu__search-form .et_pb_menu__search-input {
	color: var(--dark-green) !important;
}
.et_pb_menu .et_pb_menu__search-container {
	left: auto;
	max-width: 700px;
	right: 0;
}
.et_pb_menu .et_pb_menu__search-form, .et_pb_fullwidth_menu .et_pb_menu__search-form {
    padding-left: 5px;
}


/* Fix header on page load */
header .et_pb_section {
	padding: 0;
	background: #f3f3eb;
}
/*header .et_pb_row {
	width: 1200px;
}*/
header .et_pb_row_0_tb_header.et_pb_row {
	padding: 4vh 0;
}
header .et_pb_menu__logo {
	max-width: 180px;
}
.et-db #et-boc header .et_pb_menu ul li a {
	font-size: 17px;
	font-weight: 600;
	color: black;
}
header .et_pb_menu_0_tb_header.et_pb_menu ul li.current-menu-item a {
	color: var(--green) !important;
}
header .et_pb_menu__logo img {
    opacity: 1 !important;
    animation: none !important;
}
/* Hide main menu version by device size */
@media all and (max-width: 767px) {
	#menudesktop {
		display: none;
	}
}
@media all and (min-width: 768px) {
	#menusmartphone {
		display: none;
	}
}
	

/* Fix header SVG logo display on Firefox */
.et_pb_menu__logo {
	width: 100%;
}


/* Trussell underline */
.trus-underline {
  position: relative; /* To position the pseudo-element relative to the text */
  display: inline-block; /* Ensure the text stays inline and prevents wrapping */
  white-space: nowrap; /* Prevent the text from wrapping */
  color: var(--green); /* Set the text colour to match the underline */
  z-index: 1; /* Ensure the text stays above the underline */
}
.trus-underline::after {
  content: "";
  position: absolute;
  bottom: -10px; /* Position the underline 2px below the text baseline */
  left: 0; /* Start the underline at the left edge of the parent */
  right: 0; /* Extend the underline to the right edge of the parent */
  height: 30px; /* Match the height of the underline */
  background: url('/wp-content/uploads/2025/01/Green-line.svg') no-repeat;
  background-size: 100% auto; /* Stretch the SVG to fill the width while maintaining its aspect ratio */
  background-position: bottom; /* Align the SVG to the bottom of the pseudo-element */
  z-index: -1; /* Place the underline visually below the text */
}
/* Thinner underline */
.trus-underline-thin {
  position: relative; /* To position the pseudo-element relative to the text */
  display: inline-block; /* Ensure the text stays inline and prevents wrapping */
  white-space: nowrap; /* Prevent the text from wrapping */
  color: var(--green); /* Set the text colour to match the underline */
  z-index: 1; /* Ensure the text stays above the underline */
}
.trus-underline-thin::after {
  content: "";
  position: absolute;
  bottom: -3px; /* Position the underline 2px below the text baseline */
  left: 0; /* Start the underline at the left edge of the parent */
  right: 0; /* Extend the underline to the right edge of the parent */
  height: 30px; /* Match the height of the underline */
  background: url('/wp-content/uploads/2025/01/Green-line-thin.svg') no-repeat;
  background-size: 100% auto; /* Stretch the SVG to fill the width while maintaining its aspect ratio */
  background-position: bottom; /* Align the SVG to the bottom of the pseudo-element */
  z-index: -1; /* Place the underline visually below the text */
}


/* Animated hover underline for links */
#et-main-area a:not(.trus-underline):not(.et_pb_button):not(h1 a):not(h2 a):not(h3 a):not(h4 a):not(h5 a):not(h6 a):not(.et_pb_video a):not(.et_pb_social_media_follow):not(.wp-block-button):not(.krystal):not(.et_pb_social_media_follow a):not(.wp-block-button a):not(.krystal a) {
    position: relative;
    text-decoration: none;
}
#et-main-area a:not(.trus-underline):not(.et_pb_button):not(h1 a):not(h2 a):not(h3 a):not(h4 a):not(h5 a):not(h6 a):not(.et_pb_video a):not(.et_pb_social_media_follow):not(.wp-block-button):not(.krystal):not(.et_pb_social_media_follow a):not(.wp-block-button a):not(.krystal a)::before,
#et-main-area a:not(.trus-underline):not(.et_pb_button):not(h1 a):not(h2 a):not(h3 a):not(h4 a):not(h5 a):not(h6 a):not(.et_pb_video a):not(.et_pb_social_media_follow):not(.wp-block-button):not(.krystal):not(.et_pb_social_media_follow a):not(.wp-block-button a):not(.krystal a)::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    height: 2px;
    width: 100%;
}
/* State before hover */
#et-main-area a:not(.trus-underline):not(.et_pb_button):not(h1 a):not(h2 a):not(h3 a):not(h4 a):not(h5 a):not(h6 a):not(.et_pb_video a):not(.et_pb_social_media_follow):not(.wp-block-button):not(.krystal):not(.et_pb_social_media_follow a):not(.wp-block-button a):not(.krystal a)::before {
    background-color: color-mix(in srgb, currentColor 20%, transparent);
}
#et-main-area a:not(.trus-underline):not(.et_pb_button):not(h1 a):not(h2 a):not(h3 a):not(h4 a):not(h5 a):not(h6 a):not(.et_pb_video a):not(.et_pb_social_media_follow):not(.wp-block-button):not(.krystal):not(.et_pb_social_media_follow a):not(.wp-block-button a):not(.krystal a)::after {
    background-color: currentColor;
    width: 0;
    transition: width 0.3s ease;
}
#et-main-area a:not(.trus-underline):not(.et_pb_button):not(h1 a):not(h2 a):not(h3 a):not(h4 a):not(h5 a):not(h6 a):not(.et_pb_video a):not(.et_pb_social_media_follow):not(.wp-block-button):not(.krystal):not(.et_pb_social_media_follow a):not(.wp-block-button a):not(.krystal a):hover::after {
    width: 100%;
}

/* Remove underline from translation widget */
.gtranslate_wrapper a {
	color: white;
}
.gtranslate_wrapper .gt_white_content a {
	color: black;
}
.gtranslate_wrapper a::before, .gtranslate_wrapper a::after {
	display: none;
}


/* Translation widget in header */
.gt_switcher-popup span:first-of-type {
    display: none;
}
.gt_switcher_wrapper {
    top: 103px !important;
    right: 10px !important;
	transition: top 300ms ease;
}
.gt_switcher_scroll {
    top: 35px !important;
}
/*** Responsive Styles Tablet Only ***/
@media all and (min-width: 768px) and (max-width: 980px) {
	.gt_switcher_wrapper {
		top: 112px !important;
		right: 8% !important;
	}
	.gt_switcher_scroll {
	    top: 33px !important;
	}
}
/*** Responsive Styles Smartphone Only ***/
@media all and (max-width: 767px) {
	.gt_switcher_wrapper {
		top: 94px !important;
		right: 14% !important;
	}
	.gt_switcher_scroll {
	    top: 19px !important;
	}
}
/* Don't print translation widget, recaptcha widget, scroll to top, complianz */
@media print {
	.gtranslate_wrapper, .grecaptcha-badge, .et_pb_scroll_top, .cmplz-manage-consent, #cmplz-cookiebanner-container {
		display: none !important;
	}
}



/* Menu button styling */
.et_pb_menu .et_pb_menu__menu>nav>ul>li.menu-button {
	align-items: center;
}
.et_pb_menu .et_pb_menu__menu>nav>ul>li.menu-button a {
    justify-content: centre; /* Horizontally centre content */
    background-color: var(--orange);
    color: #ffffff !important;
    padding: 15px !important;
    border-radius: 50px;
    transition: all 0.15s ease;
    max-height: 50px;
}
/* Icon before text */
.menu-button a::before {
    content: '';
    background-image: url('/wp-content/uploads/2025/01/Pound-black.svg');
    background-size: 20px 24px;
    width: 20px;
    height: 24px;
    display: inline-block;
    margin-right: 7px;
}
/* Hover effect */
.menu-button a:hover {
    background-color: #ff5414; /* Darker orange on hover */
    transform: scale(1.05);
}
/* Maintain white text when header becomes fixed */
.et-fixed-header #top-menu .menu-button a {
    color: #ffffff !important;
}
/* Fix alignment issue on tablet and mobile (max-width 980px) */
@media (max-width: 980px) {
    .menu-button a {
        padding: 0px 20px 10px 20px !important; /* Adjust padding for smaller screens */
        max-height: none; /* Remove height restriction */
        height: auto; /* Allow dynamic height */
        line-height: normal; /* Reset line-height for proper text alignment */
        font-size: 16px; /* Adjust font size if needed */
    }
    .menu-button a::before {
        margin-right: 7px; /* Keep spacing consistent */
        position: relative; /* Enable manual positioning */
        top: 6px; /* Shift icon down slightly to align with text */
    }
}
/* Text stays black when on donate page */
body.page-id-261 .et_pb_menu_0_tb_header.et_pb_menu ul li.current-menu-item.menu-button a {
	color: black !important;
}


/* Styling for buttons in posts */
.wp-block-buttons {
	margin-bottom: 17px;
}
/* Space after coloured groups in posts */
body.single-post .wp-block-group.has-background + h1,
body.single-post .wp-block-group.has-background + h2,
body.single-post .wp-block-group.has-background + h3,
body.single-post .wp-block-group.has-background + h4,
body.single-post .wp-block-group.has-background + h5,
body.single-post .wp-block-group.has-background + h6,
body.single-post .wp-block-group.has-background + p {
	margin-top: 15px;
}



/* Sidebar menu - One line per item */
#menu-post-categories li {
	width: 100%;
}

/* Tighten spacing under posts */
.et_pb_blog_grid /*.column */ article.et_pb_post {
	margin-bottom: 15px !important;
}
/* Fix margin over blog loop title */
.et_pb_blog article.et_pb_post .et_pb_image_container {
	margin: -20px -20px 20px;
}


/* Table styling */
.et_pb_text table {
  border: 2px solid var(--green);
  border-radius: 4px;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  width: 100%;
  background: white;
  margin-bottom: 20px;
}
.et_pb_text thead {
  background-color: var(--light-green);
}
.et_pb_text th,
.et_pb_text td {
  padding: 15px;
  border-right: 1px solid #717171;
  border-bottom: 1px solid #717171;
}
/* Remove borders from last column */
.et_pb_text td:last-child,
.et_pb_text th:last-child {
  border-right: none;
}
/* Remove bottom border from last row */
.et_pb_text tbody tr:last-child td {
  border-bottom: none;
}
/* Remove top border from header row */
.et_pb_text thead th {
  border-top: none;
}
/* Add vertical borders between rows */
.et_pb_text tr + tr td {
  border-top: 1px solid #717171;
}
@media (max-width: 767px) {
  .et_pb_text table {
    font-size: 0.85em;
  }
  .et_pb_text th,
  .et_pb_text td {
    padding: 12px;
  }
  /* Remove vertical borders on mobile */
  .et_pb_text td {
    border-right: none;
  }
  /* Add horizontal borders between mobile rows */
  .et_pb_text td {
    border-bottom: 1px solid #717171;
  }
}


/*style the wp-pagenavi pagination links*/
.wp-pagenavi a,
.wp-pagenavi span {
	color: #000000;
	background: #f1f3f5;
	font-size: 1em !important;
	line-height: 1em;
	font-weight: bold !important;
	padding: 0.45em 0.8em !important;
	border-radius: 100px;
	transition: all .5s;
}
/*style the wp-pagenavi current page number*/
.wp-pagenavi span.current {
	color: #ffffff !important;
	background: var(--green) !important;
	border-radius: 100px;
}
/*style the wp-pagenavi pagination links on hover*/
.wp-pagenavi a:hover {
	color: #ffffff!important;
	background: var(--green) !important;
}
/*style the wp-pagenavi pages text*/
.wp-pagenavi .pages {
	background: none;
}
/*remove border and center the wp-pagenavi links*/
.wp-pagenavi {
	border-top: none;
	text-align: center;
}

/* Add quotemark icon to blockquotes */
blockquote {
    position: relative;
    background-image: url('/wp-content/uploads/2025/02/open-quote-2.svg');
    background-repeat: no-repeat;
    background-position: 0px top;
    padding-left: 45px;
    background-size: 30px;
}


/* Prevent tile selection when tapped on mobile */
.tile {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
}


/* Selectively turn off gallery animations */
.noanimation .et_pb_gallery_item a {
    pointer-events: none;
    cursor: default;
}
.noanimation .et_pb_gallery_item {
    -webkit-animation: none !important;
    -moz-animation: none !important;
    -o-animation: none !important;
    -ms-animation: none !important;
    animation: none !important;
}


@media (max-width: 980px) {
    .et_pb_gallery.nomargin .et_pb_gallery_item {
        margin: 0 !important;
        padding: 0 !important;
    }
}

@media (max-width: 479px) {
    .et_pb_gallery.nomargin .et_pb_gallery_item {
        margin: 0 !important;
        padding: 0 !important;
    }
}

/* Pound symbol on animated number counter */
.pound .percent-value:before { content:'£';}


/* Custom popup
.custom-popup {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 999999;
    animation: slideUpFade 450ms ease-out 3000ms forwards;
    opacity: 0;
}
@keyframes slideUpFade {
    0% {
        opacity: 0;
        transform: translate(-50%, -47%);
    }
    100% {
        opacity: 1;
        transform: translate(-50%, -50%);
    }
}
.popup-close {
    cursor: pointer;
}*/



/* Better line height on x-large text */
.et_pb_module.et_pb_text span[style*="font-size: x-large"] {
	line-height: 1.3;
}
/**/
.et_pb_map div[role="dialog"] h3 {
	font-size: 20px;
	margin-top: 0 !important;
}


sub, sup {
	font-size: 0.7em;
}

/* Make first paragraph of post bold standfirst */
body.single-post .et_pb_post_content p:first-of-type {
	font-weight: bold;
}


/* Volunteering dashboard login form */
.dashboard-login {
  max-width: 400px;
  margin: 0 auto;
  padding: 20px;
  background: #f9f9f9;
  border-radius: 5px;
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.dashboard-login .form-group {
  margin-bottom: 15px;
}
.dashboard-login label {
  display: block;
  margin-bottom: 5px;
}
.dashboard-login input[type="password"] {
  width: 100%;
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 4px;
}
.dashboard-login .remember-me {
  display: flex;
  align-items: center;
}
.dashboard-login .remember-me input {
  margin-right: 8px;
}
#login-button:disabled {
  opacity: 0.7;
  cursor: wait;
}


.et_pb_posts article {
  margin-bottom: 20px;
}
.et_pb_posts article h2.entry-title {
  padding-bottom: 5px;
}


#docs .et_pb_blurb .et_pb_main_blurb_image {
  width: 15px;
}

/* Hide and show volunteering enquiry form popup */
.volunteer-form-popup {
  display: none;
}
.volunteer-form-popup.popup-is-visible {
  display: flex !important;
}
.volunteer-form-popup .et_pb_contact_field_3 {
  display: none !important;
}
.close-popup {
  position: absolute;
  top: 10px;
  right: 10px;
  cursor: pointer;
  font-size: 24px;
  font-weight: bold;
}


/* Header responsive visibility: Hide mobheader elements on tablet and above, hide deskheader elements on smartphone and below */
/* Hide mobheader elements on tablet and above (980px+) 
@media (min-width: 980px) {
    header .et_pb_module.mobheader {
        display: none;
    }
}
/* Hide deskheader elements on smartphone and below (max 767px)
@media (max-width: 767px) {
    header .et_pb_module.deskheader {
        display: none;
    }
} */


/* Keep menu items visible on all devices instead of hamburger menu */
@media (max-width: 980px) {
    .no-mobile-hamburger .et_pb_menu__menu,
    .no-mobile-hamburger.et_pb_fullwidth_menu .et_pb_menu__menu {
        display: flex !important;
    }
    
    .no-mobile-hamburger .et_mobile_nav_menu {
        display: none !important;
    }
}

/* Printing styles of orgs */
#orgwebsitelink {
	display: none;
}
@media print {
	.no-print {
		display: none !important;
	}
	body.single-organisation #main-content .et_pb_post_title ~ .et_pb_image:first-of-type {
		max-width: 40%;
		float: left;
	}
	html body .et-db #et-boc .et-l .preset--module--divi-post-title--default .et_pb_title_container h1.entry-title {
		font-size: 22px !important;
	}
	#orgwebsitebutton {
		display:none;
	}
	#orgwebsitelink {
		display: block;
	}
}



/* Homepage tight gallery grid, all same size */
.gallery-grid .et_pb_image span.et_pb_image_wrap {
  width: 100%;
}
.gallery-grid .et_pb_image span.et_pb_image_wrap img {
  width: 100%;
  object-fit: cover;
}



/* Hopefully temp menu flex fix while Elegant Themes get their act together */
.et_pb_menu_inner_container {
	--flex-direction: row;
}
.et_pb_menu--style-left_aligned.et_pb_text_align_right .et_pb_menu__wrap {
	justify-content: flex-end;
}


/* Donorbox donation form */
.donorbox-form .et_pb_code_inner iframe {
	height: 1230px;
}