/* Cookie consent — ANALITYKUS / Marcin Błaszko design system */
[hidden] { display: none !important; }
.consent-banner {
  position: fixed;
  z-index: 1200;
  inset: auto 20px 20px;
  width: min(100% - 40px, 1120px);
  margin-inline: auto;
  color: var(--text-heading, #111111);
  border: 1px solid var(--border-divider, #E4E4E9);
  border-radius: 22px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 22px 70px rgba(17,24,39,.18), 0 3px 12px rgba(17,24,39,.06);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  animation: consent-enter .24s ease-out both;
}
@keyframes consent-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
.consent-inner { display: grid; grid-template-columns: minmax(0,1fr) minmax(360px, .95fr); gap: 24px 30px; align-items: center; padding: 24px 26px; }
.consent-eyebrow { display:inline-flex; margin-bottom:8px; color:var(--primary-start,#CA143E); font-size:11px; line-height:1.2; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.consent-copy h2 { margin:0 0 8px; font-size:clamp(20px,2vw,24px); line-height:1.2; letter-spacing:-.035em; }
.consent-copy p { margin:0; max-width:680px; color:var(--text-muted,#6E6E73); font-size:14px; line-height:1.65; }
.consent-copy .consent-legal-links { margin-top:8px; font-size:12px; }
.consent-legal-links a { color:var(--primary-start,#CA143E); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.consent-actions, .consent-preference-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.consent-button { display:inline-flex; min-height:46px; align-items:center; justify-content:center; padding:10px 13px; border:1px solid var(--border-input,#D8D8DE); border-radius:12px; background:#fff; color:var(--text-heading,#111); font:700 13px/1.25 var(--font-stack,Inter,sans-serif); text-align:center; cursor:pointer; transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease; }
.consent-button:hover { border-color:var(--primary-start,#CA143E); color:var(--primary-start,#CA143E); transform:translateY(-1px); }
.consent-button:focus-visible, .consent-banner a:focus-visible, .footer-legal-tools button:focus-visible { outline:3px solid var(--focus-ring,rgba(202,20,62,.25)); outline-offset:3px; }
.consent-button--primary { border-color:var(--primary-start,#CA143E); background:var(--primary-start,#CA143E); color:#fff; box-shadow:0 6px 16px rgba(202,20,62,.16); }
.consent-button--primary:hover { border-color:var(--primary-hover-start,#B01035); background:var(--primary-hover-start,#B01035); color:#fff; }
.consent-button--secondary { border-color:var(--border-divider,#E4E4E9); background:#fff; color:#25252A; }
.consent-button--tertiary { border-color:transparent; background:var(--bg-subtle,#F5F5F7); color:#3A3A3C; }
.consent-preferences { grid-column:1/-1; padding-top:4px; border-top:1px solid var(--border-divider,#E4E4E9); }
.consent-preference-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:16px 0; }
.consent-preference { display:flex; gap:14px; align-items:flex-start; justify-content:space-between; min-width:0; padding:15px; border:1px solid var(--border-divider,#E4E4E9); border-radius:14px; background:#fff; }
.consent-preference-copy { min-width:0; }
.consent-preference-copy strong { display:block; margin-bottom:5px; color:var(--text-heading,#111); font-size:13px; line-height:1.35; }
.consent-preference-copy p { margin:0; color:var(--text-muted,#6E6E73); font-size:12px; line-height:1.55; }
.consent-switch { position:relative; flex:0 0 42px; width:42px; height:25px; margin-top:1px; cursor:pointer; }
.consent-switch input { position:absolute; width:1px; height:1px; opacity:0; }
.consent-switch-track { position:absolute; inset:0; border:1px solid #BFC2C9; border-radius:30px; background:#E7E8EC; transition:background .18s ease,border-color .18s ease; }
.consent-switch-track::after { position:absolute; top:3px; left:3px; width:17px; height:17px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,.2); content:""; transition:transform .18s ease; }
.consent-switch input:checked + .consent-switch-track { border-color:var(--primary-start,#CA143E); background:var(--primary-start,#CA143E); }
.consent-switch input:checked + .consent-switch-track::after { transform:translateX(17px); }
.consent-switch input:focus-visible + .consent-switch-track { outline:3px solid var(--focus-ring,rgba(202,20,62,.25)); outline-offset:3px; }
.consent-switch input:disabled + .consent-switch-track { border-color:#B8D8C9; background:#DDEFE6; opacity:1; }
.consent-switch input:disabled + .consent-switch-track::after { background:#176B4B; }
.consent-preference-actions { grid-template-columns:repeat(3,minmax(0,190px)); justify-content:end; }
.footer-legal-tools { display:flex; flex-wrap:wrap; align-items:center; gap:9px 20px; }
.footer-legal-tools a, .footer-legal-tools button { padding:0; border:0; background:transparent; color:var(--text-muted,#6E6E73); font:500 13px/1.5 var(--font-stack,Inter,sans-serif); text-decoration:none; cursor:pointer; }
.footer-legal-tools a:hover, .footer-legal-tools button:hover { color:var(--primary-start,#CA143E); }
@media (max-width:900px) {
  .consent-inner { grid-template-columns:1fr; gap:16px; }
  .consent-preference-list { grid-template-columns:1fr; }
  .consent-preference-actions { justify-content:stretch; grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .consent-banner { inset:auto 10px 10px; width:calc(100% - 20px); max-height:min(88dvh,760px); overflow-y:auto; border-radius:18px; }
  .consent-inner { gap:14px; padding:18px 16px; }
  .consent-copy h2 { font-size:20px; }
  .consent-copy p { font-size:13px; }
  .consent-actions { grid-template-columns:1fr; gap:8px; }
  .consent-button { min-height:46px; }
  .consent-preference { padding:13px; }
  .consent-preference-actions { grid-template-columns:1fr; }
  .footer-legal-tools { gap:10px 15px; }
}
@media (prefers-reduced-motion:reduce) { .consent-banner,.consent-button,.consent-switch-track,.consent-switch-track::after { animation:none!important; transition:none!important; } }


/* Premium consent palette: positive green for acceptance, neutral rejection/settings. */
.consent-button--primary {
  border-color: #16A34A;
  background: #16A34A;
  color: #FFFFFF;
  font-weight: 600;
  box-shadow: 0 6px 20px rgba(22, 163, 74, .25);
}
.consent-button--primary:hover {
  border-color: #14532D;
  background: #14532D;
  color: #FFFFFF;
  box-shadow: 0 8px 22px rgba(20, 83, 45, .22);
}
.consent-button--secondary,
.consent-button--tertiary {
  border-color: #CBD5E1;
  background: #F1F5F9;
  color: #0F172A;
}
.consent-button--secondary:hover,
.consent-button--tertiary:hover {
  border-color: #94A3B8;
  background: #E8EEF5;
  color: #0F172A;
  transform: translateY(-1px);
}
.consent-switch input:checked + .consent-switch-track {
  border-color: #16A34A;
  background: #16A34A;
}
.consent-switch input:focus-visible + .consent-switch-track {
  outline-color: rgba(22, 163, 74, .24);
}
@media (prefers-reduced-motion: reduce) {
  .consent-button, .consent-switch-track, .consent-switch-track::after { transition: none !important; }
}


/* Mobile consent panel: vertically stacked actions and scrollable settings. */
@media (max-width: 600px) {
  .consent-banner {
    max-height: 80vh;
    max-height: 80dvh;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .consent-actions,
  .consent-preference-actions {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 8px;
  }
  .consent-button { width: 100%; min-height: 46px; }
  .consent-preferences { max-height: none; overflow: visible; }
}
