/* Layout primitives ------------------------------------------------------- */
.wm-container {
  width: min(calc(100% - 2rem), var(--wm-wide));
  margin-inline: auto;
}

.wm-stack {
  display: flex;
  flex-direction: column;
  gap: var(--wm-stack-gap, var(--wm-space-md));
}

.wm-stack--xs { --wm-stack-gap: var(--wm-space-xs); }
.wm-stack--sm { --wm-stack-gap: var(--wm-space-sm); }

.wm-cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--wm-cluster-gap, var(--wm-space-sm));
}

.wm-cluster--between { justify-content: space-between; }

.wm-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
  gap: var(--wm-grid-gap, var(--wm-space-md));
}

.wm-grid--compact {
  --wm-grid-gap: var(--wm-space-sm);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.wm-grid--wide {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr));
}

.wm-section { padding-block: var(--wm-space-lg); }

.wm-page-shell {
  min-height: 45vh;
  padding-block: clamp(2.5rem, 6vw, 6rem);
}

.wm-page-shell > :first-child { margin-block-start: 0; }

.wm-discovery-shell {
  --wp--style--global--content-size: 64rem;
}

.wm-discovery-shell > .wp-block-shortcode {
  width: 100%;
  margin-block-start: var(--wm-space-md);
}

.wm-eyebrow {
  margin: 0;
  color: var(--wm-color-wind-600);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  line-height: 1.4;
  text-transform: uppercase;
}

.wm-meta {
  color: var(--wm-color-steel-500);
  font-size: 0.8125rem;
  font-weight: 650;
}

.wm-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

/* Header and navigation -------------------------------------------------- */
.wm-site-header {
  position: sticky;
  inset-block-start: 0;
  z-index: 1000;
  isolation: isolate;
  border-block-end: 1px solid rgb(18 50 74 / 12%);
  background: rgb(248 250 249 / 96%);
  box-shadow: 0 8px 30px rgb(7 26 43 / 5%);
  backdrop-filter: blur(16px);
}

.admin-bar .wm-site-header { inset-block-start: 46px; }

.wm-site-header__utility {
  display: none;
  min-height: 2rem;
  padding-block: 0.35rem;
  background: var(--wm-color-navy-950);
  color: var(--wm-color-white);
  font-size: 0.75rem;
  letter-spacing: 0.015em;
}

.wm-site-header__utility :where(p, a) {
  margin: 0;
  color: inherit;
  text-decoration: none;
}

.wm-site-header__utility a:hover { color: var(--wm-color-wind-400); }

.wm-site-header__bar {
  min-height: 4.75rem;
  padding-block: 0.65rem;
}

.wm-site-header__brand {
  flex: 0 1 auto;
  gap: 0.7rem;
  min-width: 0;
}

.wm-site-header__brand .wp-block-site-logo img {
  width: auto;
  max-height: 2.75rem;
}

.wm-site-header__brand .wp-block-site-title {
  margin: 0;
  color: var(--wm-color-navy-950);
  font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.35rem);
  font-weight: 800;
  letter-spacing: -0.035em;
  line-height: 1;
}

.wm-site-header__brand .wp-block-site-title a {
  color: inherit;
  text-decoration: none;
}

.wm-site-header__actions {
  margin-inline-start: auto;
  gap: 0.5rem;
}

.wm-site-header__account,
.wm-desktop-nav { display: none; }

.wm-desktop-nav .wp-block-navigation-item__content {
  position: relative;
  padding: 0.65rem 0.15rem;
  color: var(--wm-color-navy-800);
  font-size: 0.875rem;
  font-weight: 750;
  text-decoration: none;
}

.wm-desktop-nav .wp-block-navigation-item__content::after {
  position: absolute;
  inset: auto 0 0;
  height: 2px;
  background: var(--wm-color-wind-600);
  content: "";
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--wm-motion-base) var(--wm-motion-ease);
}

.wm-desktop-nav .wp-block-navigation-item__content:hover::after,
.wm-desktop-nav .wp-block-navigation-item__content:focus-visible::after,
.wm-desktop-nav .current-menu-item > .wp-block-navigation-item__content::after {
  transform: scaleX(1);
  transform-origin: left;
}

.wm-desktop-nav .wp-block-navigation__submenu-container {
  min-width: 15rem !important;
  padding: 0.6rem !important;
  border: 1px solid var(--wm-color-steel-200) !important;
  border-radius: var(--wm-radius-md) !important;
  background: var(--wm-color-white) !important;
  box-shadow: var(--wm-shadow-raised);
}

.wm-desktop-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: 0.7rem 0.8rem;
  border-radius: var(--wm-radius-sm);
}

.wm-desktop-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content::after { content: none; }
.wm-desktop-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wm-color-steel-100); }

.wm-drawer-toggle,
.wm-mobile-drawer__close,
.wm-mobile-drawer__backdrop { display: none; }

.wm-mobile-drawer {
  padding: 0 1rem 1rem;
  background: var(--wm-color-off-white);
}

.wm-mobile-drawer__panel {
  padding: var(--wm-space-sm);
  border: 1px solid var(--wm-color-steel-200);
  border-radius: var(--wm-radius-md);
  background: var(--wm-color-white);
}

.wm-mobile-drawer__head { display: none; }

.wm-mobile-nav,
.wm-mobile-nav .wp-block-navigation__container,
.wm-mobile-nav .wp-block-navigation-item { width: 100%; }

.wm-mobile-nav .wp-block-navigation__container {
  align-items: stretch;
  gap: 0;
}

.wm-mobile-nav .wp-block-navigation-item__content {
  width: 100%;
  padding: 0.85rem 0;
  border-block-end: 1px solid var(--wm-color-steel-200);
  color: var(--wm-color-navy-950);
  font-weight: 750;
  text-decoration: none;
}

.wm-mobile-drawer__cta {
  width: 100%;
  margin-block-start: var(--wm-space-sm);
}

.wm-js .wm-drawer-toggle { display: inline-flex; }

.wm-js .wm-mobile-drawer {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 90vw);
  padding: 0;
  visibility: hidden;
  background: transparent;
  opacity: 0;
  pointer-events: none;
  transition: visibility 0s linear var(--wm-motion-base), opacity var(--wm-motion-base) var(--wm-motion-ease);
}

.wm-js .wm-mobile-drawer.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition-delay: 0s;
}

.wm-js .wm-mobile-drawer__backdrop {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  background: rgb(7 26 43 / 72%);
  cursor: pointer;
}

.wm-js .wm-mobile-drawer__panel {
  position: relative;
  z-index: 1;
  display: flex;
  width: 100%;
  height: 100%;
  max-height: 100dvh;
  flex-direction: column;
  padding: var(--wm-space-md);
  overflow-y: auto;
  border: 0;
  border-radius: 0;
  box-shadow: -24px 0 55px rgb(7 26 43 / 22%);
  transform: translateX(105%);
  transition: transform var(--wm-motion-base) var(--wm-motion-ease);
}

.wm-js .wm-mobile-drawer.is-open .wm-mobile-drawer__panel { transform: translateX(0); }

.wm-js .wm-mobile-drawer__head {
  display: flex;
  justify-content: space-between;
  padding-block-end: var(--wm-space-sm);
  border-block-end: 1px solid var(--wm-color-steel-200);
}

.wm-js .wm-mobile-drawer__head p {
  margin: 0;
  color: var(--wm-color-navy-950);
  font-weight: 800;
}

.wm-js .wm-mobile-drawer__close { display: inline-flex; }
.wm-drawer-open { overflow: hidden; }

/* Footer ----------------------------------------------------------------- */
.wm-site-footer {
  margin-block-start: var(--wm-space-xl);
  padding-block: var(--wm-space-lg) var(--wm-space-md);
  background: radial-gradient(circle at 80% 0%, rgb(82 182 216 / 16%), transparent 30rem), var(--wm-color-navy-950);
  color: var(--wm-color-white);
}

.wm-site-footer__grid {
  display: grid;
  gap: var(--wm-space-lg);
}

.wm-site-footer__brand { max-width: 32rem; }

.wm-site-footer__brand .wp-block-site-title {
  margin-block: 0 0.75rem;
  font-size: clamp(1.5rem, 1.2rem + 1vw, 2.25rem);
}

.wm-site-footer__brand .wp-block-site-title a,
.wm-site-footer a { color: inherit; }
.wm-site-footer__brand p { color: rgb(255 255 255 / 74%); }

.wm-site-footer__nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wm-space-md);
}

.wm-site-footer__nav h2 {
  margin: 0 0 0.75rem;
  color: var(--wm-color-wind-400);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.wm-site-footer__nav ul {
  display: grid;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.wm-site-footer__nav a {
  color: rgb(255 255 255 / 78%);
  font-size: 0.875rem;
  text-decoration: none;
}

.wm-site-footer__nav a:hover {
  color: var(--wm-color-white);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.wm-site-footer__legal {
  margin-block-start: var(--wm-space-lg);
  padding-block-start: var(--wm-space-sm);
  border-block-start: 1px solid rgb(255 255 255 / 16%);
  color: rgb(255 255 255 / 66%);
  font-size: 0.75rem;
}

.wm-site-footer__legal p { margin: 0; }

/* Buttons ---------------------------------------------------------------- */
.wm-button,
.wp-element-button {
  position: relative;
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border: 1px solid transparent;
  border-radius: var(--wm-radius-sm);
  padding: 0.75rem 1.125rem;
  background: var(--wm-color-wind-600);
  color: var(--wm-color-white);
  font: inherit;
  font-size: 0.875rem;
  font-weight: 750;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--wm-motion-fast) var(--wm-motion-ease), border-color var(--wm-motion-fast) var(--wm-motion-ease), box-shadow var(--wm-motion-fast) var(--wm-motion-ease), color var(--wm-motion-fast) var(--wm-motion-ease), transform var(--wm-motion-fast) var(--wm-motion-ease);
}

.wm-button:hover,
.wp-element-button:hover {
  background: var(--wm-color-navy-800);
  color: var(--wm-color-white);
  transform: translateY(-1px);
}

.wm-button:active,
.wp-element-button:active {
  background: var(--wm-color-navy-950);
  transform: translateY(0);
}

.wm-button--secondary {
  border-color: var(--wm-color-wind-600);
  background: transparent;
  color: var(--wm-color-navy-950);
}

.wm-button--secondary:hover,
.wm-button--secondary:active {
  border-color: var(--wm-color-navy-950);
  background: var(--wm-color-navy-950);
  color: var(--wm-color-white);
}

.wm-button--ghost {
  border-color: transparent;
  background: transparent;
  color: var(--wm-color-navy-800);
}

.wm-button--ghost:hover,
.wm-button--ghost:active {
  background: var(--wm-color-steel-100);
  color: var(--wm-color-navy-950);
}

.wm-button--danger { background: var(--wm-color-danger-700); }
.wm-button--danger:hover,
.wm-button--danger:active { background: #731f1f; }

.wm-button--small {
  min-height: 2.25rem;
  padding: 0.55rem 0.8rem;
  font-size: 0.8125rem;
}

.wm-button--wide { width: 100%; }

.wm-icon-button {
  width: 2.75rem;
  min-width: 2.75rem;
  padding: 0;
}

.wm-button[aria-disabled="true"],
.wm-button:disabled,
.wp-element-button[aria-disabled="true"],
.wp-element-button:disabled {
  opacity: 0.52;
  cursor: not-allowed;
  filter: grayscale(0.3);
  pointer-events: none;
  transform: none;
}

.wm-button[aria-busy="true"],
.wm-button.is-loading {
  cursor: progress;
  pointer-events: none;
}

.wm-button[aria-busy="true"]::before,
.wm-button.is-loading::before {
  width: 1rem;
  height: 1rem;
  border: 2px solid rgb(255 255 255 / 46%);
  border-block-start-color: currentColor;
  border-radius: 50%;
  content: "";
  animation: wm-spin 700ms linear infinite;
}

.wm-surface--dark .wm-button--secondary {
  border-color: var(--wm-color-wind-400);
  color: var(--wm-color-white);
}

.wm-site-footer .wm-button--secondary {
  border-color: var(--wm-color-wind-400);
  color: var(--wm-color-white);
}

.wm-surface--dark .wm-button--secondary:hover,
.wm-surface--dark .wm-button--secondary:active,
.wm-site-footer .wm-button--secondary:hover,
.wm-site-footer .wm-button--secondary:active {
  border-color: var(--wm-color-white);
  background: var(--wm-color-white);
  color: var(--wm-color-navy-950);
}

/* Forms ------------------------------------------------------------------ */
.wm-form {
  display: grid;
  gap: var(--wm-space-md);
}

.wm-fieldset {
  display: grid;
  gap: var(--wm-space-sm);
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.wm-fieldset > legend {
  margin-block-end: var(--wm-space-sm);
  color: var(--wm-color-navy-950);
  font-size: 1rem;
  font-weight: 800;
}

.wm-field {
  display: grid;
  gap: var(--wm-space-2xs);
}

.wm-field > label,
.wm-field__label {
  color: var(--wm-color-navy-950);
  font-size: 0.875rem;
  font-weight: 750;
}

.wm-field :where(input, select, textarea) {
  width: 100%;
  min-height: 2.875rem;
  border: 1px solid var(--wm-color-steel-500);
  border-radius: var(--wm-radius-sm);
  padding: 0.75rem;
  background: var(--wm-color-white);
  color: var(--wm-color-graphite-900);
  font: inherit;
  transition: border-color var(--wm-motion-fast) var(--wm-motion-ease), box-shadow var(--wm-motion-fast) var(--wm-motion-ease);
}

.wm-field textarea {
  min-height: 8rem;
  resize: vertical;
}

.wm-field :where(input, select, textarea)::placeholder {
  color: #667984;
  opacity: 1;
}

.wm-field :where(input, select, textarea):hover:not(:disabled) { border-color: var(--wm-color-navy-800); }
.wm-field :where(input, select, textarea):focus-visible { border-color: var(--wm-color-wind-600); }

.wm-field :where(input, select, textarea):disabled {
  border-color: var(--wm-color-steel-200);
  background: var(--wm-color-steel-100);
  color: var(--wm-color-steel-500);
  cursor: not-allowed;
}

.wm-field [aria-invalid="true"],
.wm-field.is-error :where(input, select, textarea) {
  border-color: var(--wm-color-danger-700);
  box-shadow: 0 0 0 1px var(--wm-color-danger-700);
}

.wm-field.is-success :where(input, select, textarea) { border-color: var(--wm-color-energy-700); }

.wm-field__hint,
.wm-field__error,
.wm-field__success {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
}

.wm-field__hint { color: var(--wm-color-steel-500); }

.wm-field__error {
  color: var(--wm-color-danger-700);
  font-weight: 700;
}

.wm-field__success {
  color: var(--wm-color-energy-700);
  font-weight: 700;
}

.wm-choice {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  font-size: 0.875rem;
  line-height: 1.5;
}

.wm-choice input {
  width: 1.15rem;
  height: 1.15rem;
  flex: 0 0 auto;
  margin-block-start: 0.15rem;
  accent-color: var(--wm-color-wind-600);
}

.wm-required { color: var(--wm-color-danger-700); }

/* Surfaces and cards ----------------------------------------------------- */
.wm-surface {
  position: relative;
  padding: var(--wm-space-md);
  border: 1px solid var(--wm-color-steel-200);
  border-radius: var(--wm-radius-md);
  background: var(--wm-color-white);
}

.wm-surface--raised { box-shadow: var(--wm-shadow-raised); }
.wm-surface--muted { background: var(--wm-color-steel-100); }

.wm-surface--dark {
  border-color: rgb(255 255 255 / 14%);
  background: var(--wm-color-navy-950);
  color: var(--wm-color-white);
}

.wm-card {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  gap: var(--wm-space-sm);
  overflow: hidden;
  transition: border-color var(--wm-motion-base) var(--wm-motion-ease), box-shadow var(--wm-motion-base) var(--wm-motion-ease), transform var(--wm-motion-base) var(--wm-motion-ease);
}

.wm-card:hover,
.wm-card:focus-within {
  border-color: rgb(20 118 168 / 52%);
  box-shadow: var(--wm-shadow-raised);
  transform: translateY(-3px);
}

.wm-card.is-selected {
  border-color: var(--wm-color-wind-600);
  box-shadow: 0 0 0 2px var(--wm-color-wind-600);
}

.wm-card[aria-disabled="true"],
.wm-card.is-disabled {
  opacity: 0.58;
  filter: grayscale(0.45);
  pointer-events: none;
}

.wm-card__media {
  display: grid;
  min-height: 10rem;
  place-items: center;
  margin: calc(var(--wm-space-md) * -1) calc(var(--wm-space-md) * -1) 0;
  background: linear-gradient(135deg, rgb(82 182 216 / 18%), transparent 55%), var(--wm-color-steel-100);
  color: var(--wm-color-navy-800);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.wm-card__title {
  margin: 0;
  color: var(--wm-color-navy-950);
  font-size: clamp(1.125rem, 1.05rem + 0.35vw, 1.4rem);
  line-height: 1.25;
}

.wm-card__title a {
  color: inherit;
  text-decoration: none;
}

.wm-card__title a::after {
  position: absolute;
  inset: 0;
  content: "";
}

.wm-card__body {
  margin: 0;
  color: var(--wm-color-steel-500);
  font-size: 0.9375rem;
}

.wm-card__footer {
  position: relative;
  z-index: 1;
  margin-block-start: auto;
  padding-block-start: var(--wm-space-sm);
  border-block-start: 1px solid var(--wm-color-steel-200);
}

.wm-card.is-error {
  border-color: var(--wm-color-danger-700);
  background: var(--wm-color-danger-050);
}

.wm-state-panel {
  display: grid;
  min-height: 12rem;
  place-items: center;
  padding: var(--wm-space-lg);
  border: 1px dashed var(--wm-color-steel-500);
  border-radius: var(--wm-radius-md);
  background: var(--wm-color-white);
  text-align: center;
}

.wm-state-panel__content { max-width: 34rem; }
.wm-state-panel__content > :first-child { margin-block-start: 0; }
.wm-state-panel__content > :last-child { margin-block-end: 0; }

.wm-state-panel.is-error {
  border-style: solid;
  border-color: var(--wm-color-danger-700);
  background: var(--wm-color-danger-050);
}

/* Alerts and statuses ---------------------------------------------------- */
.wm-alert {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.75rem;
  padding: var(--wm-space-sm);
  border: 1px solid #b8dbe9;
  border-inline-start: 0.25rem solid var(--wm-color-wind-600);
  border-radius: var(--wm-radius-sm);
  background: var(--wm-color-info-050);
  color: var(--wm-color-navy-950);
}

.wm-alert::before {
  display: grid;
  width: 1.35rem;
  height: 1.35rem;
  place-items: center;
  border-radius: 50%;
  background: var(--wm-color-wind-600);
  color: var(--wm-color-white);
  content: "i";
  font-size: 0.75rem;
  font-weight: 850;
  line-height: 1;
}

.wm-alert > :first-child { margin-block-start: 0; }
.wm-alert > :last-child { margin-block-end: 0; }

.wm-alert--success {
  border-color: #b8dec9;
  border-inline-start-color: var(--wm-color-energy-700);
  background: var(--wm-color-success-050);
}

.wm-alert--success::before {
  background: var(--wm-color-energy-700);
  content: "✓";
}

.wm-alert--warning {
  border-color: #edc9ad;
  border-inline-start-color: var(--wm-color-safety-600);
  background: var(--wm-color-warning-050);
}

.wm-alert--warning::before {
  background: var(--wm-color-safety-600);
  content: "!";
}

.wm-alert--error {
  border-color: #e2b7b7;
  border-inline-start-color: var(--wm-color-danger-700);
  background: var(--wm-color-danger-050);
}

.wm-alert--error::before {
  background: var(--wm-color-danger-700);
  content: "×";
}

.wm-status {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 0.45rem;
  border-radius: 999px;
  padding: 0.35rem 0.6rem;
  background: var(--wm-color-steel-100);
  color: var(--wm-color-navy-800);
  font-size: 0.75rem;
  font-weight: 750;
  line-height: 1;
}

.wm-status::before {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: currentColor;
  content: "";
}

.wm-status--success {
  background: var(--wm-color-success-050);
  color: var(--wm-color-energy-700);
}

.wm-status--warning {
  background: var(--wm-color-warning-050);
  color: #99500f;
}

.wm-status--error {
  background: var(--wm-color-danger-050);
  color: var(--wm-color-danger-700);
}

/* Dialog ----------------------------------------------------------------- */
.wm-dialog {
  width: min(calc(100% - 2rem), 38rem);
  max-height: min(90dvh, 48rem);
  margin: auto;
  padding: 0;
  overflow: auto;
  border: 1px solid var(--wm-color-steel-200);
  border-radius: var(--wm-radius-lg);
  background: var(--wm-color-white);
  color: var(--wm-color-graphite-900);
  box-shadow: 0 30px 100px rgb(7 26 43 / 34%);
}

.wm-dialog::backdrop {
  background: rgb(7 26 43 / 72%);
  backdrop-filter: blur(3px);
}

.wm-dialog[open] { animation: wm-dialog-enter var(--wm-motion-base) var(--wm-motion-ease); }

.wm-dialog__header,
.wm-dialog__body,
.wm-dialog__footer { padding: var(--wm-space-md); }

.wm-dialog__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--wm-space-sm);
  border-block-end: 1px solid var(--wm-color-steel-200);
}

.wm-dialog__header h2 {
  margin: 0;
  font-size: clamp(1.35rem, 1.15rem + 0.8vw, 1.85rem);
}

.wm-dialog__body > :first-child { margin-block-start: 0; }
.wm-dialog__body > :last-child { margin-block-end: 0; }

.wm-dialog__footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--wm-space-xs);
  border-block-start: 1px solid var(--wm-color-steel-200);
  background: var(--wm-color-steel-100);
}

/* Tables ----------------------------------------------------------------- */
.wm-table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--wm-color-steel-200);
  border-radius: var(--wm-radius-md);
  background: var(--wm-color-white);
}

.wm-table {
  width: 100%;
  min-width: 44rem;
  border-collapse: collapse;
  font-size: 0.875rem;
  font-variant-numeric: tabular-nums;
}

.wm-table caption {
  padding: var(--wm-space-sm);
  color: var(--wm-color-navy-950);
  font-weight: 800;
  text-align: start;
}

.wm-table :where(th, td) {
  padding: 0.85rem 1rem;
  border-block-start: 1px solid var(--wm-color-steel-200);
  text-align: start;
  vertical-align: middle;
}

.wm-table thead th {
  border-block-start: 0;
  background: var(--wm-color-navy-950);
  color: var(--wm-color-white);
  font-size: 0.75rem;
  font-weight: 750;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.wm-table tbody tr { transition: background-color var(--wm-motion-fast) var(--wm-motion-ease); }

.wm-table tbody tr:hover,
.wm-table tbody tr:focus-within { background: var(--wm-color-info-050); }

.wm-table__numeric { text-align: end !important; }

.wm-table__empty td,
.wm-table__loading td,
.wm-table__error td {
  padding: var(--wm-space-lg);
  text-align: center;
}

.wm-table__error td {
  background: var(--wm-color-danger-050);
  color: var(--wm-color-danger-700);
  font-weight: 700;
}

/* Loading and state utilities ------------------------------------------- */
.wm-skeleton {
  display: block;
  min-height: 1rem;
  overflow: hidden;
  border-radius: var(--wm-radius-sm);
  background: var(--wm-color-steel-200);
}

.wm-skeleton::after {
  display: block;
  width: 55%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgb(255 255 255 / 68%), transparent);
  content: "";
  animation: wm-skeleton 1.25s ease-in-out infinite;
}

.wm-skeleton--title {
  width: 68%;
  min-height: 1.5rem;
}

.wm-skeleton--short { width: 42%; }
.wm-loading-region[aria-busy="true"] { cursor: progress; }

@keyframes wm-spin { to { transform: rotate(360deg); } }

@keyframes wm-skeleton {
  from { transform: translateX(-120%); }
  to { transform: translateX(220%); }
}

@keyframes wm-dialog-enter {
  from { opacity: 0; transform: translateY(0.75rem) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* Responsive behavior --------------------------------------------------- */
@media (min-width: 37.5rem) {
  .wm-site-header__account { display: inline-flex; }
  .wm-site-footer__nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 48rem) {
  .wm-container { width: min(calc(100% - 4rem), var(--wm-wide)); }
  .admin-bar .wm-site-header { inset-block-start: 32px; }
  .wm-site-header__utility { display: block; }
  .wm-site-footer__grid { grid-template-columns: minmax(15rem, 1.15fr) minmax(24rem, 1.85fr); }
}

@media (min-width: 75rem) {
  .wm-desktop-nav {
    display: flex;
    margin-inline: auto;
  }

  .wm-drawer-toggle,
  .wm-js .wm-drawer-toggle,
  .wm-mobile-drawer,
  .wm-js .wm-mobile-drawer { display: none; }
}

@media (max-width: 39.99rem) {
  .wm-table-wrap--responsive {
    overflow: visible;
    border: 0;
    background: transparent;
  }

  .wm-table-wrap--responsive .wm-table {
    display: block;
    min-width: 0;
  }

  .wm-table-wrap--responsive :where(thead, caption) {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
  }

  .wm-table-wrap--responsive :where(tbody, tr, th, td) {
    display: block;
    width: 100%;
  }

  .wm-table-wrap--responsive tr {
    margin-block-end: var(--wm-space-sm);
    overflow: hidden;
    border: 1px solid var(--wm-color-steel-200);
    border-radius: var(--wm-radius-md);
    background: var(--wm-color-white);
  }

  .wm-table-wrap--responsive :where(th, td) {
    display: grid;
    grid-template-columns: minmax(7rem, 42%) minmax(0, 1fr);
    gap: var(--wm-space-xs);
    padding: 0.75rem;
    border-block-start: 1px solid var(--wm-color-steel-200);
    text-align: start !important;
  }

  .wm-table-wrap--responsive :where(th, td):first-child { border-block-start: 0; }

  .wm-table-wrap--responsive :where(th, td)::before {
    color: var(--wm-color-steel-500);
    content: attr(data-label);
    font-size: 0.75rem;
    font-weight: 750;
    letter-spacing: 0.02em;
    text-transform: uppercase;
  }

  .wm-table-wrap--responsive :where(.wm-table__empty, .wm-table__loading, .wm-table__error) td { display: block; }
  .wm-table-wrap--responsive :where(.wm-table__empty, .wm-table__loading, .wm-table__error) td::before { content: none; }
}

@media (prefers-reduced-motion: reduce) {
  .wm-button[aria-busy="true"]::before,
  .wm-button.is-loading::before { animation-duration: 1.5s !important; }

  .wm-skeleton::after {
    animation: none !important;
    opacity: 0.45;
  }

  .wm-dialog[open] { animation: none !important; }
}

/* Knowledge Center
   The source list is a first-class part of the article, not a footnote: it is
   what makes a technical claim checkable, so it reads as a bordered panel
   rather than as small print. */
.wm-knowledge-sources {
    border: 1px solid var(--wp--preset--color--wm-border, rgba(15, 23, 42, 0.14));
    border-radius: 0.75rem;
    margin-block-start: 2.5rem;
    padding: 1.25rem 1.5rem;
}

.wm-knowledge-sources__title {
    font-size: 1rem;
    letter-spacing: 0.02em;
    margin: 0 0 0.5rem;
    text-transform: uppercase;
}

.wm-knowledge-sources__reviewed {
    color: var(--wp--preset--color--wm-muted, #52607a);
    font-size: 0.875rem;
    margin: 0 0 0.75rem;
}

.wm-knowledge-sources__list {
    display: grid;
    gap: 0.5rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.wm-knowledge-index {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
    margin-block-start: 2rem;
}

.wm-knowledge-card {
    border: 1px solid var(--wp--preset--color--wm-border, rgba(15, 23, 42, 0.14));
    border-radius: 0.75rem;
    padding: 1.25rem;
}

.wm-knowledge-card__title {
    font-size: 1.125rem;
    margin: 0 0 0.5rem;
}

.wm-knowledge-card__summary {
    color: var(--wp--preset--color--wm-muted, #52607a);
    margin: 0;
}

.wm-knowledge-index__empty {
    color: var(--wp--preset--color--wm-muted, #52607a);
}

/* ===========================================================================
   Header duzeltmesi (CP34)
   ---------------------------------------------------------------------------
   Olculen hatalar:

   1. Header'in icerik kabi yoktu. `.wm-site-header` blok yerlesimde oldugu
      icin cubuktaki `alignwide` hicbir sey yapmiyordu; cubuk viewport
      kenarindan kenarina uzaniyor, logo sol kenara yapisiyordu. Sayfa icerigi
      ise 24px iceriden basliyordu - krom ile govde hizasizdi.

   2. WooCommerce hesap ve sepet bloklarini cubuga kendi ekliyor. Bes esnek
      cocuk `space-between` ile dagilinca iki ikon ortada asili kaliyordu.

   3. Blok boslugundan gelen ~29px marjin header'i 138px'e cikariyordu.

   4. Dar ekranda marka `flex: 0 1 auto` oldugu icin sifir genislige
      cokuyordu ve aksiyonlar cubugu tasiyordu.
=========================================================================== */

.wm-site-header > * + * { margin-block-start: 0; }

/* Krom, govdeyle ayni kaba oturur. Olculer rem cinsinden: tarayici
   yakinlastirmasinda kenar boslugu metinle birlikte olceklenir. */
.wm-site-header__utility > .wm-cluster,
.wm-site-header__bar {
  width: min(var(--wm-wide), 100% - 2rem);
  margin-inline: auto;
}

@media (min-width: 48rem) {
  .wm-site-header__utility > .wm-cluster,
  .wm-site-header__bar {
    width: min(var(--wm-wide), 100% - 3rem);
  }
}

.wm-site-header__bar {
  min-height: 4.25rem;
  padding-block: 0.55rem;
  justify-content: flex-start;
  gap: 0.75rem;
  flex-wrap: nowrap;
}

/* Marka asla cokmez. Iki `auto` marjin serbest alani ikiye boler, boylece
   menu ortalanir; menu gizlendiginde markanin marjini tek basina kalir ve
   sag kume yine saga yaslanir. */
.wm-site-header__bar > .wm-site-header__brand {
  flex: 0 0 auto;
  min-width: 0;
  margin-inline-end: auto;
}

.wm-site-header__brand .wp-block-site-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.wm-site-header__bar > .wm-desktop-nav {
  flex: 0 1 auto;
  min-width: 0;
  margin-inline-end: auto;
}

/* WooCommerce'in ikonlari sag kumenin parcasi, serbest gezen ogeler degil. */
.wm-site-header__bar > .wp-block-woocommerce-customer-account,
.wm-site-header__bar > .wc-block-mini-cart {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
}

.wc-block-customer-account__link,
.wc-block-mini-cart__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0;
  border-radius: var(--wm-radius-sm);
  background: transparent;
  color: inherit;
}

.wc-block-customer-account__link:hover,
.wc-block-mini-cart__button:hover { background: rgb(18 50 74 / 8%); }

body.wm-kot-page .wc-block-customer-account__link:hover,
body.wm-kot-page .wc-block-mini-cart__button:hover { background: rgb(255 255 255 / 8%); }

.wm-site-header__actions {
  flex: 0 0 auto;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: nowrap;
}

/* Dokunma hedefi: 44px altina inen ikon dugmesi telefonda isabet
   ettirilemiyor. */
.wm-icon-button { min-width: 2.75rem; min-height: 2.75rem; }

@media (min-width: 64rem) {
  .wm-desktop-nav { display: flex; }

  .wm-drawer-toggle,
  .wm-js .wm-drawer-toggle,
  .wm-mobile-drawer,
  .wm-js .wm-mobile-drawer { display: none; }
}

/* Dar ekranda metin dugmeleri kalkar; hesap islevi WooCommerce'in kendi
   ikonuyla zaten temsil ediliyor. Secici `__actions` icini hedefler -
   dugmeler cubugun dogrudan cocugu degil. */
/*
   Dar ekranda cubukta yalniz dort sey kalir: marka, sepet ve cekmece
   dugmesi. Arama, hesap ve B2B eylemleri cekmecede zaten var; cubukta
   tekrarlanmalari 420px'de 112px tasma uretiyordu. Olculen sonuc: 320px'e
   kadar tasma sifir.
*/
@media (max-width: 47.99rem) {
  .wm-site-header__bar { gap: 0.4rem; }
  .wm-site-header__utility { display: none; }

  .wm-site-header__actions .wm-site-header__account,
  .wm-site-header__actions .wm-icon-button:not(.wm-drawer-toggle),
  .wm-site-header__bar > .wp-block-woocommerce-customer-account { display: none; }

  .wm-js .wm-drawer-toggle { display: inline-flex; }
}

@media (max-width: 29.99rem) {
  .wm-site-header__brand .wp-block-site-title { font-size: 1rem; }
  .wm-site-header__actions .wm-button--small { padding-inline: 0.55rem; font-size: 0.7rem; }
  .wm-site-header__actions .wm-icon-button { min-width: 2.5rem; }
}

/* ===========================================================================
   Header ve acilir menu duzeltmesi (CP39)
   ---------------------------------------------------------------------------
   Olculen hatalar:

   1. Sticky calismiyordu. `position: sticky` ic div'deydi, ama sarmalayici
      <header> kutusu yalnizca header kadar yuksek. Sticky bir oge yalnizca
      ebeveyninin kutusu icinde hareket edebilir, o kutu da header'la ayni
      yukseklikte oldugu icin hicbir yere yapisamiyordu: sayfa kaydirildiginda
      menu yukari kaciyor, acilan liste ekranin 6000px ustunde kaliyordu.

   2. Acilir liste beyaz zeminde siyah yaziydi. WordPress'in varsayilani
      `background-color: inherit`; Kot sayfasinda ise ust katman koyu.
=========================================================================== */

/* Sticky, sarmalayici <header> ogesine tasindi - hareket alani artik sayfanin
   tamami. Ic div notr birakildi ki iki sticky baglam olusmasin. */
.wp-site-blocks > header.wp-block-template-part {
  position: sticky;
  inset-block-start: 0;
  z-index: 1000;
}

.admin-bar .wp-site-blocks > header.wp-block-template-part { inset-block-start: 32px; }

@media screen and (max-width: 782px) {
  .admin-bar .wp-site-blocks > header.wp-block-template-part { inset-block-start: 46px; }
}

.wm-site-header {
  position: static;
  inset-block-start: auto;
}

/* --- Acilir liste -------------------------------------------------------- */

.wm-desktop-nav .wp-block-navigation__submenu-container {
  min-width: 15rem;
  padding-block: 0.35rem;
  border-radius: var(--wm-radius-sm);
  box-shadow: 0 18px 40px rgb(7 26 43 / 18%);
}

.wm-desktop-nav .wp-block-navigation__submenu-container a {
  padding-block: 0.55rem;
}

/* Koyu yuzeyde liste de koyu. `inherit` burada ise yaramiyor cunku listenin
   kendi zemini var. */
body.wm-kot-page .wm-desktop-nav .wp-block-navigation__submenu-container {
  background-color: #10161b;
  border: 1px solid #2b3740;
  box-shadow: 0 18px 40px rgb(0 0 0 / 55%);
}

body.wm-kot-page .wm-desktop-nav .wp-block-navigation__submenu-container a,
body.wm-kot-page .wm-desktop-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  color: #dfe7ec;
}

body.wm-kot-page .wm-desktop-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
  background: #1e2830;
  color: #74aecb;
}

/* Ust baslik bir buton oldugu icin klavyeyle de acilabilir olmali. */
.wm-desktop-nav .wp-block-navigation-submenu__toggle:focus-visible {
  outline: 2px solid var(--wm-color-wind-600);
  outline-offset: 2px;
}

body.wm-kot-page .wm-desktop-nav .wp-block-navigation-submenu__toggle:focus-visible {
  outline-color: #e4ff3b;
}
