<style>
/* Gallery Section - Desktop Only */
.gallery {
background-color: var(--subtle-color);
overflow: hidden;
padding: 8rem 0;
}

.gallery-title {
text-align: center;
margin-bottom: 2rem;
}

.gallery-container {
position: relative;
height: 478px; /* Consistent height for desktop */
margin: 0;
overflow: hidden;
width: 100%;
}

.gallery-track {
display: flex;
height: 100%;
transition: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
cursor: grab;
align-items: center;
will-change: transform;
padding: 0;
margin: 0;
width: auto;
}

.gallery-track.dragging {
transition: none;
cursor: grabbing;
}

/* Gallery items - desktop only */
.gallery-item,
.gallery-item.portrait,
.gallery-item.landscape {
width: 302px;
min-width: 302px;
max-width: 302px;
height: 478px;
margin: 0 0.5rem !important;
flex: 0 0 302px;
box-sizing: border-box;
overflow: hidden;
position: relative;
}

.gallery-item.clone.prepend-clone {
margin-left: 0.5rem !important;
}

.gallery-item:first-child {
margin-left: 1rem;
}

.gallery-item img {
height: 100%;
width: 100%;
object-fit: cover;
object-position: center;
transition: var(--transition);
filter: grayscale(30%);
display: block;
}

.gallery-item:hover img {
transform: scale(1.03);
filter: grayscale(0%);
}

.gallery-nav {
display: flex;
justify-content: center;
gap: 1.5rem;
margin-top: 3rem;
}

.gallery-dot {
width: 8px;
height: 8px;
border-radius: 50%;
background: rgba(28, 28, 28, 0.2);
cursor: pointer;
transition: var(--transition);
}

.gallery-dot.active {
background: var(--secondary-color);
}

/* Loading and error states */
.gallery-loading,
.gallery-error {
width: 100%;
padding: 40px;
text-align: center;
color: #666;
font-style: italic;
}

.gallery-item.image-error {
position: relative;
}

.gallery-item.image-error::before {
content: "Image not available";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 16px;
color: #666;
z-index: 1;
}

/* iOS/Safari specific fixes */
@supports (-webkit-touch-callout: none) {
.gallery-container {
-webkit-overflow-scrolling: touch;
}

.gallery-track {
-webkit-transform: translateZ(0);
transform: translateZ(0);
}
}

/* Remove all mobile styles - let JS handle this */
@media (max-width: 768px) {
/* Empty mobile media query - the JavaScript will handle all mobile styling */
}
</style>