/*-------------------------------------------------------------
- Global Accesibility
-------------------------------------------------------------*/
body a:focus-visible,
body button:focus-visible {
    border: 2px solid;
}
.skip-link {
    position: absolute;
    left: -9999px;
    z-index: 999;
    padding: 1em;
    background-color: #fff;
    color: #000;
    text-decoration: none;
}
.skip-link:focus {
    left: 0;
}

/*-------------------------------------------------------------
- Global
-------------------------------------------------------------*/

/*-------------------------------------------------------------
- CPT List
-------------------------------------------------------------*/
.cpt_cc_framework_wrapper{
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #DBDCDD
}
/*-------------------------------------------------------------
- CPT Pagination List
-------------------------------------------------------------*/
.pagination_nav {
    display: flex;
    gap: 20px;
    justify-content: center;
    text-align: center;
    padding-top: 20px;
}

.previous_button a,
.next_button a {
    flex: 0 0 120px;
    text-align: center;
    font-size: 16px;
    padding: 12px 20px;
    font-weight: 600;
    border-radius: 10px !important;
    color: #cc3524;
    border: 2px solid #cc3524;
    background-color: rgb(238 117 44 / 0%) !important;
    transition: all .2s ease-in;
}

.previous_button a:hover,
.next_button a:hover {
    background-color: rgb(204 53 36 / 100%) !important;
    color: #ffffff !important;
    border: 2px solid rgb(204 53 36 / 100%);
    text-decoration: none !important;
    box-shadow: none !important;
    opacity: 1;
}

#ajax-content-wrap .pagination_nav div.previous_button,
#ajax-content-wrap .pagination_nav div.next_button {
    padding-bottom: 20px !important;    
    display: block;
    padding: 10px 20px;
}

/*-------------------------------------------------------------
- CPT Filter Dropdown
-------------------------------------------------------------*/
.cpt_filter {
    margin: 20px 0;
    max-width: 400px;
}

.cpt_filter select {
    font-size: 16px;
    padding: 8px;
    border: 1px solid #DBDCDD; /* Light Gray */
    border-radius: 5px;
    background: #131c4e;
    color: white;
}
.cpt_filter select:hover {
    cursor: pointer;
}


/*-------------------------------------------------------------
- CPT Detail Navigation
-------------------------------------------------------------*/
body.single div#header-outer {
    border-bottom: 5px solid #f3c25a;
}
.back-to-list {
	display: block;
	width: 100%;
	text-align: right;
  }
  
.back-to-list-link {
    position: relative;
    display: inline-block;
    padding-left: 1.2em;
    text-decoration: underline;
}

.back-to-list-link::before {
    content: "\f053";             /* fa-chevron-left in FA4 */
    font-family: "FontAwesome";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    text-decoration: none;
    font-size: 1em;
}

.next-and-pre-post-type {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.next-and-pre-post-type a {
    position: relative;
    display: inline-block;
}
.prev-post-link {
    padding-left: 1.2em;
}

.prev-post-link::before {
    content: "\f053";
    font-family: "FontAwesome";
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    text-decoration: none;
}

/* Next post: right arrow */
.next-post-link {
    padding-right: 1.2em;
}

.next-post-link::after {
    content: "\f054";
    font-family: "FontAwesome";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    text-decoration: none;
}

/*-------------------------------------------------------------
- Blog List
-------------------------------------------------------------*/
.blog_list_title h2 {
    font-size: 36px;
    font-family: "Lato", sans-serif;
    margin: 0 0 10px;
    line-height:40px;
}
.blog_list_title h2 a {
    text-decoration: none;
    color: #1e1a4a;
}
.blog_list_title h2 a:hover {
    text-decoration: underline;
}
.blog_list_date{
    font-weight: bold;
    font-size: 14px;
    font-family: "Lato", sans-serif;
    color: #6B6D6F;
    margin-bottom: 10px;
    display: block;
}
.blog_list_excerpt{
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    display: block;
}
.blog_list_read_more{
    margin-top: 40px;
}

/*-------------------------------------------------------------
- Blog Feat List
-------------------------------------------------------------*/
.blog_feat_list_wrapper.cpt_cc_framework_wrapper{
    border-bottom: none;
}
.blog_feat_list_wrapper .blog_feat_list_content{
    position: relative;
    background: #ffffff;
    padding: 30px 30px 80px;
    border-radius: 10px;
}
.blog_feat_list_wrapper .blog_feat_list_content h3{
    margin-bottom: 0px !important;
}
.blog_feat_list_wrapper .blog_feat_list_content h3 a{
    font-family: 'Lato', Helvetica, Arial, sans-serif;
    font-weight: 600 !important;
    color: #0075AF !important;
    font-size: 22px;
    text-transform: none;
}
.blog_feat_list_wrapper .blog_feat_list_date{
    margin-bottom: 10px;
}
.blog_feat_list_wrapper .blog_feat_list_read_more{
    text-align: center;
    position: absolute;
    bottom: 30px;
    width: 100%;
    margin-left: -30px;
}

/*-------------------------------------------------------------
- Publications List
-------------------------------------------------------------*/
.publications_list_title h2 {
    font-size: 36px;
    font-family: "Lato", sans-serif;
    margin: 0 0 10px;
    line-height:40px;
}
.publications_list_title h2 a {
    text-decoration: none;
    color: #1e1a4a;
}
.publications_list_title h2 a:hover {
    text-decoration: underline;
}
.publications_list_date{
    font-weight: bold;
    font-size: 14px;
    font-family: "Lato", sans-serif;
    color: #6B6D6F;
    margin-bottom: 10px;
    display: block;
}
.publications_list_excerpt{
    font-size: 16px;
    line-height: 1.6;
    color: #333;
    display: block;
}
.publications_list_read_more{
    margin-top: 40px;
}

/*-------------------------------------------------------------
- publications Feat List
-------------------------------------------------------------*/
.publications_feat_list_wrapper.cpt_cc_framework_wrapper{
    border-bottom: none;
}
.publications_feat_list_wrapper .publications_feat_list_content{
    position: relative;
    background: #ffffff;
    padding: 30px 30px 80px;
    border-radius: 10px;
}
.publications_feat_list_wrapper .publications_feat_list_content h3{
    margin-bottom: 0px !important;
}
.publications_feat_list_wrapper .publications_feat_list_content h3 a{
    font-family: 'Lato', Helvetica, Arial, sans-serif;
    font-weight: 600 !important;
    color: #0075AF !important;
    font-size: 22px;
    text-transform: none;
}
.publications_feat_list_wrapper .publications_feat_list_date{
    margin-bottom: 10px;
}
.publications_feat_list_wrapper .publications_feat_list_read_more{
    text-align: center;
    position: absolute;
    bottom: 30px;
    width: 100%;
    margin-left: -30px;
}

/*-------------------------------------------------------------
- Directory Facet Search & Autocomplete
-------------------------------------------------------------*/
.directory-specialty .checkbox-group {
    display: flex;
    flex-direction: column;
}

.directory-specialty .checkbox-group label {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    cursor: pointer;
}

.directory-specialty .checkbox-group label input[type="checkbox"] {
    margin: 0;
    cursor: pointer;
}

/*-------------------------------------------------------------
- Directory Card Styles
-------------------------------------------------------------*/
.directory-card-wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 20px;
    padding: 20px 0;
    border-bottom: 1px solid #e0e0e0;
}

.directory-card-wrapper:last-child {
    border-bottom: none;
}

.directory-card-image {
    flex: 0 0 120px;
    width: 120px;
    height: auto;
}

.directory-card-image img {
    width: 100%;
    height: auto;
    object-fit: contain;
    border-radius: 4px;
}

.directory-card-content {
    flex: 1;
    min-width: 200px;
}

.directory-card-title {
    font-size: 22px;
    font-weight: 600;
    margin: 0 0 10px 0;
    line-height: 1.3;
}

.directory-card-title a {
    color: #0075AF;
    text-decoration: none;
}

.directory-card-title a:hover {
    text-decoration: underline;
}

.directory-card-bio {
    font-size: 14px;
    line-height: 1.5;
    color: #333;
    margin-bottom: 10px;
}

.directory-card-location {
    font-size: 14px;
    color: #666;
}

.directory-card-location .location-icon {
    color: #cc3524;
    margin-right: 4px;
}

.directory-card-buttons {
    flex: 0 0 180px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.directory-card-button {
    display: block;
    text-align: center;
    padding: 10px 16px;
    font-size: 14px;
    font-weight: 500;
    border-radius: 4px;
    text-decoration: none;
    transition: all 0.2s ease;
}

.directory-card-button.view-button {
    background-color: #0075AF;
    color: #fff;
    border: 1px solid #0075AF;
}

.directory-card-button.view-button:hover {
    background-color: #005a87;
    border-color: #005a87;
    color: #fff!important;
}

.directory-card-button.email-button {
    background-color: #333;
    color: #fff;
    border: 1px solid #333;
}

.directory-card-button.email-button:hover {
    background-color: #1a1a1a;
    border-color: #1a1a1a;
    color: #fff!important;
}

.directory-card-button.phone-button {
    background-color: #fff;
    color: #333;
    border: 1px solid #ccc;
}

.directory-card-button.phone-button:hover {
    background-color: #f5f5f5;
    border-color: #999;
}

.directory-card-button .phone-icon {
    margin-right: 4px;
}

/* Directory Card Responsive */
@media only screen and (max-width: 768px) {
    .directory-card-wrapper {
        flex-direction: column;
    }
    
    .directory-card-image {
        flex: 0 0 auto;
        width: 100px;
    }
    
    .directory-card-buttons {
        flex: 0 0 auto;
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
    }
    
    .directory-card-button {
        flex: 1;
        min-width: 140px;
    }
}

/*-------------------------------------------------------------
- Directory Detail Styles
-------------------------------------------------------------*/
.directory_detail_wrapper.cpt_cc_framework_wrapper {
    max-width: 100%;
    margin: 0 auto;
    padding: 0;
    border-bottom: none;
}

.directory_detail_title {
    font-size: 28px;
    font-weight: 700;
    color: #0075AF;
    text-transform: uppercase;
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    border-bottom: 3px solid #cc3524;
    letter-spacing: 0.5px;
}

.directory_detail_grid {
    display: grid;
    grid-template-columns: 200px 1fr 200px;
    gap: 30px;
    align-items: start;
}

/* Left Column */
.directory_detail_left {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.directory_detail_left > div {
    margin-bottom: 5px;
}

.directory_detail_featured_image {
    border: 1px solid #ddd;
    padding: 10px;
    margin-bottom: 15px;
    background: #fff;
}

.directory_detail_featured_image img {
    width: 100%;
    height: auto;
    display: block;
}

/* Middle Column */
.directory_detail_content {
    display: flex;
    flex-direction: column;
    gap: 25px;
}

.directory_detail_attributes_row,
.directory_detail_specs_row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

/* Right Column */
.directory_detail_right {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.directory_detail_contact {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.directory_detail_contact > div {
    margin-bottom: 5px;
}

.directory_detail_social {
    margin-top: 15px;
}

.directory_detail_social > h3 {
    margin-bottom: 5px;
}

/* ACF Field Styling for Directory Detail */
.directory_detail_wrapper h3 {
    font-size: 15px;
    font-weight: 600;
    color: #0075AF;
    margin: 0 0 3px 0;
    line-height: 1.3;
}

.directory_detail_wrapper > div > div > div,
.directory_detail_wrapper .directory_detail_left > div,
.directory_detail_wrapper .directory_detail_contact > div,
.directory_detail_wrapper .directory_detail_social > div {
    margin-bottom: 8px;
}

.directory_detail_wrapper p,
.directory_detail_wrapper span {
    font-size: 13px;
    line-height: 1.5;
    color: #333;
    margin: 0;
}

/* Bio section - larger text */
.directory_detail_wrapper .directory-bio p {
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 10px;
}

.directory_detail_wrapper .directory-bio ol {
    font-size: 14px;
    line-height: 1.6;
    margin: 10px 0;
    padding-left: 25px;
}

.directory_detail_wrapper a {
    color: #0075AF;
    text-decoration: none;
    word-break: break-word;
}

.directory_detail_wrapper a:hover {
    text-decoration: underline;
}

.directory_detail_wrapper ul {
    margin: 5px 0 0 0;
    padding-left: 18px;
    font-size: 13px;
    line-height: 1.5;
}

.directory_detail_wrapper li {
    margin-bottom: 2px;
}

/* Past Clients styling */
.directory-past-clients {
    margin-top: 0;
}

.directory-past-clients h3 {
    font-size: 15px;
    color: #0075AF;
    margin-bottom: 5px;
}

.directory-past-clients ul {
    list-style-type: disc;
    padding-left: 18px;
    margin: 0;
}

/* Specialties styling */
.directory-specialties ul {
    list-style-type: disc;
    padding-left: 18px;
}

/* Directory Detail Responsive */
@media only screen and (max-width: 992px) {
    .directory_detail_grid {
        grid-template-columns: 180px 1fr;
        gap: 25px;
    }
    
    .directory_detail_right {
        grid-column: 1 / -1;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 30px;
    }
    
    .directory_detail_contact,
    .directory_detail_social {
        flex: 1;
        min-width: 180px;
    }
}

@media only screen and (max-width: 768px) {
    .directory_detail_grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    
    .directory_detail_left {
        display: grid;
        grid-template-columns: 150px 1fr;
        gap: 15px;
    }
    
    .directory_detail_featured_image {
        grid-row: span 6;
        margin-bottom: 0;
    }
    
    .directory_detail_attributes_row,
    .directory_detail_specs_row {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .directory_detail_title {
        font-size: 22px;
    }
}

@media only screen and (max-width: 480px) {
    .directory_detail_left {
        grid-template-columns: 1fr;
    }
    
    .directory_detail_featured_image {
        grid-row: auto;
        max-width: 200px;
    }
}


/*-------------------------------------------------------------
- Facet Search & Autocomplete
-------------------------------------------------------------*/
.search-wrapper #placeholder_search {
    width: 100%;
    padding: 8px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

.search-wrapper #placeholder_suggestions {
    position: absolute;
    background: white;
    border: 1px solid #ddd;
    border-top: none;
    max-height: 200px;
    overflow-y: auto;
    display: none;
    z-index: 1000;
}

.selected-items-display {
    margin-bottom: 15px;
    display: none;
}

.selected-items-display > div:first-child {
    font-weight: bold;
    margin-bottom: 8px;
    color: #333;
}

#placeholder_list {
    background: #f8f9fa;
    padding: 10px;
    border-radius: 4px;
    border: 1px solid #e9ecef;
    font-size: 13px;
    line-height: 1.4;
}

.reset-selection {
    text-align: center;
    margin-top: 10px;
}

.reset-selection button {
    font-size: 12px;
    padding: 5px 10px;
}

.autocomplete-suggestion {
    padding: 8px;
    cursor: pointer;
    border-bottom: 1px solid #eee;
    transition: background-color 0.2s ease;
}

.autocomplete-suggestion:hover {
    background-color: #f5f5f5;
}

.autocomplete-suggestion:last-child {
    border-bottom: none;
}

/*-------------------------------------------------------------
- Facet Slider Styles
-------------------------------------------------------------*/
.range-display,
.value-display {
    text-align: center;
    margin-bottom: 15px;
    font-size: 16px;
    font-weight: bold;
}

#placeholder_range_slider,
#placeholder_slider {
    margin: 20px 0;
}

.slider-labels {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: #666;
    margin-top: 10px;
}

.slider-reset {
    text-align: center;
    margin-top: 15px;
}

.slider-reset button {
    font-size: 12px;
    padding: 5px 10px;
}

/*-------------------------------------------------------------
- CPT Detail
-------------------------------------------------------------*/

/*-------------------------------------------------------------
- Modal
-------------------------------------------------------------*/
/* .custom_modal {
    display: none;
    position: fixed;
    z-index: 1;
    padding-top: 100px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgb(0,0,0);
    background-color: rgba(0,0,0,0.4); 
    justify-content: center;
    align-items: center;
}
.custom_modal_content {
    background-color: #fefefe;
    margin: auto;
    padding: 20px;
    border: 1px solid #888;
    width: 80%;
}
.custom_modal_close {
    color: #aaaaaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
}
.custom_modal_close:hover,
.custom_modal_close:focus {
    color: #000;
    text-decoration: none;
    cursor: pointer;
} */

/*-------------------------------------------------------------
- Mobile Facet
-------------------------------------------------------------*/
.responsive_facet_wrapper.mobile_facet_menu{
    display: block!important;
    position: fixed;
    z-index: 9999999;
    box-shadow: 0 0 4px rgba(0,0,0,.3);
    background: #fff;
    left: 110%;
    padding-top: 150px;
    top: 0px;
    width: 75%;
    height: 100% !important;
    transition: left .2s ease-out,top .2s ease-out,width .2s ease-out,height .2s ease-out;
}
.responsive_facet_wrapper.mobile_facet_menu.open{
    left:25%;
}
.responsive_facet_wrapper.mobile_facet_menu.closed{
    left:110%;
    transition: left .2s ease-out,top .2s ease-out,width .2s ease-out,height .2s ease-out;
}
.responsive_facet_wrapper.closed a.mobile_facet_side_button,
a.mobile_facet_trigger.mobile_facet_bottom_button.closed{
    display: none;
}
a.mobile_facet_bottom_button{
    z-index: 9999999;
    background: #B2482c;
    display: inline-block;
    padding: 5px 20px;
    color: #fff;
}
a.mobile_facet_side_button {
    position: absolute;
    top: 260px;
    display: inline-block;
    padding: 10px;
    left: -45px;
    background: #B2482c;
    color: #fff;
    transform: rotate(270deg);
    transform-origin: left top 0;
    font-size: 20px;
}
a.mobile_facet_bottom_button:hover,
a.mobile_facet_side_button:hover{
    color:#fff;
}
.filter_scroll_wrapper {
    padding: 0 15px;
    overflow-x: scroll;
    height: 100%;
}
.directory_filter_group h2{
    font-size: 1.8em!important;
    line-height: 1em!important;
}

/*-------------------------------------------------------------
- Media Query
-------------------------------------------------------------*/
@media only screen and (max-width: 767px) {
    a.mobile_facet_trigger.mobile_facet_bottom_button.closed{
        display: inline-block;
    }
    .filter_trigger{
        display: none;
    }
}
@media only screen and (max-width: 690px) {
    #footer-outer #footer-widgets{
        text-align: center!important;
    }
    #footer-outer #footer-widgets #Company_Details p{
        margin-left: unset;
    }
    #Company_Details {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    #Company_Details .address,
    #Company_Details .telephone {
        display: inline-flex;
        align-items: flex-start;
        gap: 5px;
    }
    #Company_Details .address:before,
    #Company_Details .telephone:before {
        position: relative;
        top: unset;
        left: unset;
        min-width: 30px;
        flex-shrink: 0;
    }
    #footer-outer #footer-widgets #block-11,
    #footer-outer #footer-widgets #block-14 {
        justify-content: center;
    }
    #footer-outer #footer-widgets #block-14 figure {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    #footer-outer #footer-widgets #block-14 figure:before {
        right: unset;
        left: unset;
        position: relative;
        text-align: center;
    }
}