/* Contact Method Section Animation Styles */

/* Base styles for contact method section */
.contact-method {
    position: relative;
    will-change: transform, opacity;
    overflow: hidden;
}

/* Initial hidden states for main elements */
.contact-method h3 {
    opacity: 0;
    transform: translateY(80px) scale(0.9) rotateX(15deg);
    will-change: transform, opacity;
    perspective: 1000px;
    transform-origin: center center;
}

/* Phone card initial state */
.contact-method .bg-red-600.text-white {
    opacity: 0;
    transform: translateY(120px) scale(0.85) rotateX(20deg);
    will-change: transform, opacity, box-shadow;
    perspective: 1000px;
    transform-origin: center center;
    transition: all 0.4s ease;
    backface-visibility: hidden;
}

/* Phone number initial state */
.contact-method .text-4xl.font-bold {
    opacity: 0;
    transform: scale(0.8) translateY(30px);
    will-change: transform, opacity;
    transition: all 0.3s ease;
}

/* Phone subtext initial state */
.contact-method .text-red-100 {
    opacity: 0;
    transform: translateY(20px) translateX(-30px);
    will-change: transform, opacity;
    transition: all 0.3s ease;
}

/* SNS section initial state */
.contact-method .space-y-4 {
    opacity: 0;
    transform: translateY(100px) scale(0.9);
    will-change: transform, opacity;
}

/* SNS title initial state */
.contact-method .space-y-4 h4 {
    opacity: 0;
    transform: translateX(-50px) scale(0.95);
    will-change: transform, opacity;
}

/* SNS buttons initial states */
.contact-method .bg-green-500,
.contact-method .bg-blue-500 {
    opacity: 0;
    transform: translateY(60px) scale(0.9) rotateY(15deg);
    will-change: transform, opacity, box-shadow;
    transition: all 0.3s ease;
    backface-visibility: hidden;
    perspective: 1000px;
}

/* Check items initial states */
.contact-method .flex.items-center {
    opacity: 0;
    transform: translateX(-80px) translateY(40px) scale(0.9);
    will-change: transform, opacity;
    transition: all 0.3s ease;
}

/* Check icons initial states */
.contact-method .lucide-check-circle {
    opacity: 0;
    transform: scale(0.3) rotate(-90deg);
    will-change: transform, opacity;
    transition: all 0.3s ease;
}

/* Check texts initial states */
.contact-method .text-gray-700 {
    opacity: 0;
    transform: translateX(40px) translateY(10px);
    will-change: transform, opacity;
    transition: all 0.3s ease;
}

/* Enhanced hover effects for phone card */
.contact-method .bg-red-600.text-white:hover {
    transform: scale(1.05) translateY(-15px);
    box-shadow: 0 25px 50px rgba(220, 38, 38, 0.3);
    z-index: 10;
}

/* Phone number hover effects */
.contact-method .text-4xl.font-bold:hover {
    transform: scale(1.1);
    transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* SNS buttons hover effects */
.contact-method .bg-green-500:hover,
.contact-method .bg-blue-500:hover {
    transform: scale(1.05) translateY(-8px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
    z-index: 5;
}

/* SNS button icons hover effects */
.contact-method .bg-green-500:hover svg,
.contact-method .bg-blue-500:hover svg {
    transform: scale(1.2) rotate(15deg);
    transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* Check items hover effects */
.contact-method .flex.items-center:hover {
    transform: translateX(15px) scale(1.05);
    transition: all 0.3s ease;
}

/* Check icons hover effects */
.contact-method .flex.items-center:hover .lucide-check-circle {
    transform: scale(1.3) rotate(180deg);
    transition: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* Check texts hover effects */
.contact-method .flex.items-center:hover .text-gray-700 {
    transform: translateX(8px);
    color: #dc2626;
    transition: all 0.3s ease;
}

/* Enhanced visual feedback with gradients */
.contact-method .bg-red-600.text-white::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05));
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
    z-index: 1;
    border-radius: inherit;
}

.contact-method .bg-red-600.text-white:hover::before {
    opacity: 1;
}

/* Ensure content stays above overlay */
.contact-method .bg-red-600.text-white > * {
    position: relative;
    z-index: 2;
}

/* Title floating animation */
.contact-method h3.floating {
    animation: titleFloat 2.5s ease-in-out infinite;
}

@keyframes titleFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-8px);
    }
}

/* Phone number pulse animation */
.contact-method .text-4xl.font-bold.pulse {
    animation: phonePulse 1.5s ease-in-out infinite;
}

@keyframes phonePulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.05);
    }
}

/* Check icons floating animation */
.contact-method .lucide-check-circle.floating {
    animation: iconFloat 2s ease-in-out infinite;
}

@keyframes iconFloat {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-5px);
    }
}

/* Card entrance animations */
.contact-method .bg-red-600.text-white.animate-in {
    animation: cardSlideIn 1.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

@keyframes cardSlideIn {
    from {
        opacity: 0;
        transform: translateY(120px) scale(0.85) rotateX(20deg);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1) rotateX(0);
    }
}

/* SNS buttons entrance animations */
.contact-method .bg-green-500.animate-in,
.contact-method .bg-blue-500.animate-in {
    animation: snsButtonSlideIn 1s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

@keyframes snsButtonSlideIn {
    from {
        opacity: 0;
        transform: translateY(60px) scale(0.9) rotateY(15deg);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1) rotateY(0);
    }
}

/* Check items entrance animations */
.contact-method .flex.items-center.animate-in {
    animation: checkItemSlideIn 0.8s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

@keyframes checkItemSlideIn {
    from {
        opacity: 0;
        transform: translateX(-80px) translateY(40px) scale(0.9);
    }
    to {
        opacity: 1;
        transform: translateX(0) translateY(0) scale(1);
    }
}

/* Enhanced red accent colors */
.contact-method .text-red-600 {
    color: #dc2626;
    transition: color 0.3s ease;
}

.contact-method .text-red-600:hover {
    color: #b91c1c;
}

.contact-method .bg-red-600 {
    background: linear-gradient(135deg, #dc2626, #b91c1c);
    transition: all 0.3s ease;
}

.contact-method .bg-red-600:hover {
    background: linear-gradient(135deg, #b91c1c, #991b1b);
}

/* Phone number emphasis */
.contact-method .text-4xl.font-bold {
    position: relative;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

/* SNS buttons enhancements */
.contact-method .bg-green-500 {
    background: linear-gradient(135deg, #10b981, #059669);
    transition: all 0.3s ease;
}

.contact-method .bg-green-500:hover {
    background: linear-gradient(135deg, #059669, #047857);
}

.contact-method .bg-blue-500 {
    background: linear-gradient(135deg, #3b82f6, #2563eb);
    transition: all 0.3s ease;
}

.contact-method .bg-blue-500:hover {
    background: linear-gradient(135deg, #2563eb, #1d4ed8);
}

/* Check icons enhancements */
.contact-method .lucide-check-circle {
    filter: drop-shadow(0 2px 4px rgba(220, 38, 38, 0.2));
    transition: all 0.3s ease;
}

.contact-method .lucide-check-circle:hover {
    filter: drop-shadow(0 4px 8px rgba(220, 38, 38, 0.3));
}

/* Responsive adjustments */
@media (max-width: 1024px) {
    .contact-method .bg-red-600.text-white:hover {
        transform: scale(1.03) translateY(-12px);
        box-shadow: 0 20px 40px rgba(220, 38, 38, 0.25);
    }
    
    .contact-method .bg-green-500:hover,
    .contact-method .bg-blue-500:hover {
        transform: scale(1.03) translateY(-6px);
        box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
    }
    
    .contact-method .flex.items-center:hover {
        transform: translateX(12px) scale(1.03);
    }
}

@media (max-width: 768px) {
    .contact-method .bg-red-600.text-white:hover {
        transform: scale(1.02) translateY(-8px);
        box-shadow: 0 15px 30px rgba(220, 38, 38, 0.2);
    }
    
    .contact-method .bg-green-500:hover,
    .contact-method .bg-blue-500:hover {
        transform: scale(1.02) translateY(-4px);
        box-shadow: 0 10px 20px rgba(0, 0, 0, 0.12);
    }
    
    .contact-method .flex.items-center:hover {
        transform: translateX(8px) scale(1.02);
    }
    
    .contact-method .text-4xl.font-bold:hover {
        transform: scale(1.08);
    }
}

@media (max-width: 640px) {
    .contact-method .bg-red-600.text-white:hover {
        transform: scale(1.01) translateY(-5px);
        box-shadow: 0 10px 20px rgba(220, 38, 38, 0.15);
    }
    
    .contact-method .bg-green-500:hover,
    .contact-method .bg-blue-500:hover {
        transform: scale(1.01) translateY(-3px);
        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
    }
    
    .contact-method .flex.items-center:hover {
        transform: translateX(5px) scale(1.01);
    }
    
    .contact-method .text-4xl.font-bold:hover {
        transform: scale(1.05);
    }
}

/* Accessibility - Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .contact-method h3,
    .contact-method .bg-red-600.text-white,
    .contact-method .text-4xl.font-bold,
    .contact-method .text-red-100,
    .contact-method .space-y-4,
    .contact-method .space-y-4 h4,
    .contact-method .bg-green-500,
    .contact-method .bg-blue-500,
    .contact-method .flex.items-center,
    .contact-method .lucide-check-circle,
    .contact-method .text-gray-700 {
        transition: none !important;
        animation: none !important;
        transform: none !important;
        opacity: 1 !important;
    }
    
    .contact-method .bg-red-600.text-white:hover,
    .contact-method .bg-green-500:hover,
    .contact-method .bg-blue-500:hover,
    .contact-method .flex.items-center:hover,
    .contact-method .text-4xl.font-bold:hover {
        transform: none !important;
    }
    
    .contact-method .floating,
    .contact-method .pulse {
        animation: none !important;
    }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .contact-method .bg-red-600.text-white {
        border: 3px solid #ffffff;
    }
    
    .contact-method .bg-green-500,
    .contact-method .bg-blue-500 {
        border: 2px solid currentColor;
    }
    
    .contact-method .bg-green-500:hover,
    .contact-method .bg-blue-500:hover {
        border-color: #ffffff;
    }
    
    .contact-method .lucide-check-circle {
        stroke-width: 3;
    }
    
    .contact-method .text-gray-700 {
        color: #000000;
    }
    
    .contact-method h3 {
        color: #000000;
    }
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
    .contact-method {
        color: #ffffff;
    }
    
    .contact-method h3 {
        color: #ffffff;
    }
    
    .contact-method .text-gray-700 {
        color: #d1d5db !important;
    }
    
    .contact-method .flex.items-center:hover .text-gray-700 {
        color: #dc2626 !important;
    }
    
    .contact-method .bg-red-600.text-white {
        background: linear-gradient(135deg, #dc2626, #b91c1c) !important;
    }
    
    .contact-method .bg-red-600.text-white:hover {
        background: linear-gradient(135deg, #b91c1c, #991b1b) !important;
    }
}

/* Print styles */
@media print {
    .contact-method h3,
    .contact-method .bg-red-600.text-white,
    .contact-method .text-4xl.font-bold,
    .contact-method .text-red-100,
    .contact-method .space-y-4,
    .contact-method .space-y-4 h4,
    .contact-method .bg-green-500,
    .contact-method .bg-blue-500,
    .contact-method .flex.items-center,
    .contact-method .lucide-check-circle,
    .contact-method .text-gray-700 {
        transform: none !important;
        opacity: 1 !important;
        box-shadow: none !important;
    }
    
    .contact-method .bg-red-600.text-white {
        background: #dc2626 !important;
        color: #ffffff !important;
        border: 2px solid #dc2626 !important;
    }
    
    .contact-method .bg-green-500 {
        background: #10b981 !important;
        color: #ffffff !important;
        border: 2px solid #10b981 !important;
    }
    
    .contact-method .bg-blue-500 {
        background: #3b82f6 !important;
        color: #ffffff !important;
        border: 2px solid #3b82f6 !important;
    }
    
    .contact-method .text-gray-700 {
        color: #000000 !important;
    }
    
    .contact-method h3 {
        color: #000000 !important;
    }
}

/* Loading states */
.contact-method.loading {
    opacity: 0.7;
    pointer-events: none;
}

.contact-method.loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 32px;
    height: 32px;
    border: 3px solid rgba(220, 38, 38, 0.3);
    border-top: 3px solid #dc2626;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

/* Shimmer effect for loading cards */
.contact-method .bg-red-600.text-white.loading {
    position: relative;
    overflow: hidden;
}

.contact-method .bg-red-600.text-white.loading::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    animation: shimmer 2s infinite;
}

@keyframes shimmer {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Focus states for accessibility */
.contact-method .bg-red-600.text-white:focus,
.contact-method .bg-green-500:focus,
.contact-method .bg-blue-500:focus {
    outline: 3px solid #dc2626;
    outline-offset: 2px;
}

.contact-method .flex.items-center:focus {
    outline: 2px solid #dc2626;
    outline-offset: 1px;
    border-radius: 4px;
}

.contact-method .lucide-check-circle:focus {
    outline: 2px solid #dc2626;
    outline-offset: 1px;
    border-radius: 2px;
}

/* Performance optimizations */
.contact-method * {
    will-change: auto;
}

.contact-method .bg-red-600.text-white,
.contact-method .bg-green-500,
.contact-method .bg-blue-500 {
    contain: layout style paint;
}

.contact-method .lucide-check-circle {
    contain: layout style;
}

/* Smooth scrolling enhancement */
.contact-method {
    scroll-behavior: smooth;
}

/* Enhanced title styling */
.contact-method h3 {
    background: linear-gradient(135deg, #dc2626, #b91c1c);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Card shadow enhancements */
.contact-method .bg-red-600.text-white {
    box-shadow: 0 15px 30px rgba(220, 38, 38, 0.2), 0 5px 15px rgba(0, 0, 0, 0.1);
}

.contact-method .bg-green-500,
.contact-method .bg-blue-500 {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06);
}

/* Interactive feedback enhancements */
.contact-method .bg-red-600.text-white:active {
    transform: scale(0.95);
    transition: transform 0.1s ease;
}

.contact-method .bg-green-500:active,
.contact-method .bg-blue-500:active {
    transform: scale(0.9);
    transition: transform 0.1s ease;
} 