/**
 * Global WMx Styles - Always Loaded
 * 
 * These styles are loaded on EVERY page load unconditionally.
 * Only include styles for:
 * - Always-visible global elements (header, footer, navigation)
 * - Frequently used utility classes (flex, gap, etc.)
 * 
 * For conditional loading, use:
 * - /assets/css/blocks/ - Block-specific styles (loaded only when block exists)
 * - /assets/css/patterns/ - Component/pattern styles (loaded only when pattern/blocks exists on page)
 * - /assets/css/services.css - Services custom post type styles
 */

/* Flexbox Helpers */

.flex {
    -js-display: flex;
    display: flex;
    flex-wrap: wrap;
}

.flex-1 {
    flex: 1;
}
.flex-child-1 > div {
    flex: 1;

}
.gap-1 {
    gap: 1%;
}
.gap-2 {
    gap: 2%;
}
.gap-3 {
    gap: 3%;
}
.gap-4 {
    gap: 4%;
}
.gap-5 {
    gap: 5%;
}
.is-layout-flex.is-vertical {
    flex-direction: column;
}
.flex-equal-width > div {
    flex: 1;
}

.flex-equal-height-children {
    display: flex;
    flex-direction: row;
    align-items: stretch !important;
    height: 100%; /* Or any specific height */
}
.flex-equal-height-children > div {
    flex: 1;
    flex-direction: unset;
    min-height: 100% !important;
}
.is-nowrap {
    flex-wrap: nowrap !important;
}
.inline-flex {
    -js-display: inline-flex !important;
    display: inline-flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    align-content: center !important;
}

.justify-content-flex-start {
    justify-content: flex-start !important;
}

.justify-content-flex-end {
    justify-content: flex-end !important;
}

.justify-content-center {
    justify-content: center !important;
}

.justify-content-space-between {
    justify-content: space-between !important;
}

.justify-content-space-around {
    justify-content: space-around !important;
}

.align-content-flex-start {
    align-content: flex-start !important;
}

.align-content-flex-end {
    align-content: flex-end !important;
}

.align-content-center {
    align-content: center !important;
}

.align-content-space-between {
    align-content: space-between !important;
}

.align-content-space-around {
    align-content: space-around !important;
}

.align-content-stretch {
    align-content: stretch !important;
}
.align-items-stretch {
align-items: stretch !important;
}
.align-items-flex-start, .align-items-flex-start-children > * {
    align-items: flex-start !important;
}

.flex-grow-1 {
    flex-grow: 1 !important;
}

.flex-direction-row {
    flex-direction: row !important;
}   
.flex-direction-row-reverse {
    flex-direction: row-reverse !important;
}
.flex-direction-column {
    flex-direction: column !important;
}

.flex-row-auto > * {
    flex: 0 0 auto;
    max-width: 100%;
}

/* Flex row with auto-width columns and top alignment */
.flex-row-auto {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
}


.two-col-flex, .wm-flex,.wmx-flex-row, .three-col-flex, .four-col-flex {
    display: flex;
    flex-direction: row;
    gap: 1%;
    flex-wrap: wrap !important;
}

.two-col-flex>li, .two-col-flex>div {
    flex: 0 0 48% !important;
}

.three-col-flex>li, .three-col-flex>div {
    flex: 0 0 32% !important;
}

.four-col-flex>li, .four-col-flex>div {
    flex: 0 0 23.5% !important;
}




/* Have img render like CSS Cover  */
.wmx-cover-image {
    position: relative;
    overflow: hidden;
}

.wmx-cover-image figure,
.wmx-cover-image img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
}

.wmx-cover-image img {
    object-fit: cover;
    object-position: center;
}

/* Visibility Helpers */

.d-block {
    display: block;
}
.d-flex {
    display: flex;
}
.d-grid {
    display: grid;
}
.d-inline-flex {
    display: inline-flex;
}   
.d-inline {
    display: inline;
}
.d-inline-block {
    display: inline-block;
}
.d-none {
    display: none;
}

/* Hide on specific breakpoints (desktop-first approach) */
/* Hide on extra small screens and down */
@media (max-width: 575px) {
    .d-xs-none { display: none; }
    .d-xs-block { display: block; }
    .d-xs-flex { display: flex; }
    
}
/* Small tablet and down */
@media (max-width: 767px) {
    .d-sm-none { display: none; }
    .d-sm-block { display: block; }
    .d-sm-flex { display: flex; }
 
}
/* Md  screens and down */
@media (max-width: 991px) {
    .d-md-none { display: none; }
    .d-md-block { display: block; }
    .d-md-flex { display: flex; }
}
/* Lg screens and down */
@media (max-width: 1199px) {
    .d-lg-none { display: none; }
    .d-lg-block { display: block; }
    .d-lg-flex { display: flex; }
}
/* Hide on extra large screens and up */
@media (min-width: 1400px) {
    .d-xl-none { display: none; }
    .d-xl-block { display: block; }
    .d-xl-flex { display: flex; }
}




/* Spacing Helpers */
.group-0, .no-spacing, .group-0 > .wp-block-group__inner-container  {
    margin: 0 !important;
    padding: 0 !important;
}

.child-padding-0>* {
    padding: 0 !important;
}

.type-locations.wp-block-post {
    background-color: transparent !important;
    padding: 0 !important;
}

.wmx-accordion-row > div:first-of-type {
    cursor: pointer;
}

.wm-accordion > div {
        position: relative;
}
.wm-accordion > div:first-of-type {
}
.wm-accordion .wm-toggle-content {   
display: none;
}

.wm-toggle-content .wmx-service-section-content > .wp-block-group__inner-container {
    margin-left: 0 !important;
    margin-right: 0 !important;
    
}
@media (min-width: 1200px) {
    .wp-block-group.alignfull.group-0 >.wp-block-group__inner-container {
        max-width: 100% !important;
    }
}
.wm-toggle-btn {
    cursor: pointer;
    transition: transform 0.3s ease;
}

.block-editor-block-list__layout .wm-toggle-content, .editor-styles-wrapper .wm-toggle-content, .wm-accordion .active .wm-toggle-content {
    display: flex;
}

.wmx-service-overflow {
    display: none !important;
}



 :root :where(.entry-content.is-layout-flow) > * {
   margin-block-start: 0 !important; margin-block-end: 0 !important;
}