/* All theme-facing rules are scoped to plugin components. */
.wpls-ui, .wpls-cookie-table-wrap {
    font-family: var(--wpls-font, inherit);
    font-size: var(--wpls-font-size, 15px);
    line-height: 1.5;
    color: var(--wpls-text-color, #262626);
    text-align: left;
    letter-spacing: normal;
    text-transform: none;
    overflow-wrap: anywhere;
}
.wpls-ui, .wpls-ui *, .wpls-cookie-table-wrap, .wpls-cookie-table-wrap * {
    box-sizing: border-box;
}
.wpls-ui[hidden], .wpls-ui [hidden] { display: none !important; }
.wpls-ui p, .wpls-ui h2, .wpls-ui h3 {
    color: inherit;
    font-family: inherit;
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: normal;
    text-transform: none;
    margin: 0;
}
.wpls-ui h2 { font-size: 1.4em; font-weight: 700; }
.wpls-ui h3 { font-size: 1.05em; font-weight: 600; margin-bottom: 12px; }
.wpls-banner {
    position: fixed;
    left: 0;
    right: 0;
    z-index: 99998;
    background: var(--wpls-background-color, #fff);
    border: 1px solid var(--wpls-border-color, #d4d4d4);
    box-shadow: var(--wpls-shadow);
    max-height: calc(100dvh - 24px);
    overflow-y: auto;
}
.wpls-position-top { top: 0; }
.wpls-position-bottom { bottom: 0; }
.wpls-banner__container {
    width: 100%;
    max-width: var(--wpls-max-width, 1200px);
    padding: var(--wpls-spacing, 20px);
    margin: 0 auto;
}
.wpls-banner__content { display: grid; gap: 12px; }
.wpls-ui .wpls-banner__eyebrow { font-size: .85em; font-weight: 700; }
.wpls-ui .wpls-banner__text { font-size: 1em; white-space: pre-line; }
.wpls-banner__controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; }
.wpls-banner__categories, .wpls-banner__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.wpls-ui label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 8px;
    border: 1px solid var(--wpls-border-color);
    border-radius: var(--wpls-radius);
    color: inherit;
    font: inherit;
    text-transform: none;
    letter-spacing: normal;
    max-width: 100%;
}
.wpls-ui input[type="checkbox"] {
    appearance: auto;
    -webkit-appearance: checkbox;
    position: static;
    opacity: 1;
    display: inline-block;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin: 0;
    padding: 0;
    accent-color: var(--wpls-accept-color);
}
.wpls-ui input[type="checkbox"]::before, .wpls-ui input[type="checkbox"]::after { content: none; }
.wpls-ui button {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    height: auto;
    min-height: 44px;
    max-width: 100%;
    padding: 10px 14px;
    margin: 0;
    border: 1px solid var(--wpls-border-color);
    border-radius: var(--wpls-radius);
    color: var(--wpls-customize-text-color);
    background: var(--wpls-customize-color);
    font: inherit;
    font-size: .9em;
    font-weight: 600;
    line-height: 1.4;
    white-space: normal;
    overflow-wrap: anywhere;
    text-transform: none;
    letter-spacing: normal;
    text-decoration: none;
    text-shadow: none;
    box-shadow: none;
    cursor: pointer;
}
.wpls-ui .wpls-btn-primary {
    background: var(--wpls-accept-color);
    color: var(--wpls-accept-text-color);
}
.wpls-ui .wpls-btn-reject {
    background: var(--wpls-reject-color);
    color: var(--wpls-reject-text-color);
}
.wpls-ui button:hover { filter: brightness(.94); }
.wpls-ui button:focus-visible, .wpls-ui input:focus-visible, .wpls-ui a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 3px;
}
.wpls-position-box-left, .wpls-position-box-right {
    bottom: 16px;
    left: 16px;
    right: auto;
    width: min(var(--wpls-box-width, 420px), calc(100% - 32px));
    border-radius: var(--wpls-radius);
}
.wpls-position-box-right { left: auto; right: 16px; }
.wpls-position-box-left .wpls-banner__actions, .wpls-position-box-right .wpls-banner__actions { width: 100%; }
.wpls-position-box-left .wpls-btn, .wpls-position-box-right .wpls-btn { flex: 1 1 calc(50% - 8px); }
.wpls-manage-consent.wpls-ui {
    position: fixed;
    bottom: 16px;
    left: 16px;
    z-index: 99997;
    max-width: calc(100% - 32px);
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--wpls-border-color);
    border-radius: var(--wpls-radius);
    background: var(--wpls-background-color);
    color: var(--wpls-text-color);
    box-shadow: var(--wpls-shadow);
    font-family: var(--wpls-font, inherit);
    font-size: var(--wpls-font-size, 15px);
    line-height: 1.5;
    white-space: normal;
    cursor: pointer;
    appearance: none;
}
.wpls-manage-consent.wpls-manage-right { left: auto; right: 16px; }
.wpls-manage-consent:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.wpls-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(0,0,0,.5);
}
.wpls-modal__dialog {
    width: 100%;
    max-width: min(var(--wpls-max-width, 1200px), 960px);
    max-height: calc(100dvh - 40px);
    overflow-y: auto;
    background: var(--wpls-background-color);
    border: 1px solid var(--wpls-border-color);
    border-radius: var(--wpls-radius);
    padding: var(--wpls-spacing);
    box-shadow: var(--wpls-shadow);
}
.wpls-modal__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.wpls-ui .wpls-modal__close { flex: 0 0 44px; padding: 6px; font-size: 1.5em; }
.wpls-modal__lead { white-space: pre-line; }
.wpls-modal__layout { display: grid; grid-template-columns: minmax(200px, .85fr) minmax(0, 1.15fr); gap: 14px; margin-top: 16px; }
.wpls-modal__card { min-width: 0; border: 1px solid var(--wpls-border-color); border-radius: var(--wpls-radius); padding: 14px; }
.wpls-modal__categories { display: grid; gap: 10px; }
.wpls-modal__actions { display: flex; justify-content: flex-end; margin-top: 16px; }
body.wpls-modal-open { overflow: hidden; }
.wpls-policy-links { display: flex; flex-wrap: wrap; gap: 12px; }
.wpls-policy-links:has(a:not([hidden])) { margin: 8px 0; }
.wpls-ui .wpls-policy-links a { color: inherit; text-decoration: underline; font: inherit; }
.wpls-cookie-table-wrap { width: 100%; overflow-x: auto; background: var(--wpls-background-color, #fff); }
.wpls-cookie-table-wrap--modal { max-height: 260px; overflow: auto; }
.wpls-cookie-table-wrap .wpls-cookie-table { border-collapse: collapse; width: 100%; margin: 0; font: inherit; color: inherit; }
.wpls-cookie-table-wrap .wpls-cookie-table th, .wpls-cookie-table-wrap .wpls-cookie-table td {
    background: var(--wpls-background-color, #fff);
    color: inherit;
    border: 0;
    border-bottom: 1px solid var(--wpls-border-color, #d4d4d4);
    padding: 10px;
    font: inherit;
    font-size: .9em;
    text-align: left;
    vertical-align: top;
    min-width: 90px;
}
.wpls-cookie-table-wrap .wpls-cookie-table th { font-weight: 700; }
@media (max-width: 767px) {
    .wpls-banner__controls { align-items: stretch; flex-direction: column; }
    .wpls-banner__actions { width: 100%; }
    .wpls-banner__actions .wpls-btn { flex: 1 1 calc(50% - 8px); }
    .wpls-modal { padding: 12px; }
    .wpls-modal__dialog { max-height: calc(100dvh - 24px); }
    .wpls-modal__layout { grid-template-columns: minmax(0, 1fr); }
    .wpls-banner__container, .wpls-modal__dialog { padding: min(var(--wpls-spacing), 20px); }
}
