.viov-consent-banner, .viov-consent-dialog {
  box-sizing: border-box;
  background: var(--viov-consent-background, #fff);
  color: var(--viov-consent-color, #20262a);
  font: 400 var(--viov-consent-body-size, 15px)/1.5 var(--viov-consent-font, system-ui, sans-serif);
  padding: var(--viov-consent-padding, 22px);
  border: 1px solid var(--viov-consent-border, #c8cdd0);
  border-radius: var(--viov-consent-radius, 12px);
  box-shadow: 0 8px 36px #0003;
  text-align: left; overflow-wrap: anywhere;
}
.viov-consent-banner {
  /* Keep consent choices above floating booking, chat and widget controls. */
  position: fixed; z-index: 2147483646; right: 20px;
  bottom: max(env(safe-area-inset-bottom, 0px), min(var(--viov-consent-banner-bottom, 105px), 35dvh));
  width: min(var(--viov-consent-banner-width, 460px), calc(100vw - 40px));
  max-height: min(75vh, calc(100dvh - min(var(--viov-consent-banner-bottom, 105px), 35dvh) - 20px));
  overflow: auto;
}
.viov-consent-banner[data-position="left"] { left: 20px; right: auto; }
.viov-consent-banner[data-position="center"] { left: 50%; right: auto; transform: translateX(-50%); }
.viov-consent-banner[data-layout="bar"] {
  inset: auto 0 0; transform: none; width: 100%; max-height: min(50vh, 50dvh);
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 24px;
  padding: min(var(--viov-consent-padding, 22px), 18px) max(20px, env(safe-area-inset-right, 0px))
    max(min(var(--viov-consent-padding, 22px), 18px), env(safe-area-inset-bottom, 0px)) max(20px, env(safe-area-inset-left, 0px));
  border-width: 1px 0 0; border-radius: 0; box-shadow: none;
}
.viov-consent-banner[data-layout="bar"] .viov-consent-copy {
  flex: 1 1 32rem; max-width: 760px; min-width: 0;
  max-height: max(80px, calc(min(50vh, 50dvh) - 156px)); overflow: auto;
}
.viov-consent-banner[data-layout="bar"] .viov-consent-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.viov-consent-banner[data-layout="bar"] .viov-consent-actions button { margin: 0; }
.viov-consent-banner[data-layout="bar"] .viov-consent-copy p { margin-bottom: 0; }
.viov-consent-explanation { display: flex; align-items: baseline; gap: 6px; }
.viov-consent-explanation p { flex: 1; min-width: 0; }
.viov-consent-explanation[data-expanded="false"] p { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.viov-consent-banner .viov-consent-read-more, .viov-consent-banner .viov-consent-read-more:hover {
  flex-shrink: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none;
  color: var(--viov-consent-link, #245b82); font: inherit; text-decoration: underline;
  margin: 0; padding: 2px 0; min-height: 24px;
}
.viov-consent-read-more[hidden] { display: none; }
.viov-consent-banner[data-layout="bar"] .viov-consent-copy [hidden] { display: none; }
.viov-consent-banner[data-layout="bar"] .viov-consent-copy a { display: inline-block; margin-top: 6px; }
.viov-consent-banner[data-layout="bar"] .viov-consent-status { flex-basis: 100%; max-width: 1200px; margin: 0; }
.viov-consent-status:empty { display: none; }
.viov-consent-banner[hidden], .viov-consent-dialog[hidden] { display: none; }
.viov-consent-banner h2, .viov-consent-dialog h2 {
  font: 700 var(--viov-consent-title-size, 20px)/1.3 var(--viov-consent-title-font, system-ui, sans-serif);
  margin: 0 0 10px; color: inherit; letter-spacing: normal; text-transform: none;
}
.viov-consent-banner p, .viov-consent-dialog p { margin: 0 0 14px; white-space: pre-line; }
.viov-consent-banner button, .viov-consent-dialog button {
  box-sizing: border-box;
  background: var(--viov-consent-button-background, #243b46);
  border: 1px solid var(--viov-consent-button-border, #243b46);
  border-radius: var(--viov-consent-button-radius, 6px);
  padding: var(--viov-consent-button-padding-y, 10px) var(--viov-consent-button-padding-x, 14px);
  color: var(--viov-consent-button-color, #fff);
  font: var(--viov-consent-button-weight, 600) var(--viov-consent-button-size, 14px)/1.2 var(--viov-consent-button-font, system-ui, sans-serif);
  margin: 4px 8px 4px 0; min-height: 44px; max-width: 100%; cursor: pointer;
  white-space: normal; overflow-wrap: anywhere; letter-spacing: normal; text-transform: none;
}
.viov-consent-banner button:hover, .viov-consent-dialog button:hover {
  background: var(--viov-consent-button-hover, #243b46); color: var(--viov-consent-button-hover-color, #fff);
}
.viov-consent-banner a { color: var(--viov-consent-link, #245b82); font-size: 13px; display: block; margin-top: 12px; }
.viov-consent-dialog { width: min(var(--viov-consent-dialog-width, 520px), calc(100vw - 32px)); max-height: 85vh; overflow: auto; }
.viov-consent-dialog::backdrop { background: color-mix(in srgb, var(--viov-consent-overlay, #14232b) var(--viov-consent-overlay-opacity, 60%), transparent); }
.viov-consent-dialog label { display: flex; gap: 10px; align-items: flex-start; margin: 18px 0; cursor: pointer; }
.viov-consent-dialog input[type="checkbox"] { width: 20px; height: 20px; flex-shrink: 0; accent-color: var(--viov-consent-checkbox, #f2be6a); }
.viov-consent-data-controls { margin-top: var(--viov-consent-data-gap, 28px); }
.viov-consent-reopen {
  box-sizing: border-box; position: fixed; z-index: 99996;
  left: max(env(safe-area-inset-left, 0px), var(--viov-consent-reopen-edge, 8px));
  bottom: max(env(safe-area-inset-bottom, 0px), min(var(--viov-consent-reopen-bottom, 8px), 35dvh));
  padding: var(--viov-consent-reopen-padding-y, 6px) var(--viov-consent-reopen-padding-x, 10px);
  border: 1px solid var(--viov-consent-reopen-border, #bcc6cb);
  border-radius: var(--viov-consent-reopen-radius, 5px);
  background: var(--viov-consent-reopen-background, #fff); color: var(--viov-consent-reopen-color, #263c48);
  font: 400 var(--viov-consent-reopen-size, 12px)/1.4 var(--viov-consent-reopen-font, system-ui, sans-serif);
  max-width: calc(100vw - max(env(safe-area-inset-left, 0px), var(--viov-consent-reopen-edge, 8px)) - max(env(safe-area-inset-right, 0px), var(--viov-consent-reopen-edge, 8px)));
  max-height: calc(100dvh - max(env(safe-area-inset-bottom, 0px), min(var(--viov-consent-reopen-bottom, 8px), 35dvh)) - 16px);
  overflow: auto; white-space: normal; overflow-wrap: anywhere; cursor: pointer;
  letter-spacing: normal; text-transform: none;
}
.viov-consent-reopen[data-position="right"] { left: auto; right: max(env(safe-area-inset-right, 0px), var(--viov-consent-reopen-edge, 8px)); }
.viov-consent-reopen[data-position="center"] { left: 50%; right: auto; transform: translateX(-50%); }
.viov-consent-footer { padding: 8px 16px max(96px, calc(env(safe-area-inset-bottom, 0px) + 80px)); text-align: center; }
.viov-consent-reopen[data-mode="footer"] {
  display: inline-block; position: static; inset: auto; z-index: auto; transform: none;
  border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit;
  margin: 0; padding: 8px 4px; min-height: 44px; max-height: none; max-width: 100%;
  text-decoration: none; overflow: visible;
}
.viov-consent-banner :focus-visible, .viov-consent-dialog :focus-visible, .viov-consent-reopen:focus-visible {
  outline: 3px solid var(--viov-consent-focus, #1681b0); outline-offset: 3px;
}
