html , body {
    font-family: Roboto,Fira Sans,Arial,sans-serif;
    color: #58595b;
    font-size: 16px;
}
h1 {
    font-size: 3rem;
    color: #ba3c3d;
    text-align: left;
    margin: 1rem 0;
}
a {
    text-decoration: none;
}
#main {
    background: #f2f2f2;
    padding: 2rem 0;
}
.button {
    border-radius: .8rem;
    border: 1px solid #bdbec1;
    font-weight: 400;
    color: #a7a9ac;
    font-size: 1rem;
    background: transparent;
    padding: .5rem 1rem;
}
.button:hover {
    background: rgba(0,0,0,.2);
    color: #fff;
}
.home-section-title {
    font-weight: lighter;
    color: #ba3c3d;
    font-size: 2.7em;
    margin-bottom: 20px;
    line-height: 1.1;
}
#latest-proposals, #proposals {
    padding: 1rem 0;
}
.proposal-item-container {
    display: block;
    border: 1px solid #e0e0e0;
    border-radius: .4rem;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
}
.proposal-item-image {
    display: block;
    width: 100%;
    height: 150px;
    max-height: 150px;
    object-fit: cover;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: .5rem;
    margin-bottom: 1rem;
}
.proposal-item-company-name, .proposal-item-area {
    font-weight: 400;
    opacity: .8;
    padding: 0 .5rem .5rem;
    width: 100%;
    height: 70px;
    overflow: hidden;
    text-align: center;
    font-size: .9rem;
    color: inherit;
}
.proposal-item-business-area,
.proposal-item-company-phone,
.proposal-item-company-category {
    display: none;
}
.proposal-item-business-area i,
.proposal-item-company-phone i,
.proposal-item-company-category i {
    font-size: 1.2rem;
    margin-right: .5rem;
}
.proposal-item-container:hover {
    background: #ba3c3d;
    color: #fff;
    text-align: left;
    border: 1px solid #ba3c3d;
}
.proposal-item-container:hover .proposal-item-image {
    height: 0;
    border: 0;
}
.proposal-item-container:hover .proposal-item-business-area,
.proposal-item-container:hover .proposal-item-company-phone,
.proposal-item-container:hover .proposal-item-company-category {
    display: block;
    padding: 0 .5rem .5rem;
    margin-bottom: .65rem;
    margin-left: .5rem;
}
#proposals .proposal-item-container {
    background: #fff;
}
#proposals .proposal-item-container:hover {
    background: #ba3c3d;
}
#proposal-types {
    padding: 1rem 0 1rem 0;
    display: flex;
    gap: 2rem;
}
.type {
    border: 1px solid #bdbec1;
    background: transparent;
    color: #a7a9ac;
    padding: .75rem 1rem;
    border-radius: .4rem;
    font-weight: 400;
    transition: .2s;
}
.type:hover {
    background: #fff;
}
.type.active {
    background: #fff;
}
.languages .dropdown-menu {
    background: #ba3c3d;
}
.languages .dropdown-menu a {
    background: transparent;
    border-bottom: 2px solid #a23132;
    color: #fff;
}
.languages .dropdown-menu a:hover {
    background: rgba(0, 0, 0, .1);
}
.text-container {
    background: #fff;
    padding: 1rem 2rem;
    border: 1px solid #ccc;
    border-radius: .4rem;
}
.categories ul {
    list-style: none;
    padding: 0;
}
.categories-list {
    max-height: 400px;
    overflow: scroll;
}
.category {
	background: #fafafa;
}
.category-wrapper {
    padding: .5rem .75rem;
    border-left: 1px solid #dbdbdb;
    border-top: 1px solid #dbdbdb;
    border-right: 1px solid #dbdbdb;
}
.category-wrapper:last-of-type {
    border-bottom: 1px solid #dbdbdb;
}
.category-wrapper:hover {
    border-left: 1px solid #a43433;
    background: #fff;
}
.category-wrapper a {
    color: inherit;
    display: block;
    width: 100%;
}
.areas-list {
    max-height: 400px;
    overflow: scroll;
}
.area {
	background: #fafafa;
}
.area-wrapper {
    padding: .5rem .75rem;
    border-left: 1px solid #dbdbdb;
    border-top: 1px solid #dbdbdb;
    border-right: 1px solid #dbdbdb;
}
.area-wrapper:last-of-type {
    border-bottom: 1px solid #dbdbdb;
}
.area-wrapper:hover {
    border-left: 1px solid #a43433;
    background: #fff;
}
.area-wrapper a {
    color: inherit;
    display: block;
    width: 100%;
}
.category-icon {
    width: 30px;
    height: auto;
    margin-right: .25rem;
}
.directory-businesses ul {
    list-style: none;
    padding: 0;
}
.business {
    border: 1px solid #e2e2e2;
    border-radius: .4rem;
    background: #fff;
    border-left: 3px solid #a43433;
    color: #2d2d2d;
    margin-bottom: 1rem;
}
.business .business-details-wrapper,
.business-details-wrapper {
    margin: 0;
}
.business-details-wrapper .col-3 {
    padding-left: 0;
    padding-right: 0;
}
.business-details-wrapper .business-card {
    border-top-left-radius: .4rem;
    border-bottom-left-radius: .4rem;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.business-details {
    border-left: 1px solid #ccc;
    padding: .5rem 1rem;
}
.business-details .business-name {
    color: #414042;
    font-weight: 700;
    height: 60px;
    max-height: 60px;
    overflow: hidden;
    margin-top: .5rem;
    font-size: 1.25rem;
}
.business-details .business-category {
    font-size: .9rem;
    color: #939598;
}
.business-details .business-infos {
    display: flex;
    gap: 1rem;
    color: #414042;
    margin: .5rem 0;
    font-size: .95rem;
    opacity: .75;
}
.business-details .business-infos .business-info i {
    margin-right: .25rem;
}
#paging {
    display: flex;
    gap: .75rem;
    margin: 2rem 0 1rem 0;
    justify-content: end;
}
#paging .prev-page a, #paging .next-page a {
    color: inherit;
}

body.directory.map #main {
    padding-top: 0;
}
#map-container {
    height: 400px;
}
#map {
    height: 100%;
}
#map-categories-container {
    padding: 1rem 0;
}
.map-categories-list>.map-category {
    padding-bottom: 1rem;
}
#map-categories-container .category-wrapper {
    background: #fafafa;
}
.hide {
    display: none;
}
.map-business-popup {
    max-width: 400px;
    width: 400px;
}
.leaflet-popup-content {
    max-width: 400px !important;
    width: 400px !important;
    margin: 0 !important;
}
.map-business-popup .business-name {
    font-weight: normal !important;
    margin-bottom: .75rem;
    font-size: 1rem !important;
}
.business-details-wrapper .col-4 {
    padding-left: 0;
    padding-right: 0;
}
#main-menu {
    justify-content: center;
}
#after-header .row {
    align-items: baseline;
}
#search-form fieldset {
    display: flex;
    align-content: space-between;
    gap: .75rem;
}
.search-what-wrapper, .search-where-wrapper {
    position: relative;
}
#search-form .search-form-label {
    display: none;
}
#search-btn {
    background: #ba3c3d;
    color: #fff;
    border: 1px solid #ba3c3d;
    border-radius: .8rem;
    padding: .35rem .8rem;
}
.search-terms {
    position: absolute;
    width: 100%;
    z-index: 2;
    margin-top: .5rem;
	padding: 0;
	list-style: none;
	background: #e6e7e8;
	border-radius: .8rem;
}
.term {
    cursor: pointer;
    padding: .3rem .5rem;
}
.term:nth-child(2n+1) {
    /* background: #efefef; */
    background: #ba3c3d;
    color: #fff;
}
.term:nth-child(2n) {
    background: #fff;
}
body.search .business-details-wrapper .business-card {
    max-height: 150px;
    object-fit: contain;
}

#new-businesses-section {
    margin: 1.5rem 0;
    padding: 1.5rem 0 1rem 0;
    background: #f3f3f3;
}
#new-businesses {
    padding: 1rem 0;
}
.new-business-container {
    display: block;
    border: 1px solid #e0e0e0;
    border-radius: .4rem;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    background: #fff;
}
.new-business-image {
    display: block;
    width: 100%;
    height: 150px;
    max-height: 150px;
    object-fit: cover;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: .5rem;
    margin-bottom: 1rem;
}
.new-business-company-name, .new-business-business-area {
    font-weight: 400;
    opacity: .8;
    padding: 0 .5rem .5rem;
    width: 100%;
    height: 70px;
    overflow: hidden;
    text-align: center;
    font-size: .9rem;
    color: inherit;
}
.new-business-business-area {
    height: fit-content;
    margin-bottom: .5rem;
}

#latest-offers-section {
    margin: 1.5rem 0;
    padding: 1.5rem 0 1rem 0;
    background: #ba3c3d;
}
#latest-offers-section .home-section-title {
    color: #fff;
}
#latest-offers-section .view-all-offers-btn {
    background: inherit;
    color: #fff;
    border: 1px solid #fff;
}
#latest-offers-section .view-all-offers-btn:hover {
    background: #fff;
    color: #ba3c3d;
    border: 1px solid #fff;
}
#latest-offers {
    padding: 1rem 0;
}
.latest-offer-container, .offer-container {
    display: block;
    border: 1px solid #e0e0e0;
    border-radius: .4rem;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    background: #fff;
}
.latest-offer-image, .offer-image {
    display: block;
    width: 100%;
    height: 150px;
    max-height: 150px;
    object-fit: cover;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: .5rem;
    margin-bottom: 1rem;
}
.latest-offer-title, .offer-title {
    font-weight: 400;
    opacity: .8;
    padding: 0 .5rem .5rem;
    width: 100%;
    height: 70px;
    overflow: hidden;
    text-align: center;
    font-size: .9rem;
    color: inherit;
}
.latest-offer-details, .offer-details {
    border-top: 1px solid #e0e0e0;
    padding: .5rem .2rem;
    font-size: .875rem;
}
.latest-offer-expiration-date span,
.offer-expiration-date span {
    margin-left: .25rem;
}

#popular-tabs {
    border: none;
}
#popular-tabs button {
    border: none;
    color: #ba3c3d;
    border-bottom: 2px solid #ba3c3d;
    font-size: 1.5rem;
}
#popular-section-content {
    background: #f3f3f3;
    padding: 1.25rem 0;

}
#popular-searches-tab-pane ul {
    padding-left: .5rem;
    list-style: circle;
}
#popular-searches-tab-pane ul li {
    margin: .3rem 0;
}
#popular-searches-tab-pane .popular-search-item {
    font-size: .875rem;
    font-weight: lighter;
    color: #58595b;
}
#popular-searches-tab-pane .popular-search-item span {
    margin-left: .25rem;
}

.county {
    padding: .5rem .4rem;
    background: #fff;
    border-bottom: 1px solid #e6e6e6;
    border-left: 1px solid transparent;
    color: #ba3c3d;
    font-size: 1.1rem;
}
.county:hover {
    border-left: 1px solid #ba3c3d;
}
.county a {
    color: #ba3c3d;
    display: block;
}
.cities {
    padding-left: 0;
    list-style: none;
    margin-bottom: 0;
}
.cities .city-container {
    border-left: 1px solid transparent;
    border-bottom: 1px solid #e6e6e6;
    padding: .5rem .3rem;
    background: #fff;
}
.cities .city-container:hover {
    border-left: 1px solid #ba3c3d;
}
.cities .city-container:hover>a {
    color: #ba3c3d;
}
.cities .city-container a {
    color: rgb(141, 141, 141);
    padding-left: 1.2rem;
    position: relative;
    font-size: .875rem;
    display: block;
    width: 100%;
}
.cities .city-container a:before {
    content: "";
    display: block;
    position: absolute;
    top: 5px;
    bottom: auto;
    left: 0;
    right: auto;
    width: 10px;
    height: 10px;
    border: 1px solid #8d8d8d;
    border-radius: 50%;
}
.municipalities {
    padding-left: 0;
    list-style: none;
    margin-bottom: 0;
}
.municipalities .municipality-container {
    border-left: 1px solid transparent;
    border-bottom: 1px solid #e6e6e6;
    padding: .5rem .9rem;
    background: #fff;
}
.municipalities .municipality-container:hover {
    border-left: 1px solid #ba3c3d;
}
.municipalities .municipality-container:hover>a {
    color: #ba3c3d;
}
.municipalities .municipality-container a {
    color: rgb(141, 141, 141);
    padding-left: 1.2rem;
    position: relative;
    font-size: .875rem;
    display: block;
    width: 100%;
}
.municipalities .municipality-container a:before {
    content: "";
    display: block;
    position: absolute;
    top: 5px;
    bottom: auto;
    left: 0;
    right: auto;
    width: 10px;
    height: 10px;
    border: 1px solid #8d8d8d;
    border-radius: 50%;
}
.area-category-item-container {
    background: #fff;
    border-radius: .4rem;
    border: 1px solid #fafafa;
}
.area-category {
    padding: .75rem .5rem;
    border-bottom: 1px solid #ba3c3d;
}
.area-category .area-category-icon {
    max-width: 30px;
    width: 30px;
    height: auto;
    vertical-align: top;
}
.area-category .area-category-title {
    font-size: 1.4rem;
    color: #ba3c3d;
    margin-left: .5rem;
}
.category-business {
    padding: .75rem 1rem;
    border-bottom: 1px solid #d8d8d8;
    border-left: 1px solid transparent;
    background: #fbfbfb;
}
.category-business a {
    display: block;
    color: #989898;
    font-size: .9rem;
}
.category-business:hover {
    border-left: 1px solid #ba3c3d;
}

#branch-section-title {
    margin: 1rem 0;
}
.branch-container {
    background: #fff;
    border: 1px solid #d8d8d8;
    border-radius: .4rem;
    border-left: 1px solid #ba3c3d;
}
.branch-city-name {
    padding: .5rem .75rem;
    margin-bottom: 0;
    border-bottom: 1px solid #ccc;
    font-size: 1.15rem;
    color: #ba3c3d;
}
.branch-address, .branch-email-address, .branch-phones {
    padding: .5rem .75rem;
    margin-bottom: .3rem;
    font-size: .875rem;
}
.branch-address i, .branch-email-address i, .branch-phones i {
    color: #ba3c3d;
}
.branch-address span, .branch-email-address span, .branch-phones span {
    color: #9a9a9a;
    margin-left: .5rem;
}
.branch .map-wrapper {
    height: 300px;
}
.branch .map-wrapper .map {
    width: 100%;
    height: 100%;
}

.social-icons {
    display: flex;
    gap: .8rem;
    margin-right: 1rem;
    align-self: center;
}
.social-icon img {
    max-width: 30px;
    width: 30px;
    height: auto;
}

#footer-menu-section {
    background: #fff;
    color: #464444;
    padding: 1.5rem 0;
}
#footer-menu {
    list-style: circle;
    padding-left: 1rem;
}
#footer-menu .footer-menu-item {
    padding: .75rem 0;
}
#footer-menu .footer-menu-item a {
    color: #464444;
}
#footer-last-row {
    padding: 2rem 0;
    background: #464444;
    color: #fff;
    text-align: center;
}

#slideshow {
    max-height: 600px;
}
.slide-image {
    width: 100%;
    max-height: 600px;
    height: 600px;
    object-fit: cover;
}
#slideshow .carousel-caption {
    background: #fff;
    opacity: .4;
    color: #000;
    border-radius: .4rem;
    padding: 1rem .5rem;
}
#slideshow .carousel-caption .slide-title {
    margin-bottom: 1.1rem;
}
#slideshow .carousel-caption .slide-btn {
    border: 1px solid #ba3c3d;
    border-radius: .4rem;
    margin: .75rem 0;
    padding: .5rem .75rem;
    background: #ba3c3d;
    color: #fff;
}

#contact-details {
    padding: 1rem 0 2rem 0;
    border-bottom: 1px solid #b3b3b3;
}
#contact-form-container {
    border-right: 1px solid #b3b3b3;
}
.contact-form-label {
    width: 100%;
    margin-bottom: .5rem;
}
.contact-form-field {
    width: 100%;
    background: #fff;
    color: #9a9a9a;
    padding: .4rem .5rem;
    border: 1px solid #9a9a9a;
    border-radius: .4rem;
}
textarea.contact-form-field {
    resize: none;
    min-height: 10rem;
}
.contact-form-btn {
    color: #fff;
    background: #ba3c3d;
    border: 1px solid #ba3c3d;
    border-radius: .4rem;
    padding: .5rem .6rem;
    margin-top: .75rem;
}
#form-success-message {
    font-size: 1.1rem;
    color: #238845;
    font-weight: bold;
}
#form-error-message {
    font-size: 1.1rem;
    color: #ba3c3d;
    font-weight: bold;
    margin-bottom: .5rem;
}
#contact-infos {
    margin-bottom: 2rem;
}
.contact-info {
    font-size: 1.2rem;
    margin: 1.5rem 0;
}
.contact-info i {
    font-size: 1rem;
    color: #58595b;
    border: 1px solid #58595b;
    border-radius: 50%;
    padding: .5rem;
}
.contact-info span {
    margin-left: .5rem;
}
#contact-social-media {
    display: flex;
    gap: 1rem;
}