/* ============================================================================
   LORD HENTAİ — Layout (Container, Grid, Flex, Section, Responsive)
   ============================================================================ */

/* ── Container ── */
.container {
    width: 100%;
    max-width: var(--container-xl);
    margin: 0 auto;
    padding: 0 var(--sp-4);
}

@media (min-width: 768px) {
    .container { padding: 0 var(--sp-6); }
}

.container-sm { max-width: var(--container-sm); }
.container-md { max-width: var(--container-md); }
.container-lg { max-width: var(--container-lg); }

/* ── Page Shell ── */
.page-content {
    min-height: calc(100vh - var(--header-h) - 200px);
    padding-top: calc(var(--header-h) + 64px);
    padding-bottom: calc(var(--mobile-dock-h, 80px) + 32px);
}

@media (max-width: 768px) {
    .page-content {
        padding-top: calc(var(--header-h) + 28px);
        padding-bottom: calc(var(--mobile-dock-h, 80px) + 24px);
    }
}

/* ── Grid ── */
.grid {
    display: grid;
    gap: var(--sp-4);
}

.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
.grid-5 { grid-template-columns: repeat(5, 1fr); }
.grid-6 { grid-template-columns: repeat(6, 1fr); }

/* Responsive grid with named breakpoints */
@media (max-width: 479px) {
    .grid-2, .grid-3, .grid-4, .grid-5, .grid-6 { grid-template-columns: repeat(2, 1fr); }
    .grid { gap: var(--sp-3); }
}

@media (min-width: 480px) and (max-width: 767px) {
    .grid-3, .grid-4, .grid-5, .grid-6 { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 768px) and (max-width: 1023px) {
    .grid-4, .grid-5, .grid-6 { grid-template-columns: repeat(4, 1fr); }
}

@media (min-width: 1024px) {
    .grid-6 { grid-template-columns: repeat(6, 1fr); }
    .grid-5 { grid-template-columns: repeat(5, 1fr); }
}

/* ── Flex ── */
.flex { display: flex; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.justify-end { justify-content: flex-end; }
.gap-1 { gap: var(--sp-1); }
.gap-2 { gap: var(--sp-2); }
.gap-3 { gap: var(--sp-3); }
.gap-4 { gap: var(--sp-4); }
.gap-6 { gap: var(--sp-6); }
.gap-8 { gap: var(--sp-8); }
.flex-1 { flex: 1; }
.flex-shrink-0 { flex-shrink: 0; }

/* ── Section ── */
.section {
    padding: var(--sp-8) 0;
}

.section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--sp-5);
    gap: var(--sp-4);
}

.section-title {
    font-size: var(--text-xl);
    font-weight: 700;
    color: var(--text);
    display: flex;
    align-items: center;
    gap: var(--sp-3);
}

.section-title::before {
    content: '';
    width: 4px;
    height: 22px;
    background: var(--gradient-accent);
    border-radius: var(--r-full);
    flex-shrink: 0;
}

.section-link {
    font-size: var(--text-sm);
    color: var(--accent);
    font-weight: 500;
    transition: all var(--t-fast);
    white-space: nowrap;
}

.section-link:hover {
    color: var(--accent-hover);
    text-shadow: 0 0 8px var(--accent-glow);
}

/* ── Horizontal Scroll Strip ── */
.h-scroll {
    display: flex;
    gap: var(--sp-3);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: var(--sp-2);
}

.h-scroll::-webkit-scrollbar { height: 3px; }
.h-scroll::-webkit-scrollbar-thumb { background: var(--glass-border); border-radius: var(--r-full); }
.h-scroll > * { scroll-snap-align: start; flex-shrink: 0; }

/* ── Pagination ── */
.pagination {
    display: flex;
    justify-content: center;
    gap: var(--sp-1);
    margin: var(--sp-8) 0 var(--sp-4);
    flex-wrap: wrap;
}

.pagination-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 var(--sp-2);
    font-size: var(--text-sm);
    font-weight: 500;
    color: var(--text-secondary);
    background: var(--glass);
    border: 1px solid var(--glass-border);
    border-radius: var(--r-sm);
    transition: all var(--t-fast);
}

.pagination-btn:hover {
    color: var(--accent);
    border-color: var(--glass-border-hover);
    background: var(--accent-subtle);
}

.pagination-btn.active {
    color: #fff;
    background: var(--gradient-accent);
    border-color: transparent;
    box-shadow: var(--shadow-glow-sm);
}

.pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color: var(--text-muted);
}

/* ── Loading Skeleton ── */
.skeleton {
    background: linear-gradient(90deg,
        var(--glass) 25%,
        var(--glass-raised) 50%,
        var(--glass) 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.5s infinite;
    border-radius: var(--r-md);
}

@keyframes skeleton-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ── Divider ── */
.divider {
    height: 1px;
    background: var(--glass-border);
    margin: var(--sp-4) 0;
}

/* ── Empty State ── */
.empty-state {
    text-align: center;
    padding: var(--sp-16) var(--sp-4);
}

.empty-state-icon {
    font-size: 3rem;
    margin-bottom: var(--sp-4);
    opacity: 0.4;
}

.empty-state-title {
    font-size: var(--text-lg);
    font-weight: 600;
    color: var(--text-secondary);
    margin-bottom: var(--sp-2);
}

.empty-state-desc {
    font-size: var(--text-sm);
    color: var(--text-tertiary);
    margin-bottom: var(--sp-6);
}