
.pfm-wrap,
.pfm-featured-wrap {
  --pfm-color-accent: var(--wp--preset--color--primary, var(--global-palette1, currentColor));
  --pfm-color-accent-contrast: var(--wp--preset--color--base, var(--global-palette9, #fff));
  --pfm-color-text: var(--wp--preset--color--foreground, var(--global-palette3, inherit));
  --pfm-color-muted: var(--wp--preset--color--contrast-3, var(--global-palette5, #666));
  --pfm-color-surface: var(--wp--preset--color--base, var(--global-palette9, transparent));
  --pfm-color-border: color-mix(in srgb, var(--pfm-color-text) 12%, transparent);
  --pfm-color-soft: color-mix(in srgb, var(--pfm-color-accent) 10%, var(--pfm-color-surface));
  --pfm-status-green-bg: #dcfce7;
  --pfm-status-green-text: #166534;
  --pfm-status-yellow-bg: #fef3c7;
  --pfm-status-yellow-text: #92400e;
  --pfm-status-red-bg: #fee2e2;
  --pfm-status-red-text: #991b1b;
  --pfm-status-neutral-bg: #e5e7eb;
  --pfm-status-neutral-text: #374151;
  --pfm-expiry-color: var(--pfm-status-yellow-text);
  --pfm-wrap-max-width: 1100px;
  --pfm-grid-min-width: 260px;
  --pfm-grid-gap: 24px;
  --pfm-card-radius: 14px;
  --pfm-card-gap: 14px;
  --pfm-border-width: 1px;
  --pfm-pagination-radius: 10px;
  --pfm-badge-radius: 999px;
  --pfm-intro-margin-bottom: 28px;
  --pfm-intro-color: var(--pfm-color-text);
  --pfm-intro-font-family: inherit;
  --pfm-intro-align: center;
  --pfm-card-bg: var(--pfm-color-surface);
  --pfm-card-shadow: none;
  --pfm-card-margin: 0;
  --pfm-card-padding: 18px;
  --pfm-logo-width: 180px;
  --pfm-logo-align: center;
  --pfm-active-badge-bg: var(--pfm-color-soft);
  --pfm-active-badge-text: var(--pfm-color-text);
  --pfm-active-badge-font-family: inherit;
  --pfm-active-badge-font-size: 12px;
  --pfm-title-link-color: inherit;
  --pfm-title-font-family: inherit;
  --pfm-title-font-size: inherit;
  --pfm-description-color: inherit;
  --pfm-description-font-family: inherit;
  --pfm-description-font-size: inherit;
  --pfm-button-bg: var(--pfm-color-accent);
  --pfm-button-size: 0.55em 1.2em;
  --pfm-button-text-color: var(--pfm-color-accent-contrast);
  --pfm-button-font-family: inherit;
  --pfm-button-text-size: inherit;
}

.pfm-wrap,
.pfm-featured-wrap {
  color: var(--pfm-color-text);
  font: inherit;
  display: block;
  box-sizing: border-box;
}

.pfm-wrap,
.pfm-featured-wrap {
  width: min(100%, var(--pfm-wrap-max-width, 1100px));
  max-width: var(--pfm-wrap-max-width, 1100px);
  margin-left: auto !important;
  margin-right: auto !important;
  align-self: center;
}

.pfm-wrap *,
.pfm-featured-wrap * {
  font-family: inherit;
  box-sizing: border-box;
}

.pfm-wrap .pfm-intro,
.pfm-featured-wrap .pfm-intro {
  margin-bottom: var(--pfm-intro-margin-bottom);
  margin-left: auto;
  margin-right: auto;
  text-align: var(--pfm-intro-align);
}

.pfm-wrap .pfm-intro p,
.pfm-featured-wrap .pfm-intro p {
  line-height: inherit;
  color: var(--pfm-intro-color);
  font-family: var(--pfm-intro-font-family);
  margin-left: auto;
  margin-right: auto;
}

.pfm-wrap .pfm-grid,
.pfm-featured-wrap .pfm-featured-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(var(--pfm-grid-min-width), 1fr));
  gap: var(--pfm-grid-gap);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.pfm-wrap .pfm-category-heading,
.pfm-featured-wrap .pfm-category-heading {
  grid-column: 1 / -1;
  margin: 10px 0 -4px;
  color: inherit;
  text-align: center;
}

.pfm-wrap .pfm-card,
.pfm-featured-wrap .pfm-card {
  border: var(--pfm-border-width) solid var(--pfm-color-border);
  border-radius: var(--pfm-card-radius);
  padding: var(--pfm-card-padding);
  margin: var(--pfm-card-margin);
  background: var(--pfm-card-bg);
  display: flex;
  flex-direction: column;
  gap: var(--pfm-card-gap);
  height: 100%;
  color: inherit;
  text-align: center;
  align-items: center;
  justify-content: flex-start;
  box-shadow: var(--pfm-card-shadow);
}

.pfm-wrap .pfm-logo,
.pfm-featured-wrap .pfm-logo {
  min-height: 70px;
  display: flex;
  align-items: center;
  justify-content: var(--pfm-logo-align);
  width: 100%;
  text-align: center;
}

.pfm-wrap .pfm-logo-img,
.pfm-featured-wrap .pfm-logo-img {
  max-width: var(--pfm-logo-width);
  width: auto;
  height: auto;
  display: block;
  margin-left: 0;
  margin-right: 0;
}

.pfm-wrap .pfm-content,
.pfm-featured-wrap .pfm-content {
  width: 100%;
  text-align: center;
}

.pfm-wrap .pfm-title,
.pfm-featured-wrap .pfm-title {
  line-height: 1.3;
  margin: 0 0 10px;
  text-align: center;
  font-family: var(--pfm-title-font-family);
  font-size: var(--pfm-title-font-size);
}

.pfm-wrap .pfm-title a,
.pfm-featured-wrap .pfm-title a {
  color: var(--pfm-title-link-color);
  text-decoration: none;
}

.pfm-wrap .pfm-title a:hover,
.pfm-wrap .pfm-title a:focus,
.pfm-featured-wrap .pfm-title a:hover,
.pfm-featured-wrap .pfm-title a:focus {
  color: var(--pfm-title-link-color);
  opacity: 0.9;
}

.pfm-wrap .pfm-description,
.pfm-featured-wrap .pfm-description {
  margin: 0;
  line-height: 1.65;
  color: var(--pfm-description-color);
  text-align: center;
  font-family: var(--pfm-description-font-family);
  font-size: var(--pfm-description-font-size);
}

.pfm-wrap .pfm-link-wrap,
.pfm-featured-wrap .pfm-link-wrap {
  margin-top: 12px;
  text-align: center;
}

.pfm-wrap .pfm-visit-link,
.pfm-featured-wrap .pfm-visit-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.pfm-wrap .pfm-visit-link.button,
.pfm-featured-wrap .pfm-visit-link.button {
  background: var(--pfm-button-bg);
  color: var(--pfm-button-text-color);
  border-color: var(--pfm-button-bg);
  border-width: var(--pfm-border-width);
  border-style: solid;
  border-radius: 10px;
  padding: var(--pfm-button-size);
  font-family: var(--pfm-button-font-family);
  font-size: var(--pfm-button-text-size);
}

.pfm-wrap .pfm-visit-link.button:hover,
.pfm-wrap .pfm-visit-link.button:focus,
.pfm-featured-wrap .pfm-visit-link.button:hover,
.pfm-featured-wrap .pfm-visit-link.button:focus {
  filter: brightness(0.96);
  color: var(--pfm-button-text-color);
}

.pfm-wrap .page-numbers {
  list-style: none;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  padding: 0;
  margin: 34px 0 0;
}

.pfm-wrap .page-numbers li {
  margin: 0;
}

.pfm-wrap .page-numbers a,
.pfm-wrap .page-numbers span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 8px 12px;
  border: var(--pfm-border-width) solid var(--pfm-color-border);
  border-radius: var(--pfm-pagination-radius);
  text-decoration: none;
  color: inherit;
  background: var(--pfm-color-surface);
}

.pfm-wrap .page-numbers a:hover,
.pfm-wrap .page-numbers a:focus {
  border-color: var(--pfm-color-accent);
  color: var(--pfm-color-accent);
}

.pfm-wrap .page-numbers .current {
  font-weight: 700;
  background: var(--pfm-color-accent);
  color: var(--pfm-color-accent-contrast);
  border-color: var(--pfm-color-accent);
}

.pfm-tools-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-top: 20px;
}

.pfm-tool-card {
  background: var(--pfm-color-surface);
  border: var(--pfm-border-width) solid var(--pfm-color-border);
  border-radius: var(--pfm-card-radius);
  padding: 20px;
  box-shadow: var(--pfm-card-shadow);
}

.pfm-sortable-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.pfm-sortable-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  margin: 0 0 10px;
  background: var(--pfm-color-surface);
  border: var(--pfm-border-width) solid var(--pfm-color-border);
  border-radius: 12px;
  cursor: move;
}

.pfm-muted {
  color: var(--pfm-color-muted);
  font-size: 12px;
  margin-left: auto;
}

.pfm-wrap .pfm-meta-row,
.pfm-featured-wrap .pfm-meta-row {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
  justify-content: center;
  align-items: center;
}

.pfm-mini-badge,
.pfm-admin-badge,
.pfm-badge-green,
.pfm-badge-yellow,
.pfm-badge-red,
.pfm-badge-neutral {
  display: inline-flex;
  align-items: center;
  padding: 4px 9px;
  border-radius: var(--pfm-badge-radius);
  font-size: 12px;
  line-height: 1.2;
  font-weight: 600;
}

.pfm-wrap .pfm-mini-badge,
.pfm-featured-wrap .pfm-mini-badge {
  background: var(--pfm-active-badge-bg);
  color: var(--pfm-active-badge-text);
  font-family: var(--pfm-active-badge-font-family);
  font-size: var(--pfm-active-badge-font-size);
}

.pfm-badge-neutral {
  background: var(--pfm-color-soft);
  color: var(--pfm-color-text);
}

.pfm-admin-badge.pfm-badge-green,
.pfm-badge-green {
  background: var(--pfm-status-green-bg);
  color: var(--pfm-status-green-text);
}

.pfm-admin-badge.pfm-badge-yellow,
.pfm-badge-yellow {
  background: var(--pfm-status-yellow-bg);
  color: var(--pfm-status-yellow-text);
}

.pfm-admin-badge.pfm-badge-red,
.pfm-badge-red {
  background: var(--pfm-status-red-bg);
  color: var(--pfm-status-red-text);
}

.pfm-admin-badge.pfm-badge-neutral {
  background: var(--pfm-status-neutral-bg);
  color: var(--pfm-status-neutral-text);
}

.pfm-wrap .pfm-expiry,
.pfm-featured-wrap .pfm-expiry {
  margin: 10px 0 0;
  font-size: 13px;
  color: var(--pfm-expiry-color);
  text-align: center;
}

.pfm-featured-wrap {
  margin: 20px 0;
}

.pfm-featured-wrap h3 {
  margin-bottom: 16px;
  color: inherit;
  text-align: center;
}
