:root{
  --pcc-purple:#493e95;
  --pcc-accent:#b53089;
  --pcc-bg:#f7f8fc;
  --pcc-text:#2f3552;
  --pcc-muted:#646a83;
  --pcc-white:#fff;
  --pcc-border:rgba(73,62,149,.14);
  --pcc-shadow:0 6px 26px rgba(24,21,55,.13);
  --pcc-radius:12px;
}
.pcc-root,.pcc-root *{box-sizing:border-box}
.pcc-root{font-family:inherit;color:var(--pcc-text);font-size:14px;line-height:1.5}
.pcc-root button{margin:0;font-family:inherit;text-transform:none;letter-spacing:normal;text-shadow:none;box-shadow:none}

/* ---------- Banner ---------- */
.pcc-banner{
  position:fixed;left:50%;bottom:14px;z-index:2147482000;
  width:min(760px,calc(100vw - 28px));
  display:flex;flex-wrap:wrap;align-items:center;gap:9px 16px;
  padding:11px 14px;
  background:rgba(255,255,255,.98);
  backdrop-filter:saturate(180%) blur(6px);
  border:1px solid rgba(73,62,149,.10);
  border-radius:var(--pcc-radius);
  box-shadow:var(--pcc-shadow);
  opacity:0;visibility:hidden;transform:translate(-50%,10px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
}
.pcc-banner.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0)}

.pcc-banner-message{display:flex;align-items:flex-start;gap:9px;flex:1 1 300px;min-width:0}
.pcc-banner-copy{min-width:0;flex:1}
.pcc-banner-copy p{margin:0;color:var(--pcc-muted);font:400 13px/1.5 inherit}

/* Inline links live in the same paragraph, so they cost no extra row.
   The policy link is underlined (leaves the site), Preferences is not (opens a dialog). */
.pcc-root .pcc-privacy,.pcc-root .pcc-link{
  display:inline;padding:0;border:0;background:none;
  color:var(--pcc-purple)!important;font:600 12.5px/1.5 inherit;cursor:pointer;
}
.pcc-root .pcc-privacy{text-decoration:underline;text-underline-offset:2px}
.pcc-root .pcc-link{text-decoration:none}
.pcc-root .pcc-link:hover{text-decoration:underline;text-underline-offset:2px}
.pcc-root .pcc-privacy:hover,.pcc-root .pcc-link:hover{color:var(--pcc-accent)!important}
.pcc-sep{
  display:inline-block;width:1px;height:11px;margin:0 9px;
  vertical-align:-1px;background:rgba(73,62,149,.28);
}

/* ---------- Cookie mark ---------- */
.pcc-cookie-icon{width:20px;height:20px;flex:0 0 20px;margin-top:1px;display:inline-flex}
.pcc-cookie-icon svg{display:block;width:100%;height:100%}
.pcc-cookie-base{fill:rgba(181,48,137,.15)}
.pcc-cookie-chip{fill:var(--pcc-accent)}

/* ---------- Buttons ---------- */
.pcc-banner-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-left:auto}
.pcc-root .pcc-btn{
  appearance:none;border:1px solid transparent;border-radius:8px;
  min-height:36px;padding:8px 15px;
  font:600 12.5px/1.25 inherit;white-space:nowrap;cursor:pointer;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
.pcc-root .pcc-btn-primary{background:var(--pcc-accent);border-color:var(--pcc-accent);color:var(--pcc-white)}
.pcc-root .pcc-btn-primary:hover{background:#9d2876;border-color:#9d2876}
.pcc-root .pcc-btn-secondary{background:var(--pcc-white);color:var(--pcc-purple);border-color:rgba(73,62,149,.32)}
.pcc-root .pcc-btn-secondary:hover{background:rgba(73,62,149,.05);border-color:var(--pcc-purple)}
.pcc-btn:focus-visible,.pcc-link:focus-visible,.pcc-privacy:focus-visible,.pcc-modal-close:focus-visible,.pcc-reopen:focus-visible,.pcc-switch input:focus-visible+span{outline:3px solid rgba(181,48,137,.26);outline-offset:2px}

/* ---------- Reopen control ---------- */
.pcc-reopen{
  position:fixed;left:14px;bottom:14px;z-index:2147481900;
  display:none;align-items:center;justify-content:center;
  width:38px;height:38px;padding:0;
  appearance:none;border:1px solid var(--pcc-border);border-radius:50%;
  background:rgba(255,255,255,.97);box-shadow:0 3px 12px rgba(35,31,73,.12);
  color:var(--pcc-purple);cursor:pointer;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.pcc-reopen.is-visible{display:inline-flex}
.pcc-reopen:hover{border-color:var(--pcc-purple);box-shadow:0 4px 16px rgba(35,31,73,.18)}
.pcc-reopen .pcc-cookie-icon{width:19px;height:19px;flex-basis:19px;margin:0}
.pcc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Preferences dialog ---------- */
.pcc-modal-wrap[hidden]{display:none!important}
.pcc-modal-wrap{position:fixed;inset:0;z-index:2147482100;display:grid;place-items:center;padding:16px}
.pcc-backdrop{position:absolute;inset:0;background:rgba(25,22,50,.42)}
.pcc-modal{position:relative;width:min(440px,100%);max-height:min(640px,calc(100vh - 32px));overflow:auto;background:var(--pcc-bg);border:1px solid var(--pcc-border);border-top:3px solid var(--pcc-accent);border-radius:var(--pcc-radius);box-shadow:0 18px 55px rgba(25,22,50,.28);padding:18px;outline:none}
.pcc-modal h2{margin:0 32px 5px 0;color:var(--pcc-text);font:700 17px/1.35 inherit;text-transform:none;letter-spacing:0}
.pcc-modal-intro{margin:0 0 11px;color:var(--pcc-muted);font:400 12.5px/1.5 inherit}
.pcc-modal-close{position:absolute;top:8px;right:9px;width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:var(--pcc-muted);font:400 22px/28px Arial,sans-serif;cursor:pointer}
.pcc-modal-close:hover{background:rgba(73,62,149,.07);color:var(--pcc-purple)}
.pcc-category{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid rgba(73,62,149,.11);cursor:default}
label.pcc-category{cursor:pointer}
.pcc-category-copy{display:flex;flex-direction:column;gap:2px}
.pcc-category-copy strong{color:var(--pcc-text);font-size:13px}
.pcc-category-copy span{color:var(--pcc-muted);font-size:11.5px;line-height:1.45}
.pcc-always{white-space:nowrap;color:var(--pcc-purple);font-size:10.5px;font-weight:700;background:rgba(73,62,149,.07);padding:4px 7px;border-radius:999px}
.pcc-switch{position:relative;width:40px;height:22px;flex:none}
.pcc-switch input{position:absolute;opacity:0;width:1px;height:1px}
.pcc-switch span{display:block;width:40px;height:22px;border-radius:999px;background:#c8ccd8;transition:background .18s ease;position:relative}
.pcc-switch span:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:transform .18s ease}
.pcc-switch input:checked+span{background:var(--pcc-purple)}
.pcc-switch input:checked+span:after{transform:translateX(18px)}
.pcc-modal-actions{display:flex;gap:12px;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid rgba(73,62,149,.11)}
.pcc-modal-actions .pcc-privacy{margin:0;font-size:11.5px}
.pcc-modal-actions .pcc-btn{min-width:138px}
body.pcc-modal-open{overflow:hidden}

/* ---------- Desktop refinements ---------- */
/* Wider card so the copy sits on one line and both inline links share the second.
   The mark grows to roughly the height of those two lines and centres against them. */
@media (min-width:681px){
  .pcc-banner{width:min(920px,calc(100vw - 40px));padding:12px 16px}
  .pcc-banner-message{align-items:center;gap:12px}
  .pcc-cookie-icon{width:34px;height:34px;flex:0 0 34px;margin-top:0}
}
/* Only force the links onto their own row once there is room for the copy to fit on one.
   Between 681px and 900px they keep flowing inline so nothing wraps awkwardly. */
@media (min-width:900px){
  .pcc-banner-links{display:block;margin-top:1px}
}

/* ---------- Mobile ---------- */
@media (max-width:680px){
  .pcc-banner{
    left:10px;right:10px;bottom:10px;width:auto;
    flex-direction:column;align-items:stretch;gap:10px;
    padding:12px;border-radius:12px;
    bottom:calc(10px + env(safe-area-inset-bottom,0px));
    transform:translateY(10px);
  }
  .pcc-banner.is-visible{transform:none}
  .pcc-banner-message{flex:1 1 auto}
  .pcc-banner-copy p{font-size:12.5px;line-height:1.5}
  .pcc-root .pcc-privacy,.pcc-root .pcc-link{font-size:12px}
  .pcc-sep{margin:0 8px;height:10px}
  .pcc-banner-actions{margin-left:0;gap:8px}
  .pcc-banner-actions .pcc-btn{flex:1 1 0;min-width:0;padding:8px 6px;font-size:12px;white-space:normal;overflow-wrap:break-word}
  .pcc-reopen{left:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px))}
  .pcc-modal-wrap{align-items:end;padding:10px}
  .pcc-modal{width:100%;max-height:86vh;padding:16px}
  .pcc-modal-actions{align-items:stretch;flex-direction:column-reverse;gap:9px}
  .pcc-modal-actions .pcc-btn{width:100%}
  .pcc-modal-actions .pcc-privacy{text-align:center}
}
@media (max-width:340px){
  .pcc-cookie-icon{display:none}
  .pcc-banner-actions{flex-direction:column}
  .pcc-banner-actions .pcc-btn{width:100%}
}
@media (prefers-reduced-motion:reduce){.pcc-banner,.pcc-btn,.pcc-switch span,.pcc-switch span:after{transition:none!important}}
