/* ========== 现代响应式设计系统 - Mobile First ========== */
/* 替代现有的混乱媒体查询，建立统一的响应式规范 */

/* ========== 响应式断点变量 ========== */
:root {
    /* 标准断点 - 基于现代设备尺寸 */
    --breakpoint-xs: 475px;   /* 超小型手机 */
    --breakpoint-sm: 640px;   /* 小型设备（大手机） */
    --breakpoint-md: 768px;   /* 中型设备（平板） */
    --breakpoint-lg: 1024px;  /* 大型设备（小桌面） */
    --breakpoint-xl: 1280px;  /* 超大设备（桌面） */
    --breakpoint-2xl: 1536px; /* 2K显示器 */

    /* 容器最大宽度 */
    --container-sm: 640px;
    --container-md: 768px;
    --container-lg: 1024px;
    --container-xl: 1280px;
    --container-2xl: 1536px;

    /* 响应式间距 */
    --spacing-mobile: 1rem;
    --spacing-tablet: 1.5rem;
    --spacing-desktop: 2rem;
    --spacing-large: 3rem;
}

/* ========== 基础容器系统 ========== */

.container {
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--spacing-mobile);
}

/* Mobile First 容器响应式 */
@media (min-width: 640px) {
    .container {
        max-width: var(--container-sm);
        padding: 0 var(--spacing-tablet);
    }
}

@media (min-width: 768px) {
    .container {
        max-width: var(--container-md);
    }
}

@media (min-width: 1024px) {
    .container {
        max-width: var(--container-lg);
        padding: 0 var(--spacing-desktop);
    }
}

@media (min-width: 1280px) {
    .container {
        max-width: var(--container-xl);
    }
}

@media (min-width: 1536px) {
    .container {
        max-width: var(--container-2xl);
        padding: 0 var(--spacing-large);
    }
}

/* ========== 响应式网格系统 ========== */

.grid {
    display: grid;
    gap: 1rem;
}

/* 移动端：单列 */
.grid-cols-1 { grid-template-columns: repeat(1, 1fr); }

/* 平板端：多列选项 */
@media (min-width: 640px) {
    .sm\:grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
    .sm\:grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 768px) {
    .md\:grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
    .md\:grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
    .md\:grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
    .md\:gap-2 { gap: 1.5rem; }
}

@media (min-width: 1024px) {
    .lg\:grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
    .lg\:grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
    .lg\:grid-cols-6 { grid-template-columns: repeat(6, 1fr); }
    .lg\:gap-3 { gap: 2rem; }
}

/* ========== 响应式显示工具类 ========== */

/* 默认隐藏 */
.hidden { display: none; }

/* 响应式显示 */
@media (min-width: 640px) {
    .sm\:block { display: block; }
    .sm\:flex { display: flex; }
    .sm\:hidden { display: none; }
}

@media (min-width: 768px) {
    .md\:block { display: block; }
    .md\:flex { display: flex; }
    .md\:hidden { display: none; }
}

@media (min-width: 1024px) {
    .lg\:block { display: block; }
    .lg\:flex { display: flex; }
    .lg\:hidden { display: none; }
}

/* ========== 响应式文字大小 ========== */

.text-responsive {
    font-size: 0.875rem; /* 14px - 移动端 */
}

@media (min-width: 640px) {
    .text-responsive {
        font-size: 1rem; /* 16px - 平板端 */
    }
}

@media (min-width: 1024px) {
    .text-responsive {
        font-size: 1.125rem; /* 18px - 桌面端 */
    }
}

/* 响应式标题 */
.heading-responsive {
    font-size: 1.5rem; /* 24px - 移动端 */
    line-height: 1.3;
}

@media (min-width: 640px) {
    .heading-responsive {
        font-size: 2rem; /* 32px - 平板端 */
    }
}

@media (min-width: 1024px) {
    .heading-responsive {
        font-size: 2.5rem; /* 40px - 桌面端 */
        line-height: 1.2;
    }
}

/* ========== 响应式间距系统 ========== */

/* 响应式内边距 */
.p-responsive {
    padding: 1rem;
}

@media (min-width: 768px) {
    .p-responsive {
        padding: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .p-responsive {
        padding: 2rem;
    }
}

/* 响应式外边距 */
.m-responsive {
    margin: 1rem;
}

@media (min-width: 768px) {
    .m-responsive {
        margin: 1.5rem;
    }
}

@media (min-width: 1024px) {
    .m-responsive {
        margin: 2rem;
    }
}

/* ========== 响应式图片 ========== */

.img-responsive {
    width: 100%;
    height: auto;
    max-width: 100%;
    object-fit: cover;
}

/* 响应式视频 */
.video-responsive {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%; /* 16:9 宽高比 */
    overflow: hidden;
}

.video-responsive iframe,
.video-responsive video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* ========== 特定组件响应式优化 ========== */

/* 导航栏响应式 */
.navbar-responsive {
    padding: 0.5rem var(--spacing-mobile);
}

@media (min-width: 768px) {
    .navbar-responsive {
        padding: 1rem var(--spacing-tablet);
    }
}

@media (min-width: 1024px) {
    .navbar-responsive {
        padding: 1rem var(--spacing-desktop);
    }
}

/* 按钮响应式 */
.btn-responsive {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
}

@media (min-width: 768px) {
    .btn-responsive {
        padding: 0.75rem 1.5rem;
        font-size: 1rem;
    }
}

@media (min-width: 1024px) {
    .btn-responsive {
        padding: 1rem 2rem;
        font-size: 1.125rem;
    }
}

/* ========== 打印样式 ========== */

@media print {
    .no-print {
        display: none !important;
    }

    .container {
        max-width: none;
        padding: 0;
    }

    .btn {
        display: none;
    }

    body {
        font-size: 12pt;
        line-height: 1.4;
        color: black;
        background: white;
    }
}

/* ========== 高对比度支持 ========== */

@media (prefers-contrast: high) {
    .btn-primary {
        background: #000;
        color: #fff;
        border-color: #000;
    }

    .btn-primary:hover {
        background: #333;
        border-color: #333;
    }
}

/* ========== 减少动画偏好支持 ========== */

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ========== 深色模式支持 ========== */

@media (prefers-color-scheme: dark) {
    :root {
        --bg-color: #1a1a1a;
        --text-color: #ffffff;
        --border-color: #333;
    }

    body {
        background-color: var(--bg-color);
        color: var(--text-color);
    }

    .container {
        background-color: var(--bg-color);
    }
}