/* Atomic button primitives (wedjat-cursor). Tokens in tokens.css */

.wd-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  border: 1px solid transparent;
  font: inherit;
  line-height: 1.25;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.wd-btn:focus-visible {
  outline: 3px solid #E4C786;
  outline-offset: 3px;
}

.wd-btn--primary {
  border-color: var(--wd-btn-border-gold);
  background: var(--wd-btn-bg-lapis);
  color: var(--wd-on-dark);
}

.wd-btn--primary:hover {
  background: var(--wd-btn-bg-lapis-hover);
}

.wd-btn--secondary {
  border-color: rgba(15, 111, 115, .22);
  background: rgba(255, 255, 255, .84);
  color: var(--wd-teal-deep);
}

.wd-btn--secondary:hover {
  border-color: rgba(15, 111, 115, .34);
  background: #fff;
}

.wd-btn--ghost {
  border-color: var(--wd-btn-border-gold-soft);
  background: rgba(15, 111, 115, .20);
  color: var(--wd-on-dark);
  backdrop-filter: blur(8px);
}

.wd-btn--ghost:hover {
  border-color: rgba(228, 191, 99, .78);
  background: rgba(15, 111, 115, .35);
}

.wd-btn--pill {
  border-radius: 999px;
}

.wd-btn--form {
  min-height: 48px;
  padding: 12px 22px;
  border-radius: 12px;
  font-weight: 600;
  letter-spacing: .01em;
  box-shadow: 0 1px 2px rgba(15, 111, 115, .12);
}

.wd-form .wd-btn--primary.wd-btn--form {
  border-color: transparent;
  background: linear-gradient(180deg, var(--form-primary) 0%, var(--form-primary-dark) 100%);
  color: #fff;
  text-shadow: none;
  box-shadow:
    0 1px 2px rgba(15, 111, 115, .18),
    0 10px 24px -8px rgba(43, 179, 177, .42);
}

.wd-form .wd-btn--primary.wd-btn--form:hover {
  background: linear-gradient(180deg, #35c4c2 0%, var(--form-primary) 100%);
  transform: translateY(-1px);
  box-shadow:
    0 2px 4px rgba(15, 111, 115, .2),
    0 14px 28px -8px rgba(43, 179, 177, .48);
}

.wd-form .wd-btn--primary.wd-btn--form:active {
  transform: translateY(0);
}

.wd-form .wd-btn--secondary.wd-btn--form {
  border-color: rgba(43, 179, 177, .28);
  background: linear-gradient(180deg, #F8FFFE 0%, #D9EFEF 100%);
  color: var(--form-heading);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .9),
    0 2px 8px rgba(15, 111, 115, .1);
}

.wd-form .wd-btn--secondary.wd-btn--form:hover {
  border-color: rgba(47, 104, 183, .32);
  background: linear-gradient(180deg, #FFFFFF 0%, rgba(174, 230, 229, .38) 100%);
  transform: translateY(-1px);
}

.wd-btn--form-dark {
  border-color: var(--form-dark);
  background: var(--form-dark);
  color: #fff;
}

.wd-btn--form-dark:hover {
  background: #2a3a39;
}

.wd-btn--form-soft {
  border-color: var(--form-primary);
  background: var(--form-primary-soft);
  color: var(--form-heading);
}

.wd-btn--form-soft:hover {
  background: #9fd9d8;
}

.wd-btn--form-outline {
  border-color: var(--form-primary);
  background: transparent;
  color: var(--form-primary-dark);
  box-shadow: none;
}

.wd-btn--form-outline:hover {
  background: rgba(174, 230, 229, .35);
}

.wd-btn--form-gold {
  border-color: var(--form-gold-dark);
  background: linear-gradient(145deg, var(--form-gold-soft), var(--form-gold));
  color: var(--form-dark);
}

.wd-btn--form-gold:hover {
  background: linear-gradient(145deg, var(--form-gold), var(--form-gold-dark));
  color: #fff;
}

.wd-btn--form-success {
  border-color: #3d8c36;
  background: var(--form-success);
  color: #fff;
}

.wd-btn--form-warning {
  border-color: #c97a12;
  background: var(--form-warning);
  color: #fff;
}

.wd-btn--form-error {
  border-color: #b53226;
  background: var(--form-error);
  color: #fff;
}

.wd-btn--form:disabled,
.wd-btn--form[disabled] {
  border-color: var(--form-disabled);
  background: var(--form-disabled);
  color: var(--form-disabled-text);
  box-shadow: none;
  cursor: not-allowed;
  transform: none;
}

.wd-btn--md {
  min-height: 44px;
  padding: 10px 18px;
  font-weight: 800;
}

.wd-btn--sm {
  min-height: 38px;
  padding: 8px 16px;
  font-weight: 800;
}

.wd-btn--load-more {
  min-height: 44px;
  padding: 10px 20px;
  font-weight: 800;
  font-size: .84rem;
  line-height: 1;
  box-shadow: var(--wd-btn-shadow-lg);
}

.wd-btn--icon-search {
  position: absolute;
  top: 3px;
  right: 3px;
  display: grid;
  width: 32px;
  height: 32px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--wd-btn-bg-lapis-soft);
  color: #fff;
}

.wd-btn--icon-search:hover {
  background: var(--wd-btn-bg-lapis-soft-hover);
}

.wd-header__search .wd-btn--icon-search {
  top: 4px;
  right: 4px;
  width: 28px;
  height: 28px;
  background: transparent;
  color: var(--wd-teal-deep);
}

.wd-header__search .wd-btn--icon-search:hover {
  background: transparent;
  color: var(--wd-teal);
}

.wd-btn--icon-tool {
  position: relative;
  display: grid;
  width: 34px;
  min-width: 34px;
  height: 34px;
  padding: 6px;
  place-items: center;
  overflow: visible;
  border-radius: 50%;
  border-color: rgba(201, 162, 87, .48);
  box-shadow: inset 0 1px rgba(255, 255, 255, .2), 0 5px 13px rgba(15, 39, 93, .18);
}

.wd-btn--icon-tool:hover {
  transform: translateY(-1px);
  border-color: rgba(228, 199, 134, .75);
  box-shadow: inset 0 1px rgba(255, 255, 255, .24), 0 7px 17px rgba(15, 39, 93, .23);
}

.wd-btn--icon-tool[aria-expanded="true"] {
  border-color: #E4C786;
}

.wd-btn.wd-btn--primary.wd-btn--icon-tool {
  border-color: rgba(201, 162, 87, .48);
  background: var(--wd-btn-bg-lapis);
  color: var(--wd-on-dark);
  box-shadow: inset 0 1px rgba(255, 255, 255, .2), 0 5px 13px rgba(15, 39, 93, .18);
}

.wd-btn.wd-btn--primary.wd-btn--icon-tool:hover {
  transform: translateY(-1px);
  border-color: rgba(228, 199, 134, .75);
  background: var(--wd-btn-bg-lapis-hover);
  box-shadow: inset 0 1px rgba(255, 255, 255, .24), 0 7px 17px rgba(15, 39, 93, .23);
}

.wd-btn.wd-btn--primary.wd-btn--icon-tool[aria-expanded="true"] {
  border-color: #E4C786;
  background: var(--wd-btn-bg-lapis-hover);
}

.wd-btn svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}

.wd-header__search .wd-btn svg {
  width: 15px;
  height: 15px;
}

/* Hero / CTA links */
.wd-btn.wd-btn--primary.wd-btn--pill {
  border-color: var(--wd-btn-border-gold);
  background: var(--wd-btn-bg-lapis);
  color: var(--wd-on-dark);
  min-height: 44px;
  padding: 9px 18px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .28);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 10px 28px rgba(5, 15, 47, .32);
}

.wd-btn.wd-btn--primary.wd-btn--pill:hover {
  background: var(--wd-btn-bg-lapis-hover);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 13px 32px rgba(5, 15, 47, .4);
}

.wd-btn.wd-btn--ghost.wd-btn--pill {
  border-color: var(--wd-btn-border-gold-soft);
  background: rgba(15, 111, 115, .20);
  color: var(--wd-on-dark);
  min-height: 44px;
  padding: 9px 18px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
  backdrop-filter: blur(8px);
}

.wd-btn.wd-btn--ghost.wd-btn--pill:hover {
  border-color: rgba(228, 191, 99, .78);
  background: rgba(15, 111, 115, .35);
}

/* Legacy hero aliases — use wd-btn on <a> in markup */
.wd-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 9px 18px;
  border-radius: 999px;
  font-weight: 700;
  text-decoration: none;
}

.wd-button.wd-button--primary,
.wd-button.wd-btn--primary {
  border-color: var(--wd-btn-border-gold);
  background: var(--wd-btn-bg-lapis);
  color: var(--wd-on-dark);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 10px 28px rgba(5, 15, 47, .32);
  text-shadow: 0 1px 2px rgba(0, 0, 0, .28);
}

.wd-button.wd-button--primary:hover,
.wd-button.wd-btn--primary:hover {
  background: var(--wd-btn-bg-lapis-hover);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 13px 32px rgba(5, 15, 47, .4);
}

.wd-button.wd-button--ghost,
.wd-button.wd-btn--ghost {
  border-color: var(--wd-btn-border-gold-soft);
  background: rgba(15, 111, 115, .20);
  color: var(--wd-on-dark);
  backdrop-filter: blur(8px);
}

.wd-button.wd-button--ghost:hover,
.wd-button.wd-btn--ghost:hover {
  border-color: rgba(228, 191, 99, .78);
  background: rgba(15, 111, 115, .35);
}

/* Sidebar search submit */
.wd-search .wd-btn--primary {
  border: 0;
  border-left: 1px solid rgba(229, 198, 129, .48);
  border-radius: 0;
  background: var(--wd-btn-bg-lapis-soft);
  font-size: 1.4rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18);
}

.wd-search .wd-btn--primary:hover {
  background: var(--wd-btn-bg-lapis-soft-hover);
}

.wd-btn--load-more:hover {
  transform: translateY(-1px);
  box-shadow: 0 13px 30px rgba(5, 15, 47, .3);
}

.wd-to-top.wd-btn--primary {
  width: 70px;
  height: 70px;
  min-height: 0;
  padding: 7px;
  border-radius: 50%;
  color: #f5ddb0;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 12px 28px rgba(5, 15, 47, .3);
}

.wd-to-top.wd-btn--primary:hover {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 15px 34px rgba(5, 15, 47, .4);
}

/* DLE generated HTML exception: engine controls may render buttons without wd-btn. */
.wd-form .wd-form__actions :is(button, input[type="submit"]):not([class*="wd-btn"]),
.wd-form .wd-form__row > input[type="button"]:not([class*="wd-btn"]),
.wd-search-page__controls :is(button, input[type="submit"]):not([class*="wd-btn"]) {
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid var(--form-primary-dark);
  border-radius: 12px;
  background: var(--form-primary);
  color: #fff;
  font-weight: 800;
  font-size: .86rem;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 4px 14px var(--form-shadow);
}

.wd-search-page__controls :is(button, input[type="submit"], input[type="button"]):not([class*="wd-btn"]) {
  margin: 0 8px 8px 0;
  border-radius: 999px;
  font-size: .82rem;
}

.wd-form .wd-form__actions :is(button, input[type="submit"]):not([class*="wd-btn"]):hover,
.wd-search-page__controls :is(button, input[type="submit"]):not([class*="wd-btn"]):hover {
  background: var(--form-primary-dark);
}

.wd-search-page__controls input[type="button"]:not([class*="wd-btn"]) {
  border-color: var(--form-input-border);
  background: var(--form-surface-warm);
  color: var(--form-heading);
}

.wd-form .wd-form__actions :is(button, input[type="submit"]):not([class*="wd-btn"]),
.wd-form .wd-form__row > input[type="button"]:not([class*="wd-btn"]) {
  width: auto !important;
  min-height: 38px;
  padding: 8px 16px;
  font-weight: 800;
}
