/* Deliberately scoped: Site Editor content and global styles remain untouched. */
.hc { position: fixed; inset: auto auto var(--hc-gap) var(--hc-gap); z-index: 100000; width: min(var(--hc-width), calc(100vw - 2 * var(--hc-gap))); color: var(--hc-text); font-family: var(--hc-font-family); font-size: var(--hc-font-size); font-weight: var(--hc-font-weight); line-height: 1.5; text-align: left; color-scheme: light; }
.hc, .hc * { box-sizing: border-box; }
.hc [hidden] { display: none !important; }
.hc--bottom_right { left: auto; right: var(--hc-gap); }
.hc--bottom_full { right: var(--hc-gap); width: auto; }
.hc__panel { position: relative; padding: var(--hc-padding); background: var(--hc-background); border: 1px solid var(--hc-border); border-radius: var(--hc-radius); box-shadow: 0 10px 50px #0002; max-height: calc(100dvh - 2 * var(--hc-gap)); overflow: auto; overscroll-behavior: contain; }
.hc .hc__heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 10px; }
.hc .hc__eyebrow { color: var(--hc-muted); font-size: .75em; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.hc h2 { font-family: inherit; font-size: var(--hc-heading-size); font-weight: 600; letter-spacing: -.025em; line-height: 1.2; margin: 0 0 12px; color: inherit; }
.hc p { font: inherit; margin: 0 0 12px; color: var(--hc-muted); }
.hc a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.hc .hc__policy { display: inline-block; margin-bottom: 16px; font-size: .9em; }
.hc button { font: inherit; cursor: pointer; appearance: none; text-transform: none; letter-spacing: normal; line-height: 1.3; margin: 0; box-shadow: none; min-height: 44px; border-radius: var(--hc-button-radius); }
.hc button:focus-visible, .hc a:focus-visible, .hc input:focus-visible + .hc__switch { outline: 3px solid var(--hc-focus); outline-offset: 3px; }
.hc__panel:focus { outline: none; }
.hc .hc__close { position: absolute; top: 8px; right: 8px; width: 44px; flex-shrink: 0; font-size: 24px; border: 0; background: transparent; color: var(--hc-text); margin: 0; padding: 0; }
.hc .hc__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; min-width: 0; }
.hc .hc__actions > button { flex: 1 0 auto; width: auto; white-space: nowrap; overflow-wrap: normal; word-break: normal; }
.hc .hc__choice { padding: 12px 16px; border: 1px solid var(--hc-button-background); background: var(--hc-button-background); color: var(--hc-button-text); font-weight: 600; }
.hc .hc__secondary { padding: 12px 16px; border: 1px solid var(--hc-border); background: var(--hc-secondary-background); color: var(--hc-secondary-text); font-weight: 600; }
.hc .hc__choice:hover, .hc .hc__secondary:hover, .hc .hc__reopen:hover { filter: brightness(.94); }
.hc .hc__details { margin-top: 16px; }
.hc .hc__category { border-top: 1px solid var(--hc-border); padding: 16px 0 4px; position: relative; }
.hc .hc__category > strong { display: inline-block; margin-bottom: 6px; }
.hc .hc__category label { display: flex; align-items: center; justify-content: space-between; cursor: pointer; margin-bottom: 6px; min-height: 32px; gap: 10px; }
.hc .hc__category input { position: absolute; right: 0; opacity: 0; width: 44px; height: 28px; margin: 0; cursor: pointer; }
.hc .hc__switch { flex-shrink: 0; width: 44px; height: 26px; border: 1px solid var(--hc-muted); border-radius: 20px; background: var(--hc-secondary-background); padding: 3px; }
.hc .hc__switch::after { content: ''; display: block; width: 18px; height: 18px; border-radius: 50%; background: var(--hc-muted); transition: transform .15s ease; }
.hc input:checked + .hc__switch { background: var(--hc-button-background); border-color: var(--hc-button-background); }
.hc input:checked + .hc__switch::after { background: var(--hc-button-text); transform: translateX(18px); }
.hc .hc__always { float: right; color: var(--hc-muted); font-size: .8em; padding-top: 3px; }
.hc .hc__category p, .hc .hc__category ul { font-size: .9em; }
.hc .hc__category ul { padding-left: 20px; margin: 8px 0 12px; color: var(--hc-muted); overflow-wrap: anywhere; }
.hc .hc__status:empty { display: none; }
.hc .hc__status { margin: 12px 0 0; font-size: .85em; }
.hc .hc__reopen { padding: 10px 16px; border: 1px solid var(--hc-border); background: var(--hc-background); color: var(--hc-text); box-shadow: 0 4px 20px #0001; font-size: .85em; }
@media (max-width: 540px) { .hc { left: var(--hc-gap); right: var(--hc-gap); width: auto; } .hc__panel { position: relative; padding: min(var(--hc-padding), 20px); } }
@media (prefers-reduced-motion: reduce) { .hc .hc__switch::after { transition: none; } }
/* Full-width banners attach to the window edge; popup dimensions stay separate. */
.hc { pointer-events: none; }
.hc__panel, .hc__reopen { pointer-events: auto; }
.hc.hc--banner_top, .hc.hc--banner_bottom { left: 0; right: 0; width: 100%; }
.hc.hc--banner_top { top: var(--hc-top-offset, 0px); bottom: auto; }
.hc.hc--banner_bottom { bottom: 0; }
.admin-bar .hc--banner_top { --hc-top-offset: var(--wp-admin--admin-bar--height, 32px); }
.hc--banner_top .hc__panel, .hc--banner_bottom .hc__panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 520px); align-items: center; gap: 0 32px; border-radius: 0; max-height: calc(100dvh - var(--hc-top-offset, 0px)); }
.hc--banner_top .hc__panel { border-width: 0 0 1px; }
.hc--banner_bottom .hc__panel { border-width: 1px 0 0; }
.hc--banner_top .hc__intro, .hc--banner_bottom .hc__intro { min-width: 0; }
.hc--banner_top .hc__actions, .hc--banner_bottom .hc__actions { grid-column: 2; grid-row: 1; margin-top: 0; }
.hc--banner_top .hc__details, .hc--banner_bottom .hc__details { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.hc--banner_top .hc__status, .hc--banner_bottom .hc__status { grid-column: 1 / -1; }
.hc.hc--banner_top .hc__reopen, .hc.hc--banner_bottom .hc__reopen { margin: var(--hc-gap); }
@media (max-width: 900px) {
 .hc--banner_top .hc__panel, .hc--banner_bottom .hc__panel { grid-template-columns: 1fr; }
 .hc--banner_top .hc__actions, .hc--banner_bottom .hc__actions { grid-column: 1; grid-row: auto; margin-top: 12px; }
 .hc--banner_top .hc__details, .hc--banner_bottom .hc__details { grid-row: auto; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 540px) {
 .hc--banner_top .hc__details, .hc--banner_bottom .hc__details { grid-template-columns: 1fr; gap: 0; }
 .admin-bar .hc--banner_top { --hc-top-offset: 46px; }
}

.hc .hc__intro { padding-right: 32px; }
.hc--banner_top .hc__panel, .hc--banner_bottom .hc__panel { padding-top: max(var(--hc-padding), 48px); }
.hc--details { --hc-width: var(--hc-details-width); }
.hc.hc__modal { inset: 50% auto auto 50%; transform: translate(-50%, -50%); width: min(var(--hc-details-width), calc(100vw - 32px)); margin: 0; padding: 0; border: 0; background: transparent; overflow: visible; }
.hc__modal:not([open]) { display: none; }
.hc__modal::backdrop { background: #0006; }
.hc__modal .hc__panel { max-height: calc(100dvh - 32px); }

/* Cookie disclosures inherit the banner palette and keep consent toggles separate. */
.hc .hc__cookies { margin: 12px 0; font-size: .9em; }
.hc .hc__cookies > summary { cursor: pointer; min-height: 44px; padding: 10px 0; color: var(--hc-text); font-weight: 600; overflow-wrap: anywhere; }
.hc .hc__cookies > summary:focus-visible { outline: 3px solid var(--hc-focus); outline-offset: 3px; border-radius: 2px; }
.hc .hc__cookie-count { display: inline-block; margin-left: 6px; padding: 0 7px; border: 1px solid var(--hc-border); border-radius: 20px; font-size: .85em; font-weight: 400; color: var(--hc-muted); }
.hc .hc__cookie-list { border: 1px solid var(--hc-border); border-radius: min(var(--hc-radius), 8px); overflow: hidden; }
.hc .hc__cookie { display: grid; grid-template-columns: minmax(70px, 90px) minmax(0, 1fr); gap: 8px 16px; padding: 16px; margin: 0; line-height: 1.6; }
.hc .hc__cookie + .hc__cookie { border-top: 1px solid var(--hc-border); }
.hc .hc__cookie dt { margin: 0; font-weight: 600; color: var(--hc-text); overflow-wrap: anywhere; }
.hc .hc__cookie dd { margin: 0; color: var(--hc-muted); min-width: 0; overflow-wrap: anywhere; white-space: pre-line; }
.hc .hc__cookie .hc__cookie-name { color: var(--hc-text); }
@media (max-width: 540px) { .hc .hc__cookie { grid-template-columns: minmax(65px, 80px) minmax(0, 1fr); gap: 6px 10px; padding: 12px; } }
