:root {
    --vb-burgundy: #5A0F2E;
    --vb-ruby: #8C1D40;
    --vb-orange: #F26D21;
    --vb-peach: #FFB38A;
    --vb-gold: #F4C15D;
    --vb-offwhite: #FDF3E7;
    --vb-dark: #3A0A1E;
}

html, body {
    font-family: 'Montserrat', sans-serif;
    background-color: var(--vb-offwhite);
    margin: 0;
    padding: 0;
}

.vb-heading {
    font-family: 'Playfair Display', serif;
    color: var(--vb-burgundy);
}

.vb-hero {
    background: linear-gradient(135deg, var(--vb-burgundy) 0%, var(--vb-ruby) 60%, var(--vb-orange) 100%);
    border-radius: 16px;
    color: white;
    padding: 2rem 1.5rem;
    position: relative;
    overflow: hidden;
}

.vb-hero::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(244, 193, 93, 0.3) 0%, transparent 70%);
    border-radius: 50%;
}

.vb-category-chip {
    border-radius: 12px !important;
    border: 1px solid rgba(90, 15, 46, 0.15) !important;
    background: white !important;
    transition: all 0.2s ease;
}

.vb-category-chip:hover {
    border-color: var(--vb-orange) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(90, 15, 46, 0.1);
}

.vb-bottom-nav {
    position: fixed;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 480px;
    background: var(--vb-burgundy);
    z-index: 1000;
    border-top: 1px solid rgba(244, 193, 93, 0.2);
    padding-bottom: env(safe-area-inset-bottom);
}

.vb-bottom-nav .mud-button-root {
    min-height: 44px;
    min-width: 44px;
}

.vb-page-content {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}

.vb-main-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: calc(100dvh - 52px - 72px);
    padding-top: calc(52px + env(safe-area-inset-top)) !important;
    padding-bottom: calc(72px + env(safe-area-inset-bottom)) !important;
    width: 100%;
    max-width: 480px;
    margin-left: auto !important;
    margin-right: auto !important;
}

.vb-page-content > .mud-appbar {
    width: 100%;
    max-width: 480px;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%);
}

.vb-appbar-content {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
    padding: 0 8px;
}

.vb-store-container.mud-container {
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100%;
    max-width: 480px;
}

.vb-product-card {
    border-radius: 12px !important;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.vb-product-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(90, 15, 46, 0.15) !important;
}

.vb-price {
    color: var(--vb-burgundy);
    font-weight: 700;
}

.vb-price-promo {
    color: var(--vb-orange);
    font-weight: 700;
}

.vb-tagline {
    font-size: 0.65rem;
    letter-spacing: 0.15em;
    color: var(--vb-gold);
    text-transform: uppercase;
}

.vb-brand-logo {
    height: 48px;
    width: auto;
    max-width: 180px;
    object-fit: contain;
}

.vb-brand-hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    background: white;
    border-radius: 16px;
    padding: 1.5rem 1rem;
    text-align: center;
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(90, 15, 46, 0.08);
    box-shadow: 0 4px 24px rgba(90, 15, 46, 0.06);
}

.vb-brand-hero::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 220px;
    height: 220px;
    background: radial-gradient(circle, rgba(242, 109, 33, 0.08) 0%, transparent 70%);
    pointer-events: none;
}

.vb-brand-hero::after {
    content: '';
    position: absolute;
    bottom: -30%;
    right: -20%;
    width: 160px;
    height: 160px;
    background: radial-gradient(circle, rgba(244, 193, 93, 0.15) 0%, transparent 70%);
    pointer-events: none;
}

.vb-brand-hero-img {
    display: block;
    height: auto;
    width: 100%;
    max-width: 260px;
    max-height: 140px;
    object-fit: contain;
    position: relative;
    z-index: 1;
    margin: 0 auto;
}

.vb-category-grid {
    justify-content: center;
}

.vb-brand-mark {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
}

.vb-brand-mark-icon {
    height: 36px;
    width: auto;
}

.vb-brand-mark-name {
    font-family: 'Playfair Display', serif;
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--vb-burgundy);
    line-height: 1.1;
    letter-spacing: 0.01em;
}

.vb-site-footer {
    background: var(--vb-burgundy);
    color: var(--vb-offwhite);
    margin-top: auto;
    padding-bottom: 0.5rem;
}

.vb-footer-brand {
    color: var(--vb-gold) !important;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.vb-footer-brand-link:hover .vb-footer-brand {
    color: var(--vb-peach) !important;
}

.vb-footer-site-link {
    color: rgba(253, 243, 231, 0.85) !important;
    font-size: 0.7rem !important;
    letter-spacing: 0.03em;
}

.vb-footer-site-link:hover {
    color: var(--vb-gold) !important;
}

.vb-footer-legal {
    color: rgba(253, 243, 231, 0.75) !important;
    font-size: 0.7rem !important;
    line-height: 1.5;
}

.vb-footer-copy {
    color: rgba(253, 243, 231, 0.6) !important;
    font-size: 0.65rem !important;
}

.vb-footer-divider {
    width: 60%;
    border-color: rgba(244, 193, 93, 0.25) !important;
}

.vb-admin-drawer {
    background: var(--vb-offwhite) !important;
}

.vb-admin-drawer .mud-nav-link {
    color: var(--vb-burgundy) !important;
    font-weight: 500;
}

.vb-admin-drawer .mud-nav-link .mud-nav-link-icon {
    color: var(--vb-ruby) !important;
}

.vb-admin-drawer .mud-nav-link:hover,
.vb-admin-drawer .mud-nav-link.active {
    background: rgba(90, 15, 46, 0.08) !important;
    color: var(--vb-burgundy) !important;
}

.vb-admin-drawer .mud-nav-link.active .mud-nav-link-icon {
    color: var(--vb-orange) !important;
}

.vb-cart-badge .mud-badge-badge {
    color: var(--vb-burgundy) !important;
    font-weight: 700;
    font-size: 0.65rem;
    min-width: 18px;
    height: 18px;
}

.vb-cart-nav-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
}

.vb-cart-nav-badge {
    position: absolute;
    top: -4px;
    right: -8px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--vb-gold);
    color: var(--vb-burgundy);
    font-size: 0.6rem;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
}

.mud-table-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.mud-input-slot input,
.mud-input-slot textarea,
.mud-input input,
.mud-input textarea {
    font-size: 16px !important;
}

.vb-admin-main {
    background: #FDF3E7;
    min-height: 100dvh;
    padding-bottom: calc(16px + env(safe-area-inset-bottom));
}

.vb-admin-header {
    flex-wrap: wrap;
    gap: 8px;
}

@media (hover: none) {
    .vb-product-card:hover,
    .vb-category-chip:hover {
        transform: none;
    }
}
