.hero-section {
    position: relative;
    height: 70vh;
    overflow: hidden;
}

.hero-section .carousel-item {
    height: 70vh;
}

.hero-section video {
    object-fit: cover;
    height: 100%;
    width: 100%;
}

.hero-section .carousel-caption {
    background: rgba(0,0,0,0.5);
    padding: 2rem;
    border-radius: 10px;
    bottom: 50%;
    transform: translateY(50%);
}

.location-card {
    text-align: center;
    transition: transform 0.3s;
    border: none;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    height: 100%;
}

.location-card:hover {
    transform: translateY(-5px);
}

.activity-card {
    transition: transform 0.3s;
    border: none;
    box-shadow: 0 2px 15px rgba(0,0,0,0.1);
    height: 100%;
}

.activity-card:hover {
    transform: translateY(-5px);
}

.card-img-top {
    height: 200px;
    object-fit: cover;
}

.bg-success {
    background-color: #28a745 !important;
}

.btn-success {
    background-color: #28a745;
    border-color: #28a745;
}

.navbar-brand {
    font-weight: bold;
    font-size: 1.5rem;
}

/* Fix for carousel captions on mobile */
@media (max-width: 768px) {
    .hero-section .carousel-caption {
        padding: 1rem;
        bottom: 20px;
        transform: none;
    }
    
    .hero-section, .hero-section .carousel-item {
        height: 50vh;
    }
}