/**
 * Gaming Keyboard Post Components - CSS Component Library
 * Version: 1.0.0
 *
 * Category-specific styling for gaming keyboard product reviews.
 * Extends product-review-base.css with crimson/RGB gaming theme.
 *
 * Theme: Crimson (#E91E63) - RGB Gaming aesthetic
 *
 * @package VividUltimate
 * @since 3.5.177
 */

/* ==========================================================================
   GAMING KEYBOARD THEME OVERRIDES (for base class compatibility)
   ========================================================================== */
.vae-gaming-keyboard-post {
    --vae-accent-color: #E91E63;
    --vae-accent-hover: #D81B60;
    --vae-accent-light: #FCE4EC;
    --vae-accent-dark: #C2185B;
    --vae-dark-bg: #2d2d3a;
    --vae-dark-text: #ffffff;
}

/* ==========================================================================
   CSS VARIABLES - Gaming Keyboard theme
   ========================================================================== */
:root {
    /* Brand Colors - Crimson RGB Theme */
    --vae-keyboard-primary: #E91E63;
    --vae-keyboard-secondary: #F06292;
    --vae-keyboard-dark: #C2185B;
    --vae-amazon-orange: #ff9900;
    --vae-amazon-orange-dark: #ff6600;

    /* Switch Type Colors */
    --vae-switch-linear: #e91e63;
    --vae-switch-tactile: #9c27b0;
    --vae-switch-clicky: #2196f3;

    /* Semantic Colors */
    --vae-success: #4caf50;
    --vae-success-bg: #e8f5e9;
    --vae-error: #f44336;
    --vae-error-bg: #ffebee;
    --vae-info: #2196f3;
    --vae-info-bg: #e3f2fd;
    --vae-warning: #ff9800;
    --vae-warning-bg: #fff8e1;
}

/* ==========================================================================
   WORDPRESS COMPATIBILITY FIXES
   ========================================================================== */

/* Hide unwanted <br> tags inside all VAE components */
.vae-switch-specs br,
.vae-keycap-info br,
.vae-rgb-lighting br,
.vae-build-quality br,
.vae-polling-rate br,
.vae-key-rollover br,
.vae-actuation-specs br,
.vae-key-takeaways br,
.vae-quick-verdict br,
.vae-freshness-badge br,
.vae-pros-cons br,
.vae-final-verdict br,
.vae-about-reviewer br,
.vae-cta-wrapper br {
    display: none !important;
}

/* Reset paragraph styling inside components */
.vae-switch-specs p,
.vae-keycap-info p,
.vae-rgb-lighting p,
.vae-build-quality p,
.vae-polling-rate p,
.vae-key-rollover p,
.vae-actuation-specs p,
.vae-key-takeaways p,
.vae-freshness-badge p,
.vae-cta-wrapper p {
    margin: 0 !important;
    padding: 0 !important;
    display: inline;
}

/* ==========================================================================
   H3/H4 STYLING FOR COMPONENT CONTAINERS
   ========================================================================== */

/* Fallback H3 styling inside LIGHT containers */
.vae-keycap-info h3,
.vae-keycap-info h4,
.vae-build-quality h3,
.vae-build-quality h4,
.vae-key-rollover h3,
.vae-key-rollover h4,
.vae-about-reviewer h3,
.vae-about-reviewer h4 {
    font-size: 1.2em !important;
    font-weight: bold !important;
    color: #333 !important;
    margin: 0 0 15px 0 !important;
    padding: 0 !important;
}

/* Fallback H3 styling inside DARK containers - white text */
.vae-switch-specs h3,
.vae-switch-specs h4,
.vae-rgb-lighting h3,
.vae-rgb-lighting h4,
.vae-polling-rate h3,
.vae-polling-rate h4,
.vae-actuation-specs h3,
.vae-actuation-specs h4,
.vae-key-takeaways h3,
.vae-key-takeaways h4,
.vae-final-verdict h3,
.vae-final-verdict h2 {
    font-size: 1.2em !important;
    font-weight: bold !important;
    color: #fff !important;
    margin: 0 0 15px 0 !important;
    padding: 0 !important;
}

/* Fallback H4 styling for pros/cons */
.vae-pros h4,
.vae-cons h4 {
    margin: 0 0 10px 0 !important;
    padding: 0 !important;
    font-size: 1.1em !important;
}

/* ==========================================================================
   1. SWITCH SPECS BOX - Switch type, brand, characteristics
   ========================================================================== */
.vae-switch-specs {
    background: var(--vae-dark-bg);
    border-radius: 12px;
    padding: 25px;
    margin: 25px 0;
}

.vae-switch-specs .vae-switch-title {
    font-size: 1.2em !important;
    font-weight: bold !important;
    color: #fff !important;
    margin: 0 0 20px 0 !important;
    display: flex;
    align-items: center;
    gap: 10px;
}

.vae-switch-specs .vae-switch-title::before {
    content: '⌨️';
    font-size: 1.2em;
}

.vae-switch-specs .vae-switch-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 15px;
}

.vae-switch-specs .vae-switch-item {
    background: var(--vae-keyboard-primary);
    border: 1px solid rgba(255,255,255,0.1);
    padding: 15px;
    border-radius: 8px;
    text-align: center;
}

.vae-switch-specs .vae-switch-value {
    font-size: 1.4em;
    font-weight: bold;
    color: #fff;
    display: block;
}

.vae-switch-specs .vae-switch-label {
    font-size: 0.85em;
    color: rgba(255,255,255,0.8);
    margin-top: 5px;
    display: block;
}

/* Switch type badge */
.vae-switch-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 20px;
    border-radius: 8px;
    margin: 15px 0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.vae-switch-badge[data-type="linear"] {
    background: linear-gradient(135deg, #e91e63 0%, #f06292 100%);
    color: #fff;
}

.vae-switch-badge[data-type="tactile"] {
    background: linear-gradient(135deg, #9c27b0 0%, #ba68c8 100%);
    color: #fff;
}

.vae-switch-badge[data-type="clicky"] {
    background: linear-gradient(135deg, #2196f3 0%, #64b5f6 100%);
    color: #fff;
}

.vae-switch-badge .vae-badge-icon {
    font-size: 1.5em;
}

.vae-switch-badge .vae-badge-text {
    font-weight: 600;
}

/* ==========================================================================
   2. KEYCAP INFO BOX - Material, profile, legends
   ========================================================================== */
.vae-keycap-info {
    background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
    border-radius: 12px;
    padding: 25px;
    margin: 25px 0;
    border: 2px solid #e0e0e0;
}

.vae-keycap-info .vae-keycap-title {
    font-size: 1.2em !important;
    font-weight: bold !important;
    color: var(--vae-keyboard-dark) !important;
    margin: 0 0 20px 0 !important;
    padding-bottom: 12px;
    border-bottom: 3px solid var(--vae-keyboard-primary);
    display: flex;
    align-items: center;
    gap: 10px;
}

.vae-keycap-info .vae-keycap-title::before {
    content: '🔠';
    font-size: 1.2em;
}

.vae-keycap-info .vae-keycap-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 15px;
}

.vae-keycap-info .vae-keycap-item {
    background: #fff;
    padding: 20px 15px;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    text-align: center;
    transition: transform 0.2s, box-shadow 0.2s;
}

.vae-keycap-info .vae-keycap-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(233, 30, 99, 0.15);
}

.vae-keycap-info .vae-keycap-value {
    font-size: 1.4em;
    font-weight: bold;
    color: var(--vae-keyboard-primary);
    display: block;
}

.vae-keycap-info .vae-keycap-label {
    font-size: 0.85em;
    color: #666;
    margin-top: 5px;
    display: block;
}

/* ==========================================================================
   3. RGB LIGHTING BOX - Lighting zones, effects, software
   ========================================================================== */
.vae-rgb-lighting {
    background: var(--vae-dark-bg);
    border-radius: 12px;
    padding: 25px;
    margin: 25px 0;
    position: relative;
    overflow: hidden;
}

/* RGB gradient border effect */
.vae-rgb-lighting::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #ff0000, #ff8000, #ffff00, #00ff00, #00ffff, #0000ff, #8000ff, #ff0080, #ff0000);
    background-size: 200% 100%;
    animation: rgbFlow 3s linear infinite;
}

@keyframes rgbFlow {
    0% { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
}

.vae-rgb-lighting .vae-rgb-title {
    font-size: 1.2em !important;
    font-weight: bold !important;
    color: #fff !important;
    margin: 0 0 20px 0 !important;
    display: flex;
    align-items: center;
    gap: 10px;
}

.vae-rgb-lighting .vae-rgb-title::before {
    content: '🌈';
    font-size: 1.2em;
}

.vae-rgb-lighting .vae-rgb-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 15px;
}

.vae-rgb-lighting .vae-rgb-item {
    background: var(--vae-keyboard-primary);
    padding: 15px;
    border-radius: 8px;
    text-align: center;
}

.vae-rgb-lighting .vae-rgb-value {
    font-size: 1.4em;
    font-weight: bold;
    color: #fff;
    display: block;
}

.vae-rgb-lighting .vae-rgb-label {
    font-size: 0.8em;
    color: rgba(255,255,255,0.7);
    margin-top: 4px;
    display: block;
}

/* Effect badges */
.vae-rgb-lighting .vae-effect-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 15px;
}

.vae-rgb-lighting .vae-effect-badge {
    background: rgba(255,255,255,0.15);
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 0.85em;
    color: #fff;
}

/* ==========================================================================
   4. BUILD QUALITY BOX - Frame, plate, stabilizers
   ========================================================================== */
.vae-build-quality {
    background: var(--vae-success-bg);
    border: 2px solid var(--vae-success);
    border-radius: 12px;
    padding: 20px;
    margin: 25px 0;
}

.vae-build-quality[data-rating="average"] {
    background: var(--vae-warning-bg);
    border-color: var(--vae-warning);
}

.vae-build-quality[data-rating="poor"] {
    background: var(--vae-error-bg);
    border-color: var(--vae-error);
}

.vae-build-quality .vae-build-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 15px;
}

.vae-build-quality .vae-build-icon {
    font-size: 1.8em;
}

.vae-build-quality .vae-build-title {
    font-size: 1.1em !important;
    font-weight: bold !important;
    color: #2e7d32 !important;
    margin: 0 !important;
}

.vae-build-quality[data-rating="average"] .vae-build-title {
    color: #e65100 !important;
}

.vae-build-quality[data-rating="poor"] .vae-build-title {
    color: #c62828 !important;
}

.vae-build-quality .vae-build-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 12px;
    margin-top: 15px;
}

.vae-build-quality .vae-build-item {
    text-align: center;
    padding: 12px;
    background: rgba(255,255,255,0.7);
    border-radius: 8px;
}

.vae-build-quality .vae-build-value {
    font-size: 1.1em;
    font-weight: bold;
    color: var(--vae-keyboard-dark);
    display: block;
}

.vae-build-quality .vae-build-label {
    font-size: 0.8em;
    color: #666;
    display: block;
    margin-top: 4px;
}

/* ==========================================================================
   5. POLLING RATE BOX - Response time and polling
   ========================================================================== */
.vae-polling-rate {
    background: var(--vae-dark-bg);
    border-left: 4px solid var(--vae-keyboard-primary);
    padding: 20px;
    margin: 25px 0;
    border-radius: 0 8px 8px 0;
}

.vae-polling-rate .vae-polling-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 15px;
}

.vae-polling-rate .vae-polling-title {
    font-size: 1.1em !important;
    font-weight: bold !important;
    color: #fff !important;
    margin: 0 !important;
}

.vae-polling-rate .vae-polling-value {
    background: var(--vae-keyboard-primary);
    color: #fff;
    padding: 8px 16px;
    border-radius: 6px;
    font-weight: bold;
    font-size: 1.2em;
}

.vae-polling-rate .vae-polling-description {
    color: rgba(255,255,255,0.9);
    line-height: 1.6;
}

.vae-polling-rate .vae-latency-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(76, 175, 80, 0.2);
    border: 1px solid #4caf50;
    padding: 8px 14px;
    border-radius: 6px;
    margin-top: 12px;
    color: #4caf50;
    font-weight: 500;
}

/* ==========================================================================
   6. KEY ROLLOVER BOX - NKRO, anti-ghosting
   ========================================================================== */
.vae-key-rollover {
    background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
    border-radius: 12px;
    padding: 25px;
    margin: 25px 0;
    border: 2px solid var(--vae-keyboard-primary);
}

.vae-key-rollover .vae-rollover-title {
    font-size: 1.2em !important;
    font-weight: bold !important;
    color: var(--vae-keyboard-dark) !important;
    margin: 0 0 20px 0 !important;
    display: flex;
    align-items: center;
    gap: 10px;
}

.vae-key-rollover .vae-rollover-title::before {
    content: '⚡';
    font-size: 1.2em;
}

.vae-key-rollover .vae-rollover-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

@media (max-width: 768px) {
    .vae-key-rollover .vae-rollover-grid {
        grid-template-columns: 1fr;
    }
}

.vae-key-rollover .vae-rollover-card {
    background: #fff;
    border: 1px solid #e8e8e8;
    padding: 20px;
    border-radius: 8px;
    text-align: center;
}

.vae-key-rollover .vae-rollover-icon {
    font-size: 2em;
    margin-bottom: 10px;
}

.vae-key-rollover .vae-rollover-feature {
    font-size: 1.1em;
    font-weight: 600;
    color: #333;
    margin-bottom: 5px;
}

.vae-key-rollover .vae-rollover-status {
    font-size: 0.9em;
    font-weight: 500;
}

.vae-key-rollover .vae-rollover-status.vae-supported {
    color: #4caf50;
}

.vae-key-rollover .vae-rollover-status.vae-unsupported {
    color: #999;
}

.vae-key-rollover .vae-rollover-description {
    font-size: 0.85em;
    color: #666;
    margin-top: 8px;
    line-height: 1.5;
}

/* ==========================================================================
   7. ACTUATION SPECS BOX - Travel distance, actuation force
   ========================================================================== */
.vae-actuation-specs {
    background: var(--vae-dark-bg);
    border-radius: 12px;
    padding: 25px;
    margin: 25px 0;
}

.vae-actuation-specs .vae-actuation-title {
    font-size: 1.2em !important;
    font-weight: bold !important;
    color: #fff !important;
    margin: 0 0 20px 0 !important;
}

.vae-actuation-specs .vae-actuation-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: 12px;
}

.vae-actuation-specs .vae-actuation-item {
    background: var(--vae-keyboard-primary);
    padding: 15px;
    border-radius: 6px;
    text-align: center;
}

.vae-actuation-specs .vae-actuation-value {
    font-size: 1.5em;
    font-weight: bold;
    color: #fff;
    display: block;
}

.vae-actuation-specs .vae-actuation-label {
    font-size: 0.8em;
    color: rgba(255,255,255,0.7);
    margin-top: 4px;
    display: block;
}

/* ==========================================================================
   8. KEY TAKEAWAYS BOX - Dark theme with crimson accents
   ========================================================================== */
.vae-gaming-keyboard-post .vae-key-takeaways {
    background: var(--vae-dark-bg);
    padding: 25px;
    border-radius: 12px;
    margin: 25px 0;
    color: #fff;
}

.vae-gaming-keyboard-post .vae-key-takeaways h3,
.vae-gaming-keyboard-post .vae-key-takeaways .vae-takeaways-title {
    color: #fff !important;
    margin: 0 0 15px 0 !important;
    font-size: 1.3em !important;
    font-weight: bold !important;
}

.vae-gaming-keyboard-post .vae-key-takeaways ul {
    margin: 0;
    padding-left: 20px;
}

.vae-gaming-keyboard-post .vae-key-takeaways li {
    color: #fff;
    margin-bottom: 8px;
    line-height: 1.6;
}

/* Ratings grid inside key takeaways */
.vae-gaming-keyboard-post .vae-key-takeaways .vae-ratings-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 12px;
    margin-top: 20px;
}

.vae-gaming-keyboard-post .vae-key-takeaways .vae-rating-item {
    background: var(--vae-keyboard-primary);
    padding: 12px;
    border-radius: 6px;
    text-align: center;
}

.vae-gaming-keyboard-post .vae-key-takeaways .vae-rating-label {
    font-size: 0.85em;
    opacity: 0.9;
    display: block;
    margin-bottom: 5px;
    color: #fff;
}

.vae-gaming-keyboard-post .vae-key-takeaways .vae-rating-value {
    font-size: 1.4em;
    font-weight: bold;
    color: #fff;
}

/* ==========================================================================
   9. PROS & CONS - Side-by-side layout
   ========================================================================== */
.vae-gaming-keyboard-post .vae-pros-cons {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 25px 0;
}

@media (max-width: 768px) {
    .vae-gaming-keyboard-post .vae-pros-cons {
        grid-template-columns: 1fr;
    }
}

.vae-gaming-keyboard-post .vae-pros,
.vae-gaming-keyboard-post .vae-cons {
    padding: 20px;
    border-radius: 8px;
}

.vae-gaming-keyboard-post .vae-pros {
    background: rgba(76, 175, 80, 0.1);
    border: 1px solid rgba(76, 175, 80, 0.3);
}

.vae-gaming-keyboard-post .vae-cons {
    background: rgba(244, 67, 54, 0.1);
    border: 1px solid rgba(244, 67, 54, 0.3);
}

.vae-gaming-keyboard-post .vae-pros h4,
.vae-gaming-keyboard-post .vae-pros .vae-pros-title {
    color: #4caf50 !important;
    margin: 0 0 15px 0 !important;
}

.vae-gaming-keyboard-post .vae-cons h4,
.vae-gaming-keyboard-post .vae-cons .vae-cons-title {
    color: #f44336 !important;
    margin: 0 0 15px 0 !important;
}

.vae-gaming-keyboard-post .vae-pros li,
.vae-gaming-keyboard-post .vae-cons li {
    margin-bottom: 8px;
    line-height: 1.5;
}

/* ==========================================================================
   10. QUICK VERDICT - Bordered box with crimson accent
   ========================================================================== */
.vae-gaming-keyboard-post .vae-quick-verdict {
    border-left: 4px solid var(--vae-keyboard-primary);
    background: var(--vae-accent-light);
    padding: 20px;
    margin: 25px 0;
    border-radius: 0 8px 8px 0;
}

.vae-gaming-keyboard-post .vae-quick-verdict .vae-verdict-title,
.vae-gaming-keyboard-post .vae-quick-verdict strong {
    color: var(--vae-keyboard-dark);
    font-size: 1.1em;
    display: block;
    margin-bottom: 8px;
}

.vae-gaming-keyboard-post .vae-quick-verdict .vae-verdict-text,
.vae-gaming-keyboard-post .vae-quick-verdict p {
    color: #333;
    margin: 0;
    line-height: 1.6;
}

/* ==========================================================================
   11. FINAL VERDICT - Dark Theme
   ========================================================================== */
.vae-gaming-keyboard-post .vae-final-verdict {
    background: var(--vae-dark-bg);
    color: #fff;
    padding: 30px;
    border-radius: 12px;
    margin: 30px 0;
}

.vae-gaming-keyboard-post .vae-final-verdict h2,
.vae-gaming-keyboard-post .vae-final-verdict h3,
.vae-gaming-keyboard-post .vae-final-verdict .vae-verdict-heading {
    color: #fff !important;
    margin: 0 0 15px 0;
    font-size: 1.4em;
}

.vae-gaming-keyboard-post .vae-final-verdict h2::before,
.vae-gaming-keyboard-post .vae-final-verdict h3::before {
    content: "⌨️ ";
}

.vae-gaming-keyboard-post .vae-final-verdict .vae-verdict-content,
.vae-gaming-keyboard-post .vae-final-verdict p {
    color: rgba(255,255,255,0.9);
    line-height: 1.7;
    margin: 0 0 15px 0;
}

.vae-gaming-keyboard-post .vae-final-rating {
    display: inline-block;
    background: var(--vae-keyboard-primary);
    color: #fff;
    padding: 12px 24px;
    border-radius: 8px;
    font-size: 1.2em;
    font-weight: 700;
    margin-top: 15px;
}

/* ==========================================================================
   12. COMPARISON TABLE HEADER OVERRIDE
   ========================================================================== */
.vae-gaming-keyboard-post .vae-comparison-table thead {
    background: linear-gradient(135deg, #1a1a2e 0%, #2d2d4a 100%);
}

.vae-gaming-keyboard-post .vae-comparison-table thead th {
    color: #fff;
}

/* ==========================================================================
   13. STICKY BAR - Dark Theme
   ========================================================================== */
.vae-gaming-keyboard-post .vae-sticky-product-bar {
    background: #2d2d3a;
}

/* ==========================================================================
   14. CONTENT MAX-WIDTH - Readable line lengths
   ========================================================================== */
.vae-gaming-keyboard-post .entry-content,
.vae-gaming-keyboard-post .post-content,
.vae-gaming-keyboard-post article .content-area {
    max-width: 820px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
}

/* Table wrapper - full width within container */
.vae-gaming-keyboard-post .entry-content .vae-table-wrapper {
    width: 100%;
    overflow-x: auto;
}

/* Kadence compatibility - offset for sticky bar when visible */
.vae-gaming-keyboard-post.vae-sticky-active {
    padding-top: 56px;
}

/* Smooth scroll offset for anchor links */
.vae-gaming-keyboard-post [id] {
    scroll-margin-top: 70px;
}

/* ==========================================================================
   15. MOBILE RESPONSIVE
   ========================================================================== */
@media (max-width: 768px) {
    .vae-switch-specs .vae-switch-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .vae-keycap-info .vae-keycap-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .vae-rgb-lighting .vae-rgb-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .vae-actuation-specs .vae-actuation-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .vae-polling-rate .vae-polling-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
}

@media (max-width: 480px) {
    .vae-actuation-specs .vae-actuation-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
