/* ==========================================================================
   Gravity Forms
   ========================================================================== */

.gform-theme.gform-theme--framework.gform_wrapper .button:where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme.gform-theme--framework.gform_wrapper .gform-theme-button:where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme.gform-theme--framework.gform_wrapper :where(:not(.mce-splitbtn)) > button:not([id*="mceu_"]):not(.mce-open):where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme.gform-theme--framework.gform_wrapper button.button:where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme.gform-theme--framework.gform_wrapper input:is([type="submit"], [type="button"], [type="reset"]).button:where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme.gform-theme--framework.gform_wrapper input:is([type="submit"], [type="button"], [type="reset"]):where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)),
.gform-theme.gform-theme--framework.gform_wrapper input[type="submit"].button.gform_button:where(:not(.gform-theme-no-framework):not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)) {
    --gf-local-bg-color: var(--e-global-color-7aeecd9);
}


/* ==========================================================================
   General
   ========================================================================== */

.entry-title {
    font-size: 32px;
    font-weight: 700;
    line-height: 56px;
    color: var(--e-global-color-26e1579);
    text-align: center;
}

body {
    padding-top: 76px !important;
    padding-bottom: 76px !important;
}

@media (min-width: 769px) {
    body {
        padding-top: 100px !important;
        padding-bottom: 0 !important;
    }
}


/* ==========================================================================
   City Filter
   ========================================================================== */

.city-filter-btn {
    background-color: var(--e-global-color-0a8b750) !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 28px !important;
    fill: var(--e-global-color-97f35f6) !important;
    color: var(--e-global-color-97f35f6) !important;
    border-style: dashed !important;
    border-width: 1px !important;
    border-color: var(--e-global-color-97f35f6) !important;
    padding: 4px 12px !important;
    min-width: 125px !important;
}


/* ==========================================================================
   WooCommerce
   ========================================================================== */

.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.edit {
    font-family: var(--e-global-typography-e37ff06-font-family), IranSansX;
    font-size: var(--e-global-typography-e37ff06-font-size);
    line-height: var(--e-global-typography-e37ff06-line-height);
}

.woocommerce-privacy-policy-text,
.woocommerce-privacy-policy-link,
.wc-backward,
.woocommerce-breadcrumb {
    font-family: IranSansX !important;
}

.woocommerce-info {
    border-top-color: #415762 !important;
}

.woocommerce-info::before {
    color: #415762 !important;
}


/* ==========================================================================
   Slider / Video Story
   ========================================================================== */

.slider-container {
    max-width: 360px !important;
}

.video-story-div {
    max-width: 90px !important;
}

@media (min-width: 769px) {
    .video-story-div {
        max-width: 180px !important;
    }
}


/* ==========================================================================
   Accessibility
   ========================================================================== */

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    width: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    word-wrap: normal !important;
}

.screen-reader-text:focus,
.skip-link:focus {
    clip: auto !important;
    clip-path: none;
    height: auto;
    width: auto;
    margin: 0;
    overflow: visible;
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 100000;
    background: #fff;
    color: #000;
    padding: 10px 15px;
    text-decoration: none;
}


/* ==========================================================================
   Elementor Off Canvas
   ========================================================================== */

.e-off-canvas__main {
    max-height: 80vh;
    height: auto;
    margin: 10vh auto;
    overflow: hidden;
    border-radius: 16px;
}

.e-off-canvas__content {
    max-height: 80vh;
    overflow-y: auto;
}

#off-canvas-40d3ff2 .e-off-canvas__main {
    height: 80vh !important;
    max-height: 80vh !important;
}

#off-canvas-40d3ff2 .e-off-canvas__content {
    overflow-y: auto;
}


/* ==========================================================================
   Reviews
   ========================================================================== */

.review-text {
    position: relative;
}

.review-text.collapsed {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.review-more {
    display: inline-block;
    margin-top: 10px;
    color: #0d6efd;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
}

.review-more:hover {
    text-decoration: underline;
}


/* ==========================================================================
   Square Images
   ========================================================================== */

#square-image img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}


/* ==========================================================================
   Loader CSS
   ========================================================================== */


#site-loader {
    position: fixed;
    inset: 0;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 999999;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

#site-loader.hidden {
    opacity: 0;
    visibility: hidden;
}

.loader-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #eee;
    border-top-color: #333;
    border-radius: 50%;
    animation: loader-spin 0.8s linear infinite;
}

@keyframes loader-spin {
    to {
        transform: rotate(360deg);
    }
}

/* ==========================================================================
   Tutor Instrument title with subtitle CSS
   ========================================================================== */

.tutor-instrument-subtitle {
    font-size: 16px;
    line-height: 2;
    font-weight: 400;
    text-align: center;
    margin: 0;
}

@media screen and (max-width: 767px) {
    .tutor-instrument-subtitle {
        font-size: 14px !important;
    }
}

/* ==========================================================================
   /* Skip link - accessible keyboard navigation */
   ========================================================================== */

.skip-link.screen-reader-text {
    position: absolute;
    width: auto;
    height: auto;
    padding: 10px 15px;
    margin: 0;
    overflow: visible;
    clip: auto;
    clip-path: none;
    white-space: normal;

    top: 10px;
    left: 10px;
    z-index: 999999;

    background: #fff;
    color: #000;
    border: 2px solid #000;
    text-decoration: none;

    transform: translateY(-200%);
}

.skip-link.screen-reader-text:focus,
.skip-link.screen-reader-text:focus-visible {
    transform: translateY(0);
    outline: 3px solid #005fcc;
    outline-offset: 2px;
}
