/* 
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
*/


/*---------------------------------------------------------- */
/*                          BASIC                            */
/*---------------------------------------------------------- */

body{
    display: flex;
    flex-direction: column;
    min-width: 320px;
    min-height: 100svh;
    
    &:has(#wpadminbar){
        min-height: calc(100svh - 2rem);
    }
    
    h1,
    h2,
    h3,
    h4,
    h5,
    h6{
        text-wrap: balance;
        
        @media only screen and (max-width: 576px){
            overflow-wrap: anywhere;
        }
    }
    
    p,
    li{
        text-wrap: pretty;
    }
    
    main{
        flex: 1;
        
        .page-content{
            a{
                text-decoration: none;
            }
        }
    }
    
    .aspect-square,
    .aspect-square img{
        aspect-ratio: 1;
    }
    
    .aspect-portrait,
    .aspect-portrait img{
        aspect-ratio: 9/13.5;
    }
    
    .aspect-landscape,
    .aspect-landscape img{
        aspect-ratio: 16/9;
    }
}

html{
    scroll-padding-top: 150px!important;
}


/*-------------------------------- */
/*              HEADER             */
/*-------------------------------- */

.navbar{
    .nav-logo{
        width: fit-content;
        margin-right: auto;
        
        img{
            width: auto;
            height: 3.65rem;
            object-fit: contain;
            
            @media only screen and (min-width: 576px){
                height: 4rem;
            }
            
            @media only screen and (min-width: 1200px){
                height: 5.5rem;
            }
        }
    }
    
    .nav-menu{
        .jkit-hamburger-menu{
            outline: none;
            
            &:focus{
                color: var(--e-global-color-secondary)!important;
            }
        }
        
        .jkit-menu-wrapper{
            transition: left .6s cubic-bezier(.6,.1,.68,.53), width .6s, background-color .1s .6s, max-width .6s!important;
            
            @media only screen and (min-width: 450px) and (max-width: 1024px){
                box-shadow: 0px 0px 16px -2px rgba(0,0,0, 0.2)!important;
            }
            
            @media only screen and (max-width: 450px){
                max-width: 100%!important;
            }
            
            &.active{
                transition: left .6s cubic-bezier(.6,.1,.68,.53), width .6s, background-color .6s, max-width .6s!important;
            }
            
            .jkit-menu-container{
                @media only screen and (max-width: 1024px){
                    padding-inline: 10px!important;
                }
                
                .jkit-menu{
                    @media only screen and (min-width: 1080px){
                        column-gap: 8px;
                    }
                    
                    > .menu-item.menu-item-has-children{
                        &:has(> a:hover, > a:focus-visible, .sub-menu.dropdown-open){
                            > a {
                                > div:before{
                                    width: 100%;
                                    
                                    @media only screen and (min-width: 1024px){
                                        width: calc(100% - 30px);
                                    }
                                }
                            }
                            
                            > .sub-menu{
                                opacity: 1;
                                visibility: visible;
                            }
                        }
                        
                        > a{
                            position: relative;
                            display: flex!important;
                            column-gap: 4px;
                            padding-inline: 10px;
                            outline: none;
                            cursor: default;
                            
                            @media only screen and (min-width: 1024px){
                                padding-inline: 15px;
                            }
                            
                            > div{
                                @media only screen and (max-width: 1024px){
                                    position: relative;
                                }
                                
                                &:before{
                                    content: "";
                                    position: absolute;
                                    bottom: -8px;
                                    left: 0;
                                    width: 0;
                                    height: 2px;
                                    background-color: var(--e-global-color-secondary);
                                    border-radius: 3.125rem;
                                    transition: width .3s ease;
                                    
                                    @media only screen and (min-width: 1024px){
                                        bottom: 8px;
                                        left: 15px;
                                    }
                                }
                            }
                            
                            i{
                                padding-right: 0!important;
                                
                                @media only screen and (max-width: 1024px){
                                    position: absolute;
                                    right: 10px;
                                    padding: 0!important;
                                }
                            }
                        }
                        
                        > .sub-menu{
                            pointer-events: none;
                            
                            &.dropdown-open{
                                pointer-events: auto;
                            }
                            
                            > .menu-item{
                                &.menu-item-has-children{
                                    > a{
                                        display: flex;
                                        justify-content: space-between;
                                        align-items: center;
                                        column-gap: 4px;
                                        
                                        > i{
                                            font-size: 12px;
                                            rotate: -90deg;
                                        }
                                    }
                                    
                                    > .sub-menu{
                                        translate: 4px;
                                        -webkit-clip-path: inset(-30px -30px -30px 0px);
                                        clip-path: inset(-30px -30px -30px 0px);
                                    }
                                }
                                
                                > a{
                                    outline: none;
                                    
                                    &:focus-visible{
                                        color: var(--e-global-color-secondary);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            
            .jkit-nav-identity-panel{
                display: flex!important;
                justify-content: space-between;
                align-items: center;
                padding-inline: 10px!important;
                
                .jkit-nav-site-title{
                    height: 3.65rem;
                    
                    .jkit-nav-logo{
                        margin: 0!important;
                        padding: 0!important;
                        height: inherit;
                        
                        img{
                            width: auto;
                            height: inherit;
                            object-fit: contain!important;
                        }
                    }
                }
                
                .jkit-close-menu{
                    margin: 0!important;
                    padding: 0!important;
                    width: fit-content;
                    
                    &:focus{
                        color: var(--e-global-color-secondary)!important;
                    }
                }
            }
        }
    }
    
    .nav-cta-btn{
        @media only screen and (min-width: 1140px){
            padding-left: 1rem!important;
        }
        
        .elementor-button{
            padding-inline: 1.5rem!important;
            outline: none!important;
            
            @media only screen and (min-width: 1080px){
                padding-inline: 2.5rem!important;
            }
        }
    }
    
    .nav-text-wrapper{
        width: fit-content;
        outline: none;
        
        &:hover,
        &:focus-visible{
            .nav-text{
                color: var(--e-global-color-secondary);
            }
        }
        
        .nav-text-icon{
            .elementor-icon-wrapper{
                display: flex;
                
                &:before{
                    content: "";
                    position: absolute;
                    padding: 22px;
                    top: 50%;
                    left: 50%;
                    transform: translate(-50%, -50%);
                    background-color: rgba(21, 99, 128, .21);
                    border-radius: 3.125rem;
                }
                
                .elementor-icon{
                    z-index: 1;
                }
            }
        }
        
        .nav-text{
            transition: color .3s ease;
            
            p{
                margin-bottom: 0;
            }
        }
    }
}


/*---------------------------------------------------------- */
/*                          SECTIONS                         */
/*---------------------------------------------------------- */

section{
    &.our-services,
    &.img-text,
    &.text-two-img,
    &.faq{
        &:has(+ .our-services, + .img-text, + .text-two-img, + .faq){
            > .e-con-inner{
                padding-bottom: 2.5rem;
            }
        }
        
        + .our-services,
        + .img-text,
        + .text-two-img,
        + .faq{
            > .e-con-inner{
                padding-top: 2.5rem;
            }
        }
    }
    
    &:not(.hero){
        ul,
        ol{
            display: flex;
            flex-direction: column;
            row-gap: 8px;
            
            &:has(+ *){
                margin-bottom: 1rem;
            }
        }
    }
    
    &.hero{
        --min-height: 300px;
        
        &.big{
            .hero--carousel{
                padding: 80px 10px 60px 10px;
                
                @media only screen and (min-width: 768px){
                    padding-block: 105px;
                }
                
                @media only screen and (min-width: 1024px){
                    padding-block: 160px;
                }
            }
            
            &:not(:has(.hero--carousel)){
                padding: 80px 10px 60px 10px;
                    
                @media only screen and (min-width: 768px){
                    padding-block: 105px;
                }
                
                @media only screen and (min-width: 1024px){
                    padding-block: 160px;
                }
            }
        }
        
        > .e-con-inner{
            > div{
                &.hero-breadcrumbs{
                    > .elementor-widget-shortcode{
                        width: 100%;
                        
                        .breadcrumb{
                            display: flex;
                            flex-wrap: nowrap;
                            white-space: nowrap;
                            padding: 0;
                            width: 100%;
                            min-width: 280px;
                            overflow: hidden;
                            
                            @media only screen and (min-width: 768px){
                                justify-content: flex-end;
                            }
                            
                            .breadcrumb-item{
                                width: auto;
                                max-width: 30%;
                                white-space: nowrap;
                                overflow: hidden;
                                text-overflow: ellipsis;
                                font-family: var(--e-global-typography-2d4631e-font-family), Sans-serif;
                                font-size: var(--e-global-typography-2d4631e-font-size);
                                font-weight: var(--e-global-typography-2d4631e-font-weight);
                                line-height: 1.4;
                                
                                @media only screen and (min-width: 768px){
                                    max-width: 100%;
                                }
                                
                                + &{
                                    padding-left: 1rem;
                                    
                                    @media only screen and (min-width: 768px){
                                        padding-left: 1.5rem;
                                    }
                                    
                                    &:before{
                                        content: "\e925";
                                        padding-right: 1rem;
                                        float: left;
                                        color: var(--e-global-color-accent);
                                        font-family: jkiticon!important;
                                        font-size: 1.5rem;
                                        line-height: 1;
                                        
                                        @media only screen and (min-width: 768px){
                                            padding-right: 1.5rem;
                                        }
                                    }
                                    
                                }
                              
                                &.active{
                                    max-width: unset;
                                    
                                    @media only screen and (min-width: 768px){
                                        min-width: fit-content;
                                        max-width: 100%;
                                    }
                                }
                                
                                > a{
                                    color: var(--e-global-color-text);
                                    outline: none;
                                    word-break: break-word;
                                    transition: color 0.3s ease;
                                    
                                    &:hover,
                                    &:focus-visible{
                                        color: var(--e-global-color-accent);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    &.our-services{
        > .e-con-inner{
            @media only screen and (min-width: 992px){
                flex-wrap: nowrap;
            }
            
            > .e-grid{
                padding-inline: 10px;
                
                > div{
                    .jkit-icon-box{
                        > .jkit-icon-box-wrapper{
                            @media only screen and (max-width: 1140px){
                                flex-direction: column;
                            }
                            
                            > .icon-box-body{
                                display: flex;
                                flex-direction: column;
                                height: inherit;
                                
                                > .title,
                                > .icon-box-description{
                                    @media only screen and (max-width: 1140px){
                                        margin-left: 0!important;
                                    }
                                }
                                
                                > .title{
                                    overflow-wrap: anywhere;
                                }
                                
                                > .icon-box-button{
                                    margin-top: auto;
                                    
                                    .icon-box-link{
                                        display: flex;
                                        align-items: center;
                                        transition: color 0.3s ease;
                                        
                                        @media only screen and (max-width: 1140px){
                                            margin-left: 0;
                                        }
                                        
                                        &:hover,
                                        &:focus-visible{
                                            &,
                                            i{
                                                color: var(--e-global-color-accent);
                                            }
                                        }
                                        
                                        i{
                                            line-height: 0.8;
                                            transition: color 0.3s ease;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    &.img-text-fw{
        @media only screen and (min-width: 768px){
            display: grid;
            grid-template-columns: minmax(10px, 1fr) repeat(2, minmax(0, calc(1290px / 2))) minmax(10px, 1fr);
        }
        
        > div{
            height: 100%;
            
            &:nth-child(1 of .e-child){
                &:has(.elementor-widget-image){
                    @media only screen and (min-width: 768px){
                        grid-column: 1 / 3;	
                    }
                }
                
                &:not(:has(.elementor-widget-image)){
                    padding: 40px 20px;
                    
                    @media only screen and (min-width: 768px){
						grid-column: 2 / 3;
						padding: 50px 45px 50px 10px;
                    }
                    
                    @media only screen and (min-width: 1024px){
						padding: 70px 80px 70px 10px;
                    }
				}
            }
            
            &:nth-last-child(1 of .e-child) {
                &:has(.elementor-widget-image){
                    @media only screen and (min-width: 768px){
    	                grid-column: 3 / -1;
                    }
                }
                
                &:not(:has(.elementor-widget-image)){
                    padding: 40px 20px;
                    
                    @media only screen and (min-width: 768px){
                  	    grid-column: 3 / 4;
                  	    padding: 50px 10px 50px 45px;
                    }
                    
                    @media only screen and (min-width: 1024px){
                  	    padding: 70px 10px 70px 80px;
                    }
                }
            }
            
            &:has(.elementor-widget-image){
                .elementor-widget-image{
                    aspect-ratio: 16/10;
                    height: 100%;
                }
            }
            
            > .e-con-inner{
                height: 100%;
            }
        }
    }
    
    &.text-two-img{
        > .e-con-inner{
            > div{
                &:has(.elementor-widget-image){
                    &:nth-child(2){
                        .elementor-widget-image{
                            height: 100%;
                            aspect-ratio: 9/12;
                            
                            @media only screen and (max-width: 768px){
                                aspect-ratio: 16/10;
                            }
                            
                            > div{
                                height: 100%;
                            }
                        }
                    }
                    
                    &:last-child{
                        flex-direction: column;
                        
                        .elementor-widget-image{
                            flex: 1;
                            
                            @media only screen and (max-width: 768px){
                                aspect-ratio: 9/11;
                            }
                            
                            > div{
                                height: 100%;
                            }
                        }
                    }
                }
            }
        }
    }
    
    &.skills-banner{
        .jkit-icon-box{
            .jkit-icon-box-wrapper{
                .icon-box-header{
                    .icon{
                        width: auto!important;
                        
                        img{
                            height: 50px;
                        }
                    }
                }
                
                .icon-box-body{
                    .icon-box-description{
                        color: var(--jkit-txt-color)!important;
                    }
                }
            }
        }
    }
    
    &.our-team{
        > .e-con-inner{
            
            > .team-wrapper{
                display: grid;
                grid-template-columns: repeat(auto-fill, minmax(min(320px,100%), 1fr));
                
                > div{
                    padding: 0;
                    outline: none;
                    
                    &:has(.profile-card:hover),
                    &:focus-visible{
                        .profile-card{
                            &:before{
                                opacity: 1;
                                visibility: visible;
                                transform: scale(.92);
                            }
                            
                            &:after{
                                animation: blur-in 0.3s forwards;
                            }
                            
                            .hover-area{
                                opacity: 1;
                                visibility: visible;
                                
                                &.alignment-bottom{
                                    transform: translateY(0);
                                }
                            }
                        }
                    }
                    
                    .profile-card{
                        display: block;
                        
                        &:after{
                            content: "";
                            position: absolute;
                            inset: 0;
                        }
                        
                        .profile-body{
                            &:has(.profile-content){
                                .profile-designation{
                                    position: relative;
                                    margin-bottom: 2rem;
                                    
                                    &:after{
                                        content: "";
                                        position: absolute;
                                        width: 120px;
                                        height: 1px;
                                        bottom: -1rem;
                                        left: 50%;
                                        transform: translateX(-50%);
                                        background-color: var(--e-global-color-accent);
                                    }
                                }
                            }
                            
                            .profile-designation{
                                font-size: var(--e-global-typography-f2d6f2c-font-size)!important;
                                font-weight: var(--e-global-typography-f2d6f2c-font-weight)!important;
                                line-height: var(--e-global-typography-f2d6f2c-line-height)!important;
                                font-style: italic;
                            }
                        }
                    }
                }
            }
        }
    }
    
    &.contact-info-wrapper{
        > .e-con-inner{
            > div{
                .opening-hours-wrapper{
                    margin-bottom: 0;
                    font-family: var(--e-global-typography-text-font-family), Sans-serif;
                    font-size: var(--e-global-typography-text-font-size);
                    font-weight: var(--e-global-typography-text-font-weight);
                    line-height: var(--e-global-typography-text-line-height);
                    
                    tr{
                        display: flex;
                        
                        tbody &{
                            border-bottom: 1px solid var(--e-global-color-cd33f8d);
                        }
                        
                        th,
                        td{
                            flex: 1;
                            display: flex;
                            border: none;
                            
                            &:first-child{
                                min-width: 80px;
                                
                                @media only screen and (max-width: 504px){
                                    min-width: 60px;
                                }
                            }
                            
                            &:nth-child(2){
                                min-width: 140px;
                                
                                @media only screen and (max-width: 504px){
                                    min-width: 88px;
                                }
                            }
                            
                            &:last-child{
                                min-width: 240.94px;
                                
                                @media only screen and (max-width: 504px){
                                    min-width: 126px;
                                }
                            }
                        }
                        
                        th{
                            padding: 0;
                            text-align: left;
                        }
                        
                        td{
                            align-items: flex-start;
                            padding: 20px 0 10px 0;
                            background-color: transparent;
                            
                            div{
                                display: flex;
                                align-items: center;
                                
                                @media only screen and (max-width: 576px){
                                    align-items: flex-start;
                                }
                                
                                span{
                                    &:first-child{
                                        position: relative;
                                        display: flex;
                                        
                                        i{
                                            width: 1.25em;
                                            font-size: 20px;
                                            
                                            &:before{
                                                color: var(--e-global-color-accent);
                                                font-size: 20px;
                                            }
                                        }
                                    }
                                    
                                    &:last-child{
                                        align-self: center;
                                        padding-inline-start: 5px;
                                    }
                                    
                                    br{
                                        &.d-xs-none{
                                            @media only screen and (min-width: 56px){
                                                display: none;
                                            }
                                        }
                                        
                                        &.d-sm-none{
                                            @media only screen and (min-width: 56px){
                                                display: none;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    
                    
                    .opening-hours--clinic{
                        .elementor-widget-icon-list{
                            min-width: 121px!important;
                        }
                    }
                    
                    .opening-hours--phone{
                        .elementor-widget-icon-list{
                            min-width: 241px!important;
                        }
                    }
                }
            }
        }
    }
}


/*---------------------------------------------------------- */
/*                         COMPONENTS                        */
/*---------------------------------------------------------- */

.elementor-form{
    .elementor-form-fields-wrapper{
        .elementor-field-group{
            &:not(.elementor-field-type-submit, :has(+ .elementor-field-type-submit)){
                margin-bottom: 1.5rem;
            }
            
            &:has(+ .elementor-field-type-submit){
                margin-bottom: 1.5rem;
            }
            
            input,
            textarea{
                padding-block: 13px;
            }
        }
    }
}

.jkit-accordion{
    > .card-wrapper{
        .card-header{
            .right-icon-group{
                height: 1rem;
            }    
        }
        
        .card-body{
            > *:has(img){
                display: flex;
                gap: 16px;
                flex-wrap: wrap;
                
                img{
                    flex: 1;
                    width: 0;
                }
            }
            
            > *:last-child{
                margin-bottom: 0;
            }
            
            img{
                border-radius: 10px;
            }
        }
    }
}

@keyframes blur-in {
    from {
        backdrop-filter: blur(0px);
    }
    to {
        backdrop-filter: blur(2px);
    }
}