/**
 * Edzen Elementor — Widget styles.
 *
 * Loaded ONLY on pages that contain at least one Edzen Elementor widget.
 * Never enqueued globally. Declared as a widget dependency via
 * get_style_depends() so Elementor handles conditional loading.
 *
 * CSS conventions:
 * - All classes prefixed .edzen-el- (never .edzen- alone to avoid Theme collision).
 * - Logical properties (margin-inline, padding-block, etc.) for RTL safety.
 * - CSS custom properties from TokenResolver for theme-token inheritance.
 * - No !important.
 * - No broad global selectors.
 * - No Elementor core overrides.
 * - Scoped to .edzen-el wrapper context.
 */

@layer edzen-elementor {

 /* ----------------------------------------------------------------
  * Wrapper
  * ---------------------------------------------------------------- */
 .edzen-el {
  box-sizing: border-box;
  font-family: var(--edzen-font-body, system-ui, -apple-system, sans-serif);
  color: var(--edzen-color-text, #1f2937);
 }

 /* ----------------------------------------------------------------
  * Grid layout
  * ---------------------------------------------------------------- */
 .edzen-el-grid {
  display: grid;
  gap: 2rem;
  list-style: none;
  padding: 0;
  margin: 0;
 }

 .edzen-el-grid[data-layout="grid"][data-columns="1"] {
  grid-template-columns: 1fr;
 }

 .edzen-el-grid[data-layout="list"] {
  grid-template-columns: 1fr;
 }

 /* Responsive: tablet+ activates multi-column grid */
 @media (min-width: 40rem) {
  .edzen-el-grid[data-layout="grid"]:not([data-columns="1"]) {
   grid-template-columns: repeat(2, minmax(0, 1fr));
  }
 }

 @media (min-width: 64rem) {
  .edzen-el-grid[data-layout="grid"][data-columns="3"] {
   grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .edzen-el-grid[data-layout="grid"][data-columns="4"] {
   grid-template-columns: repeat(4, minmax(0, 1fr));
  }
 }

 /* ----------------------------------------------------------------
  * List item
  * ---------------------------------------------------------------- */
 .edzen-el-item {
  min-inline-size: 0;
 }

 /* ----------------------------------------------------------------
  * Title / text
  * ---------------------------------------------------------------- */
 .edzen-el-title {
  font-family: var(--edzen-font-heading, system-ui, -apple-system, sans-serif);
  color: var(--edzen-color-heading, #111827);
  margin-block-start: 0;
  margin-block-end: var(--edzen-space-4, 1rem);
  overflow-wrap: anywhere;
  text-wrap: pretty;
 }

 .edzen-el-text {
  color: var(--edzen-color-text, #1f2937);
  margin-block: var(--edzen-space-4, 1rem);
  overflow-wrap: anywhere;
 }

 /* ----------------------------------------------------------------
  * Image
  * ---------------------------------------------------------------- */
 .edzen-el-image {
  margin-block-end: var(--edzen-space-5, 1.25rem);
 }

 .edzen-el-img {
  display: block;
  max-inline-size: 100%;
  block-size: auto;
 }

 /* ----------------------------------------------------------------
  * Metadata (definition list)
  * ---------------------------------------------------------------- */
 .edzen-el-meta {
  display: grid;
  gap: var(--edzen-space-4, 1rem);
  margin-block: var(--edzen-space-5, 1.25rem);
 }

 .edzen-el-meta div {
  min-inline-size: 0;
 }

 .edzen-el-meta dt {
  font-weight: 600;
  font-size: var(--edzen-text-small, 0.875rem);
  color: var(--edzen-color-text-muted-readable, #46534f);
 }

 .edzen-el-meta dd {
  margin: 0;
  overflow-wrap: anywhere;
  white-space: normal;
  /* Explicit direction for auto-direction values — matches Phase 4E fix */
  text-align: left;
 }

 [dir="rtl"] .edzen-el-meta dd {
  text-align: right;
 }

 @media (min-width: 40rem) {
  .edzen-el-meta {
   grid-template-columns: repeat(2, minmax(0, 1fr));
  }
 }

 /* ----------------------------------------------------------------
  * CTA / button
  * ---------------------------------------------------------------- */
 .edzen-el-btn {
  display: inline-block;
  padding-block: var(--edzen-space-3, 0.75rem);
  padding-inline: var(--edzen-space-6, 1.5rem);
  background-color: var(--edzen-color-primary, #0d4a3b);
  color: var(--edzen-color-on-primary, #ffffff);
  font-weight: var(--edzen-button-weight, 600);
  text-decoration: none;
  border-radius: var(--edzen-radius-standard, 0.375rem);
  transition: background-color 0.15s ease;
  margin-block-start: var(--edzen-space-4, 1rem);
 }

 .edzen-el-btn:hover,
 .edzen-el-btn:focus-visible {
  background-color: var(--edzen-color-primary-hover, #093729);
  color: var(--edzen-color-on-primary, #ffffff);
 }

 @media (prefers-reduced-motion: reduce) {
  .edzen-el-btn {
   transition: none;
  }
 }

 /* ----------------------------------------------------------------
  * Focus
  * ---------------------------------------------------------------- */
 :where(.edzen-el a:focus-visible, .edzen-el button:focus-visible) {
  outline: 3px solid var(--edzen-color-focus, #1e7a5a);
  outline-offset: 3px;
 }

 /* ----------------------------------------------------------------
  * Screen-reader only utility
  * ---------------------------------------------------------------- */
 .edzen-el-sr-only {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
 }

 /* ----------------------------------------------------------------
  * Empty state
  * ---------------------------------------------------------------- */
 .edzen-el-empty {
  color: var(--edzen-color-text-muted-readable, #46534f);
  font-style: italic;
  padding-block: var(--edzen-space-6, 1.5rem);
 }

 /* ----------------------------------------------------------------
  * Pagination
  * ---------------------------------------------------------------- */
 .edzen-el-pagination {
  margin-block-start: var(--edzen-space-8, 2rem);
 }

 .edzen-el-pagination .page-numbers {
  display: inline-flex;
  flex-wrap: wrap;
  gap: var(--edzen-space-3, 0.75rem);
  list-style: none;
  padding: 0;
  margin: 0;
 }

 .edzen-el-pagination a.page-numbers {
  color: var(--edzen-color-primary, #0d4a3b);
  text-decoration: underline;
 }

 .edzen-el-pagination .current {
  font-weight: 600;
 }

 /* ----------------------------------------------------------------
  * Reference widget (Phase 5A only)
  * ---------------------------------------------------------------- */
 .edzen-el--reference {
  padding: var(--edzen-space-6, 1.5rem);
  border: 2px dashed var(--edzen-color-border, #d4d9d7);
  border-radius: var(--edzen-radius-standard, 0.375rem);
 }

}
 .edzen-el .edzen-el-filters { display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;margin-block:1rem 2rem;max-inline-size:40rem; }
 .edzen-el .edzen-el-filters input,.edzen-el .edzen-el-filters select { box-sizing:border-box;max-inline-size:100%;min-inline-size:0;font:inherit;padding:.6rem;color:inherit;background:var(--edzen-color-background,#fff);border:1px solid var(--edzen-color-border,#d4d9d7); }
 .edzen-el .edzen-el-filters :focus-visible { outline:2px solid var(--edzen-color-focus,#1e7a5a);outline-offset:2px; }
 /* Optional text-link presentation for record and card actions (0.4.0). */
 .edzen-el .edzen-el-btn--link { display:inline-flex;align-items:center;gap:.45em;padding:0;min-block-size:44px;background:transparent;color:var(--edzen-color-primary,#0d4a3b);border-radius:0;font-weight:600;text-decoration:none;text-underline-offset:.3em; }
 .edzen-el .edzen-el-btn--link::after { content:"\2192";text-decoration:none;transition:transform .15s ease; }
 [dir="rtl"] .edzen-el .edzen-el-btn--link::after { content:"\2190"; }
 .edzen-el .edzen-el-btn--link:hover,.edzen-el .edzen-el-btn--link:focus-visible { background:transparent;color:var(--edzen-color-primary-hover,#093729);text-decoration:underline;text-decoration-thickness:1px; }
 .edzen-el .edzen-el-btn--link:hover::after { transform:translateX(3px); }
 [dir="rtl"] .edzen-el .edzen-el-btn--link:hover::after { transform:translateX(-3px); }
 @media (prefers-reduced-motion:reduce) { .edzen-el .edzen-el-btn--link::after { transition:none; } }
 .edzen-el .edzen-el-btn--link { margin-block-start: .5rem; }
