.pcc-banner[hidden],.pcc-modal[hidden]{display:none!important}
.pcc-banner,.pcc-modal,.pcc-floating,.pathway-cookie-open{font-family:var(--pcc-font);font-size:var(--pcc-size);box-sizing:border-box}
.pcc-banner *,.pcc-modal *,.pcc-floating *{box-sizing:border-box}

/*
 * Cache-safe/non-blocking first layer:
 * The banner root may span the viewport for positioning, but it never captures
 * clicks. Only the visible panel and its controls receive pointer events.
 * This keeps Quick Exit, accessibility controls and normal navigation usable.
 */
.pcc-banner{position:fixed;inset:0;z-index:var(--pcc-z);color:var(--pcc-text);pointer-events:none}
.pcc-banner__overlay{position:absolute;inset:0;background:var(--pcc-overlay);opacity:var(--pcc-overlay-opacity);pointer-events:none}
.pcc-banner__panel{pointer-events:auto}

/* Preferences centre is intentionally modal only while open. */
.pcc-modal{position:fixed;inset:0;z-index:calc(var(--pcc-z) + 10);color:var(--pcc-text);pointer-events:none}
.pcc-modal[data-pcc-visible="true"]{pointer-events:auto}
.pcc-modal__overlay{position:absolute;inset:0;background:var(--pcc-overlay);opacity:var(--pcc-overlay-opacity);pointer-events:auto}
.pcc-modal__panel{pointer-events:auto}

.pcc-banner__panel,.pcc-modal__panel{background:var(--pcc-bg);color:var(--pcc-text);border:1px solid var(--pcc-border);border-radius:var(--pcc-radius);box-shadow:0 16px 50px rgba(0,0,0,.24)}
.pcc-banner__panel:focus,.pcc-modal__panel:focus{outline:none}
.pcc-banner__panel{position:absolute;padding:1.1rem 1.25rem}
.pcc-banner--bar.pcc-banner--bottom .pcc-banner__panel{left:0;right:0;bottom:0;border-radius:0}
.pcc-banner--bar.pcc-banner--top .pcc-banner__panel{left:0;right:0;top:0;border-radius:0}
.pcc-banner--box.pcc-banner--bottom-left .pcc-banner__panel,.pcc-banner--box.pcc-banner--bottom-right .pcc-banner__panel{width:min(92vw,540px);bottom:1rem}
.pcc-banner--box.pcc-banner--bottom-left .pcc-banner__panel{left:1rem}
.pcc-banner--box.pcc-banner--bottom-right .pcc-banner__panel{right:1rem}
.pcc-banner--modal .pcc-banner__panel{width:min(92vw,680px);left:50%;top:50%;transform:translate(-50%,-50%)}
.pcc-banner__content{display:flex;gap:.8rem;max-width:var(--pcc-max);margin:0 auto;align-items:flex-start}
.pcc-banner__content h2,.pcc-modal h2{font:inherit;font-size:1.25em;font-weight:800;line-height:1.25;margin:0 0 .35rem;color:var(--pcc-text)}
.pcc-banner__content p,.pcc-modal p{line-height:1.55;color:var(--pcc-muted);margin:.25rem 0}
.pcc-banner__icon{font-size:1.45em;line-height:1.3}
.pcc-policy-links{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:.5rem}
.pcc-policy-links a{color:var(--pcc-secondary-text);text-decoration:underline;text-underline-offset:2px}
.pcc-banner__actions{display:flex;gap:.6rem;flex-wrap:wrap;max-width:var(--pcc-max);margin:.9rem auto 0}
.pcc-btn,.pathway-cookie-open,.pcc-floating{appearance:none;border:1px solid var(--pcc-accent);background:var(--pcc-secondary-bg);color:var(--pcc-secondary-text);border-radius:max(4px,calc(var(--pcc-radius) * .65));min-height:44px;padding:.65rem .95rem;font:inherit;font-weight:700;line-height:1.2;cursor:pointer}
.pcc-btn--primary{background:var(--pcc-accent);color:var(--pcc-accent-text)}
.pcc-btn:hover,.pathway-cookie-open:hover,.pcc-floating:hover{filter:brightness(.97)}
.pcc-btn:focus-visible,.pcc-icon-close:focus-visible,.pcc-policy-links a:focus-visible,.pathway-cookie-open:focus-visible,.pcc-floating:focus-visible,.pcc-switch input:focus-visible + .pcc-switch__visual{outline:3px solid currentColor;outline-offset:3px}
.pcc-icon-close{appearance:none;border:0;background:transparent;color:var(--pcc-text);font:inherit;font-size:1.6rem;line-height:1;cursor:pointer;min-width:44px;min-height:44px}
.pcc-banner__panel>.pcc-icon-close{position:absolute;right:.3rem;top:.3rem}
.pcc-modal__panel{position:absolute;width:min(94vw,760px);max-height:88vh;overflow:auto;left:50%;top:50%;transform:translate(-50%,-50%)}
.pcc-modal__header{display:flex;justify-content:space-between;gap:1rem;padding:1.2rem 1.25rem;border-bottom:1px solid var(--pcc-border)}
.pcc-modal__body{padding:0 1.25rem}
.pcc-modal__footer{display:flex;gap:.6rem;flex-wrap:wrap;padding:1rem 1.25rem;border-top:1px solid var(--pcc-border);position:sticky;bottom:0;background:var(--pcc-bg)}
.pcc-category{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:start;padding:1rem 0;border-bottom:1px solid var(--pcc-border)}
.pcc-category:last-child{border-bottom:0}
.pcc-category__copy p{margin:.25rem 0 0}
.pcc-switch{position:relative;display:inline-flex;align-items:center}
.pcc-switch input{position:absolute;opacity:0;width:1px;height:1px}
.pcc-switch__visual{display:block;width:48px;height:28px;border-radius:999px;background:#767676;border:2px solid transparent;position:relative;transition:.15s ease}
.pcc-switch__visual:before{content:"";position:absolute;width:20px;height:20px;left:2px;top:2px;border-radius:50%;background:#fff;transition:.15s ease}
.pcc-switch input:checked + .pcc-switch__visual{background:var(--pcc-accent)}
.pcc-switch input:checked + .pcc-switch__visual:before{transform:translateX(20px)}
.pcc-switch input:disabled + .pcc-switch__visual{opacity:.7;cursor:not-allowed}
.pcc-floating{position:fixed;z-index:calc(var(--pcc-z) - 1);display:inline-flex;gap:.45rem;align-items:center;box-shadow:0 4px 18px rgba(0,0,0,.16);pointer-events:auto}
.pcc-floating--bottom-left{left:1rem;bottom:1rem}
.pcc-floating--bottom-right{right:1rem;bottom:1rem}
.pcc-floating--left-middle{left:.5rem;top:50%;transform:translateY(-50%)}
.pcc-floating--right-middle{right:.5rem;top:50%;transform:translateY(-50%)}
.pcc-floating--icon{width:48px;height:48px;padding:0;justify-content:center;border-radius:50%}
.pcc-modal-open{overflow:hidden}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.pathway-cookie-open:not(.pcc-floating){display:inline-flex;align-items:center;justify-content:center}

/* Safety-critical controls from Pathway plugins should remain above the first-layer banner. */
#pathway-quick-exit,.pqe-button,.ptpa-launcher,.ptpa-inline-button{z-index:calc(var(--pcc-z) + 5)!important;pointer-events:auto!important}

@media(min-width:860px){.pcc-banner--bar .pcc-banner__panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.2rem;align-items:center}.pcc-banner--bar .pcc-banner__actions{margin:0;justify-content:flex-end}.pcc-banner--bar .pcc-banner__content{margin:0;max-width:none}}
@media(max-width:620px){.pcc-banner__panel{max-height:88vh;overflow:auto}.pcc-banner--box .pcc-banner__panel{left:.75rem!important;right:.75rem!important;bottom:.75rem!important;width:auto!important}.pcc-banner__actions,.pcc-modal__footer{flex-direction:column}.pcc-btn{width:100%}.pcc-floating--icon-text{max-width:calc(100vw - 2rem)}}
@media(prefers-reduced-motion:reduce){.pcc-switch__visual,.pcc-switch__visual:before{transition:none!important}}

/* Pathway safety interoperability: these controls must remain actionable while the non-modal cookie banner is visible. */
#pathway-quick-exit,
.pathway-quick-exit { z-index:2147483647!important; pointer-events:auto!important; }
.ptpa-launcher,
.ptpa-inline-button { z-index:2147483500!important; pointer-events:auto!important; }
.ptpa-backdrop { z-index:2147483501!important; }
.ptpa-panel { z-index:2147483502!important; }
