/* ==========================================================================
   Wunderwerkstatt — Base Stylesheet
   Shared across all public and landing pages.
   ========================================================================== */

/* 1. CSS Variables
   ========================================================================== */

:root {
    --wk-brown: #6B4C2A;
    --wk-brown-light: #8B6847;
    --wk-cream: #F5ECD7;
    --wk-cream-dark: #E8DCC6;
    --wk-teal: #5B9E8F;
    --wk-teal-dark: #4A8377;
    --wk-gold: #E8A83E;
    --wk-gold-light: #F0C56B;
    --wk-forest: #2C3E2D;
    --wk-forest-light: #3A5240;
    --wk-text: #3A2E1F;
    --wk-text-light: #7A6B5A;
    --wk-star: rgba(232, 168, 62, 0.3);
}

/* 2. Bulma Theme Overrides (HSL components)
   ========================================================================== */

:root {
    /* primary → teal */
    --bulma-primary-h: 167;
    --bulma-primary-s: 27%;
    --bulma-primary-l: 49%;

    /* link → brown */
    --bulma-link-h: 31;
    --bulma-link-s: 44%;
    --bulma-link-l: 29%;

    /* warning → gold */
    --bulma-warning-h: 37;
    --bulma-warning-s: 79%;
    --bulma-warning-l: 58%;

    /* success: keep Bulma default green — forest is too dark for status indicators */

    /* text → wk-text */
    --bulma-text-h: 33;
    --bulma-text-s: 30%;
    --bulma-text-l: 17%;

    /* scheme → cream background */
    --bulma-scheme-h: 42;
    --bulma-scheme-s: 60%;

    /* danger: keep Bulma default red */
}

/* 3. Base & Typography
   ========================================================================== */

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: var(--wk-text);
    background: var(--wk-cream);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

body.wk-auth-page {
    align-items: center;
    justify-content: center;
}

.wk-content { flex: 1; }

/* 4. Components
   ========================================================================== */

/* Loader spinner */
.loader {
    border: 4px solid var(--wk-cream-dark);
    border-top-color: var(--wk-teal);
    border-radius: 50%;
    width: 3em;
    height: 3em;
    animation: spin 0.6s linear infinite;
    margin: 0 auto;
}

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

/* Selectable tags (onboarding) */
.tag-selectable { cursor: pointer; user-select: none; }

.tag-selectable.is-selected {
    background-color: var(--wk-teal) !important;
    color: #fff !important;
    font-weight: bold;
}

.tag-selectable:not(.is-selected) {
    background-color: var(--wk-cream-dark);
    color: var(--wk-text);
}

/* Sticky bottom bar */
.sticky-bottom {
    position: sticky;
    bottom: 0;
    padding: 1rem 0;
    background: var(--wk-cream);
    z-index: 10;
}

/* Field validation error */
.field-error .label { color: #f14668; }

/* Step number badge */
.wk-step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--wk-gold);
    color: var(--wk-brown);
    font-weight: bold;
    font-size: 1.2rem;
    margin-bottom: 0.75rem;
}

/* CTA buttons */
.wk-cta {
    background: var(--wk-teal);
    color: #fff;
    border: none;
    font-weight: bold;
    padding: 0.75rem 2rem;
    border-radius: 8px;
    font-size: 1.1rem;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
}
.wk-cta:hover { background: var(--wk-teal-dark); color: #fff; }

.wk-cta-outline {
    background: transparent;
    color: var(--wk-gold);
    border: 2px solid var(--wk-gold);
    font-weight: bold;
    padding: 0.75rem 2rem;
    border-radius: 8px;
    font-size: 1.1rem;
    cursor: pointer;
    text-decoration: none;
    display: inline-block;
}
.wk-cta-outline:hover { background: var(--wk-gold); color: var(--wk-brown); }

/* Full-width CTA variant */
.wk-cta-block {
    width: 100%;
    font-size: 1.2rem;
    padding: 1rem;
}

/* 5. Forms
   ========================================================================== */

.input, .textarea, .select select {
    background-color: #fff;
    color: var(--wk-text);
}

.wk-progress-thin { height: 6px; }

/* 6. Auth Pages
   ========================================================================== */

.wk-auth-container {
    width: 100%;
    max-width: 480px;
    padding: 1rem;
}

.wk-auth-logo {
    text-align: center;
    margin-bottom: 1.5rem;
}

.wk-auth-logo img {
    width: 80px;
    height: 80px;
}

.wk-auth-logo p {
    margin-top: 0.5rem;
    font-size: 0.9rem;
    color: var(--wk-text-light);
}

.wk-auth-card {
    background: #fff;
    border: 1px solid var(--wk-cream-dark);
    border-radius: 12px;
    padding: 2rem;
}

/* 7. Landing Sections
   ========================================================================== */

.wk-dark { background: var(--wk-forest); color: #fff; }
.wk-navy { background: var(--wk-forest); color: #fff; }
.wk-light { background: var(--wk-cream); color: var(--wk-text); }
.wk-gradient { background: linear-gradient(135deg, var(--wk-forest), var(--wk-teal-dark)); color: #fff; }

.wk-sparkle { position: relative; overflow: hidden; }

.wk-sparkle::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image:
        radial-gradient(1px 1px at 10% 20%, var(--wk-star), transparent),
        radial-gradient(1px 1px at 30% 70%, var(--wk-star), transparent),
        radial-gradient(1.5px 1.5px at 50% 10%, var(--wk-star), transparent),
        radial-gradient(1px 1px at 70% 60%, var(--wk-star), transparent),
        radial-gradient(1.5px 1.5px at 90% 30%, var(--wk-star), transparent),
        radial-gradient(1px 1px at 15% 85%, var(--wk-star), transparent),
        radial-gradient(1px 1px at 85% 90%, var(--wk-star), transparent);
    pointer-events: none;
    z-index: 0;
}

.wk-sparkle > * { position: relative; z-index: 1; }

.wk-section { padding: 4rem 1.5rem; }
@media (min-width: 769px) { .wk-section { padding: 5rem 3rem; } }

/* 8. Navbar
   ========================================================================== */

.wk-navbar { background-color: var(--wk-forest-light); }

.wk-navbar .navbar-burger span { background-color: white; }
.wk-navbar .navbar-link::after { border-color: white; }

.wk-navbar .navbar-item:hover,
.wk-navbar .navbar-item:focus,
.wk-navbar .navbar-link:hover,
.wk-navbar .navbar-item.has-dropdown:hover .navbar-link {
    background-color: var(--wk-forest) !important;
    color: white !important;
}

.wk-navbar .navbar-link { background-color: transparent; }

.wk-navbar .navbar-dropdown {
    background-color: var(--wk-forest-light);
    border-top: 2px solid var(--wk-gold);
}

.wk-navbar .navbar-dropdown .navbar-item { color: white; }

.wk-navbar .navbar-dropdown .navbar-item:hover,
.wk-navbar .navbar-dropdown .navbar-item:focus {
    background-color: var(--wk-forest) !important;
    color: white !important;
}

.wk-navbar .navbar-dropdown .navbar-divider { background-color: var(--wk-forest); }

.wk-navbar .navbar-menu { background-color: var(--wk-forest-light); }

.wk-navbar-logo { max-height: 32px; margin-right: 0.5rem; }

.wk-navbar-logout { margin: 0; }

/* 9. PWA Install Banner
   ========================================================================== */

#wk-pwa-banner {
    --_forest: var(--wk-forest, #2C3E2D);
    --_gold: var(--wk-gold, #E8A83E);
    --_brown: var(--wk-brown, #6B4C2A);
    background: var(--_forest);
    border-bottom: 2px solid var(--_gold);
    position: relative;
    z-index: 40;
}

.wk-install-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 0.6rem 2.5rem 0.6rem 1rem;
    flex-wrap: wrap;
}

.wk-install-inner span {
    color: #fff;
    font-size: 0.95rem;
}

.wk-install-btn {
    background: var(--_gold);
    color: var(--_brown);
    border: none;
    border-radius: 6px;
    padding: 0.35rem 1rem;
    font-weight: bold;
    font-size: 0.85rem;
    cursor: pointer;
    white-space: nowrap;
}
.wk-install-btn:hover { opacity: 0.85; }

.wk-install-close {
    position: absolute;
    top: 50%;
    right: 0.75rem;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: rgba(255, 255, 255, 0.7);
    font-size: 1.2rem;
    cursor: pointer;
    padding: 0.25rem;
    line-height: 1;
}
.wk-install-close:hover { color: #fff; }

/* 10. Footer
   ========================================================================== */

.wk-footer {
    background-color: var(--wk-forest);
    padding: 2rem 1.5rem;
}

/* 11. Utility Classes
   ========================================================================== */

.wk-audio-player { width: 100%; }
.wk-hero-image { max-width: 600px; width: 100%; border-radius: 12px; }
.wk-logo-small { max-width: 150px; }
.wk-subtitle-centered { max-width: 600px; margin: 0 auto; }
.wk-narrow-container { max-width: 700px; }
.wk-content-justified { text-align: justify; }
.wk-box-rounded { border-radius: 12px; }
.wk-faq-summary { cursor: pointer; font-weight: bold; }
.wk-inline-form { display: inline; }
.wk-safety-text { margin-top: 0.5rem; }
