/* Cookie dialog (shared/consent.js). Bottom sheet on phones, centred card on desktop. */
.kc-lock, .kc-lock body { overflow: hidden; }
.kc-backdrop {
  position: fixed; inset: 0; z-index: 500; display: grid; align-items: end; justify-items: center;
  padding: max(8px, env(safe-area-inset-top)) 0 0;
  background: rgb(8 7 6 / 0.7); backdrop-filter: blur(10px) saturate(0.8); -webkit-backdrop-filter: blur(10px) saturate(0.8);
  animation: k-fade 0.22s var(--ease) both;
}
.kc-backdrop.is-closing { animation: k-fade-out 0.22s var(--ease) both; }
.kc {
  width: min(100%, 600px); max-height: 100%; overflow-y: auto; overscroll-behavior: contain;
  border-radius: 26px 26px 0 0; background: linear-gradient(180deg, rgb(var(--core-rgb) / 0.08), transparent 38%), var(--bg-2);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.07), 0 -20px 60px -20px rgb(0 0 0 / 0.8);
  animation: k-sheet-in 0.42s var(--ease-out) both;
}
.kc--settings { width: min(100%, 720px); }
.kc-in { --kp: clamp(20px, 5.4vw, 34px); display: flex; flex-direction: column; gap: 18px; padding: 26px var(--kp) max(20px, env(safe-area-inset-bottom)); }
.kc-in--settings { padding-top: 12px; gap: 16px; padding-bottom: 0; }
.kc-icon { width: 52px; height: 52px; align-self: center; display: grid; place-items: center; border-radius: 16px; background: var(--surface-2); color: var(--core-hi); }
.kc-icon .k-ic { width: 26px; height: 26px; }
.kc-copy { display: grid; gap: 12px; text-align: center; justify-items: center; }
.kc-copy--left { text-align: left; justify-items: start; gap: 8px; }
.kc-h { font: 800 clamp(22px, 5.6vw, 27px)/1.15 var(--f-display); letter-spacing: -0.025em; text-wrap: balance; }
.kc-h:focus { outline: none; }
.kc-lead { font-size: 15.5px; line-height: 1.55; color: var(--ink-2); max-width: 36em; text-wrap: pretty; }
.kc-assure { display: block; text-align: center; font-size: 14px; line-height: 1.5; color: var(--ink-2); text-wrap: balance; }
.kc-assure .k-ic { display: inline-block; width: 18px; height: 18px; margin-right: 6px; vertical-align: -4px; color: var(--ok); }
.kc-faq { border-top: 1px solid var(--line); }
.kc details { border-bottom: 1px solid var(--line); }
.kc summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 52px; font-weight: 600; font-size: 15px; cursor: pointer; list-style: none; }
.kc summary::-webkit-details-marker { display: none; }
.kc summary .k-ic { width: 18px; height: 18px; color: var(--mute); transition: transform var(--d) var(--ease); }
.kc details[open] > summary .k-ic { transform: rotate(180deg); color: var(--core-hi); }
.kc details > p, .kc details > ul { margin: 0 0 14px; font-size: 14px; line-height: 1.55; color: var(--ink-2); }
.kc details ul { display: grid; gap: 8px; padding-left: 1.1em; list-style: square; }
.kc details li::marker { color: var(--core); }
.kc strong, .kc code { color: var(--ink); font-weight: 600; }
.kc a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.kc-actions { display: grid; gap: 10px; width: min(100%, 440px); margin: 2px auto 0; }
.kc-actions .k-btn--text { justify-self: center; }
.kc-legal { text-align: center; font-size: 13px; color: var(--mute); }
.kc-toolbar { min-height: 44px; display: flex; align-items: center; }
.kc-toolbar .k-icon-btn { margin-left: -8px; }
.kc-cats { border-top: 1px solid var(--line); }
.kc-cat { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 10px 20px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.kc-cat details { border-bottom: 0; }
.kc-cat summary { justify-content: flex-start; font-size: 16px; min-height: 44px; }
.kc-cat summary .k-ic { order: -1; }
.kc-cat details > p { margin: 2px 0 6px 32px; }
.kc-req { justify-self: start; min-height: 40px; display: inline-flex; align-items: center; padding: 0 14px; border-radius: 12px; font-size: 13px; color: var(--ink-2); box-shadow: inset 0 0 0 1px var(--line-2); white-space: nowrap; }
.kc-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.kc-choice button { min-height: 44px; padding: 0 14px; border: 0; border-radius: 12px; background: transparent; font: 500 14px/1 var(--f-text); color: var(--ink-2); box-shadow: inset 0 0 0 1px var(--line-2); transition: background-color var(--d-fast), color var(--d-fast), box-shadow var(--d-fast); }
.kc-choice [data-val="no"][aria-pressed="true"] { background: var(--ink); color: #15120f; box-shadow: none; }
.kc-choice [data-val="yes"][aria-pressed="true"] { background: var(--core); color: #fff; box-shadow: 0 8px 22px -10px rgb(var(--core-rgb) / 0.9); }
.kc-services { border-top: 0; }
.kc-actions--settings {
  position: sticky; bottom: 0; z-index: 2; width: auto;
  margin: auto calc(-1 * var(--kp)) 0; padding: 14px var(--kp) max(16px, env(safe-area-inset-bottom));
  grid-template-columns: 1fr 1fr; background: var(--bg-2); border-top: 1px solid var(--line);
}
@media (max-width: 520px) { .kc-cat { grid-template-columns: 1fr; } .kc-actions--settings { grid-template-columns: 1fr; } }
@media (min-width: 640px) {
  .kc-backdrop { align-items: center; padding: 24px; }
  .kc { border-radius: 24px; max-height: min(860px, 100%); box-shadow: inset 0 0 0 1px var(--line-2), 0 30px 90px -20px rgb(0 0 0 / 0.85); }
  .kc-in--settings { padding-bottom: 0; }
}

/* compact version shown on load (body[data-consent="start"]): short text, icon and title in one row */
.kc--compact .kc-in[data-view="summary"] { gap: 16px; padding-top: 22px; }
.kc--compact .kc-in[data-view="summary"] .kc-icon { display: none; }
.kc--compact .kc-in[data-view="summary"] .kc-copy { gap: 8px; }
.kc--compact .kc-lead { font-size: 15px; }
.kc-backdrop:has(.kc--compact:not(.kc--settings)) { background: rgb(8 7 6 / 0.5); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
