:root {
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-7: 32px;
    --space-8: 40px;
    --space-9: 48px;
    --space-10: 64px;
    --space-section: clamp(72px, 8vw, 120px);
    --radius-sm: 10px;
    --radius-md: 14px;
    --radius-lg: 24px;
    --radius-xl: 36px;
    --shadow-sm: 0 10px 30px rgba(15, 23, 42, .06);
    --shadow-md: 0 20px 50px rgba(15, 23, 42, .08);
    --shadow-lg: 0 30px 70px rgba(15, 23, 42, .12);
    --transition-base: .35s ease;
    --btn-sm-y: 9px;
    --btn-sm-x: 16px;
    --btn-md-y: 12px;
    --btn-md-x: 24px;
    --btn-lg-y: 15px;
    --btn-lg-x: 35px;
    --btn-sm-font: .875rem;
    --btn-md-font: .95rem;
    --btn-lg-font: 1rem;
}

body {
    transition: background-color var(--transition-base), color var(--transition-base);
}

.public-theme .bi {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    line-height: 1;
    vertical-align: -.125em;
}

.public-theme .bi::before {
    display: block;
    width: 1em;
    height: 1em;
    line-height: 1;
    text-align: center;
    vertical-align: 0;
}

.btn-sm,
.btn-md,
.btn-lg {
    border-radius: var(--button-radius, var(--radius-md));
    font-weight: 600;
    transition: color var(--transition-base), background-color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), opacity var(--transition-base);
}

.btn-sm {
    padding: var(--btn-sm-y) var(--btn-sm-x);
    font-size: var(--btn-sm-font);
}

.btn-md {
    padding: var(--btn-md-y) var(--btn-md-x);
    font-size: var(--btn-md-font);
}

.btn-lg {
    padding: var(--btn-lg-y) var(--btn-lg-x);
    font-size: var(--btn-lg-font);
}

[data-theme-toggle] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

@media (max-width: 991px) {
    :root {
        --space-section: 84px;
        --btn-md-y: 11px;
        --btn-md-x: 20px;
        --btn-lg-y: 12px;
        --btn-lg-x: 22px;
    }
}

@media (max-width: 767px) {
    :root {
        --space-section: 56px;
    }
}
