.dvBrandsPageGrid,
.dvOffersGrid,
.dvStoresGrid {
    display: grid;
    gap: 1.25rem;
}

.dvBrandsPageGrid {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

.dvBrandCard {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem;
    border: 1px solid var(--vBorderColor, #e5e7eb);
    border-radius: 8px;
    text-decoration: none;
    color: inherit;
    background: #fff;
}

.dvBrandCard .imBrand {
    width: 100%;
    height: 80px;
    object-fit: contain;
}

.lbBrandName {
    font-weight: 600;
}

.lbBrandDesc {
    font-size: 0.875rem;
    color: #6b7280;
}

.dvOffersGrid {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.dvOfferCard {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem;
    border: 1px solid var(--vBorderColor, #e5e7eb);
    border-radius: 8px;
    text-decoration: none;
    color: inherit;
    background: #fff;
    position: relative;
}

.lbOfferBadge {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    background: #111827;
    color: #fff;
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
}

.dvOfferCard .imOffer {
    width: 100%;
    height: 140px;
    object-fit: cover;
    border-radius: 4px;
}

.lbOfferTitle {
    font-weight: 600;
}

.lbOfferDesc {
    font-size: 0.875rem;
    color: #6b7280;
}

.dvStoresGrid {
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.dvStoreCard {
    padding: 1.25rem;
    border: 1px solid var(--vBorderColor, #e5e7eb);
    border-radius: 8px;
    background: #fff;
}

.lbStoreName {
    margin: 0 0 0.25rem;
    font-size: 1.125rem;
}

.lbStoreCity,
.lbStoreAddress {
    margin: 0.25rem 0;
    color: #4b5563;
}

.lnStoreContact {
    display: inline-block;
    margin-top: 0.75rem;
}

.dvInstitutionalBlocks {
    display: grid;
    gap: 1.25rem;
}

.dvInstitutionalBlock {
    padding: 1.25rem;
    border: 1px solid var(--vBorderColor, #e5e7eb);
    border-radius: 8px;
    background: #fff;
}

.lbInstitutionalBlockTitle {
    margin: 0 0 0.5rem;
}

.lbInstitutionalBlockText {
    margin: 0 0 0.75rem;
    color: #4b5563;
}

.lnInstitutionalLink {
    font-weight: 600;
}

.dvContactLayout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

@media (max-width: 768px) {
    .dvContactLayout {
        grid-template-columns: 1fr;
    }
}

.lbContactTitle {
    margin-top: 0;
}

.lbContactItem {
    margin: 0.5rem 0;
}

.fmContactDemo {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.lbFormLabel {
    font-weight: 600;
    font-size: 0.875rem;
}

.txForm {
    padding: 0.625rem 0.75rem;
    border: 1px solid #d1d5db;
    border-radius: 6px;
}

.txFormArea {
    resize: vertical;
}

.btContactDemo,
.btCartCheckout,
.btDemoNav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.625rem 1rem;
    border: none;
    border-radius: 6px;
    background: #111827;
    color: #fff;
    text-decoration: none;
    cursor: pointer;
    font: inherit;
}

.dvCartTable {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.dvCartRow {
    display: grid;
    grid-template-columns: 80px 1fr auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem;
    border: 1px solid var(--vBorderColor, #e5e7eb);
    border-radius: 8px;
    background: #fff;
}

.imCartProduct {
    width: 80px;
    height: 80px;
    object-fit: cover;
    border-radius: 4px;
}

.lnCartName {
    font-weight: 600;
    text-decoration: none;
    color: inherit;
}

.lbCartQty {
    margin: 0.25rem 0 0;
    font-size: 0.875rem;
    color: #6b7280;
}

.dvCartSummary {
    margin-top: 1.5rem;
    padding: 1.25rem;
    border: 1px solid var(--vBorderColor, #e5e7eb);
    border-radius: 8px;
    background: #fff;
}

.lbCartTotal {
    margin: 0 0 1rem;
    font-size: 1.125rem;
}

.lnCartContinue {
    display: inline-block;
    margin-left: 1rem;
}

.dvDemoNavLinksInner {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.dvBreadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.875rem;
}

.lnBreadcrumb {
    text-decoration: none;
}

.lbBreadcrumbSep {
    color: #9ca3af;
}

.lbBreadcrumbCurrent {
    color: #6b7280;
}
