/* Theme: default — same visual language as the core storefront. */
:root {
    --theme-primary: #c5a059;
    --theme-secondary: #8e8e8e;
    --theme-accent: #D4AF37;
    --theme-background: #fdfdfd;
    --theme-surface: #ffffff;
    --theme-text: #5a5a5a;
    --theme-heading: #1a1a1a;
    --theme-font-title: 'Cinzel', serif;
    --theme-font-body: 'Lato', sans-serif;
    --theme-border-radius: 12px;
    --theme-page-bg-color: var(--theme-background);
}

body.theme-layout {
    position: relative;
    min-height: 100vh;
    background-color: var(--theme-page-bg-color, var(--bg-body));
}

body.theme-layout[style*="--theme-bg-image"]::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background-image: var(--theme-bg-image);
    background-repeat: var(--theme-bg-repeat, no-repeat);
    background-position: var(--theme-bg-position, center center);
    background-size: var(--theme-bg-size, cover);
    background-attachment: var(--theme-bg-attachment, scroll);
}

body.theme-layout[style*="--theme-bg-overlay"]::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: var(--theme-bg-overlay);
}

.theme-page-shell {
    position: relative;
    z-index: 0;
}

.theme-navbar-logo {
    max-height: 2rem;
    width: auto;
}

.theme-footer-tagline {
    color: rgba(255, 255, 255, 0.5);
}

.theme-footer-heading {
    color: #fff;
    font-size: 0.85rem;
}

.theme-footer-divider {
    border-color: rgba(255, 255, 255, 0.1);
    margin: 1.5rem 0;
}
