/* Independent of page styles so the same consent controls work on the book and legal pages. */
.cookie-panel,.cookie-panel * { box-sizing: border-box; }
.cookie-panel[hidden],.cookie-settings[hidden] { display: none !important; }
.cookie-panel {
  position: fixed; z-index: 10000; inset: auto 20px 20px auto;
  width: min(720px,calc(100% - 40px)); max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px);
  overflow: auto; overscroll-behavior: contain; padding: 24px; margin: 0;
  border: 1px solid #555; border-radius: 6px; background: #111; color: #f0f0f0;
  box-shadow: 0 12px 60px #0009; font-family: 'DM Sans',system-ui,sans-serif;
  font-size: 14px; font-weight: 400; line-height: 1.65; letter-spacing: normal;
  color-scheme: dark; text-align: left;
}
.cookie-panel h2 { margin: 0 0 10px; font: 600 20px/1.3 'DM Sans',system-ui,sans-serif; letter-spacing: -.02em; }
.cookie-panel p { margin: 0 0 14px; color: #c4c4c4; font-size: 14px; line-height: 1.65; }
.cookie-panel .cookie-current { margin: 0 0 16px; color: #aaa; font-size: 12px; }
.cookie-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 16px 0; }
.cookie-actions button {
  appearance: none; min-height: 44px; width: 100%; margin: 0; padding: 11px 16px;
  border: 1px solid #aaa; border-radius: 3px; background: #eee; color: #111;
  font: 500 14px/1.4 'DM Sans',system-ui,sans-serif; cursor: pointer; text-align: center;
  text-transform: none; letter-spacing: normal; white-space: normal;
}
.cookie-actions button:hover { background: #fff; }
.cookie-panel details { border-top: 1px solid #ffffff30; padding-top: 12px; }
.cookie-panel summary { padding: 5px 0; font-size: 13px; cursor: pointer; color: #e5e5e5; }
.cookie-details { padding-top: 18px; }
.cookie-details h3 { margin: 16px 0 8px; font: 600 15px/1.5 'DM Sans',system-ui,sans-serif; }
.cookie-details h3:first-child { margin-top: 0; }
.cookie-details p { font-size: 13px; }
.cookie-panel a { color: #eee; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.cookie-notice-links { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 12px 0 0; font-size: 12px; }
.cookie-close { display: inline-block; margin: 12px 0 0; padding: 5px 0; border: 0; border-radius: 0; background: none; color: #ccc; font: 400 13px/1.5 'DM Sans',system-ui,sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cookie-settings { display: inline-block; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: #aaa; font: 400 12px/1.6 'DM Sans',system-ui,sans-serif; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; text-transform: none; letter-spacing: normal; }
.cookie-settings:hover { color: #fff; }
.cookie-panel :is(button,a,summary):focus-visible,.cookie-settings:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.cookie-announcement { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 520px) {
  .cookie-panel { inset: auto 12px 12px; width: auto; padding: 18px; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
  .cookie-actions { grid-template-columns: 1fr; gap: 10px; }
  .cookie-panel h2 { font-size: 18px; }
}
@media print { .cookie-panel,.cookie-settings,.cookie-announcement { display: none !important; } }
