/* Fluid layout fixes */
html, body {
    overflow-x: hidden;
    width: 100%;
    max-width: 100%;
}

/* Container behaviors */
.container-fluid {
    width: 100%;
    max-width: 100%;
    padding-left: 15px;
    padding-right: 15px;
}

@media (min-width: 768px) {
    .container-fluid {
        padding-left: 30px;
        padding-right: 30px;
    }
}

@media (min-width: 1200px) {
    .container-fluid {
        padding-left: 60px;
        padding-right: 60px;
    }
}

/* Content wrappers */
.tm-page-wrap,
.tm-content-container,
#portfolio-wrap,
section {
    width: 100%;
    max-width: 100%;
    overflow: hidden;
}

/* Gallery specific */
.tm-catalog-item-list {
    width: 100%;
    margin: 0;
    padding: 15px;
}

.tm-catalog-item {
    height: 100%;
}

.tm-thumbnail-container {
    width: 100%;
    padding-top: 75%;
    position: relative;
}

.tm-catalog-item-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Video container */
#tm-video-container {
    width: 100%;
    overflow: hidden;
}

#tm-video {
    width: 100%;
    height: auto;
}

/* Filter list */
.filter-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 15px;
    justify-content: center;
}

/* Row fixes */
.row {
    margin-left: -15px;
    margin-right: -15px;
    width: calc(100% + 30px);
}

/* Responsive typography */
@media (max-width: 768px) {
    h1 { font-size: 2rem; }
    h2 { font-size: 1.75rem; }
    h3 { font-size: 1.5rem; }
}

/* Ensure images don't overflow */
img {
    max-width: 100%;
    height: auto;
}