.hero-gradient {
    background: linear-gradient(var(--bs-primary), var(--bs-secondary));
}

.hero-parallax {
    height: 600px;
    background: var(--bs-tertiary-bg);
}

/* Custom Utilities for PIV Digital */
.mw-350 {
    max-width: 350px;
}

.mh-300 {
    max-height: 300px;
}

.min-h-300 {
    min-height: 300px;
}

.w-250 {
    width: 250px;
}

.w-30 {
    width: 30px;
}

.w-150 {
    width: 150px;
}

/* Heading Font Override */
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5,
.display-6 {
    font-family: var(--bs-heading-font-family);
}

/* Font Demos */
.font-heading-demo {
    font-family: var(--bs-heading-font-family) !important;
}

.font-body-demo {
    font-family: var(--bs-body-font-family) !important;
}

/* Ensure all headings inside body demo use the body font for representation */
.font-body-demo h1, .font-body-demo h2, .font-body-demo h3, 
.font-body-demo h4, .font-body-demo h5, .font-body-demo h6,
.font-body-demo .h1, .font-body-demo .h2, .font-body-demo .h3, 
.font-body-demo .h4, .font-body-demo .h5, .font-body-demo .h6 {
    font-family: inherit !important;
}

/* Gradient Demos */
/* Gradient Demos */
/* Gradient Demos */
.bg-gradient-demo-1 { background: linear-gradient(135deg, var(--bs-primary), var(--bs-secondary)); }
.bg-gradient-demo-2 { background: linear-gradient(135deg, var(--bs-primary), var(--bs-success)); }
.bg-gradient-demo-3 { background: linear-gradient(135deg, var(--bs-primary), var(--bs-danger)); }
.bg-gradient-demo-4 { background: linear-gradient(135deg, var(--bs-secondary), var(--bs-success)); }
.bg-gradient-demo-5 { background: linear-gradient(135deg, var(--bs-secondary), var(--bs-danger)); }
.bg-gradient-demo-6 { background: linear-gradient(135deg, var(--bs-success), var(--bs-danger)); }
.bg-gradient-demo-7 { background: linear-gradient(135deg, var(--bs-primary), var(--bs-dark)); }
.bg-gradient-demo-8 { background: linear-gradient(135deg, var(--bs-secondary), var(--bs-dark)); }
.bg-gradient-demo-9 { background: linear-gradient(135deg, var(--bs-primary), var(--bs-light)); }
.bg-gradient-demo-10 { background: linear-gradient(135deg, var(--bs-secondary), var(--bs-light)); }
.bg-gradient-demo-11 { background: linear-gradient(135deg, var(--bs-success), var(--bs-light)); }
.bg-gradient-demo-12 { background: linear-gradient(135deg, var(--bs-danger), var(--bs-light)); }

/* Theme Visibility */
/* Default (Light Mode) */
.d-theme-dark {
    display: none !important;
}

/* Dark Mode */
:root[data-bs-theme="dark"] .d-theme-light {
    display: none !important;
}

:root[data-bs-theme="dark"] .d-theme-dark {
    display: inline-block !important;
}

/* Masonry Layout */
.masonry-grid {
    column-count: 1;
    column-gap: 1.5rem;
    width: 100%;
}

@media (min-width: 768px) {
    .masonry-grid {
        column-count: 2;
    }
}

.masonry-item {
    display: inline-block;
    width: 100%;
    margin-bottom: 1.5rem;
    break-inside: avoid;
}