/* Character Page Improved Styles - Higher Specificity */

/* Character Featured Image Container */
.character-image-container {
    position: relative !important;
    overflow: hidden !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.15) !important;
    background-color: #f8f8f8 !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    display: inline-block !important;
    transition: all 0.3s ease !important;
}

/* Character image - 70% size on desktop */
.character-half-size {
    width: 70% !important;
    max-width: 500px !important;
    margin: 0 auto !important;
    display: block !important;
    position: relative !important;
}

/* Completely remove space between character image and meta */
.character-featured-image {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0 !important; /* Remove any text node spacing */
}

/* Ultra tight character header layout */
.character-header {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    align-items: flex-start !important;
    font-size: 0 !important; /* Remove any text node spacing */
}

/* Adjust meta to be tight against the image */
.character-meta {
    padding-top: 0 !important;
    margin-top: -5px !important; /* Negative margin to pull up */
}

.character-desc {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.character-half-size img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    margin-bottom: 0 !important;
}

.character-image-container img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    transition: transform 0.3s ease !important;
    margin-bottom: 0 !important;
}

.character-image-container:hover {
    box-shadow: 0 8px 25px rgba(0,0,0,0.2) !important;
}

.character-image-container:hover img {
    transform: scale(1.03) !important;
}

.character-image-container .voice-clip-icon {
    position: absolute !important;
    bottom: 10px !important;
    right: 10px !important;
    z-index: 2 !important;
}

/* Fix for content that follows */
.character-content {
    margin-top: 20px !important;
    font-size: 16px !important; /* Reset font size */
}

/* 50% size on mobile devices */
@media (max-width: 768px) {
    .character-half-size {
        width: 50% !important;
        max-width: 250px !important;
        margin: 0 auto !important;
        margin-bottom: 0 !important;
    }
    
    /* Reset font size for mobile */
    .character-header {
        font-size: 16px !important;
    }
    
    .character-featured-image {
        font-size: 16px !important;
    }
    
    /* Ensure meta is right against image on mobile */
    .character-meta {
        margin-top: 0 !important;
    }
}

/* Improved Voice Actor Box Design */
.character-voice-actors {
    margin-bottom: 40px !important;
}

.character-voice-actors h3 {
    font-size: 1.6em !important;
    color: #333 !important;
    margin-bottom: 25px !important;
    border-bottom: 2px solid var(--vad-primary-color, #0088ff) !important;
    padding-bottom: 10px !important;
    font-weight: 600 !important;
}

.voice-actors-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    gap: 25px !important;
    margin: 0 !important;
}

.voice-actor-box {
    flex: 0 0 calc(50% - 25px) !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    box-shadow: 0 5px 15px rgba(0,0,0,0.08) !important;
    transition: all 0.3s ease !important;
    background-color: #fff !important;
    border: 1px solid #eee !important;
    margin: 0 0 15px 0 !important;
    max-width: 300px !important;
    display: flex !important;
    flex-direction: column !important;
}

.voice-actor-box:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1) !important;
}

.voice-actor-box h4 {
    background: linear-gradient(135deg, var(--vad-primary-color, #0088ff) 0%, rgba(0,136,255,0.8) 100%) !important;
    color: #fff !important;
    padding: 12px 20px !important;
    font-size: 1.1em !important;
    font-weight: 600 !important;
    margin: 0 !important;
    text-align: center !important;
}

.voice-actor-info {
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    flex: 1 !important;
}

.voice-actor-image {
    width: 100% !important;
    height: auto !important;
    min-height: 180px !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    margin: 0 !important;
    box-shadow: none !important;
    position: relative !important;
}

.voice-actor-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    background-color: #f8f8f8 !important;
    transition: transform 0.3s ease !important;
    padding: 0 !important;
}

.voice-actor-image:hover img {
    transform: scale(1.1) !important;
}

.voice-actor-image .no-image {
    width: 100% !important;
    height: 100% !important;
    position: relative !important;
    background-color: #f0f0f0 !important;
}

.voice-actor-image .no-image:after {
    font-size: 36px !important;
    content: "\f007" !important; /* Person icon */
    font-family: "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    color: #ccc !important;
}

.voice-actor-details {
    flex: 0 !important;
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    padding: 10px !important;
}

.voice-actor-name {
    margin-bottom: 3px !important;
    font-weight: bold !important;
    text-align: center !important;
}

.voice-actor-name a {
    font-size: 1.2em !important;
    font-weight: 600 !important;
    color: #333 !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}

.voice-actor-name a:hover {
    color: var(--vad-primary-color, #0088ff) !important;
}

.voice-actor-excerpt {
    font-size: 12px !important;
    line-height: 1.3 !important;
    color: #666 !important;
    margin: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
    padding: 0 5px !important;
}

/* Responsive styles */
@media (max-width: 768px) {
    .voice-actors-wrapper {
        flex-direction: column !important;
        align-items: center !important;
    }
    
    .voice-actor-box {
        width: 100% !important;
        flex: 0 0 100% !important;
        margin: 0 0 15px !important;
        max-width: 300px !important;
    }
    
    .voice-actor-image {
        width: 100% !important;
        height: auto !important;
        min-height: 180px !important;
    }
    
    .voice-actor-details {
        padding: 10px !important;
    }
}

/**
 * Character Page Specific Styles
 * These styles only apply to the single character template
 */

/* Voice Actor Size Reduction - 50% of original size */
.voice-actor-clean-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
}

.voice-actor-clean-image {
    width: 50% !important;
    padding-bottom: 50% !important;
    margin: 0 auto !important;
}

/* Fix image display within the reduced container */
.voice-actor-clean-image img,
.voice-actor-clean-image img.wp-post-image {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* Center text content */
.voice-actor-clean-info {
    width: 100% !important;
    text-align: center !important;
    padding-top: 10px !important;
} 