/* ============================================================
   PJ KAPTEIN WOONSUPPORT - Cookie consent & preferences
   Matches site design: black + volt-green (#39FF14), rounded, glass
   ============================================================ */
:root{ --pjc-volt:#39FF14; --pjc-ink:#0b0c0b; --pjc-line:rgba(255,255,255,.12); }

/* ---- shared scrim for the modal ---- */
.pjc-scrim{position:fixed;inset:0;z-index:10000;background:rgba(4,5,4,.62);backdrop-filter:blur(6px);
  opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s}
.pjc-scrim.open{opacity:1;visibility:visible}

/* ---- consent banner (bottom-left) ---- */
.pjc-banner{position:fixed;left:clamp(14px,3vw,28px);bottom:clamp(14px,3vw,28px);z-index:10001;
  width:min(420px,calc(100vw - 28px));
  background:linear-gradient(180deg,rgba(20,22,20,.96),rgba(10,11,10,.97));
  border:1px solid var(--pjc-line);border-radius:20px;
  box-shadow:0 30px 70px -24px rgba(0,0,0,.9), 0 0 60px -28px rgba(57,255,20,.45), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(18px) saturate(1.1);
  padding:22px 22px 20px;color:#eef0ec;
  font-family:var(--f-body,'Inter',system-ui,sans-serif);
  transform:translateY(24px) scale(.98);opacity:0;visibility:hidden;
  transition:transform .5s cubic-bezier(.22,.61,.36,1),opacity .45s ease,visibility .5s}
.pjc-banner.open{transform:none;opacity:1;visibility:visible}
.pjc-banner::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:3px;
  background:var(--pjc-volt);box-shadow:0 0 14px rgba(57,255,20,.8)}
.pjc-bhead{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.pjc-bicon{width:30px;height:30px;border-radius:9px;background:rgba(57,255,20,.12);
  display:grid;place-items:center;color:var(--pjc-volt);flex:0 0 auto}
.pjc-bicon svg{width:17px;height:17px}
.pjc-btitle{font-family:var(--f-head,'Bebas Neue',sans-serif);font-size:19px;letter-spacing:.03em;
  text-transform:uppercase;color:#fff;line-height:1}
.pjc-btext{font-size:13.5px;line-height:1.55;color:#bcc2bb;margin:0 0 16px}
.pjc-btext a{color:var(--pjc-volt);text-decoration:none}
.pjc-btext a:hover{text-decoration:underline}
.pjc-actions{display:flex;flex-direction:column;gap:9px}

/* ---- buttons ---- */
.pjc-btn{appearance:none;border:1px solid var(--pjc-line);background:rgba(255,255,255,.03);color:#eef0ec;
  font-family:var(--f-body,'Inter',sans-serif);font-size:13.5px;font-weight:600;
  padding:12px 16px;border-radius:12px;cursor:pointer;text-align:center;line-height:1.2;
  transition:background .25s,border-color .25s,color .25s,transform .2s,box-shadow .25s}
.pjc-btn:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.28)}
.pjc-btn--primary{background:var(--pjc-volt);border-color:var(--pjc-volt);color:#06210a;
  box-shadow:0 10px 30px -10px rgba(57,255,20,.6)}
.pjc-btn--primary:hover{box-shadow:0 16px 40px -12px rgba(57,255,20,.85);color:#06210a}
.pjc-btn--ghost{background:transparent}
.pjc-btn--text{border-color:transparent;background:transparent;color:#9aa39a;font-weight:500;
  text-decoration:underline;padding:6px}
.pjc-btn--text:hover{color:#fff;transform:none}
.pjc-row2{display:flex;gap:9px}
.pjc-row2 .pjc-btn{flex:1}

/* ---- preferences modal ---- */
.pjc-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%) scale(.97);z-index:10002;
  width:min(560px,calc(100vw - 28px));max-height:min(86vh,720px);overflow:auto;
  background:linear-gradient(180deg,rgba(18,20,18,.98),rgba(9,10,9,.99));
  border:1px solid var(--pjc-line);border-radius:22px;
  box-shadow:0 40px 90px -28px rgba(0,0,0,.92), 0 0 70px -30px rgba(57,255,20,.4), inset 0 1px 0 rgba(255,255,255,.06);
  color:#eef0ec;font-family:var(--f-body,'Inter',sans-serif);
  opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s,transform .45s cubic-bezier(.22,.61,.36,1)}
.pjc-modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}
.pjc-mhead{position:sticky;top:0;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  padding:24px 26px 16px;background:linear-gradient(180deg,rgba(18,20,18,.99),rgba(18,20,18,.86));
  border-bottom:1px solid var(--pjc-line)}
.pjc-mtitle{font-family:var(--f-head,'Bebas Neue',sans-serif);font-size:26px;letter-spacing:.03em;
  text-transform:uppercase;color:#fff;line-height:1;margin-bottom:6px}
.pjc-msub{font-size:13px;color:#aab0a9;line-height:1.5;max-width:42ch}
.pjc-close{flex:0 0 auto;width:40px;height:40px;border-radius:50%;border:1px solid var(--pjc-line);
  background:rgba(255,255,255,.02);color:#fff;cursor:pointer;display:grid;place-items:center;
  transition:transform .4s,border-color .3s,background .3s}
.pjc-close:hover{transform:rotate(90deg);border-color:var(--pjc-volt);background:rgba(57,255,20,.08)}
.pjc-close svg{width:18px;height:18px}
.pjc-cats{padding:8px 26px 4px}
.pjc-cat{padding:18px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.pjc-cat:last-child{border-bottom:0}
.pjc-cat-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:7px}
.pjc-cat-name{font-size:15px;font-weight:700;color:#fff;display:flex;align-items:center;gap:9px}
.pjc-tag{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--pjc-volt);background:rgba(57,255,20,.1);border:1px solid rgba(57,255,20,.3);
  padding:3px 8px;border-radius:20px}
.pjc-cat-desc{font-size:12.5px;line-height:1.55;color:#a7ada6;max-width:54ch}
.pjc-cat-desc b{color:#c9cec7;font-weight:600}

/* ---- toggle switch ---- */
.pjc-switch{flex:0 0 auto;position:relative;width:46px;height:26px;display:inline-block}
.pjc-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.pjc-track{position:absolute;inset:0;border-radius:20px;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);transition:background .3s,border-color .3s}
.pjc-track::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;
  background:#cfd3cc;transition:transform .3s cubic-bezier(.34,1.4,.5,1),background .3s}
.pjc-switch input:checked + .pjc-track{background:rgba(57,255,20,.25);border-color:var(--pjc-volt)}
.pjc-switch input:checked + .pjc-track::after{transform:translateX(20px);background:var(--pjc-volt);
  box-shadow:0 0 10px rgba(57,255,20,.9)}
.pjc-switch input:disabled{cursor:not-allowed}
.pjc-switch input:disabled + .pjc-track{background:rgba(57,255,20,.2);border-color:rgba(57,255,20,.6);opacity:.75}
.pjc-switch input:disabled + .pjc-track::after{transform:translateX(20px);background:var(--pjc-volt)}
.pjc-mfoot{position:sticky;bottom:0;display:flex;gap:10px;flex-wrap:wrap;
  padding:16px 26px 22px;background:linear-gradient(0deg,rgba(14,15,14,.99),rgba(14,15,14,.82));
  border-top:1px solid var(--pjc-line)}
.pjc-mfoot .pjc-btn{flex:1;min-width:140px}

/* ---- footer legal links (added to every page footer) ---- */
.foot-legal{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;
  padding:18px 0 4px;margin-top:6px;border-top:1px solid rgba(255,255,255,.08)}
.foot-legal a,.foot-legal .foot-legal-btn{font-family:var(--f-body,'Inter',sans-serif);
  font-size:13px;color:#9aa39a;text-decoration:none;background:none;border:0;padding:0;cursor:pointer;
  transition:color .25s}
.foot-legal a:hover,.foot-legal .foot-legal-btn:hover{color:var(--pjc-volt)}
.foot-legal .foot-legal-btn{display:inline-flex;align-items:center;gap:6px}
.foot-legal .foot-legal-btn::before{content:"";width:6px;height:6px;border-radius:50%;
  background:var(--pjc-volt);box-shadow:0 0 8px var(--pjc-volt)}

@media(max-width:600px){
  .pjc-banner{left:10px;right:10px;bottom:10px;width:auto;padding:18px 18px 16px}
  .pjc-row2{flex-direction:column}
  .pjc-mfoot{flex-direction:column}
  .pjc-mfoot .pjc-btn{width:100%}
  .foot-legal{flex-direction:column;align-items:flex-start;gap:12px}
}
@media(prefers-reduced-motion:reduce){
  .pjc-banner,.pjc-modal,.pjc-scrim,.pjc-track::after,.pjc-close{transition:none}
}
