/*!
 * GPLlib · 隐私同意弹窗（英文站专用）
 *
 * 与 template-parts/privacy-consent.php + assets/frontend/js/modules/privacy-consent.js 配套。
 * 由 inc/Core/Assets.php 仅在 SiteLang::is_en() 时入队。
 *
 * 定位：右下角悬浮卡片（移动端退化为贴底全宽），不遮挡主内容、不锁滚动。
 */

.gpl-privacy-consent {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1030; /* 低于结账/搜索弹层，高于返回顶部按钮 */
    width: 460px;
    /* 减 48 而非 32：右侧 24px 定位偏移之外，左侧也留同样的 24px 余量，
       481–560px 这段窄屏才不会一边贴边一边留白 */
    max-width: calc(100vw - 48px);
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    box-sizing: border-box;
    padding: 18px 20px 16px;
    background: var(--gpl-bg-white, #fff);
    border: 1px solid var(--gpl-border-tertiary, #e8e6dc);
    border-radius: var(--gpl-radius-lg, 1rem);
    box-shadow: 0 12px 40px rgba(20, 20, 19, 0.14);
    font-family: var(--gpl-font-sans);
    animation: gpl-privacy-in 220ms ease-out both;
}
.gpl-privacy-consent[hidden] { display: none; }

@keyframes gpl-privacy-in {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .gpl-privacy-consent { animation: none; }
}

/* 关闭按钮（手动关闭：本次会话内不再出现，不写入任何同意选择） */
.gpl-privacy-consent__close {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 28px;
    height: 28px;
    padding: 0;
    line-height: 1;
    font-size: 22px;
    color: var(--gpl-fg-tertiary, #5e5d59);
    background: transparent;
    border: 0;
    border-radius: var(--gpl-radius-sm, 0.5rem);
    cursor: pointer;
    transition: background-color 150ms, color 150ms;
}
.gpl-privacy-consent__close:hover {
    background: var(--gpl-bg-secondary, #f5f4ed);
    color: var(--gpl-fg-primary, #141413);
}

.gpl-privacy-consent__title {
    margin: 0 28px 6px 0;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--gpl-fg-primary, #141413);
}

.gpl-privacy-consent__desc {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--gpl-fg-tertiary, #5e5d59);
}

/* ── 偏好面板 ── */
.gpl-privacy-consent__prefs {
    margin-top: 12px;
    padding-top: 11px;
    border-top: 1px solid var(--gpl-border-tertiary, #e8e6dc);
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.gpl-privacy-consent__prefs[hidden] { display: none; }

.gpl-privacy-consent__pref {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
}
.gpl-privacy-consent__pref.is-locked { cursor: default; opacity: 0.7; }
.gpl-privacy-consent__pref input {
    margin: 2px 0 0;
    width: 16px;
    height: 16px;
    accent-color: var(--gpl-clay, #d97757);
    flex: none;
}
.gpl-privacy-consent__pref-body { display: block; }
.gpl-privacy-consent__pref-name {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--gpl-fg-primary, #141413);
}
.gpl-privacy-consent__pref-name em { font-style: normal; font-weight: 400; color: var(--gpl-fg-tertiary, #5e5d59); }
.gpl-privacy-consent__pref-hint {
    display: block;
    margin-top: 1px;
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--gpl-fg-tertiary, #5e5d59);
}

/* ── 操作区 ── */
.gpl-privacy-consent__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
}
.gpl-privacy-consent__btn {
    height: 34px;
    padding: 0 14px;
    font-size: 12.5px;
}
.gpl-privacy-consent__btn--plain {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--gpl-font-sans);
    font-weight: 500;
    color: var(--gpl-fg-secondary, #30302e);
    background: transparent;
    border: 1px solid transparent;
    border-radius: var(--gpl-radius-sm, 0.5rem);
    cursor: pointer;
    transition: background-color 150ms, color 150ms;
}
.gpl-privacy-consent__btn--plain:hover {
    background: var(--gpl-bg-secondary, #f5f4ed);
    color: var(--gpl-fg-primary, #141413);
}

/* 隐私政策链接：接在正文末尾同段内，不另起一行 */
.gpl-privacy-consent__policy {
    color: var(--gpl-clay-interactive, #c96442);
    text-decoration: underline;
    white-space: nowrap; /* "Read our Privacy Policy." 不在句中断行 */
}
.gpl-privacy-consent__policy:hover { color: var(--gpl-clay, #d97757); }

/* 移动端：贴底全宽。三颗按钮在窄屏必然换行，故等宽平铺而非挤在一行 */
@media (max-width: 480px) {
    .gpl-privacy-consent {
        right: 12px;
        left: 12px;
        bottom: 12px;
        width: auto;
        max-width: none;
        padding: 16px 16px 14px;
    }
    .gpl-privacy-consent__actions > .gpl-privacy-consent__btn { flex: 1 1 auto; }
}

/* 极窄屏（≤360px）：按默认内边距三颗按钮会各占一行，收窄留白挤回两行 */
@media (max-width: 360px) {
    .gpl-privacy-consent__btn { padding: 0 10px; }
    .gpl-privacy-consent__actions { gap: 6px; }
}
