.wjpc-banner{
  position:fixed;
  left:50%;
  bottom:18px;
  transform:translate(-50%, 0);
  width:min(1080px, calc(100% - 32px));
  background:#0f1a15;
  color:#e7f0ea;
  border:1px solid rgba(231,240,234,.18);
  border-radius:14px;
  box-shadow:0 18px 48px rgba(0,0,0,.24);
  padding:16px;
  display:flex;
  align-items:center;
  gap:14px;
  z-index:99999;
  transition:transform 260ms ease, opacity 260ms ease;
}
.wjpc-banner.is-closing{
  transform:translate(-50%, 140%);
  opacity:0;
  pointer-events:none;
}
.wjpc-text{flex:1; display:grid; gap:4px;}
.wjpc-text p{margin:0; color:rgba(231,240,234,.82); line-height:1.35;}
.wjpc-banner__privacy{color:#fff; text-decoration:underline; text-underline-offset:2px;}
.wjpc-actions{display:flex; gap:8px; flex-wrap:wrap;}
.wjpc-btn{
  border-radius:10px;
  border:1px solid rgba(231,240,234,.28);
  background:rgba(231,240,234,.12);
  color:#e7f0ea;
  padding:10px 14px;
  font-weight:700;
  cursor:pointer;
}
.wjpc-btn--primary{background:linear-gradient(135deg, #2f7a63, #2b715b); border-color:rgba(231,240,234,.32);}
.wjpc-btn:hover{transform:translateY(-1px); box-shadow:0 10px 26px rgba(0,0,0,.18);}
.wjpc-btn:focus-visible,.wjpc-reopen:focus-visible,.wjpc-modal__close:focus-visible,.wjpc-privacy-link:focus-visible,.wjpc-text-link:focus-visible{outline:3px solid #1e6bff; outline-offset:3px;}
.wjpc-reopen{position:fixed; left:16px; bottom:16px; z-index:99998; border:1px solid rgba(12,27,22,.2); border-radius:999px; background:#fff; color:#0b120e; padding:9px 13px; box-shadow:0 10px 28px rgba(0,0,0,.16); font-size:13px; font-weight:700; cursor:pointer;}
.wjpc-reopen--icon{display:grid; place-items:center; width:44px; height:44px; padding:0;}
.wjpc-reopen__icon{width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;}
.wjpc-visually-hidden{position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important;}
.wjpc-reopen[hidden]{display:none;}

@media (max-width:640px){
  .wjpc-banner{flex-direction:column; align-items:flex-start; max-height:calc(100vh - 24px); overflow:auto; bottom:12px;}
  .wjpc-actions{width:100%; justify-content:flex-start;}
  .wjpc-actions .wjpc-btn{flex:1 1 100%;}
  .wjpc-reopen{left:10px; bottom:10px; max-width:calc(100% - 20px);}
}

/* Settings component */
.wjpc-settings{border:1px solid rgba(12,27,22,.12); border-radius:14px; padding:16px; background:#fff; box-shadow:0 14px 36px rgba(0,0,0,.08); max-width:840px;}
.wjpc-settings h2{margin:0 0 8px;}
.wjpc-settings p{margin:0 0 12px; color:rgba(12,27,22,.78);}
.wjpc-switches{display:grid; gap:10px; margin-bottom:12px; border:0; padding:0;}
.wjpc-switches label{display:flex; align-items:center; gap:8px; font-weight:700;}
.wjpc-switches input{width:18px; height:18px;}
.wjpc-settings .wjpc-btn{margin-top:4px;}
.wjpc-note{margin-top:10px; color:rgba(12,27,22,.7); font-size:14px;}

/* Modal */
.wjpc-modal{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(0,0,0,.5);
  backdrop-filter:blur(4px);
  z-index:100000;
  padding:0;
}
.wjpc-modal[hidden]{display:none;}
.wjpc-modal__dialog{
  position:relative;
  width:min(620px, calc(100% - 32px));
  background:#ffffff;
  color:#0b120e;
  border-radius:16px;
  padding:24px;
  box-shadow:0 28px 80px rgba(0,0,0,.28);
  max-height:90vh;
  overflow:auto;
}
.wjpc-modal-open{overflow:hidden;}
.wjpc-modal__dialog h2{margin:0 0 10px; font-size:22px;}
.wjpc-modal__dialog p{margin:0 0 12px; color:rgba(12,27,22,.78);}
.wjpc-legal-basis{font-size:14px;}
.wjpc-necessary{display:grid; gap:3px; margin:14px 0; padding:12px; border-radius:10px; background:#f1f5f3;}
.wjpc-necessary span{font-size:14px; color:rgba(12,27,22,.74);}
.wjpc-modal__actions{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px;}
.wjpc-withdraw-info{margin-top:14px!important; font-size:14px;}
.wjpc-privacy-link{color:#155b47; font-weight:700;}
.wjpc-services{margin:14px 0; border-top:1px solid rgba(12,27,22,.12); padding-top:12px;}
.wjpc-services summary{cursor:pointer; font-weight:700;}
.wjpc-services__list{display:grid; gap:10px; margin-top:10px;}
.wjpc-service{display:grid; gap:3px; padding:10px; border:1px solid rgba(12,27,22,.1); border-radius:10px;}
.wjpc-service span,.wjpc-service a{font-size:13px;}
.wjpc-policy-version{display:block; margin-top:12px; color:rgba(12,27,22,.58);}
.wjpc-public-services{display:grid; gap:12px;}
.wjpc-public-services article{display:grid; gap:4px; padding:14px; border:1px solid rgba(12,27,22,.12); border-radius:12px;}
.wjpc-processing-notice{margin:1.5rem 0; padding:1.25rem; border:1px solid rgba(12,27,22,.12); border-radius:12px; background:rgba(235,246,242,.5);}
.wjpc-processing-notice h3{margin-top:0;}
.wjpc-processing-notice ul{display:grid; gap:.55rem; padding-left:1.25rem;}
.wjpc-processing-notice p:last-child{margin-bottom:0;}
.wjpc-profile-links,.wjpc-modal__legal-links{display:inline-flex; align-items:center; flex-wrap:wrap; gap:5px;}
.wjpc-text-link{appearance:none; border:0; background:transparent; color:inherit; font:inherit; padding:0; text-decoration:underline; text-underline-offset:2px; cursor:pointer;}
.wjpc-modal__legal-links a,.wjpc-modal__legal-links .wjpc-text-link{color:#155b47; font-weight:700;}
.wjpc-modal__close{
  position:absolute;
  top:12px;
  right:12px;
  width:34px;
  height:34px;
  border-radius:10px;
  border:1px solid rgba(12,27,22,.12);
  background:#f5f7f6;
  cursor:pointer;
  font-size:18px;
  line-height:1;
}
