/**
* Theme Name: SocialV Child
* Description: This is a child theme of SocialV, generated by iQonic Design.
* Author: <a href="https://iqonic.design/">Iqonic Design</a>
* Template: socialv
* Version: 2.0.14
*/

/* LearnPress Review Stars Horizontal Layout Fix */
.review-stars-rated,
.meta-item-review .review-stars-rated,
.course-meta .review-stars-rated,
.learnpress-course-review .review-stars-rated {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 3px !important;
    margin-bottom: 0 !important;
    position: relative !important;
    vertical-align: middle !important;
}

.review-stars-rated .review-star,
.meta-item-review .review-stars-rated .review-star,
.course-meta .review-stars-rated .review-star,
.learnpress-course-review .review-stars-rated .review-star {
    display: inline-flex !important;
    position: relative !important;
    line-height: 1 !important;
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
    align-items: center !important;
}

.review-stars-rated .review-star .far,
.review-stars-rated .review-star .fas,
.review-stars-rated .review-star .lp-review-svg-star {
    display: inline-flex !important;
    align-items: center !important;
    line-height: 1 !important;
}

.review-stars-rated .review-star .fas {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    overflow: hidden !important;
}

.review-stars-rated .review-star .lp-review-svg-star svg {
    width: 16px !important;
    height: 16px !important;
    display: inline-block !important;
    vertical-align: middle !important;
}

.review-stars-rated .review-star .lp-review-svg-star.far svg {
    stroke: #ffb60a !important;
}

.review-stars-rated .review-star .lp-review-svg-star.fas svg {
    fill: #ffb60a !important;
    stroke: #ffb60a !important;
}

/* ==========================================================================
   Courses Archive Top Bar, Search Filters & Layout Switcher
   ========================================================================== */
.course-main-tab-container {
    padding: 0.85em 1.25em !important;
    border-radius: var(--border-radius);
    background: var(--color-theme-white-box);
    box-shadow: var(--global-box-shadow);
}

.lp-courses-bar {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 0.5em !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    margin-bottom: 0 !important;
}

@media (max-width: 991px) {
    .lp-courses-bar {
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
    }
}

.socialv-courses-filters-wrap {
    flex: 1 1 auto;
    display: flex;
    justify-content: flex-end;
}

.course-filter-form {
    display: flex;
    align-items: center;
    gap: 0.45em;
    flex-wrap: nowrap;
    justify-content: flex-end;
    margin: 0 !important;
    width: auto;
}

.course-filter-form .filter-controls-group {
    display: flex;
    align-items: center;
    gap: 0.45em;
    flex-wrap: nowrap;
    justify-content: flex-end;
}

@media (max-width: 991px) {
    .course-filter-form,
    .course-filter-form .filter-controls-group {
        flex-wrap: wrap;
        width: 100%;
        justify-content: flex-start;
    }
}

.course-filter-form .filter-item {
    position: relative;
    flex-shrink: 1;
}

.course-filter-select {
    height: 2.5em !important;
    line-height: 2.5em !important;
    min-width: 110px;
    max-width: 155px;
    border: .063em solid var(--border-color-light) !important;
    background-color: var(--color-theme-white-box) !important;
    color: var(--global-font-color) !important;
    font-size: 0.85rem !important;
    font-weight: var(--font-weight-medium) !important;
    border-radius: var(--border-radius) !important;
    padding: 0 1.8em 0 0.7em !important;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%236c757d' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.6rem center !important;
    background-size: 12px 8px !important;
    appearance: none;
    -webkit-appearance: none;
    outline: none;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.course-filter-select:hover,
.course-filter-select:focus {
    border-color: var(--color-theme-primary) !important;
}

.course-filter-form .search-input {
    position: relative;
    min-width: 130px;
    max-width: 175px;
    flex-shrink: 1;
}

.course-filter-form .search-input input[type=text] {
    height: 2.5em !important;
    line-height: 2.5em !important;
    border: .063em solid var(--border-color-light) !important;
    background: var(--color-theme-white-box) !important;
    color: var(--global-font-color) !important;
    font-size: 0.85rem !important;
    font-weight: var(--font-weight-medium) !important;
    border-radius: var(--border-radius) !important;
    padding: 0 2.6em 0 0.75em !important;
    width: 100% !important;
    outline: none;
    transition: border-color 0.2s ease;
}

.course-filter-form .search-input input[type=text]:focus {
    border-color: var(--color-theme-primary) !important;
}

.course-filter-form .search-input .btn-search {
    position: absolute;
    right: 0;
    top: 0;
    bottom: 0;
    width: 2.5em;
    background: var(--color-theme-primary) !important;
    color: var(--color-theme-white) !important;
    border: none !important;
    border-radius: 0 var(--border-radius) var(--border-radius) 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.course-filter-form .search-input .btn-search:hover {
    background: var(--color-theme-primary-dark, #0d8a57) !important;
}

.course-filter-reset {
    display: inline-flex;
    align-items: center;
    gap: 0.25em;
    height: 2.5em;
    padding: 0 0.7em;
    color: #dc3545 !important;
    background: rgba(220, 53, 69, 0.08);
    border: 1px solid rgba(220, 53, 69, 0.25);
    border-radius: var(--border-radius);
    font-size: 0.82rem;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.2s ease;
    white-space: nowrap;
    flex-shrink: 0;
}

.course-filter-reset:hover {
    background: #dc3545;
    color: #fff !important;
    border-color: #dc3545;
}

/* Layout Switch Buttons */
.lp-courses-bar .switch-layout {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5em !important;
    margin: 0 !important;
}

.lp-courses-bar .switch-layout input[type=radio] {
    display: none !important;
}

.lp-courses-bar .switch-layout .switch-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    font-size: 1.2em !important;
    background: var(--global-body-bgcolor) !important;
    height: 1.822em !important;
    width: 1.822em !important;
    line-height: 1.822em !important;
    padding: 0 !important;
    text-align: center !important;
    border-radius: var(--border-radius) !important;
    border-color: transparent !important;
    transition: all 0.2s ease !important;
    color: var(--global-font-title) !important;
}

.lp-courses-bar .switch-layout .switch-btn:hover {
    background: rgba(0, 0, 0, 0.08) !important;
}

.lp-courses-bar .switch-layout input[type=radio]:nth-child(1):checked ~ .switch-btn.grid,
.lp-courses-bar .switch-layout input[type=radio]:nth-child(3):checked ~ .switch-btn.list,
.lp-courses-bar.grid .switch-btn.grid,
.lp-courses-bar.list .switch-btn.list {
    background: var(--color-theme-primary) !important;
    color: var(--color-theme-white) !important;
}

.lp-courses-bar .switch-layout input[type=radio]:nth-child(1):checked ~ .switch-btn.grid::before,
.lp-courses-bar .switch-layout input[type=radio]:nth-child(3):checked ~ .switch-btn.list::before,
.lp-courses-bar.grid .switch-btn.grid::before,
.lp-courses-bar.list .switch-btn.list::before {
    color: var(--color-theme-white) !important;
}

/* ==========================================================================
   Courses List View Mode
   ========================================================================== */
.learn-press-courses[data-layout="list"] {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.5em !important;
}

.learn-press-courses[data-layout="list"] .course.course-box {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.learn-press-courses[data-layout="list"] .course-box .course-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 1.5em !important;
    background: var(--color-theme-white-box) !important;
    border: .063em solid var(--border-color-light) !important;
    border-radius: var(--border-radius) !important;
    padding: 1em !important;
    box-shadow: var(--global-box-shadow) !important;
    overflow: hidden !important;
}

.learn-press-courses[data-layout="list"] .course-box .course-wrap-thumbnail {
    flex: 0 0 320px !important;
    max-width: 320px !important;
    width: 320px !important;
    position: relative !important;
    border-radius: var(--border-radius) !important;
    overflow: hidden !important;
    margin: 0 !important;
}

.learn-press-courses[data-layout="list"] .course-box .course-wrap-thumbnail .course-thumbnail,
.learn-press-courses[data-layout="list"] .course-box .course-wrap-thumbnail .course-thumbnail a,
.learn-press-courses[data-layout="list"] .course-box .course-wrap-thumbnail img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: var(--border-radius) !important;
}

.learn-press-courses[data-layout="list"] .course-box .course-content {
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    padding: 0.5em 0 !important;
}

.learn-press-courses[data-layout="list"] .course-box .course-title {
    font-size: 1.25rem !important;
    margin-bottom: 0.5em !important;
}

.learn-press-courses[data-layout="list"] .course-box .course-header {
    display: flex !important;
    align-items: center !important;
    gap: 1em !important;
    flex-wrap: wrap !important;
}

.learn-press-courses[data-layout="list"] .course-box .course-footer {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-top: 1px solid var(--border-color-light) !important;
    padding-top: 0.75em !important;
    margin-top: 1em !important;
}

@media (max-width: 768px) {
    .learn-press-courses[data-layout="list"] .course-box .course-item {
        flex-direction: column !important;
    }
    .learn-press-courses[data-layout="list"] .course-box .course-wrap-thumbnail {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
        height: 220px !important;
    }
    .course-filter-form {
        width: 100% !important;
        justify-content: stretch !important;
    }
    .course-filter-form .filter-item,
    .course-filter-form .search-input {
        width: 100% !important;
    }
    .course-filter-select {
        width: 100% !important;
    }
    .lp-courses-bar {
        justify-content: space-between !important;
    }
}

/* ==========================================================================
   Header & Top Page Spacing Normalization
   - Home page remains completely untouched (do not make any changes to home page).
   - For all pages other than home page, eliminate excessive 8em/8.3em/12em gaps
     and set the space between the header menu and start of page to exactly 64px.
   ========================================================================== */

/* 1. Prevent vertical header navbar from wrapping into two lines on desktop */
header.header-verticle,
.bp-legacy header.header-verticle {
    height: 70px !important;
}
header.header-verticle .navbar,
.bp-legacy header.header-verticle .navbar {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 70px !important;
}
.bp-legacy .header-verticle .socialv-header-right {
    border-top: none !important;
    width: auto !important;
}

/* 2. Prevent duplicate margin-top on #page when WP Admin Bar is active */
body.admin-bar #page.site,
body.admin-bar.socialv-default-header #page.site,
body.admin-bar #page.site.header-verticle,
body.admin-bar.socialv-default-header #page.site.header-verticle {
    margin-top: 0 !important;
}

/* 3. For all pages OTHER than home page:
   Normalize #page top padding to match the actual fixed header height (~70px / ~86px),
   overriding theme defaults like 8em (128px), 8.3em (133px), and 12em (192px). */
body:not(.home) #page.site.header-verticle,
body:not(.home).socialv-default-header #page.site.header-verticle,
body.admin-bar:not(.home) #page.site.header-verticle,
body.admin-bar:not(.home).socialv-default-header #page.site.header-verticle {
    margin-top: 0 !important;
    padding-top: 70px !important;
}

body:not(.home) #page.site:not(.header-verticle),
body:not(.home).socialv-default-header #page.site:not(.header-verticle),
body.admin-bar:not(.home) #page.site:not(.header-verticle),
body.admin-bar:not(.home).socialv-default-header #page.site:not(.header-verticle) {
    margin-top: 0 !important;
    padding-top: 86px !important;
}

/* 4. Set the space between header menu and start of page to exactly 64px for all standard pages other than home and BuddyPress */
body:not(.home):not(.buddypress):not(.bp-user) .content-area .site-main,
body:not(.home):not(.buddypress):not(.bp-user) .sidebar.sidebar-boxed + .main-content .content-area .site-main,
body:not(.home):not(.buddypress):not(.bp-user) .woocommerce-shop .content-area .site-main {
    padding-top: 64px !important;
    margin-top: 0 !important;
}

/* Prevent duplicate/nested padding stacking on LearnPress, blog index, search, and inner content wrappers */
body:not(.home) .site-content-contain,
body:not(.home) .site-content-contain .site-content,
body:not(.home) .site-main .lp-content-area,
body:not(.home) .lp-content-area {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* Normalize breadcrumbs on standard non-home pages */
body:not(.home):not(.buddypress):not(.bp-user) .socialv-breadcrumb {
    margin-top: 0 !important;
    padding: 2em 1em !important;
}

/* Prevent extra top margin on fundraising wrappers inside standard pages so they start cleanly at 64px */
body:not(.home) .site-main .okfc-wrap,
body:not(.home) .okfc-wrap {
    margin-top: 0 !important;
}

/* Ensure single campaign page also starts at exactly 64px */
body.okfc-campaign-page .okfc-single-shell,
body:not(.home) main.okfc-single-shell {
    margin-top: 64px !important;
}

/* 5. BuddyPress pages: set space between header menu and start of page to exactly 0px */
body.buddypress:not(.home) .content-area .site-main,
body.buddypress:not(.home) .socialv-activity-site-main,
body.buddypress:not(.home) .socialv-bp-main.site-main,
body.buddypress:not(.home) .socialv-bp-default-main.site-main,
body.buddypress:not(.home) .socialv-members-main-page,
body.buddypress:not(.home) .socialv-bp-main-primary,
body.buddypress:not(.home) .sidebar.sidebar-boxed + .main-content .content-area .site-main,
body.bp-user:not(.home) .content-area .site-main,
body.bp-user:not(.home) .socialv-bp-main.site-main,
body.bp-user:not(.home) #item-header,
body.bp-user:not(.home) #cover-image-container,
body.buddypress:not(.home) #buddypress {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

body.buddypress:not(.home) .socialv-bp-banner {
    margin-top: 0 !important;
}

/* 6. Ensure home page remains completely untouched */
body.home .content-area .site-main {
    padding-top: 0 !important;
}

/* 7. Responsive adjustments for mobile/tablet screens */
@media (max-width: 1199px) {
    body:not(.home) #page.site,
    body:not(.home) #page.site.header-verticle {
        padding-top: 70px !important;
    }
}
@media (max-width: 782px) {
    body.admin-bar:not(.home) #page.site,
    body.admin-bar:not(.home) #page.site.header-verticle,
    body.admin-bar:not(.home).socialv-default-header #page.site,
    body.admin-bar:not(.home).socialv-default-header #page.site.header-verticle {
        margin-top: 0 !important;
        padding-top: 70px !important;
    }
    body:not(.home) .content-area .site-main,
    body:not(.home) .socialv-activity-site-main,
    body:not(.home) .socialv-bp-main.site-main,
    body:not(.home) .socialv-bp-default-main.site-main,
    body:not(.home) .sidebar.sidebar-boxed + .main-content .content-area .site-main,
    body:not(.home) .site-content-contain .site-content,
    body:not(.home) .lp-content-area,
    body:not(.home) .site-content-contain .content-area .site-main,
    body:not(.home) .woocommerce-shop .content-area .site-main {
        padding-top: 64px !important;
        margin-top: 0 !important;
    }
}

/* ==========================================================================
   LearnPress Course Builder "Back to Main Site" Icon Customization
   ========================================================================== */
.lp-cb-sidebar__back .dashicons {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0 !important;
    width: 20px !important;
    height: 20px !important;
    line-height: 1 !important;
    color: inherit !important;
    vertical-align: middle !important;
}
.lp-cb-sidebar__back .dashicons::before {
    content: "" !important;
    display: inline-block !important;
    width: 18px !important;
    height: 18px !important;
    background-color: currentColor !important;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E") no-repeat center / contain !important;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z'/%3E%3Cpolyline points='9 22 9 12 15 12 15 22'/%3E%3C/svg%3E") no-repeat center / contain !important;
}

/* ==========================================================================
   Login-2 Customizations: Zero Top Gap, Brand Green Theme & Polish
   ========================================================================== */

/* 1. Eliminate any top gap / margin / padding on body and wrappers */
html:has(body.page-id-9548),
body.page-id-9548,
body.elementor-page-9548 {
    margin: 0 !important;
    padding: 0 !important;
}

body.page-id-9548 #page,
body.page-id-9548 .main-content,
body.page-id-9548 .content-area,
body.page-id-9548 .site-main,
body.page-id-9548 .site-main .container,
body.page-id-9548 .elementor-9548,
body.page-id-9548 .elementor-9548 .elementor-element-3df6fe9 {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* 2. Left side forest-green background and smooth ripples */
.elementor-9548 .elementor-element.elementor-element-fa22e0d:not(.elementor-motion-effects-element-type-background),
.elementor-9548 .elementor-element.elementor-element-fa22e0d > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-color: #093d24 !important;
}

/* 3. Image card & typography refinements */
.elementor-9548 .socialv-style1 .socialv-image-box-data img {
    border-radius: 14px !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.35) !important;
    transition: transform 0.3s ease !important;
}

.elementor-9548 .socialv-style1 .socialv-image-box-data:hover img {
    transform: scale(1.02);
}

.elementor-9548 .socialv-image-box-data .title {
    font-size: 1.85rem !important;
    font-weight: 700 !important;
    color: #ffffff !important;
    margin-top: 1.25rem !important;
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.elementor-9548 .socialv-image-box-data .desc {
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 0.95rem !important;
    line-height: 1.6 !important;
    max-width: 440px !important;
    margin: 0.75rem auto 0 auto !important;
}

/* 4. Swiper pagination bullets */
.elementor-9548 .socialv-imagebox .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
    background: #52c41a !important;
    width: 24px !important;
}

/* ==========================================================================
   GiveWP Donor Wall Card, Avatar & Name Display Polish
   ========================================================================== */
.give-donor.give-card {
    border-radius: 12px !important;
    border: 1px solid rgba(0, 0, 0, 0.06) !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05) !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}

.give-donor.give-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1) !important;
}

.give-donor-container__image {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    background: #eef6f0 !important;
    border: 3px solid #e1efe5 !important;
    overflow: hidden !important;
    margin: 0 auto 12px auto !important;
}

.give-donor-container__image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 50% !important;
    display: block !important;
}

.give-donor-container__image__name_initial {
    font-size: 1.5rem !important;
    font-weight: 700 !important;
    color: #018943 !important;
    text-transform: uppercase !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
}

.give-donor-container-variation__name {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: #1a202c !important;
    margin: 0 0 4px 0 !important;
    text-align: center !important;
    line-height: 1.3 !important;
    display: block !important;
}

.give-donor-container-variation__timestamp {
    font-size: 0.85rem !important;
    color: #718096 !important;
    margin: 0 !important;
    text-align: center !important;
}

.give-donor-details__amount_donated {
    font-weight: 600 !important;
    color: #4a5568 !important;
}

.give-donor-details__total {
    font-weight: 700 !important;
    font-size: 1.15rem !important;
}



