/**
 * Dimension Navigation Block Styles
 * Unified styling for vendor button and user profile
 * Ensures perfect alignment and consistent sizing
 * 
 * Author: Gareth Erasmus <gberasmus87@gmail.com>
 * Date: 2025-11-18
 * Description: CSS styles for unified navigation block component
 */

/* ============================================================
   WRAPPER STYLES
   ============================================================ */

.wp-block-dimension-navigation,
.dimension-navigation-block {
    display: inline-flex !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
    vertical-align: middle !important;
    line-height: 1 !important;
}

.dimension-navigation-block.align-left {
    justify-content: flex-start;
}

.dimension-navigation-block.align-center {
    justify-content: center;
}

.dimension-navigation-block.align-right {
    justify-content: flex-end;
}

/* ============================================================
   UNIFIED BUTTON STYLES - APPLIED TO ALL BUTTONS
   ============================================================ */

.dimension-nav-button,
.dimension-vendor-button,
.dimension-user-profile-button {
    /* Display & Layout */
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
    
    /* Sizing - GUARANTEED CONSISTENCY */
    padding: 0.5rem 1rem !important;
    margin: 0 !important;
    height: auto !important;
    min-height: auto !important;
    max-height: none !important;
    line-height: 1 !important;
    
    /* Typography */
    font-family: 'Space Mono' !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    white-space: nowrap !important;
    
    /* Colors & Borders */
    background: transparent !important;
    border: 1px solid rgba(var(--dimension-primary-rgb), 0.5) !important;
    border-radius: 0 !important;
    color: rgba(var(--dimension-primary-rgb), 0.8) !important;
    
    /* Effects */
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    
    /* Reset any potential conflicts */
    transform: none !important;
    filter: none !important;
    gap: 6px !important;
}

/* Ensure text inside buttons is also consistent */
.dimension-nav-button .button-text,
.dimension-vendor-button .button-text,
.dimension-user-profile-button .button-text {
    font-family: 'Space Mono' !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Icon styling */
.dimension-nav-button .button-icon,
.dimension-vendor-button .button-icon {
    font-size: 1em !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* ============================================================
   HOVER STATES - UNIFIED ACROSS ALL BUTTONS
   ============================================================ */

.dimension-nav-button:hover,
.dimension-vendor-button:hover,
.dimension-user-profile-button:hover {
    background: rgba(var(--dimension-primary-rgb), 0.1) !important;
    border-color: var(--dimension-primary-color) !important;
    color: var(--dimension-primary-color) !important;
    filter: brightness(1.2) !important;
    transform: none !important;
}

.dimension-nav-button:active,
.dimension-vendor-button:active,
.dimension-user-profile-button:active {
    background: rgba(var(--dimension-primary-rgb), 0.2) !important;
}

/* ============================================================
   BUTTON STYLE VARIANTS
   ============================================================ */

/* Primary Style (Default) */
.dimension-nav-button.style-primary,
.dimension-vendor-button.style-primary,
.dimension-user-profile-button.style-primary {
    background: transparent !important;
    border-color: rgba(var(--dimension-primary-rgb), 0.5) !important;
    color: rgba(var(--dimension-primary-rgb), 0.8) !important;
}

/* Secondary Style */
.dimension-nav-button.style-secondary,
.dimension-vendor-button.style-secondary,
.dimension-user-profile-button.style-secondary {
    background: rgba(0, 0, 0, 0.4) !important;
    border-color: rgba(var(--dimension-primary-rgb), 0.5) !important;
    color: var(--dimension-primary-color) !important;
}

.dimension-nav-button.style-secondary:hover,
.dimension-vendor-button.style-secondary:hover,
.dimension-user-profile-button.style-secondary:hover {
    background: rgba(var(--dimension-primary-rgb), 0.15) !important;
    border-color: var(--dimension-primary-color) !important;
    box-shadow: 0 0 10px rgba(var(--dimension-primary-rgb), 0.3) !important;
}

/* Outline Style */
.dimension-nav-button.style-outline,
.dimension-vendor-button.style-outline,
.dimension-user-profile-button.style-outline {
    background: transparent !important;
    border-color: var(--dimension-primary-color) !important;
    color: var(--dimension-primary-color) !important;
}

.dimension-nav-button.style-outline:hover,
.dimension-vendor-button.style-outline:hover,
.dimension-user-profile-button.style-outline:hover {
    background: rgba(var(--dimension-primary-rgb), 0.1) !important;
    box-shadow: 0 0 10px rgba(var(--dimension-primary-rgb), 0.3) !important;
}

/* ============================================================
   RESPONSIVE STYLES
   ============================================================ */

/* Tablet and Mobile - maintain consistent sizing */
@media (max-width: 1024px) {
    .dimension-nav-button,
    .dimension-vendor-button,
    .dimension-user-profile-button {
        padding: 0.5rem 1rem !important;
        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
        font-size: 14px !important;
    }
}

/* Mobile Stacking Option */
@media (max-width: 768px) {
    .dimension-navigation-block.stack-on-mobile {
        flex-direction: column !important;
        gap: 8px !important;
    }
    
    .dimension-navigation-block.full-width-on-mobile .dimension-nav-button,
    .dimension-navigation-block.full-width-on-mobile .dimension-vendor-button,
    .dimension-navigation-block.full-width-on-mobile .dimension-user-profile-button {
        width: 100% !important;
        display: flex !important;
    }
}

/* Small Mobile - keep buttons compact and consistent */
@media (max-width: 480px) {
    .dimension-nav-button,
    .dimension-vendor-button,
    .dimension-user-profile-button {
        padding: 0.5rem 1rem !important;
        height: auto !important;
        min-height: auto !important;
        max-height: none !important;
        font-size: 13px !important;
    }
    
    .dimension-navigation-block {
        gap: 6px !important;
    }
}

/* ============================================================
   EDITOR STYLES
   ============================================================ */

.dimension-navigation-block-editor {
    margin: 1rem 0;
}

.dimension-navigation-block-editor .dimension-block-preview {
    min-height: 60px;
    display: flex;
    align-items: center;
}

/* ============================================================
   OVERRIDE ANY THEME OR WORDPRESS DEFAULTS
   ============================================================ */

/* Nuclear option - override ANY potential conflicts */
.wp-block-dimension-navigation *,
.dimension-navigation-block * {
    font-family: 'Space Mono' !important;
    box-sizing: border-box !important;
}

/* Ensure no padding/margin gets added by parent containers */
.wp-block-dimension-navigation > *,
.dimension-navigation-block > * {
    margin: 0 !important;
}

/* Override WordPress core button styles */
.wp-block-dimension-navigation a,
.dimension-navigation-block a {
    text-decoration: none !important;
}

/* Prevent flex items from stretching */
.dimension-navigation-block > .dimension-nav-button,
.dimension-navigation-block > .dimension-vendor-button,
.dimension-navigation-block > .dimension-user-profile-button {
    flex-shrink: 0 !important;
    flex-grow: 0 !important;
}

/* ============================================================
   ACCESSIBILITY
   ============================================================ */

.dimension-nav-button:focus,
.dimension-vendor-button:focus,
.dimension-user-profile-button:focus {
    outline: 2px solid var(--dimension-primary-color) !important;
    outline-offset: 2px !important;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .dimension-nav-button,
    .dimension-vendor-button,
    .dimension-user-profile-button {
        border-width: 2px !important;
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .dimension-nav-button,
    .dimension-vendor-button,
    .dimension-user-profile-button {
        transition: none !important;
    }
}


