/* site-consent v1: shared privacy-choices bubble and panel. Defaults have zero specificity (:where), so a site theme
   setting the --sc-* custom properties on .site-consent always wins, whatever the stylesheet order. */
:where(.site-consent) {
  --sc-bg: #111417; --sc-fg: #f4f4f2; --sc-muted: #b9bcc0; --sc-accent: #4f8cff; --sc-border: #2c3238;
  --sc-on: var(--sc-accent); --sc-off: #565d66; --sc-radius: 14px; --sc-font: inherit; --sc-z: 2147483000;
  --sc-gap: 12px;
}
.site-consent { font-family: var(--sc-font); }
.site-consent .sc-bubble {
  position: fixed; z-index: var(--sc-z); left: calc(var(--sc-gap) + env(safe-area-inset-left, 0px)); bottom: calc(var(--sc-gap) + env(safe-area-inset-bottom, 0px));
  width: 44px; height: 44px; min-width: 44px; min-height: 44px; padding: 0; margin: 0; display: grid; place-items: center;
  border: 1px solid var(--sc-border); border-radius: 50%; background: var(--sc-bg); color: var(--sc-fg);
  box-shadow: 0 2px 10px rgb(0 0 0 / .28); cursor: pointer; opacity: .9;
  transition: opacity .2s ease, transform .2s ease, visibility 0s linear 0s;
}
.site-consent .sc-bubble svg { width: 22px; height: 22px; display: block; }
.site-consent .sc-bubble:hover, .site-consent .sc-bubble:focus-visible { opacity: 1; }
.site-consent .sc-bubble:focus-visible { outline: 3px solid var(--sc-accent); outline-offset: 2px; }
.site-consent .sc-bubble.sc-tucked { opacity: 0; transform: translateY(12px); visibility: hidden; pointer-events: none; transition: opacity .2s ease, transform .2s ease, visibility 0s linear .2s; }
.site-consent .sc-panel {
  position: fixed; z-index: var(--sc-z); left: calc(var(--sc-gap) + env(safe-area-inset-left, 0px)); bottom: calc(var(--sc-gap) + 52px + env(safe-area-inset-bottom, 0px));
  width: min(23rem, calc(100vw - 2 * var(--sc-gap))); max-height: calc(100dvh - 76px - var(--sc-gap)); overflow-y: auto; overscroll-behavior: contain;
  box-sizing: border-box; padding: 16px 16px 12px; border: 1px solid var(--sc-border); border-radius: var(--sc-radius);
  background: var(--sc-bg); color: var(--sc-fg); box-shadow: 0 10px 40px rgb(0 0 0 / .45); font-size: 14px; line-height: 1.45; text-align: left;
}
.site-consent .sc-panel[hidden] { display: none; }
.site-consent .sc-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0 0 4px; }
.site-consent .sc-title { margin: 0; font-size: 16px; line-height: 1.3; font-weight: 700; color: var(--sc-fg); letter-spacing: 0; text-transform: none; }
.site-consent .sc-close { width: 44px; height: 44px; margin: -10px -10px -10px 0; border: 0; background: transparent; color: var(--sc-fg); font-size: 24px; line-height: 1; cursor: pointer; border-radius: 10px; }
.site-consent .sc-close:focus-visible, .site-consent .sc-switch:focus-visible, .site-consent .sc-link:focus-visible { outline: 3px solid var(--sc-accent); outline-offset: 2px; }
.site-consent .sc-intro, .site-consent .sc-note { margin: 0 0 10px; color: var(--sc-muted); font-size: 13px; }
.site-consent .sc-note { padding: 8px 10px; border-left: 3px solid var(--sc-accent); background: rgb(255 255 255 / .04); color: var(--sc-fg); }
.site-consent .sc-note[hidden] { display: none; }
.site-consent .sc-row { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--sc-border); }
.site-consent .sc-row-text { flex: 1 1 auto; min-width: 0; }
.site-consent .sc-row-title { display: block; font-weight: 600; color: var(--sc-fg); cursor: pointer; }
.site-consent .sc-row-desc { margin: 2px 0 0; color: var(--sc-muted); font-size: 12.5px; }
.site-consent .sc-locked .sc-switch { display: none; }
.site-consent .sc-always { flex: none; font-size: 12px; color: var(--sc-muted); white-space: nowrap; }
.site-consent .sc-switch {
  appearance: none; -webkit-appearance: none; flex: none; position: relative; width: 44px; height: 26px; margin: 9px 0; border-radius: 13px;
  background: var(--sc-off); border: 0; cursor: pointer; transition: background .15s ease;
}
.site-consent .sc-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform .15s ease; }
.site-consent .sc-switch:checked { background: var(--sc-on); }
.site-consent .sc-switch:checked::after { transform: translateX(18px); }
.site-consent .sc-switch:disabled { opacity: .5; cursor: not-allowed; }
.site-consent .sc-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; border-top: 1px solid var(--sc-border); padding-top: 8px; min-height: 44px; }
.site-consent .sc-status { margin: 0; font-size: 12.5px; color: var(--sc-muted); }
.site-consent .sc-link { color: var(--sc-fg); font-size: 13px; text-decoration: underline; text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 44px; }
@media (prefers-reduced-motion: reduce) { .site-consent .sc-bubble, .site-consent .sc-switch, .site-consent .sc-switch::after { transition: none; } }
@media print { .site-consent { display: none; } }

/* Enhanced Business Solutions theme (site-consent v1). */
.site-consent { --sc-bg: var(--ground-2); --sc-fg: var(--paper); --sc-muted: #b8b6b0; --sc-accent: var(--mark-text); --sc-border: #2e5a41; --sc-on: var(--mark-text); --sc-font: var(--font-body); }
.site-consent .sc-switch:checked::after { background: var(--ground); }
