:root{--primary:var(--green);--primary-dark:var(--green-deep)}
.cc-banner,.cc-reopener{font-family:'Figtree',sans-serif}
.cc-banner{background:var(--card)}
.cc-title{font-family:'Newsreader',serif;font-size:1.35rem}
.cc-banner {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 10000;
  background: #ffffff; border-top: 1px solid #e5e7eb;
  box-shadow: 0 -4px 30px rgba(0,0,0,.1);
  transform: translateY(100%); transition: transform .4s ease;
  max-height: 90vh; overflow-y: auto;
}
.cc-banner.cc-visible { transform: translateY(0); }
.cc-inner { max-width: 900px; margin: 0 auto; padding: 28px 24px; }
.cc-title { font-size: 1.15rem; font-weight: 800; color: #111827; margin-bottom: 10px; font-family: inherit; }
.cc-text { font-size: .9rem; line-height: 1.65; color: #4b5563; margin-bottom: 8px; }
.cc-link { margin-bottom: 18px; }
.cc-link a { font-size: .85rem; color: var(--primary); text-decoration: underline; font-weight: 500; }
.cc-link a:hover { color: var(--primary-dark); }
.cc-buttons { display: flex; gap: 10px; flex-wrap: wrap; }
.cc-btn {
  border: none; cursor: pointer; font-family: inherit;
  font-size: .88rem; font-weight: 600; padding: 11px 24px;
  border-radius: 6px; transition: all .2s ease;
}
.cc-btn-accept { background: var(--primary); color: #ffffff; }
.cc-btn-accept:hover { background: var(--primary-dark); color: #ffffff; }
.cc-btn-reject { background: transparent; color: var(--primary); border: 1px solid var(--primary); }
.cc-btn-reject:hover { background: var(--green-tint); color: var(--primary); border-color: var(--primary); }
.cc-btn-details { background: transparent; color: #6b7280; text-decoration: underline; padding: 11px 12px; }
.cc-btn-details:hover { color: #111827; }

/* Detail view */
.cc-details { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.cc-details.cc-detail-open {
  max-height: 600px; margin-top: 20px; padding-top: 20px;
  border-top: 1px solid #e5e7eb;
}
.cc-category { padding: 12px 0; border-bottom: 1px solid #f3f4f6; }
.cc-category:last-of-type { border-bottom: none; }
.cc-cat-label { display: flex; justify-content: space-between; align-items: center; cursor: pointer; gap: 16px; }
.cc-cat-info { display: flex; flex-direction: column; gap: 3px; flex: 1; }
.cc-cat-info strong { font-size: .92rem; color: #111827; font-weight: 600; }
.cc-cat-info span { font-size: .82rem; color: #6b7280; line-height: 1.5; }
.cc-detail-buttons { display: flex; gap: 10px; margin-top: 18px; }

/* Toggle switch */
.cc-toggle { position: relative; display: inline-block; width: 44px; height: 24px; flex-shrink: 0; }
.cc-toggle input { opacity: 0; width: 0; height: 0; }
.cc-slider {
  position: absolute; inset: 0; background: #d1d5db;
  border-radius: 24px; transition: background .3s; cursor: pointer;
}
.cc-slider::before {
  content: ''; position: absolute; left: 3px; top: 3px;
  width: 18px; height: 18px; background: #ffffff;
  border-radius: 50%; transition: transform .3s; box-shadow: 0 1px 3px rgba(0,0,0,.15);
}
.cc-toggle input:checked + .cc-slider { background: var(--primary); }
.cc-toggle input:checked + .cc-slider::before { transform: translateX(20px); }
.cc-toggle-disabled .cc-slider { background: #e5e7eb; cursor: not-allowed; opacity: .7; }
.cc-toggle-disabled input:checked + .cc-slider { background: #e5e7eb; }

/* Reopener */
.cc-reopener {
  position: fixed; bottom: 20px; left: 20px; z-index: 9999;
  width: 44px; height: 44px; border-radius: 50%;
  background: #ffffff; color: #374151; border: 1px solid #e5e7eb;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 12px rgba(0,0,0,.1); transition: all .2s ease;
  transform: scale(0); opacity: 0;
}
.cc-reopener.cc-visible { transform: scale(1); opacity: 1; }
.cc-reopener:hover { background: var(--primary); color: #ffffff; border-color: var(--primary); transform: scale(1.08); }
.cc-reopener.cc-visible:hover { transform: scale(1.08); }

@media (max-width: 768px) {
  .cc-inner { padding: 20px 16px; }
  .cc-buttons, .cc-detail-buttons { flex-direction: column; }
  .cc-btn { width: 100%; text-align: center; }
  .cc-btn-details { text-align: left; padding: 8px 0; }
  .cc-reopener { bottom: 14px; left: 14px; width: 38px; height: 38px; }
  .cc-reopener svg { width: 17px; height: 17px; }
}

/* Snedkertrapper: runde knapper og et mere kompakt banner på mobil */
.cc-btn{border-radius:999px}
@media (max-width: 768px){
  .cc-inner{padding:16px 16px 14px}
  .cc-title{font-size:1.1rem;margin-bottom:6px}
  .cc-text{font-size:.82rem;line-height:1.5;margin-bottom:6px}
  .cc-link{margin-bottom:12px}
  .cc-buttons{flex-direction:row;flex-wrap:wrap;gap:8px}
  .cc-btn-accept,.cc-btn-reject{flex:1 1 40%;width:auto;min-height:44px;padding:10px}
  .cc-btn-details{width:100%;text-align:center;padding:8px 0;min-height:40px}
}
