.zone-card,
.z85 {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.zone-card::before,
.z85::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    transition: opacity 0.6s ease;
}
/* Unique gradient per card for visual variety */
.zone-card[data-city="camargue"]::before,
.z85[data-city="camargue"]::before { background: linear-gradient(135deg, rgba(42,35,20,0.95) 0%, rgba(20,25,35,0.85) 100%); }
.zone-card[data-city="cevennes"]::before,
.z85[data-city="cevennes"]::before { background: linear-gradient(135deg, rgba(25,35,20,0.95) 0%, rgba(35,30,20,0.85) 100%); }
.zone-card[data-city="nimes"]::before,
.z85[data-city="nimes"]::before { background: linear-gradient(135deg, rgba(35,25,20,0.95) 0%, rgba(25,20,30,0.85) 100%); }
.zone-card[data-city="montpellier"]::before,
.z85[data-city="montpellier"]::before { background: linear-gradient(135deg, rgba(20,25,40,0.95) 0%, rgba(30,20,25,0.85) 100%); }
.zone-card[data-city="avignon"]::before,
.z85[data-city="avignon"]::before { background: linear-gradient(135deg, rgba(35,20,30,0.95) 0%, rgba(25,25,20,0.85) 100%); }
.zone-card[data-city="ales"]::before,
.z85[data-city="ales"]::before { background: linear-gradient(135deg, rgba(20,30,25,0.95) 0%, rgba(30,25,15,0.85) 100%); }
.zone-card[data-city="uzes"]::before,
.z85[data-city="uzes"]::before { background: linear-gradient(135deg, rgba(30,25,20,0.95) 0%, rgba(20,20,30,0.85) 100%); }
.zone-card[data-city="arles"]::before,
.z85[data-city="arles"]::before { background: linear-gradient(135deg, rgba(25,20,30,0.95) 0%, rgba(35,30,20,0.85) 100%); }
.zone-card[data-city="aigues-mortes"]::before,
.z85[data-city="aigues-mortes"]::before { background: linear-gradient(135deg, rgba(20,30,35,0.95) 0%, rgba(25,20,25,0.85) 100%); }
.zone-card[data-city="sommieres"]::before,
.z85[data-city="sommieres"]::before { background: linear-gradient(135deg, rgba(30,25,15,0.95) 0%, rgba(20,25,30,0.85) 100%); }

.zone-card:hover::before,
.z85:hover::before {
    opacity: 0.7;
}
.zone-card-content,
.z65 {
    position: relative;
    z-index: 2;
}
.zone-card-accent,
.z6b {
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 0;
    background: #C9A962;
    transition: height 0.5s ease;
    z-index: 3;
}
.zone-card:hover .zone-card-accent,
.z85:hover .z6b {
    height: 100%;
}
.zone-card-number,
.z6c {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    font-size: 4rem;
    font-weight: 300;
    color: rgba(255,255,255,0.03);
    line-height: 1;
    z-index: 2;
    transition: color 0.5s ease;
}
.zone-card:hover .zone-card-number,
.z85:hover .z6c {
    color: rgba(201,169,98,0.08);
}
.zone-card-arrow,
.z6g {
    transform: translateX(0);
    opacity: 0;
    transition: transform 0.4s ease, opacity 0.4s ease;
}
.zone-card:hover .zone-card-arrow,
.z85:hover .z6g {
    transform: translateX(6px);
    opacity: 1;
}
.zone-card-lieu,
.z6w {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.5s ease, opacity 0.4s ease;
}
.zone-card:hover .zone-card-lieu,
.z85:hover .z6w {
    max-height: 120px;
    opacity: 1;
}

.zone-card-content,
.z65 {
    padding: 2.5rem;
}

/* Bento grid */
.zones-grid,
.z7z {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
    padding: 0 1.5rem;
    max-width: 1400px;
    margin: 0 auto;
}
@media (min-width: 768px) {
    .zones-grid,
.z7z {
        grid-template-columns: repeat(2, 1fr);
        gap: 1.5rem;
        padding: 0 2rem;
    }
    .zone-card--featured {
        min-height: 400px;
    }
    .zone-card--regular {
        min-height: 300px;
    }
}
@media (min-width: 1024px) {
    .zones-grid,
.z7z {
        grid-template-columns: repeat(12, 1fr);
        gap: 1.25rem;
        padding: 0 3rem;
    }
    .zone-card[data-city="camargue"],
.z85[data-city="camargue"] { grid-column: span 7; min-height: 440px; }
    .zone-card[data-city="cevennes"],
.z85[data-city="cevennes"] { grid-column: span 5; min-height: 440px; }
    .zone-card[data-city="nimes"],
.z85[data-city="nimes"] { grid-column: span 4; min-height: 360px; }
    .zone-card[data-city="montpellier"],
.z85[data-city="montpellier"] { grid-column: span 4; min-height: 360px; }
    .zone-card[data-city="avignon"],
.z85[data-city="avignon"] { grid-column: span 4; min-height: 360px; }
    .zone-card[data-city="ales"],
.z85[data-city="ales"] { grid-column: span 5; min-height: 320px; }
    .zone-card[data-city="uzes"],
.z85[data-city="uzes"] { grid-column: span 3; min-height: 320px; }
    .zone-card[data-city="arles"],
.z85[data-city="arles"] { grid-column: span 4; min-height: 320px; }
    .zone-card[data-city="aigues-mortes"],
.z85[data-city="aigues-mortes"] { grid-column: span 6; min-height: 300px; }
    .zone-card[data-city="sommieres"],
.z85[data-city="sommieres"] { grid-column: span 6; min-height: 300px; }
}
.zone-card,
.z85 {
    border: 1px solid rgba(255,255,255,0.06);
}
.zone-card:hover,
.z85:hover {
    border-color: rgba(201,169,98,0.2);
}
