/* ============================================================
   COOKIE CONSENT — banner + settings panel
   ============================================================ */
.cc-banner {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 10000;
  background: #fff;
  border-top: 1px solid #e0e1e9;
  box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.12);
  font-family: var(--font-family);
}
.cc-banner[hidden], .cc-modal[hidden] { display: none; }
.cc-banner__inner {
  max-width: var(--wrapper-max, 1280px);
  margin: 0 auto;
  padding: 18px var(--wrapper-px, 24px);
  display: flex;
  align-items: center;
  gap: 24px;
}
.cc-banner__text { flex: 1; margin: 0; font-size: 0.7rem; line-height: 1.55; color: #252a2e; }
.cc-banner__text a { color: #0063a3; margin-left: 4px; white-space: nowrap; }
.cc-banner__actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }

.cc-btn {
  font: inherit;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  border-radius: 24px;
  padding: 11px 20px;
  cursor: pointer;
  border: 2px solid #252a2e;
  background: transparent;
  color: #252a2e;
  white-space: nowrap;
  min-height: 44px;
}
.cc-btn--primary { background: var(--gold, #fbad26); border-color: var(--gold, #fbad26); }
.cc-btn--primary:hover { background: var(--gold-hover, #e09a1f); border-color: var(--gold-hover, #e09a1f); }
.cc-btn--outline:hover { background: #252a2e; color: #fff; }
.cc-btn--link { border-color: transparent; text-decoration: underline; text-underline-offset: 3px; padding-left: 8px; padding-right: 8px; }
.cc-btn--link:hover { color: #0063a3; }
.cc-btn:focus-visible, .cc-modal__close:focus-visible, .t2-site-footer__cookie-btn:focus-visible { outline: 3px solid #0063a3; outline-offset: 2px; }

/* Keep page content above the banner */
body.cc-has-banner { padding-bottom: 110px; }
body.cc-modal-open { overflow: hidden; }

/* Settings panel */
.cc-modal { position: fixed; inset: 0; z-index: 10001; display: flex; align-items: center; justify-content: center; padding: 16px; font-family: var(--font-family); }
.cc-modal__backdrop { position: absolute; inset: 0; background: rgba(37, 42, 46, 0.6); }
.cc-modal__box {
  position: relative;
  background: #fff;
  border-radius: 10px;
  width: 100%;
  max-width: 620px;
  max-height: calc(100vh - 32px);
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}
.cc-modal__head { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px 12px; border-bottom: 1px solid #e0e1e9; }
.cc-modal__head h2 { margin: 0; font-size: 1.1rem; font-weight: 600; color: #252a2e; }
.cc-modal__close { background: none; border: 0; font-size: 1.6rem; line-height: 1; cursor: pointer; color: #5e666e; width: 40px; height: 40px; border-radius: 50%; }
.cc-modal__close:hover { background: #f4f6f8; }
.cc-modal__body { padding: 16px 24px; overflow-y: auto; }
.cc-modal__body > p { font-size: 0.68rem; line-height: 1.6; color: #252a2e; margin: 0 0 12px; }
.cc-modal__body a { color: #0063a3; }
.cc-cat { border: 1px solid #e0e1e9; border-radius: 8px; padding: 14px 16px; margin-bottom: 10px; }
.cc-cat__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cc-cat h3 { margin: 0; font-size: 0.78rem; font-weight: 700; color: #252a2e; }
.cc-cat h3 label { cursor: pointer; }
.cc-cat p { margin: 6px 0 0; font-size: 0.62rem; line-height: 1.55; color: #5e666e; }
.cc-always { font-size: 0.58rem; font-weight: 700; color: #1e8a44; text-transform: uppercase; letter-spacing: 0.6px; }
.cc-modal__foot { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; padding: 14px 24px 20px; border-top: 1px solid #e0e1e9; }

/* Toggle switch */
.cc-switch { position: relative; width: 46px; height: 26px; flex-shrink: 0; }
.cc-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.cc-switch span { position: absolute; inset: 0; background: #c9ced3; border-radius: 13px; transition: background 0.2s ease; }
.cc-switch span::after { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform 0.2s ease; box-shadow: 0 1px 3px rgba(0,0,0,0.25); }
.cc-switch input:checked + span { background: #0063a3; }
.cc-switch input:checked + span::after { transform: translateX(20px); }
.cc-switch input:focus-visible + span { outline: 3px solid #0063a3; outline-offset: 2px; }

/* Footer "Cookie settings" link-button */
.t2-site-footer__cookie-btn { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; opacity: inherit; }
.t2-site-footer__cookie-btn:hover { text-decoration: underline; }
.legal-cookie-btn { margin-top: 8px; }

@media (max-width: 900px) {
  .cc-banner__inner { flex-direction: column; align-items: stretch; gap: 14px; padding: 16px; }
  .cc-banner__actions { flex-wrap: wrap; }
  .cc-banner__actions .cc-btn { flex: 1 1 auto; }
  .cc-banner__actions .cc-btn--link { flex-basis: 100%; order: 3; }
  body.cc-has-banner { padding-bottom: 230px; }
}
@media (max-width: 480px) {
  .cc-modal { padding: 0; align-items: flex-end; }
  .cc-modal__box { border-radius: 12px 12px 0 0; max-height: 92vh; }
  .cc-modal__foot .cc-btn { flex: 1 1 100%; }
  .cc-modal__head, .cc-modal__body, .cc-modal__foot { padding-left: 16px; padding-right: 16px; }
}
@media (prefers-reduced-motion: reduce) { .cc-switch span, .cc-switch span::after { transition: none; } }
