// Custom theme styles
// Add theme-specific styles here that go beyond Bootstrap defaults

// Dark mode toggle button
.wp-bootstrap-dark-mode-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.375rem;
    color: currentColor;
    line-height: 1;
    transition: opacity 0.15s ease-in-out;

    &:hover {
        opacity: 0.75;
    }

    &:focus-visible {
        outline: 2px solid currentColor;
        outline-offset: 2px;
        border-radius: 0.25rem;
    }
}

// Transparent header variant
.header-transparent {
    position: absolute;
    width: 100%;
    z-index: $zindex-fixed;

    .navbar {
        background: transparent !important;
    }
}

// Force Bootstrap dark mode body colors past any WordPress global styles.
// WordPress may output body { background-color: ...; color: ...; } via
// global-styles that overrides Bootstrap's variable-based body styling.
html[data-bs-theme="dark"] body {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
}

// Dark mode for all form elements — catches plugin-generated controls
// that lack Bootstrap's .form-select / .form-control classes.
[data-bs-theme="dark"] {
    select,
    input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
    textarea {
        background-color: var(--bs-body-bg);
        color: var(--bs-body-color);
        border-color: var(--bs-border-color);
    }

    .offcanvas {
        --bs-offcanvas-bg: var(--bs-body-bg);
    }
}

// Dark mode overrides for block styles with hardcoded colors
[data-bs-theme="dark"] {
    .is-style-alert-info {
        background-color: #032830;
        border-color: #055160;
        color: #6edff6;
    }

    .is-style-alert-success {
        background-color: #051b11;
        border-color: #0a3622;
        color: #75b798;
    }

    .is-style-alert-warning {
        background-color: #332701;
        border-color: #664d03;
        color: #ffda6a;
    }

    .is-style-alert-danger {
        background-color: #2c0b0e;
        border-color: #58151c;
        color: #ea868f;
    }

    .is-style-card,
    .is-style-card-shadow {
        border-color: $gray-600;
        background: var(--bs-body-bg);
    }
}

// Skip link (accessibility)
.wp-bootstrap-skip-link {
    position: absolute;
    top: -100%;
    left: 0;
    z-index: $zindex-fixed + 10;
    padding: 0.5rem 1rem;
    background: var(--bs-primary);
    color: #fff;
    text-decoration: none;
    font-weight: 600;

    &:focus {
        top: 0;
    }
}

// Post featured image
.post-thumbnail {
    aspect-ratio: 16 / 9;
    object-fit: cover;
    width: 100%;
}

// Card thumbnail
.card-thumbnail {
    aspect-ratio: 3 / 2;
    object-fit: cover;
}

// Sidebar heading
.sidebar-heading {
    letter-spacing: 1.6px;
}

// Hero overlay
.hero-overlay {
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    opacity: 0.3;
}
