/* Responsive enhancements */
@media (max-width: 640px) {
    .custom-shape-divider-bottom svg {
        height: 40px;
    }
    
    .hero-gradient {
        background-size: 600% 600%;
    }
}

/* Character carousel responsive adjustments */
@media (min-width: 768px) {
    .character-slide {
        width: 33.333333%;
    }
}

@media (min-width: 1024px) {
    .character-slide {
        width: 25%;
    }
}

/* News carousel responsive adjustments */
@media (min-width: 768px) {
    .news-slide {
        width: 50%;
    }
}


/* Tablet and desktop adjustments */
@media (min-width: 768px) {
    .md\:flex {
        display: flex;
    }
    
    .md\:text-6xl {
        font-size: 3.75rem;
    }
    
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    
    .md\:text-left {
        text-align: left;
    }
    
    .md\:mx-0 {
        margin-left: 0;
        margin-right: 0;
    }
    
    .md\:justify-start {
        justify-content: flex-start;
    }
}

@media (min-width: 1024px) {
    .lg\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
    
    .lg\:col-span-2 {
        grid-column: span 2 / span 2;
    }
    
    .lg\:w-1\/4 {
        width: 25%;
    }
}

/* Extra small devices */
@media (min-width: 475px) {
    .xs\:blur-xs {
        backdrop-filter: blur(2px);
    }
}

/* モバイル対応 */
@media (max-width: 768px) {
    #loader-3d-container {
        width: 200px;
        height: 200px;
    }

    .cnp-loading-bar {
        width: 250px;
    }

    .cnp-loading-text {
        font-size: 16px;
    }

    .loader-inner {
        gap: 20px;
    }
}

/* Shape dividers responsive height */
@media (max-width: 640px) {

    .custom-shape-divider-top svg,
    .custom-shape-divider-bottom svg {
        height: 80px;
    }
}

@media (min-width: 641px) and (max-width: 768px) {

    .custom-shape-divider-top svg,
    .custom-shape-divider-bottom svg {
        height: 90px;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {

    .custom-shape-divider-top svg,
    .custom-shape-divider-bottom svg {
        height: 100px;
    }
}

@media (min-width: 1025px) {

    .custom-shape-divider-top svg,
    .custom-shape-divider-bottom svg {
        height: 120px;
    }
}