/* =========================================================
   Unified Directory 1.1.0 — Custom CSS Foundation
   One front-end stylesheet controls component views and modules.
   Override variables in media/com_unifieddirectory/css/custom.css.
   ========================================================= */
.ud,
.ud-site,
.ud-module {
  --ud-color-bg: #ffffff;
  --ud-color-surface: #fffaf3;
  --ud-color-card: #ffffff;
  --ud-color-text: #1f2933;
  --ud-color-muted: #667085;
  --ud-color-border: #ded6ca;
  --ud-color-primary: #7c4a2d;
  --ud-color-primary-dark: #4f2f1d;
  --ud-radius-card: 18px;
  --ud-radius-control: 12px;
  --ud-grid-gap: 18px;
  --ud-shadow-card: 0 12px 30px rgba(31, 41, 51, 0.09);

  --ud-site-bg: var(--ud-color-surface);
  --ud-site-card: var(--ud-color-card);
  --ud-site-border: var(--ud-color-border);
  --ud-site-text: var(--ud-color-text);
  --ud-site-muted: var(--ud-color-muted);
  --ud-site-accent: var(--ud-color-primary);
  --ud-site-accent-dark: var(--ud-color-primary-dark);
  --ud-site-shadow: var(--ud-shadow-card);
}
.ud,
.ud *,
.ud-site,
.ud-site *,
.ud-module,
.ud-module * {
  box-sizing: border-box;
}
/* =========================================================
   Unified Directory — Public Directory Views
   ========================================================= */

.ud-site {
  --ud-site-bg: #fffaf3;
  --ud-site-card: #ffffff;
  --ud-site-border: #ded6ca;
  --ud-site-text: #1f2933;
  --ud-site-muted: #667085;
  --ud-site-accent: #7c4a2d;
  --ud-site-accent-dark: #4f2f1d;
  --ud-site-shadow: 0 12px 30px rgba(31, 41, 51, 0.09);
  color: var(--ud-site-text);
}

.ud-site-hero {
  margin: 0 0 24px;
  padding: 28px;
  background: linear-gradient(135deg, #fffaf3 0%, #f3ede4 100%);
  border: 1px solid var(--ud-site-border);
  border-radius: 22px;
  box-shadow: var(--ud-site-shadow);
}

.ud-site-hero h1 {
  margin: 0 0 10px;
  color: var(--ud-site-accent-dark);
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1;
}

.ud-site-hero p {
  max-width: 820px;
  margin: 0;
  color: var(--ud-site-muted);
  font-size: 1.05rem;
  line-height: 1.65;
}

.ud-site-search {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  margin: 0 0 24px;
  padding: 16px;
  background: var(--ud-site-card);
  border: 1px solid var(--ud-site-border);
  border-radius: 16px;
  box-shadow: var(--ud-site-shadow);
}

.ud-site-search input[type="search"] {
  flex: 1 1 280px;
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid var(--ud-site-border);
  border-radius: 12px;
}

.ud-site-search button,
.ud-primary-action a,
.ud-card-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid var(--ud-site-accent);
  border-radius: 999px;
  background: var(--ud-site-accent);
  color: #ffffff;
  font-weight: 800;
  text-decoration: none;
}

.ud-card-actions a + a {
  background: #ffffff;
  color: var(--ud-site-accent-dark);
}

.ud-section {
  margin: 0 0 28px;
}

.ud-section h2 {
  margin: 0 0 14px;
  color: var(--ud-site-accent-dark);
}

.ud-category-grid,
.ud-listing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.ud-category-card,
.ud-listing-card,
.ud-listing-full,
.ud-empty {
  background: var(--ud-site-card);
  border: 1px solid var(--ud-site-border);
  border-radius: 18px;
  box-shadow: var(--ud-site-shadow);
}

.ud-category-card {
  display: block;
  padding: 18px;
  color: var(--ud-site-text);
  text-decoration: none;
}

.ud-category-card strong {
  display: block;
  color: var(--ud-site-accent-dark);
  font-size: 1.1rem;
}

.ud-category-card span,
.ud-card-meta {
  color: var(--ud-site-muted);
  font-size: 0.92rem;
}

.ud-listing-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 18px;
}

.ud-card-top {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.ud-card-top img,
.ud-favicon-placeholder {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 10px;
}

.ud-card-top img {
  object-fit: contain;
  border: 1px solid #eee7dc;
  background: #ffffff;
}

.ud-favicon-placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f3ede4;
  color: var(--ud-site-accent-dark);
  font-size: 0.75rem;
  font-weight: 900;
}

.ud-card-top h2,
.ud-card-top h3 {
  margin: 0 0 4px;
  font-size: 1.15rem;
  line-height: 1.25;
}

.ud-card-top h2 a,
.ud-card-top h3 a {
  color: var(--ud-site-accent-dark);
  text-decoration: none;
}

.ud-listing-card p {
  margin: 0;
  color: var(--ud-site-text);
  line-height: 1.6;
}

.ud-card-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: auto;
}

.ud-listing-full {
  padding: 24px;
}

.ud-card-top-large img,
.ud-card-top-large .ud-favicon-placeholder {
  width: 64px;
  height: 64px;
  flex-basis: 64px;
}

.ud-feature-image {
  display: block;
  max-width: 100%;
  margin: 0 0 22px;
  border-radius: 18px;
  border: 1px solid var(--ud-site-border);
}

.ud-summary {
  color: var(--ud-site-muted);
  font-size: 1.1rem;
  line-height: 1.7;
}

.ud-description {
  line-height: 1.75;
}

.ud-details-list {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 8px 18px;
  margin: 24px 0;
  padding: 18px;
  background: #fbfaf8;
  border: 1px solid #eee7dc;
  border-radius: 16px;
}

.ud-details-list dt {
  color: var(--ud-site-accent-dark);
  font-weight: 900;
}

.ud-details-list dd {
  margin: 0;
}

.ud-empty {
  padding: 24px;
  text-align: center;
  color: var(--ud-site-muted);
}

@media (max-width: 980px) {
  .ud-category-grid,
  .ud-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .ud-category-grid,
  .ud-listing-grid {
    grid-template-columns: 1fr;
  }

  .ud-site-hero {
    padding: 22px;
  }
}


/* Unified Directory 0.9.0 beta polish */
.ud-directory,
.ud-category,
.ud-featured,
.ud-recent,
.ud-search,
.ud-listing {
  --ud-site-card-bg: #ffffff;
  --ud-site-border: rgba(42, 35, 29, 0.16);
  --ud-site-shadow: 0 10px 26px rgba(42, 35, 29, 0.08);
}

.ud-grid,
.ud-listings-grid,
.ud-results-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.ud-card,
.ud-listing-card,
.ud-result-card {
  background: var(--ud-site-card-bg);
  border: 1px solid var(--ud-site-border);
  border-radius: 18px;
  box-shadow: var(--ud-site-shadow);
  padding: 18px;
  overflow: hidden;
}

.ud-card img,
.ud-listing-card img,
.ud-result-card img {
  max-width: 100%;
  height: auto;
}

.ud-card a,
.ud-listing-card a,
.ud-result-card a {
  overflow-wrap: anywhere;
}

@media (max-width: 1024px) {
  .ud-grid,
  .ud-listings-grid,
  .ud-results-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .ud-grid,
  .ud-listings-grid,
  .ud-results-grid {
    grid-template-columns: 1fr;
  }
}


/* Unified Directory — 1.0 RC front-end consistency pass */
.ud-directory,
.unifieddirectory-site { box-sizing: border-box; }
.ud-directory *,
.unifieddirectory-site * { box-sizing: border-box; }
.ud-listing-card,
.ud-card { min-height: 100%; }
.ud-listing-card img,
.ud-card img { max-width: 100%; height: auto; }
.ud-listing-card a,
.ud-card a { overflow-wrap: anywhere; }

/* Unified Directory 1.0.1 — Unified Commerce bridge presentation */
.ud-commerce-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .55rem;
}
.ud-commerce-badges span {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(15, 23, 42, .16);
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  padding: .25rem .55rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .02em;
}
.ud-commerce-badges-small span { font-size: .72rem; padding: .18rem .45rem; }
.ud-listing-sponsored,
.ud-listing-featured {
  border-color: rgba(15, 23, 42, .22) !important;
  box-shadow: 0 14px 36px rgba(15, 23, 42, .10) !important;
}
.ud-listing-sponsored::before,
.ud-listing-featured::before {
  content: "";
  display: block;
  height: 3px;
  margin: -18px -18px 14px;
  background: rgba(15, 23, 42, .22);
}
.ud-commerce-upgrades {
  margin-top: 2rem;
  border: 1px solid rgba(15, 23, 42, .12);
  border-radius: 18px;
  background: rgba(255,255,255,.9);
  padding: 1.25rem;
}
.ud-commerce-upgrade-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: .8rem;
  margin-top: 1rem;
}
.ud-commerce-upgrade {
  display: block;
  border: 1px solid rgba(15, 23, 42, .14);
  border-radius: 14px;
  background: #fff;
  padding: .9rem 1rem;
  text-decoration: none;
  color: inherit;
  transition: transform .16s ease, box-shadow .16s ease;
}
.ud-commerce-upgrade:hover,
.ud-commerce-upgrade:focus {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(15, 23, 42, .12);
  text-decoration: none;
}
.ud-commerce-upgrade strong,
.ud-commerce-upgrade span {
  display: block;
}
.ud-commerce-upgrade span {
  margin-top: .25rem;
  font-size: .88rem;
  opacity: .78;
}

/* Unified Directory 1.1.0 — Shared module presentation */
.ud-module {
  color: var(--ud-color-text);
}
.ud-module-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--ud-grid-gap);
}
.ud-module-card,
.ud-module-categories,
.ud-module-search {
  background: var(--ud-color-card);
  border: 1px solid var(--ud-color-border);
  border-radius: var(--ud-radius-card);
  box-shadow: var(--ud-shadow-card);
}
.ud-module-card {
  padding: 16px;
}
.ud-module-card h4 {
  margin: 0 0 8px;
  color: var(--ud-color-primary-dark);
}
.ud-module-card h4 a {
  color: inherit;
  text-decoration: none;
}
.ud-module-card h4 a:hover,
.ud-module-card h4 a:focus {
  text-decoration: underline;
}
.ud-module-card p {
  margin: 0 0 10px;
  color: var(--ud-color-text);
  line-height: 1.55;
}
.ud-module-card small,
.ud-module-empty {
  color: var(--ud-color-muted);
}
.ud-module-categories {
  padding: 16px;
}
.ud-module-categories ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.ud-module-categories a {
  color: var(--ud-color-primary-dark);
  font-weight: 800;
  text-decoration: none;
}
.ud-module-search {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 14px;
}
.ud-module-search input[type="search"] {
  flex: 1 1 220px;
  min-height: 42px;
  border: 1px solid var(--ud-color-border);
  border-radius: var(--ud-radius-control);
  padding: 8px 12px;
}
.ud-module-search button {
  border: 1px solid var(--ud-color-primary);
  border-radius: 999px;
  background: var(--ud-color-primary);
  color: #fff;
  font-weight: 800;
  padding: 8px 14px;
}
.ud-form{background:var(--ud-color-surface,#fff);border:1px solid var(--ud-color-border,#d8d2c8);border-radius:var(--ud-radius-card,16px);box-shadow:var(--ud-shadow-card,0 12px 28px rgba(31,41,51,.08));padding:22px}.ud-form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:16px}.ud-form label{display:grid;gap:6px;font-weight:700}.ud-form input,.ud-form select,.ud-form textarea{width:100%;border:1px solid var(--ud-color-border,#d8d2c8);border-radius:10px;padding:10px 12px}.ud-form-wide{grid-column:1/-1}.ud-button,.ud-secondary-action a{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:10px 16px;font-weight:800;text-decoration:none}.ud-button{background:var(--ud-color-primary,#7c4a2d);color:#fff;border:0}.ud-secondary-action a{background:transparent;color:var(--ud-color-primary,#7c4a2d);border:1px solid var(--ud-color-border,#d8d2c8)}@media(max-width:760px){.ud-form-grid{grid-template-columns:1fr}}

/* =========================================================
   Unified Directory 1.4.0 — Commercial Value Layer
   ========================================================= */
.ud-value-layer .ud-code,
.ud-site .ud-code {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  padding: 12px 14px;
  border: 1px solid var(--ud-border, #d8d2c8);
  border-radius: 12px;
  background: #fbfaf8;
  white-space: pre-wrap;
}
.ud-site-search input[type="number"],
.ud-site-search input[type="text"] {
  min-height: 42px;
  padding: 8px 12px;
  border: 1px solid var(--ud-color-border, #d8d2c8);
  border-radius: var(--ud-radius-input, 10px);
}
.ud-theme-dark-sci-fi {
  --ud-color-bg: #0f172a;
  --ud-color-surface: #111827;
  --ud-color-text: #e2e8f0;
  --ud-color-muted: #94a3b8;
  --ud-color-primary: #38bdf8;
  --ud-color-border: #334155;
}
.ud-theme-warm-creative {
  --ud-color-surface: #fff7ed;
  --ud-color-primary: #7c4a2d;
}

/* Unified Directory 1.5.0 — Theme runtime and tracking hooks */
.ud[data-ud-theme] {
  background: var(--ud-color-bg, transparent);
}
.ud-theme-dark-sci-fi {
  --ud-site-bg: var(--ud-color-bg, #0f172a);
  --ud-site-card: #111827;
  --ud-site-border: #334155;
  --ud-site-text: #e2e8f0;
  --ud-site-muted: #94a3b8;
  --ud-site-accent: var(--ud-color-primary, #38bdf8);
  --ud-site-accent-dark: var(--ud-color-primary, #38bdf8);
}
.ud-theme-dark-sci-fi .ud-listing-card,
.ud-theme-dark-sci-fi .ud-category-card,
.ud-theme-dark-sci-fi .ud-site-hero {
  background: #111827;
  color: var(--ud-site-text);
}
.ud-theme-warm-creative { --ud-site-bg: #fff7ed; }
.ud-theme-local-directory { --ud-site-bg: #f0fdf4; }
.ud-theme-marketplace { --ud-site-bg: #fffbeb; }
.ud-theme-minimal-resource { --ud-site-bg: #ffffff; }

/* Unified Directory 1.10.6 — front-end language/media repair */
.ud-category-card {
  overflow: hidden;
}

.ud-category-image-wrap {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: -18px -18px 14px;
  background: #f3ede4;
  border-bottom: 1px solid var(--ud-site-border);
  overflow: hidden;
}

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

.ud-discover-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.ud-discover-card {
  background: var(--ud-site-card);
  border: 1px solid var(--ud-site-border);
  border-radius: 18px;
  box-shadow: var(--ud-site-shadow);
  padding: 22px;
}

.ud-discover-card h3 {
  margin: 0 0 8px;
  color: var(--ud-site-accent-dark);
  font-size: 1.2rem;
}

.ud-discover-card p,
.ud-section-intro {
  color: var(--ud-site-muted);
  line-height: 1.65;
}

.ud-discover-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 12px;
  padding: 0.78rem 1rem;
  border-radius: 999px;
  background: var(--ud-site-accent);
  color: #ffffff;
  font-weight: 700;
  text-decoration: none;
}

.ud-discover-action:hover,
.ud-discover-action:focus {
  background: var(--ud-site-accent-dark);
  color: #ffffff;
  text-decoration: none;
}

@media (max-width: 780px) {
  .ud-discover-grid {
    grid-template-columns: 1fr;
  }
}

