﻿.hero-section {
    position: relative;
    padding: 3rem 0;
    min-height: 50vh;
    display: flex;
    align-items: center;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(26, 54, 64, 0.85) 0%, rgba(15, 35, 42, 0.9) 100%);
}

.hero-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.2);
    z-index: 2;
}

.hero-background {
    position: absolute;
    inset: 0;
    opacity: 0.45;
    background-image: url('/img/bg/banner.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    filter: none;
    z-index: 1;
}

    /* Fallback artistic background if image is not available */
    .hero-background::after {
        content: '';
        position: absolute;
        inset: 0;
        background:
        /* Guitar silhouette */
        radial-gradient(ellipse 80px 200px at 15% 60%, rgba(255, 134, 72, 0.6) 0%, transparent 70%),
        /* Microphones */
        radial-gradient(circle 30px at 25% 40%, rgba(255, 134, 72, 0.4) 0%, transparent 60%), radial-gradient(circle 25px at 35% 35%, rgba(255, 134, 72, 0.4) 0%, transparent 60%),
        /* Speakers */
        radial-gradient(circle 60px at 85% 70%, rgba(26, 54, 64, 0.8) 0%, transparent 70%),
        /* Stage lights */
        linear-gradient(45deg, rgba(255, 193, 7, 0.3) 0%, transparent 30%), linear-gradient(135deg, rgba(255, 134, 72, 0.2) 0%, transparent 25%), linear-gradient(225deg, rgba(120, 119, 198, 0.2) 0%, transparent 25%),
        /* Calendar/Event element */
        radial-gradient(ellipse 100px 80px at 75% 30%, rgba(255, 134, 72, 0.5) 0%, transparent 60%);
        z-index: 1;
    }

.hero-content {
    text-align: center;
    position: relative;
    z-index: 10;
    color: white;
}

.live-stats {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    background-color: rgb(var(--card) / 0.8);
    backdrop-filter: blur(8px);
    border: 1px solid rgb(var(--border));
    border-radius: 9999px;
    padding: 0.7rem 1.25rem;
    margin-bottom: 1.5rem;
    display: inline-flex;
    animation: fadeIn 0.6s ease-out;
}

.live-indicator {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.9);
}

.live-dot {
    width: 0.5rem;
    height: 0.5rem;
    background-color: #10b981;
    border-radius: 50%;
    animation: pulse 2s infinite;
}

.hero-title {
    font-size: clamp(1.875rem, 3.4vw, 2.75rem);
    font-weight: 700;
    margin-bottom: 1rem;
    line-height: 1.1;
    color: white;
}

.hero-title-highlight {
    background: linear-gradient(135deg, rgb(var(--primary)), rgb(var(--accent)));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    display: block;
    animation: shimmer 3s ease-in-out infinite;
}

.hero-subtitle {
    font-size: 0.98rem;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 1.35rem;
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6;
}

.hero-search {
    max-width: 60rem;
    margin: 0 auto 1rem;
}

.search-container {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    padding: 0.75rem;
    background-color: rgb(255 255 255 / 0.9);
    backdrop-filter: blur(8px);
    border: 1px solid rgb(255 255 255 / 0.28);
    border-radius: 0.5rem;
    box-shadow: 0 8px 24px rgb(0 0 0 / 0.14);
    transition: box-shadow 0.2s ease;
}

    .search-container:hover {
        box-shadow: 0 10px 26px rgb(0 0 0 / 0.16);
    }

@media (min-width: 768px) {
    .search-container {
        flex-direction: row;
    }
}

.search-field {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.7rem 0.9rem;
    background-color: rgb(255 255 255 / 0.95);
    border: 1px solid rgb(var(--border) / 0.3);
    border-radius: 0.5rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    position: relative;
}

.search-field:hover {
    background-color: rgb(255 255 255 / 1);
    border-color: rgb(var(--primary) / 0.3);
}

.search-field:focus-within {
    background-color: rgb(255 255 255 / 1);
    border-color: rgb(var(--primary) / 0.6);
    box-shadow: 0 0 0 3px rgb(var(--primary) / 0.1);
}

@media (min-width: 768px) {
    .search-field {
        min-width: 160px;
    }
    
    .search-field:first-child {
        flex: 2; /* Give "What" field more space */
    }
}

    .search-field input {
        flex: 1;
        border: none;
        background: transparent;
        color: rgb(15 23 42);
        font-size: 0.92rem;
        font-weight: 500;
        outline: none;
    }

        .search-field input::placeholder {
            color: rgb(100 116 139);
            font-weight: 400;
        }

    .search-field i {
        color: rgb(var(--primary));
        width: 1rem;
        height: 1rem;
        flex-shrink: 0;
    }

.search-divider {
    display: none;
}

.search-btn {
    padding: 0.7rem 1.25rem;
    background: linear-gradient(135deg, rgb(var(--primary)), rgb(var(--accent)));
    color: white;
    border: none;
    border-radius: var(--radius);
    font-weight: 600;
    font-size: 0.92rem;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    white-space: nowrap;
    flex-shrink: 0;
}

@media (min-width: 768px) {
    .search-btn {
        padding: 0.7rem 1.75rem;
    }
}

    .search-btn:hover {
        box-shadow: 0 8px 18px rgb(var(--primary) / 0.28);
    }

.stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    max-width: 60rem;
    margin: 0 auto;
}

.stat-item {
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

    .stat-item:hover {
        transform: translateY(-4px);
    }

.stat-number {
    font-size: clamp(2.5rem, 4vw, 4rem);
    font-weight: 700;
    color: white;
    margin-bottom: 0.5rem;
    display: block;
    transition: all 0.5s ease;
}

.stat-item:hover .stat-number {
    transform: scale(1.1);
}

.stat-label {
    color: rgba(255, 255, 255, 0.9);
    font-weight: 500;
    font-size: 1.125rem;
}

.stat-indicator {
    width: 4rem;
    height: 0.25rem;
    background: linear-gradient(135deg, rgb(var(--primary)), rgb(var(--accent)));
    margin: 0.75rem auto 0;
    border-radius: 9999px;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.stat-item:hover .stat-indicator {
    opacity: 1;
}

/* Trending Section */
.trending-section {
    padding: 4rem 0;
    background: linear-gradient(135deg, rgb(var(--primary) / 0.05) 0%, rgb(var(--accent) / 0.05) 100%);
}

.trending-header {
    text-align: center;
    margin-bottom: 3rem;
}

.trending-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    background-color: rgb(var(--card) / 0.8);
    backdrop-filter: blur(8px);
    border: 1px solid rgb(var(--border));
    border-radius: 9999px;
    padding: 0.75rem 1.5rem;
    margin-bottom: 1rem;
}

.trending-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1.5rem;
    max-width: 80rem;
    margin: 0 auto;
}

.trending-card {
    background-color: rgb(var(--card) / 0.6);
    backdrop-filter: blur(8px);
    border: 1px solid rgb(var(--border));
    border-radius: 0.5rem;
    padding: 1.5rem;
    text-align: center;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

    .trending-card::before {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg, rgb(var(--primary) / 0.1), rgb(var(--accent) / 0.1));
        opacity: 0;
        transition: opacity 0.3s ease;
    }

    .trending-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 10px 22px rgb(0 0 0 / 0.08);
    }

        .trending-card:hover::before {
            opacity: 1;
        }

.trending-icon {
    width: 4rem;
    height: 4rem;
    background: linear-gradient(135deg, rgb(var(--primary) / 0.1), rgb(var(--accent) / 0.1));
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
}

.trending-card:hover .trending-icon {
    transform: scale(1.1) rotate(5deg);
    background: linear-gradient(135deg, rgb(var(--primary) / 0.2), rgb(var(--accent) / 0.2));
}

.trending-icon i {
    color: rgb(var(--primary));
    width: 2rem;
    height: 2rem;
}

.trending-title {
    font-weight: 700;
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
    position: relative;
    z-index: 1;
    transition: color 0.3s ease;
}

.trending-card:hover .trending-title {
    color: rgb(var(--primary));
}

.trending-growth {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    color: #10b981;
    font-weight: 600;
    position: relative;
    z-index: 1;
}

/* Service Categories Section */
.categories-section {
    padding: 3rem 0;
    background: rgb(var(--background));
}

.section-header {
    text-align: center;
    margin-bottom: 2rem;
}

.section-title {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 700;
    margin-bottom: 0.75rem;
    color: rgb(var(--foreground));
}

.section-subtitle {
    font-size: 0.92rem;
    color: rgb(var(--muted-foreground));
    max-width: 32rem;
    margin: 0 auto;
}

.categories-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 1rem;
    max-width: 80rem;
    margin: 0 auto;
}

@media (max-width: 1024px) {
    .categories-grid {
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: auto;
    }
}

@media (max-width: 768px) {
    .categories-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
    }
}

@media (max-width: 480px) {
    .categories-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
    }
}

.category-card {
    background-color: rgb(var(--card) / 0.5);
    backdrop-filter: blur(8px);
    border: 1px solid rgb(var(--border));
    border-radius: 0.5rem;
    padding: 1rem;
    text-align: center;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}

@media (min-width: 768px) {
    .category-card {
        padding: 2rem 1.5rem;
    }
}

    .category-card::before {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg, rgb(var(--primary) / 0.05), rgb(var(--accent) / 0.05));
        opacity: 0;
        transition: opacity 0.3s ease;
    }

    .category-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 10px 22px rgb(0 0 0 / 0.08);
        text-decoration: none;
        color: inherit;
    }

        .category-card:hover::before {
            opacity: 1;
        }

.category-icon {
    width: 3rem;
    height: 3rem;
    background: linear-gradient(135deg, rgb(var(--primary) / 0.1), rgb(var(--accent) / 0.1));
    border-radius: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1rem;
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
}

@media (min-width: 768px) {
    .category-icon {
        width: 3.25rem;
        height: 3.25rem;
        margin: 0 auto 1rem;
    }
}

.category-card:hover .category-icon {
    transform: scale(1.04);
    background: linear-gradient(135deg, rgb(var(--primary) / 0.2), rgb(var(--accent) / 0.2));
}

.category-icon i {
    color: rgb(var(--primary));
    width: 2rem;
    height: 2rem;
}

@media (min-width: 768px) {
    .category-icon i {
        width: 2.25rem;
        height: 2.25rem;
    }
}

.category-title {
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 0.5rem;
    position: relative;
    z-index: 1;
    transition: color 0.3s ease;
    line-height: 1.3;
}

@media (min-width: 768px) {
    .category-title {
        font-size: 1.125rem;
        margin-bottom: 0.75rem;
    }
}

.category-card:hover .category-title {
    color: rgb(var(--primary));
}

.category-count {
    color: rgb(var(--muted-foreground));
    font-weight: 500;
    font-size: 1.125rem;
    margin-bottom: 1rem;
    position: relative;
    z-index: 1;
}

.category-explore {
    opacity: 0;
    transform: translateY(1rem);
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
}

.category-card:hover .category-explore {
    opacity: 1;
    transform: translateY(0);
}

.category-explore .btn {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
    background-color: transparent;
    color: rgb(var(--primary));
    border: 1px solid rgb(var(--primary));
    transition: all 0.3s ease;
}

    .category-explore .btn:hover {
        background-color: rgb(var(--primary));
        color: white;
    }

/* Animations */
@keyframes float {
    0%, 100% {
        transform: translateY(0px);
    }

    50% {
        transform: translateY(-10px);
    }
}

@keyframes shimmer {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(1rem);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }

    50% {
        opacity: 0.5;
    }
}

/* Professional Cards */
.professional-card {
    background-color: rgb(var(--card) / 0.5);
    backdrop-filter: blur(8px);
    border: 1px solid rgb(var(--border));
    border-radius: 1rem;
    padding: 0;
    text-align: center;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    text-decoration: none;
    color: inherit;
}

    .professional-card::before {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg, rgb(var(--primary) / 0.05), rgb(var(--accent) / 0.05));
        opacity: 0;
        transition: opacity 0.3s ease;
    }

    .professional-card:hover {
        transform: translateY(-8px);
        box-shadow: 0 20px 40px rgb(0 0 0 / 0.15);
        text-decoration: none;
        color: inherit;
    }

        .professional-card:hover::before {
            opacity: 1;
        }

.professional-image {
    height: 240px;
    object-fit: cover;
    transition: transform 0.7s ease;
    width: 100%;
}

.professional-card:hover .professional-image {
    transform: scale(1.1);
}

.professional-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, transparent 60%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.professional-card:hover .professional-overlay {
    opacity: 1;
}

.online-dot {
    width: 0.5rem;
    height: 0.5rem;
    background-color: #10b981;
    border-radius: 50%;
    animation: pulse 2s infinite;
    display: inline-block;
}

.badge-outline-accent {
    border: 1px solid rgb(var(--accent));
    color: rgb(var(--accent));
    background: transparent;
}

/* Work Showcase */
.work-showcase-item {
    position: relative;
    aspect-ratio: 1;
    border-radius: 1rem;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.3s ease;
}

    .work-showcase-item:hover {
        transform: translateY(-4px);
        box-shadow: 0 10px 25px rgb(0 0 0 / 0.15);
    }

.work-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.work-showcase-item:hover .work-image {
    transform: scale(1.1);
}

.work-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.2) 50%, transparent 100%);
    opacity: 0;
    transition: opacity 0.3s ease;
    display: flex;
    align-items: end;
}

.work-showcase-item:hover .work-overlay {
    opacity: 1;
}

.work-content {
    padding: 1rem;
    width: 100%;
}

/* Live Events */
.live-dot-indicator {
    width: 0.75rem;
    height: 0.75rem;
    background-color: #dc3545;
    border-radius: 50%;
    animation: pulse 2s infinite;
    display: inline-block;
}

.event-card {
    background-color: rgb(var(--card) / 0.5);
    backdrop-filter: blur(8px);
    border: 1px solid rgb(var(--border));
    border-radius: 1rem;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

    .event-card::before {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg, rgb(var(--primary) / 0.05), rgb(var(--accent) / 0.05));
        opacity: 0;
        transition: opacity 0.3s ease;
    }

    .event-card:hover {
        transform: translateY(-8px);
        box-shadow: 0 20px 40px rgb(0 0 0 / 0.15);
    }

        .event-card:hover::before {
            opacity: 1;
        }

/* How It Works */
.how-it-works-step {
    transition: all 0.3s ease;
    text-align: center;
}

    .how-it-works-step:hover {
        transform: translateY(-4px);
    }

.step-icon-container {
    width: 6rem;
    height: 6rem;
    background: linear-gradient(135deg, rgb(var(--primary) / 0.1), rgb(var(--accent) / 0.1));
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
}

.how-it-works-step:hover .step-icon-container {
    transform: scale(1.1);
    background: linear-gradient(135deg, rgb(var(--primary) / 0.2), rgb(var(--accent) / 0.2));
}

.step-icon {
    width: 3rem;
    height: 3rem;
    color: rgb(var(--primary));
}

.step-number {
    position: absolute;
    top: -0.5rem;
    right: -0.5rem;
    width: 3rem;
    height: 3rem;
    background: linear-gradient(135deg, rgb(var(--primary)), rgb(var(--accent)));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: bold;
    font-size: 1.125rem;
}

/* Venue Cards and other cards */
.venue-card,
.success-story-card,
.testimonial-card {
    background-color: rgb(var(--card) / 0.5);
    backdrop-filter: blur(8px);
    border: 1px solid rgb(var(--border));
    border-radius: 1rem;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

    .venue-card::before,
    .success-story-card::before,
    .testimonial-card::before {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(135deg, rgb(var(--primary) / 0.05), rgb(var(--accent) / 0.05));
        opacity: 0;
        transition: opacity 0.3s ease;
    }

    .venue-card:hover,
    .success-story-card:hover,
    .testimonial-card:hover {
        transform: translateY(-8px);
        box-shadow: 0 20px 40px rgb(0 0 0 / 0.15);
    }

        .venue-card:hover::before,
        .success-story-card:hover::before,
        .testimonial-card:hover::before {
            opacity: 1;
        }

.success-story-avatar {
    width: 5rem;
    height: 5rem;
    border-radius: 50%;
    object-fit: cover;
}

.testimonial-avatar {
    width: 3rem;
    height: 3rem;
    background: linear-gradient(135deg, rgb(var(--primary)), rgb(var(--accent)));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: bold;
    font-size: 1rem;
}

/* CTA Section */
.cta-section {
    background: linear-gradient(135deg, rgb(var(--primary)), rgb(var(--accent)));
    color: white;
    position: relative;
    overflow: hidden;
}

    .cta-section::before {
        content: '';
        position: absolute;
        inset: 0;
        background: radial-gradient(circle at 30% 20%, rgba(255,255,255,0.1), transparent 50%);
    }

    .cta-section::after {
        content: '';
        position: absolute;
        inset: 0;
        background: radial-gradient(circle at 70% 80%, rgba(255,255,255,0.1), transparent 50%);
    }

.cta-content {
    position: relative;
    z-index: 10;
}

/* Responsive Design */
@media (max-width: 640px) {
    .hero-section {
        padding: 3rem 0;
        min-height: 60vh;
    }

    .search-container {
        padding: 1rem;
        border-radius: 1rem;
        gap: 0.75rem;
    }
    
    .search-field {
        padding: 0.875rem 1rem;
        min-width: unset;
    }
    
    .search-btn {
        padding: 0.75rem 1rem;
        font-size: 0.875rem;
    }

    .stats-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .trending-grid {
        grid-template-columns: 1fr;
    }

    .categories-grid {
        grid-template-columns: 1fr;
    }

    .category-icon {
        width: 4rem;
        height: 4rem;
    }

        .category-icon i {
            width: 2rem;
            height: 2rem;
        }

    .step-icon-container {
        width: 4rem;
        height: 4rem;
    }

    .step-icon {
        width: 2rem;
        height: 2rem;
    }

    .step-number {
        width: 2.5rem;
        height: 2.5rem;
        font-size: 1rem;
    }

    .success-story-avatar {
        width: 4rem;
        height: 4rem;
    }

    .cta-section .btn {
        margin-bottom: 1rem;
        width: 100%;
    }
}

/* Background sections */
.bg-gradient-to-b {
    background: rgb(var(--background));
}

.bg-gradient-to-r {
    background: rgb(var(--background));
}
