/* ==================== Responsive Styles ==================== */

/* max-width 1200px */
@media (max-width: 1200px) {
    .container { padding: 0 16px; }
}

/* max-width 992px */
@media (max-width: 992px) {
    .nav__link { padding: 8px 10px; font-size: 14px; }
    .nav__cta { padding: 8px 14px; font-size: 14px; }
    .products-grid,
    .products-grid--3 { grid-template-columns: repeat(2, 1fr); }
    .blog-grid { grid-template-columns: repeat(2, 1fr); }
    .blog-layout { grid-template-columns: 1fr; }
    .blog-sidebar { order: -1; }
    .product-detail__main { grid-template-columns: 1fr; gap: 32px; }
    .feature-section { grid-template-columns: 1fr; }
    .cta-box { flex-direction: column; text-align: center; }
}

/* max-width 860px - 提前启用汉堡菜单，防止导航换行 */
@media (max-width: 860px) {
    .nav__toggle { display: block; }
    .nav__menu {
        position: fixed;
        top: 70px;
        left: 0;
        right: 0;
        bottom: 0;
        background: var(--color-white);
        flex-direction: column;
        padding: 20px;
        gap: 0;
        transform: translateX(100%);
        transition: transform 0.3s ease;
        overflow-y: auto;
        z-index: 999;
    }
    .nav__menu--open { transform: translateX(0); }
    .nav__link { padding: 14px 16px; border-bottom: 1px solid var(--color-gray-light); }

    /* 移动端下拉菜单 */
    .nav__dropdown--open .nav__submenu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
        padding: 0 0 0 20px;
        background: var(--color-gray-light);
        border-radius: 0;
    }
    .nav__submenu-link {
        padding: 12px 16px;
        border-bottom: 1px solid var(--color-gray-border);
        font-size: 15px;
    }
    .feature-section--reverse {
        flex-direction: column;
    }
    /* Product Detail - Zoom & Gallery */
    .product-gallery__zoom { display: none !important; }
    .product-gallery__main { cursor: default; }
    .product-gallery__thumb { flex: 0 0 60px; height: 60px; }
    .product-info__tags { gap: 8px; }
    .product-info__specs th { width: 100px; }
    /* New block modules */
    .testimonial-grid { grid-template-columns: 1fr; }
    .pricing-table { font-size: 13px; }
    .contact-info-block { grid-template-columns: 1fr; }
}

/* max-width 768px */
@media (max-width: 768px) {
    :root {
        --hero-title: 2rem;
    }
    
    .hero { min-height: 350px; padding: 40px 20px; }
    .hero__title { font-size: 2rem; }
    .hero__subtitle { font-size: 16px; }
    
    .section { padding: 48px 0; }
    .section__title { font-size: 1.5rem; }
    
    .category-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .products-grid,
    .products-grid--3 { grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .blog-grid { grid-template-columns: 1fr; }
    
    /* footer 2列 */
    .footer__grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }
    
    .form-row { grid-template-columns: 1fr; }
    .contact-layout { grid-template-columns: 1fr; }
    .inquiry-form { padding: 24px; }
    
    .floating-buttons { right: 12px; bottom: 16px; }
    .floating-buttons__btn { width: 48px; height: 48px; }
    
    .blog-card--list { flex-direction: column; }
    .blog-card--list .blog-card__image { width: 100%; min-width: auto; aspect-ratio: 16/9; }
}

/* max-width 576px */
@media (max-width: 576px) {
    .container { padding: 0 12px; }
    .category-grid { grid-template-columns: 1fr; }
    .products-grid,
    .products-grid--3 { grid-template-columns: 1fr; }
    .hero__title { font-size: 1.5rem; }
    .hero { min-height: 280px; }
    .footer__grid { grid-template-columns: 1fr; gap: 24px; }
    .hero__actions .btn { width: 100%; }
    .cta-section__actions .btn { width: 100%; }
    .error-page__title { font-size: 3rem; }
    .search-box--large { flex-direction: column; }
    .search-box--large .btn { border-radius: var(--radius); }
    .product-gallery { flex-direction: column; }
    .product-gallery__thumbs { flex-direction: row; }
}

/* ==================== Module Responsive Styles ==================== */

/* max-width 1200px */
@media (max-width: 1200px) {
    .image-carousel__item {
        flex: 0 0 calc(33.333% - 16px);
    }
    .cert-carousel__item {
        flex: 0 0 calc(20% - 19.2px);
    }
}

/* max-width 992px */
@media (max-width: 992px) {
    .banner-carousel__track {
        height: 450px;
    }
    .banner-carousel__title {
        font-size: 2.2rem;
    }
    .banner-carousel__subtitle {
        font-size: 1.05rem;
    }
    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
    .stats-item__number {
        font-size: 2.4rem;
    }
    .features-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
    .image-carousel__item {
        flex: 0 0 calc(50% - 12px);
    }
    .cert-carousel__item {
        flex: 0 0 calc(25% - 18px);
    }
    .about-banner {
        height: 350px;
    }
    .about-banner__title {
        font-size: 2rem;
    }
    .tab-section__btn {
        padding: 10px 18px;
        font-size: 0.9rem;
    }
}

/* max-width 768px */
@media (max-width: 768px) {
    .banner-carousel__track {
        height: 380px;
    }
    .banner-carousel__title {
        font-size: 1.8rem;
    }
    .banner-carousel__subtitle {
        font-size: 0.95rem;
        margin-bottom: 20px;
    }
    .banner-carousel__arrow {
        width: 36px;
        height: 36px;
        font-size: 16px;
    }
    .banner-carousel__arrow--prev {
        left: 12px;
    }
    .banner-carousel__arrow--next {
        right: 12px;
    }
    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
    .stats-item {
        padding: 16px 8px;
    }
    .stats-item__number {
        font-size: 2rem;
    }
    .stats-item__suffix {
        font-size: 1.4rem;
    }
    .features-grid {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }
    .features-grid__item {
        padding: 20px 16px;
    }
    .image-carousel {
        padding: 0 40px;
    }
    .image-carousel__item {
        flex: 0 0 calc(50% - 12px);
    }
    .cert-carousel {
        padding: 0 40px;
    }
    .cert-carousel__item {
        flex: 0 0 calc(33.333% - 16px);
    }
    .cert-carousel__placeholder,
    .cert-carousel__item img {
        height: 80px;
    }
    .about-banner {
        height: 300px;
    }
    .about-banner__title {
        font-size: 1.8rem;
    }
    .about-banner__subtitle {
        font-size: 0.95rem;
    }
    .tab-section__nav {
        flex-wrap: wrap;
    }
    .tab-section__btn {
        padding: 8px 14px;
        font-size: 0.85rem;
    }
    .faq-section__question {
        padding: 14px 16px;
        font-size: 0.95rem;
    }
    .faq-section__answer p {
        padding: 0 16px 14px;
        font-size: 0.9rem;
    }
}

/* max-width 576px */
@media (max-width: 576px) {
    .banner-carousel__track {
        height: 320px;
    }
    .banner-carousel__title {
        font-size: 1.5rem;
    }
    .banner-carousel__subtitle {
        font-size: 0.9rem;
        margin-bottom: 16px;
    }
    .banner-carousel__arrow {
        width: 32px;
        height: 32px;
        font-size: 14px;
    }
    .banner-carousel__dot {
        width: 10px;
        height: 10px;
    }
    .stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 12px;
    }
    .stats-item__number {
        font-size: 1.8rem;
    }
    .features-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .image-carousel {
        padding: 0 36px;
    }
    .image-carousel__item {
        flex: 0 0 calc(100%);
    }
    .image-carousel__arrow {
        width: 32px;
        height: 32px;
        font-size: 14px;
    }
    .cert-carousel {
        padding: 0 36px;
    }
    .cert-carousel__item {
        flex: 0 0 calc(50% - 12px);
    }
    .cert-carousel__arrow {
        width: 28px;
        height: 28px;
        font-size: 12px;
    }
    .about-banner {
        height: 260px;
    }
    .about-banner__title {
        font-size: 1.5rem;
    }
    .about-banner__subtitle {
        font-size: 0.9rem;
    }
    .tab-section__btn {
        padding: 8px 12px;
        font-size: 0.8rem;
    }
    .gallery-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .img-grid--masonry { column-count: 2 !important; }
    .img-grid:not(.img-grid--masonry) { grid-template-columns: repeat(2, 1fr) !important; }
    .card-grid--3, .card-grid--4 { grid-template-columns: repeat(2, 1fr); }
    .image-carousel__prev, .image-carousel__next { width: 36px; height: 36px; font-size: 14px; }
}
