/* Hallmark · component: analytics consent · genre: modern-minimal
 * theme: existing Ghost tokens · tone: direct · no page redesign or animation
 * States: default, hover, focus, active, disabled, loading, error, success.
 * Pre-emit critique: P5 H4 E4 S5 R5 V4. */
.g-consent, .g-consent-dialog { box-sizing: border-box; font-family: var(--g-sans); color: var(--g-text); line-height: 1.5; text-align: left; }
.g-consent *, .g-consent-dialog * { box-sizing: border-box; }
.g-consent[hidden], .g-consent-dialog:not([open]), [data-consent-open][hidden], [data-consent-signal][hidden] { display: none; }
.g-consent { position: fixed; inset: auto var(--fp-space-md) max(var(--fp-space-md), env(safe-area-inset-bottom)) auto; z-index: var(--fp-z-sticky); width: calc(100% - 2 * var(--fp-space-md)); max-width: 23rem; padding: var(--fp-space-md); background: var(--g-bg-raised); border: 1px solid var(--g-border); border-radius: var(--fp-radius-md); }
.g-consent p, .g-consent-dialog p { margin: 0; font-size: var(--fp-text-sm); }
.g-consent__title { display: block; margin-bottom: var(--fp-space-xs); font-weight: 600; font-size: var(--fp-text-sm); }
.g-consent__actions { display: flex; flex-wrap: wrap; gap: var(--fp-space-xs); margin-top: var(--fp-space-md); }
.g-consent .g-consent__button, .g-consent-dialog .g-consent__button { appearance: none; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: var(--fp-space-xs) var(--fp-space-md); background: var(--g-card-2); border: 1px solid var(--g-border); border-radius: var(--fp-radius-sm); color: var(--g-text); font-family: var(--g-sans); font-size: var(--fp-text-sm); font-weight: 500; line-height: 1.5; white-space: nowrap; cursor: pointer; }
.g-consent .g-consent__actions { margin-top: var(--fp-space-sm); gap: var(--fp-space-xs); }
.g-consent__actions > [data-consent-accept] { flex: 1; }
.g-consent .g-consent__actions > [data-consent-open] { padding-inline: var(--fp-space-xs); border-color: transparent; background: none; color: var(--g-text-2); text-decoration: underline; text-underline-offset: .2em; }
.g-consent :is(button, input):focus-visible, .g-consent-dialog :is(button, input):focus-visible, .g-consent__button.is-focus, .g-site-footer .gsf__privacy:focus-visible { outline: 3px solid var(--fp-color-focus); outline-offset: 3px; }
.g-consent .g-consent__button:active, .g-consent-dialog .g-consent__button:active, .g-consent__button.is-active { background: var(--g-bg); color: var(--g-text); }
.g-consent .g-consent__button:disabled, .g-consent-dialog .g-consent__button:disabled { color: var(--g-text-3); border-color: var(--g-border); cursor: not-allowed; }
.g-consent-dialog { position: fixed; inset: 0; margin: auto; width: calc(100% - 2 * var(--fp-space-md)); max-width: 27rem; height: fit-content; max-height: calc(100dvh - 2 * var(--fp-space-md)); overflow-y: auto; overscroll-behavior: contain; padding: var(--fp-space-lg); background: var(--g-bg-raised); border: 1px solid var(--g-border); border-radius: var(--fp-radius-md); }
.g-consent-dialog::backdrop { background: var(--gc-backdrop); }
.g-consent-dialog h2 { margin: 0 0 var(--fp-space-xs); font-size: var(--fp-text-md); font-weight: 600; font-style: normal; line-height: 1.3; letter-spacing: -.02em; overflow-wrap: anywhere; }
.g-consent-dialog .g-consent__intro { color: var(--g-text-2); margin-bottom: var(--fp-space-md); }
.g-consent__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: var(--fp-space-md); padding-block: var(--fp-space-md); border-top: 1px solid var(--g-border); }
.g-consent__row b { display: block; font-size: var(--fp-text-base); font-weight: 500; }
.g-consent-dialog .g-consent__description { margin-top: var(--fp-space-2xs); font-size: var(--fp-text-sm); color: var(--g-text-2); }
.g-consent__switch { position: relative; display: flex; align-items: center; justify-content: flex-end; gap: var(--fp-space-xs); min-height: 44px; font-size: var(--fp-text-xs); color: var(--g-text-2); cursor: pointer; }
.g-consent__switch input { appearance: none; margin: 0; width: 44px; height: 26px; border-radius: 2rem; border: 1px solid var(--g-text-3); background: var(--g-bg-raised); cursor: inherit; }
.g-consent__switch input::before { content: ''; display: block; width: 18px; height: 18px; margin: 3px; border-radius: 50%; background: var(--g-text); }
.g-consent__switch input:checked { background: var(--fp-color-success); border-color: var(--fp-color-success); }
.g-consent__switch input:checked::before { transform: translateX(18px); background: var(--g-bg); }
.g-consent__switch input:disabled { background: var(--g-chip); border-color: var(--g-border); cursor: not-allowed; }
.g-consent__switch input:disabled::before { background: var(--g-text-3); }
.g-consent__off { display: inline; }
.g-consent__on { display: none; }
.g-consent__switch:has(input:checked) .g-consent__off { display: none; }
.g-consent__switch:has(input:checked) .g-consent__on { display: inline; }
.g-consent-dialog .g-consent__detail { margin-top: var(--fp-space-sm); font-size: var(--fp-text-sm); color: var(--g-text-2); }
.g-consent-dialog .g-consent__feedback { margin-top: var(--fp-space-sm); color: var(--g-red); font-size: var(--fp-text-sm); }
.g-consent__feedback:empty { display: none; }
.g-site-footer .gsf__privacy { display: inline-flex; align-items: center; min-height: 44px; padding: 0; border: 0; background: none; color: var(--g-text); font-family: var(--g-sans); font-size: inherit; line-height: inherit; white-space: nowrap; cursor: pointer; }
.g-consent__status { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.g-consent__button[data-state="loading"] { cursor: progress; }
.g-consent__button[data-state="error"] { border-color: var(--g-red); }
.g-consent__button[data-state="success"] { border-color: var(--fp-color-success); }
@media (hover: hover) {
  .g-consent .g-consent__button:not(:disabled):hover, .g-consent-dialog .g-consent__button:not(:disabled):hover, .g-consent__button.is-hover { background: var(--g-chip); color: var(--g-text); }
  .g-consent__switch input:not(:disabled):hover { outline: 1px solid var(--g-text); outline-offset: 2px; }
  .g-site-footer .gsf__privacy:hover { text-decoration: underline; text-underline-offset: .2em; }
}
@media (forced-colors: active) {
  .g-consent__switch input { appearance: auto; }
  .g-consent__switch input::before { display: none; }
}
/* No spatial transitions: reduced-motion and default behavior are identical. */
