:root { --tj-cookie-accent: var(--tj-color-theme-primary, #1b6f93); }
.tj-cookie-sr-only { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.tj-cookie-banner { position:fixed; inset:auto 0 0; z-index:2147483645; padding:18px 24px; background:#111417; border-top:1px solid rgba(255,255,255,.12); box-shadow:0 -8px 28px rgba(0,0,0,.28); color:#fff; pointer-events:auto; isolation:isolate; animation:tjCookieUp .25s ease-out; }
.tj-cookie-banner[hidden], .tj-cookie-reopen[hidden] { display:none!important; }
.tj-cookie-banner__inner { width:min(1200px,100%); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.tj-cookie-banner p { flex:1 1 360px; margin:0; color:rgba(255,255,255,.76); font-size:14px; line-height:1.6; }
.tj-cookie-banner a { color:var(--tj-cookie-accent); text-decoration:underline; }
.tj-cookie-banner__actions { display:flex; flex-wrap:wrap; gap:10px; }
.tj-cookie-btn { position:relative; z-index:1; min-height:44px; padding:10px 18px; border:1px solid transparent; border-radius:6px; font:600 14px/1.2 inherit; cursor:pointer; pointer-events:auto; touch-action:manipulation; transition:transform .2s, opacity .2s, border-color .2s; }
.tj-cookie-btn:hover { transform:translateY(-1px); }
.tj-cookie-btn:focus-visible, .tj-cookie-modal button:focus-visible, .tj-cookie-reopen:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.tj-cookie-btn--primary { background:var(--tj-cookie-accent); color:#fff; }
.tj-cookie-btn--ghost { background:transparent; border-color:rgba(255,255,255,.3); color:#fff; }
.tj-cookie-modal { position:fixed; inset:0; z-index:2147483647; display:flex; align-items:center; justify-content:center; padding:20px; background:rgba(0,0,0,.78); opacity:0; visibility:hidden; pointer-events:none; isolation:isolate; transition:opacity .25s, visibility 0s linear .25s; }
.tj-cookie-modal.is-open { opacity:1; visibility:visible; pointer-events:auto; transition-delay:0s; }
.tj-cookie-modal__panel { position:relative; width:min(750px,100%); max-height:min(86vh,900px); overflow:auto; padding:38px 46px 44px; border:1px solid rgba(255,255,255,.13); border-radius:14px; background:#17191e; color:#fff; box-shadow:0 24px 80px rgba(0,0,0,.5); opacity:0; transform:translateY(12px) scale(.98); transition:opacity .25s, transform .25s; }
.tj-cookie-modal.is-open .tj-cookie-modal__panel { opacity:1; transform:none; }
.tj-cookie-modal__close { position:absolute; top:15px; right:18px; width:40px; height:40px; border:0; background:transparent; color:rgba(255,255,255,.65); font-size:30px; cursor:pointer; }
.tj-cookie-modal h2 { margin:10px 0 26px; padding-right:36px; color:#fff; font-size:clamp(24px,3vw,31px); line-height:1.2; }
.tj-cookie-categories { display:grid; gap:14px; }
.tj-cookie-category { padding:20px 24px; border:1px solid rgba(255,255,255,.14); border-radius:10px; }
.tj-cookie-category__header { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.tj-cookie-category__header strong, .tj-cookie-category__toggle { color:#fff; font-size:16px; font-weight:700; }
.tj-cookie-category__toggle { display:flex; align-items:center; gap:10px; padding:0; border:0; background:transparent; text-align:left; cursor:pointer; }
.tj-cookie-category__toggle > span { color:var(--tj-cookie-accent); font-size:20px; transition:transform .2s; }
.tj-cookie-category.is-open .tj-cookie-category__toggle > span { transform:rotate(45deg); }
.tj-cookie-always-on { flex:none; color:var(--tj-cookie-accent); font-size:14px; font-weight:700; }
.tj-cookie-category p { display:none; margin:14px 0 0; color:rgba(255,255,255,.62); font-size:14px; line-height:1.65; }
.tj-cookie-category.is-open p { display:block; }
.tj-cookie-switch { position:relative; flex:none; width:52px; height:30px; cursor:pointer; }
.tj-cookie-switch input { position:absolute; opacity:0; }
.tj-cookie-switch__track { position:absolute; inset:0; border-radius:30px; background:rgba(255,255,255,.22); transition:background .2s; }
.tj-cookie-switch__track::before { content:""; position:absolute; width:22px; height:22px; left:4px; top:4px; border-radius:50%; background:#fff; transition:transform .2s; }
.tj-cookie-switch input:checked + .tj-cookie-switch__track { background:var(--tj-cookie-accent); }
.tj-cookie-switch input:checked + .tj-cookie-switch__track::before { transform:translateX(22px); }
.tj-cookie-switch input:focus-visible + .tj-cookie-switch__track { outline:3px solid #fff; outline-offset:3px; }
.tj-cookie-modal__footer { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:12px; margin-top:28px; padding-top:24px; border-top:1px solid rgba(255,255,255,.12); }
.tj-cookie-reopen { position:fixed; left:-32px; right:auto; bottom:24px; z-index:2147483646; display:grid; place-items:center; width:64px; height:48px; padding-left:28px; border:1px solid rgba(7,20,15,.18); border-left:0; border-radius:0 12px 12px 0; background:var(--tj-cookie-accent); color:#07140f; cursor:pointer; pointer-events:auto; touch-action:manipulation; isolation:isolate; box-shadow:4px 6px 18px rgba(0,0,0,.3); transition:transform .25s ease, box-shadow .25s ease; }
.tj-cookie-reopen:hover,
.tj-cookie-reopen:focus-visible { transform:translateX(32px); box-shadow:6px 8px 24px rgba(0,0,0,.38); }
body.tj-cookie-modal-open { overflow:hidden; }
@keyframes tjCookieUp { from { transform:translateY(100%); } }
@media (max-width:767px) {
  .tj-cookie-banner { padding:16px; }
  .tj-cookie-banner__inner { align-items:stretch; flex-direction:column; }
  .tj-cookie-banner__actions { display:grid; grid-template-columns:1fr 1fr; }
  .tj-cookie-banner__actions [data-cookie-action="allow-all"] { grid-column:1/-1; grid-row:1; }
  .tj-cookie-modal { padding:10px; align-items:flex-end; }
  .tj-cookie-modal__panel { padding:28px 18px 24px; border-radius:14px 14px 8px 8px; }
  .tj-cookie-category { padding:17px 15px; }
  .tj-cookie-modal__footer { display:grid; }
  .tj-cookie-reopen { left:-32px; bottom:16px; }
}
@media (prefers-reduced-motion:reduce) { .tj-cookie-banner, .tj-cookie-modal, .tj-cookie-modal__panel, .tj-cookie-category__toggle>span { animation:none; transition:none; } }
