/*
 * Shared modules - consent: the banner (a card at the bottom right, a compact sheet on
 * phones; not modal). Templates put their main actions at the bottom left of the first
 * screen, so the card stays clear of them; the accessibility button moves up above it
 * (a template whose button sits on the left keeps it in place on wider screens).
 * While it is up, html.mws-consent-open is set and --mws-consent-h holds its height, so a
 * template can move its own fixed bars and first-screen content out of the way.
 */
.mws-consent {
  position: fixed; z-index: 1045; right: 16px; bottom: 16px; width: min(440px, calc(100vw - 32px)); box-sizing: border-box;
  padding: 24px; border-radius: var(--mws-radius); background: var(--mws-bg); color: var(--mws-text);
  border: 1px solid var(--mws-line); box-shadow: 0 24px 60px -18px rgb(0 0 0 / .45);
  font: 400 1rem/1.5 var(--mws-font); text-align: left; animation: mws-rise .5s var(--mws-ease);
}
.mws-consent[hidden] { display: none; }
@keyframes mws-rise { from { opacity: 0; transform: translateY(16px); } }
.mws-consent-title { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font: 700 1rem/1.3 var(--mws-font); color: inherit; letter-spacing: 0; text-transform: none; }
.mws-consent-title .mws-icon { color: var(--mws-accent-text); }
.mws-consent-text { margin: 0 0 16px; font-size: .92rem; line-height: 1.5; }
.mws-consent-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.mws-consent-actions .mws-btn { min-width: 112px; }
.mws-consent-actions .mws-link { min-height: 44px; }
.mws-consent :focus-visible { outline: 3px solid var(--mws-focus); outline-offset: 2px; }
html.mws-consent-open .mws-fab { bottom: calc(var(--mws-consent-h, 0px) + 32px) !important; }
@media (max-width: 640px) {
  .mws-consent { right: 0; bottom: 0; width: 100%; border-radius: var(--mws-radius) var(--mws-radius) 0 0; border-width: 1px 0 0; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
  .mws-consent-title { margin-bottom: 4px; font-size: .95rem; }
  .mws-consent-text { margin-bottom: 10px; font-size: .86rem; line-height: 1.45; }
  .mws-consent-actions { flex-wrap: nowrap; gap: 8px; }
  .mws-consent-actions .mws-btn { flex: 1 1 0; min-width: 0; }
  .mws-consent-actions .mws-link { flex: none; }
  html.mws-consent-open .mws-fab { bottom: calc(var(--mws-consent-h, 0px) + 16px) !important; }
}
@media (prefers-reduced-motion: reduce) { .mws-consent { animation: none; } }
@media print { .mws-consent { display: none !important; } }
