/* Isolated privacy controls: page chapter/grid rules never style these panels. */
:root { --gk-cookie-offset: 0px; }
html { scroll-padding-bottom: calc(var(--gk-cookie-offset) + 1rem); }
body { padding-bottom: var(--gk-cookie-offset); }
.gk-cookie-banner[hidden], .gk-cookie-dialog [hidden], .footer [data-cookie-settings][hidden] { display: none !important; }
.gk-cookie-banner, .gk-cookie-dialog {
  box-sizing: border-box; color: #153b28; background: #fff;
  font: 400 1rem/1.5 "DM Sans", Arial, sans-serif; text-align: left;
}
.gk-cookie-banner *, .gk-cookie-dialog * { box-sizing: border-box; }
.gk-cookie-banner {
  position: fixed; z-index: 10000; inset: auto 0 0; padding: 1.25rem clamp(1rem, 4vw, 4rem);
  border-top: 5px solid #ffdb22; box-shadow: 0 -8px 30px #061b1824;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: center;
  max-height: 85dvh; overflow: auto;
}
.gk-cookie-banner h2, .gk-cookie-dialog h2 {
  font-family: "Barlow Condensed", Impact, sans-serif; font-size: 1.8rem; line-height: 1.15;
  color: #153b28; text-transform: uppercase; letter-spacing: .01em; margin: 0 0 .55rem; max-width: none;
}
.gk-cookie-banner p, .gk-cookie-dialog p { margin: 0; font: inherit; color: #153b28; max-width: none; }
.gk-cookie-banner p { max-width: 68ch; font-size: .94rem; }
.gk-cookie-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: stretch; }
.gk-cookie-banner button, .gk-cookie-dialog button {
  min-height: 46px; min-width: 44px; margin: 0; padding: .7rem 1rem;
  border: 2px solid #153b28; border-radius: 4px; background: #153b28;
  color: #fff; font: 700 .94rem/1.3 "DM Sans", Arial, sans-serif; cursor: pointer;
  text-transform: none; letter-spacing: normal; box-shadow: none;
}
.gk-cookie-banner button:hover, .gk-cookie-dialog button:hover { color: #153b28; background: #ffdb22; }
.gk-cookie-banner a, .gk-cookie-dialog a { color: #145639; text-decoration: underline; text-underline-offset: .16em; }
.gk-cookie-banner :focus-visible, .gk-cookie-dialog :focus-visible { outline: 3px solid #1263aa; outline-offset: 3px; }
.gk-cookie-dialog {
  inset: 0; margin: auto; padding: 1.5rem; width: min(42rem, calc(100% - 2rem));
  max-height: calc(100dvh - 2rem); overflow-y: auto; border: 3px solid #153b28;
  border-top: 7px solid #ffdb22; border-radius: 12px 0 12px 0;
}
.gk-cookie-dialog::backdrop { background: rgb(5 24 15 / .65); }
.gk-cookie-dialog-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.gk-cookie-dialog .gk-cookie-close { padding: 0; width: 46px; height: 46px; flex: 0 0 46px; font-size: 1.8rem; line-height: 1; }
.gk-cookie-category { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; border-top: 1px solid #c4d0c7; padding: 1rem 0; }
.gk-cookie-category:first-of-type { margin-top: 1.25rem; }
.gk-cookie-category h3, .gk-cookie-category label { font: 700 1.08rem/1.4 "DM Sans", Arial, sans-serif; color: #153b28; display: block; margin: 0 0 .3rem; }
.gk-cookie-category p { font-size: .94rem; }
.gk-cookie-category input[type=checkbox] { width: 26px; height: 26px; min-width: 26px; margin: 8px; accent-color: #153b28; cursor: pointer; }
.gk-cookie-always { color: #153b28; font-size: .85rem; font-weight: 700; white-space: nowrap; }
.gk-cookie-dialog .gk-cookie-small { font-size: .88rem; margin: .75rem 0; }
.gk-cookie-dialog .gk-cookie-actions { border-top: 1px solid #c4d0c7; padding-top: 1rem; margin-top: 1rem; }
.gk-cookie-dialog .gk-cookie-actions button { flex: 1 1 auto; }
.footer .cookie-settings-link { color: #dce6de; background: none; border: 0; text-decoration: underline; text-underline-offset: .2em; font: inherit; cursor: pointer; padding: .5rem 0; min-height: 44px; }
.footer .cookie-settings-link:hover { color: #ffdb22; }
.footer .cookie-settings-link:focus-visible { outline: 3px solid #ffdb22; outline-offset: 4px; }
@media (max-width: 1000px) {
  .gk-cookie-banner { grid-template-columns: 1fr; gap: 1rem; }
  .gk-cookie-banner .gk-cookie-actions { justify-content: flex-start; }
}
@media (max-width: 480px) {
  .gk-cookie-banner { padding: 1rem; }
  .gk-cookie-banner h2, .gk-cookie-dialog h2 { font-size: 1.55rem; }
  .gk-cookie-banner .gk-cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .gk-cookie-banner [data-gk-choice=settings] { grid-column: 1 / -1; }
  .gk-cookie-dialog { padding: 1rem; }
  .gk-cookie-dialog .gk-cookie-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .gk-cookie-dialog [data-gk-choice=save] { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .gk-cookie-banner, .gk-cookie-dialog, .gk-cookie-banner *, .gk-cookie-dialog * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
