/**
 * Recursos Worship dark mode toggle for Woodmart.
 *
 * Shared tokens are exposed here so other plugin styles can migrate away from
 * raw prefers-color-scheme checks and follow the same body class used by
 * Woodmart: .global-color-scheme-light
 */

:root {
    --rw-surface-0: #ffffff;
    --rw-surface-1: #f5f7fb;
    --rw-text-1: #132033;
    --rw-text-2: rgba(19, 32, 51, 0.72);
    --rw-border-soft: rgba(15, 23, 42, 0.12);
    --rw-shadow-soft: 0 12px 24px rgba(15, 23, 42, 0.12);
    --rw-header-main-light-bg: #f7f5f1;
    --rw-header-main-light-border: rgba(15, 23, 42, 0.08);
    --rw-header-main-light-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.88);
}

html[data-rw-theme-state="light"] {
    color-scheme: light;
}

html[data-rw-theme-state="dark"] {
    color-scheme: dark;
}

body.global-color-scheme-light,
html[data-rw-theme-state="dark"] body {
    --rw-surface-0: #0b1220;
    --rw-surface-1: #111b2d;
    --rw-text-1: #eef4ff;
    --rw-text-2: rgba(238, 244, 255, 0.72);
    --rw-border-soft: rgba(255, 255, 255, 0.14);
    --rw-shadow-soft: 0 14px 28px rgba(2, 6, 23, 0.28);
}

/*
 * Woodmart "Configure Main header settings" maps to the `general-header` row.
 * In light mode we override only that row background from the plugin so the
 * Header Builder can keep its dark setup for dark mode without theme edits.
 */
html[data-rw-theme-state="light"] body .whb-header .whb-general-header,
html[data-rw-theme-state="light"] body .whb-clone .whb-general-header,
html:not([data-rw-theme-state="dark"]) body:not(.global-color-scheme-light) .whb-header .whb-general-header,
html:not([data-rw-theme-state="dark"]) body:not(.global-color-scheme-light) .whb-clone .whb-general-header {
    background-color: var(--rw-header-main-light-bg) !important;
    box-shadow: var(--rw-header-main-light-shadow);
}

html[data-rw-theme-state="light"] body .whb-header .whb-general-header.whb-with-bg,
html[data-rw-theme-state="light"] body .whb-clone .whb-general-header.whb-with-bg,
html:not([data-rw-theme-state="dark"]) body:not(.global-color-scheme-light) .whb-header .whb-general-header.whb-with-bg,
html:not([data-rw-theme-state="dark"]) body:not(.global-color-scheme-light) .whb-clone .whb-general-header.whb-with-bg {
    background-image: none !important;
}

html[data-rw-theme-state="light"] body .whb-header .whb-general-header .whb-flex-row,
html[data-rw-theme-state="light"] body .whb-clone .whb-general-header .whb-flex-row,
html:not([data-rw-theme-state="dark"]) body:not(.global-color-scheme-light) .whb-header .whb-general-header .whb-flex-row,
html:not([data-rw-theme-state="dark"]) body:not(.global-color-scheme-light) .whb-clone .whb-general-header .whb-flex-row {
    border-color: var(--rw-header-main-light-border);
}

body:not(.global-color-scheme-light) .product-tabs-wrapper .wd-nav-tabs-wrapper.color-scheme-light,
body:not(.global-color-scheme-light) .product-tabs-wrapper .wd-nav-tabs-wrapper.color-scheme-light :is(.wd-nav, .wc-tabs, li, .wd-nav-link, .nav-link-text, .wd-tabs-title) {
    color: inherit !important;
}

body:not(.global-color-scheme-light) .woocommerce-Reviews,
body:not(.global-color-scheme-light) .woocommerce-Tabs-panel--reviews,
body:not(.global-color-scheme-light) .woocommerce-Tabs-panel--additional_information,
body:not(.global-color-scheme-light) .woocommerce-Tabs-panel--description {
    --wd-form-bg: #ffffff;
    --wd-form-color: inherit;
    --wd-form-placeholder-color: var(--wd-text-color, #767676);
    --wd-form-brd-color: rgba(15, 23, 42, 0.12);
    --wd-form-brd-color-focus: rgba(15, 23, 42, 0.18);
}

body:not(.global-color-scheme-light) .woocommerce-Reviews :is(input[type='text'], input[type='email'], input[type='tel'], input[type='search'], textarea, select),
body:not(.global-color-scheme-light) .woocommerce-Tabs-panel--reviews :is(input[type='text'], input[type='email'], input[type='tel'], input[type='search'], textarea, select) {
    color: inherit;
}

body:not(.global-color-scheme-light) .woocommerce-Reviews select option,
body:not(.global-color-scheme-light) .woocommerce-Tabs-panel--reviews select option {
    color: #242424;
    background-color: #ffffff;
}

.rw-dark-mode-toggle {
    --rw-toggle-width: 58px;
    --rw-toggle-height: 32px;
    --rw-toggle-padding: 4px;
    --rw-toggle-thumb-size: 24px;
    --rw-toggle-shift: 26px;
    --rw-toggle-focus: rgba(37, 99, 235, 0.24);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--rw-text-1);
    line-height: 0;
    vertical-align: middle;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

html.rw-theme-switching .whb-header,
html.rw-theme-switching .whb-header *,
html.rw-theme-switching .whb-clone,
html.rw-theme-switching .whb-clone * {
    transition: none !important;
    animation: none !important;
}

button.rw-dark-mode-toggle {
    padding:0px;
}

.rw-dark-mode-toggle-wrap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    line-height: 1;
    vertical-align: middle;
}

.rw-dark-mode-toggle-wrap--header {
    min-width: 0;
}

.rw-dark-mode-toggle-wrap > * {
    background: transparent !important;
}

.rw-dark-mode-toggle-wrap :where(p, div, span) {
    margin: 0;
}

.wd-header-html:has(.rw-dark-mode-toggle-wrap),
.whb-column > .wd-header-html:has(.rw-dark-mode-toggle-wrap),
.elementor-widget-shortcode:has(.rw-dark-mode-toggle-wrap),
.wpb_wrapper:has(.rw-dark-mode-toggle-wrap) {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.wd-header-html:has(.rw-dark-mode-toggle-wrap) :where(p, .wpb_wrapper, .elementor-shortcode),
.elementor-widget-shortcode:has(.rw-dark-mode-toggle-wrap) :where(.elementor-widget-container, .elementor-shortcode),
.wpb_wrapper:has(.rw-dark-mode-toggle-wrap) > p {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.rw-dark-mode-toggle:focus {
    outline: none;
}

.rw-dark-mode-toggle:focus-visible .rw-dark-mode-toggle__track {
    box-shadow: 0 0 0 4px var(--rw-toggle-focus), var(--rw-shadow-soft);
}

.rw-dark-mode-toggle__track {
    position: relative;
    display: block;
    width: var(--rw-toggle-width);
    height: var(--rw-toggle-height);
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 999px;
    background: linear-gradient(180deg, #fcfcfb 0%, #f1efeb 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 8px 18px rgba(15, 23, 42, 0.08);
    overflow: hidden;
    isolation: isolate;
    transition:
        background 0.3s ease,
        border-color 0.3s ease,
        box-shadow 0.3s ease,
        transform 0.22s ease;
}

.rw-dark-mode-toggle__track::before,
.rw-dark-mode-toggle__track::after {
    content: "";
    position: absolute;
    pointer-events: none;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.rw-dark-mode-toggle__track::before {
    inset: 3px;
    border-radius: inherit;
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.05) 0%, rgba(15, 23, 42, 0.02) 100%);
}

.rw-dark-mode-toggle__track::after {
    top: 7px;
    bottom: 7px;
    left: 50%;
    width: 1px;
    background: rgba(15, 23, 42, 0.08);
    transform: translateX(-50%);
}

.rw-dark-mode-toggle__icon {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    transform: translateY(-50%);
    transition: color 0.28s ease, opacity 0.28s ease, transform 0.28s ease;
}

.rw-dark-mode-toggle__icon svg {
    width: 100%;
    height: 100%;
}

.rw-dark-mode-toggle__icon--sun {
    left: 11px;
    color: #f3b422;
    opacity: 1;
}

.rw-dark-mode-toggle__icon--sun svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.9;
}

.rw-dark-mode-toggle__icon--moon {
    right: 11px;
    color: rgba(17, 24, 39, 0.34);
    opacity: 0.92;
}

.rw-dark-mode-toggle__icon--moon svg {
    fill: currentColor;
}

.rw-dark-mode-toggle__thumb {
    position: absolute;
    top: var(--rw-toggle-padding);
    left: var(--rw-toggle-padding);
    z-index: 1;
    display: block;
    width: var(--rw-toggle-thumb-size);
    height: var(--rw-toggle-thumb-size);
    border-radius: 50%;
    background: linear-gradient(180deg, #ffffff 0%, #f8f5ee 100%);
    box-shadow:
        0 5px 12px rgba(15, 23, 42, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.92);
    transform: translateX(0);
    transition:
        transform 0.34s cubic-bezier(0.22, 1, 0.36, 1),
        background 0.28s ease,
        box-shadow 0.28s ease;
}

.rw-dark-mode-toggle__thumb-ring,
.rw-dark-mode-toggle__thumb-core {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    transition: opacity 0.28s ease, transform 0.28s ease, background 0.28s ease;
}

.rw-dark-mode-toggle__thumb-ring {
    border: 1px solid rgba(255, 255, 255, 0.85);
}

.rw-dark-mode-toggle__thumb-core {
    inset: 4px;
    background: radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.18) 54%, transparent 70%);
}

.rw-dark-mode-toggle:hover .rw-dark-mode-toggle__track {
    transform: translateY(-1px);
}

.rw-dark-mode-toggle[data-theme-state="dark"] .rw-dark-mode-toggle__track {
    border-color: rgba(255, 255, 255, 0.08);
    background: linear-gradient(180deg, #131313 0%, #0b0b0b 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 10px 22px rgba(0, 0, 0, 0.3);
}

.rw-dark-mode-toggle[data-theme-state="dark"] .rw-dark-mode-toggle__track::before {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.01) 100%);
}

.rw-dark-mode-toggle[data-theme-state="dark"] .rw-dark-mode-toggle__track::after {
    background: rgba(255, 255, 255, 0.08);
}

.rw-dark-mode-toggle[data-theme-state="dark"] .rw-dark-mode-toggle__icon--sun {
    color: rgba(255, 255, 255, 0.2);
    opacity: 0.9;
}

.rw-dark-mode-toggle[data-theme-state="dark"] .rw-dark-mode-toggle__icon--moon {
    color: #f0b233;
    opacity: 1;
}

.rw-dark-mode-toggle[data-theme-state="dark"] .rw-dark-mode-toggle__thumb {
    background: linear-gradient(180deg, #4d4843 0%, #35312e 100%);
    box-shadow:
        0 6px 14px rgba(0, 0, 0, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    transform: translateX(var(--rw-toggle-shift));
}

.rw-dark-mode-toggle[data-theme-state="dark"] .rw-dark-mode-toggle__thumb-ring {
    border-color: rgba(255, 255, 255, 0.08);
}

.rw-dark-mode-toggle[data-theme-state="dark"] .rw-dark-mode-toggle__thumb-core {
    background: radial-gradient(circle at 36% 28%, rgba(255, 255, 255, 0.22) 0%, rgba(255, 255, 255, 0.03) 56%, transparent 72%);
}

.whb-color-light .rw-dark-mode-toggle {
    --rw-toggle-focus: rgba(255, 255, 255, 0.18);
}

.whb-color-light .rw-dark-mode-toggle__track {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.9),
        0 8px 18px rgba(2, 6, 23, 0.16);
}

.rw-dark-mode-sidebar-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 12px 0 0;
    padding: 8px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    transition: background 0.15s ease;
}

/* When inside the popup panel, remove standalone margin */
.rw-sidebar__user-panel-group--theme .rw-dark-mode-sidebar-card {
    margin: 0;
}

body:not(.global-color-scheme-light) .rw-sidebar .rw-dark-mode-sidebar-card {
    border: 0;
    background: transparent;
    box-shadow: none;
}

.rw-dark-mode-sidebar-card[data-theme-state="dark"] {
    background: transparent;
}

.rw-dark-mode-sidebar-card__meta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.rw-dark-mode-sidebar-card__icon {
    display: inline-flex;
    width: 16px;
    height: 16px;
    color: var(--rw-sidebar-popover-text-muted, #5a5a68);
    flex-shrink: 0;
    transition: color 0.15s ease;
}

body:not(.global-color-scheme-light) .rw-sidebar .rw-dark-mode-sidebar-card__icon {
    color: var(--rw-sidebar-popover-text-muted, #9098a8);
}

.rw-dark-mode-sidebar-card__icon svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.rw-dark-mode-sidebar-card[data-theme-state="dark"] .rw-dark-mode-sidebar-card__icon {
    color: var(--rw-sidebar-popover-text-muted, #ece9f3);
}

.rw-dark-mode-sidebar-card__label {
    font-size: 14px;
    font-weight: 450;
    line-height: 1;
    color: var(--rw-sidebar-popover-text, #585461);
    white-space: nowrap;
    transition: color 0.15s ease;
    letter-spacing: -0.01em;
}

body:not(.global-color-scheme-light) .rw-sidebar .rw-dark-mode-sidebar-card__label {
    color: var(--rw-sidebar-popover-text, #162031);
}

.rw-dark-mode-sidebar-card[data-theme-state="dark"] .rw-dark-mode-sidebar-card__label {
    color: var(--rw-sidebar-popover-text, #f3f4f6);
}

.rw-dark-mode-sidebar-card__control {
    flex-shrink: 0;
    line-height: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.rw-dark-mode-toggle--sidebar {
    --rw-toggle-width: 40px;
    --rw-toggle-height: 22px;
    --rw-toggle-padding: 3px;
    --rw-toggle-thumb-size: 16px;
    --rw-toggle-shift: 18px;
}

.rw-dark-mode-toggle-wrap:has(.rw-dark-mode-toggle--sidebar),
.rw-dark-mode-toggle-wrap--sidebar,
.rw-dark-mode-sidebar-card :where(.rw-dark-mode-toggle-wrap, .rw-dark-mode-toggle-wrap--sidebar) {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

button.rw-dark-mode-toggle--sidebar,
.rw-dark-mode-toggle--sidebar,
.rw-dark-mode-toggle--sidebar:hover,
.rw-dark-mode-toggle--sidebar:focus,
.rw-dark-mode-toggle--sidebar:active {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    appearance: none;
    -webkit-appearance: none;
}

.rw-dark-mode-toggle--sidebar > span,
.rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__track,
.rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__thumb {
    background-clip: padding-box;
}

.rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__icon {
    display: none;
}

.rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__track {
    border-color: rgba(17, 24, 39, 0.08);
    background: linear-gradient(180deg, #d7d4dd 0%, #cfc9d6 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

body:not(.global-color-scheme-light) .rw-sidebar .rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__track {
    border-color: rgba(15, 23, 42, 0.08);
    background: linear-gradient(180deg, #e7e3e9 0%, #dad5dd 100%);
}

.rw-dark-mode-toggle--sidebar:hover .rw-dark-mode-toggle__track,
.rw-dark-mode-toggle--sidebar:focus-visible .rw-dark-mode-toggle__track,
.rw-dark-mode-toggle--sidebar:active .rw-dark-mode-toggle__track {
    transform: none;
}

.rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__track::before,
.rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__track::after {
    display: none;
}

.rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__thumb {
    background: linear-gradient(180deg, #ffffff 0%, #fafafa 100%);
    box-shadow:
        0 3px 8px rgba(15, 23, 42, 0.16),
        inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

body:not(.global-color-scheme-light) .rw-sidebar .rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__thumb {
    box-shadow:
        0 4px 10px rgba(15, 23, 42, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.rw-dark-mode-sidebar-card[data-theme-state="dark"] .rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__track,
.rw-dark-mode-toggle--sidebar[data-theme-state="dark"] .rw-dark-mode-toggle__track,
.rw-dark-mode-toggle--sidebar[data-theme-state="dark"] {
    --rw-toggle-focus: rgba(255, 255, 255, 0.18);
}

.rw-dark-mode-sidebar-card[data-theme-state="dark"] .rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__track,
.rw-dark-mode-toggle--sidebar[data-theme-state="dark"] .rw-dark-mode-toggle__track {
    border-color: rgba(255, 255, 255, 0.08);
    background: linear-gradient(180deg, #5b5b5b 0%, #505050 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.rw-dark-mode-toggle--sidebar[data-theme-state="dark"] .rw-dark-mode-toggle__thumb,
.rw-dark-mode-sidebar-card[data-theme-state="dark"] .rw-dark-mode-toggle--sidebar .rw-dark-mode-toggle__thumb {
    background: linear-gradient(180deg, #ffffff 0%, #f4f4f4 100%);
    box-shadow:
        0 3px 8px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

/* When inside the popup panel, visibility is handled by the panel's hidden state */

@media (max-width: 767px) {
    .rw-dark-mode-toggle {
        --rw-toggle-width: 54px;
        --rw-toggle-height: 30px;
        --rw-toggle-thumb-size: 22px;
        --rw-toggle-shift: 24px;
    }

    .rw-dark-mode-toggle__icon {
        width: 13px;
        height: 13px;
    }

    .rw-dark-mode-toggle__icon--sun {
        left: 10px;
    }

    .rw-dark-mode-toggle__icon--moon {
        right: 10px;
    }

    .rw-dark-mode-toggle--sidebar {
        --rw-toggle-width: 38px;
        --rw-toggle-height: 21px;
        --rw-toggle-thumb-size: 15px;
        --rw-toggle-shift: 17px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rw-dark-mode-toggle__track,
    .rw-dark-mode-toggle__track::before,
    .rw-dark-mode-toggle__track::after,
    .rw-dark-mode-toggle__icon,
    .rw-dark-mode-toggle__thumb,
    .rw-dark-mode-toggle__thumb-ring,
    .rw-dark-mode-toggle__thumb-core {
        transition: none;
    }
}
