/* Footer privacy controls -------------------------------------------------- */
.privacy-foot-links {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem .7rem;
  margin-left: .45rem;
}
.privacy-foot-links a,
.privacy-settings-link {
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(53, 95, 99, .35);
  text-underline-offset: .18em;
  cursor: pointer;
}
.privacy-foot-links a:hover,
.privacy-settings-link:hover {
  color: var(--teal, #0f8a83);
  text-decoration-color: currentColor;
}
.privacy-settings-link:focus-visible,
.privacy-foot-links a:focus-visible {
  outline: 3px solid rgba(36, 87, 214, .28);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Privacy-page action ----------------------------------------------------- */
.privacy-action {
  display: inline-flex;
  align-items: center;
  margin: .4rem 0 1.2rem;
  padding: .72rem 1rem;
  border: 1px solid rgba(15, 138, 131, .24);
  border-radius: 999px;
  color: #11343b;
  background: rgba(15, 138, 131, .09);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}
.privacy-action:hover { background: rgba(15, 138, 131, .16); }
.privacy-action:focus-visible {
  outline: 3px solid rgba(36, 87, 214, .28);
  outline-offset: 3px;
}

/* Klaro notice ------------------------------------------------------------ */
#klaro .cookie-notice {
  right: clamp(.75rem, 3vw, 2rem) !important;
  bottom: clamp(.75rem, 3vw, 2rem) !important;
  left: clamp(.75rem, 3vw, 2rem) !important;
  width: auto !important;
  max-width: 62rem !important;
  margin: 0 auto !important;
  border: 1px solid rgba(15, 138, 131, .22) !important;
  border-radius: 26px !important;
  color: #102033 !important;
  background:
    radial-gradient(circle at 96% 0%, rgba(15, 138, 131, .16), transparent 19rem),
    radial-gradient(circle at 0% 110%, rgba(36, 87, 214, .10), transparent 18rem),
    rgba(250, 252, 251, .96) !important;
  box-shadow: 0 28px 85px -40px rgba(16, 32, 51, .58) !important;
  backdrop-filter: blur(20px) saturate(1.08);
  -webkit-backdrop-filter: blur(20px) saturate(1.08);
}
#klaro .cookie-notice .cn-body {
  padding: clamp(1.1rem, 3vw, 1.75rem) !important;
}
#klaro .cookie-notice .cn-body p {
  max-width: 64ch;
  margin: 0 !important;
  color: #405260 !important;
  font-size: .96rem !important;
  line-height: 1.58 !important;
}
#klaro .cookie-notice .cn-body p strong {
  display: block;
  margin-bottom: .36rem;
  color: #102033 !important;
  font-size: clamp(1.15rem, 2vw, 1.42rem) !important;
  line-height: 1.15;
  letter-spacing: -.025em;
}
#klaro .cookie-notice .cn-body .cn-ok {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .8rem 1rem;
  align-items: center;
  margin-top: 1rem !important;
}
#klaro .cookie-notice .cn-body .cn-buttons {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .62rem !important;
}
#klaro .cookie-notice .cn-body .cn-learn-more,
#klaro .cookie-notice .cn-body .cm-link {
  color: #2457d6 !important;
  font-size: .88rem !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(36, 87, 214, .26);
}

/* Klaro buttons: reject and accept are deliberately equally prominent. */
#klaro .cm-btn {
  min-height: 2.7rem !important;
  padding: .65rem .95rem !important;
  border: 1px solid rgba(16, 32, 51, .15) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: .88rem !important;
  font-weight: 850 !important;
  line-height: 1.15 !important;
  cursor: pointer;
}
#klaro .cm-btn.cm-btn-success,
#klaro .cm-btn.cm-btn-info {
  color: #fff !important;
  background: #0f8a83 !important;
  border-color: #0f8a83 !important;
}
#klaro .cm-btn.cm-btn-danger {
  color: #fff !important;
  background: #102033 !important;
  border-color: #102033 !important;
}
#klaro .cm-btn:hover { transform: translateY(-1px); }
#klaro .cm-btn:focus-visible,
#klaro a:focus-visible,
#klaro button:focus-visible {
  outline: 3px solid rgba(36, 87, 214, .30) !important;
  outline-offset: 3px !important;
}

/* Klaro full settings modal ---------------------------------------------- */
#klaro .cookie-modal .cm-bg {
  background: rgba(7, 17, 38, .58) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
#klaro .cookie-modal .cm-modal.cm-klaro {
  max-width: 44rem !important;
  border: 1px solid rgba(15, 138, 131, .22) !important;
  border-radius: 28px !important;
  color: #102033 !important;
  background: #fbfcfb !important;
  box-shadow: 0 35px 100px -35px rgba(7, 17, 38, .68) !important;
  overflow: hidden;
}
#klaro .cookie-modal .cm-header,
#klaro .cookie-modal .cm-body,
#klaro .cookie-modal .cm-footer {
  border-color: rgba(16, 32, 51, .09) !important;
  background: transparent !important;
}
#klaro .cookie-modal .cm-header h1,
#klaro .cookie-modal .cm-header .title {
  color: #102033 !important;
  letter-spacing: -.035em;
}
#klaro .cookie-modal p,
#klaro .cookie-modal .purposes,
#klaro .cookie-modal .cm-list-description {
  color: #4f606c !important;
  line-height: 1.55 !important;
}
#klaro .cookie-modal .cm-list-title,
#klaro .cookie-modal .cm-purpose-title {
  color: #102033 !important;
  font-weight: 850 !important;
}
#klaro .cookie-modal .cm-list-input:checked + .cm-list-label .slider,
#klaro .cookie-modal .cm-list-input.required + .cm-list-label .slider {
  background-color: #0f8a83 !important;
}
#klaro .cookie-modal .cm-footer-buttons {
  display: flex !important;
  flex-wrap: wrap;
  gap: .6rem;
}
#klaro .cookie-modal a { color: #2457d6 !important; }

@media (max-width: 42rem) {
  #klaro .cookie-notice { border-radius: 20px !important; }
  #klaro .cookie-notice .cn-body .cn-ok { grid-template-columns: 1fr; }
  #klaro .cookie-notice .cn-body .cn-buttons {
    display: grid !important;
    grid-template-columns: 1fr;
    justify-content: stretch;
  }
  #klaro .cookie-notice .cn-body .cn-buttons .cm-btn { width: 100%; }
  #klaro .cookie-modal .cm-modal.cm-klaro {
    width: calc(100% - 1rem) !important;
    max-height: calc(100% - 1rem) !important;
    border-radius: 20px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #klaro *, #klaro *::before, #klaro *::after { transition: none !important; }
  #klaro .cm-btn:hover { transform: none; }
}
