/* Strengths Page Specific Styles */

/* カーソル問題の最終修正 */
.custom-cursor, #customCursor {
    display: none !important;
}

* {
    cursor: auto !important;
}

/* Hero Section Styles */
.hero-section {
    background: linear-gradient(135deg, #024F83 0%, #1e40af 100%);
}

/* SVG Wave Animation */
@keyframes waveAnimation {
    0% {
        d: path("M0,192L48,197.3C96,203,192,213,288,229.3C384,245,480,267,576,250.7C672,235,768,181,864,181.3C960,181,1056,235,1152,234.7C1248,235,1344,181,1392,154.7L1440,128L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z");
    }
    50% {
        d: path("M0,160L48,176C96,192,192,224,288,213.3C384,203,480,149,576,128C672,107,768,117,864,133.3C960,149,1056,171,1152,186.7C1248,203,1344,213,1392,218.7L1440,224L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z");
    }
    100% {
        d: path("M0,192L48,197.3C96,203,192,213,288,229.3C384,245,480,267,576,250.7C672,235,768,181,864,181.3C960,181,1056,235,1152,234.7C1248,235,1344,181,1392,154.7L1440,128L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z");
    }
}

/* Font Weights for Title */
.font-noto {
    font-family: 'Noto Sans JP', sans-serif;
}

.font-Light {
    font-weight: 300;
}

/* Scroll Indicator Animation */
@keyframes bounce {
    0%, 20%, 53%, 80%, 100% {
        animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
        transform: translate3d(0,0,0);
    }
    40%, 43% {
        animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        transform: translate3d(0, -30px, 0);
    }
    70% {
        animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
        transform: translate3d(0, -15px, 0);
    }
    90% {
        transform: translate3d(0,-4px,0);
    }
}

.animate-bounce {
    animation: bounce 2s infinite;
}

/* Pulse Animation */
@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: .5;
    }
}

.animate-pulse {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Gradient Backgrounds */
.bg-gradient-to-r {
    background-image: linear-gradient(to right, var(--tw-gradient-stops));
}

.bg-gradient-to-b {
    background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}

.bg-gradient-to-br {
    background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}

.from-primary {
    --tw-gradient-from: #024F83;
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(2, 79, 131, 0));
}

.via-primary\/90 {
    --tw-gradient-stops: var(--tw-gradient-from), rgba(2, 79, 131, 0.9), var(--tw-gradient-to, rgba(2, 79, 131, 0.9));
}

.to-blue-600 {
    --tw-gradient-to: #2563eb;
}

.from-gray-50 {
    --tw-gradient-from: #f9fafb;
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(249, 250, 251, 0));
}

.to-white {
    --tw-gradient-to: #ffffff;
}

/* Backdrop Blur */
.backdrop-blur-sm {
    backdrop-filter: blur(4px);
}

/* Border Radius */
.rounded-3xl {
    border-radius: 1.5rem;
}

/* Transform Utilities */
.transform {
    transform: var(--tw-transform);
}

.-translate-x-1\/2 {
    --tw-translate-x: -50%;
}

.-translate-y-48 {
    --tw-translate-y: -12rem;
}

.translate-x-48 {
    --tw-translate-x: 12rem;
}

.translate-y-36 {
    --tw-translate-y: 9rem;
}

.-translate-x-36 {
    --tw-translate-x: -9rem;
}

/* Blur Effects */
.blur-3xl {
    filter: blur(64px);
}

.blur-2xl {
    filter: blur(40px);
}

/* Responsive Grid Columns */
.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

@media (min-width: 1024px) {
    .lg\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    
    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* Table Styles */
.table-auto {
    table-layout: auto;
}

.table-fixed {
    table-layout: fixed;
}

/* Comparison Table Hover Effects */
tr:hover {
    background-color: rgba(249, 250, 251, 0.5);
}

/* Card Hover Effects */
.card-hover-effect {
    transition: all 0.3s ease;
}

.card-hover-effect:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

/* Button Ripple Effect */
.ripple-effect {
    position: relative;
    overflow: hidden;
}

.ripple-effect::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: all 0.6s ease;
}

.ripple-effect:hover::before {
    width: 300px;
    height: 300px;
}

/* Custom Focus States */
.focus-ring:focus {
    outline: 2px solid #024F83;
    outline-offset: 2px;
}

/* Mobile Responsive Adjustments */
@media (max-width: 768px) {
    .hero-section {
        padding-top: 4rem;
    }
    
    .section-padding {
        padding: 3rem 0;
    }
}

/* Print Styles */
@media print {
    .hero-section {
        background: #024F83 !important;
        -webkit-print-color-adjust: exact;
    }
}