.elementor-2937 .elementor-element.elementor-element-26627863{--display:flex;--justify-content:center;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:48px;--padding-bottom:48px;--padding-left:48px;--padding-right:48px;}.elementor-2937 .elementor-element.elementor-element-26627863:not(.elementor-motion-effects-element-type-background), .elementor-2937 .elementor-element.elementor-element-26627863 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-4d7419a );}.elementor-2937 .elementor-element.elementor-element-1c3d591{--display:flex;--align-items:center;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-2937 .elementor-element.elementor-element-1c3d591.e-con{--align-self:center;}.elementor-widget-image .widget-image-caption{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-2937 .elementor-element.elementor-element-e84015f img{width:auto;height:152px;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-2937 .elementor-element.elementor-element-5e571f5 > .elementor-widget-container{margin:0px 0px 16px 0px;padding:0px 0px 0px 0px;}.elementor-2937 .elementor-element.elementor-element-5e571f5.elementor-element{--align-self:center;}.elementor-2937 .elementor-element.elementor-element-5e571f5{text-align:center;}.elementor-2937 .elementor-element.elementor-element-5e571f5 .elementor-heading-title{font-family:"Arial", Sans-serif;font-size:20px;font-weight:600;line-height:28px;color:var( --e-global-color-d838979 );}.elementor-widget-search{--e-search-input-color:var( --e-global-color-text );}.elementor-widget-search.e-focus{--e-search-input-color:var( --e-global-color-text );}.elementor-widget-search .elementor-pagination{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );}.elementor-2937 .elementor-element.elementor-element-1177354 .e-search-submit{background-color:var( --e-global-color-ae9bf88 );border-style:none;}.elementor-2937 .elementor-element.elementor-element-1177354 .e-search-submit:hover{background-color:var( --e-global-color-deff354 );}.elementor-2937 .elementor-element.elementor-element-1177354{width:var( --container-widget-width, 90% );max-width:90%;--container-widget-width:90%;--container-widget-flex-grow:0;--e-search-icon-label-color:var( --e-global-color-text );--e-search-submit-margin-inline-start:0px;--e-search-submit-color:var( --e-global-color-text );}.elementor-2937 .elementor-element.elementor-element-1177354.elementor-element{--align-self:center;--flex-grow:0;--flex-shrink:1;}.elementor-2937 .elementor-element.elementor-element-727df55{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-widget-theme-post-content{color:var( --e-global-color-text );font-family:var( --e-global-typography-text-font-family ), Sans-serif;font-weight:var( --e-global-typography-text-font-weight );}.elementor-2937 .elementor-element.elementor-element-2fceb10 > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}@media(max-width:1024px){.elementor-2937 .elementor-element.elementor-element-5e571f5{text-align:center;}}@media(max-width:767px){.elementor-2937 .elementor-element.elementor-element-5e571f5 .elementor-heading-title{font-size:16px;}}/* Start custom CSS for search, class: .elementor-element-1177354 *//* --- Glow Effect Behind '#search-results-bg' Container (Seamless, Continuous Loop) --- */

/* Target the main search results container */
#search-form {
    position: relative !important; /* Essential for positioning the pseudo-element behind it */
    overflow: hidden !important;   /* Ensures the glow is contained within its bounds */
    z-index: 1 !important;         /* Ensures the content inside #search-results-bg is above the glow */
    overflow: visible !important;
    /* IMPORTANT: For the glow to be visible *behind* this container,
       #search-results-bg must have a transparent or semi-transparent background.
       If it has a solid, opaque background, the glow will be largely obscured.
       Temporarily setting it to transparent for debugging. Adjust as needed. */
    background-color: transparent !important;
    /* OR: background-color: rgba(252, 252, 252, 0.8) !important; /* Example semi-transparent white */

    /* Keep your existing padding, border, shadow, etc. for the content area */
}

/* The pseudo-element creating the diffused glow effect */
#search-form::before {
    content: '' !important; /* Required for pseudo-elements */
    position: absolute !important;

    /* These values control how much the glow extends beyond the container's edges.
       -20px means it extends 20px outwards on all sides. */
    inset: -20px !important; /* Adjust: Larger negative value for wider glow, smaller for tighter */

    border-radius: inherit !important; /* Inherits the border-radius from #search-results-bg */

    filter: blur(25px) !important;   /* Adjust blur for glow intensity (higher for more diffusion) */
    opacity: 0.7 !important;         /* Initial opacity of the glow */
    z-index: -1 !important;          /* Places this pseudo-element behind the main container */
    transform-origin: center center !important; /* Ensure transform origin is central for scaling */


    /* Define the radial gradient with colors from your spectrum image */
    background-image: radial-gradient(
        circle farthest-corner at center,
        #FFFF00, /* Yellow */
        #FFA500, /* Orange */
        #FF0000, /* Red */
        #800080, /* Purple */
        #0000FF, /* Blue */
        #008000, /* Green */
        #FFFF00  /* Yellow (to seamlessly loop) */
    ) !important;

    /* Make the background size larger for animated movement */
    background-size: 200% 200% !important;

    /* Apply the animation to the glow */
    /* *** KEY CHANGE: Removed 'alternate' keyword *** */
    animation: spectrum-glow-behind 5s infinite linear !important; /* Now continuously goes forward */
}

/* Keyframes for the glowing animation */
@keyframes spectrum-glow-behind {
    0% {
        background-position: 0% 50%; /* Start position of the gradient */
        transform: scale(0.95); /* Subtle scale for a pulsating effect */
        opacity: 0.7; /* Starting opacity */
    }
    50% {
        background-position: 100% 50%; /* End position of the gradient (shifts the gradient) */
        transform: scale(1.05); /* Peak scale */
        opacity: 0.9; /* Peak opacity */
    }
    100% {
        /* When 'alternate' is removed, the animation will jump from 100% back to 0% to restart.
           To make the background-position loop seamless, the 100% state must match the 0% state
           visually. Since background-size is 200% and we're moving it 100% of its size,
           it effectively loops. */
        background-position: 200% 50%; /* Go beyond 100% to ensure smooth loop, effectively resetting */
        transform: scale(0.95); /* Return to starting scale */
        opacity: 0.7; /* Return to starting opacity */
    }
}

/* Optional: Enhance the glow on hover for interactivity

    animation-play-state: paused !important; /* Pause the continuous animation on hover */
#search-form:hover::before {
    /* To make hover work smoothly with a continuous animation,
       it's often best to pause the main animation and apply hover-specific transforms. */
    
    /* Apply direct transform/opacity for hover. */
    transform: scale(1.1) !important; /* Make it slightly larger on hover */
    opacity: 1 !important; /* More intense glow on hover */
    
    /* Smooth transition for the hover effects */
    transition: all 0.3s ease-in-out !important;
}

/* --- Ensure '.rag-content-display-area' itself is properly layered --- */
.rag-content-display-area {
    z-index: 2 !important; /* Can be higher than parent if needed for specific overlaps */
    position: relative !important; /* Important if it contains absolutely positioned children */
}







/* 1) Wrapper & form layout */
.elementor-widget-container .e-search {
  width: 100%; /* Adjust to be wide but not overflow, e.g., 90% */
  /*max-width: 1500px; /* adjust as needed, ensures it starts wider */
  margin: 0 auto; /* center in its parent */
}
.elementor-widget-container .e-search-form {
  display: flex; /* Keep flex for inline layout */
  flex-wrap: nowrap; /* Prevent wrapping onto next line */
  align-items: flex-end; /* Align items to the bottom, so button sits at the bottom if input expands */
  width: 100%; /* Ensure it fills its parent container, .e-search */
}

/* 2) Input wrapper (for optional clear icon positioning) */
.elementor-widget-container .e-search-input-wrapper {
  position: relative;
  flex: 1 1 auto; /* Allow input wrapper to grow and shrink to fill available space */
  min-width: 0; /* Allow input to shrink if needed within flex context */
}

/* 3) Search input */
.elementor-widget-container .e-search-input {
  /*
   * IMPORTANT: This styling is designed for a <textarea> HTML element.
   * If your Elementor search input is an <input type="text">,
   * it will not auto-expand vertically regardless of these CSS properties,
   * as <input type="text"> is fundamentally a single-line element.
   * You may need to change the HTML element type in Elementor's settings
   * or use a custom HTML widget to use a <textarea> tag directly.
   */
  width: 100%; /* Make it fill its parent .e-search-input-wrapper */
  padding: 0.5rem 0.75rem; /* Padding for the input field */
  font-size: 1rem; /* Base font size */
  line-height: 1.5; /* Line height for text */
  color: #495057;
  background-color: #fff;
  border: 1px solid #ced4da;
  /* Adjust border-radius for inline button layout: rounded left, straight right */
  border-radius: 0.375rem 0 0 0.375rem; 
  
  /* Auto-expand and shrink vertically as text is entered/deleted */
  min-height: 2.5rem; /* Starting height (e.g., for a single line of text) */
  height: auto; /* Allows height to adjust automatically based on content */
  overflow-y: hidden; /* Hides vertical scrollbar initially; content expands height */
  
  resize: vertical; /* Allow manual vertical resizing by the user */

  box-sizing: border-box; /* Include padding and border in the element's total width and height */
  transition: border-color .15s ease-in-out,
              box-shadow      .15s ease-in-out;
  vertical-align: top; /* Aligns text to the top in the input box */
  
  /* Important for text wrapping in a textarea-like input */
  white-space: pre-wrap; /* Preserve whitespace and break lines where necessary */
  word-break: break-word; /* Break words that are too long to fit */
}

/* 3a) Focus state */
.elementor-widget-container .e-search-input:focus {
  border-color: #86b7fe;
  outline: none;
  box-shadow: 0 0 0 .2rem rgba(13,110,253,.25);
}

/* 4) Clear-icon (optional) */
.elementor-widget-container .e-search-input-wrapper .e-fas-times {
  position: absolute;
  right: 0.75rem; /* Position to the right inside the input wrapper */
  top: 50%; /* Center vertically within the input's current height */
  transform: translateY(-50%);
  width: 1rem; height: 1rem;
  cursor: pointer;
  fill: #6c757d;
  display: none; /* toggle via JS when there’s text */
}

/* 5) Submit button */
.elementor-widget-container .e-search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  font-size: 1rem;
  line-height: 1.5;
  color: #fff;
  background-color: #0d6efd;
  border: 1px solid #0d6efd;
  border-radius: 0 0.375rem 0.375rem 0;
  margin-left: -1px; 
  cursor: pointer;
  transition: background-color .15s ease-in-out,
              border-color    .15s ease-in-out,
              box-shadow      .15s ease-in-out;
  
  /* Make button stretch vertically to match the input's height if the input grows */
  align-self: stretch; 
}
/* 5) Submit button */
.elementor-widget-container .e-search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  font-size: 1rem;
  line-height: 1.5;
  color: #fff;
  background-color: #0d6efd;
  border: 1px solid #0d6efd;
  border-radius: 0 0.375rem 0.375rem 0;
  margin-left: -1px; 
  cursor: pointer;
  transition: background-color .15s ease-in-out,
              border-color    .15s ease-in-out,
              box-shadow      .15s ease-in-out;
  
  /* Make button stretch vertically to match the input's height if the input grows */
  align-self: stretch; 
}


/* 5a) Hover/Focus */
.elementor-widget-container .e-search-submit:hover,
.elementor-widget-container .e-search-submit:focus {
  background-color: #025ce2;
  border-color: #025ce2;
  box-shadow: 0 0 0 .2rem rgba(13,110,253,.5);
}

/* 6) Responsive: stack on small screens */
@media (max-width: 576px) {
  .elementor-widget-container .e-search-form {
    flex-direction: column;
  }
  .elementor-widget-container .e-search-input {
    border-radius: 0.375rem;
    border-right: 1px solid #ced4da;
    margin-bottom: 0.5rem;
  }
  .elementor-widget-container .e-search-submit {
    width: 100%;
    border-radius: 0.375rem;
  }
}


/* BUTTON: mimic Bootstrap .btn-primary exactly */
.elementor-widget-container .e-search-submit {
    display: inline-flex !important;
    align-items: center !important;
    opacity: 85%;
    justify-content: center !important;
    padding: 0.5rem 1rem !important;
    font-size: 1rem !important;
    line-height: 1.5 !important;
    font-weight: 400 !important;
    color: #fff !important;
    background-color: rgba(13, 110, 253, 0.5) !important;    /* semi-transparent */
    border: 1px solid rgba(13, 110, 253, 0.5) !important;     /* match transparency */
    border-radius: 0 0.375rem 0.375rem 0 !important;
    cursor: pointer !important;
    text-align: center !important;
    vertical-align: middle !important;
    user-select: none !important;
    transition:
      color .15s ease-in-out !important,
      background-color .15s ease-in-out !important,
      border-color .15s ease-in-out !important,
      box-shadow .15s ease-in-out !important;
    height: calc( (1em * 1.5) + (0.5rem * 2) ) !important; /* match input height */
    margin: 0 !important;
}

/* Hover / focus */
.elementor-widget-container .e-search-submit:hover,
.elementor-widget-container .e-search-submit:focus {
    background-color: #025ce2 !important;
    border-color: #025ce2 !important;
    box-shadow: 0 0 0 .2rem rgba(13,110,253,.5) !important;
    outline: none !important;
}

/* Active / pressed */
.elementor-widget-container .e-search-submit:active {
    background-color: #024ecb !important;
    border-color: #024ecb !important;
    box-shadow: 0 0 0 .2rem rgba(13,110,253,.75) inset !important;
}

/* Disabled state */
.elementor-widget-container .e-search-submit:disabled,
.elementor-widget-container .e-search-submit.disabled {
    opacity: .65 !important;
    pointer-events: none !important;
}

/* 1) Make the form stretch its children to the same height */
.elementor-widget-container .e-search-form {
  align-items: stretch !important;
}

/* 2) Switch both input and button to border-box so height includes padding & border */
.elementor-widget-container .e-search-input,
.elementor-widget-container .e-search-submit {
  box-sizing: border-box !important;
}

/* 3) Remove the fixed height on the button—let its padding drive its size */
.elementor-widget-container .e-search-submit {
  height: auto !important;
  padding-top:    0.5rem !important;
  padding-bottom: 0.5rem !important;
}/* End custom CSS */