

.cc {
  --cc-ease:     cubic-bezier(.23, 1, .32, 1);
  --cc-dur:      520ms;

  position: fixed;
  z-index: 990;
  inset: auto 0 0 0;
  display: flex;
  justify-content: center;
  padding: clamp(.75rem, 2vw, 1.5rem);
  pointer-events: none;
}

.cc[hidden] { display: none; }

.cc[data-theme="agency"] {
  --cc-bg:      #121110;
  --cc-text:    #efeae0;
  --cc-dim:     rgb(239 234 224 / .62);
  --cc-line:    rgb(239 234 224 / .16);
  --cc-accent:  var(--gold, #c9a227);
  --cc-btn-bg:  rgb(239 234 224 / .07);
  --cc-radius:  4px;
  --cc-font:    'Inter', system-ui, sans-serif;
  --cc-font-head: 'Anton', 'Arial Narrow', sans-serif;
  --cc-head-transform: uppercase;
  --cc-head-spacing: .03em;
}

.cc[data-theme="dentist"] {
  --cc-bg:      #ffffff;
  --cc-text:    var(--navy, #112B42);
  --cc-dim:     rgb(var(--navy-rgb, 17 43 66) / .68);
  --cc-line:    rgb(var(--navy-rgb, 17 43 66) / .14);
  --cc-accent:  var(--blue, #2F6096);
  --cc-btn-bg:  rgb(var(--navy-rgb, 17 43 66) / .045);
  --cc-radius:  12px;
  --cc-font:    'Schibsted Grotesk', system-ui, sans-serif;
  --cc-font-head: 'Schibsted Grotesk', system-ui, sans-serif;
  --cc-head-transform: none;
  --cc-head-spacing: -.02em;
}

.linklike {
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.linklike:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

.cc__panel {
  pointer-events: auto;
  width: 100%;
  max-width: 30rem;
  background: var(--cc-bg);
  color: var(--cc-text);
  border: 1px solid var(--cc-line);
  border-radius: var(--cc-radius);
  box-shadow: 0 2px 6px rgb(0 0 0 / .06), 0 26px 60px -22px rgb(0 0 0 / .35);
  font-family: var(--cc-font);
  padding: clamp(1.15rem, 3vw, 1.6rem);

  opacity: 0;
  transform: translateY(24px) scale(.97);
  transition:
    opacity .34s var(--cc-ease),
    transform var(--cc-dur) var(--cc-ease);
  will-change: transform, opacity;
}

.cc.is-in .cc__panel { opacity: 1; transform: none; }

.cc.is-out .cc__panel {
  opacity: 0;
  transform: translateY(16px) scale(.98);
  transition: opacity .22s ease-in, transform .28s ease-in;
}

.cc__title {
  margin: 0 0 .45rem;
  font-family: var(--cc-font-head);
  font-weight: 700;
  font-size: 1.06rem;
  letter-spacing: var(--cc-head-spacing);
  text-transform: var(--cc-head-transform);
  line-height: 1.2;
}
.cc[data-theme="agency"] .cc__title { font-weight: 400; }

.cc__text {
  margin: 0;
  font-size: .89rem;
  line-height: 1.55;
  color: var(--cc-dim);
}
.cc__text a { color: var(--cc-text); text-decoration: underline; text-underline-offset: 2px; }
@media (hover: hover) and (pointer: fine) {
  .cc__text a:hover { color: var(--cc-accent); }
}

.cc__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .6rem;
  margin-top: 1.15rem;
}

.cc__btn {
  appearance: none;
  font: inherit;
  font-weight: 600;
  font-size: .92rem;
  padding: .8rem 1rem;
  color: var(--cc-text);
  background: var(--cc-btn-bg);
  border: 1px solid var(--cc-line);
  border-radius: calc(var(--cc-radius) - 2px);
  cursor: pointer;
  text-align: center;
  transition: background-color .22s ease, border-color .22s ease, color .22s ease;
}
@media (hover: hover) and (pointer: fine) {
  .cc__btn:hover { border-color: var(--cc-accent); color: var(--cc-accent); }
}
.cc__btn:active { transform: scale(.98); }
.cc__btn:focus-visible { outline: 2px solid var(--cc-accent); outline-offset: 2px; }

.cc__more {
  appearance: none;
  background: none;
  border: 0;
  padding: .5rem 0 0;
  margin-top: .5rem;
  font: inherit;
  font-size: .84rem;
  color: var(--cc-dim);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  transition: color .22s ease;
}
@media (hover: hover) and (pointer: fine) {
  .cc__more:hover { color: var(--cc-text); }
}
.cc__more:focus-visible { outline: 2px solid var(--cc-accent); outline-offset: 2px; }

.cc__settings { overflow: hidden; }

.cc__settings-inner {
  padding-top: 1.15rem;
  margin-top: 1.15rem;
  border-top: 1px solid var(--cc-line);
}

.cc__group { display: flex; gap: .85rem; align-items: flex-start; }
.cc__group + .cc__group { margin-top: 1.05rem; }

.cc__group-body h3 {
  margin: 0 0 .18rem;
  font-family: var(--cc-font);
  font-size: .92rem;
  font-weight: 700;
  letter-spacing: 0;
  color: var(--cc-text);
}
.cc__group-body p { margin: 0; font-size: .83rem; line-height: 1.5; color: var(--cc-dim); }

.cc__switch {
  position: relative;
  flex: 0 0 auto;
  width: 40px;
  height: 23px;
  margin-top: .1rem;
}
.cc__switch input {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.cc__switch input:disabled { cursor: not-allowed; }

.cc__switch i {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: var(--cc-btn-bg);
  border: 1px solid var(--cc-line);
  transition: background-color .26s var(--cc-ease), border-color .26s var(--cc-ease);
  pointer-events: none;
}
.cc__switch i::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 3px;
  width: 15px; height: 15px;
  border-radius: 50%;
  background: var(--cc-text);
  transform: translateY(-50%);
  transition: transform .3s var(--cc-ease), background-color .26s var(--cc-ease);
}
.cc__switch input:checked + i { background: var(--cc-accent); border-color: var(--cc-accent); }
.cc__switch input:checked + i::after {
  transform: translateY(-50%) translateX(17px);
  background: var(--cc-bg);
}
.cc__switch input:disabled + i { opacity: .5; }
.cc__switch input:focus-visible + i { outline: 2px solid var(--cc-accent); outline-offset: 2px; }

.cc__save { margin-top: 1.2rem; width: 100%; }

.cc__stagger > * {
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .4s var(--cc-ease), transform .5s var(--cc-ease);
}
.cc.is-in .cc__stagger > * {
  opacity: 1;
  transform: none;
  transition-delay: calc(160ms + var(--i, 0) * 70ms);
}

@media (prefers-reduced-motion: reduce) {
  .cc__panel,
  .cc__stagger > *,
  .cc__switch i,
  .cc__switch i::after {
    transition-duration: .001ms !important;
    transition-delay: 0ms !important;
  }
}
