/* Self-contained consent UI: no fonts, images, imports or external requests. */
#oc-consent {
  --oc-ink: #112420;
  --oc-paper: #f6f2e9;
  --oc-accent: #df5c38;
  --oc-line: #d4d9cf;
  color: var(--oc-ink);
  font-family: inherit;
  font-size: 15px;
  line-height: 1.55;
  text-align: left;
}
#oc-consent *, #oc-consent *::before, #oc-consent *::after { box-sizing: border-box; }
#oc-consent [hidden] { display: none !important; }
#oc-consent h2, #oc-consent h3, #oc-consent p { margin: 0; color: inherit; }
#oc-consent button, #oc-consent input { font: inherit; }
#oc-consent button { cursor: pointer; touch-action: manipulation; }
#oc-consent :focus-visible { outline: 3px solid var(--oc-accent); outline-offset: 4px; }
#oc-consent .oc-banner {
  position: fixed;
  z-index: 10000;
  inset: auto 24px max(24px, env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  gap: 28px;
  max-width: 1240px;
  margin-inline: auto;
  padding: 24px 28px;
  background: var(--oc-paper);
  border: 1px solid var(--oc-line);
  border-top: 3px solid var(--oc-accent);
  border-radius: 4px;
  box-shadow: 0 12px 60px rgb(17 36 32 / 18%);
}
#oc-consent .oc-banner-copy { flex: 1 1 430px; min-width: 0; }
#oc-consent .oc-banner h2 { margin-bottom: 5px; font-size: 20px; font-weight: 650; line-height: 1.3; letter-spacing: -.02em; }
#oc-consent .oc-banner p { max-width: 66ch; font-size: 14px; }
#oc-consent .oc-banner-actions { display: grid; grid-template-columns: repeat(3, minmax(136px, 1fr)); gap: 8px; }
#oc-consent .oc-button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 12px 16px;
  border: 1px solid var(--oc-ink);
  border-radius: 2px;
  background: var(--oc-ink);
  color: var(--oc-paper);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
}
#oc-consent .oc-button:hover { background: #28413a; border-color: #28413a; }
.oc-dialog-open { overflow: hidden; }
#oc-consent .oc-dialog {
  position: fixed;
  inset: 0;
  width: min(580px, calc(100% - 32px));
  max-width: 580px;
  max-height: min(850px, calc(100dvh - 40px));
  margin: auto;
  padding: 28px;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--oc-paper);
  color: var(--oc-ink);
  border: 1px solid var(--oc-line);
  border-radius: 4px;
  box-shadow: 0 24px 100px rgb(0 0 0 / 25%);
}
#oc-consent .oc-dialog::backdrop { background: rgb(17 36 32 / 66%); }
#oc-consent .oc-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
#oc-consent .oc-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
#oc-consent .oc-close {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin: -12px -12px 0 0;
  padding: 0;
  background: transparent;
  color: var(--oc-ink);
  border: 1px solid transparent;
  border-radius: 2px;
  font-size: 30px;
  font-weight: 400;
  line-height: 1;
}
#oc-consent .oc-close:hover { border-color: var(--oc-line); background: #edeadf; }
#oc-consent .oc-dialog h2 { margin: 12px 0; font-size: clamp(26px, 5vw, 34px); font-weight: 600; line-height: 1.15; letter-spacing: -.035em; }
#oc-consent #oc-dialog-description { margin-bottom: 12px; }
#oc-consent .oc-links { margin-top: 10px; font-size: 13px; }
#oc-consent .oc-links a { display: inline-block; padding-block: 5px; color: var(--oc-ink); text-decoration: underline; text-underline-offset: 3px; }
#oc-consent .oc-links a:hover { text-decoration-thickness: 2px; }
#oc-consent .oc-dialog > .oc-links { margin-bottom: 16px; }
#oc-consent .oc-necessary, #oc-consent .oc-option { padding-block: 18px; border-top: 1px solid var(--oc-line); }
#oc-consent .oc-necessary > div, #oc-consent .oc-option-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
#oc-consent .oc-necessary h3, #oc-consent .oc-option label { font-size: 17px; font-weight: 650; }
#oc-consent .oc-option label { display: flex; align-items: center; flex: 1; min-height: 44px; cursor: pointer; }
#oc-consent .oc-always { flex-shrink: 0; font-size: 12px; font-weight: 600; }
#oc-consent .oc-necessary p, #oc-consent .oc-option p { margin-top: 7px; font-size: 14px; }
#oc-consent .oc-option input { width: 24px; height: 24px; margin: 10px; flex-shrink: 0; accent-color: var(--oc-ink); cursor: pointer; }
#oc-consent .oc-option input:disabled, #oc-consent .oc-option-heading:has(input:disabled) label { cursor: default; }
#oc-consent .oc-dialog-actions { margin-top: 10px; padding-top: 20px; border-top: 1px solid var(--oc-line); }
#oc-consent .oc-dialog-actions .oc-button { width: 100%; }
#oc-consent .oc-notice {
  position: fixed;
  z-index: 10001;
  inset: auto 20px max(24px, env(safe-area-inset-bottom));
  width: fit-content;
  max-width: min(560px, calc(100% - 40px));
  margin-inline: auto;
  padding: 12px 18px;
  border: 1px solid var(--oc-line);
  border-radius: 2px;
  background: var(--oc-ink);
  color: var(--oc-paper);
  font-size: 14px;
  opacity: 0;
  pointer-events: none;
}
#oc-consent .oc-notice-visible { opacity: 1; }
@media (max-width: 1050px) {
  #oc-consent .oc-banner { flex-direction: column; align-items: stretch; gap: 18px; }
  #oc-consent .oc-banner-copy { flex-basis: auto; }
}
@media (max-width: 560px) {
  #oc-consent .oc-banner { inset-inline: 12px; bottom: max(12px, env(safe-area-inset-bottom)); padding: 18px; max-height: calc(100dvh - 24px); overflow-y: auto; }
  #oc-consent .oc-banner h2 { font-size: 19px; }
  #oc-consent .oc-banner-actions { grid-template-columns: 1fr; gap: 7px; }
  #oc-consent .oc-dialog { padding: 22px; max-height: calc(100dvh - 24px); }
}
@media (forced-colors: active) {
  #oc-consent .oc-button, #oc-consent .oc-close { border: 1px solid ButtonText; }
  #oc-consent .oc-banner, #oc-consent .oc-dialog { border: 1px solid CanvasText; }
}
