/**
 * ZooD Elements Core Styles
 */

:root {
    /* Colors - Base */
    --zood-base-primary: #26d07c;
    --zood-base-primary-foreground: #f8fafc;

    --zood-base-secondary: #f1f5f9;
    --zood-base-secondary-foreground: #0f172a;

    --zood-base-destructive: #dc2626;
    /* custom/destructive dark:destructive\90 */
    --zood-base-destructive-foreground: #fef2f2;

    --zood-base-accent: #f8fafc;
    --zood-base-accent-foreground: #0f172a;

    --zood-base-input: #e2e8f0;
    --zood-base-ring: #94a3b8;
    --zood-custom-outline: #e7e5e4;

    --zood-base-white: #ffffff;
    --zood-base-black: #09090b;

    /* Spacing */
    --zood-spacing-0_5: 2px;
    --zood-spacing-1: 4px;
    --zood-spacing-2: 8px;
    --zood-spacing-3: 12px;
    --zood-spacing-4: 16px;
    --zood-spacing-6: 24px;

    /* Dimensions - Heights */
    --zood-height-h-4: 16px;
    --zood-height-h-6: 24px;
    --zood-height-h-8: 32px;
    --zood-height-h-9: 36px;
    --zood-height-h-10: 40px;

    /* Borders */
    --zood-radius-xs: 4px;
    --zood-radius-sm: 8px;
    --zood-radius-md: 10px;
    /* rounded-md from figma is 10 */
    --zood-radius-lg: 12px;
    --zood-radius-xl: 16px;

    /* Fonts */
    --zood-font-family: 'Pretendard', sans-serif;
    /* Fallback sans-serif */
    --zood-font-weight-medium: 500;
}

/* Button Base Style */
.zood-btn {
    display: inline-flex;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: var(--zood-spacing-2);
    border: 1px solid transparent;
    cursor: pointer;
    font-family: var(--zood-font-family);
    font-weight: var(--zood-font-weight-medium);
    line-height: normal;
    text-decoration: none;
    white-space: nowrap;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 200ms;
}

/* Focus States */
/* Focus States */
.zood-btn:focus-visible {
    outline: none !important;
    box-shadow: 0 0 0 3px var(--zood-custom-outline) !important;
}

/* Active / Pressed State */
.zood-btn:active {
    transform: scale(0.95);
}

/* Disabled State */
.zood-btn:disabled,
.zood-btn[aria-disabled="true"],
.zood-btn.disabled {
    opacity: 0.5 !important;
    pointer-events: none !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

/* Loading State */
.zood-btn.is-loading {
    opacity: 1 !important;
    pointer-events: none !important;
}

.zood-btn.is-loading .zood-btn__text,
.zood-btn.is-loading .zood-btn__icon {
    opacity: 0;
}

.zood-btn__spinner {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: inline-flex;
}

.zood-animate-spin {
    display: inline-block;
    animation: zood-spin 1s linear infinite;
}

@keyframes zood-spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

/* ============================
   VARIANTS
   ============================ */

/* Default */
.zood-btn--default {
    background-color: var(--zood-base-primary);
    color: var(--zood-base-primary-foreground);
    border-radius: var(--zood-radius-xl);
}

.zood-btn--default:hover {
    color: var(--zood-base-primary-foreground) !important;
    background-color: var(--zood-base-primary) !important;
    opacity: 0.9 !important;
    text-decoration: none !important;
}

/* Secondary */
.zood-btn--secondary {
    background-color: var(--zood-base-secondary);
    color: var(--zood-base-secondary-foreground);
    border-radius: var(--zood-radius-xl);
}

.zood-btn--secondary:hover {
    color: var(--zood-base-secondary-foreground) !important;
    background-color: #e2e8f0 !important;
    text-decoration: none !important;
}

/* Destructive */
.zood-btn--destructive {
    background-color: var(--zood-base-destructive);
    color: var(--zood-base-destructive-foreground);
    border-radius: var(--zood-radius-xl);
}

.zood-btn--destructive:hover {
    color: var(--zood-base-destructive-foreground) !important;
    background-color: var(--zood-base-destructive) !important;
    opacity: 0.9 !important;
    text-decoration: none !important;
}

/* Outline */
.zood-btn--outline {
    background-color: transparent;
    border-color: var(--zood-base-input);
    color: var(--zood-base-black);
    /* Default text color? Assumed black/foreground */
    border-radius: var(--zood-radius-xl);
}

.zood-btn--outline:hover {
    background-color: var(--zood-base-accent) !important;
    color: var(--zood-base-accent-foreground) !important;
    text-decoration: none !important;
    border-color: var(--zood-base-input) !important;
}

/* Ghost */
.zood-btn--ghost {
    background-color: transparent;
    color: var(--zood-base-black);
    border-radius: var(--zood-radius-xl);
}

.zood-btn--ghost:hover {
    background-color: var(--zood-base-accent) !important;
    color: var(--zood-base-accent-foreground) !important;
    text-decoration: none !important;
}

/* Link */
.zood-btn--link {
    background-color: transparent;
    color: var(--zood-base-black);
    text-decoration: underline;
    text-underline-offset: 4px;
    padding: 0;
    height: auto !important;
    /* Override size heights */
    border: none;
}

.zood-btn--link:hover {
    text-decoration: underline !important;
    opacity: 0.8 !important;
}

/* ============================
   SIZES
   ============================ */

/* xxs */
.zood-btn--size-xxs {
    height: var(--zood-height-h-6);
    /* 24px */
    padding: 0 var(--zood-spacing-2);
    font-size: 10px;
    /* text-xxs */
    border-radius: var(--zood-radius-sm);
}

/* xs */
.zood-btn--size-xs {
    height: var(--zood-height-h-8);
    /* 32px */
    padding: 0 var(--zood-spacing-3);
    font-size: 12px;
    /* text-xs */
    border-radius: var(--zood-radius-md);
}

/* sm */
.zood-btn--size-sm {
    height: var(--zood-height-h-9);
    /* 36px */
    padding: 0 var(--zood-spacing-4);
    font-size: 14px;
    /* text-sm */
    border-radius: var(--zood-radius-lg);
}

/* default (h-10) */
.zood-btn--size-default {
    height: var(--zood-height-h-10);
    /* 40px */
    padding: 0 var(--zood-spacing-6);
    /* 24px */
    font-size: 14px;
    /* text-sm */
    border-radius: var(--zood-radius-xl);
}

/* lg */
.zood-btn--size-lg {
    height: 44px;
    padding: 0 var(--zood-spacing-6);
    font-size: 16px;
    border-radius: var(--zood-radius-xl);
}


/* Icon Sizes */
.zood-btn--size-icon-xxs {
    height: var(--zood-height-h-6);
    width: var(--zood-height-h-6);
    padding: 0;
    border-radius: var(--zood-radius-sm);
}

.zood-btn--size-icon-xs {
    height: var(--zood-height-h-8);
    width: var(--zood-height-h-8);
    padding: 0;
    border-radius: var(--zood-radius-md);
}

.zood-btn--size-icon-sm {
    height: var(--zood-height-h-9);
    width: var(--zood-height-h-9);
    padding: 0;
    border-radius: var(--zood-radius-lg);
}

.zood-btn--size-icon {
    /* Default icon */
    height: var(--zood-height-h-10);
    width: var(--zood-height-h-10);
    padding: 0;
    border-radius: var(--zood-radius-xl);
}

.zood-btn--size-icon-lg {
    height: 44px;
    width: 44px;
    padding: 0;
    border-radius: var(--zood-radius-xl);
}

/* Elementor Editor fixes */
.elementor-editor-active .zood-btn {
    pointer-events: none;
}