/*
	Theme Name: Hello Elementor
	Theme URI: https://elementor.com/hello-theme/?utm_source=wp-themes&utm_campaign=theme-uri&utm_medium=wp-dash
	Description: Hello Elementor is a lightweight and minimalist WordPress theme that was built specifically to work seamlessly with the Elementor site builder plugin. The theme is free, open-source, and designed for users who want a flexible, easy-to-use, and customizable website. The theme, which is optimized for performance, provides a solid foundation for users to build their own unique designs using the Elementor drag-and-drop site builder. Its simplicity and flexibility make it a great choice for both beginners and experienced Web Creators.
	Author: Elementor Team
	Author URI: https://elementor.com/?utm_source=wp-themes&utm_campaign=author-uri&utm_medium=wp-dash
	Version: 3.4.5
	Stable tag: 3.4.5
	Requires at least: 6.0
	Tested up to: 6.8
	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-elementor
	Tags: accessibility-ready, flexible-header, custom-colors, custom-menu, custom-logo, featured-images, rtl-language-support, threaded-comments, translation-ready,
*/

/********************
 HD Code - Elementor Link Underline
 *******************/

.elementor-widget-text-editor a {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.elementor-widget-text-editor a:hover {
    text-decoration: none;
    text-underline-offset: 2px;
}

/********************
 HD Code - Skiplink Visibility Helper
 *******************/

a:-webkit-any-link:focus-visible {
    outline-offset: 4px;
}

:focus-visible {
    outline: -webkit-focus-ring-color auto 2px;
}

a.skip-link screen-reader-text {
    background-color: white;
}

/********************
 HD Code - Focus Helper
 *******************/

a:-webkit-any-link:focus-visible {
    outline-offset: 4px;
}

:focus-visible {
    outline: -webkit-focus-ring-color auto 3px;
}


/********************
 HD Code - Squirckle Button Global
 *******************/

/* === SQUIRCLE BUTTON (global, with clipped hit-area + focus) === */
:root{
    --squircle-mask: url('/wp-content/uploads/Button-Shape.svg'); /* your hosted shape */
    --focus-ring-color: #1E66FF;                                   /* tweak to brand if desired */
}

/* Apply to Elementor Button anchors inside a .squircle-btn wrapper */
.squircle-btn .elementor-button,
.squircle-btn a.elementor-button,
.squircle-btn .elementor-button-link{
    /* Let Elementor control width/height. If you want 1:1 shape, add aspect-ratio: 320/104; */
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;

    /* Visual shape (paint) */
    -webkit-mask: var(--squircle-mask) center/100% 100% no-repeat;
    mask: var(--squircle-mask) center/100% 100% no-repeat;

    /* Hit-test shape (the fix): click/touch area follows the curve */
    -webkit-clip-path: url(#squircle-obb);
    clip-path: url(#squircle-obb);

    /* Keep any focus halo from being clipped by parents */
    overflow: visible;
    z-index: 0;
    transition: filter .18s ease, transform .05s ease;
    box-shadow: 0 6px 18px rgba(0,0,0,.10);
}

/* Optional: inner breathing room for the label */
.squircle-btn .elementor-button .elementor-button-content-wrapper{ padding: 0 1.1rem; }

/* Hover/active (colors set in Elementor controls) */
.squircle-btn .elementor-button:hover{ filter: brightness(1.06); }
.squircle-btn .elementor-button:active{ transform: translateY(1px); }

/* ---------- Accessible keyboard focus ---------- */
/* Keep default box outline off, we’ll draw our own */
.squircle-btn .elementor-button:focus{ outline: none; }
.squircle-btn .elementor-button:focus:not(:focus-visible){ outline: none; }

/* Chrome-safe, shape-following halo: draw it on the wrapper using :has */
.squircle-btn{ position: relative; isolation: isolate; } /* new stacking context, safer halo */
.squircle-btn:has(.elementor-button:focus-visible)::after{
    content:"";
    position:absolute;
    inset:-4px;                                /* halo thickness outside the shape */
    background: var(--focus-ring-color);
    z-index:-1;                                /* behind the button */
    pointer-events:none;
    /* Follow the squircle curve (scales with wrapper box) */
    -webkit-clip-path: url(#squircle-obb);
    clip-path: url(#squircle-obb);
    /* soft edge */
    filter: blur(1px) opacity(.9);
}

/* Reduced motion respect */
@media (prefers-reduced-motion: reduce){
    .squircle-btn .elementor-button{ transition:none; }
}

/* Graceful fallback if mask support is missing */
@supports not ((mask: none) or (-webkit-mask: none)){
    .squircle-btn .elementor-button{
        -webkit-mask:none; mask:none; border-radius:18px;
        /* clip-path url(#...) usually still works; if not, hit-area will be rectangular */
    }
}



/********************
HD Code - Adjust Header Scroll Issue
********************/

html, body {
    max-width: 100%;
    overflow-x: hidden;
}

.no-mb p {
    margin-bottom: 0 !important;
}

/********************
 HD Code - Hover Animation Cards
 *******************/

.aminate-on-hover {
    transform: translateX(0) translateY(0);
    transition: all 0.3s;
}

.aminate-on-hover:hover{
    transform: translateX(0px) translateY(0px);
    transition: all 0.3s;
}

.aminate-on-hover .animate-slide .elementor-icon{
    transform: rotate(0);
    opacity: 0.0;
    transition: all 0.3s;
}

.aminate-on-hover:hover .animate-slide  .elementor-icon{
    transform: translateX(+20px) translateY(+0px);
    opacity: 1.0;
    transition: all 0.3s;
}

.aminate-on-hover .animate-zoom {
    transform: scale(1);
    transform-origin: left;
    transition: all 0.3s;
}
.aminate-on-hover:hover .animate-zoom {
    transform: scale(1.1);
    transform-origin: left;
    transition: all 0.3s;
}

.aminate-on-hover .animate-peek-a-boo {
    transform: translatey(+146px)
}

.aminate-on-hover:hover .animate-peek-a-boo {
    transform: translatey(+0px)
}

.aninate-on-hover .animate-peek-a-boo-2 {
    transform: translatey(+70px)
}

.aninate-on-hover:hover .animate-peek-a-boo-2 {
    transform: translatey(+20px)
}

.aninate-on-hover .animate-peek-a-boo-2 .elementor-icon {
    opacity: 0;
    transition: opacity 0.4s ease-out;
}

.aninate-on-hover:hover .animate-peek-a-boo-2 .elementor-icon {
    opacity: 1;
}

.animate-on-hover .slide-on-hover {
    transform: translateY(16px);
    transition: transform 0.5s ease;
}

.animate-on-hover:hover .slide-on-hover {
    transform: translateY(0);
}

.animate-on-hover .hover-content {
    position: relative;
    height: 0;
    overflow: hidden;
    transform: translateY(16px);
    transition: opacity 0.5s ease;
    opacity: 0;
}

.animate-on-hover:hover .hover-content {
    height: 100%;
    opacity: 1;
}

/********************
 HD Code Hover Animation Icons
 *******************/

.aminate-icon-on-hover {
    transform: translateX(0) translateY(0);
    transition: all 0.3s;
}

.aminate-icon-on-hover:hover{
    transform: translateX(0px)                translateY(0px);
    transition: all 0.3s;
}

.aminate-icon-on-hover .animate-icon-slide .elementor-icon{
    transform: rotate(0);
    opacity: 0.0;
    transition: all 0.3s;
}

.aminate-icon-on-hover:hover .animate-icon-slide  .elementor-icon{
    transform: translateX(+20px)           translateY(+0px);
    opacity: 1.0;
    transition: all 0.3s;
}

.aminate-icon-on-hover .animate-icon-zoom {
    transform: scale(1);
    transform-origin: left;
    transition: all 0.3s;
}
.aminate-icon-on-hover:hover .animate-icon-zoom {
    transform: scale(1.15);
    transform-origin: left;
    transition: all 0.3s;
}

.aminate-icon-on-hover .animate-icon-zoom-center {
    transform: scale(1);
    transform-origin: center;
    transition: all 0.3s;
}
.aminate-icon-on-hover:hover .animate-icon-zoom-center {
    transform: scale(1.1);
    transform-origin: center;
    transition: all 0.3s;
}

.aminate-icon-on-hover .animate-icon-peek-a-boo {
    transform: translatey(+24px)
}

.aminate-icon-on-hover:hover .animate-icon-peek-a-boo {
    transform: translatey(+0px)
}

/********************
 HD Code - Mega Menu List Sliding Arrow
 *******************/
.menu-with-arrows .elementor-nav-menu .elementor-item::after {
    content: ""; /* no text */
    display: inline-block;
    width: 20px;   /* adjust to match SVG size */
    height: 20px;
    margin-left: 85%;
    background: url("/wp-content/uploads/Right_Red.svg") no-repeat center;
    background-size: contain; /* makes SVG scale nicely */
    vertical-align: middle;
    transition: transform 0.6s ease;
}

.no-mb p {
    margin-bottom: 0;
}

/* Optional hover effect */
.menu-with-arrows .elementor-nav-menu .elementor-item:hover::after {
    transform: translateX(10px);
}

.menu-level-3 .menu-item.menu-item-has-children {
    position: static !important;
}

.menu-level-3 .sub-menu {
    background: transparent;
    width: 100% !important;
    padding-left: 15% !important;
    top: -10px !important;
}

.menu-level-3 .sub-menu a {
    display: block;
    padding: 16px 0;
    background: transparent;
    color: #000;
    font-family: "Audrey Text", sans-serif;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}


.navigation-desktop .e-n-menu-item .e-n-menu-title {
    z-index: 5;
}

.navigation-desktop .e-n-menu-item .e-n-menu-content.e-active {
    height: 445px !important;
    z-index: unset !important;
}

.navigation-desktop .e-n-menu-item .e-n-menu-content .navigation-desktop-wrap {
    height: 100% !important;
}

.navigation .e-n-menu-wrapper {
    top: 0 !important;
}

nav .e-n-menu-item:hover .e-n-menu-title,
nav .e-n-menu-item:hover .e-n-menu-title .e-n-menu-dropdown-icon,
nav .e-n-menu-item:hover .e-n-menu-title span {
    color: #db0007 !important;
}

nav .e-n-menu-item:hover .e-n-menu-title svg {
    fill: #db0007 !important;
}

nav .has-submenu.highlighted svg {
    fill: #FFFDE9 !important;
}


.e-n-menu .current-menu-item .e-n-menu-title-container {
    position: relative;
}

.e-n-menu .current-menu-item .e-n-menu-title-container:after {
    content:'';
    position: absolute;
    bottom: 3px;
    left: 0;
    width: 100%;
    height: 1px;
    background: #db0007;
}

nav .current-menu-item.e-n-menu-item:hover  .e-n-menu-title-container:after {
    background: #db0007;
}

/* POST TYPE CARD HOVER */
.our-story-card .elementor-widget-image {
    height: 257px;
    overflow: hidden;
}

.our-story-card .elementor-widget-image img {
    transform: scale(1);
    transition: transform .3s ease;
}

.our-story-card:hover .elementor-widget-image img {
    transform: scale(1.1);
}

.our-story-card .elementor-icon {
    opacity: 0;
    transition: opacity .3s ease;
}

.our-story-card:hover .elementor-icon {
    opacity: 1;
}

.our-story-card .card-slide-on-hover {
    transition: transform .3s ease;
}

.our-story-card:hover .card-slide-on-hover {
    transform: translateY(-4px);
}


/* Breadcrumbs */
.section-breadcrumbs p {
    margin-bottom: 0;
    display: flex;
    align-items: center;
}

.section-breadcrumbs p .separator {
    display: block;
    width: 8px;
    height: 8px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='5' height='9' viewBox='0 0 5 9' fill='none'%3E%3Cpath d='M1.91272e-06 0.450271L2.00931e-06 8.5505C0.000192745 8.63251 0.0169769 8.7129 0.0485478 8.78301C0.0801188 8.85312 0.12528 8.91031 0.179172 8.9484C0.233064 8.9865 0.293645 9.00406 0.354395 8.99921C0.415144 8.99436 0.473761 8.96727 0.523936 8.92086L4.86501 4.87075C5.045 4.70289 5.045 4.29878 4.86501 4.13048L0.523936 0.0803605C0.473866 0.0334804 0.415219 0.00598877 0.354369 0.000872596C0.293518 -0.00424358 0.232791 0.0132114 0.178785 0.051341C0.124779 0.0894706 0.0795589 0.146817 0.0480394 0.217148C0.01652 0.28748 -9.44094e-05 0.368108 1.91272e-06 0.450271Z' fill='black'/%3E%3C/svg%3E");
    background-repeat: no-repeat no-repeat;
    background-position: center center;
    background-size: 8px 8px;
    margin: 0 12px;
}

/* Search and Filter */
.form-search-and-filter {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 45px;
}

.form-search-and-filter .fields label {
    display: block;
    color: #000;
    font-family: "Audrey Text", sans-serif;
    font-size: 18px;
    font-weight: 400;
    line-height: normal;
    margin-bottom: 10px;
}

.form-search-and-filter .fields select,
.form-search-and-filter .fields input[type="search"] {
    border-radius: 8px;
    border: 1px solid #C0B3A3;
    background: #FFF;
    padding: 18px 20px 18px 20px;
    height: 60px;
    outline: none;
}

.form-search-and-filter .fields select {
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="13" height="7" viewBox="0 0 13 7" fill="none"><path d="M11.9696 1.85486e-06L0.629305 9.1067e-07C0.514489 0.00026793 0.401946 0.023766 0.303789 0.067965C0.205632 0.112164 0.125579 0.175391 0.0722453 0.250839C0.018912 0.326288 -0.00568234 0.411102 0.00111163 0.496151C0.0079056 0.5812 0.0458284 0.663264 0.110799 0.733509L5.78096 6.81101C6.01596 7.063 6.58171 7.063 6.81734 6.81101L12.4875 0.73351C12.5531 0.663411 12.5916 0.581306 12.5988 0.496115C12.6059 0.410925 12.5815 0.325907 12.5281 0.250298C12.4747 0.17469 12.3945 0.111382 12.296 0.0672545C12.1975 0.023127 12.0847 -0.000132604 11.9696 1.85486e-06Z" fill="black"/></svg>');
    background-size: 10px 7px;
    background-repeat: no-repeat;
    background-position: 98% 50%;
    appearance: none;
    cursor: pointer;
}

.form-search-and-filter button {
    border-radius: 8px;
    background: #DB0007;
    padding: 12px 24px;

    color: #FFF;
    text-align: center;
    font-family: "Audrey Text", sans-serif;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: 0.32px;
    margin-bottom: 5px;
}

.form-search-and-filter .stories-search,
.form-search-and-filter .stories-program {
    width: 50%;
}

.form-search-and-filter .stories-search {
    position: relative;
}

.form-search-and-filter .stories-search  .icon-search {
    position: absolute;
    bottom: 9px;
    right: 20px;
}

.elementor-button-icon svg {
    width: 24px;
    height: 24px !important;
}

.section-breadcrumbs {
    padding-top: 40px;
}

.section-breadcrumbs a:hover {
    text-decoration: underline !important;
}

.has-accordion .e-con-inner {
    flex-direction: column !important;
}

.has-accordion .e-con-inner > .elementor-element:first-child {
    width: 100%;
}

.three-cols-hover .e-grid > .elementor-element .elementor-widget-icon {
    left: 0;
    transition: .3s all !important;
}

.three-cols-hover .e-grid > a.elementor-element {
    cursor: pointer;
}

.three-cols-hover .e-grid > .elementor-element:hover .elementor-widget-icon {
    left: 10px;
}

body .dialog-lightbox-widget {
    z-index: 999999;
}

.search-results header .site-header {
    width: 100% !important;
    max-width: 100% !important;
    gap: 0;
}

.search-results header .site-header .logo-wrap {
    width: 18% !important;
    max-width: 18% !important;
}

.search-results header .site-header .main-menu-section {
    width: 82% !important;
    max-width: 82% !important;
}

@media( max-width: 1250px ) {
    .navigation-desktop .e-n-menu-item .e-n-menu-content.e-active {
        height: calc( 100vh - 200px ) !important;
    }
}

@media( max-width: 991px ) {
    .form-search-and-filter {
        flex-direction: column;
    }

    .form-search-and-filter .fields {
        width: 100%;
        gap: 20px;
    }

    .form-search-and-filter button {
        margin-top: 20px;
    }

}

@media( max-width: 767px ) {
    .loop-grid .elementor-loop-container {
        grid-auto-rows: auto !important;
    }

    .loop-grid .card-slide-on-hover {
        transform: translateY(0) !important;
    }

    .loop-grid .card-slide-on-hover .elementor-icon {
        opacity: 1;
    }

    .animate-on-hover .hover-content,
    .animate-on-hover:hover .hover-content {
        height: auto;
        opacity: 1;
        transform: translateY(0);
        overflow: visible;
        margin-top: 10px;
    }

    .aninate-on-hover .animate-peek-a-boo-2 {
        transform: translatey(20px);
    }

    .aninate-on-hover .animate-peek-a-boo-2 .elementor-icon {
        opacity: 1;
    }

    .form-search-and-filter {
        gap: 0;
    }

    .our-story-card .elementor-icon {
        opacity: 1 !important;
    }

    .card-slide-on-hover {
        transform: translateY(0) !important;
    }
}

@media( max-width: 580px ) {
    .form-search-and-filter {
        flex-direction: column;
    }

    .form-search-and-filter .fields {
        flex-direction: column;
        width: 100%;
        gap: 0;
    }

    .form-search-and-filter .stories-search, .form-search-and-filter .stories-program {
        width: 100%;
        margin-bottom: 20px;
    }

    .form-search-and-filter button {
        margin-top: 0;
    }

    .section-breadcrumbs {
        display: none;
    }

    .loop-grid-listing .e-loop-item,
    .loop-grid-listing .e-loop-item article {
        height: auto !important;
        margin-bottom: 20px;
    }

    .loop-grid-listing .elementor-grid {
        display: block;
        gap: 0;
    }

}

/* Gravity Forms */
.gform_required_legend {
    display: none;
}

.gform_title {
    font-family: "Audrey Display", sans-serif;
    font-size: 2rem;
    line-height: 1.2em;
    margin-bottom: 2rem;

    #gform_wrapper_1 & {
        display: none;
    }
}

.gform_wrapper.gravity-theme .gform_drop_area {
    background-color: #fff !important;
    border: 2px solid #000 !important;
    border-radius: 4px !important;
}

.gform_button_select_files {
    border: 2px solid #db0007;
    font-family: "Audrey Text", sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #db0007;
    border-radius: 8px;
    padding: 6px 30px;

    &:hover {
        background-color: #db0007;
        color: #fff;
    }
}

.gfield .gfield_label,
.gform_wrapper .gfield .gform-field-label {
    color: #000;
    font-family: "Audrey Text", sans-serif;
    font-size: 18px;
    font-weight: 700;
    line-height: normal;
    padding-bottom: 10px;
    margin-bottom: 0;

    @media( max-width: 580px ) {
        font-size: 15px;
    }
}

.gfield {
    input[type="text"],
    input[type="email"],
    select,
    input[type="tel"] {
        background: #ffffff;
        border: 2px solid #000;
        border-radius: 4px;
        font-family: "Audrey Text", sans-serif;
        font-size: 18px;
        height: 60px;
        outline: none;

        @media( max-width: 580px ) {
            height: 40px;
        }
    }

    textarea {
        background: #ffffff;
        border: 2px solid #000;
        border-radius: 4px;
        font-family: "Audrey Text", sans-serif;
        font-size: 18px;
        height: 120px;
        outline: none;
    }
}

.gform_button {
    background: #db0007;
    font-family: "Audrey Text", sans-serif;
    font-size: 16px;
    font-weight: 400;
    color: #fff;
    border-radius: 8px 8px 8px 8px;
    padding: 6px 30px;
    height: 43px;
    border: 0;
    outline: none;

    &:hover {
        background-color: #91187d !important;
        transition: background-color 0.3s ease-in-out !important;
    }
}

.gfield_validation_message {
    font-size: 12px !important;
    line-height: 12px !important;
    padding: 10px !important;
}

.gform_wrapper.gravity-theme .gfield_error [aria-invalid=true] {
    border: 2px solid #c02b0a;
}

.gform_wrapper.gravity-theme .gfield_required {
    color: inherit !important;
    font-size: inherit !important;
    padding-inline-start: 0 !important;
}
