/* Cookie consent — centred card, matching the original banner.

   Two cases share one look:
   1. the captured Cookiebot dialog → pinned, tidied, tabbed;
   2. `#vgm-consent`, the local twin, when the CDN deleted the markup.

   Both are a centred modal with Consent / Details / About tabs and
   Deny / Customize / Allow all. The page is never frozen. */

/* ---------- shared shell ---------- */
#CybotCookiebotDialog,
#vgm-consent {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  top: 50% !important;
  bottom: auto !important;
  transform: translate(-50%, -50%) !important;
  margin: 0 !important;
  width: 780px !important;
  max-width: calc(100vw - 32px) !important;
  max-height: 88vh !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
  border-radius: 4px !important;
  padding: 0 !important;
  background: #f8f2d8 !important;
  color: #10131a !important;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .4) !important;
  z-index: 2147483000 !important;
  font-family: 'Gotham Rounded A', 'Gotham Rounded B', Arial, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.6 !important;
}

#CybotCookiebotDialog.is-dismissed,
#CybotCookiebotDialog[aria-hidden="true"],
#vgm-consent.is-dismissed {
  display: none !important;
}

/* the capture ships a full-screen wrapper — neutralise it */
#CybotCookiebotDialog .CybotCookiebotDialogContentWrapper {
  max-height: none !important;
  overflow: visible !important;
  display: block !important;
}

#CybotCookiebotDialogBodyUnderlay {
  pointer-events: none !important;
  background: transparent !important;
  display: none !important;
}

/* a dialog is open, the page must stay scrollable */
html body {
  overflow-y: auto !important;
  overflow-x: hidden !important;
}

/* The captured Cookiebot markup is only a fallback shell: without the CDN
   it is full of raw [#IABV2_*#] tokens. Hide it from the very first paint
   so it never flashes; cookie-fix.js always renders #vgm-consent instead. */
#CybotCookiebotDialog { display: none !important; }

/* ---------- captured dialog: make it look like the original ---------- */
#CybotCookiebotDialog #CybotCookiebotDialogHeader {
  display: block !important;
  padding: 18px 20px 0 !important;
  border: 0 !important;
  background: transparent !important;
}
#CybotCookiebotDialog #CybotCookiebotDialogHeaderLogosWrapper {
  display: flex !important;
  align-items: center;
}
#CybotCookiebotDialog #CybotCookiebotDialogPoweredbyCybot { display: none !important; }
/* the captured markup carries the museum mark inline — show it as is */
#CybotCookiebotDialog #CybotCookiebotDialogHeaderLogosWrapper::before {
  content: "";
  display: block;
  width: 44px;
  height: 44px;
  background: #10131a;
}
#CybotCookiebotDialog #CybotCookiebotDialogPoweredbyImage {
  position: absolute;
  left: 25px;
  top: 23px;
  display: block !important;
  width: 34px !important;
  height: 34px !important;
  object-fit: contain;
}

/* the tab bar is the signature of the original */
#CybotCookiebotDialog #CybotCookiebotDialogNav {
  display: flex !important;
  border-bottom: 1px solid #d8d2b6 !important;
  background: transparent !important;
}
#CybotCookiebotDialog #CybotCookiebotDialogNav ul {
  display: flex !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
#CybotCookiebotDialog #CybotCookiebotDialogNav li:not(#CybotCookiebotDialogNavItemAdSettings) { flex: 1 1 0; }
/* the dead "Consent Selection" tab stays out */
#CybotCookiebotDialog #CybotCookiebotDialogNavItemAdSettings { display: none !important; }
#CybotCookiebotDialog #CybotCookiebotDialogNavItemLink,
#CybotCookiebotDialog #CybotCookiebotDialogNav .CybotCookiebotDialogNavItemLink {
  display: block !important;
  padding: 12px 10px !important;
  text-align: center !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #10131a !important;
  text-decoration: none !important;
  border-bottom: 3px solid transparent !important;
}
#CybotCookiebotDialog #CybotCookiebotDialogNav .CybotCookiebotDialogActive {
  border-bottom-color: #002fa7 !important;
}

#CybotCookiebotDialog #CybotCookiebotDialogBodyContent {
  display: block !important;
  padding: 20px 20px 0 !important;
  max-height: none !important;
  overflow: visible !important;
}
#CybotCookiebotDialog #CybotCookiebotDialogBodyContentTitle { display: none !important; }
#CybotCookiebotDialog #CybotCookiebotDialogBodyContentText {
  display: block !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  text-align: left !important;
}
#CybotCookiebotDialog #CybotCookiebotDialogBodyContentText p { margin: 0 0 6px !important; }
#CybotCookiebotDialog #CybotCookiebotDialogBodyContentText p:empty { display: none !important; }
#CybotCookiebotDialog #CybotCookiebotDialogBodyContentText a { color: #10131a !important; }
/* the "do not sell" line belongs above the buttons, not inside details */
#CybotCookiebotDialog #CybotCookiebotDialogFooter .CybotCookiebotDialogBodyLevelButtonWrapper {
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 0 0 10px !important;
  font-size: 12px !important;
}
#CybotCookiebotDialog #CybotCookiebotDialogFooter .CybotCookiebotDialogBodyLevelButtonWrapper.CybotCookiebotDialogHide {
  display: none !important;
}

/* only the declaration panel is styled; the other two tabs are plain text */
#CybotCookiebotDialog #CybotCookiebotDialogBodyEdgeMoreDetails,
#CybotCookiebotDialog #CybotCookiebotDialogDetailBulkConsentLink,
#CybotCookiebotDialog .CybotCookiebotDialogBodyContentControlsWrapper,
#CybotCookiebotDialogBodyContentCheckboxPersonalInformation,
#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButtonWrapper.CybotCookiebotDialogBodyContentControlsWrapper {
  display: none !important;
}
/* give the detail panel room above the sticky action row */
#CybotCookiebotDialog #CybotCookiebotDialogBody {
  padding-bottom: 8px !important;
}
/* tabs other than the declaration get a plain, readable body */
#CybotCookiebotDialog .CybotCookiebotDialogTabPanel:not(#CybotCookiebotDialogBody),
#CybotCookiebotDialog #vgm-tab-outlet {
  padding: 20px !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  max-height: 44vh !important;
  overflow-y: auto !important;
}
#CybotCookiebotDialog #vgm-tab-outlet { display: block; }
#CybotCookiebotDialog #vgm-tab-outlet p { margin: 0 0 10px !important; }
#CybotCookiebotDialog .CybotCookiebotDialogSROnly { display: none !important; }
/* keep the captured detail tables tidy: kill the yellow CDN bars */
#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieTypeTableContainer {
  background: transparent !important;
  border: 0 !important;
}
#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieContainerTypesTitle,
#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieTypeTable tbody tr,
#CybotCookiebotDialog .CybotCookiebotDialogDetailBodyContentCookieTypeTable tbody td {
  background: transparent !important;
}
#CybotCookiebotDialog .CookieCard { padding: 10px 0; border-top: 1px solid #e2ddc4; }
#CybotCookiebotDialog .CookieCard:first-child { border-top: 0; }
#CybotCookiebotDialog #CybotCookiebotDialogDetailBodyContentTextAbout p { margin: 0 0 8px !important; }

/* consent switches, compact and paired — only shown in the Details tab
   (JS moves the wrapper there, so they never repeat the summary) */
#CybotCookiebotDialog #CybotCookiebotDialogBodyLevelWrapper {
  display: block !important;
  padding: 0 0 10px !important;
  border-bottom: 1px solid #e2ddc4 !important;
  margin-bottom: 12px !important;
}
#CybotCookiebotDialog #CybotCookiebotDialogBodyLevelButtonsSelectPaneLegend { display: none !important; }
#CybotCookiebotDialog #CybotCookiebotDialogBodyFieldsetInnerContainer {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 6px 22px !important;
  padding: 0 !important;
}
#CybotCookiebotDialog .CybotCookiebotDialogBodyLevelButtonWrapper {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 13px !important;
}
/* the unused "Allow selection" button is CDN-only */
#CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection { display: none !important; }
/* Customize must stay visible even when the capture marks it hidden */
#CybotCookiebotDialogBodyLevelButtonCustomize { display: inline-flex !important; }

/* action row: always reachable at the bottom of the sheet */
#CybotCookiebotDialog #CybotCookiebotDialogFooter {
  position: sticky !important;
  bottom: 0 !important;
  margin: 0 !important;
  padding: 14px 20px 20px !important;
  background: #f8f2d8 !important;
  border: 0 !important;
  border-top: 1px solid #ece5c8 !important;
  z-index: 4 !important;
}
#CybotCookiebotDialog #CybotCookiebotDialogBodyButtonsWrapper,
#vgm-consent .vc-actions {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
  justify-content: stretch !important;
}
#CybotCookiebotDialogBodyButtonsWrapper .CybotCookiebotDialogBodyButton,
#vgm-consent .vc-btn {
  flex: 1 1 0 !important;
  min-height: 46px !important;
  padding: 10px 14px !important;
  border: 1px solid #10131a !important;
  border-radius: 3px !important;
  background: #f8f2d8 !important;
  color: #10131a !important;
  font-family: inherit !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  white-space: nowrap;
}
#vgm-consent .vc-btn.primary,
#CybotCookiebotDialog #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll,
#CybotCookiebotDialog #CybotCookiebotDialogBodyButtonAccept {
  background: #10131a !important;
  border-color: #10131a !important;
  color: #fff !important;
}
#vgm-consent .vc-btn:hover,
#CybotCookiebotDialogBodyButtonsWrapper .CybotCookiebotDialogBodyButton:hover {
  background: #efe7c6 !important;
}
#vgm-consent .vc-btn.primary:hover,
#CybotCookiebotDialog #CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll:hover {
  background: #000 !important;
}
/* unrendered variants stay hidden */
#CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection.CybotCookiebotDialogHide,
#CybotCookiebotDialogBodyLevelButtonCustomize.CybotCookiebotDialogHide { display: none !important; }

/* close cross, top-right like the original */
#CybotCookiebotBannerCloseButtonE2E,
#vgm-consent .vc-x {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  width: 32px !important;
  height: 32px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #10131a !important;
  font-size: 24px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  z-index: 3 !important;
}
/* the duplicated header close button from the capture */
#CybotCookiebotDialogHeader .CybotCookiebotBannerCloseButton { display: none !important; }

/* ---------- local twin: tabs, logo, panels ---------- */
#vgm-consent { padding: 0; }
#vgm-consent .vc-card { position: relative; }
#vgm-consent .vc-logo {
  display: flex;
  align-items: center;
  padding: 18px 20px 0;
}
#vgm-consent .vc-logo img {
  width: 44px;
  height: 44px;
  object-fit: contain;
}
#vgm-consent .vc-tabs {
  display: flex;
  margin-top: 14px;
  border-bottom: 1px solid #d8d2b6;
}
#vgm-consent .vc-tab {
  flex: 1 1 0;
  padding: 12px 10px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  color: #10131a;
  cursor: pointer;
}
#vgm-consent .vc-tab.is-active { border-bottom-color: #002fa7; }
#vgm-consent .vc-panel {
  padding: 20px 20px 0;
  font-size: 14px;
  line-height: 1.65;
}
#vgm-consent .vc-panel[hidden] { display: none; }
#vgm-consent .vc-panel p { margin: 0 0 6px; }
#vgm-consent .vc-panel a { color: #10131a; }
#vgm-consent .vc-levels {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 18px;
}
#vgm-consent .vc-levels li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 13px;
}
#vgm-consent .vc-actions { padding: 18px 20px 20px; }
#vgm-consent .vc-arrow { margin-left: 4px; }

/* switch look for the checkbox pills */
.vc-switch { position: relative; display: inline-flex; width: 38px; height: 22px; flex: 0 0 auto; }
.vc-switch input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.vc-switch i {
  width: 100%;
  height: 100%;
  border-radius: 12px;
  background: #d8d2b6;
  transition: background .15s;
}
.vc-switch i::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  transition: transform .15s;
}
.vc-switch input:checked + i { background: #10131a; }
.vc-switch input:checked + i::after { transform: translateX(16px); }

@media screen and (max-width: 649px) {
  #CybotCookiebotDialog,
  #vgm-consent {
    width: calc(100vw - 20px) !important;
    max-height: 92vh !important;
  }
  #CybotCookiebotDialog #CybotCookiebotDialogBodyFieldsetInnerContainer,
  #vgm-consent .vc-levels { grid-template-columns: 1fr; }
  #CybotCookiebotDialogBodyButtonsWrapper .CybotCookiebotDialogBodyButton,
  #vgm-consent .vc-btn { font-size: 13px !important; padding: 10px 8px !important; }
}
