/* ILUMA Cookie Consent PRO — scoped; no theme or third-party CSS required. */
.iluma-cc {
  --iluma-accent: #2563eb;
  --iluma-bg: #ffffff;
  --iluma-modal-bg: #ffffff;
  --iluma-text: #142338;
  --iluma-muted: #5f6f82;
  --iluma-line: #dce4ec;
  --iluma-subtle: #f4f7fa;
  --iluma-shadow: 0 24px 64px rgba(11, 31, 55, .17);
  --iluma-radius: 20px;
  --iluma-button-radius: 11px;
  --iluma-backdrop: none;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Inter, Roboto, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  color: var(--iluma-text);
  isolation: isolate;
}
.iluma-cc *, .iluma-cc *::before, .iluma-cc *::after { box-sizing: border-box; }
.iluma-cc [hidden] { display: none !important; }
.iluma-cc button { font-family: inherit; font-size: inherit; font-weight: 700; text-transform: none; letter-spacing: normal; line-height: 1.25; }
.iluma-cc button:focus-visible, .iluma-cc a:focus-visible, .iluma-cc input:focus-visible + .iluma-cc-toggle-slider { outline: 3px solid var(--iluma-accent); outline-offset: 3px; }
.iluma-theme-glass { --iluma-bg: rgba(255, 255, 255, .91); --iluma-backdrop: blur(22px) saturate(130%); }
.iluma-theme-light { --iluma-bg: #fff; --iluma-text: #18273d; --iluma-muted: #66758a; }
.iluma-theme-dark { --iluma-modal-bg: #172032; --iluma-bg: #172032; --iluma-text: #f6f9fc; --iluma-muted: #b2c0d1; --iluma-line: #3c4b61; --iluma-subtle: #222f45; --iluma-shadow: 0 24px 64px rgba(0, 0, 0, .39); }
.iluma-theme-midnight { --iluma-modal-bg: #0a1224; --iluma-bg: #0a1224; --iluma-text: #f3f6ff; --iluma-muted: #a5b6d4; --iluma-line: #33415e; --iluma-subtle: #17213a; --iluma-shadow: 0 24px 70px rgba(4, 11, 32, .45); }
.iluma-theme-ocean { --iluma-modal-bg: #e5f7f8; --iluma-bg: #e5f7f8; --iluma-text: #094654; --iluma-muted: #3c7382; --iluma-line: #a8dbdf; --iluma-subtle: #d1eff1; --iluma-shadow: 0 24px 65px rgba(0, 77, 93, .20); }
.iluma-theme-sunset { --iluma-modal-bg: #fff4ee; --iluma-bg: #fff4ee; --iluma-text: #663426; --iluma-muted: #916451; --iluma-line: #f0c9b5; --iluma-subtle: #ffe8dc; --iluma-shadow: 0 24px 65px rgba(125, 62, 31, .18); }
.iluma-theme-minimal { --iluma-bg: #fff; --iluma-text: #202020; --iluma-muted: #585858; --iluma-line: #cfcfcf; --iluma-subtle: #f7f7f7; --iluma-radius: 6px; --iluma-shadow: 0 8px 32px rgba(0, 0, 0, .12); }
.iluma-theme-gradient { --iluma-modal-bg: #ffffff; --iluma-bg: linear-gradient(125deg, #edf4ff 0%, #fff 46%, #f3e9ff 100%); --iluma-text: #253054; --iluma-muted: #656e89; --iluma-line: #d4d3ef; --iluma-subtle: #eeedff; --iluma-shadow: 0 26px 72px rgba(67, 62, 133, .20); }
.iluma-buttons-pill { --iluma-button-radius: 999px; }
.iluma-buttons-square { --iluma-button-radius: 3px; }
.iluma-density-compact .iluma-cc-banner { padding: 16px 20px; gap: 16px; }
.iluma-density-compact .iluma-cc-banner p { line-height: 1.45; }
.iluma-density-compact .iluma-cc-button { padding: 11px 15px; }

.iluma-cc-banner {
  position: fixed;
  z-index: 2147483000;
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 25px 28px;
  border: 1px solid var(--iluma-line);
  border-radius: var(--iluma-radius);
  color: var(--iluma-text);
  background: var(--iluma-bg);
  -webkit-backdrop-filter: var(--iluma-backdrop);
  backdrop-filter: var(--iluma-backdrop);
  box-shadow: var(--iluma-shadow);
  opacity: 0;
  transform: translateY(25px);
  transition: opacity .28s ease, transform .34s cubic-bezier(.2,.8,.2,1);
  max-height: calc(100dvh - 28px);
  overflow: auto;
}
.iluma-cc-banner.iluma-cc-visible { opacity: 1; transform: translateY(0); }
.iluma-cc-banner.iluma-pos-center { left: 50%; bottom: 22px; width: min(calc(100% - 36px), 1010px); transform: translate(-50%, 25px); }
.iluma-cc-banner.iluma-pos-center.iluma-cc-visible { transform: translate(-50%, 0); }
.iluma-cc-banner.iluma-pos-left, .iluma-cc-banner.iluma-pos-right { bottom: 22px; width: min(440px, calc(100% - 36px)); flex-direction: column; align-items: stretch; gap: 19px; }
.iluma-cc-banner.iluma-pos-left { left: 22px; }
.iluma-cc-banner.iluma-pos-right { right: 22px; }
.iluma-cc-banner.iluma-pos-top, .iluma-cc-banner.iluma-pos-bottom { left: 0; right: 0; width: 100%; border-radius: 0; justify-content: center; padding-left: max(25px, calc((100% - 1160px) / 2)); padding-right: max(25px, calc((100% - 1160px) / 2)); }
.iluma-cc-banner.iluma-pos-top { top: 0; transform: translateY(-25px); }
.iluma-cc-banner.iluma-pos-top.iluma-cc-visible { transform: translateY(0); }
.iluma-cc-banner.iluma-pos-bottom { bottom: 0; }
.iluma-cc-banner-copy { flex: 1 1 350px; min-width: 0; }
.iluma-cc-banner-copy h2 { font-family: inherit; font-size: 17px; font-weight: 800; line-height: 1.35; letter-spacing: -.02em; margin: 0 0 9px; padding: 0; color: var(--iluma-text); }
.iluma-cc-banner-copy p { margin: 0; padding: 0; font-family: inherit; font-weight: 400; font-size: 12.5px; line-height: 1.67; color: var(--iluma-muted); }
.iluma-cc-banner-actions { display: flex; gap: 9px; flex: 0 0 auto; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.iluma-pos-left .iluma-cc-banner-copy, .iluma-pos-right .iluma-cc-banner-copy { flex-basis: auto; }
.iluma-pos-left .iluma-cc-banner-actions, .iluma-pos-right .iluma-cc-banner-actions { justify-content: stretch; }
.iluma-pos-left .iluma-cc-banner-actions .iluma-cc-button, .iluma-pos-right .iluma-cc-banner-actions .iluma-cc-button { flex: 1 0 125px; }
.iluma-cc-button {
  -webkit-appearance: none;
  appearance: none;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 43px;
  padding: 12px 17px;
  border-radius: var(--iluma-button-radius);
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
  white-space: normal;
  text-align: center;
  text-decoration: none;
  font-size: 12px !important;
  font-weight: 750 !important;
}
.iluma-cc-button:hover { transform: translateY(-1px); }
.iluma-cc-button-primary { background: var(--iluma-accent); border: 1px solid var(--iluma-accent); color: #fff; }
.iluma-cc-button-primary:hover { background: var(--iluma-accent); filter: brightness(.95); box-shadow: 0 5px 18px rgba(10, 50, 80, .16); color: #fff; }
.iluma-cc-button-secondary { background: transparent; border: 1px solid var(--iluma-muted); color: var(--iluma-text); }
.iluma-cc-button-secondary:hover { background: var(--iluma-subtle); color: var(--iluma-text); }
.iluma-cc-button-ghost { background: var(--iluma-subtle); border: 1px solid transparent; color: var(--iluma-text); }
.iluma-cc-button-ghost:hover { background: var(--iluma-line); color: var(--iluma-text); }
.iluma-cc-links { display: flex; gap: 16px; flex-wrap: wrap; margin: 10px 0 0; }
.iluma-cc-links a { color: var(--iluma-muted); font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
.iluma-cc-links a:hover { color: var(--iluma-text); }

.iluma-cc-overlay { position: fixed; z-index: 2147483001; inset: 0; background: rgba(9, 20, 37, .67); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); opacity: 0; transition: opacity .2s ease; }
.iluma-cc-overlay.iluma-cc-visible { opacity: 1; }
.iluma-cc-modal {
  position: fixed;
  z-index: 2147483002;
  top: 50%; left: 50%;
  transform: translate(-50%, -47%) scale(.98);
  opacity: 0;
  width: min(94vw, 610px);
  max-height: min(88dvh, 760px);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--iluma-line);
  border-radius: var(--iluma-radius);
  background: var(--iluma-modal-bg);
  color: var(--iluma-text);
  box-shadow: 0 30px 100px rgba(0, 0, 0, .28);
  overflow: hidden;
  transition: opacity .25s ease, transform .25s ease;
}
.iluma-cc-modal.iluma-cc-visible { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.iluma-cc-modal-header { padding: 20px 25px; border-bottom: 1px solid var(--iluma-line); display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; gap: 16px; }
.iluma-cc-modal-brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.iluma-cc-brand-icon { background: var(--iluma-accent); color: #fff; display: grid; place-items: center; width: 35px; height: 35px; border-radius: 10px; font-size: 22px; }
.iluma-cc-modal-header h2 { font-family: inherit; margin: 0; padding: 0; color: var(--iluma-text); font-size: 18px; line-height: 1.4; font-weight: 800; }
.iluma-cc-logo { display: block; max-width: 90px; max-height: 38px; height: auto; width: auto; object-fit: contain; }
.iluma-cc-close { display: grid; place-items: center; border: 1px solid var(--iluma-line); width: 34px; height: 34px; border-radius: 50%; background: var(--iluma-subtle); color: var(--iluma-text); padding: 0; cursor: pointer; flex: 0 0 auto; }
.iluma-cc-close span { font-size: 23px; line-height: 1; transform: translateY(-1px); }
.iluma-cc-modal-scroll { padding: 10px 25px 22px; overflow-y: auto; min-height: 0; flex: 1 1 auto; overscroll-behavior: contain; }
.iluma-cc-modal-intro { margin: 13px 0 4px; font-size: 12.5px; line-height: 1.65; color: var(--iluma-muted); }
.iluma-cc-category { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 16px 0; border-bottom: 1px solid var(--iluma-line); }
.iluma-cc-category:last-of-type { border-bottom: 0; }
.iluma-cc-category-copy { min-width: 0; }
.iluma-cc-category h3 { margin: 0 0 5px; padding: 0; color: var(--iluma-text); font-size: 13.5px; font-family: inherit; font-weight: 750; line-height: 1.4; }
.iluma-cc-category p { margin: 0; padding: 0; color: var(--iluma-muted); font-size: 12px; font-family: inherit; line-height: 1.55; }
.iluma-cc-required { flex: 0 0 auto; border-radius: 999px; padding: 6px 9px; color: #16835b; font-weight: 750; font-size: 10px; background: #e3f7ee; }
.iluma-cc-toggle { position: relative; width: 44px; height: 25px; display: block; flex: 0 0 44px; cursor: pointer; }
.iluma-cc-toggle input { position: absolute; width: 100%; height: 100%; inset: 0; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.iluma-cc-toggle-slider { position: absolute; inset: 0; background: #afb9c9; border-radius: 999px; transition: background .18s ease; }
.iluma-cc-toggle-slider::before { content: ''; position: absolute; left: 3px; top: 3px; width: 19px; height: 19px; background: white; box-shadow: 0 1px 5px rgba(0,0,0,.18); border-radius: 50%; transition: transform .18s ease; }
.iluma-cc-toggle input:checked + .iluma-cc-toggle-slider { background: var(--iluma-accent); }
.iluma-cc-toggle input:checked + .iluma-cc-toggle-slider::before { transform: translateX(19px); }
.iluma-cc-modal-actions { flex: 0 0 auto; display: flex; justify-content: flex-end; gap: 10px; padding: 16px 25px; background: var(--iluma-subtle); border-top: 1px solid var(--iluma-line); flex-wrap: wrap; }
.iluma-cc-modal-actions .iluma-cc-button { flex: 1 1 135px; }
.iluma-cc-manage { position: fixed; z-index: 2147482999; bottom: 18px; right: 18px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--iluma-bg); color: var(--iluma-text); border: 1px solid var(--iluma-line); border-radius: 999px; padding: 10px 14px; min-height: 43px; box-shadow: var(--iluma-shadow); cursor: pointer; font-size: 11px !important; -webkit-backdrop-filter: var(--iluma-backdrop); backdrop-filter: var(--iluma-backdrop); }
.iluma-cc-manage:hover { transform: translateY(-2px); }
.iluma-cc-manage svg { flex: 0 0 auto; }
body.iluma-cc-modal-open { overflow: hidden !important; }
.iluma-cc-open-settings { display: inline-block; cursor: pointer; padding: .5em .75em; border: 1px solid currentColor; border-radius: 5px; background: transparent; font: inherit; }

@media (max-width: 900px) {
  .iluma-cc-banner.iluma-pos-center, .iluma-cc-banner.iluma-pos-top, .iluma-cc-banner.iluma-pos-bottom { flex-direction: column; align-items: stretch; gap: 15px; }
  .iluma-cc-banner-copy { flex-basis: auto; }
  .iluma-cc-banner-actions { justify-content: flex-start; }
}
@media (max-width: 560px) {
  .iluma-cc-banner.iluma-pos-center, .iluma-cc-banner.iluma-pos-left, .iluma-cc-banner.iluma-pos-right { width: calc(100% - 20px); bottom: 10px; left: 10px; right: 10px; padding: 17px; border-radius: 15px; }
  .iluma-cc-banner.iluma-pos-center { transform: translateY(25px); }
  .iluma-cc-banner.iluma-pos-center.iluma-cc-visible { transform: translateY(0); }
  .iluma-cc-banner.iluma-pos-top, .iluma-cc-banner.iluma-pos-bottom { padding: 16px; }
  .iluma-cc-banner-copy h2 { font-size: 15px; }
  .iluma-cc-banner-copy p { font-size: 12px; }
  .iluma-cc-banner-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; width: 100%; }
  .iluma-cc-banner-actions .iluma-cc-button { padding: 10px 6px; min-height: 44px; min-width: 0; font-size: 11px !important; }
  .iluma-cc-banner-actions .iluma-cc-button-ghost { grid-column: 1 / -1; }
  .iluma-cc-modal { width: calc(100vw - 18px); max-height: min(91dvh, 760px); border-radius: 15px; }
  .iluma-cc-modal-header { padding: 14px 16px; }
  .iluma-cc-modal-scroll { padding: 8px 16px 16px; }
  .iluma-cc-category { gap: 13px; padding: 13px 0; }
  .iluma-cc-modal-actions { padding: 12px; gap: 7px; }
  .iluma-cc-modal-actions .iluma-cc-button { flex: 1 1 110px; font-size: 11px !important; padding: 10px 7px; }
  .iluma-cc-manage { width: 45px; height: 45px; padding: 10px; border-radius: 50%; }
  .iluma-cc-manage span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .iluma-cc *, .iluma-cc *::before, .iluma-cc *::after { animation: none !important; transition-duration: 0s !important; }
}
