*{
    box-sizing:border-box;
}

html,
body{
    margin:0;
    padding:0;
    font-family:Arial,Helvetica,sans-serif;
    background:#f5f5f5;
}


/************************************************
*
* Toolbar
*
************************************************/

.toolbar{

    position:sticky;
    top:0;

    z-index:100;

    background:#ffffff;

    padding:15px;

    display:flex;

    flex-wrap:wrap;

    gap:15px;

    align-items:center;

    justify-content:space-between;

    box-shadow:0 2px 12px rgba(0,0,0,.15);

}


.searchBox{

    flex:1;

    min-width:250px;

    display:flex;

    align-items:center;

    gap:10px;

    background:#f0f0f0;

    border-radius:12px;

    padding:12px;

}


.searchBox input{

    flex:1;

    border:none;

    background:none;

    outline:none;

    font-size:16px;

}


.filters{

    display:flex;

    flex-wrap:wrap;

    gap:8px;

}


.filter{

    padding:10px 16px;

    border:none;

    border-radius:30px;

    cursor:pointer;

    background:#eeeeee;

    transition:.25s;

}


.filter:hover{

    background:#dddddd;

}


.filter.active{

    background:#0b63ff;

    color:white;

}


/************************************************
*
* Gallery
*
************************************************/

.gallery{

    display:grid;

    grid-template-columns:
        repeat(auto-fill,minmax(340px,1fr));

    gap:20px;

    padding:20px;

}


/************************************************
*
* Card
*
************************************************/

.card{

    background:white;

    border-radius:18px;

    overflow:hidden;

    cursor:pointer;

    transition:.25s;

    box-shadow:
        0 8px 18px rgba(0,0,0,.15);

}


.card:hover{

    transform:translateY(-6px);

    box-shadow:
        0 14px 30px rgba(0,0,0,.25);

}


.card-image{

    aspect-ratio:16/9;

    overflow:hidden;

}


.card-image img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.4s;

}


.card:hover img{

    transform:scale(1.05);

}


.card-body{

    padding:18px;

}


.card-city{

    font-size:24px;

    font-weight:bold;

}


.card-type{

    color:#1565c0;

    margin-top:8px;

}


.card-messenger{

    margin-top:14px;

    font-weight:bold;

}


.card-title{

    color:#666;

    margin-top:4px;

}


/************************************************
*
* Responsive
*
************************************************/

@media(max-width:900px){

.gallery{

grid-template-columns:1fr 1fr;

}
 
}

@media(max-width:650px){

.gallery{

grid-template-columns:1fr;

}

.toolbar{

flex-direction:column;

align-items:stretch;

}

.filters{

justify-content:center;

}

}