*, *:after, *:before{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    text-decoration: none;
}

:root{
    --light-orange: #F1A83E;
    --greenish-gray: #8B8984;
    --light-gray: #DCDCDC;
    --white: #fff;
    --light-green: #9DC448;
    --cobalt-blue: #4476B5;
}

.header-line{
    margin-top: -24px;
    width: 100%;
    transform: rotate(180deg);
}

header .navbar{
    color: var(--greenish-gray);
}

header .navbar .logo{
    max-width: 150px;
}

.bi-house-fill{
    margin-left: 10px;
    font-size: 30px;
    color: var(--greenish-gray);
}

header .navbar .sac{
    border-left: 2px solid var(--greenish-gray);
    border-right: 2px solid var(--greenish-gray);
    padding: 0 20px;
    margin: 0 25px 25px 25px;
}

header .navbar ul{
    list-style: none;
    display: flex;
}

header .navbar ul li{
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--greenish-gray);
    font-size: 25px;
    margin-right: 10px;
}

header .navbar ul li a{
    color: var(--white);
}

header .navbar ul li:hover{
    transform: rotate(30deg);
    transition: .4s;
}

header .navbar ul .active{
    background-color: var(--light-orange);
}

header .navbar form{
    position: relative;
}

header .navbar input{
    border-color: var(--light-orange);
    border-radius: 20px;
}

header .navbar .btn-search{
    width: 40px;
    background-color: var(--light-orange);
    color: var(--white);
    font-size: 19px;
    padding: 5px;
    border: none;
    border-radius: 0 50% 50% 0;
    position: absolute;
    top: 0;
    right: 0;
}

main .sample-categories{
    position: relative;
    max-height: 100px;
    overflow: hidden;
    border-radius: 0px;
}

main .showcategories{
    padding: 4px;
    height: 100%;
    width: 170px;
    background-color: #328CC1;
    z-index: 5;
    font-weight: bold;
}

main .showcategories a{
    color: var(--white);
    text-align: center;
    text-decoration: none;
}

main .showcategories img{
    height: 23px;
    margin-right: 3px;
}

main .sample-categories li, main .categories-dropdown li{
    background-color: var(--cobalt-blue);
    height: 50px;
    padding-top: 12px;
}


main .sample-categories li a, main .categories-dropdown li a{
    text-decoration: none;
    color: var(--white);
}

main .sample-categories li a i, main .categories-dropdown li a i{
    font-size: 20px;
    padding-right: 15px;
}

main .categories-dropdown{
    margin-right: 10px;
    z-index: 3;
}

.carousel-indicators{
    bottom: -50px;
    filter: brightness(40%);
}

.carousel-indicators li{
    color: var(--white);
    padding: 5px 25px !important;
}

.carousel-indicators li:nth-child(2){
    margin: 0 10px 0 10px;
}

.carousel-control{
    font-size: 55px;
    color: var(--white);
    filter: brightness(40%);
    text-decoration: none;
}

.home-cards{
    margin-top: 50px;
}

.home-cards .card-img-top{
    width: 70%;
    margin: 10px auto;
}

.home-cards .card-body{
    background-color: var(--light-gray);
    color: #4A4F52;
    font-family: 'Noto Sans JP', sans-serif;    
}

.home-cards .card-title{
    font-size: 16px;
}

.home-cards .card-text span, .home-cards .card-text i{
    font-size: 20px;
}

.home-cards .card-body a:first-child{
    width: 110px;
    margin-right: 10px;
}

.home-cards .card-body a:last-child{
    font-size: 25px;
    background-color: #6C757D;
    width: 40px;
    height: 40px;
    color: var(--white);
    border-radius: 10px;
}

.home-cards .card-body a:first-child:hover{
    background-color: var(--light-orange);
    border-color: var(--light-orange);
}

.home-cards .card-body a:last-child:hover{
    background-color: var(--light-orange);
    border-color: var(--light-orange);
}

.footer-top-line{
    width: 100%;
    margin-top: 30px;
}

.footer-bottom-line{
    width: 100%;
    margin-top: -15px;
}

footer{
    background-color: var(--light-gray);
    padding: 30px 5px 30px 10px;
    color: var(--greenish-gray);
    overflow: hidden;
    margin-top: -10px;
}

.footer-title{
    font-size: 25px;
    margin-bottom: 30px;
}

footer .categories, footer .contact, footer .copyright{
    padding: 20px;
    overflow: hidden;
}

footer .categories ul li{
    padding: 5px;
}

footer .categories ul li::marker{
    color: var(--cobalt-blue);
}

footer ul li a{
    color: var(--greenish-gray);
    font-size: 18px;
    text-decoration: none;
}

footer .categories ul li a:hover{
    color: var(--light-orange);
}

footer .contact{
    border-left: 2px solid var(--white);
    border-right: 2px solid var(--white);
}

footer .contact img{
    opacity: 0.5;
    width: 50px;
    height: 50px;
    margin-right: 10px;
}

footer .contact ul li{
    margin-bottom: 5px;
}

footer .contact ul li a:hover{
    color: var(--light-orange);
}

footer .btn-twitter, footer .btn-instagram{
    margin-bottom: 10px;
    width: 200px;
}

footer .btn-instagram{
    background-color: red;
    color: var(--white);
}

footer .btn-twitter{
    background-color: #348AB9;
    color: var(--white);
}

footer .btn i{
    padding-right: 10px;
}

footer .copyright h3{
    font-size: 18px;
}

footer .copyright .logo{
    width: 100%;
    text-align: center;
}

footer .copyright .logo img{
    width: 150px;
}

/* Contact Page */
.contact-container{
    color: var(--greenish-gray);
    margin-top: 40px;
}

.contact-container h1{
    font-size: 30px;
}

.contact-container h1 i{
    color: var(--light-green);
}

.contact-container form input{
    margin-bottom: 15px;
}

/* Companies Page */
.companies{
    margin-top: 70px;
}

.companies aside .list-group-item{
    background-color: var(--cobalt-blue)
}

.companies aside .category, .companies aside ul .filter-region{
    font-size: 20px;
}

.companies aside .list-group-item a, .companies aside ul li{
    text-decoration: none;
    color: var(--white);
}

.companies aside .list-group-item a:hover{
    color: var(--light-orange);
}

.companies aside ul li input[type="checkbox"]{
    margin-right: 10px;
    text-align: center;
    display: table-cell;
    vertical-align: middle;
    width: 20px !important;
    height: 20px !important;
    appearance:none;
    border-radius:10%;
    border: 2px solid var(--white);
    box-shadow: none;
    font-size: 1em;
}

input[type='checkbox']:checked {
  background-color: var(--light-orange);
}

input[type='checkbox']:checked:after {
    content: '';
}

.companies aside ul .clear{
    cursor: pointer;
    padding-top: 20px;
    padding-bottom: 40px;
}

.companies aside ul .clear i{
    margin-right: 10px;
}

.order{
    color: var(--greenish-gray);
}

.order select{
    color: var(--greenish-gray);
    margin-left: 5px;
    padding: 5px;
}

.companies-cards .card img{
    width: 100px;
    height: 100px;
    margin: 0 10px 0 10px;
}

.companies-cards .card h2{
    font-size: 25px;
    font-weight: 300;
}

.companies-cards .card address i{
    color: var(--light-green);
    font-size: 25px;
}

.companies-cards .card a:hover{
    background-color: var(--light-orange);
    border-color: var(--light-orange);
}

.pagination .page-item{
    margin: 0 8px;
}

.pagination .page-item a{
    color: var(--greenish-gray);
    text-decoration: none;
    font-size: 20px;
}

.pagination .active{
    background-color: var(--light-orange);
    width: 30px;
    height: 30px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
}

.pagination .active a{
    color: var(--white);
}

.pagination .page-item:first-child a, .pagination .page-item:last-child a{
    font-size: 30px;
    color: var(--cobalt-blue);
}

/* Company Page */
.company-container{
    margin-top: 50px;
    color: #4A4F52;
}

.company-container .pages-links li{
    margin-right: 10px;
}

.company-container .pages-links li a{
    color: #4A4F52;
    text-decoration: none;
}

.company-container .pages-links li:last-child a{
    color: var(--light-orange);
}

.company-gallery .gallery-main-img{
    width: 100%;
    height: 400px;
    object-fit: cover;
    border: 10px solid var(--light-gray);
    border-bottom: none;
}

.company-gallery .thumbnails{
    overflow-x: scroll;
    background-color: var(--light-gray);
    padding: 5px 0;
    border: 10px solid var(--light-gray);
}

.company-gallery .thumbnails::-webkit-scrollbar {
      display: none;
}

.company-gallery .thumbnails img{
    width: 120px;
    height: 100px;
    cursor: pointer;
    margin: 0 5px;
}

.company-gallery .thumbnails img:first-child{
    margin-left: 0;
}

.company-gallery .thumbnails img:last-child{
    margin-right: 0;
}

.company-gallery .badges{
    margin-top: 10px;
}

.company-gallery .badges li:first-child a{
    color: #3C5B98;
}

.company-gallery .badges li:last-child a i{
    color: red;
}

.company-gallery .badges li:nth-child(2) a i{
    color: #4D97C0;
}

.company-gallery .badges li a{
    background-color: #DFE2EE;
    text-decoration: none;
    padding: 5px 10px;
    color: #504A4A
}

.company-gallery .badges li span{
    padding: 3px 8px;
    clip-path: polygon(12% 1%, 100% 0%, 100% 100%, 9% 100%, 0% 50%); 
    background-color: var(--light-gray);;
    margin: 0 10px 0 3px;
}

.company-container span img{
    width: 100px;
    height: 100px;
    object-fit: cover;
}

.company-container span h1{
    font-size: 25px;
    margin-left: 10px;
}

.company-container address{
    font-size: 17px;
}

.company-container address span{
    margin-top: 5px;
}

.company-container h2{
    font-size: 20px;
}

.company-container address i, .company-container h2 i{
    color: var(--light-green);
    font-size: 25px;
    margin-right: 10px;
}

.company-container .biography{
    border-top: .5px solid var(--greenish-gray);
    border-bottom: .5px solid var(--greenish-gray);
}

.company-container .box{
    border: 1px solid var(--light-gray);
    border-radius: 5px;
}

.company-container .box-top{
    background-color: var(--light-gray);
    border-radius: 5px;
    margin-bottom: 30px;
}

.company-container .box-top{
    padding: 10px;
}

.company-container .box-top ul li{
    width: 30px;
    height: 30px;
    font-size: 20px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.company-container .box-top ul li:first-child{
    background-color: #348AB9;
    margin-right: 10px;
}

.company-container .box-top ul li:last-child{
    background-color: var(--cobalt-blue);
}

.company-container .box-top ul li a{
    color: var(--white);
}

.company-container .box-top h3{
    font-size: 18px;
    padding-left: 10px;
}

.company-container .box article{
    padding: 0 10px;
}

.company-container .box article span{
    color: var(--light-orange);
}

.company-container .box-bottom h3{
    background-color: var(--light-gray);
    font-size: 20px;
    padding: 5px 10px;
}

.company-container .box-bottom textarea{
    border: 8px solid var(--light-gray);
    margin-top: -10px;
}

/* Responsive */
@media (max-width: 992px){
    header .navbar .logo{
        width: 100px;
        margin-bottom: 15px;
    }

    header .navbar .sac{
        display: none;
    }

    .home-icon{
        display: none;
    }

    .advertisement{
        position: absolute;
        top: 10px;
        right: 0;
    }

    .advertisement ul{
        margin-left: 15px;
    }

    header .navbar ul li{
        width: 30px;
        height: 30px;
        font-size: 20px;
    }

    main .showcategories{
        padding: 10px;
        width: 100%;
    }

    main{
        margin-top: -15px;
    }

    .companies{
        margin-top: 40px;
    }

    .companies-cards .card{
        padding: 20px;
    }

    .company-gallery .thumbnails img{
        width: 150px;
    }

    main .sample-categories{
        display: none !important;
    }

    .carousel-indicators li{
        padding: 5px 15px !important;
    }

    .companies aside .filters{
        position: absolute;
        z-index: 2;
        width: 100%;
        height: 100% !important;
    }

    .companies aside .close{
        height: 0px;
        overflow: hidden;
    }
}

@media (max-width: 576px){
    .header-line, .footer-top-line, .footer-bottom-line{
        height: 25px;
    }

    header .navbar .logo{
        margin-bottom: 30px;
        width: 120px;
    }

    .carousel-control{
        font-size: 35px;
        margin: -15px;
    }

    .advertisement{
        top: -5px;
    }

    .advertisement ul{
        margin: 55px 0;
    }

    .advertisement p{
        font-size: 15px;
        position: absolute;
        right: 20px;
        top: 0;
    }

    .company-gallery .thumbnails img{
        width: 100px;
        height: 80px;
    }

    .home-cards .card-text span, .home-cards .card-text i{
        font-size: 18px;
    }

    footer{
        margin-top: -5px;
    }
}

@media (min-width: 1200px){
    .col-xl-custom{
        width: 20%;
    }

    .carousel-control{
        margin: -55px;
    }
}


@media (min-width: 576px) and (max-width: 991px){
    .carousel-control{
        font-size: 50px;
        margin: -15px;
    }
}

@media (min-width: 992px) and (max-width: 1200px){
    .carousel-control{
        font-size: 50px;
        margin: -35px;
    }
}

@media (min-width: 768px) and (max-width: 991px){
    .companies-cards article .d-md-flex{
        margin: -20px;
    }
}
