/*
 * LimageCMS v0.2 — F17 Mobile / Responsive final overrides
 *
 * This layer is intentionally loaded last.
 * Existing F1/F2/F8/F9/F10/F11/F13/F14 responsive rules remain intact.
 */

html,
body {
    overflow-x: hidden;
}

@media (max-width: 720px) {
    .container {
        width: min(calc(100% - 20px), var(--container));
    }

    .site-header__inner {
        gap: 10px;
    }

    .site-logo {
        font-size: 1.25rem;
    }

    .search-header-form {
        width: 100%;
        max-width: none;
        flex: 1 1 100%;
        order: 3;
    }

    .search-header-form__input,
    .search-header-form__button {
        min-height: 42px;
        height: 42px;
    }

    .site-nav {
        width: 100%;
    }

    .site-nav a,
    .site-nav__category-toggle {
        min-height: 42px;
    }

    .public-page,
    .gallery-page {
        padding: 18px;
        border-radius: 10px;
    }

    .page-header h1,
    .public-page h1,
    .gallery-header h1 {
        font-size: clamp(1.55rem, 7vw, 2rem);
    }

    .gallery-meta {
        gap: 7px 14px;
        margin-bottom: 18px;
    }

    .gallery-taxonomy-row {
        align-items: flex-start !important;
    }

    .gallery-taxonomy-list {
        min-width: 0;
    }

    .gallery-photo-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .photo-card {
        border-radius: 8px;
    }

    .model-header {
        gap: 14px;
    }

    .model-header__content {
        min-width: 0;
    }

    .related-galleries {
        margin-top: 30px;
        padding-top: 22px;
    }

    .related-galleries__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .gallery-card__body {
        padding: 11px 12px 13px;
    }

    .gallery-card__title {
        font-size: .95rem;
    }

    .gallery-card__meta {
        gap: 5px 9px;
        font-size: .8rem;
    }

    .search-result {
        padding: 12px;
        gap: 12px;
    }

    .search-result h2 {
        font-size: 1.05rem;
    }

    .search-empty {
        padding: 22px 16px;
    }
}

@media (max-width: 460px) {
    .container {
        width: min(calc(100% - 16px), var(--container));
    }

    .site-main {
        padding-top: 16px;
        padding-bottom: 28px;
    }

    .public-page,
    .gallery-page {
        padding: 14px;
        border-radius: 8px;
    }

    .site-nav a,
    .site-nav__category-toggle {
        min-height: 44px;
    }

    .gallery-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .models-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .model-header {
        display: block;
    }

    .model-header__avatar {
        margin-bottom: 12px;
    }

    .related-galleries__grid {
        grid-template-columns: 1fr;
    }

    .gallery-taxonomy-row {
        display: block !important;
    }

    .gallery-taxonomy-row__label {
        display: block;
        margin-bottom: 5px;
    }

    .gallery-taxonomy-list {
        gap: 5px;
    }

    .f10-gallery-page .gallery-taxonomy-chip,
    .f10-gallery-page .gallery-taxonomy-row > a,
    .f10-gallery-page .gallery-taxonomy-row > span:not(.gallery-taxonomy-row__label) {
        min-height: 36px;
        padding: 6px 9px;
    }

    .image-viewer {
        padding: 8px 42px;
    }

    .image-viewer__image {
        max-width: calc(100vw - 84px) !important;
        max-height: calc(100vh - 16px) !important;
    }

    .image-viewer__counter {
        bottom: 8px;
        font-size: 13px;
    }

    .search-header-form {
        gap: 5px;
    }

    .search-header-form__button {
        padding-inline: 12px;
    }

    .search-result__meta {
        gap: 5px 10px;
        font-size: .8rem;
    }
}

/* Prevent long titles/URLs/content from creating horizontal overflow. */
.gallery-card__title,
.gallery-page,
.public-page,
.model-page,
.search-page,
.search-result,
.site-footer,
.gallery-taxonomy-row,
.model-header__content {
    overflow-wrap: anywhere;
}
