/*
Theme Name: Hello Biz Child
Theme URI: https://github.com/elementor/hello-biz-child/
Description: Hello Biz Child is a child theme of Hello Biz, created by Elementor team
Author: Elementor Team
Template: hello-biz
Author URI: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash
Version: 1.0.0
Stable tag: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: hello-biz-child
Tags: flexible-header, custom-colors, custom-menu, custom-logo, featured-images, rtl-language-support, threaded-comments, translation-ready, style-variations
*/

/* Add your custom styles here */

body {
  padding-top: 0 !important;
}

a {
  color: #2c8290;
}
a:active,
a:hover {
  color: #99ab9a;
}

.text-foreground {
  color: var(--e-global-color-secondary);
  font-weight: 600;
}

.text-highlight {
  position: relative;
  display: inline;
  z-index: 1;
  background: linear-gradient(to top, #e3f2f4 0.4em, transparent 0);
  border-radius: 0.2em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.text-highlight::after {
  content: "";
  position: absolute;
  bottom: 0.15em;
  left: -0.1em;
  /* right: -0.1em; */
  height: 0.4em;
  background: #e3f2f4;
  border-radius: 0.2em;
  z-index: -1;
}

body:not(.elementor-editor-active) .fade-in-left,
body:not(.elementor-editor-active) .fade-in-right,
body:not(.elementor-editor-active) .fade-in-up {
  opacity: 0;
  will-change: opacity, transform;
  transition-property: transform, opacity;
  transition-duration: 1s, 1s;
  transition-timing-function: ease-out, ease-in;
  transition-delay: 0s, 0.2s; /* transform happens first, opacity lags */
}

body:not(.elementor-editor-active) .fade-in-left {
  transform: translateX(-30vw);
}

body:not(.elementor-editor-active) .fade-in-right {
  transform: translateX(30vw);
}

body:not(.elementor-editor-active) .fade-in-up {
  transform: translateY(30vh);
}

body:not(.elementor-editor-active) .fade-in-left.visible,
body:not(.elementor-editor-active) .fade-in-right.visible {
  opacity: 1;
  transform: translateX(0);
}

body:not(.elementor-editor-active) .fade-in-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Make the label behave like a clickable box */
/* .donation-form .field.radio label {
  display: flex!important;
  align-items: center;
  gap: 1rem;
  line-height: 1.4;
  border: 2px solid #ccc;
  border-radius: 10px;
  padding: 1rem;
  cursor: pointer;
  transition: all 0.2s ease;
  background-color: #fff;
} */

/* Style and align the radio button */
/* .donation-form .field.radio input[type="radio"] {
  flex-shrink: 0;
  margin: 0;              
  transform: scale(1.2); 
  position: relative;   
  top: 0;               
}

.donation-form .field.radio .label::first-line {
  font-weight: 700;
  font-size: 1.25rem;
  color: #2C8290;
}

.donation-form .field.radio label:hover {
  border-color: #2C8290;
  background-color: #f7fafa;
}

.donation-form .field.radio input[type="radio"]:checked + .label,
.donation-form .field.radio input[type="radio"]:checked ~ .label {
  color: #1a5a63;
}

.donation-form .field.radio input[type="radio"]:checked:focus-visible + .label,
.donation-form .field.radio input[type="radio"]:checked:focus-visible ~ .label {
  outline: 2px solid #2C8290;
}

.donation-form .field.radio input[type="radio"]:checked:not(:disabled) {
  accent-color: #2C8290; 
}

.donation-form .field.radio input[type="radio"]:checked:focus-visible,
.donation-form .field.radio input[type="radio"]:checked {
  outline: none;
}

.donation-form .field.radio input[type="radio"]:checked:focus-visible + .label,
.donation-form .field.radio input[type="radio"]:checked:focus-visible ~ .label {
  outline: none;
}

.donation-form .field.radio input[type="radio"]:checked:checked ~ .label,
.donation-form .field.radio input[type="radio"]:checked + .label {
  color: #1a5a63;
}

.donation-form .field.radio input[type="radio"]:checked:checked ~ .label,
.donation-form .field.radio input[type="radio"]:checked + .label,
.donation-form .field.radio input[type="radio"]:checked:checked ~ label,
.donation-form .field.radio input[type="radio"]:checked + label {
  border-color: #2C8290!important;
  background-color: #f7fafa!important;
}

.donation-form .field.radio label:has(input[type="radio"]:checked) {
  border-color: #2C8290 !important;
  background-color: #f7fafa !important;
  color: #1a5a63;
} */

/* Make all donation levels line up horizontally */
.donation-form .section.donation,
.donation-form .section.payment {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: flex-start;
}
.donation-form .section.donation .field,
.donation-form .section.payment .field {
  padding: 0px !important;
}

.donation-form h3 {
  grid-column: 1 / -1; /* span from first column to last */
  width: 100%;
  margin-bottom: 10px;
  margin-top: 30px;
}

.donation-form .field.radio input,
.donation-form .field.checkbox input {
  margin-right: 5px;
}

/* Each donation option becomes a button */
.donation-form .field.radio label {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #ccc;
  border-radius: 8px;
  padding: 0.75rem 1.25rem;
  min-width: 90px;
  cursor: pointer;
  transition: all 0.2s ease;
  background-color: #fff;
  text-align: center;
  font-weight: 600;
  white-space: nowrap;
}

/* Hide long text (handled by JS) */
.donation-form .section.donation .field.radio .label {
  display: none;
}

/* Hover and selected styles */
.donation-form .field.radio label:hover {
  border-color: #2c8290;
  background-color: #f7fafa;
}

.donation-form .field.radio label:has(input:checked) {
  border-color: #2c8290;
  background-color: #f7fafa;
  color: #1a5a63;
}
.donation-form .field.radio input[type="radio"]:checked:not(:disabled) {
  accent-color: #2c8290;
}

/* Keep "Other amount" text box from squishing */
.donation-form .field.text.other-amount {
  flex: 1 1 100%;
  margin-top: 0.5rem;
}

/* Description box appended via JS */
.donation-form .donation-description {
  width: 100%;
  margin-top: 1rem;
  padding: 1rem;
  border: 2px solid #2c8290;
  border-radius: 8px;
  background: #f7fafa;
  min-height: 60px;
  line-height: 1.4;
  font-size: 1rem;
}

/* Style the "Other" box like the regular buttons */
/* .section.donation .field.radio.other-option label {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
} */

/* Show it when the "Other" radio is selected */
.donation-form
  .section.donation
  .field.radio.other-option
  input[type="radio"]:checked
  ~ .field.text.other-amount,
.donation-form
  .section.donation
  .field.radio.other-option
  label:has(input:checked)
  + .field.text.other-amount {
  display: block;
}

/* Style the "Other amount" input to look like the description box */
.donation-form .section.donation .field.text.other-amount {
  display: none;
  margin-top: 1rem;
  padding: 9px;
  border: 2px solid #2c8290;
  border-radius: 8px;
  background: #f7fafa;
  text-align: center;
  transition: all 0.2s ease;
}

/* Style the input inside it */
.donation-form .section.donation .field.text.other-amount input {
  width: 120px;
  max-width: 100%;
  border: none;
  background: transparent;
  font-size: 1.25rem;
  font-weight: 600;
  color: #1a5a63;
  text-align: center;
  outline: none;
}

/* When focused, give a slight glow or color accent */
.donation-form .section.donation .field.text.other-amount input:focus {
  background: #fff;
  box-shadow: 0 0 0 3px rgba(44, 130, 144, 0.2);
  border-radius: 6px;
}

/* Hide the "Other amount" box by default */
.donation-form .section.donation .field.text.other-amount {
  display: none;
}

/* Stack the remaining fields full width */
.donation-form .section.payment .field:not(.radio):not(.sample-check) {
  flex: 1 1 100%;
}

/* Make the first 5 radio buttons flex across */
.donation-form .section.payment .field.radio:nth-child(-n + 5) {
  min-width: 120px;
}

/* Make the sample check image full width below radios */
.donation-form .section.payment .sample-check {
  flex: 1 1 100%;
  max-width: 500px;
  margin-top: 10px;
  width: 100%;
}
.donation-form .section.payment .field.payment {
  width: 100%;
}
.donation-form .section.payment .field.payment #card-element {
  max-width: none !important;
}

.donation-form .btn-group {
  margin-top: 10px;
}
.donation-form .btn-group .btn {
  padding: 10px 20px;
  background-color: #2c8290;
  color: #fff;
}

/* Apply full-width inputs, but exclude inputs inside .section.payment */
.donation-form .section:not(.payment) input[type="text"],
.donation-form .section:not(.payment) input[type="email"],
.donation-form .section:not(.payment) input[type="tel"],
.donation-form .section:not(.payment) input[type="number"],
.donation-form .section:not(.payment) textarea {
  max-width: none !important;
  width: 100% !important;
}
.donation-form .section.contact {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px; /* space between columns and rows */
  align-items: start;
}

@media (max-width: 768px) {
  .donation-form .section.contact {
    grid-template-columns: 1fr;
  }
}

.donation-form .section.contact .field {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.donation-form .section.contact label {
  font-weight: 600;
  margin-bottom: 5px;
}

.grecaptcha-badge {
  visibility: hidden !important;
}

/* .credits {
	padding-top: 5px;
} */
.credits p {
  line-height: 20px;
}

@media only screen and (min-width: 768px) {
  .credits p {
    text-align: right;
  }
}

.credits p a {
  color: #fff !important;
}

.credits p a:hover {
  color: #99ab9a !important;
}

.credits a .plum {
  background-image: url(./assets/images/plum-logo-sm.png);
  background-repeat: no-repeat;
  background-size: 100%;
  -webkit-background-size: 100%;
  -moz-background-size: 100%;
  -o-background-size: 100%;
  height: 20px;
  margin: 1px 3px 0;
  width: 20px;
  display: inline-block;
  -webkit-transform-origin: 50% 100%;
  transform-origin: 50% 100%;
  -webkit-transition: color 0.3s;
  transition: color 0.3s;
  position: absolute;
}

.credits a:hover .plum {
  animation-name: plumbounce;
  animation-duration: 0.5s;
  animation-timing-function: linear;
  animation-iteration-count: 1;

  -moz-animation-name: plumbounce;
  -moz-animation-duration: 0.5s;
  -moz-animation-timing-function: linear;
  -moz-animation-iteration-count: 1;

  -webkit-animation-name: plumbounce;
  -webkit-animation-duration: 0.5s;
  -webkit-animation-timing-function: linear;
  -webkit-animation-iteration-count: 1;
}

@-webkit-keyframes plumbounce {
  45% {
    height: 15px;
    margin-top: 6px;
  }

  55% {
    height: 15px;
    margin-top: 6px;
  }

  75% {
    height: 25px;
    margin-top: -7px;
  }
}

@-moz-keyframes plumbounce {
  45% {
    height: 15px;
    margin-top: 6px;
  }

  55% {
    height: 15px;
    margin-top: 6px;
  }

  75% {
    height: 25px;
    margin-top: -7px;
  }
}

@keyframes plumbounce {
  45% {
    height: 15px;
    margin-top: 6px;
  }

  55% {
    height: 15px;
    margin-top: 6px;
  }

  75% {
    height: 25px;
    margin-top: -7px;
  }
}
