/* Walshs TeamFlow front-end */
.wtf-grid {
    display: grid;
    gap: 24px;
    margin: 24px 0;
}

.wtf-columns-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); }
.wtf-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wtf-columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wtf-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wtf-columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.wtf-columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.wtf-team-section {
    margin-bottom: 42px;
}

.wtf-team-heading {
    margin: 0 0 18px;
    font-size: 28px;
    line-height: 1.2;
}

.wtf-staff-card {
    background: rgba(255,255,255,.92);
    border: 1px solid #e4e4e4;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(0,0,0,.06);
}

.wtf-staff-image-wrap {
    aspect-ratio: 4 / 3;
    background: #f2f2f2;
    overflow: hidden;
}

.wtf-staff-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.wtf-image-placeholder {
    width: 100%;
    height: 100%;
    min-height: 180px;
    background: linear-gradient(135deg, #eeeeee, #fafafa);
}

.wtf-staff-content {
    padding: 20px;
}

.wtf-staff-name {
    margin: 0 0 6px;
    font-size: 20px;
    line-height: 1.2;
}

.wtf-staff-position {
    font-weight: 700;
    margin-bottom: 10px;
}

.wtf-staff-bio {
    font-size: 14px;
    line-height: 1.5;
    margin-bottom: 14px;
}

.wtf-staff-links {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.wtf-booking-button {
    display: inline-block;
    padding: 10px 16px;
    border: 0 !important;
    border-radius: 8px;
    background: #111;
    color: #fff;
    text-decoration: none;
}

.wtf-booking-button:hover {
    color: #fff;
}

.wtf-layout-compact .wtf-staff-card {
    display: flex;
}

.wtf-layout-compact .wtf-staff-image-wrap {
    width: 34%;
    aspect-ratio: auto;
}

.wtf-layout-profile .wtf-staff-card {
    text-align: center;
}

.wtf-layout-profile .wtf-staff-image-wrap {
    border-radius: 999px;
    width: 160px;
    height: 160px;
    margin: 24px auto 0;
}

.wtf-layout-minimal .wtf-staff-card {
    box-shadow: none;
    border-radius: 0;
}

.wtf-layout-feature .wtf-staff-card {
    border-radius: 24px;
}

.wtf-layout-feature .wtf-staff-name {
    font-size: 24px;
}

@media (max-width: 1024px) {
    .wtf-columns-4,
    .wtf-columns-5,
    .wtf-columns-6 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .wtf-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
    }

    .wtf-layout-compact .wtf-staff-card {
        display: block;
    }

    .wtf-layout-compact .wtf-staff-image-wrap {
        width: 100%;
        aspect-ratio: 4 / 3;
    }
}


/* Walshs TeamFlow interactive cards / profile popup */
.wtf-hover-enabled .wtf-staff-card {
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.wtf-hover-enabled .wtf-staff-card:hover {
    transform: translateY(-6px) scale(1.025);
    box-shadow: 0 18px 48px rgba(0,0,0,.14);
    border-color: rgba(0,0,0,.18);
}

.wtf-popup-enabled .wtf-staff-card {
    cursor: pointer;
}

.wtf-profile-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.wtf-profile-modal.is-open {
    display: flex;
}

.wtf-profile-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.72);
    animation: wtfFadeIn .18s ease forwards;
}

.wtf-profile-modal-panel {
    position: relative;
    z-index: 2;
    width: min(960px, 100%);
    max-height: min(86vh, 900px);
    overflow: auto;
    background: rgba(255,255,255,.92);
    border-radius: 24px;
    box-shadow: 0 30px 90px rgba(0,0,0,.3);
    animation: wtfPopIn .22s ease forwards;
}

.wtf-profile-modal-close {
    position: absolute;
    top: 16px;
    right: 18px;
    z-index: 3;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 999px;
    background: rgba(0,0,0,.08);
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
}

.wtf-profile-modal-inner {
    display: grid;
    grid-template-columns: minmax(260px, var(--wtf-popup-image-width, 38%)) 1fr;
    gap: 0;
}

.wtf-profile-modal-image {
    min-height: 480px;
    background: #f1f1f1;
}

.wtf-profile-image,
.wtf-profile-image-placeholder {
    width: 100%;
    height: 100%;
    min-height: 480px;
    object-fit: cover;
    display: block;
}

.wtf-profile-image-placeholder {
    background: linear-gradient(135deg, #e9e9e9, #fbfbfb);
}

.wtf-profile-modal-content {
    padding: 56px 48px 44px;
}

.wtf-profile-modal-content h3 {
    margin: 0 0 8px;
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1.05;
}

.wtf-profile-position {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 24px;
}

.wtf-profile-bio {
    font-size: 16px;
    line-height: 1.7;
}

.wtf-profile-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
    margin-top: 28px;
}

.wtf-profile-actions a:not(.wtf-booking-button) {
    display: inline-block;
    font-weight: 700;
}

body.wtf-modal-open {
    overflow: hidden;
}

@keyframes wtfFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes wtfPopIn {
    from { opacity: 0; transform: translateY(18px) scale(.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 768px) {
    .wtf-profile-modal {
        padding: 12px;
    }

    .wtf-profile-modal-inner {
        grid-template-columns: 1fr;
    }

    .wtf-profile-modal-image,
    .wtf-profile-image,
    .wtf-profile-image-placeholder {
        min-height: 260px;
        max-height: 320px;
    }

    .wtf-profile-modal-content {
        padding: 36px 24px 28px;
    }
}


/* Walshs TeamFlow filter bar */
.wtf-filter-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
    margin: 0 0 30px;
}

.wtf-filter-bar {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
    padding: 6px;
    background: rgba(255,255,255,.9);
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 999px;
    box-shadow: 0 8px 26px rgba(0,0,0,.06);
}

.wtf-filter-button {
    appearance: none;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #111;
    padding: 9px 18px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.wtf-filter-button:hover {
    transform: translateY(-1px);
}

.wtf-filter-button.is-active {
    background: #111;
    color: #fff;
}

.wtf-filter-style-tabs .wtf-filter-bar {
    border-radius: 14px;
}

.wtf-filter-style-tabs .wtf-filter-button {
    border-radius: 10px;
}

.wtf-filter-style-minimal .wtf-filter-bar {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.wtf-filter-style-minimal .wtf-filter-button {
    border-radius: 0;
    border-bottom: 2px solid transparent;
}

.wtf-filter-style-minimal .wtf-filter-button.is-active {
    background: transparent;
    color: inherit;
    border-bottom-color: currentColor;
}

.wtf-filter-sort label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
}

.wtf-sort-select {
    min-height: 38px;
    border-radius: 999px;
    border: 1px solid rgba(0,0,0,.14);
    padding: 0 36px 0 14px;
    background: rgba(255,255,255,.92);
}

.wtf-staff-card.wtf-is-hidden {
    display: none !important;
}

.wtf-team-section.wtf-is-hidden {
    display: none !important;
}

@media (max-width: 768px) {
    .wtf-filter-wrap {
        justify-content: flex-start;
        overflow-x: auto;
        flex-wrap: nowrap;
        padding-bottom: 4px;
    }

    .wtf-filter-bar {
        flex-wrap: nowrap;
        white-space: nowrap;
    }
}


/* Walshs TeamFlow email / call link icons */
.wtf-contact-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: inherit;
    text-decoration: none;
    line-height: 1.2;
}

.wtf-contact-link:hover {
    text-decoration: none;
}

.wtf-contact-icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    background: currentColor;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
}

.wtf-email-icon {
    mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5h18v14H3V5zm2.4 2 6.6 5 6.6-5H5.4zM5 17h14V8.6l-7 5.3-7-5.3V17z'/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 5h18v14H3V5zm2.4 2 6.6 5 6.6-5H5.4zM5 17h14V8.6l-7 5.3-7-5.3V17z'/%3E%3C/svg%3E");
}

.wtf-phone-icon {
    mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.8-.4 1.2-.3 1.3.4 2.6.6 4 .6.7 0 1.4.6 1.4 1.4v3.5c0 .7-.6 1.4-1.4 1.4C10.3 21.8 2.2 13.7 2.2 3.4 2.2 2.6 2.8 2 3.6 2h3.5c.7 0 1.4.6 1.4 1.4 0 1.4.2 2.7.6 4 .1.4 0 .9-.3 1.2l-2.2 2.2z'/%3E%3C/svg%3E");
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.8-.4 1.2-.3 1.3.4 2.6.6 4 .6.7 0 1.4.6 1.4 1.4v3.5c0 .7-.6 1.4-1.4 1.4C10.3 21.8 2.2 13.7 2.2 3.4 2.2 2.6 2.8 2 3.6 2h3.5c.7 0 1.4.6 1.4 1.4 0 1.4.2 2.7.6 4 .1.4 0 .9-.3 1.2l-2.2 2.2z'/%3E%3C/svg%3E");
}

.wtf-icon-position-right .wtf-contact-icon {
    order: 2;
}

.wtf-contact-style-buttons .wtf-contact-link,
.wtf-contact-style-pills .wtf-contact-link {
    padding: 8px 12px;
    background: rgba(0,0,0,.06);
}

.wtf-contact-style-buttons .wtf-contact-link {
    border-radius: 6px;
}

.wtf-contact-style-pills .wtf-contact-link {
    border-radius: 999px;
}

.wtf-profile-actions .wtf-contact-link {
    display: inline-flex;
}


/* Walshs TeamFlow v2.3 fixes: modal image crop + clickable controls */
.wtf-profile-modal-image {
    overflow: hidden;
}

.wtf-profile-modal-image img,
.wtf-profile-image {
    width: 100%;
    height: 100%;
    min-height: 480px;
    object-fit: cover;
    object-position: center center;
    display: block;
}

.wtf-profile-actions,
.wtf-staff-links,
.wtf-booking-button,
.wtf-contact-link {
    position: relative;
    z-index: 5;
}

.wtf-booking-button,
.wtf-contact-link {
    pointer-events: auto;
}


/* Walshs TeamFlow v2.4 style polish */
.wtf-profile-modal-close {
    background: rgba(0,0,0,.08);
    color: #111;
    border: 1px solid rgba(0,0,0,.08);
    transition: all .18s ease;
}

.wtf-profile-modal-close:hover {
    transform: scale(1.04);
    background: rgba(0,0,0,.14);
}

.wtf-filter-button,
.wtf-profile-modal-close,
.wtf-booking-button,
.wtf-contact-link {
    transition: all .18s ease;
}


/* Walshs TeamFlow v2.5 interaction fixes */
.wtf-profile-modal-close,
.wtf-filter-button,
.wtf-booking-button,
.wtf-contact-link,
.wtf-sort-select {
    pointer-events: auto;
    position: relative;
    z-index: 20;
}

.wtf-profile-modal-panel {
    pointer-events: auto;
}

.wtf-profile-modal-backdrop {
    cursor: pointer;
}

.wtf-profile-modal-close {
    background-color: rgba(0,0,0,.08);
    color: #111;
}

.wtf-profile-modal-close:hover {
    background-color: rgba(0,0,0,.16);
}


/* Walshs TeamFlow v2.6 fade animations */
.wtf-staff-card {
    transition:
        opacity .24s ease,
        transform .24s ease,
        box-shadow .22s ease,
        border-color .22s ease;
}

.wtf-staff-card.wtf-is-filtering {
    opacity: 0;
    transform: translateY(8px) scale(.98);
}

.wtf-staff-card.wtf-is-hidden {
    display: none !important;
}

.wtf-profile-modal {
    display: flex;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility .22s ease;
}

.wtf-profile-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.wtf-profile-modal.is-closing {
    opacity: 0;
    visibility: visible;
    pointer-events: none;
}

.wtf-profile-modal-backdrop {
    opacity: 0;
    transition: opacity .22s ease;
    animation: none !important;
}

.wtf-profile-modal.is-open .wtf-profile-modal-backdrop {
    opacity: 1;
}

.wtf-profile-modal-panel {
    opacity: 0;
    transform: translateY(14px) scale(.985);
    transition: opacity .22s ease, transform .22s ease;
    animation: none !important;
}

.wtf-profile-modal.is-open .wtf-profile-modal-panel {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.wtf-profile-modal.is-closing .wtf-profile-modal-panel {
    opacity: 0;
    transform: translateY(8px) scale(.99);
}


/* Walshs TeamFlow v2.7 close button position fix */
.wtf-profile-modal-panel {
    position: relative;
}

.wtf-profile-modal-close {
    position: absolute !important;
    top: 16px !important;
    right: 18px !important;
    left: auto !important;
    bottom: auto !important;
    z-index: 50 !important;
    transform: none;
}

.wtf-profile-modal-close:hover {
    transform: scale(1.04);
}





/* Walshs TeamFlow v3.0 slower animation timing */
.wtf-staff-card {
    transition:
        opacity .55s ease,
        transform .55s ease,
        box-shadow .38s ease,
        border-color .38s ease !important;
}

.wtf-staff-card.wtf-is-filtering {
    opacity: 0;
    transform: translateY(14px) scale(.97);
}

.wtf-profile-modal {
    transition:
        opacity .42s ease,
        visibility .42s ease !important;
}

.wtf-profile-modal-backdrop {
    transition: opacity .42s ease !important;
}

.wtf-profile-modal-panel {
    transition:
        opacity .42s ease,
        transform .42s cubic-bezier(.22,.61,.36,1) !important;
}

.wtf-filter-button,
.wtf-profile-modal-close,
.wtf-booking-button,
.wtf-contact-link {
    transition: all .28s ease !important;
}


/* Walshs TeamFlow v3.1 modal image sizing refinement */
.wtf-profile-modal-panel {
    overflow: hidden;
}

.wtf-profile-modal-inner {
    align-items: stretch;
}

.wtf-profile-modal-image {
    position: relative;
    overflow: hidden;
    height: auto;
    display: flex;
    align-self: stretch;
}

.wtf-profile-modal-image img,
.wtf-profile-image,
.wtf-profile-image-placeholder {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
    flex: 1 1 auto;
}

/* keep original modal size */
@media (min-width: 769px) {
    .wtf-profile-modal-panel {
        max-height: 86vh;
    }

    .wtf-profile-modal-image {
        min-height: 100%;
    }
}

@media (max-width: 768px) {
    .wtf-profile-modal-image {
        min-height: 260px;
        max-height: 320px;
    }
}


/* Walshs TeamFlow v3.2 booking popup trigger fix */
.wtf-booking-button,
.wtf-elementor-popup-trigger {
    position: relative;
    z-index: 100;
    pointer-events: auto;
}


/* Walshs TeamFlow v3.3 Elementor native popup click handling */
.wtf-elementor-popup-trigger {
    position: relative;
    z-index: 200;
    pointer-events: auto;
}


/* Walshs TeamFlow v3.6 direct popup trigger */
.wtf-elementor-popup-trigger,
.wtf-booking-button[data-wtf-popup-id] {
    position: relative;
    z-index: 999;
    pointer-events: auto;
}


/* Walshs TeamFlow v3.7 card image cover + filter bar background removal */
.wtf-staff-image-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    display: block;
}

.wtf-staff-image-wrap img,
.wtf-staff-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block;
}

.wtf-filter-bar {
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
    padding: 0 !important;
}

.wtf-filter-wrap {
    background: transparent !important;
    box-shadow: none !important;
}


/* Walshs TeamFlow v3.8 native hidden Elementor popup trigger */
.wtf-native-popup-trigger {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: auto !important;
    left: -9999px !important;
    top: auto !important;
}

.wtf-elementor-popup-trigger,
.wtf-booking-button[data-wtf-popup-id] {
    position: relative;
    z-index: 999;
    pointer-events: auto;
}


/* Walshs TeamFlow v3.9 creative card layouts */
.wtf-staff-image-wrap {
    position: relative;
    overflow: hidden;
    display: block;
}

.wtf-staff-image-wrap img,
.wtf-staff-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block;
}

.wtf-image-focus-top .wtf-staff-image-wrap img,
.wtf-image-focus-top .wtf-staff-image {
    object-position: center top !important;
}

.wtf-image-focus-bottom .wtf-staff-image-wrap img,
.wtf-image-focus-bottom .wtf-staff-image {
    object-position: center bottom !important;
}

/* Full image overlay and glass */
.wtf-layout-overlay .wtf-staff-card,
.wtf-layout-glass .wtf-staff-card {
    position: relative;
    min-height: 460px;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    border: 0;
}

.wtf-layout-overlay .wtf-staff-image-wrap,
.wtf-layout-glass .wtf-staff-image-wrap {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    z-index: -2;
}

.wtf-layout-overlay .wtf-staff-image-wrap::after,
.wtf-layout-glass .wtf-staff-image-wrap::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.wtf-layout-overlay .wtf-staff-image-wrap img,
.wtf-layout-glass .wtf-staff-image-wrap img {
    height: 100% !important;
    transform: scale(1.01);
}

.wtf-layout-overlay .wtf-staff-content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 32px;
    color: #fff;
    background: transparent !important;
}

.wtf-layout-overlay .wtf-staff-name,
.wtf-layout-overlay .wtf-staff-position,
.wtf-layout-overlay .wtf-staff-bio,
.wtf-layout-overlay .wtf-contact-link {
    color: #fff;
}

.wtf-layout-overlay .wtf-contact-style-pills .wtf-contact-link,
.wtf-layout-overlay .wtf-contact-style-buttons .wtf-contact-link {
    background: rgba(255,255,255,.18);
    backdrop-filter: blur(8px);
}

.wtf-gradient-dark-bottom .wtf-layout-overlay .wtf-staff-image-wrap::after,
.wtf-gradient-dark-bottom .wtf-layout-glass .wtf-staff-image-wrap::after {
    background: linear-gradient(to top, rgba(0,0,0,.82), rgba(0,0,0,.30) 42%, rgba(0,0,0,.05));
}

.wtf-gradient-dark-full .wtf-layout-overlay .wtf-staff-image-wrap::after,
.wtf-gradient-dark-full .wtf-layout-glass .wtf-staff-image-wrap::after {
    background: linear-gradient(135deg, rgba(0,0,0,.86), rgba(0,0,0,.42));
}

.wtf-gradient-blue-bottom .wtf-layout-overlay .wtf-staff-image-wrap::after,
.wtf-gradient-blue-bottom .wtf-layout-glass .wtf-staff-image-wrap::after {
    background: linear-gradient(to top, rgba(8,31,55,.92), rgba(8,31,55,.30) 55%, rgba(8,31,55,.05));
}

.wtf-gradient-light-bottom .wtf-layout-overlay .wtf-staff-image-wrap::after,
.wtf-gradient-light-bottom .wtf-layout-glass .wtf-staff-image-wrap::after {
    background: linear-gradient(to top, rgba(255,255,255,.94), rgba(255,255,255,.54) 45%, rgba(255,255,255,.03));
}

.wtf-gradient-light-bottom .wtf-layout-overlay .wtf-staff-name,
.wtf-gradient-light-bottom .wtf-layout-overlay .wtf-staff-position,
.wtf-gradient-light-bottom .wtf-layout-overlay .wtf-staff-bio,
.wtf-gradient-light-bottom .wtf-layout-overlay .wtf-contact-link {
    color: #111;
}

.wtf-content-pos-center .wtf-layout-overlay .wtf-staff-card,
.wtf-content-pos-center .wtf-layout-glass .wtf-staff-card {
    align-items: center;
}

.wtf-content-pos-top .wtf-layout-overlay .wtf-staff-card,
.wtf-content-pos-top .wtf-layout-glass .wtf-staff-card {
    align-items: flex-start;
}

/* Glass hover panel */
.wtf-layout-glass .wtf-staff-content {
    position: relative;
    z-index: 2;
    width: calc(100% - 32px);
    margin: 16px;
    border-radius: 18px;
    background: rgba(255,255,255,.76);
    backdrop-filter: blur(16px);
    box-shadow: 0 18px 42px rgba(0,0,0,.18);
}

.wtf-layout-glass .wtf-staff-name,
.wtf-layout-glass .wtf-staff-position,
.wtf-layout-glass .wtf-staff-bio {
    color: #111;
}

/* Split profile */
.wtf-layout-split .wtf-staff-card {
    display: grid;
    grid-template-columns: 42% 1fr;
    min-height: 320px;
}

.wtf-layout-split .wtf-staff-image-wrap {
    height: 100%;
    aspect-ratio: auto;
}

.wtf-layout-split .wtf-staff-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Editorial minimal */
.wtf-layout-editorial .wtf-staff-card {
    border: 0;
    box-shadow: none;
    border-radius: 0;
    background: transparent;
}

.wtf-layout-editorial .wtf-staff-image-wrap {
    border-radius: 24px;
    aspect-ratio: 4 / 5;
    margin-bottom: 22px;
}

.wtf-layout-editorial .wtf-staff-content {
    padding: 0 4px;
}

.wtf-layout-editorial .wtf-staff-name {
    font-size: clamp(26px, 2.3vw, 42px);
}

/* Badge card */
.wtf-layout-badge .wtf-staff-card {
    position: relative;
    overflow: visible;
    padding-top: 70px;
    margin-top: 70px;
}

.wtf-layout-badge .wtf-staff-image-wrap {
    width: 140px;
    height: 140px;
    aspect-ratio: 1;
    border-radius: 999px;
    position: absolute;
    top: -70px;
    left: 28px;
    border: 6px solid #fff;
    box-shadow: 0 16px 36px rgba(0,0,0,.16);
}

.wtf-layout-badge .wtf-staff-content {
    padding-top: 92px;
}

@media (max-width: 768px) {
    .wtf-layout-split .wtf-staff-card {
        grid-template-columns: 1fr;
    }

    .wtf-layout-split .wtf-staff-image-wrap {
        aspect-ratio: 16 / 10;
    }

    .wtf-layout-overlay .wtf-staff-card,
    .wtf-layout-glass .wtf-staff-card {
        min-height: 420px;
    }
}


/* Walshs TeamFlow v4.0 popup typography inheritance */
.wtf-profile-modal-content h3 {
    font-family: inherit;
    color: inherit;
}

.wtf-profile-position {
    font-family: inherit;
}

.wtf-profile-bio {
    font-family: inherit;
}

.wtf-profile-actions .wtf-contact-link {
    font-family: inherit;
}

/* Make modal text structure visually match card hierarchy more closely */
.wtf-profile-modal-content h3 {
    margin-bottom: 12px;
}

.wtf-profile-position {
    margin-bottom: 28px;
}

.wtf-profile-bio {
    margin-bottom: 26px;
}

.wtf-profile-actions {
    align-items: center;
}


/* Walshs TeamFlow v5.5 image fit, scale and layout controls */
.wtf-staff-image-wrap,
.wtf-profile-modal-image {
    background-color: #f5f5f5;
}

.wtf-staff-image-wrap img,
.wtf-staff-image,
.wtf-profile-modal-image img,
.wtf-profile-image {
    transition: transform .35s ease, object-position .25s ease;
    transform-origin: center center;
}

/* Default remains cover */
.wtf-image-fit-cover .wtf-staff-image-wrap img,
.wtf-image-fit-cover .wtf-staff-image {
    object-fit: cover !important;
}

/* Contain shows the full headshot without chopping hair/forehead/shoulders */
.wtf-image-fit-contain .wtf-staff-image-wrap img,
.wtf-image-fit-contain .wtf-staff-image {
    object-fit: contain !important;
}

/* Image positioning controls */
.wtf-image-pos-center-center .wtf-staff-image-wrap img,
.wtf-image-pos-center-center .wtf-staff-image {
    object-position: center center !important;
}

.wtf-image-pos-center-top .wtf-staff-image-wrap img,
.wtf-image-pos-center-top .wtf-staff-image {
    object-position: center top !important;
}

.wtf-image-pos-center-bottom .wtf-staff-image-wrap img,
.wtf-image-pos-center-bottom .wtf-staff-image {
    object-position: center bottom !important;
}

.wtf-image-pos-left-center .wtf-staff-image-wrap img,
.wtf-image-pos-left-center .wtf-staff-image {
    object-position: left center !important;
}

.wtf-image-pos-right-center .wtf-staff-image-wrap img,
.wtf-image-pos-right-center .wtf-staff-image {
    object-position: right center !important;
}

/* Prevent scale overflow from creating scrollbars */
.wtf-staff-image-wrap,
.wtf-profile-modal-image {
    overflow: hidden;
}


/* Walshs TeamFlow v5.7 filter visibility fix */
.wtf-is-hidden {
    display: none !important;
}


/* Walshs TeamFlow filter button fixes */

.wtf-team-filters a,
.wtf-team-filters button,
.wtf-team-filter-btn {
    text-decoration: none !important;
    box-shadow: none !important;
    outline: none !important;
}

.wtf-team-filters.style-pill .wtf-team-filter-btn {
    border-radius: 999px;
}

.wtf-team-filters.style-outline .wtf-team-filter-btn {
    background: transparent;
    border: 1px solid currentColor;
}

.wtf-team-filters.style-minimal .wtf-team-filter-btn {
    background: transparent;
    border: none;
    padding-left: 0;
    padding-right: 0;
}

/* Walshs TeamFlow v6.6 — host-resistant compact booking group */
.wtf-booking-group-grid{
 --wtf-bg-cols:4;--wtf-bg-gap:18px;--wtf-bg-footer:#1268b3;--wtf-bg-name:#fff;
 --wtf-bg-button:#4a92f2;--wtf-bg-button-text:#fff;--wtf-bg-radius:999px;
 display:grid!important;grid-template-columns:repeat(var(--wtf-bg-cols),minmax(0,1fr))!important;
 gap:var(--wtf-bg-gap)!important;width:100%!important;max-width:100%!important;min-width:0!important;
 margin:0!important;padding:0!important;overflow:visible!important
}
.wtf-booking-group-grid,.wtf-booking-group-grid *{box-sizing:border-box!important}
.wtf-booking-group-grid>.wtf-booking-group-card{
 display:flex!important;flex-direction:column!important;width:100%!important;min-width:0!important;max-width:100%!important;
 height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;
 overflow:hidden!important;background:#fff!important;border:1px solid rgba(0,0,0,.10)!important;border-radius:12px!important;
 box-shadow:0 4px 14px rgba(0,0,0,.08)!important
}
.wtf-booking-group-grid>.wtf-booking-group-card>.wtf-booking-group-image-wrap{
 display:flex!important;align-items:flex-end!important;justify-content:center!important;width:100%!important;
 height:260px!important;min-height:260px!important;max-height:260px!important;margin:0!important;padding:10px 10px 0!important;
 overflow:hidden!important;background:#fff!important;flex:0 0 260px!important
}
.wtf-booking-group-grid .wtf-booking-group-image{
 display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;
 margin:0!important;padding:0!important;object-fit:contain!important;object-position:center bottom!important
}
.wtf-booking-group-grid.wtf-bg-fit-cover .wtf-booking-group-image{object-fit:cover!important}
.wtf-booking-group-grid.wtf-bg-fit-contain .wtf-booking-group-image{object-fit:contain!important}
.wtf-booking-group-grid.wtf-bg-pos-top .wtf-booking-group-image{object-position:center top!important}
.wtf-booking-group-grid.wtf-bg-pos-center .wtf-booking-group-image{object-position:center center!important}
.wtf-booking-group-grid.wtf-bg-pos-bottom .wtf-booking-group-image{object-position:center bottom!important}
.wtf-booking-group-grid>.wtf-booking-group-card>.wtf-booking-group-footer{
 display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:9px!important;
 width:100%!important;height:auto!important;min-height:96px!important;max-height:none!important;flex:0 0 auto!important;
 margin:0!important;padding:13px 12px 14px!important;background:var(--wtf-bg-footer)!important;text-align:center!important
}
.wtf-booking-group-grid .wtf-booking-group-name{
 margin:0!important;padding:0!important;color:var(--wtf-bg-name)!important;font-family:inherit!important;
 font-size:16px!important;line-height:1.25!important;font-weight:600!important;text-align:center!important
}
.wtf-booking-group-grid .wtf-booking-group-button,
.wtf-booking-group-grid .wtf-native-booking-trigger{
 display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;max-width:100%!important;
 min-width:0!important;height:auto!important;min-height:0!important;margin:0!important;padding:9px 16px!important;border:0!important;
 border-radius:var(--wtf-bg-radius)!important;background:var(--wtf-bg-button)!important;color:var(--wtf-bg-button-text)!important;
 font-family:inherit!important;font-size:14px!important;line-height:1.2!important;font-weight:600!important;text-align:center!important;
 text-decoration:none!important;text-transform:none!important;white-space:normal!important;cursor:pointer!important
}
@media(max-width:900px){
 .wtf-booking-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
 .wtf-booking-group-grid>.wtf-booking-group-card>.wtf-booking-group-image-wrap{
   height:240px!important;min-height:240px!important;max-height:240px!important;flex-basis:240px!important
 }
}
@media(max-width:560px){
 .wtf-booking-group-grid{grid-template-columns:1fr!important;gap:14px!important}
 .wtf-booking-group-grid>.wtf-booking-group-card>.wtf-booking-group-image-wrap{
   height:300px!important;min-height:300px!important;max-height:300px!important;flex-basis:300px!important
 }
}

/* Native booking modal */
.wtf-native-booking-modal{position:fixed!important;inset:0!important;z-index:2147483000!important;display:flex!important;
align-items:center!important;justify-content:center!important;padding:24px!important;background:rgba(8,36,58,.88)!important;
opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}
.wtf-native-booking-modal.is-open{opacity:1;visibility:visible}
.wtf-native-booking-panel{position:relative!important;width:min(720px,100%)!important;height:min(850px,calc(100vh - 48px))!important;
overflow:hidden!important;background:#fff!important;border-radius:8px!important;box-shadow:0 20px 60px rgba(0,0,0,.3)!important}
.wtf-native-booking-iframe{display:block!important;width:100%!important;height:100%!important;border:0!important;background:#fff!important}
.wtf-native-booking-close{position:absolute!important;top:10px!important;right:10px!important;z-index:3!important;display:flex!important;
align-items:center!important;justify-content:center!important;width:42px!important;height:42px!important;padding:0!important;border:0!important;
border-radius:999px!important;background:#155fa8!important;color:#fff!important;font:700 25px/1 Arial,sans-serif!important;cursor:pointer!important}
html.wtf-booking-open,body.wtf-booking-open{overflow:hidden!important}
@media(max-width:600px){.wtf-native-booking-modal{padding:10px!important}.wtf-native-booking-panel{width:100%!important;height:calc(100vh - 20px)!important}}


/* Walshs TeamFlow v6.7 font controls */
.wtf-booking-group-grid {
    --wtf-bg-name-font: inherit;
    --wtf-bg-button-font: inherit;
}
.wtf-booking-group-grid .wtf-booking-group-name {
    font-family: var(--wtf-bg-name-font) !important;
}
.wtf-booking-group-grid .wtf-booking-group-button,
.wtf-booking-group-grid .wtf-native-booking-trigger {
    font-family: var(--wtf-bg-button-font) !important;
}


/* Walshs TeamFlow v6.8 typography + card radius */
.wtf-booking-group-grid {
    --wtf-bg-name-size:16px;
    --wtf-bg-name-weight:600;
    --wtf-bg-button-size:14px;
    --wtf-bg-button-weight:600;
    --wtf-bg-card-radius:12px;
    margin-bottom:0!important;
}
.wtf-booking-group-grid>.wtf-booking-group-card {
    border-radius:var(--wtf-bg-card-radius)!important;
}
.wtf-booking-group-grid .wtf-booking-group-name {
    font-family:var(--wtf-bg-name-font)!important;
    font-size:var(--wtf-bg-name-size)!important;
    font-weight:var(--wtf-bg-name-weight)!important;
}
.wtf-booking-group-grid .wtf-booking-group-button,
.wtf-booking-group-grid .wtf-native-booking-trigger {
    font-family:var(--wtf-bg-button-font)!important;
    font-size:var(--wtf-bg-button-size)!important;
    font-weight:var(--wtf-bg-button-weight)!important;
}


/* Walshs TeamFlow v7.3 admin edit profile button */
.wtf-profile-modal-admin-edit {
    position: absolute !important;
    top: 18px !important;
    right: 84px !important;
    z-index: 6 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 38px !important;
    padding: 8px 14px !important;
    border-radius: 4px !important;
    background: rgba(255,255,255,.96) !important;
    color: #155fa8 !important;
    border: 1px solid rgba(21,95,168,.28) !important;
    font: 600 13px/1.2 Arial,sans-serif !important;
    text-decoration: none !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.08) !important;
}
.wtf-profile-modal-admin-edit:hover {
    background: #155fa8 !important;
    color: #fff !important;
}
@media (max-width: 767px) {
    .wtf-profile-modal-admin-edit {
        top: 12px !important;
        right: 68px !important;
        min-height: 34px !important;
        padding: 7px 10px !important;
        font-size: 12px !important;
    }
}


/* Walshs TeamFlow v7.5.3: simple profile popup fade only */
.wtf-profile-modal.is-open .wtf-profile-modal-backdrop,
.wtf-profile-modal.is-open .wtf-profile-modal-panel {
    animation: wtfProfileSimpleFadeIn 500ms ease-in-out both !important;
}
.wtf-profile-modal.is-closing .wtf-profile-modal-backdrop,
.wtf-profile-modal.is-closing .wtf-profile-modal-panel {
    animation: wtfProfileSimpleFadeOut 500ms ease-in-out both !important;
}
@keyframes wtfProfileSimpleFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}
@keyframes wtfProfileSimpleFadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}


/* Walshs TeamFlow v7.5.13 - Design 1 filter bar + client-side staff search */
.wtf-filter-wrap {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    flex-wrap: wrap !important;
    margin: 0 0 30px !important;
    padding: 10px 12px !important;
    background: #f3f5f7 !important;
    border: 0 !important;
    border-radius: 14px !important;
    box-shadow: none !important;
}

.wtf-filter-bar {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex: 1 1 620px !important;
    flex-wrap: wrap !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.wtf-filter-button {
    appearance: none !important;
    -webkit-appearance: none !important;
    min-height: 38px;
    padding: 9px 16px !important;
    border: 0 !important;
    outline: 0;
    border-radius: 8px !important;
    background: #fff !important;
    color: #334155 !important;
    box-shadow: 0 0 0 1px rgba(15,23,42,.10) !important;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.wtf-filter-button:hover {
    transform: translateY(-1px);
    background: #f8fafc !important;
    box-shadow: 0 0 0 1px rgba(15,23,42,.18) !important;
}

.wtf-filter-button.is-active {
    background: #0b5aa6 !important;
    color: #fff !important;
    box-shadow: none !important;
}

.wtf-filter-tools {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    flex: 0 1 auto;
    margin-left: auto;
}

.wtf-staff-search-label {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.wtf-staff-search {
    appearance: none !important;
    -webkit-appearance: none !important;
    width: 220px;
    min-height: 40px;
    margin: 0 !important;
    padding: 8px 14px 8px 38px !important;
    border: 1px solid rgba(15,23,42,.14) !important;
    border-radius: 9px !important;
    outline: 0 !important;
    background: #fff !important;
    color: #1e293b !important;
    box-shadow: none !important;
    font: inherit;
}

.wtf-staff-search:focus {
    border-color: #0b5aa6 !important;
    box-shadow: 0 0 0 2px rgba(11,90,166,.10) !important;
}

.wtf-staff-search-icon {
    position: absolute;
    left: 13px;
    width: 15px;
    height: 15px;
    z-index: 1;
    pointer-events: none;
    border: 2px solid #64748b;
    border-radius: 50%;
    box-sizing: border-box;
}

.wtf-staff-search-icon::after {
    content: "";
    position: absolute;
    width: 6px;
    height: 2px;
    right: -5px;
    bottom: -2px;
    background: #64748b;
    transform: rotate(45deg);
    transform-origin: left center;
}

.wtf-filter-sort label {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    margin: 0;
    white-space: nowrap;
    color: #334155;
    font-size: 13px;
    font-weight: 600;
}

.wtf-sort-select {
    appearance: auto;
    min-height: 40px;
    margin: 0 !important;
    padding: 0 34px 0 12px !important;
    border: 1px solid rgba(15,23,42,.14) !important;
    border-radius: 9px !important;
    outline: 0 !important;
    background-color: #fff !important;
    color: #1e293b !important;
    box-shadow: none !important;
}

@media (max-width: 768px) {
    .wtf-filter-wrap {
        overflow: visible !important;
        flex-wrap: wrap !important;
        padding: 10px !important;
    }

    .wtf-filter-bar {
        flex: 1 1 100% !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        padding-bottom: 3px !important;
    }

    .wtf-filter-button {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .wtf-filter-tools {
        width: 100%;
        margin-left: 0;
        justify-content: space-between;
    }

    .wtf-staff-search-label {
        flex: 1 1 auto;
    }

    .wtf-staff-search {
        width: 100%;
    }
}



/* v7.5.19 — responsive team selector.
   Desktop retains the existing pill filter bar. */
.wtf-filter-mobile-select-wrap {
    display: none;
}

@media (max-width: 1024px) {
    .wtf-filter-bar {
        display: none !important;
    }

    .wtf-filter-mobile-select-wrap {
        display: block;
        flex: 1 1 100%;
        width: 100%;
    }

    .wtf-filter-mobile-select-wrap label {
        display: block;
        width: 100%;
        margin: 0;
    }

    .wtf-filter-mobile-select {
        width: 100%;
        min-height: 44px;
        margin: 0 !important;
        padding: 0 42px 0 14px !important;
        border: 1px solid rgba(15,23,42,.14) !important;
        border-radius: 9px !important;
        outline: 0 !important;
        background-color: #fff !important;
        color: #1e293b !important;
        box-shadow: none !important;
        font: inherit;
    }

    .wtf-filter-tools {
        width: 100%;
        margin-left: 0;
    }
}

/* v7.5.20 — tablet/mobile long-bio overflow fix.
   The panel remains auto-height for normal bios, but is constrained by the
   Elementor max-height. When content exceeds it, only the bio scrolls. */
@media (max-width: 1024px) {
    .wtf-profile-modal {
        padding: 0 !important;
    }

    .wtf-profile-modal-panel {
        margin: auto !important;
        overflow: hidden !important;
    }

    .wtf-profile-modal-inner {
        max-height: inherit !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    .wtf-profile-modal-content {
        min-height: 0 !important;
        max-height: inherit !important;
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
    }

    .wtf-profile-bio {
        min-height: 0 !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }
}

@media (min-width: 601px) and (max-width: 1024px) {
    .wtf-profile-modal-image,
    .wtf-profile-image,
    .wtf-profile-image-placeholder {
        max-height: 280px !important;
    }
}


/* v7.5.20 — on the stacked popup layout, reserve room for the image and let
   the content area use only the remaining modal height. */
@media (max-width: 768px) {
    .wtf-profile-modal-inner {
        display: flex !important;
        flex-direction: column !important;
        max-height: inherit !important;
    }

    .wtf-profile-modal-image {
        flex: 0 0 auto !important;
    }

    .wtf-profile-modal-content {
        flex: 1 1 auto !important;
        min-height: 0 !important;
    }

    .wtf-profile-bio {
        flex: 1 1 auto !important;
        min-height: 0 !important;
        overflow-y: auto !important;
    }
}


/* v7.5.24 — universal responsive Book a Meeting popup defaults.
   Desktop: 50vw x 75vh.
   Tablet/mobile: 95vw x 80vh. */
.wtf-native-booking-panel {
    width: 50vw !important;
    max-width: 50vw !important;
    height: 75vh !important;
    max-height: 75vh !important;
}

@media (max-width: 1024px) {
    .wtf-native-booking-panel {
        width: 95vw !important;
        max-width: 95vw !important;
        height: 80vh !important;
        max-height: 80vh !important;
    }
}




/* v7.5.26 — vertically centre the booking iframe in the actual booking body. */
.wtf-native-booking-panel {
    display: flex !important;
    flex-direction: column !important;
}

.wtf-native-booking-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

.wtf-native-booking-iframe {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    border: 0 !important;
}
