/* NCU Directorist Single Listing Design 1.1.1. Strictly scoped to Directorist listings. */
body.ncu-directorist-listing {
  --ncu-navy: #0e3142;
  --ncu-teal: #0b8178;
  --ncu-text: #193446;
  --ncu-muted: #637b8a;
  --ncu-line: #e1eaee;
  --ncu-bg: #f1f6f8;
  --ncu-radius: 16px;
  --ncu-shadow: 0 10px 28px rgba(15, 46, 59, .065);
  background: var(--ncu-bg);
}
/* Fix the actual width bottleneck on Astra: only the OUTER container sets a width.
   Nested Directorist containers now fill that width instead of shrinking repeatedly. */
body.ncu-directorist-listing #content > .ast-container,
body.ncu-directorist-listing #content .ast-container {
  width: min(1320px, calc(100% - 48px)) !important;
  max-width: 1320px !important;
  margin-inline: auto !important;
}
body.ncu-directorist-listing #content #primary,
body.ncu-directorist-listing #content .content-area,
body.ncu-directorist-listing #content .site-main,
body.ncu-directorist-listing #content article,
body.ncu-directorist-listing #content .entry-content {
  max-width: none !important;
  width: 100% !important;
  min-width: 0;
}
body.ncu-directorist-listing #content #primary { float: none !important; }
body.ncu-directorist-listing #content .ast-article-single { background: transparent; padding: 0; }
body.ncu-directorist-listing :is(.directorist-container, .directorist-single-container,
.directorist-single-listing-wrapper, .directorist-single-wrapper,
.directorist-single-listing, .directorist-single, .atbd_single_listing,
.directorist-content-active, .directorist-single-content) {
  width: 100%; max-width: none; min-width: 0; margin-inline: auto;
}
body.ncu-directorist-listing :is(.directorist-single-listing, .directorist-single-wrapper, .directorist-single-listing-wrapper, .atbd_single_listing) {
  color: var(--ncu-text); font-size: 15px; line-height: 1.65;
}
/* Header is retained from Directorist; we only enhance its appearance. */
body.ncu-directorist-listing :is(.directorist-single-header,.directorist-single-listing-header,
.directorist-listing-single-header,.directorist-single-listing__header,.directorist-single-top) {
  margin: 20px 0 23px; padding: 27px 30px;
  color: white; background: linear-gradient(115deg,#0a2c3e,#0d5253);
  border-radius: var(--ncu-radius); box-shadow: var(--ncu-shadow);
}
body.ncu-directorist-listing :is(.directorist-single-header,.directorist-single-listing-header,
.directorist-listing-single-header,.directorist-single-listing__header,.directorist-single-top) :is(h1,h2,h3) { color: white; }
body.ncu-directorist-listing :is(.directorist-single-listing-title,.directorist-listing-title,.directorist-single-title,
.directorist-single-header h1,.directorist-single-listing-header h1) {
  font-size: clamp(26px, 3vw, 42px); line-height: 1.15;
  font-weight: 800; letter-spacing: -.02em; margin-bottom: 12px; overflow-wrap: anywhere;
}
/* 1.1.1: Quick-info lives on a WHITE strip below the title. Previously,
   the broad header anchor rule painted category links white-on-white.
   Keep titles white on the gradient, but keep meta links dark and readable. */
body.ncu-directorist-listing :is(.directorist-single-header,.directorist-single-listing-header,
.directorist-listing-single-header,.directorist-single-listing__header,.directorist-single-top)
  a:not(.directorist-btn):not(.directorist-button):not([class*="btn-"]):not([class*="button-"]) {
  color: #183847;
}
body.ncu-directorist-listing :is(.directorist-single-header,.directorist-single-listing-header,
.directorist-listing-single-header,.directorist-single-listing__header,.directorist-single-top)
  :is(h1,h2,h3) a { color: #fff; }
/* Real responsive detail/contact/review sections: actual card DOM nodes are reused. */
body.ncu-directorist-listing .ncu-layout-v2 { width: 100%; max-width: none; min-width: 0; margin: 22px auto 30px; }
body.ncu-directorist-listing .ncu-layout-top {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 345px);
  gap: 24px; align-items: start; width: 100%;
}
body.ncu-directorist-listing .ncu-layout-main,
body.ncu-directorist-listing .ncu-layout-aside,
body.ncu-directorist-listing .ncu-layout-reviews {
  display: flex; flex-direction: column; align-items: stretch; gap: 22px; min-width: 0;
}
body.ncu-directorist-listing .ncu-layout-reviews { margin-top: 24px; }
body.ncu-directorist-listing .ncu-layout-top > .ncu-layout-aside { position: sticky; top: 28px; }
body.admin-bar.ncu-directorist-listing .ncu-layout-top > .ncu-layout-aside { top: 62px; }
body.ncu-directorist-listing .ncu-original-empty { display: none !important; }
body.ncu-directorist-listing .ncu-layout-v2 > *,
body.ncu-directorist-listing .ncu-layout-v2 :is(.directorist-card,.directorist-single-listing-card,.atbdp_listing_section) {
  min-width: 0; max-width: 100%; width: 100%; margin: 0; box-sizing: border-box;
}
/* Business cards and native Directorist forms. */
body.ncu-directorist-listing :is(.directorist-card,.directorist-single-listing-card,.atbdp_listing_section,
.directorist-listing-details,.directorist-review-content,.directorist-review-form) {
  background: white; border: 1px solid var(--ncu-line);
  border-radius: var(--ncu-radius); box-shadow: var(--ncu-shadow);
}
body.ncu-directorist-listing .directorist-card { overflow: visible; }
body.ncu-directorist-listing :is(.directorist-card__header,.directorist-card__head,.directorist-section-title,.directorist-card-header) {
  background: #fff !important; padding: 19px 24px;
  border-bottom: 1px solid var(--ncu-line); color: var(--ncu-text);
  border-radius: var(--ncu-radius) var(--ncu-radius) 0 0;
}
body.ncu-directorist-listing :is(.directorist-card__body,.directorist-card-body,.directorist-card__content,.directorist-listing-details__content) {
  background: #fff !important; min-width: 0; padding: 24px; border-radius: 0 0 var(--ncu-radius) var(--ncu-radius);
}
body.ncu-directorist-listing :is(.directorist-card__header,.directorist-card-header) :is(h2,h3,h4) {
  font-size: 18px; font-weight: 800; color: var(--ncu-text); margin: 0;
}
body.ncu-directorist-listing :is(.directorist-card,.directorist-single-listing,.atbd_single_listing) :is(p,li,h2,h3,h4) {
  overflow-wrap: anywhere;
}
body.ncu-directorist-listing .directorist-single-info {
  display: flex; align-items: flex-start; gap: 12px; padding: 11px 0; min-width: 0;
  border-bottom: 1px solid #f0f3f5;
}
body.ncu-directorist-listing .directorist-single-info:last-child { border-bottom: 0; }
body.ncu-directorist-listing .directorist-single-info__label {
  display: flex; align-items: center; min-width: 110px; gap: 8px;
  color: var(--ncu-muted); font-size: 13px; font-weight: 700;
}
body.ncu-directorist-listing .directorist-single-info__value { flex: 1; min-width: 0; overflow-wrap: anywhere; }
body.ncu-directorist-listing :is(.directorist-single-info__value,.directorist-details-info-wrap) a { color: var(--ncu-teal); overflow-wrap: anywhere; }
/* Gallery: constrain visible frame and remove giant portrait whitespace. */
body.ncu-directorist-listing :is(.directorist-single-listing-slider,.directorist-slider,.directorist-gallery,
.directorist-single-listing-gallery,.directorist-listing-gallery,.atbdp_single_listing_photo_gallery) {
  max-width: 100%; min-width: 0; overflow: hidden;
  border-radius: 13px; background: linear-gradient(135deg, #eef5f4, #d7e5e5);
}
body.ncu-directorist-listing :is(.directorist-single-listing-slider,.directorist-slider,.directorist-gallery,
.directorist-single-listing-gallery,.atbdp_single_listing_photo_gallery) img {
  display: block; max-width: 100%; max-height: 540px; width: auto; height: auto;
  object-fit: contain; margin-inline: auto;
}
body.ncu-directorist-listing :is(.directorist-gallery,.directorist-slider,.directorist-listing-gallery) :is(.slick-list,.swiper,.swiper-container) { max-width: 100%; }
body.ncu-directorist-listing :is(.directorist-gallery,.directorist-slider,.directorist-listing-gallery) :is(.slick-track,.swiper-wrapper) { align-items: center; }
/* Contact and review must look like one visual system rather than a green panel. */
body.ncu-directorist-listing :is(.directorist-card-contact-owner,.directorist-card-review,
.directorist-review-form,.directorist-review-area,.directorist-review-container,
.directorist-add-review,.directorist-card-review-form,#directorist-review-form) {
  background: #fff !important; color: var(--ncu-text) !important;
}
body.ncu-directorist-listing :is(.directorist-review-form,.directorist-review-area,.directorist-review-container) :is(form,.form-group,.directorist-card__body) { background: #fff !important; }
body.ncu-directorist-listing .ncu-layout-reviews :is(.directorist-review-form-wrapper,.directorist-review-form-content,.directorist-review-form__content,.directorist-review-content,.atbdp_review_form,form) {
  background: #fff !important; color: var(--ncu-text) !important;
}
body.ncu-directorist-listing :is(.ncu-layout-reviews,.ncu-layout-aside) :is(button[type=submit],input[type=submit]) {
  background: var(--ncu-teal); border: 1px solid var(--ncu-teal); color: white;
  border-radius: 10px; padding: 10px 17px; font-weight: 750; cursor: pointer;
}
body.ncu-directorist-listing :is(.ncu-layout-reviews,.ncu-layout-aside) :is(button[type=submit],input[type=submit]):hover {
  background: #08665f; border-color: #08665f;
}
body.ncu-directorist-listing :is(.directorist-card,.directorist-single-wrapper,.atbd_single_listing) :is(input:not([type=checkbox]):not([type=radio]),textarea,select) {
  box-sizing: border-box; min-height: 44px; max-width: 100%; width: 100%;
  color: var(--ncu-text); border-radius: 9px; border: 1px solid #d8e4e9;
  background: #fff !important; padding: 11px 12px;
}
body.ncu-directorist-listing :is(.directorist-card,.directorist-single-wrapper,.atbd_single_listing) textarea {
  min-height: 125px; resize: vertical;
}
body.ncu-directorist-listing :is(.directorist-btn-primary,.directorist-btn--primary,
.directorist-form-submit__btn,.directorist-review-submit,.atbdp-btn-primary) {
  border-radius: 10px; background: var(--ncu-teal); border-color: var(--ncu-teal);
  color: #fff; font-weight: 750;
}
body.ncu-directorist-listing :is(.directorist-btn-primary,.directorist-btn--primary,
.directorist-form-submit__btn,.directorist-review-submit,.atbdp-btn-primary):hover { background: #08665f; border-color: #08665f; }
body.ncu-directorist-listing :is(.directorist-review-star,.directorist-rating) { color: #eaa73b; }
body.ncu-directorist-listing :is(.directorist-map-wrapper,.directorist-map,.atbdp-map,.atbdp_map,
.directorist-google-map,.directorist-listing-map,.leaflet-container) {
  border-radius: 12px; max-width: 100%; overflow: hidden;
}
body.ncu-directorist-listing :is(iframe,video) { max-width: 100%; }
body.ncu-directorist-listing :is(.directorist-card,.directorist-single-wrapper) :is(a,button,input,textarea,select):focus-visible { outline: 2px solid var(--ncu-teal); outline-offset: 2px; }
/* Keep native forms and contact info within viewport on all screen sizes. */
body.ncu-directorist-listing :is(.directorist-row,.directorist-col,.directorist-details-info-wrap,.row,.col-md-8,.col-md-4) { min-width: 0; }
@media (max-width: 980px) {
  body.ncu-directorist-listing .ncu-layout-top { grid-template-columns: minmax(0, 1fr) minmax(260px, 305px); gap: 18px; }
  body.ncu-directorist-listing :is(.directorist-card__body,.directorist-card-body) { padding: 20px; }
}
@media (max-width: 760px) {
  body.ncu-directorist-listing #content .ast-container,
  body.ncu-directorist-listing #content > .ast-container { width: calc(100% - 28px) !important; max-width: none !important; }
  body.ncu-directorist-listing .ncu-layout-top { grid-template-columns: minmax(0,1fr); gap: 17px; }
  body.ncu-directorist-listing .ncu-layout-top > .ncu-layout-aside { position: static; }
  body.ncu-directorist-listing :is(.directorist-single-listing-slider,.directorist-slider,.directorist-gallery,.directorist-single-listing-gallery,.atbdp_single_listing_photo_gallery) img { max-height: 440px; }
  body.ncu-directorist-listing .ncu-layout-main,
  body.ncu-directorist-listing .ncu-layout-aside,
  body.ncu-directorist-listing .ncu-layout-reviews { gap: 17px; }
  body.ncu-directorist-listing .ncu-layout-reviews { margin-top: 17px; }
  body.ncu-directorist-listing :is(.directorist-single-header,.directorist-single-listing-header,.directorist-listing-single-header,.directorist-single-listing__header,.directorist-single-top) { padding: 21px 19px; }
  body.ncu-directorist-listing :is(.directorist-card__header,.directorist-card__head,.directorist-section-title,.directorist-card-header) { padding: 17px 19px; }
  body.ncu-directorist-listing :is(.directorist-card__body,.directorist-card-body,.directorist-card__content,.directorist-listing-details__content) { padding: 19px; }
}
@media (max-width: 440px) {
  body.ncu-directorist-listing #content .ast-container,
  body.ncu-directorist-listing #content > .ast-container { width: calc(100% - 20px) !important; }
  body.ncu-directorist-listing :is(.directorist-single-listing-title,.directorist-listing-title,.directorist-single-title) { font-size: 27px; }
  body.ncu-directorist-listing .directorist-single-info { flex-direction: column; align-items: flex-start; gap: 3px; }
  body.ncu-directorist-listing :is(.directorist-single-listing-slider,.directorist-slider,.directorist-gallery,.directorist-single-listing-gallery,.atbdp_single_listing_photo_gallery) img { max-height: 390px; }
  body.ncu-directorist-listing .directorist-single-info__label { min-width: 0; }
  body.ncu-directorist-listing :is(.directorist-card__body,.directorist-card-body,.directorist-card__content,.directorist-listing-details__content) { padding: 16px; }
  body.ncu-directorist-listing :is(.directorist-btn,.atbdp-btn) { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) { body.ncu-directorist-listing * { scroll-behavior: auto !important; } }
