.pgfi-icons {
    display: flex;
    flex-wrap: wrap;
    gap: var(--pgfi-gap) !important;
    align-items: center;
    padding: calc(var(--pgfi-gap) / 2);
    background: var(--pgfi-bg);
}

/* 不换行时单行显示 */
.pgfi-icons.pgfi-nowrap {
    flex-wrap: nowrap;
}

/* 每行固定数量：按行分组；图标间距用 --pgfi-gap，行与行间距用 --pgfi-row-gap，二者分开 */
.pgfi-icons.pgfi-per-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--pgfi-row-gap) !important;
    overflow-x: auto; /* 窄屏时整块横向滚动，保证每行始终是 N 个 */
}
.pgfi-icons.pgfi-align-center.pgfi-per-row {
    align-items: center;
}
.pgfi-icons.pgfi-align-right.pgfi-per-row {
    align-items: flex-end;
}
/* 每行仅内容宽度，严格按“每行几个”显示，不因容器变窄而提前换行 */
.pgfi-icons.pgfi-per-row .pgfi-row {
    display: flex;
    flex-wrap: nowrap !important;
    gap: var(--pgfi-gap) !important;
    align-items: center;
    width: max-content;
    min-width: max-content; /* 防止被压窄导致行内图标折行 */
    max-width: 100%;
    flex-shrink: 0;
}
.pgfi-icons.pgfi-per-row .pgfi-row .pgfi-icon {
    flex: 0 0 auto;
    margin: 0;
}
.pgfi-icons.pgfi-align-left .pgfi-row { justify-content: flex-start; }
.pgfi-icons.pgfi-align-center .pgfi-row { justify-content: center; }
.pgfi-icons.pgfi-align-right .pgfi-row { justify-content: flex-end; }

/* 预览区：单行时强制不换行；有“每行几个”时保持行结构，不覆盖 gap */
.pgfi-preview .pgfi-icons.pgfi-nowrap {
    flex-wrap: nowrap !important;
}
.pgfi-preview .pgfi-icons.pgfi-per-row .pgfi-row {
    gap: var(--pgfi-gap) !important;
}

.pgfi-preview {
    max-width: 100%;
    overflow-x: auto;
}

.pgfi-align-left {
    justify-content: flex-start;
}

.pgfi-align-center {
    justify-content: center;
}

.pgfi-align-right {
    justify-content: flex-end;
}

.pgfi-icon {
    display: inline-flex;
    flex: 0 0 auto;
    position: relative;
    align-items: center;
    justify-content: center;
    height: var(--pgfi-icon-size);
    width: calc(var(--pgfi-icon-size) * 2.2);
    min-width: calc(var(--pgfi-icon-size) * 2.2);
    margin: 0;
    padding: 0;
    color: var(--pgfi-color);
    background: var(--pgfi-icon-bg) !important; /* 确保图标背景色设置生效 */
    border: 1px solid var(--pgfi-border);
    border-radius: var(--pgfi-radius);
    font-size: calc(var(--pgfi-icon-size) * 0.34);
    line-height: 1;
    font-weight: 600;
    letter-spacing: 0.02em;
    box-sizing: border-box;
    user-select: none;
    white-space: nowrap;
    overflow: hidden;
}

.pgfi-no-border .pgfi-icon {
    border: none;
}

.pgfi-uppercase .pgfi-icon {
    text-transform: uppercase;
}

.pgfi-img {
    display: block;
    max-width: 85%;
    max-height: 70%;
    width: auto;
    height: auto;
    padding: 0;
    box-sizing: border-box;
    object-fit: contain;
}

.pgfi-icon-paypal .pgfi-img {
    transform: scale(1);
    transform-origin: center;
}

.pgfi-icon-paypal {
    width: calc(var(--pgfi-icon-size) * 3.4);
}

.pgfi-has-icon {
    background: var(--pgfi-icon-bg) !important; /* 图标背景色：每个图标盒子背后的颜色 */
    border: 1px solid var(--pgfi-border);
    border-radius: var(--pgfi-radius);
}

