/* Shared white-surface border system, measured from Browse by provider type.
   Elementor global colours and native per-widget controls own the values;
   these rules cover hover/focus and plugin markup without matching controls. */
body {
 --yhcd-border-color:var(--e-global-color-yhcdbrd,#D7E2EF);
 --yhcd-border-hover:var(--e-global-color-yhcdhov,#90B6F5);
 --yhcd-border-focus:var(--e-global-color-secondary,#0F2D5B);
 --yhcd-border-radius:10px;
 --directorist-color-border:var(--yhcd-border-color);
 --directorist-color-border-gray:var(--yhcd-border-color);
 --directorist-color-border-light:var(--yhcd-border-color);
 --directorist-border-radius-xs:var(--yhcd-border-radius);
 --directorist-border-radius-sm:var(--yhcd-border-radius);
 --directorist-border-radius-md:var(--yhcd-border-radius);
 --directorist-border-radius-lg:var(--yhcd-border-radius);
}
body .elementor .yhcd-border-surface,
body .elementor .directorist-elementor-loop__item--card-styled,
body .elementor .directorist-elementor-pricing-plans__card,
body.directorist-content-active :is(.directorist-card,.directorist-listing-single,.directorist-search-modal__contents),
body .select2-dropdown {
 border-color:var(--yhcd-border-color);
 border-radius:var(--yhcd-border-radius);
}
body .elementor .yhcd-border-surface:hover,
body .elementor .directorist-elementor-loop__item--card-styled:hover,
body .elementor .directorist-elementor-pricing-plans__card:hover,
body.directorist-content-active :is(.directorist-card,.directorist-listing-single,.directorist-search-modal__contents):hover,
body .select2-dropdown:hover {
 border-color:var(--yhcd-border-hover)!important;
}
body .elementor .yhcd-border-surface:focus-within,
body .elementor .directorist-elementor-loop__item--card-styled:focus-within,
body .elementor .directorist-elementor-pricing-plans__card:focus-within,
body.directorist-content-active :is(.directorist-card,.directorist-search-modal__contents):focus-within,
body .select2-dropdown:focus-within {
 border-color:var(--yhcd-border-focus)!important;
}
/* Native legacy forms, search dropdowns and FormGent have no shared Elementor
   style control. Radio/checkbox geometry and invalid-field borders stay native. */
body .directorist-authentication :is(input[type=text],input[type=email],input[type=password]) {
 border-width:1px;
 border-style:solid;
}
:is(body.directorist-content-active,body .elementor,body .formgent-form) :is(input[type=text],input[type=email],input[type=password],input[type=search],input[type=tel],input[type=url],input[type=number],input[type=date],select,textarea,.select2-selection):not([aria-invalid=true]):not(.is-invalid):not(.error):not(:user-invalid) {
 border-color:var(--yhcd-border-color);
 border-radius:var(--yhcd-border-radius);
}
:is(body.directorist-content-active,body .elementor,body .formgent-form) :is(input[type=text],input[type=email],input[type=password],input[type=search],input[type=tel],input[type=url],input[type=number],input[type=date],select,textarea,.select2-selection):not([aria-invalid=true]):not(.is-invalid):not(.error):not(:user-invalid):hover {
 border-color:var(--yhcd-border-hover)!important;
}
:is(body.directorist-content-active,body .elementor,body .formgent-form) :is(input[type=text],input[type=email],input[type=password],input[type=search],input[type=tel],input[type=url],input[type=number],input[type=date],select,textarea,.select2-selection):not([aria-invalid=true]):not(.is-invalid):not(.error):not(:user-invalid):focus-visible {
 border-color:var(--yhcd-border-focus)!important;
 outline:2px solid var(--yhcd-border-focus)!important;
 outline-offset:3px;
}
body .elementor :is(.yhcd-border-button .elementor-button,.directorist-elementor-search-more-filters__button,.directorist-archive-sidebar-toggle,.directorist-dropdown__toggle,.page-numbers:not(.current):not(.dots)) {
 border-color:var(--yhcd-border-color);
 border-radius:var(--yhcd-border-radius);
}
body .elementor :is(.yhcd-border-button .elementor-button,.yhcd-border-button .directorist-elementor-pricing-plan-action-button,.directorist-elementor-search-more-filters__button,.directorist-archive-sidebar-toggle,.directorist-dropdown__toggle,.page-numbers:not(.current):not(.dots)):hover {
 border-color:var(--yhcd-border-hover)!important;
}
:is(body.directorist-content-active,body .elementor,body .formgent-form) :is(a,button,input,select,textarea,summary,[role=combobox],[role=button],[role=tab],[tabindex]:not([tabindex="-1"])):where(:not(#wpadminbar *)):focus-visible {
 outline:2px solid var(--yhcd-border-focus)!important;
 outline-offset:3px;
}
/* Preserve a consistent icon-only action even when a plugin button reset wins. */
body .yhcd-reference-hero .directorist-elementor-search-more-filters__button {
 width:56px;min-width:56px;height:56px;min-height:56px;
 background:#fff;border:1px solid var(--yhcd-border-color);
 border-radius:var(--yhcd-border-radius);padding:0;
}
body .yhcd-reference-hero .directorist-elementor-search-more-filters__button:hover {
 background:#fff;border-color:var(--yhcd-border-hover)!important;
}
@media(prefers-reduced-motion:reduce){body .yhcd-border-surface{transition:none}}

/* Legacy Directorist cards and controls expose no Elementor border control. */
body .directorist-listing-single,
body .directorist-listing-single.directorist-featured {
 border:1px solid var(--yhcd-border-color)!important;
 border-radius:var(--yhcd-border-radius)!important;
}
body .directorist-listing-single:hover {border-color:var(--yhcd-border-hover)!important}
body .directorist-listing-single:focus-within {border-color:var(--yhcd-border-focus)!important}
body :is(.directorist-pagination,.directorist-dashboard-pagination) :is(a,span).page-numbers:not(.current) {
 border:1px solid var(--yhcd-border-color)!important;
 border-radius:var(--yhcd-border-radius)!important;
}
body :is(.directorist-pagination,.directorist-dashboard-pagination) a.page-numbers:hover {border-color:var(--yhcd-border-hover)!important}
body :is(.directorist-pagination,.directorist-dashboard-pagination) .page-numbers.current {
 border-width:1px!important;
 border-radius:var(--yhcd-border-radius)!important;
}
body :is(.directorist-authentication__form__btn,.directorist-modal__footer .directorist-btn) {
 border:1px solid var(--yhcd-border-color);
 border-radius:var(--yhcd-border-radius);
}
body :is(.directorist-authentication__form__btn,.directorist-modal__footer .directorist-btn):hover {
 border-color:var(--yhcd-border-hover);
}
/* Unclassified native form buttons otherwise inherit Hello's pink hover. */
body .directorist-authentication button.directorist-authentication__form__btn:not(:disabled),
body .directorist-modal__footer button.directorist-btn:where(:not(.directorist-btn-primary,.directorist-btn-danger,.directorist-btn-success)):not(:disabled) {
 background:#fff;
 color:var(--e-global-color-primary,#2563eb);
}
body .directorist-authentication button.directorist-authentication__form__btn:not(:disabled):is(:hover,:focus),
body .directorist-modal__footer button.directorist-btn:where(:not(.directorist-btn-primary,.directorist-btn-danger,.directorist-btn-success)):not(:disabled):is(:hover,:focus) {
 background:#eff6ff;
 color:#1d4ed8;
}
body .directorist-authentication button.directorist-authentication__btn {
 background:transparent;
 color:var(--e-global-color-primary,#2563eb);
}
body .directorist-authentication button.directorist-authentication__btn:is(:hover,:focus) {
 background:transparent;
 color:#1d4ed8;
}
body .directorist-modal-close:hover {background:var(--e-global-color-primary,#2563eb)}
body .directorist-elementor-listing-card-images-slider__photo-button:hover {
 border-color:var(--yhcd-border-hover)!important;
}
/* Account dashboard panels are native Directorist markup without Elementor
   border controls. Their active navigation and status colours stay native. */
body :is(.directorist-user-dashboard__nav,.directorist-user-dashboard-tab__nav,.directorist-user-dashboard-tabcontent,.directorist-dashboard-listing-actions,.directorist-user-dashboard__toggle__link) {
 border:1px solid var(--yhcd-border-color)!important;
 border-radius:var(--yhcd-border-radius)!important;
}
body :is(.directorist-user-dashboard__nav,.directorist-user-dashboard-tab__nav,.directorist-user-dashboard-tabcontent,.directorist-dashboard-listing-actions,.directorist-user-dashboard__toggle__link):hover {
 border-color:var(--yhcd-border-hover)!important;
}
body :is(.directorist-user-dashboard__nav,.directorist-user-dashboard-tab__nav,.directorist-user-dashboard-tabcontent,.directorist-dashboard-listing-actions,.directorist-user-dashboard__toggle__link):focus-within {
 border-color:var(--yhcd-border-focus)!important;
}

/* These native controls provide no inner-button hover-border setting. */
body .directorist-compare-btn:not(.atdlc_added,.directorist-compare-added,.atdlc_single-listing-selected-listing-btn):hover,
body .yhcd-single-reviews .adr-header__write-review :is(a,button):hover,
body .directorist-social-share-links:hover {
 border-color:var(--yhcd-border-hover)!important;
}
body .directorist-social-share-links:focus-within {
 border-color:var(--yhcd-border-focus)!important;
}
body .yhcd-single-gallery .directorist-swiper__nav {
 border-color:var(--yhcd-border-color)!important;
}
body .yhcd-single-gallery .directorist-swiper__nav:hover {
 border-color:var(--yhcd-border-hover)!important;
}

/* Leaflet owns zoom markup; keep its native controls and match their frame. */
body .leaflet-control-zoom.leaflet-bar {
 border:1px solid var(--yhcd-border-color);
 border-radius:var(--yhcd-border-radius);
 background:#fff;
}
body .leaflet-control-zoom.leaflet-bar:hover {border-color:var(--yhcd-border-hover)}
body .leaflet-control-zoom.leaflet-bar:focus-within {border-color:var(--yhcd-border-focus)}
body .leaflet-control-zoom.leaflet-bar a:first-child {
 border-radius:9px 9px 0 0;
 border-bottom-color:var(--yhcd-border-color);
}
body .leaflet-control-zoom.leaflet-bar a:last-child {border-radius:0 0 9px 9px}

/* The native gallery lightbox inherits Hello's generic pink button theme.
   No lightbox border controls are exposed by the installed slider widget. */
body :is(.directorist-gbi-listing-slider-lightbox__close,.directorist-gbi-listing-slider-lightbox__nav) {
 background:#fff!important;
 color:var(--yhcd-border-focus)!important;
 border:1px solid var(--yhcd-border-color)!important;
 border-radius:var(--yhcd-border-radius)!important;
}
body :is(.directorist-gbi-listing-slider-lightbox__close,.directorist-gbi-listing-slider-lightbox__nav):hover {
 background:#eff6ff!important;
 border-color:var(--yhcd-border-hover)!important;
}
body .directorist-gbi-listing-slider-lightbox__thumbnail {
 border-radius:var(--yhcd-border-radius);
}
body .directorist-gbi-listing-slider-lightbox__thumbnail:not(.is-active) {
 border-color:var(--yhcd-border-color)!important;
}
body .directorist-gbi-listing-slider-lightbox__thumbnail:not(.is-active):hover {
 border-color:var(--yhcd-border-hover)!important;
}
body :is(.directorist-gbi-listing-slider-lightbox__close,.directorist-gbi-listing-slider-lightbox__nav,.directorist-gbi-listing-slider-lightbox__thumbnail):focus-visible {
 outline:2px solid var(--yhcd-border-focus)!important;
 outline-offset:3px;
 box-shadow:0 0 0 4px #fff;
}

/* Native comparison table headers retain straight divider geometry. */
body .directorist-compare-listing-table :is(th,td) {
 border-color:var(--yhcd-border-color)!important;
}

/* Plain WordPress content links sit outside Elementor's native style controls. */
body .site-main > .page-content > :is(p,ul,ol,h2,h3,h4) a {color:#2563eb}
body .site-main > .page-content > :is(p,ul,ol,h2,h3,h4) a:is(:hover,:focus) {color:#1d4ed8}
body .site-main > .page-content > :is(p,ul,ol,h2,h3,h4) a:focus-visible {
 outline:2px solid var(--yhcd-border-focus)!important;
 outline-offset:3px;
}

/* The native submission renderer has no Elementor action-alignment control. */
body.page-id-22 .yhcd-submit-page .yhcd-submit-native-form .default-add-listing-bottom {
 display:flex;
 justify-content:flex-start;
}
body.page-id-22 .yhcd-submit-page .yhcd-submit-native-form .default-add-listing-bottom .directorist-form-submit__btn {
 width:auto;
 flex:0 0 auto;
 margin-inline-start:0;
 margin-inline-end:auto;
}

/* Homepage search: focus uses the existing hover border, with no second ring. */
body .elementor .yhcd-reference-hero .yhcd-reference-search {
 --yhcd-border-focus:var(--yhcd-border-hover);
}
body .elementor .yhcd-reference-hero .yhcd-reference-search :is(input[type=text],input[type=search],select,.select2-selection):not([aria-invalid=true]):not(.is-invalid):not(.error):not(:user-invalid):is(:focus,:focus-visible,:focus-within),
body .elementor .yhcd-reference-hero .yhcd-reference-search :is(.select2-container--focus,.select2-container--open) .select2-selection {
 border-color:var(--yhcd-border-hover)!important;
 outline:0!important;
 box-shadow:none!important;
}

/* Provider cards: preserve native category links and readable spacing when
   a provider has many categories. Native controls still own link typography. */
body .elementor .yhcd-provider-cards-refined .care-card-tags .care-category:has(.directorist-elementor-listing-card-field__link + .directorist-elementor-listing-card-field__link) {
 width:100%;flex-basis:100%;
}
body .elementor .yhcd-provider-cards-refined .care-card-tags .care-category .directorist-elementor-listing-card-field__value {
 color:transparent;line-height:2.25;
}
body .elementor .yhcd-provider-cards-refined .care-card-tags .care-category:has(.directorist-elementor-listing-card-field__link + .directorist-elementor-listing-card-field__link) .directorist-elementor-listing-card-field__link {
 margin:3px 6px 3px 0;vertical-align:middle;white-space:normal;
}
body .elementor .yhcd-provider-cards-refined .directorist-elementor-card-template__content[data-direl-view="grid"] {
 display:flex;flex-direction:column;height:100%;gap:0;
}
body .elementor .yhcd-provider-cards-refined .directorist-elementor-card-template__content[data-direl-view="grid"] .care-actions {
 margin-top:auto!important;padding-top:24px;
}

/* The description may contain imported rich text with its own Elementor
   classes, so scope rhythm to the native description output, not the page. */
body .elementor .yhcd-single-description .directorist-listing-details__text :is(.elementor-widget-text-editor,.elementor-widget-container,p,li) {font-size:inherit;line-height:inherit;}
body .elementor .yhcd-single-description p {margin:0 0 18px;}
body .elementor .yhcd-single-description :is(h2,h3,h4,h5,h6) {
 line-height:1.4;margin:24px 0 14px;color:var(--e-global-color-secondary,#0F2D5B);
}
body .elementor .yhcd-single-description :is(h2,h3,h4,h5,h6):first-child {margin-top:0;}
body .elementor .yhcd-single-description p:last-child {margin-bottom:0;}
body .elementor .yhcd-single-service {margin-top:24px;padding-top:18px;border-top:1px solid var(--yhcd-border-color,#D7E2EF);}
body .elementor .yhcd-single-service .directorist-elementor-listing-card-field__label {line-height:1.7!important;}
body .elementor .yhcd-single-service .directorist-elementor-listing-card-field__value {line-height:1.6;}

/* One coherent status chip; no second background around just its text. */
body .elementor .yhcd-single-profile-status {border-radius:6px;padding:7px 10px;}
body .elementor .yhcd-single-profile-status:has(.yhcd-fact-checked) {
 background:#F0FDFA;border-color:#99D9D0;color:#0F766E;
}
body .elementor .yhcd-single-profile-status .directorist-elementor-listing-card-field {gap:7px;align-items:center;}
body .elementor .yhcd-single-profile-status .directorist-elementor-listing-card-field__value {
 background:transparent!important;border:0!important;padding:0!important;color:inherit!important;
 font-size:14px;line-height:1.4;font-weight:600;text-transform:none;
}
body .elementor .yhcd-single-profile-status:has(.yhcd-fact-checked) .directorist-elementor-listing-card-field__icon {color:inherit!important;}

/* Existing conditional FormGent forms keep their fields, validation,
   provider context and submission handlers. Match the surrounding panels. */
body .elementor .yhcd-provider-contact {display:grid;gap:24px;}
body .elementor .yhcd-provider-contact .yhcd-contact-panel {
 min-width:0;padding:28px;background:#fff;border:1px solid var(--yhcd-border-color,#D7E2EF);
 border-radius:var(--yhcd-border-radius,10px);scroll-margin-top:120px;
}
body .elementor .yhcd-provider-contact .yhcd-contact-panel > h2 {
 color:var(--e-global-color-secondary,#0F2D5B);font-family:inherit;
 font-size:24px;font-weight:700;line-height:1.35;margin:0 0 12px;
}
body .elementor .yhcd-provider-contact .yhcd-contact-panel > p {
 color:#475569;font-size:16px;line-height:1.75;margin:0 0 24px;
}
body .elementor .yhcd-provider-contact .formgent-form {
 --formgent-color-primary:#2563EB;--formgent-field-border-radius:10px;
 --formgent-field-horizontal-spacing-desktop:20px;
 --formgent-field-vertical-spacing-desktop:24px;--formgent-field-vertical-spacing-tablet:24px;--formgent-field-vertical-spacing-mobile:24px;
 --formgent-form-padding-desktop:0px;--formgent-form-padding-tablet:0px;--formgent-form-padding-mobile:0px;
}
body .elementor .yhcd-provider-contact .formgent-form > form {
 padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;
}
body .elementor .yhcd-provider-contact .formgent-field-label {
 font-family:inherit;font-size:16px;font-weight:600;line-height:1.5;color:#0F2D5B;
}
body .elementor .yhcd-provider-contact .formgent-field-single__input {
 min-height:48px;font-family:inherit;font-size:16px;line-height:1.6;box-shadow:none;
}
body .elementor .yhcd-provider-contact textarea.formgent-field-single__input {min-height:140px;}
body .elementor .yhcd-provider-contact .formgent-field-label-sub,
body .elementor .yhcd-provider-contact .formgent-field-gdpr {line-height:1.7;}
body .elementor .yhcd-provider-contact .formgent-btn-default {
 min-height:48px;padding:12px 22px;border:1px solid #2563EB;border-radius:10px;
 background:#2563EB;color:#fff;font-family:inherit;font-size:16px;font-weight:600;line-height:1.5;box-shadow:none;
}
body .elementor .yhcd-provider-contact .formgent-btn-default:hover {background:#1D4ED8;border-color:#1D4ED8;color:#fff;}
body .elementor .yhcd-provider-contact .formgent-btn-default:focus-visible {outline:2px solid #0F2D5B;outline-offset:3px;}
@media(max-width:767px) {
 body .elementor .yhcd-provider-contact .yhcd-contact-panel {padding:20px;scroll-margin-top:100px;}
 body .elementor .yhcd-provider-contact .yhcd-contact-panel > h2 {font-size:22px;}
 body .elementor .yhcd-provider-contact .formgent-btn-default {width:100%;min-width:0;white-space:normal;}
 /* Keep the native icon and value joined when the label needs its own row. */
 body .elementor .yhcd-single-service .directorist-elementor-listing-card-field {display:grid;grid-template-columns:31px minmax(0,1fr);row-gap:10px!important;}
 body .elementor .yhcd-single-service .directorist-elementor-listing-card-field__label {grid-column:1/-1;}
 body .elementor .yhcd-single-service .directorist-elementor-listing-card-field__icon {grid-column:1;grid-row:2;}
 body .elementor .yhcd-single-service .directorist-elementor-listing-card-field__value {grid-column:2;grid-row:2;justify-self:start;width:max-content;max-width:100%;}
}

body .elementor .yhcd-single-profile-status:has(.yhcd-fact-checked) .directorist-elementor-listing-card-field {color:#0F766E;}
/* Native loop inner wrappers are grid items; allow long term labels to shrink
   within the viewport instead of enlarging the outer grid track. */
body .elementor .yhcd-provider-cards-refined > .directorist-elementor-loop__inner {min-width:0;max-width:100%;width:100%;}

/* Rich description headings have no separate native typography control.
   Keep provider subheadings below the native 24/22px section headings. */
body .elementor .yhcd-single-description .directorist-listing-details__text :is(h2,h3,h4) {font-size:20px;line-height:1.4;}
body .elementor .yhcd-single-description .directorist-listing-details__text :is(h5,h6) {font-size:18px;line-height:1.45;}

/* Shortcode-mounted native FormGent fields do not expose Elementor style
   controls for help, consent, country-code or enhanced-select typography. */
body .elementor .yhcd-provider-contact .formgent-field-sub-label {
 font-size:15px;line-height:1.65;color:#475569;
}
body .elementor .yhcd-provider-contact .formgent-field-single__wrapper--gdpr .formgent-field-sub-label {font-weight:400;}
body .elementor .yhcd-provider-contact :is(.ts-control,.ts-control .item,.ts-dropdown,.ts-dropdown .option,.iti__selected-dial-code) {
 font-family:inherit;font-size:16px;line-height:1.5;
}
body .elementor .yhcd-provider-contact .just-validate-error-label {font-size:15px;line-height:1.6;}
