/**
 * WCPGW Website - Main Stylesheet
 * Design Philosophy: Giorgio Armani-inspired minimalism
 * - Sober, refined aesthetics
 * - Black and white with subtle grays
 * - Typography-focused hierarchy
 */

/* ==========================================================================
   CSS Custom Properties (Design Tokens)
   ========================================================================== */

:root {
    /* Color Palette - Light Mode */
    --color-charcoal: #1a1a1a;
    --color-ash: #2d2d2d;
    --color-stone: #404040;
    --color-pearl: #f8f8f8;
    --color-silk: #efefef;
    --color-platinum: #e0e0e0;
    
    /* Semantic Colors */
    --color-bg-primary: var(--color-pearl);
    --color-bg-secondary: var(--color-silk);
    --color-text-primary: var(--color-charcoal);
    --color-text-secondary: var(--color-stone);
    --color-border: var(--color-platinum);
    
    /* Dot Pattern */
    --dot-bg: transparent;
    --dot-color: rgb(0 0 0 / 0.04);
    --dot-size: 1px;
    --dot-space: 20px;
    
    /* Typography */
    --font-display: 'Lato', sans-serif;
    --font-body: 'Inter', sans-serif;
    
    /* Transitions */
    --transition-fast: 0.3s ease;
    --transition-medium: 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    --transition-slow: 0.7s ease;
    
    /* Spacing */
    --section-padding: 8rem;
    --content-max-width: 72rem;
}

/* Dark Mode Overrides */
.dark {
    --color-bg-primary: var(--color-charcoal);
    --color-bg-secondary: var(--color-ash);
    --color-text-primary: var(--color-pearl);
    --color-text-secondary: var(--color-platinum);
    --color-border: var(--color-stone);
    
    --dot-bg: transparent;
    --dot-color: rgb(255 255 255 / 0.03);
}


/* ==========================================================================
   Background Patterns
   ========================================================================== */

.dot-pattern {
    background-image: radial-gradient(
        circle, 
        var(--dot-color) var(--dot-size), 
        var(--dot-bg) var(--dot-size)
    );
    background-size: var(--dot-space) var(--dot-space);
    background-position: 0 0;
}


/* ==========================================================================
   Animations
   ========================================================================== */

@keyframes fadeIn {
    from { 
        opacity: 0; 
        transform: translateY(10px); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

@keyframes slideRight {
    from { width: 0%; }
    to { width: 100%; }
}

.animate-fadeIn {
    animation: fadeIn 1s ease-out forwards;
}

.animate-line {
    animation: slideRight 1.5s ease-out forwards;
}

/* Animation Delays */
.delay-100 { animation-delay: 100ms; }
.delay-200 { animation-delay: 200ms; }
.delay-300 { animation-delay: 300ms; }
.delay-400 { animation-delay: 400ms; }


/* ==========================================================================
   Interactive Elements
   ========================================================================== */

/* Refined Hover Effect */
.refined-hover {
    transition: var(--transition-medium);
}

.refined-hover:hover {
    transform: translateX(4px);
}

/* Border Animation for CTAs */
.border-animate {
    position: relative;
    overflow: hidden;
}

.border-animate::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 1px;
    background: currentColor;
    transition: left 0.5s ease;
}

.border-animate:hover::before {
    left: 0;
}


/* ==========================================================================
   Logo Styling
   ========================================================================== */

.logo-text {
    font-family: var(--font-display);
    letter-spacing: 0.05em;
}


/* ==========================================================================
   Collapsible Sections
   ========================================================================== */

.collapse-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-out;
}

.collapse-content.expanded {
    max-height: 500px;
    transition: max-height 0.6s ease-in;
}

.collapse-trigger {
    cursor: pointer;
    user-select: none;
}

.collapse-trigger .arrow {
    transition: transform var(--transition-fast);
}

.collapse-trigger.expanded .arrow {
    transform: rotate(90deg);
}


/* ==========================================================================
   Custom Scrollbar
   ========================================================================== */

.custom-scrollbar::-webkit-scrollbar {
    width: 6px;
}

.custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 3px;
}

.dark .custom-scrollbar::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.2);
}


/* ==========================================================================
   Utility Classes (extending Tailwind)
   ========================================================================== */

/* Navigation Visibility Control */
/* Hide desktop navigation on mobile, show on desktop */
/* Higher specificity to override Tailwind CDN */
nav .nav-desktop,
.nav-desktop {
    display: none !important;
    align-items: center;
    gap: 2rem;
}

@media (min-width: 768px) {
    nav .nav-desktop,
    .nav-desktop {
        display: flex !important;
    }
}

/* Mobile Menu */
#mobileMenu {
    transition: opacity 0.3s ease;
}

#mobileMenu.hidden {
    opacity: 0;
    pointer-events: none;
}

#mobileMenu:not(.hidden) {
    opacity: 1;
    pointer-events: auto;
}

/* Mobile menu toggle button - hide on desktop */
#mobileMenuToggle {
    display: flex;
}

@media (min-width: 768px) {
    #mobileMenuToggle {
        display: none !important;
    }
}

/* Section Header Pattern */
.section-header {
    margin-bottom: 4rem;
}

.section-header h2 {
    font-size: 0.875rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--color-text-secondary);
    margin-bottom: 1rem;
}

.section-header::after {
    content: '';
    display: block;
    width: 3rem;
    height: 2px;
    background: var(--color-text-primary);
}

.dark .section-header::after {
    background: var(--color-pearl);
}

/* Metric Card */
.metric-card {
    border-left: 1px solid var(--color-border);
    padding-left: 1.5rem;
}

.metric-card .value {
    font-size: 1.875rem;
    font-weight: 300;
    margin-bottom: 0.5rem;
}

.metric-card .label {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
}

/* Service Card */
.service-card {
    border: 1px solid var(--color-border);
}

.service-card-header {
    padding: 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}

.service-card-content {
    padding: 0 1.5rem;
}


/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
    .dot-pattern {
        display: none;
    }
    
    nav, footer {
        display: none;
    }
    
    section {
        page-break-inside: avoid;
    }
}
