body {
    font-family: sans-serif;
    font-size: 1rem;
    line-height: 1.8em;
}

a {
    color: #F57C00;
}

h2, h3 {
    margin-top: 0;
    margin-bottom: 0;
    color: #294594;
}

h3 {
    margin-bottom: .5em;
}

td {
    vertical-align: top;
    padding-bottom: 1em;
}

table {
    width: 100%;
    border-spacing: 0;
}

.colUnit {
    margin-bottom: 1em;
}

.colUnit a {
    word-break: break-all;
}

.colUnitNoMargin {
    margin-bottom: 0;
}

.colUnitNoMargin.contactLast {
    margin-bottom: 1em;
}

td .colUnit:last-of-type {
    margin-bottom: 0 !important;
}

.search-result-ad {
    margin-bottom: 1em;
}

.tblBranches {
    padding-bottom: 1em;
}

.tblBranches td {
    border-top: 1px solid #DDD;
    padding-top: 1em;
}

.tblBranches,
.orgInfo {
    width: 100%;
}

.orgInfo td,
.tblBranches td {
    width: 31.33%;
}

.colSpacer {
    width: 3% !important;
}

.tblAd,
.tblAd div,
.tblAd img {
    width: 100%;
}

.tblAd img {
    padding-top: 1em;
    margin-top: 1em;
}

.tblProducts {
    border-top: 1px solid #DDD;
    padding-top: 1em;
}

hr {
    border-top: 2px solid #222;
    margin: 1em 0;
}

.orgInfoCol0 img {
    margin-bottom: 1em;
    max-width: 85%;
    min-width: 85%;
}

.tblFooter td {
    width: 33%;
    white-space: nowrap;
    padding-top: .25em;
}

.pdfCover {
    width: 100%;
    height: 265mm;
}

.pdfCoverInner {
    vertical-align: middle;
    text-align: center;
}

/* =====================================================
   Web display styles (not used by mPDF)
   ===================================================*/

body:has(.directory-entry-single) .kco-intro {
    display: none;
}

.instructionText {
    font-size: .85em;
    display:inline-block;
    padding-bottom:.5em;
    margin-top:-.5em;
}

.criteriaHeader {
    background-color: rgba(0,0,0,.03);
    border-bottom: 1px solid #CCC;
    padding: .5em 1em;
}

.formWrapper {
    font-size: 1em;
    margin-bottom: .5em;
}

.formWrapper .fieldWrapper {
    margin-bottom: 1em;
}

.formWrapper select,
.formWrapper input[type=text] {
    border: 1px solid #ccc;
}

.formWrapper .frmCheckbox,
.formWrapper .frmRadio {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
}

.formWrapper .frmCheckbox label {
    font-weight: normal;
}

.formWrapper input[type=checkbox],
.formWrapper input[type=radio] {
    padding: 0;
    margin: 0;
    margin-right: .5em;
    margin-top: .6em;
}

.formWrapper input[type=text],
.formWrapper select,
.formWrapper textarea {
    display: block;
    width: 100%;
    box-sizing: border-box !important;
}

.formWrapper label {
    font-weight: bold;
    margin-bottom: .5em;
}

.formWrapper .frmButtons {
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 1em;
}

.formWrapper button,
.formWrapper input[type=submit] {
    margin: 0 .5em;
}

.formWrapper .elementor-button,
.resultWrapper .elementor-button,
.search-page-cont .elementor-button {
    background-color: #F57C00;
    font-size: 0.875rem;
    font-weight: bold;
    letter-spacing: 0.03em;
    color: #FFF !important;
    border-style: none;
    border-radius: 100px;
    padding: 8px 16px;
    text-decoration: none;
    cursor: pointer;
    display: inline-block;
    transition: transform 0.3s ease;
}

.formWrapper .elementor-button:hover,
.resultWrapper .elementor-button:hover,
.search-page-cont .elementor-button:hover {
    transform: scale(1.1);
    background-color: #F57C00 !important;
    color: #FFF !important;
}

.fieldWrapper .fieldZip {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    margin-bottom: -1em;
}

.fieldWrapper .fieldZip > input,
.fieldWrapper .fieldZip .fieldRadius {
    flex: 1;
    max-width: 100%;
    margin-bottom: 1em;
}

.fieldZipWrapper {
    margin-bottom: 0 !important;
}

.fieldWrapper .fieldZip > input {
    margin-right: 1em;
}

.fieldWrapper .fieldZip .fieldRadius {
    display: flex;
    align-items: center;
}

.fieldWrapper .fieldZip .fieldRadius select {
    margin: 0 .5em;
    width: auto;
    padding: 5px 0;
}

.fieldWrapper .fieldZip .fieldRadius div {
    white-space: nowrap;
}

.search-page-cont {
    display: flex;
    padding-bottom: 30px;
}

.search-page-cont .formWrapper {
    flex: 1;
    margin-right: 30px;
    max-width: 30%;
    min-width: 30%;
    border: 1px solid rgba(0,0,0,.125);
    border-radius: 0.25rem;
}

.search-page-cont form {
    padding: 1em;
}

.search-page-cont .resultWrapper {
    flex: 4;
}

.resultWrapper .searchResult {
    border-bottom: 1px solid #CCC;
    padding-bottom: 1em;
    padding-top: 1em;
}

.resultWrapper .searchResult h2,
.resultWrapper .searchResult h3,
.resultWrapper .searchResult h4,
.resultWrapper .searchResult h6 {
    margin: 0;
    padding: 0;
    color: #294594;
}

.resultWrapper .searchResult h3 {
    font-size: 1.5rem;
}

.search-page-cont .resultWrapper .searchResult {
    background-color: rgba(0,0,0,.03);
    box-shadow: 6px 6px #CCC;
    margin: 30px 0;
    padding: 20px;
}

.search-page-cont .resultWrapper .search-result-inner {
    display: flex;
}

.search-page-cont .resultWrapper .searchResult .search-result-img {
    flex: 1;
}

.search-page-cont .resultWrapper .searchResult .search-result-info {
    flex: 3;
    margin-left: 30px;
}

.search-page-cont .resultWrapper .searchResult .search-result-ad {
    margin-top: 1em;
}

.resultWrapper .resultButtons {
    padding-top: 1em;
}

.resultWrapper .btn {
    margin: 0 1em 0 0;
    text-decoration: none;
    padding: 4px 8px;
    font-size: 1em;
}

.alt_page_navigation {
    margin: 1em 0 0 1px;
}

.alt_page_navigation a {
    position: relative;
    padding: .5rem .75rem;
    margin-left: -1px;
    line-height: 1.25;
    color: #294594 !important;
    background-color: #fff;
    border: 1px solid #dee2e6;
    text-decoration: none;
    display: inline-block;
}

.alt_page_navigation a:hover,
.alt_page_navigation a.active_page {
    color: #0056b3 !important;
    background-color: #e9ecef;
    border-color: #dee2e6;
}

.alt_page_navigation .ellipse {
    display: inline-block;
}

.pajinationWrapper {
    padding-top: 1.5em;
}

.pajinationWrapper a {
    margin-bottom: .5em;
}

.pajinationWrapper .info_text {
    margin-bottom: 1em;
}

.search-page-cont .pajinationWrapper {
    padding-top: 0;
}

.mssgError {
    display: block;
    color: #9f0d0d;
    background-color: #f3b8b8;
    border: 2px solid #9f0d0d;
    font-weight: bold;
    padding: 10px 6px;
    margin: 1em 0;
}

.mssgSuccess {
    color: black;
    background-color: #98ebae;
    border: 2px solid #197e34;
    font-weight: bold;
    padding: 10px 6px;
    margin: 1em 0;
}

.resultWrapper .resultButtons {
    margin-top: 1em;
}

.directory-entry-cont {
    display: flex;
    gap: 30px;
    margin-bottom: 2em;
}

.directory-entry-left {
    flex: 1;
    max-width: 200px;
}

.directory-entry-right h1,
.resultWrapper .searchResult .search-result-info h3 {
    margin-bottom: 0.5em;
}

.directory-entry-left img {
    max-width: 100%;
}

.directory-entry-right {
    flex: 3;
}

.has-zone-logo img {
    border: 1px solid #CCC !important;
}

.branch-entry {
    border-top: 1px solid #DDD;
    padding-top: 1em;
    margin-top: 1em;
}

/* Detail page — parent contact columns */
.dir-contacts {
    column-count: 2;
    column-gap: 3em;
}

.dir-contact-item {
    margin-bottom: .25em;
}

/* Detail page — branch locations */
.branch-locations-heading {
    margin-top: 2em;
    border-top: 1px solid #DDD;
    padding-top: 1em;
}

.branch-masonry {
    display: flex;
    gap: 1.5em;
    align-items: flex-start;
}

.branch-masonry-col {
    flex: 1;
}

.branch-card {
    border: 1px solid #CCC;
    padding: 1em;
    margin-bottom: 1em;
}

@media screen {
    .branch-card {
        border-radius: 0 24px 24px 24px;
    }
}

.branch-card-contacts {
    margin-top: .5em;
}

.branch-contact-item {
    margin-bottom: .25em;
}

@media (max-width: 850px) {
    .search-page-cont {
        flex-direction: column;
    }

    .search-page-cont .formWrapper {
        margin-right: 0;
        max-width: 100%;
    }

    .search-page-cont .resultWrapper .searchResult {
        overflow-wrap: break-word;
        word-wrap: break-word;
    }

    .search-page-cont .resultWrapper .search-result-inner {
        flex-direction: column;
    }

    .search-page-cont .resultWrapper .search-result-img {
        max-width: 100%;
        text-align: center;
        margin-bottom: .5em;
    }

    .search-page-cont .resultWrapper .searchResult .search-result-img {
        max-width: 100%;
        text-align: center;
        margin-bottom: .5em;
    }

    .formWrapper .frmCheckbox label {
        flex: 1;
    }
}
