/**
 * Unified Hero System CSS
 * Common styles for hero banners across all pages: single lokal, single inwestycja, archive pages
 */

/* ============================================================================
   BASE HERO STYLES - SHARED ACROSS ALL HERO TYPES
   ============================================================================ */

.inwestycja-header,
.lokal-header,
.archive-header-hero {
    background: var(--color-bg, #ffffff);
    margin-bottom: var(--spacing-xxl, 48px);
    width: 100%;
    position: relative;
    /* Sticky header compatibility - ensure hero doesn't overlap with sticky navigation */
    padding-top: var(--jcm-sticky-header-height, 80px);
    margin-top: calc(-1 * var(--jcm-sticky-header-height, 80px));
}

/* Hero container for image banners */
.inwestycja-header__hero,
.lokal-header__hero,
.archive-header-hero__banner {
    position: relative;
    overflow: hidden;
    border-radius: var(--card-radius, 8px);
    aspect-ratio: 16 / 9;
    margin-bottom: var(--spacing-lg, 24px);
}

/* Hero images */
.inwestycja-header__hero-image,
.lokal-header__hero-image,
.archive-header-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

/* Hover effect for hero images */
.inwestycja-header__hero:hover .inwestycja-header__hero-image,
.lokal-header__hero:hover .lokal-header__hero-image,
.archive-header-hero__banner:hover .archive-header-hero__image {
    transform: scale(1.02);
}

/* ============================================================================
   ARCHIVE HERO WITH OVERLAY TEXT
   ============================================================================ */

.archive-header-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.3));
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: white;
    padding: var(--spacing-xl, 32px);
}

.archive-header-hero__content {
    max-width: 800px;
    z-index: 2;
}

.archive-header-hero__title {
    font-size: var(--font-size-4xl, 36px);
    font-weight: 700;
    margin-bottom: var(--spacing-md, 16px);
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
    color: white;
    line-height: var(--jcm-ocean-h1-line-height, inherit);
}

.archive-header-hero__description {
    font-size: var(--font-size-lg, 20px);
    font-weight: 400;
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
    line-height: var(--jcm-ocean-body-line-height, inherit);
    margin: 0;
}

/* ============================================================================
   FALLBACK HEADER STYLES (NO HERO IMAGE)
   ============================================================================ */

.archive-header {
    background: var(--color-bg-light, #f8f9fa);
    border-bottom: 1px solid var(--color-border, #000000);
    padding: var(--spacing-xxl, 48px) var(--spacing-xl, 32px);
    margin-bottom: var(--spacing-xxl, 48px);
    text-align: center;
}

.archive-header .archive-title {
    font-size: var(--font-size-4xl, 36px);
    font-weight: 700;
    color: var(--color-text-dark, #1a202c);
    margin-bottom: var(--spacing-md, 16px);
    line-height: var(--jcm-ocean-h1-line-height, inherit);
}

.archive-header .archive-description {
    font-size: var(--font-size-lg, 20px);
    color: var(--color-text-light, #666);
    line-height: var(--jcm-ocean-body-line-height, inherit);
    max-width: 600px;
    margin: 0 auto;
}

/* ============================================================================
   RESPONSIVE DESIGN
   ============================================================================ */

/* Tablet */
@media (max-width: 768px) {
    .inwestycja-header__hero,
    .lokal-header__hero,
    .archive-header-hero__banner {
        aspect-ratio: 16 / 10; /* Slightly taller on mobile */
    }
    
    .archive-header-hero__title {
        font-size: var(--font-size-3xl, 30px);
    }
    
    .archive-header-hero__description {
        font-size: var(--font-size-base, 16px);
    }
    
    .archive-header-hero__overlay {
        padding: var(--spacing-lg, 24px);
    }
    
    .archive-header {
        padding: var(--spacing-xl, 32px) var(--spacing-lg, 24px);
    }
    
    .archive-header .archive-title {
        font-size: var(--font-size-3xl, 30px);
    }
    
    .archive-header .archive-description {
        font-size: var(--font-size-base, 16px);
    }
}

/* Mobile */
@media (max-width: 480px) {
    .inwestycja-header,
    .lokal-header,
    .archive-header-hero {
        margin-bottom: var(--spacing-xl, 32px);
    }
    
    .inwestycja-header__hero,
    .lokal-header__hero,
    .archive-header-hero__banner {
        aspect-ratio: 4 / 3; /* More square on small mobile */
        border-radius: 4px;
    }
    
    .archive-header-hero__title {
        font-size: var(--font-size-2xl, 24px);
        margin-bottom: var(--spacing-sm, 12px);
    }
    
    .archive-header-hero__description {
        font-size: var(--font-size-sm, 14px);
    }
    
    .archive-header-hero__overlay {
        padding: var(--spacing-md, 16px);
    }
    
    .archive-header {
        padding: var(--spacing-lg, 24px) var(--spacing-md, 16px);
        margin-bottom: var(--spacing-xl, 32px);
    }
    
    .archive-header .archive-title {
        font-size: var(--font-size-2xl, 24px);
    }
    
    .archive-header .archive-description {
        font-size: var(--font-size-sm, 14px);
    }
}

/* ============================================================================
   ACCESSIBILITY
   ============================================================================ */

/* Reduced motion preference */
@media (prefers-reduced-motion: reduce) {
    .inwestycja-header__hero-image,
    .lokal-header__hero-image,
    .archive-header-hero__image {
        transition: none;
    }
    
    .inwestycja-header__hero:hover .inwestycja-header__hero-image,
    .lokal-header__hero:hover .lokal-header__hero-image,
    .archive-header-hero__banner:hover .archive-header-hero__image {
        transform: none;
    }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .archive-header-hero__overlay {
        background: linear-gradient(135deg, rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.6));
    }
    
    .archive-header {
        border-bottom: 2px solid var(--color-border, #000);
    }
}

/* ============================================================================
   FOCUS STATES FOR KEYBOARD NAVIGATION
   ============================================================================ */

.inwestycja-header__hero:focus-within,
.lokal-header__hero:focus-within,
.archive-header-hero__banner:focus-within {
    outline: 2px solid var(--color-primary, #3b82f6);
    outline-offset: 2px;
}

/* ============================================================================
   PRINT STYLES
   ============================================================================ */

@media print {
    .inwestycja-header,
    .lokal-header,
    .archive-header-hero,
    .archive-header {
        background: white !important;
        color: black !important;
        border: 1px solid #000 !important;
        margin-bottom: 20px !important;
        break-inside: avoid;
    }
    
    .inwestycja-header__hero-image,
    .lokal-header__hero-image,
    .archive-header-hero__image {
        filter: grayscale(100%);
    }
    
    .archive-header-hero__overlay {
        background: rgba(255, 255, 255, 0.8) !important;
        color: black !important;
    }
    
    .archive-header-hero__title,
    .archive-header-hero__description {
        color: black !important;
        text-shadow: none !important;
    }
}