/* Plugin screens (Directorist, Directorist plans, PMPro, WooCommerce): brought onto the Wasl tokens.
   Loaded on every page except the home page, after the plugins' own CSS. Rules start with `body` so they win
   without !important. Prefer the plugins' CSS variables; add component rules only where variables are not enough.
   Tested against: Directorist 8.10.4, Directorist WC Pricing Plans 3.7.0, PMPro 3.8.9, WooCommerce 11.2.1. */

body {
  /* Field borders must reach 3:1 against white (WCAG non-text contrast); --line is only for decorative dividers. */
  --field: oklch(0.5 0.01 265);
  --danger: oklch(0.72 0.17 25);
  --success: oklch(0.76 0.15 150);

  /* Directorist */
  --directorist-color-body: var(--ink);
  --directorist-color-primary: var(--ink);
  --directorist-color-primary-rgb: 245, 246, 248;
  --directorist-color-dark: var(--ink);
  --directorist-color-dark-rgb: 245, 246, 248;
  --directorist-color-btn-primary-bg: var(--ink);
  --directorist-color-btn-primary-border: var(--ink);
  --directorist-color-btn-primary-rgb: 245, 246, 248;
  --directorist-color-btn-secondary-bg: var(--surface);
  --directorist-color-btn-secondary-border: var(--line);
  --directorist-color-border: var(--line);
  --directorist-color-border-gray: var(--field);
  --directorist-color-border-light: var(--line);
  --directorist-color-bg-gray: var(--surface);
  --directorist-color-bg-light-gray: var(--surface);
  --directorist-color-placeholder: oklch(0.72 0.01 250);
  --directorist-color-danger: var(--danger);
  --directorist-color-white: var(--bg);
  --directorist-color-light: var(--surface);
  --directorist-color-light-gray: var(--ink-soft);
  --directorist-color-bg-light: var(--surface);
  --directorist-color-success: var(--success);
  --directorist-border-radius-xs: 0.5rem;
  --directorist-border-radius-sm: var(--radius);
  --directorist-border-radius-md: var(--panel-radius);
  --directorist-border-radius-lg: var(--panel-radius);
  --directorist-box-shadow: none;
  --directorist-box-shadow-sm: none;

  /* PMPro */
  --pmpro--color--accent: var(--ink);
  --pmpro--color--base: var(--bg);
  --pmpro--color--base-2: var(--surface);
  --pmpro--color--border: var(--line);
  --pmpro--color--contrast: var(--ink);
  --pmpro--base--border-radius: var(--panel-radius);
  --pmpro--btn--border-radius: var(--radius);
  --pmpro--color--error-text: var(--danger);
  --pmpro--color--success-text: var(--success);
}

/* ---- Form controls: bordered boxes, 48 px high, readable labels --------------------------------------------- */
body .entry input[type="text"],
body .entry input[type="email"],
body .entry input[type="password"],
body .entry input[type="tel"],
body .entry input[type="url"],
body .entry input[type="number"],
body .entry input[type="search"],
body .entry select,
body .entry textarea,
body .entry .directorist-form-element,
body .entry .select2-container--default .select2-selection--single {
  min-height: 3rem;
  padding: 0.5rem 1rem;
  background: var(--bg);
  color: var(--ink);
  border: 1px solid var(--field);
  border-radius: var(--radius);
  font: inherit;
  font-size: 1rem;
  line-height: 1.5;
  box-shadow: none;
}
body .entry textarea { min-height: 8rem; }
body .entry .select2-container--default .select2-selection--single { display: flex; align-items: center; }
body .entry .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.5; padding: 0; color: var(--ink); }
body .entry input::placeholder, body .entry textarea::placeholder { color: var(--directorist-color-placeholder); opacity: 1; }
body .entry input:focus-visible, body .entry select:focus-visible, body .entry textarea:focus-visible,
body .entry .directorist-form-element:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-color: var(--ink); }

body .entry label, body .entry .directorist-form-label { color: var(--ink); font-size: 1rem; font-weight: 500; line-height: 1.5; }
body .entry .directorist-form-required, body .entry .required { color: var(--danger); }
body .entry input[type="checkbox"], body .entry input[type="radio"] { accent-color: var(--ink); inline-size: 1.25rem; block-size: 1.25rem; }
body .entry .directorist-checkbox__label, body .entry .directorist-radio__label { font-weight: 400; }

/* ---- Buttons: ink, 6 px, 48 px high --------------------------------------------------------------------------- */
body .entry .directorist-btn,
body .entry .directorist-authentication__form__btn,
body .entry .directorist-form-submit__btn,
body .entry .pmpro_btn,
body .entry button[type="submit"],
body .entry input[type="submit"],
body .entry .button,
body .entry .woocommerce-button {
  min-height: 3rem;
  padding: 0.5rem 1.5rem;
  border: 1px solid var(--ink);
  border-radius: var(--radius);
  background: var(--ink);
  color: var(--bg);
  font: inherit;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.2s;
}
body .entry .directorist-btn:hover,
body .entry .directorist-authentication__form__btn:hover,
body .entry .directorist-form-submit__btn:hover,
body .entry .pmpro_btn:hover,
body .entry button[type="submit"]:hover,
body .entry input[type="submit"]:hover,
body .entry .button:hover { background: oklch(0.86 0.004 250); color: var(--bg); }
body .entry .directorist-btn-secondary,
body .entry .directorist-btn-light,
body .entry .pmpro_btn-cancel { background: transparent; color: var(--ink); border-color: var(--ink); }
body .entry .directorist-btn-secondary:hover,
body .entry .directorist-btn-light:hover,
body .entry .pmpro_btn-cancel:hover { background: var(--surface); color: var(--ink); }

/* ---- Panels: flat, hairline border, no shadow ------------------------------------------------------------------ */
body .entry .directorist-card,
body .entry .directorist-content-module,
body .entry .directorist-authentication__form,
body .entry .directorist-user-profile-box,
body .entry .pmpro_card,
body .entry .directorist-search-form__box {
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--panel-radius);
  box-shadow: none;
}

/* ---- Alerts ---------------------------------------------------------------------------------------------------- */
body .entry .directorist-alert,
body .entry .woocommerce-message,
body .entry .woocommerce-info,
body .entry .woocommerce-error,
body .entry .pmpro_alert,
body .entry .pmpro_message {
  padding: 1rem 1.25rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.6;
}
body .entry .woocommerce-error, body .entry .directorist-alert-danger, body .entry .pmpro_error { border-color: var(--danger); }
body .entry .directorist-alert-success, body .entry .pmpro_success { border-color: var(--success); }
body .entry .woocommerce-message::before, body .entry .woocommerce-info::before, body .entry .woocommerce-error::before { display: none; }

/* ---- Select2 (category pickers): same look as the other fields -------------------------------------------------- */
body .entry .select2-container--default .select2-selection--multiple {
  min-height: 3rem;
  padding: 0.25rem 0.75rem;
  background: var(--bg);
  border: 1px solid var(--field);
  border-radius: var(--radius);
}
body .entry .select2-container--default.select2-container--focus .select2-selection--multiple,
body .entry .select2-container--default.select2-container--open .select2-selection--single { border-color: var(--ink); }
body .entry .directorist-select2-addons-area { inset-block: 0; }

/* ---- Form rhythm ----------------------------------------------------------------------------------------------- */
body .entry .directorist-form-group { margin-block-end: 1.25rem; }
body .entry .directorist-form-section, body .entry .directorist-content-module__contents { padding-block: 0.5rem; }
body .entry .directorist-content-module__title { font-size: 1.125rem; font-weight: 600; }

/* ---- Sign in / registration ------------------------------------------------------------------------------------ */
body .entry .directorist-authentication__form { padding: clamp(1.25rem, 4vw, 2.5rem); }
body .entry .directorist-checkbox { display: flex; align-items: center; gap: 0.75rem; min-block-size: 2.75rem; }
body .entry .atbd_privacy_policy_area a,
body .entry .atbd_term_and_condition_area a,
body .entry .directorist-checkbox__label a,
body .entry .directorist-authentication__form a:not(.directorist-btn) {
  color: var(--accent);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
body .entry .directorist-authentication__btn,
body .entry .atbdp_recovery_pass { display: inline-flex; align-items: center; min-block-size: 2.75rem; font-size: 1rem; }

/* ---- Plans (Directorist WooCommerce Pricing Plans) -------------------------------------------------------------- */
body .entry .atbd_plans_row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
  gap: 1.5rem;
  margin-inline: 0;
}
body .entry .atbd_plan_col { width: auto; max-width: none; padding: 0; float: none; }
body .entry .pricing {
  display: flex;
  flex-direction: column;
  block-size: 100%;
  margin: 0;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--panel-radius);
  box-shadow: none;
  overflow: hidden;
}
body .entry .atbd_plans_row .pricing .pricing__title { padding: 1.25rem 1.5rem; background: var(--surface); border-block-end: 1px solid var(--line); text-align: start; }
body .entry .atbd_plans_row .pricing .pricing__title h4 { margin: 0; font-size: 1.25rem; font-weight: 600; line-height: 1.4; color: var(--ink); text-align: start; }
body .entry .atbd_plans_row .pricing .pricing__price { padding: 1.5rem 1.5rem 1rem; text-align: start; }
body .entry .atbd_plans_row .pricing .pricing_value { margin: 0; font-size: 2rem; font-weight: 600; line-height: 1.15; color: var(--ink); font-variant-numeric: tabular-nums; }
body .entry .atbd_plans_row .pricing .pricing_value sup { font-size: 1.25rem; font-weight: 600; vertical-align: baseline; top: 0; }
body .entry .atbd_plans_row .pricing .pricing-part { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.5rem; }
body .entry .atbd_plans_row .pricing .pricing-part > span, body .entry .atbd_plans_row .pricing .pricing_subtitle { font-size: 1rem; color: var(--ink-soft); font-weight: 400; }
body .entry .atbd_plans_row .pricing .pricing_subtitle { margin: 0.25rem 0 0; }
body .entry .atbd_plans_row .pricing .pricing__features { flex: 1; padding: 0 1.5rem 1rem; margin: 0; }
body .entry .atbd_plans_row .pricing .pricing__features li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-block: 0.5rem;
  border-block-end: 1px solid var(--line);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--ink);
}
body .entry .atbd_plans_row .pricing .pricing__features li:last-child { border-block-end: 0; }
body .entry .directorist_green { color: var(--success); }
body .entry .directorist_red { color: var(--ink-soft); opacity: 0.7; }
body .entry .directorist-pricing__action { padding: 0 1.5rem 1.5rem; }
body .entry .directorist-pricing__action .btn,
body .entry .directorist-pricing__action--btn { display: flex; align-items: center; justify-content: center; inline-size: 100%; }

/* ---- Add-idea form: uploader and review step --------------------------------------------------------------------- */
body .entry .ezmu__drop-zone-section,
body .entry .ez-media-uploader .ezmu__drop-zone-section {
  background: var(--surface);
  border: 1px dashed var(--field);
  border-radius: var(--panel-radius);
}
body .entry .ezmu__btn { min-height: 2.75rem; border-radius: var(--radius); }

/* ---- Dashboard: tabs scroll sideways on phones instead of overflowing the page ------------------------------------ */
body .entry .directorist-tab__nav__items { display: flex; flex-wrap: nowrap; gap: 0.25rem; overflow-x: auto; scrollbar-width: thin; }
body .entry .directorist-tab__nav__item { flex: none; }
body .entry .directorist-tab__nav__link { min-block-size: 2.75rem; display: inline-flex; align-items: center; gap: 0.5rem; }

/* ---- WooCommerce: checkout and tables -------------------------------------------------------------------------------- */
body .entry table.shop_table,
body .entry .woocommerce-checkout-review-order-table { border: 1px solid var(--line); border-radius: var(--panel-radius); border-collapse: separate; border-spacing: 0; overflow: hidden; }
body .entry table.shop_table th, body .entry table.shop_table td { padding: 0.75rem 1rem; border-block-end: 1px solid var(--line); border-inline: 0; }
body .entry table.shop_table tr:last-child th, body .entry table.shop_table tr:last-child td { border-block-end: 0; }
body .entry #payment { background: var(--surface); border: 1px solid var(--line); border-radius: var(--panel-radius); }
body .entry #payment div.payment_box { background: var(--bg); color: var(--ink); border-radius: var(--radius); }
body .entry #payment div.payment_box::before { display: none; }
body .entry #place_order { float: none; inline-size: 100%; background: var(--ink); color: var(--bg); border-color: var(--ink); }
body .entry .woocommerce-checkout h3 { font-size: 1.375rem; font-weight: 600; margin-block: 1.5rem 1rem; }

/* ---- PMPro ------------------------------------------------------------------------------------------------------------ */
body .entry .pmpro_table, body .entry .pmpro_levels_table { border: 1px solid var(--line); border-radius: var(--panel-radius); border-collapse: separate; border-spacing: 0; overflow: hidden; }
body .entry .pmpro_table th, body .entry .pmpro_table td { padding: 0.75rem 1rem; border-block-end: 1px solid var(--line); }

/* ---- Plans: refinements ------------------------------------------------------------------------------------------------ */
body .entry .atbd_plans_row .pricing .pricing__title h4 { padding: 0; background: transparent; border: 0; box-shadow: none; }
body .entry .atbd_plans_row .pricing .pricing__title > * { background: transparent; border: 0; box-shadow: none; }
body .entry .atbd_plans_row .pricing .pricing_value sup { font-size: 1.5rem; color: var(--ink); }
body .entry .directorist-pricing__action--btn,
body .entry .directorist-pricing__action .btn {
  min-block-size: 3rem;
  background: var(--ink);
  border: 1px solid var(--ink);
  border-radius: var(--radius);
  color: var(--bg);
  font-weight: 500;
  text-decoration: none;
  box-shadow: none;
}
body .entry .directorist-pricing__action--btn:hover,
body .entry .directorist-pricing__action .btn:hover { background: oklch(0.86 0.004 250); color: var(--bg); }
body .entry .atbd_plans_row .pricing .pricing-part { justify-content: flex-start; }
body .entry .atbd_plans_row .pricing .pricing_value,
body .entry .atbd_plans_row .pricing .pricing_subtitle,
body .entry .atbd_plans_row .pricing .pricing-part > span { text-align: start; }
body .entry .atbd_plans_row .pricing .pricing__title h4 { padding: 0; background: transparent; }

/* The plugin's RTL stylesheet marks these two declarations !important, so they cannot be overridden any other way. */
body .entry .atbd_plans_row .pricing .pricing__title h4 { padding: 0 !important; }
body .entry .atbd_plans_row .pricing .pricing__price p.pricing_value { text-align: start !important; }

/* The plan card paints every span inside the price pale and small; the currency symbol must follow the price. */
body .entry .atbd_plans_row .pricing .wasl-omr,
body .entry .atbd_plans_row .pricing .wasl-omr__glyph { color: inherit; font-size: inherit; opacity: 1; }

/* ---- Iteration 3: details ------------------------------------------------------------------------------------------- */
/* WooCommerce country / state pickers (select2) get the same bordered box as the other fields. */
body .entry .form-row .select2-container--default .select2-selection--single {
  display: flex;
  align-items: center;
  min-height: 3rem;
  padding: 0.5rem 1rem;
  border: 1px solid var(--field);
  border-radius: var(--radius);
  background: var(--bg);
}
body .entry .form-row .select2-container--default .select2-selection--single .select2-selection__arrow { inset-block: 0; }
/* Checkbox and radio rows: the whole row is the tap target. */
body .entry .directorist-checkbox__label,
body .entry .directorist-radio__label { display: flex; align-items: center; min-block-size: 2.75rem; flex: 1; }
/* Dashboard: wide tables scroll inside their card instead of being cut off; search icon never overlaps the text. */
body .entry .directorist-card__body { overflow-x: auto; }
body .entry .directorist-user-dashboard-search input { padding-inline: 2.75rem; }

/* Plans on phones: long feature lists collapse behind a toggle (assets/js/plans.js). */
.wasl-plan-toggle { display: none; }
@media (max-width: 52rem) {
  body .entry .pricing.is-collapsed .pricing__features li:nth-child(n + 7) { display: none; }
  body .entry .wasl-plan-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    inline-size: calc(100% - 3rem);
    min-block-size: 2.75rem;
    margin: 0 1.5rem 1rem;
    border: 1px solid var(--field);
    border-radius: var(--radius);
    background: transparent;
    color: var(--ink);
    font: inherit;
    font-size: 1rem;
    cursor: pointer;
  }
  body .entry .wasl-plan-toggle:hover { background: var(--surface); }
}

/* PMPro sign-in: the "Join now" / "Lost password?" links are stand-alone, so they get a proper tap target. */
body .entry .pmpro_actions_nav a,
body .entry .pmpro_login_wrap .pmpro_actions_nav a,
body .entry #loginform + .pmpro_actions_nav a { display: inline-flex; align-items: center; min-block-size: 2.75rem; }

/* ---- Iteration 4: tap targets found by the quality sweep (all must be >= 44 px) ------------------------------------ */
/* The plugin fixes category pickers at 40 px with a more specific rule; match its chain. */
body .entry .directorist-content-active .select2.select2-container.select2-container--default .select2-selection,
body .entry .directorist-form-group .select2-container--default .select2-selection { min-height: 3rem; }
/* Listing view toggles, sidebar toggle and the dashboard menu button. */
body .entry .directorist-viewas__item,
body .entry .directorist-user-dashboard__toggle__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-inline-size: 2.75rem;
  min-block-size: 2.75rem;
}
body .entry .directorist-archive-sidebar-toggle { min-block-size: 2.75rem; }
/* PMPro account cards: "Edit profile | Change password | Log out" are stand-alone links. */
body .entry .pmpro_card_actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.75rem; }
body .entry .pmpro_card_actions a { display: inline-flex; align-items: center; min-block-size: 2.75rem; }

/* The plugin's 40 px rule starts from a body-level `.directorist-content-active`; match it from either side of .entry. */
.directorist-content-active .entry .select2.select2-container.select2-container--default .select2-selection,
body .entry .directorist-content-active .select2.select2-container.select2-container--default .select2-selection { min-height: 3rem; }
body .entry .directorist-search-modal__contents__btn { min-block-size: 2.75rem; min-inline-size: 2.75rem; }

/* ---- Contact page: the FormGent form (its own variables and inline styles are Arabic-site defaults) ----------- */
/* The plugin sets form padding with !important from per-form variables, so the variables are overridden instead. */
body .contact__form .formgent-form {
  --formgent-form-padding-desktop: 0;
  --formgent-form-padding-tablet: 0;
  --formgent-form-padding-mobile: 0;
  --formgent-field-vertical-spacing-desktop: 1.25rem;
  --formgent-field-vertical-spacing-tablet: 1.25rem;
  --formgent-field-vertical-spacing-mobile: 1.25rem;
}
body .contact__form .formgent-form .formgent-field-list { padding: 0; }
body .contact__form .formgent-form h2 { margin: 0 0 1.5rem; font-size: var(--step-2); line-height: 1.35; }
body .contact__form .formgent-form :is(input, textarea) {
  inline-size: 100%;
  block-size: 3.25rem;
  padding: 0.75rem 1rem;
  border: 1px solid var(--field);
  border-radius: var(--radius);
  background: var(--bg);
  color: var(--ink);
  font: inherit;
  font-size: 1rem;
}
body .contact__form .formgent-form textarea { block-size: auto; min-block-size: 9rem; }
body .contact__form .formgent-form :is(input, textarea)::placeholder { color: oklch(0.72 0.01 250); opacity: 1; }
body .contact__form .formgent-form :is(input, textarea):focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
/* The button colour is an inline CSS variable set per form (red here), so the colours are set on the button itself. */
body .contact__form .formgent-form .formgent-btn {
  min-block-size: 3rem;
  padding-inline: 1.75rem;
  border: 1px solid var(--ink);
  border-radius: var(--radius);
  background: var(--ink);
  color: var(--bg);
  font: inherit;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
}
body .contact__form .formgent-form .formgent-btn:hover { background: oklch(0.86 0.004 250); }

/* ---- My account (WooCommerce): the menu as tabs that wrap on phones; the add-idea button above the dashboard ---------- */
body .woocommerce-MyAccount-navigation ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1.5rem;
  padding: 0;
  list-style: none;
}
body .woocommerce-MyAccount-navigation a {
  display: inline-flex;
  align-items: center;
  min-block-size: 2.75rem;
  padding-inline: 1rem;
  border: 1px solid var(--field);
  border-radius: var(--radius);
  color: var(--ink);
  text-decoration: none;
}
body .woocommerce-MyAccount-navigation a:hover { border-color: var(--ink); }
body .woocommerce-MyAccount-navigation .is-active a { border-color: var(--ink); background: var(--ink); color: var(--bg); }
body .woocommerce-MyAccount-navigation a:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
body .dash-cta { margin: 0 0 1.5rem; }
body .dash-note { margin: 0 0 1.25rem; padding: 1rem 1.25rem; border: 1px solid var(--field); border-radius: var(--panel-radius); background: var(--surface); line-height: 1.6; }
body .dash-note a { margin-inline-start: 0.5rem; }

/* Ideas without a photo (most of them) show Directorist's stock grey picture: keep a slim strip for the badges and the favourite heart. */
body .directorist-listing-single__thumb:has(img[src*="/assets/images/grid.jpg"], img[src*="/assets/images/list.jpg"]) {
  max-block-size: 3.25rem;
  overflow: hidden;
  background: var(--surface);
}
body .directorist-listing-single__thumb:has(img[src*="/assets/images/grid.jpg"], img[src*="/assets/images/list.jpg"]) img { opacity: 0; }

/* Idea cards, the search categories and the dashboard list only exist once there are ideas. Every tap target at least 44 px. */
body .directorist-mark-as-favorite__btn { min-inline-size: 2.75rem; min-block-size: 2.75rem; }
body .directorist-listing-single a { min-block-size: 2.75rem; }
body .directorist-listing-single .directorist-listing-title a { display: inline-flex; align-items: center; }
body .directorist-listing-category-top a { display: inline-flex; align-items: center; min-block-size: 2.75rem; padding-inline: 0.5rem; }
body .directorist-actions :is(.directorist-link-btn, .directorist-btn-more) { display: inline-flex; align-items: center; min-block-size: 2.75rem; }

/* ---- Ideas list (All ideas, search results, categories) ----------------------------------------------------------
   An 8-point scale (0.5rem steps), 44 px touch targets, one calm search field, one toolbar line, cards that answer an
   investor's questions. Press feedback is instant; hover only where it helps, never against the visitor's settings. */

/* Search: a single field with a magnifier. The category lives in Filter. */
body .entry .directorist-archive-contents .directorist-search-form__box {
  padding: 0;
  border: 0;
  background: transparent;
}
body .entry .directorist-archive-contents .directorist-search-form-top { gap: 0.5rem; }
body .entry .directorist-archive-contents .directorist-search-form-top > .directorist-search-field:not(.directorist-search-query) { display: none; }
body .entry .directorist-archive-contents .directorist-search-query { position: relative; flex: 1 1 100%; margin: 0; padding: 0; border: 0; }
body .entry .directorist-archive-contents .directorist-search-query .directorist-search-field__label {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}
body .entry .directorist-archive-contents .directorist-search-query .directorist-search-field__input {
  inline-size: 100%;
  min-block-size: 3.25rem;
  padding-block: 0.5rem;
  padding-inline: 3rem 1rem;
  border: 1px solid var(--line);
  border-radius: 0.875rem;
  background: var(--bg);
  color: var(--ink);
  font-size: 1rem;
  box-shadow: none;
}
body .entry .directorist-archive-contents .directorist-search-query .directorist-search-field__input::placeholder { color: var(--ink-soft); opacity: 1; }
body .entry .directorist-archive-contents .directorist-search-query .directorist-search-field__input:focus { border-color: var(--ink); outline: 2px solid var(--accent); outline-offset: 2px; }
body .entry .directorist-archive-contents .directorist-search-query::before {
  content: "";
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 1rem;
  inline-size: 1.25rem;
  block-size: 1.25rem;
  transform: translateY(-50%);
  background: var(--ink-soft);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") center / contain no-repeat;
  pointer-events: none;
}
body .entry .directorist-archive-contents .directorist-search-query .directorist-search-field__btn--clear { inset-inline-end: 0.5rem; inset-inline-start: auto; }

/* Toolbar: the count on one side, Filter and Sort on the other. No map or list switch. */
body .entry .directorist-archive-contents .directorist-listings-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-block: 1.5rem 1rem;
}
body .entry .directorist-archive-contents .directorist-header-found-title { color: var(--ink-soft); font-size: 0.9375rem; }
body .entry .directorist-archive-contents .directorist-header-found-title span { color: var(--ink); font-weight: 600; }
body .entry .directorist-archive-contents .directorist-listings-header__right { margin-inline-start: auto; }
body .entry .directorist-archive-contents .directorist-viewas { display: flex; align-items: center; gap: 0.5rem; }
body .entry .directorist-archive-contents .directorist-viewas__item { display: none; }
body .entry .directorist-archive-contents .directorist-archive-sidebar-toggle,
body .entry .directorist-archive-contents .directorist-sortby-dropdown .directorist-dropdown__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-block-size: 2.75rem;
  padding-inline: 1rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--bg);
  color: var(--ink);
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1;
  box-shadow: none;
  transition: background-color 0.15s, transform 0.1s;
}
body .entry .directorist-archive-contents .directorist-archive-sidebar-toggle:hover,
body .entry .directorist-archive-contents .directorist-sortby-dropdown .directorist-dropdown__toggle:hover { background: var(--surface); color: var(--ink); }
body .entry .directorist-archive-contents .directorist-archive-sidebar-toggle:active,
body .entry .directorist-archive-contents .directorist-sortby-dropdown .directorist-dropdown__toggle:active { transform: scale(0.97); }
body .entry .directorist-archive-contents .directorist-archive-sidebar-toggle:focus-visible,
body .entry .directorist-archive-contents .directorist-sortby-dropdown .directorist-dropdown__toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Grid: as many 19 rem columns as fit, one on a phone. */
body .entry .directorist-archive-contents .directorist-archive-items .directorist-row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr));
  gap: 1rem;
  margin: 0;
}
body .entry .directorist-archive-contents .directorist-archive-items .directorist-row > [class*="directorist-col"] { inline-size: auto; max-inline-size: none; flex: none; padding: 0; margin: 0; }

/* Card */
body .entry .directorist-archive-contents .directorist-listing-single {
  position: relative;
  display: flex;
  flex-direction: column;
  block-size: 100%;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--bg);
  box-shadow: none;
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out, border-color 0.2s;
}
@media (hover: hover) {
  body .entry .directorist-archive-contents .directorist-listing-single:hover { transform: translateY(-2px); border-color: var(--ink-soft); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); }
}
body .entry .directorist-archive-contents .directorist-listing-single:active { transform: scale(0.985); transition-duration: 0.08s; }
/* The strip that holds the badges and the heart: white, slim. */
body .entry .directorist-archive-contents .directorist-listing-single__thumb:has(img[src*="/assets/images/grid.jpg"], img[src*="/assets/images/list.jpg"]) {
  max-block-size: 3.5rem;
  background: var(--bg);
}
body .entry .directorist-archive-contents .directorist-thumb-top-left,
body .entry .directorist-archive-contents .directorist-thumb-top-right { inset-block-start: 0.75rem; }
body .entry .directorist-archive-contents .directorist-thumb-top-left { inset-inline-start: 1.25rem; display: flex; gap: 0.5rem; }
body .entry .directorist-archive-contents .directorist-thumb-top-right { inset-inline-end: 0.75rem; z-index: 2; }
body .entry .directorist-archive-contents .directorist-badge {
  min-block-size: 1.5rem;
  padding: 0 0.5rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--surface) !important;
  color: var(--ink) !important;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
}
body .entry .directorist-archive-contents .directorist-badge.directorist-info-item { font-size: 0.75rem !important; line-height: 1; }
body .entry .directorist-archive-contents .directorist-badge-new { background: var(--ink) !important; border-color: var(--ink); color: var(--bg) !important; }
body .entry .directorist-archive-contents .directorist-badge .directorist-icon-mask { display: none; }
body .entry .directorist-archive-contents .directorist-mark-as-favorite__btn { border: 0; border-radius: 999px; background: var(--surface); }
/* Body */
body .entry .directorist-archive-contents .directorist-listing-single__content { display: flex; flex: 1; flex-direction: column; }
body .entry .directorist-archive-contents .directorist-listing-single__info { flex: 1; padding: 0.5rem 1.25rem 1rem; }
body .entry .directorist-archive-contents .directorist-listing-title { margin: 0; font-size: 1.125rem; font-weight: 600; line-height: 1.45; }
body .entry .directorist-archive-contents .directorist-listing-title a { color: var(--ink); text-decoration: none; }
/* The whole card opens the idea; the heart and the category stay separate taps. */
body .entry .directorist-archive-contents .directorist-listing-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
body .entry .directorist-archive-contents .directorist-listing-category a { position: relative; z-index: 2; }
body .entry .directorist-archive-contents .directorist-listing-single__info__list { margin: 0.5rem 0 0; padding: 0; color: var(--ink-soft); font-size: 0.9375rem; }
.idea-facts { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.idea-facts li { padding: 0.25rem 0.75rem; border-radius: 999px; background: var(--surface); color: var(--ink); font-size: 0.9375rem; font-weight: 500; line-height: 1.4; }
.idea-funding { display: flex; flex-direction: column; gap: 0.125rem; margin: 1rem 0 0; }
.idea-funding span { color: var(--ink-soft); font-size: 0.9375rem; }
.idea-funding strong { font-size: 1.25rem; font-weight: 700; line-height: 1.3; font-variant-numeric: tabular-nums; }
body .entry .directorist-archive-contents .directorist-listing-single__meta { padding: 0.75rem 1.25rem; border-block-start: 1px solid var(--line); background: transparent; }
body .entry .directorist-archive-contents .directorist-listing-category a { color: var(--ink-soft); font-size: 0.9375rem; text-decoration: none; }

@media (prefers-reduced-motion: reduce) {
  body .entry .directorist-archive-contents .directorist-listing-single,
  body .entry .directorist-archive-contents .directorist-archive-sidebar-toggle,
  body .entry .directorist-archive-contents .directorist-sortby-dropdown .directorist-dropdown__toggle { transition: none; transform: none; }
}
@media (prefers-contrast: more) {
  body .entry .directorist-archive-contents .directorist-listing-single,
  body .entry .directorist-archive-contents .directorist-search-query .directorist-search-field__input { border-color: var(--contrast-line); }
}

/* Ideas list, second pass: the magnifier above the field, white card strip, plain badges, one toolbar line. */
body .entry .directorist-archive-contents .directorist-search-query::before { z-index: 1; }
body .entry .directorist-archive-contents .directorist-thumnail-card,
body .entry .directorist-archive-contents .directorist-listing-single__thumb { background: var(--bg); }
body .entry .directorist-archive-contents .directorist-badge,
body .entry .directorist-archive-contents .directorist-badge-popular { border-color: var(--line) !important; }
body .entry .directorist-archive-contents .directorist-badge-new { border-color: var(--ink) !important; }
body .entry .directorist-archive-contents .directorist-badge i,
body .entry .directorist-archive-contents .directorist-badge .directorist-badge-icon-mask { display: none !important; }
body .entry .directorist-archive-contents .directorist-listings-header { flex-wrap: nowrap; }
body .entry .directorist-archive-contents .directorist-listings-header__left { flex: 1 1 auto; min-inline-size: 0; }
body .entry .directorist-archive-contents .directorist-listings-header__right { display: flex; flex: none; align-items: center; gap: 0.5rem; margin-inline-start: auto; }
body .entry .directorist-archive-contents .directorist-viewas { inline-size: auto; flex: none; margin: 0; }
body .entry .directorist-archive-contents .directorist-sortby-dropdown { inline-size: auto; flex: none; margin: 0; }
body .entry .directorist-archive-contents .directorist-archive-sidebar-toggle { font-size: 0.9375rem !important; }
body .entry .directorist-archive-contents .directorist-sortby-dropdown .directorist-dropdown__toggle { white-space: nowrap; }

/* Ideas list, third pass: keep Filter and Sort on one row on phones, readable Filter label, a proper heart button. */
body .entry .directorist-archive-contents .directorist-listings-header__right { flex-direction: row !important; flex-wrap: nowrap !important; inline-size: auto; }
body .entry .directorist-archive-contents .directorist-viewas { flex-direction: row; }
body .entry .directorist-archive-contents .directorist-archive-sidebar-toggle,
body .entry .directorist-archive-contents .directorist-archive-sidebar-toggle * { font-size: 0.9375rem !important; }
body .entry .directorist-archive-contents .directorist-thumb-top-right .directorist-mark-as-favorite__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  inline-size: 2.75rem;
  block-size: 2.75rem;
  background: var(--surface);
}

body .entry .directorist-archive-contents .directorist-archive-sidebar-toggle { font-family: inherit; font-weight: 500; }

/* ---- Shared rules, every page: taller fields, press feedback on every button, small links get a 44 px target ---- */
body .entry input[type="text"], body .entry input[type="email"], body .entry input[type="password"], body .entry input[type="tel"],
body .entry input[type="url"], body .entry input[type="number"], body .entry input[type="search"], body .entry select,
body .entry .directorist-form-element { min-height: 3.25rem; }
body .entry input[type="submit"]:active, body .entry .button:active, body .entry .woocommerce-button:active,
body .entry .directorist-btn:active, body .entry .directorist-authentication__form__btn:active,
body .entry .directorist-form-submit__btn:active, body .entry .directorist-pricing__action--btn:active,
body .entry .wasl-plan-toggle:active { transform: scale(0.97); transition-duration: 0.08s; }
body .entry .directorist-authentication a { display: inline-block; padding-block: 0.75rem; }
@media (prefers-reduced-motion: reduce) {
  body .entry input[type="submit"]:active, body .entry .button:active, body .entry .woocommerce-button:active,
  body .entry .directorist-btn:active, body .entry .directorist-authentication__form__btn:active,
  body .entry .directorist-form-submit__btn:active, body .entry .directorist-pricing__action--btn:active { transform: none; }
}

/* ---- Investor account: plan, saved ideas ---- */
body .inv-acct { display: grid; gap: 1.5rem; max-inline-size: 40rem; }
body .inv-plan { padding: 1.5rem; border: 1px solid var(--field); border-radius: var(--panel-radius); background: var(--surface); display: grid; gap: 0.75rem; justify-items: start; }
body .inv-plan--on { border-color: var(--ink); }
body .inv-plan p { margin: 0; line-height: 1.6; }
body .inv-plan__label { font-size: 0.9375rem; color: var(--ink-soft); }
body .inv-plan__name { margin: 0; font-size: 1.5rem; line-height: 1.2; }
body .inv-plan__state { font-weight: 600; }
body .inv-plan .btn { margin-block-start: 0.25rem; }
body .inv-saved h2 { margin: 0 0 0.75rem; font-size: 1.25rem; }
body .inv-saved__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
body .inv-idea { display: grid; gap: 0.25rem; padding: 1rem 1.25rem; min-block-size: 3.5rem; border: 1px solid var(--field); border-radius: var(--radius); background: var(--bg); color: var(--ink); text-decoration: none; transition: transform 0.1s; }
body .inv-idea:active { transform: scale(0.98); }
body .inv-idea__title { font-weight: 600; line-height: 1.4; }
body .inv-idea__funding { font-size: 0.9375rem; color: var(--ink-soft); }
body .inv-saved__empty { margin: 0; padding: 1.25rem; border: 1px dashed var(--field); border-radius: var(--radius); color: var(--ink-soft); line-height: 1.6; }
body .inv-links { margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; }
body .inv-links a { display: inline-block; padding-block: 0.75rem; }
@media (hover: hover) { body .inv-idea:hover { border-color: var(--ink); } }
@media (prefers-reduced-motion: reduce) { body .inv-idea, body .inv-idea:active { transition: none; transform: none; } }
@media (prefers-contrast: more) { body .inv-plan, body .inv-idea { border-color: var(--contrast-line); } }

/* ---- Audit fixes: plan card, "Recommended" badge, checkout country field, contact fields ---- */
/* Plan card: one alignment, the button as wide as the list (the plugin pads the list and the button wrapper by 24px each), 44 px rows. */
body .entry .atbd_plans_row .pricing .pricing__title h4 { justify-content: flex-start; }
body .entry .atbd_plans_row .pricing .directorist-pricing__action { padding-inline: 0; }
body .entry .atbd_plans_row .pricing .pricing__features li { min-block-size: 2.75rem; margin-block-end: 0; padding-block: 0.5rem; box-sizing: border-box; }
/* White on orange was 2.2:1; ink on the same orange is about 8.5:1. */
body .entry .pricing.atbd_pricing_special .atbd_popular_badge { color: var(--on-mark); }
/* Checkout country: Directorist's select2 rule is more specific than ours and left only an underline. */
body .entry .form-row .select2.select2-container.select2-container--default .select2-selection--single {
  min-block-size: 3.25rem;
  border: 1px solid var(--field);
  border-radius: var(--radius);
  background: var(--bg);
}
/* Contact form (Formgent) fields match the 52 px fields everywhere else. */
/* Checkout text fields: same corners and border colour as the country box and the sign-in fields. */
body .entry .woocommerce-checkout .form-row input.input-text,
body .entry .woocommerce-checkout .form-row textarea.input-text { border: 1px solid var(--field); border-radius: var(--radius); }
/* Type scale: plugin form labels and card meta at 15 px, the funding amount at 22 px. */
body .entry .directorist-authentication label,
body .entry .directorist-authentication .directorist-form-required,
body .entry .directorist-authentication__form__toggle-area,
body .entry .directorist-search-field__label,
body .entry .directorist-archive-contents .select2-selection__placeholder,
body .entry .directorist-archive-contents .directorist-listing-single__meta span { font-size: 0.9375rem; }
body .entry .directorist-archive-contents .idea-funding strong { font-size: 1.25rem; }

/* ---- Audit follow-up: sign-in and sign-up, motion ---- */
/* The sign-up / sign-in switch is a real button (it was plain text); the lost-password link loses its dashed rule. */
body .entry .directorist-authentication__form__toggle-area { display: grid; gap: 0.75rem; justify-items: stretch; }
body .entry .directorist-authentication__btn--signup,
body .entry .directorist-authentication__btn--signin { justify-content: center; min-block-size: 3.25rem; padding-inline: 1.5rem; border: 1px solid var(--ink); border-radius: var(--radius); background: transparent; color: var(--ink); font-weight: 600; transition: transform 0.1s; }
body .entry .directorist-authentication__btn--signup:active,
body .entry .directorist-authentication__btn--signin:active { transform: scale(0.97); }
body .entry .atbdp_recovery_pass { display: inline-block; border-block-end: 0; text-decoration: underline; text-underline-offset: 0.25em; }
/* Name the properties that change (the plugins use "all"), and do not animate layout. */
body .contact__form .formgent-form { transition: opacity 0.2s; }
body .entry .directorist-search-field__label { transition: opacity 0.2s; }
@media (prefers-reduced-motion: reduce) {
  body .entry .directorist-authentication__btn--signup:active,
  body .entry .directorist-authentication__btn--signin:active { transform: none; }
}

/* ---- Dark skin: plugin screens that still carried light colours ---- */
body .entry .directorist-authentication,
body .entry .directorist-authentication label,
body .entry .directorist-authentication .directorist-form-required { color: var(--ink); }
body .entry .directorist-authentication p,
body .entry .directorist-authentication__form__toggle-area { color: var(--ink-soft); }
body .entry .woocommerce-checkout .form-row input.input-text,
body .entry .woocommerce-checkout .form-row textarea.input-text { background: var(--bg); color: var(--ink); }
body .contact__form .formgent-form { background: transparent; }
body .wp-block-heading { color: var(--ink); }

body .contact__form form { background: transparent; box-shadow: none; }
body .entry .atbd_plans_row .pricing .pricing__price { border-block-end-color: var(--line); }
body .contact__form form, body .contact__form .formgent-notices { background: transparent !important; }
body .entry .listing-with-sidebar__sidebar { background: var(--bg); border-inline-start: 1px solid var(--line); }


/* ---- Consistency pass: one card look, one button height, one outline weight, glass plan cards ---- */
/* Cards and panels everywhere: faint fill, hairline, bright top edge, the same radius. */
body .entry .directorist-archive-contents .directorist-listing-single,
body .entry .atbdp_login_form_shortcode,
body .entry .directory_register_form_wrap,
body .entry .directorist-authentication__form,
body .inv-plan,
body .inv-idea,
body .dash-note,
body .entry #payment {
  border: 1px solid var(--card-line);
  border-radius: var(--panel-radius);
  background: var(--card-fill);
  box-shadow: var(--card-edge);
}
body .inv-plan--on { border-color: oklch(0.75 0.15 215 / 0.6); }
@media (hover: hover) { body .inv-idea:hover { border-color: var(--ghost-line); } }
/* Outlined buttons and switches use the same soft outline as .btn--ghost. */
body .entry .directorist-authentication__btn--signup,
body .entry .directorist-authentication__btn--signin,
body .entry .pmpro_btn-cancel,
body .entry .wasl-plan-toggle { border-color: var(--ghost-line); }
/* Every button is 52 px tall. */
body .entry :is(.button, .directorist-btn, .pmpro_btn, .formgent-btn, .directorist-authentication__form__btn, .woocommerce-button) { min-height: 3.25rem; }
body .contact__form .formgent-form .formgent-btn { min-height: 3.25rem; }
/* Same title on every page. */
body .entry .entry__title { font-size: var(--step-3); line-height: 1.3; }

/* Select your plan: glass cards over a soft glow, like the home page. Each column has its logo colour; the popular plan gets the gradient edge. */
body .entry .atbd_plans_row { position: relative; isolation: isolate; }
body .entry .atbd_plans_row::before {
  content: "";
  position: absolute;
  inset: -2rem -1rem;
  z-index: -1;
  background:
    radial-gradient(38% 45% at 15% 20%, oklch(0.55 0.27 315 / 0.1), transparent 70%),
    radial-gradient(40% 45% at 85% 75%, oklch(0.75 0.15 215 / 0.09), transparent 70%),
    radial-gradient(28% 35% at 50% 100%, oklch(0.6 0.13 55 / 0.06), transparent 70%);
  filter: blur(24px);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000 20%, #000 75%, transparent);
  mask-image: linear-gradient(to bottom, transparent, #000 20%, #000 75%, transparent);
  pointer-events: none;
}
body .entry .atbd_plans_row .pricing {
  --tone: oklch(0.85 0.01 250);
  position: relative;
  background: var(--card-fill);
  border: 1px solid var(--card-line);
  box-shadow: var(--card-edge), 0 24px 48px -28px oklch(0 0 0 / 0.7);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  backdrop-filter: blur(24px) saturate(160%);
  overflow: visible;
  transition: translate 0.2s cubic-bezier(0.2, 0, 0, 1), border-color 0.2s;
}
body .entry .atbd_plans_row > .atbd_plan_col:nth-child(2) .pricing { --tone: var(--mark-cyan); }
body .entry .atbd_plans_row > .atbd_plan_col:nth-child(3) .pricing { --tone: var(--mark-purple); }
body .entry .atbd_plans_row > .atbd_plan_col:nth-child(4) .pricing { --tone: var(--mark-orange); }
body .entry .atbd_plans_row .pricing .pricing__title { background: transparent; border-block-end: 0; padding-block-end: 0; border-radius: var(--panel-radius) var(--panel-radius) 0 0; }
body .entry .atbd_plans_row .pricing .pricing__title h4 { display: flex; align-items: center; gap: 0.625rem; justify-content: flex-start; }
body .entry .atbd_plans_row .pricing .pricing__title h4::before {
  content: "";
  flex: none;
  inline-size: 0.5rem;
  block-size: 0.5rem;
  border-radius: 50%;
  background: var(--tone);
}
body .entry .atbd_plans_row .pricing.atbd_pricing_special { border-color: oklch(0.75 0.15 215 / 0.7); background: oklch(1 0 0 / 0.09); }
@media (hover: hover) {
  body .entry .atbd_plans_row .pricing:hover { translate: 0 -4px; border-color: oklch(1 0 0 / 0.28); }
  body .entry .atbd_plans_row .pricing.atbd_pricing_special:hover { border-color: oklch(0.75 0.15 215 / 0.9); }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  body .entry .atbd_plans_row .pricing { background: oklch(0.21 0.01 265); }
}
@media (prefers-reduced-transparency: reduce) {
  body .entry .atbd_plans_row::before { display: none; }
  body .entry .atbd_plans_row .pricing { background: var(--surface); -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@media (prefers-contrast: more) {
  body .entry .atbd_plans_row .pricing { background: var(--surface); border-color: var(--contrast-line); -webkit-backdrop-filter: none; backdrop-filter: none; }
  .btn--ghost, body .entry .directorist-authentication__btn--signup, body .entry .directorist-authentication__btn--signin { border-color: var(--contrast-line); }
}
@media (prefers-reduced-motion: reduce) {
  body .entry .atbd_plans_row .pricing { transition: none; }
  body .entry .atbd_plans_row .pricing:hover { translate: none; }
}
/* The "Recommended" label is a small pill inside the popular plan, not a bar above it. */
body .entry .atbd_plans_row .pricing .atbd_popular_badge {
  position: absolute;
  inset: 1.25rem 1.25rem auto auto;
  inline-size: auto;
  block-size: auto;
  margin: 0;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  background: var(--mark-cyan);
  color: var(--on-mark);
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.4;
  transform: none;
}
[dir="rtl"] body .entry .atbd_plans_row .pricing .atbd_popular_badge, body.rtl .entry .atbd_plans_row .pricing .atbd_popular_badge { inset: 1.25rem auto auto 1.25rem; }
body .entry .directorist_red { color: var(--danger); }
body .entry .directorist-pricing__action .btn,
body .entry .directorist-authentication .directorist-authentication__form__btn { block-size: 3.25rem; min-block-size: 3.25rem; }
/* Sign-in and sign-up forms start 24 px under the title, like every other page (Directorist's grid row pulled them up by 15 px). */
body .entry .directorist-w-100 > .directorist-container-fluid > .directorist-row { margin-block-start: 0; }

body .entry .directorist-user-dashboard__toggle__link { border-color: var(--ghost-line); }

/* ---- Plan product page: one calm panel, no stock photo ---------------------------------------------------------- */
body.single-product .entry .summary {
  display: grid;
  gap: 1rem;
  justify-items: start;
  max-inline-size: 32rem;
  padding: 1.5rem;
  border: 1px solid var(--card-line);
  border-radius: var(--panel-radius);
  background: var(--card-fill);
}
body.single-product .entry .summary .plan-intro { margin: 0; line-height: 1.6; color: var(--ink-soft); }
body.single-product .entry .summary .price { margin: 0; color: var(--ink); font-size: var(--step-3); font-weight: 600; line-height: 1.2; }
body.single-product .entry .summary .price .wasl-omr { color: inherit; }
body.single-product .entry .summary form.cart { margin: 0; inline-size: 100%; }
body.single-product .entry .summary .single_add_to_cart_button,
body.single-product .entry .summary .single_add_to_cart_button.alt { inline-size: 100%; background: var(--ink); border-color: var(--ink); color: var(--bg); }
@media (prefers-contrast: more) {
  body.single-product .entry .summary { border-color: var(--contrast-line); }
}

/* Owner dashboard table: idea titles were near-black on the dark panel; Views column stays on one line */
body .entry .directorist-user-dashboard-tabcontent .directorist-listing-table .directorist-listing-table-listing-info__content .directorist-title a { color: var(--ink); }
body .entry .directorist-table th.wasl-views,
body .entry .directorist-table td.wasl-views { white-space: nowrap; text-align: center; }

/* Owner dashboard and saved ideas: no grey stock image when an idea has no real picture (same rule as the ideas list) */
body .entry .directorist-listing-table-listing-info__img:has(img[src*="/assets/images/grid.jpg"], img[src*="/assets/images/list.jpg"]) { display: none; }

/* Idea page actions: Back is a quiet link; Save, Share, Report (and Edit for the owner) are one grouped bar, icon over label,
   equal cells. Press feedback is instant (on pointer down), release eases out. */
body .entry .directorist-single-listing-top { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; }
body .entry .directorist-single-listing-top .directorist-return-back.directorist-btn {
  display: inline-flex; align-items: center; gap: 0.5rem; min-block-size: 2.75rem; margin: 0; padding: 0;
  font: inherit; font-size: 0.9375rem; line-height: 1; letter-spacing: 0; color: var(--ink-soft);
  background: none; border: 0 !important; border-radius: var(--radius); box-shadow: none;
}
body .entry .directorist-single-listing-top .directorist-return-back.directorist-btn .directorist-icon-mask { inline-size: 1rem; block-size: 1rem; margin: 0; }
body .entry .directorist-single-listing-top .directorist-return-back.directorist-btn .directorist-icon-mask::after { inline-size: 1rem; block-size: 1rem; background-color: currentColor; }
body .entry .directorist-single-listing-top .directorist-return-back.directorist-btn:hover { color: var(--ink); }
body .entry .directorist-single-listing-top .directorist-return-back.directorist-btn:active { opacity: 0.6; }

body .entry .directorist-single-listing-top > .directorist-single-listing-quick-action {
  display: flex; flex-wrap: nowrap; align-items: stretch; gap: 0; inline-size: min(100%, 28rem);
  background: var(--card-fill); border: 1px solid var(--card-line); border-radius: var(--panel-radius, 1rem);
}
body .entry .directorist-listing-single__quick-actions { display: contents; }
body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn {
  position: relative; flex: 1 1 0; min-inline-size: 0; min-block-size: 3.75rem; margin: 0; padding: 0.5rem 0.25rem;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.3125rem;
  font: inherit; font-size: 0.8125rem; font-weight: 500; line-height: 1.2; letter-spacing: 0; text-align: center; white-space: nowrap;
  color: var(--ink); background: transparent; border: 0 !important; border-radius: 0; box-shadow: none;
  transition: background-color 220ms ease-out, transform 220ms ease-out;
}
body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn + .directorist-single-listing-action.directorist-btn { border-inline-start: 1px solid var(--ghost-line) !important; }
body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn:first-child { border-start-start-radius: var(--panel-radius, 1rem); border-end-start-radius: var(--panel-radius, 1rem); }
body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn:last-child { border-start-end-radius: var(--panel-radius, 1rem); border-end-end-radius: var(--panel-radius, 1rem); }
body .entry .directorist-single-listing-quick-action .directorist-action-report { color: var(--ink-soft); }
body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn .directorist-single-listing-action__text { display: inline; }
body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn .directorist-icon-mask { flex: none; inline-size: 1.25rem; block-size: 1.25rem; margin: 0; }
body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn .directorist-icon-mask::after { inline-size: 1.25rem; block-size: 1.25rem; background-color: currentColor; }
body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn:hover { background: color-mix(in oklab, var(--ink) 7%, transparent); }
body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn:active { background: color-mix(in oklab, var(--ink) 14%, transparent); transform: scale(0.97); transition-duration: 0ms; }
body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn:focus-visible { outline: 2px solid var(--ink); outline-offset: -4px; }
@media (prefers-reduced-motion: reduce) {
  body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn { transition: none; }
  body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn:active { transform: none; }
}
@media (prefers-contrast: more) {
  body .entry .directorist-single-listing-top > .directorist-single-listing-quick-action { border-color: var(--contrast-line); }
  body .entry .directorist-single-listing-quick-action .directorist-single-listing-action.directorist-btn + .directorist-single-listing-action.directorist-btn { border-inline-start-color: var(--contrast-line) !important; }
  body .entry .directorist-single-listing-quick-action .directorist-action-report { color: var(--ink); }
}
/* the theme already prints the idea title as the page heading; the plugin prints it a second time */
body.single-at_biz_dir .entry .directorist-listing-details__listing-title { display: none; }
body .entry .directorist-single-listing-top .directorist-return-back.directorist-btn .directorist-single-listing-action__text { display: inline; }

/* ---- Forms and sign-in (1.0.43): visible labels on the contact form; "have an account? log in" reads as a sentence with a link ---- */
body .contact__form .formgent-form .wasl-field-label { display: block; margin-block-end: 0.4rem; color: var(--ink); font-size: 0.9375rem; font-weight: 500; line-height: 1.4; }
body .entry .directorist-authentication__form__toggle-area p { margin: 0; color: var(--ink-soft); text-align: center; line-height: 1.8; }
body .entry .directorist-authentication__form__toggle-area .directorist-authentication__btn {
  display: inline;
  min-block-size: 0;
  margin: 0;
  padding: 0.25rem 0.125rem;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: var(--accent);
  font: inherit;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 0.25em;
  cursor: pointer;
}
body .entry .directorist-authentication__form__toggle-area .directorist-authentication__btn:hover { background: none; color: var(--ink); }
body .entry .directorist-authentication__form__toggle-area .directorist-authentication__btn:active { opacity: 0.7; }

/* ---- Contrast and print (1.0.47): the sale badge reads 3.4:1 on its tint; dark text on the accent is far above 4.5:1 ---- */
body .onsale, body .woocommerce span.onsale { background: var(--accent); color: oklch(0.2 0.02 250); font-weight: 600; }
@media print { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* ---- Fixes after the live check (1.0.48): sale badge as a small pill above the summary, not a circle over the text; sign-in options on one line ---- */
body span.onsale.onsale {
  position: static;
  display: inline-block;
  min-block-size: 0;
  min-inline-size: 0;
  margin: 0 0 1rem;
  padding: 0.3rem 0.875rem;
  border-radius: 999px;
  font-size: 0.875rem;
  line-height: 1.4;
}
body .entry div:has(> .atbdp_recovery_pass) { display: flex; flex-wrap: nowrap; align-items: center; align-content: center; justify-content: space-between; gap: 0.5rem 1rem; block-size: auto; min-block-size: 0; }
body .entry div:has(> .atbdp_recovery_pass) > .keep_signed { flex: 0 1 auto; inline-size: auto; margin: 0; }
body .entry .atbdp_recovery_pass { margin: 0; padding-block: 0.5rem; }

/* ---- Sign-in and sign-up cards match (1.0.49): same field spacing, options on one line, the switch line centred in both ---- */
body .entry .directorist-authentication .directorist-form-group { margin-block-end: 1.25rem; }
body .entry .directorist-authentication__form__actions { padding-block: 0.25rem 0.75rem; }
body .entry .directorist-authentication__form__toggle-area { display: block; margin: 0; color: var(--ink-soft); text-align: center; line-height: 1.8; }
body .entry .directorist-authentication__form__toggle-area .directorist-authentication__btn { display: inline; inline-size: auto; }
/* One spacing for every field in both cards (the plugin sets 15, 20 and 35 px with utility classes); asterisks sit the same way; "remember me" level with its link. */
body .entry .directorist-authentication form .directorist-form-group { margin-block-end: 1.25rem !important; }
body .entry .directorist-authentication form .atbd_login_btn_wrapper { margin-block-end: 1rem !important; }
body .entry .directorist-authentication label:has(> .directorist-form-required) { display: flex; align-items: baseline; gap: 0.25rem; }
body .entry .directorist-authentication .keep_signed { align-items: center; block-size: auto; min-block-size: 0; padding-block: 0.5rem; }
body .entry .directorist-authentication .keep_signed label { display: inline-flex; align-items: center; min-block-size: 0; margin: 0; padding-block: 0; line-height: 1.4; }

/* ---- One system across pages (1.0.50): controls share the field radius and the 52 px button height; every form label is 15 px medium ---- */
body .entry .directorist-archive-contents .directorist-archive-sidebar-toggle,
body .entry .directorist-archive-contents .directorist-sortby-dropdown .directorist-dropdown__toggle { border-radius: var(--radius); }
body.single-product .entry .summary .single_add_to_cart_button { min-block-size: 3.25rem; }
body .entry .directorist-authentication label { font-size: 0.9375rem; font-weight: 500; }
body .entry .directorist-form-group .select2-container--default .select2-selection--single {
  min-block-size: 3.25rem;
  padding-inline: 0.75rem;
  background: var(--bg);
  border: 1px solid var(--field) !important;
  border-radius: var(--radius) !important;
}
/* Owner dashboard on phones: the idea, its views, status and actions; type, expiry date and plan are on the idea itself. */
@media (max-width: 40rem) {
  body .entry .directorist-user-dashboard-tabcontent .directorist-listing-table :is(th, td):is(:nth-child(3), :nth-child(4), :nth-child(6)) { display: none; }
}

/* Sale price (1.0.52): the browser underlines the new price (<ins>) and strikes the space beside the currency symbol of the old one, which read as a stray underscore and dash. */
body .entry .price ins { text-decoration: none; }
body .entry .price :is(del, ins) .woocommerce-Price-currencySymbol { display: inline-block; text-decoration: none; }
body .entry .price del { color: var(--ink-soft); }

/* Premium Investor page: what the plan includes (one list, a check on each line). */
body.single-product .entry .summary .plan-perks { list-style: none; margin: 0; padding: 0; display: grid; gap: .75rem; }
body.single-product .entry .summary .plan-perks li { position: relative; padding-inline-start: 1.75rem; line-height: 1.5; color: var(--ink); }
body.single-product .entry .summary .plan-perks li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: .2em; inline-size: 1.1rem; block-size: 1.1rem; background: var(--accent); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat; }
body.single-product .entry .summary .quantity { display: none; }

/* Plan page on a wide screen: WooCommerce floats the summary to one side at 48% width, which pulled the box away from the title
   and out of its band. Keep it in the flow, under the title, one calm column. */
body.single-product .entry div.product div.summary { float: none; clear: both; inline-size: min(100%, 32rem); margin: 0; }
