/* WP Cookie Banner — styling */
.wcb-banner[hidden],
.wcb-modal[hidden] { display: none !important; }

.wcb-banner {
    position: fixed; left: 16px; right: 16px; bottom: 16px;
    z-index: 999999;
    background: var(--wcb-card, #fff);
    color: var(--wcb-text, #183922);
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 16px;
    box-shadow: 0 18px 44px rgba(15,23,42,0.15), 0 6px 14px rgba(15,23,42,0.08);
    padding: 22px 26px;
    font-family: inherit;
    max-width: 860px;
    margin-left: auto;
}
.wcb-banner__title { margin: 0 0 8px; font-size: 18px; font-weight: 700; color: var(--wcb-text); }
.wcb-banner__body { margin: 0 0 16px; font-size: 14px; line-height: 1.6; color: var(--wcb-muted); }
.wcb-banner__body a { color: var(--wcb-primary-dark); text-decoration: underline; }
.wcb-banner__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }

.wcb-btn {
    appearance: none;
    border: 1px solid transparent;
    padding: 11px 18px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.3px;
    cursor: pointer;
    line-height: 1;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
    font-family: inherit;
}
.wcb-btn:focus-visible { outline: 2px solid var(--wcb-primary); outline-offset: 2px; }
.wcb-btn--accept { background: var(--wcb-accept, var(--wcb-primary)); color: #fff; border-color: var(--wcb-accept, var(--wcb-primary)); box-shadow: 0 6px 14px rgba(140,182,1,0.25); }
.wcb-btn--accept:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(140,182,1,0.35); }
.wcb-btn--reject { background: var(--wcb-reject, #fff); color: var(--wcb-text); border-color: var(--wcb-reject-bd, #c8d4b8); }
.wcb-btn--reject:hover { background: #f5f7ef; }
.wcb-btn--ghost { background: transparent; color: var(--wcb-text); border-color: transparent; }
.wcb-btn--ghost:hover { background: rgba(0,0,0,0.05); }

.wcb-modal {
    position: fixed; inset: 0; z-index: 9999999;
    display: flex; align-items: center; justify-content: center;
    padding: 24px;
}
.wcb-modal__backdrop { position: absolute; inset: 0; background: rgba(24,57,34,0.55); backdrop-filter: blur(2px); }
.wcb-modal__card {
    position: relative;
    background: var(--wcb-card, #fff);
    color: var(--wcb-text);
    width: 100%;
    max-width: 640px;
    max-height: calc(100vh - 48px);
    overflow: auto;
    border-radius: 20px;
    box-shadow: 0 30px 60px rgba(15,23,42,0.35);
    padding: 28px;
}
.wcb-modal__close {
    position: absolute; top: 14px; right: 18px;
    background: transparent; border: 0;
    font-size: 28px; line-height: 1; cursor: pointer;
    color: var(--wcb-muted);
}
.wcb-modal__title { margin: 0 0 10px; font-size: 22px; font-weight: 800; color: var(--wcb-text); }
.wcb-modal__intro { margin: 0 0 18px; font-size: 14px; line-height: 1.65; color: var(--wcb-muted); }
.wcb-modal__intro a { color: var(--wcb-primary-dark); }

.wcb-modal__cats { display: flex; flex-direction: column; gap: 12px; margin-bottom: 20px; }
.wcb-cat {
    background: #f7faef;
    border: 1px solid rgba(140,182,1,0.18);
    border-radius: 12px;
    padding: 14px 16px;
}
.wcb-cat--required { background: #eef3e4; }
.wcb-cat__head { display: flex; align-items: center; gap: 12px; font-weight: 700; color: var(--wcb-text); cursor: pointer; }
.wcb-cat--required .wcb-cat__head { cursor: default; }
.wcb-cat__toggle { appearance: none; width: 40px; height: 22px; background: #d0d9c3; border-radius: 999px; position: relative; cursor: pointer; flex-shrink: 0; transition: background .15s ease; }
.wcb-cat__toggle::after { content: ''; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.2); transition: left .15s ease; }
.wcb-cat__toggle:checked { background: var(--wcb-primary); }
.wcb-cat__toggle:checked::after { left: 20px; }
.wcb-cat__toggle:disabled { opacity: 0.7; cursor: not-allowed; }
.wcb-cat__title em { font-weight: 400; color: var(--wcb-muted); font-style: italic; }
.wcb-cat__desc { margin: 8px 0 0 52px; font-size: 13px; line-height: 1.55; color: var(--wcb-muted); }

.wcb-modal__actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }

.wcb-settings-link { color: var(--wcb-primary-dark); text-decoration: underline; cursor: pointer; }

@media (max-width: 560px) {
    .wcb-banner { left: 8px; right: 8px; bottom: 8px; padding: 18px; border-radius: 14px; }
    .wcb-banner__actions { justify-content: stretch; }
    .wcb-banner__actions .wcb-btn { flex: 1 1 100%; }
    .wcb-modal__card { padding: 22px; border-radius: 16px; }
    .wcb-cat__desc { margin-left: 0; margin-top: 10px; }
}
