/* Nuvoha website cookie-consent banner — public SEO site.
   Self-contained: does NOT depend on destination.css, so it renders identically
   on generated pages, the hand-static home page and the legal pages. Brand values
   are inlined (they mirror destination.css :root). Calm, compact, premium — a
   bottom banner, never a full-screen takeover, with equal-prominence buttons. */

#nuvoha-consent-banner {
  --nc-brand: #ae29bb;
  --nc-brand-deep: #6a1f72;
  --nc-brand-hover: #571a5e;
  --nc-ink: #302a38;
  --nc-muted: #4f4a59;
  --nc-panel: #ffffff;
  --nc-line: #eadcf0;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2147483000;
  display: flex;
  justify-content: center;
  padding: 12px;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  color: var(--nc-ink);
  line-height: 1.5;
}
/* Explicit so no author `display` on <section> can defeat the hidden attribute. */
#nuvoha-consent-banner[hidden] {
  display: none !important;
}
#nuvoha-consent-banner *,
#nuvoha-consent-banner *::before,
#nuvoha-consent-banner *::after {
  box-sizing: border-box;
}

.nuvoha-consent__panel {
  width: 100%;
  max-width: 720px;
  background: var(--nc-panel);
  border: 1px solid var(--nc-line);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(48, 42, 56, 0.18);
  padding: 18px 20px;
}

.nuvoha-consent__title {
  margin: 0 0 6px;
  font-size: 17px;
  line-height: 1.3;
  color: var(--nc-brand-deep);
}
/* The heading receives programmatic focus (for screen-reader announcement); a
   focus ring on a non-interactive heading is unnecessary, but keyboard-driven
   focus still gets one via :focus-visible. */
.nuvoha-consent__title:focus {
  outline: none;
}
.nuvoha-consent__title:focus-visible {
  outline: 2px solid var(--nc-brand-deep);
  outline-offset: 3px;
}

.nuvoha-consent__text {
  margin: 0 0 8px;
  font-size: 14px;
}
.nuvoha-consent__note {
  margin: 0 0 12px;
  font-size: 12.5px;
  color: var(--nc-muted);
}
.nuvoha-consent__status {
  margin: 0 0 10px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--nc-muted);
}
.nuvoha-consent__link {
  color: var(--nc-brand-deep);
  text-decoration: underline;
}

.nuvoha-consent__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
/* Accept and Reject are IDENTICAL in size and weight — neither is emphasised or
   de-emphasised (no dark-pattern hierarchy). White on #6a1f72 ≈ 8:1 (WCAG AAA). */
.nuvoha-consent__btn {
  flex: 1 1 auto;
  min-width: 150px;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: #ffffff;
  background: var(--nc-brand-deep);
  border: 1px solid var(--nc-brand-deep);
  border-radius: 999px;
  padding: 11px 20px;
  cursor: pointer;
}
.nuvoha-consent__btn:hover {
  background: var(--nc-brand-hover);
  border-color: var(--nc-brand-hover);
}
.nuvoha-consent__btn:focus-visible {
  outline: 3px solid var(--nc-brand);
  outline-offset: 2px;
}

/* Footer "Cookie settings" control — reads as a footer link, is a real <button>. */
.nuvoha-consent-settings {
  font: inherit;
  font-size: 13px;
  color: #6a1f72;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
  text-decoration: none;
}
.nuvoha-consent-settings:hover,
.nuvoha-consent-settings:focus-visible {
  text-decoration: underline;
}
.nuvoha-consent-settings:focus-visible {
  outline: 2px solid #6a1f72;
  outline-offset: 2px;
}
/* Fallback host for pages that have no footer at all. */
.nuvoha-consent-settings-standalone {
  border-top: 1px solid #eadcf0;
  padding: 16px 20px;
  text-align: center;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

@media (min-width: 560px) {
  .nuvoha-consent__actions {
    justify-content: flex-end;
  }
  .nuvoha-consent__btn {
    flex: 0 0 auto;
  }
}

/* Respect reduced-motion: the subtle rise-in only runs when motion is welcome. */
@media (prefers-reduced-motion: no-preference) {
  .nuvoha-consent__panel {
    animation: nuvoha-consent-in 0.24s ease-out;
  }
  @keyframes nuvoha-consent-in {
    from { transform: translateY(12px); opacity: 0; }
    to { transform: none; opacity: 1; }
  }
}
