/* =============================================
   Webworq Social Share - Frontend CSS v3.0
   Modes: Inline | Collapsible | Floating FAB
   ============================================= */

/* --- SHARED BASE STYLES --- */

.webworq-ss-share-buttons {
    margin: 1.5em 0;
    clear: both;
}

.webworq-ss-heading {
    display: block;
    font-size: 0.85em;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #666;
    margin-bottom: 0.6em;
}

.webworq-ss-buttons-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: var(--webworq-ss-btn-gap, 8px);
    align-items: center;
}

/* Base button */
.webworq-ss-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--webworq-ss-btn-size, 40px);
    height: var(--webworq-ss-btn-size, 40px);
    text-decoration: none !important;
    border: none;
    cursor: pointer;
    transition: transform 0.15s ease, opacity 0.15s ease, box-shadow 0.15s ease;
    position: relative;
    box-sizing: border-box;
    line-height: 1;
    -webkit-tap-highlight-color: transparent;
}

.webworq-ss-btn:active {
    transform: translateY(0) scale(0.95);
}

/* Icon */
.webworq-ss-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--webworq-ss-icon-size, 20px);
    height: var(--webworq-ss-icon-size, 20px);
}

.webworq-ss-icon svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
}

/* Label */
.webworq-ss-label {
    font-size: 0.8em;
    font-weight: 500;
    margin-left: 6px;
    white-space: nowrap;
}

.webworq-ss-with-labels .webworq-ss-btn {
    width: auto;
    padding: 0 16px;
    gap: 6px;
}

/* --- SHAPES --- */
.webworq-ss-style-circle .webworq-ss-btn,
.webworq-ss-style-circle .webworq-ss-fab-option {
    border-radius: 50%;
}
.webworq-ss-style-circle.webworq-ss-with-labels .webworq-ss-btn {
    border-radius: 999px;
}
.webworq-ss-style-rounded .webworq-ss-btn,
.webworq-ss-style-rounded .webworq-ss-fab-option {
    border-radius: var(--webworq-ss-btn-radius, 8px);
}
.webworq-ss-style-square .webworq-ss-btn,
.webworq-ss-style-square .webworq-ss-fab-option {
    border-radius: 0;
}

/* --- HOVER ANIMATIONS --- */
.webworq-ss-hover-lift .webworq-ss-btn:hover,
.webworq-ss-hover-lift .webworq-ss-fab-option:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
}
.webworq-ss-hover-grow .webworq-ss-btn:hover,
.webworq-ss-hover-grow .webworq-ss-fab-option:hover {
    transform: scale(1.1);
}
.webworq-ss-hover-glow .webworq-ss-btn:hover,
.webworq-ss-hover-glow .webworq-ss-fab-option:hover {
    box-shadow: 0 0 16px rgba(0,0,0,0.3) !important;
}
.webworq-ss-hover-fade .webworq-ss-btn:hover,
.webworq-ss-hover-fade .webworq-ss-fab-option:hover {
    opacity: 0.7;
}
.webworq-ss-hover-shine .webworq-ss-btn:hover,
.webworq-ss-hover-shine .webworq-ss-fab-option:hover {
    filter: brightness(1.2);
}

/* --- COLOR PRESETS: BRAND --- */
.webworq-ss-preset-brand .webworq-ss-btn,
.webworq-ss-preset-brand .webworq-ss-fab-option {
    background-color: var(--webworq-ss-btn-color, #333);
    color: #fff;
    box-shadow: var(--webworq-ss-btn-shadow, none);
}
.webworq-ss-preset-brand .webworq-ss-btn:hover,
.webworq-ss-preset-brand .webworq-ss-fab-option:hover {
    background-color: var(--webworq-ss-btn-hover, #555);
}

/* --- COLOR PRESETS: MONO-DARK --- */
.webworq-ss-preset-mono-dark .webworq-ss-btn,
.webworq-ss-preset-mono-dark .webworq-ss-fab-option {
    background-color: var(--webworq-ss-btn-color, #333);
    color: #fff;
    box-shadow: var(--webworq-ss-btn-shadow, none);
}
.webworq-ss-preset-mono-dark .webworq-ss-btn:hover,
.webworq-ss-preset-mono-dark .webworq-ss-fab-option:hover {
    background-color: var(--webworq-ss-btn-hover, #555);
}

/* --- COLOR PRESETS: MONO-LIGHT --- */
.webworq-ss-preset-mono-light .webworq-ss-btn,
.webworq-ss-preset-mono-light .webworq-ss-fab-option {
    background-color: var(--webworq-ss-btn-color, #e0e0e0);
    color: #333;
    box-shadow: var(--webworq-ss-btn-shadow, none);
}
.webworq-ss-preset-mono-light .webworq-ss-btn:hover,
.webworq-ss-preset-mono-light .webworq-ss-fab-option:hover {
    background-color: var(--webworq-ss-btn-hover, #ccc);
}

/* --- COLOR PRESETS: OUTLINE --- */
.webworq-ss-preset-outline .webworq-ss-btn,
.webworq-ss-preset-outline .webworq-ss-fab-option {
    background: transparent;
    border: 2px solid var(--webworq-ss-btn-color, #333);
    color: var(--webworq-ss-btn-color, #333);
    box-shadow: none;
}
.webworq-ss-preset-outline .webworq-ss-btn:hover,
.webworq-ss-preset-outline .webworq-ss-fab-option:hover {
    background: var(--webworq-ss-btn-color, #333);
    color: #fff;
    box-shadow: var(--webworq-ss-btn-shadow, none);
}

/* --- COLOR PRESETS: MINIMAL --- */
.webworq-ss-preset-minimal .webworq-ss-btn,
.webworq-ss-preset-minimal .webworq-ss-fab-option {
    background: transparent;
    color: var(--webworq-ss-btn-color, #333);
    box-shadow: none;
}
.webworq-ss-preset-minimal .webworq-ss-btn:hover,
.webworq-ss-preset-minimal .webworq-ss-fab-option:hover {
    background: rgba(0,0,0,0.05);
}

/* --- COLOR PRESETS: GLASS --- */
.webworq-ss-preset-glass .webworq-ss-btn,
.webworq-ss-preset-glass .webworq-ss-fab-option {
    background: rgba(255,255,255,0.2);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.3);
    color: #333;
    box-shadow: var(--webworq-ss-btn-shadow, none);
}

/* --- COLOR PRESETS: GRADIENT --- */
.webworq-ss-preset-gradient .webworq-ss-btn,
.webworq-ss-preset-gradient .webworq-ss-fab-option {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: #fff;
    box-shadow: var(--webworq-ss-btn-shadow, none);
}

/* --- COLOR PRESETS: CUSTOM --- */
.webworq-ss-preset-custom .webworq-ss-btn,
.webworq-ss-preset-custom .webworq-ss-fab-option {
    background-color: var(--webworq-ss-inline-bg, #333);
    color: var(--webworq-ss-inline-text, #fff);
    box-shadow: var(--webworq-ss-btn-shadow, none);
}
.webworq-ss-preset-custom .webworq-ss-btn:hover,
.webworq-ss-preset-custom .webworq-ss-fab-option:hover {
    background-color: var(--webworq-ss-inline-hover-bg, #555);
    color: var(--webworq-ss-inline-hover-text, #fff);
}

/* --- Accessibility --- */
.webworq-ss-btn:focus-visible,
.webworq-ss-trigger:focus-visible,
.webworq-ss-fab-trigger:focus-visible,
.webworq-ss-fab-option:focus-visible {
    outline: 2px solid #0073aa;
    outline-offset: 2px;
}

/* =============================================
   MODE: INLINE (default)
   ============================================= */

/* Nothing extra needed — uses base styles */

/* =============================================
   MODE: COLLAPSIBLE
   ============================================= */

.webworq-ss-mode-collapsible {
    position: relative;
    display: inline-block;
}

/* Trigger button */
.webworq-ss-trigger {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    background: #333;
    color: #fff;
    border: none;
    cursor: pointer;
    font-size: 0.9em;
    font-weight: 600;
    font-family: inherit;
    transition: background 0.2s ease, box-shadow 0.2s ease;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}

.webworq-ss-preset-custom .webworq-ss-trigger {
    background: var(--webworq-ss-collapsible-trigger-bg, #333);
    color: var(--webworq-ss-collapsible-trigger-text, #fff);
}

.webworq-ss-style-circle .webworq-ss-trigger {
    border-radius: 999px;
}
.webworq-ss-style-rounded .webworq-ss-trigger {
    border-radius: var(--webworq-ss-btn-radius, 8px);
}
.webworq-ss-style-square .webworq-ss-trigger {
    border-radius: 0;
}

.webworq-ss-trigger:hover {
    background: #555;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.webworq-ss-preset-custom .webworq-ss-trigger:hover {
    background: var(--webworq-ss-collapsible-trigger-hover, #555);
}

.webworq-ss-trigger:active {
    transform: scale(0.97);
}

.webworq-ss-trigger-icon {
    display: flex;
    width: 18px;
    height: 18px;
}

.webworq-ss-trigger-icon svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.webworq-ss-trigger-label {
    line-height: 1;
}

.webworq-ss-trigger-arrow {
    display: flex;
    align-items: center;
    transition: transform 0.3s ease;
}

.webworq-ss-trigger-arrow svg {
    fill: currentColor;
}

.webworq-ss-open .webworq-ss-trigger-arrow {
    transform: rotate(180deg);
}

/* Collapsible panel */
.webworq-ss-collapsible-panel {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.25s ease,
                margin 0.25s ease;
    margin-top: 0;
}

.webworq-ss-open .webworq-ss-collapsible-panel {
    max-height: 500px;
    opacity: 1;
    margin-top: 10px;
}

.webworq-ss-preset-custom .webworq-ss-collapsible-panel {
    background: var(--webworq-ss-collapsible-panel-bg, #f9f9f9);
}

/* Inside the panel, show labels and stack vertically */
.webworq-ss-mode-collapsible .webworq-ss-collapsible-panel .webworq-ss-buttons-wrap {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
}

.webworq-ss-mode-collapsible .webworq-ss-collapsible-panel .webworq-ss-btn {
    width: 100%;
    height: auto;
    padding: 10px 16px;
    justify-content: flex-start;
    gap: 10px;
    border-radius: 8px;
    transition: background 0.15s ease, transform 0.1s ease;
}

.webworq-ss-mode-collapsible .webworq-ss-collapsible-panel .webworq-ss-btn .webworq-ss-icon {
    flex-shrink: 0;
}

.webworq-ss-mode-collapsible .webworq-ss-collapsible-panel .webworq-ss-btn .webworq-ss-label {
    margin-left: 0;
    font-size: 0.85em;
}

/* =============================================
   MODE: FLOATING FAB
   ============================================= */

.webworq-ss-floating-wrap {
    position: fixed;
    z-index: 99999;
    display: flex;
    align-items: center;
    gap: 0;
}

/* --- Floating positions --- */
.webworq-ss-float-bottom-right  { bottom: 24px; right: 24px; flex-direction: row; }
.webworq-ss-float-top-right     { top: 24px; right: 24px; flex-direction: row; }
.webworq-ss-float-middle-right  { top: 50%; right: 24px; transform: translateY(-50%); flex-direction: row; }

.webworq-ss-float-bottom-left   { bottom: 24px; left: 24px; flex-direction: row-reverse; }
.webworq-ss-float-top-left      { top: 24px; left: 24px; flex-direction: row-reverse; }
.webworq-ss-float-middle-left   { top: 50%; left: 24px; transform: translateY(-50%); flex-direction: row-reverse; }

.webworq-ss-float-bottom-right .webworq-ss-floating-options,
.webworq-ss-float-top-right .webworq-ss-floating-options,
.webworq-ss-float-middle-right .webworq-ss-floating-options {
    flex-direction: row;
    padding-right: 12px;
    padding-bottom: 0;
}

.webworq-ss-float-bottom-left .webworq-ss-floating-options,
.webworq-ss-float-top-left .webworq-ss-floating-options,
.webworq-ss-float-middle-left .webworq-ss-floating-options {
    flex-direction: row;
    padding-left: 12px;
    padding-bottom: 0;
}

/* Main FAB trigger */
.webworq-ss-fab-trigger {
    width: var(--webworq-ss-fab-size, 56px);
    height: var(--webworq-ss-fab-size, 56px);
    border-radius: 50%;
    background: #333;
    color: #fff;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 16px rgba(0,0,0,0.25);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
    position: relative;
    z-index: 2;
    -webkit-tap-highlight-color: transparent;
}

.webworq-ss-preset-custom .webworq-ss-fab-trigger {
    background: var(--webworq-ss-floating-trigger-bg, #333);
}

.webworq-ss-fab-trigger:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 24px rgba(0,0,0,0.3);
}

.webworq-ss-fab-trigger:active {
    transform: scale(0.95);
}

.webworq-ss-fab-icon-share,
.webworq-ss-fab-icon-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    position: absolute;
    transition: opacity 0.2s ease, transform 0.3s ease;
}

.webworq-ss-fab-icon-share svg,
.webworq-ss-fab-icon-close svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.webworq-ss-fab-icon-close {
    opacity: 0;
    transform: rotate(-90deg);
}

.webworq-ss-fab-open .webworq-ss-fab-icon-share {
    opacity: 0;
    transform: rotate(90deg);
}

.webworq-ss-fab-open .webworq-ss-fab-icon-close {
    opacity: 1;
    transform: rotate(0deg);
}

/* Floating options container */
.webworq-ss-floating-options {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    pointer-events: none;
}

.webworq-ss-fab-open .webworq-ss-floating-options {
    pointer-events: auto;
}

/* Individual FAB options */
.webworq-ss-fab-option {
    width: var(--webworq-ss-btn-size, 40px);
    height: var(--webworq-ss-btn-size, 40px);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    opacity: 0;
    transform: scale(0.3) translateX(20px);
    transition: opacity 0.2s ease, transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.15s ease;
    position: relative;
    -webkit-tap-highlight-color: transparent;
}

.webworq-ss-fab-option .webworq-ss-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--webworq-ss-icon-size, 20px);
    height: var(--webworq-ss-icon-size, 20px);
}

.webworq-ss-fab-option .webworq-ss-icon svg {
    fill: currentColor;
}

.webworq-ss-fab-open .webworq-ss-fab-option {
    opacity: 1;
    transform: scale(1) translateX(0);
}

.webworq-ss-float-bottom-left .webworq-ss-fab-option,
.webworq-ss-float-top-left .webworq-ss-fab-option,
.webworq-ss-float-middle-left .webworq-ss-fab-option {
    transform: scale(0.3) translateX(-20px);
}

.webworq-ss-float-bottom-left.webworq-ss-fab-open .webworq-ss-fab-option,
.webworq-ss-float-top-left.webworq-ss-fab-open .webworq-ss-fab-option,
.webworq-ss-float-middle-left.webworq-ss-fab-open .webworq-ss-fab-option {
    transform: scale(1) translateX(0);
}

.webworq-ss-fab-open .webworq-ss-fab-option {
    transition-delay: calc(var(--webworq-ss-fab-index, 0) * 0.04s);
}

.webworq-ss-fab-option:active {
    transform: scale(0.95) !important;
}

/* Tooltip on hover (desktop) — appears above icons */
.webworq-ss-fab-tooltip {
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    background: #333;
    color: #fff;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 12px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
}

.webworq-ss-fab-tooltip::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: #333;
}

.webworq-ss-float-top-right .webworq-ss-fab-tooltip,
.webworq-ss-float-top-left .webworq-ss-fab-tooltip {
    bottom: auto;
    top: calc(100% + 10px);
}

.webworq-ss-float-top-right .webworq-ss-fab-tooltip::after,
.webworq-ss-float-top-left .webworq-ss-fab-tooltip::after {
    top: auto;
    bottom: 100%;
    border-top-color: transparent;
    border-bottom-color: #333;
}

.webworq-ss-fab-option:hover .webworq-ss-fab-tooltip {
    opacity: 1;
}

/* Backdrop (mobile) */
.webworq-ss-fab-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.3);
    z-index: 99998;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
}

.webworq-ss-fab-backdrop-visible {
    opacity: 1;
    pointer-events: auto;
}

/* =============================================
   MOBILE RESPONSIVE
   ============================================= */

@media (max-width: 600px) {
    .webworq-ss-mode-inline.webworq-ss-with-labels .webworq-ss-label {
        display: none;
    }
    .webworq-ss-mode-inline.webworq-ss-with-labels .webworq-ss-btn {
        width: var(--webworq-ss-btn-size, 40px);
        padding: 0;
    }

    .webworq-ss-mode-inline .webworq-ss-buttons-wrap {
        gap: 6px;
    }

    .webworq-ss-mode-collapsible {
        display: block;
    }
    .webworq-ss-trigger {
        width: 100%;
        justify-content: center;
    }

    .webworq-ss-float-bottom-right  { bottom: 16px; right: 16px; }
    .webworq-ss-float-bottom-left   { bottom: 16px; left: 16px; }
    .webworq-ss-float-top-right     { top: 16px; right: 16px; }
    .webworq-ss-float-top-left      { top: 16px; left: 16px; }
    .webworq-ss-float-middle-right  { right: 16px; }
    .webworq-ss-float-middle-left   { left: 16px; }

    .webworq-ss-fab-tooltip {
        display: none;
    }

    .webworq-ss-fab-trigger {
        width: 50px;
        height: 50px;
    }
}

@media (pointer: coarse) {
    .webworq-ss-btn {
        min-width: 44px;
        min-height: 44px;
    }

    .webworq-ss-fab-option {
        min-width: 44px;
        min-height: 44px;
    }

    .webworq-ss-fab-tooltip {
        display: none;
    }

    .webworq-ss-mode-collapsible .webworq-ss-collapsible-panel .webworq-ss-btn {
        padding: 12px 16px;
    }
}

/* =============================================
   DIVI COMPATIBILITY
   ============================================= */

.et_pb_post .webworq-ss-share-buttons,
.et_pb_module .webworq-ss-share-buttons {
    margin: 1.5em 0;
}

.et_pb_post .webworq-ss-btn,
.et_pb_module .webworq-ss-btn {
    text-decoration: none !important;
}

.et_pb_post .webworq-ss-trigger,
.et_pb_module .webworq-ss-trigger {
    text-decoration: none !important;
}
