/** CookieVJ premium consent UI. */
:root {
    --cookievj-accent: #1f6fff;
    --cookievj-navy: #08294f;
    --cookievj-navy-2: #0a386d;
    --cookievj-text: #12233f;
    --cookievj-muted: #55657d;
    --cookievj-line: #dde5f0;
    --cookievj-soft: #f6f8fc;
    --cookievj-white: #fff;
    --cookievj-green: #0d9852;
    --cookievj-shadow: 0 24px 70px rgba(9, 27, 54, .28);
}

.cookievj-cookie-banner,
.cookievj-cookie-banner *,
.cookievj-modal,
.cookievj-modal *,
.cookievj-preferences-trigger,
.cookievj-preferences-trigger * {
    box-sizing: border-box;
}

.cookievj-cookie-banner[hidden],
.cookievj-modal[hidden] { display: none !important; }

.cookievj-cookie-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 999997;
    padding: 18px 24px 22px;
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.cookievj-banner-shell {
    width: min(1360px, calc(100vw - 48px));
    margin: 0 auto;
    min-height: 142px;
    display: grid;
    grid-template-columns: 78px minmax(360px, 1fr) auto;
    align-items: center;
    gap: 24px;
    padding: 24px 34px;
    border: 1px solid rgba(146, 185, 233, .58);
    border-radius: 22px;
    color: #fff;
    background: linear-gradient(115deg, #063c79 0%, #082c55 56%, #0a315d 100%);
    box-shadow: 0 18px 50px rgba(0, 20, 54, .36);
}

.cookievj-banner-icon {
    width: 66px;
    height: 66px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #347dff, #1455cf);
    border: 1px solid rgba(255,255,255,.28);
    box-shadow: inset 0 1px rgba(255,255,255,.24), 0 12px 28px rgba(0, 23, 70, .25);
}
.cookievj-shield {
    width: 34px;
    height: 39px;
    display: grid;
    place-items: center;
    border: 3px solid white;
    border-radius: 10px 10px 14px 14px;
    color: white;
    font-weight: 900;
}
.cookievj-banner-copy h2 {
    margin: 0 0 7px;
    color: #fff;
    font-size: 22px;
    line-height: 1.2;
    font-weight: 750;
}
.cookievj-banner-message,
.cookievj-banner-message p {
    margin: 0;
    color: rgba(255,255,255,.93);
    font-size: 15.5px;
    line-height: 1.55;
}
.cookievj-learn-link {
    margin-top: 4px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #d8e8ff;
    font: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}
.cookievj-banner-buttons {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 14px;
    flex-wrap: wrap;
}
.cookievj-banner-buttons button,
.cookievj-modal-actions button {
    min-height: 52px;
    padding: 0 28px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
}
.cookievj-banner-buttons button:hover,
.cookievj-modal-actions button:hover { transform: translateY(-1px); }
.cookievj-accept-btn {
    color: #11449b;
    background: #fff;
    border: 1px solid #fff;
    box-shadow: 0 8px 20px rgba(0, 19, 58, .15);
}
.cookievj-reject-btn,
.cookievj-customize-btn {
    color: #fff;
    background: rgba(0,0,0,.03);
    border: 1px solid rgba(176, 207, 249, .8);
}
.cookievj-customize-btn { display: inline-flex; gap: 10px; align-items: center; }
.cookievj-customize-btn span { font-size: 20px; line-height: 1; }

.cookievj-preferences-trigger {
    position: fixed;
    left: 24px;
    bottom: 24px;
    z-index: 999999;
    width: 68px;
    height: 68px;
    border-radius: 50%;
    border: 1px solid rgba(122, 177, 255, .8);
    background: linear-gradient(145deg, #2877ff, #074cae);
    box-shadow: 0 14px 38px rgba(0, 54, 143, .36), inset 0 1px rgba(255,255,255,.3);
    cursor: pointer;
    display: grid;
    place-items: center;
    transition: transform .2s ease, box-shadow .2s ease;
}
.cookievj-cookie-banner:not([hidden]) ~ .cookievj-preferences-trigger { bottom: 180px; }
.cookievj-preferences-trigger:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 18px 42px rgba(0,54,143,.43); }
.cookievj-trigger-cookie {
    position: relative;
    width: 37px;
    height: 37px;
    border-radius: 50%;
    background: #fff;
    clip-path: polygon(0 0, 100% 0, 100% 22%, 82% 25%, 75% 42%, 87% 55%, 78% 74%, 61% 72%, 48% 92%, 0 100%);
}
.cookievj-trigger-cookie i { position:absolute; width:6px; height:6px; background:#1d67db; border-radius:50%; }
.cookievj-trigger-cookie i:nth-child(1){left:9px;top:9px}.cookievj-trigger-cookie i:nth-child(2){left:22px;top:7px}.cookievj-trigger-cookie i:nth-child(3){left:12px;top:23px}.cookievj-trigger-cookie i:nth-child(4){left:25px;top:25px}
.cookievj-trigger-dot { position:absolute; width:17px; height:17px; border-radius:50%; background:#ff4e5c; right:-1px; top:-1px; border:3px solid #1458c3; }

.cookievj-modal {
    position: fixed;
    inset: 0;
    z-index: 1000000;
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.cookievj-modal-backdrop {
    position:absolute;
    inset:0;
    background: rgba(15, 28, 47, .68);
    backdrop-filter: blur(7px);
}
.cookievj-modal-dialog {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(1120px, calc(100vw - 56px));
    max-height: min(820px, calc(100vh - 56px));
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr);
    overflow: hidden;
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--cookievj-shadow);
    border: 1px solid rgba(226,232,241,.95);
}
.cookievj-modal-sidebar {
    min-height: 650px;
    padding: 24px 18px 20px;
    display:flex;
    flex-direction:column;
    border-right: 1px solid #e3e9f2;
    background: linear-gradient(180deg,#fbfcff 0%,#f4f7fc 100%);
}
.cookievj-modal-brand { display:grid; grid-template-columns:36px 1fr; column-gap:10px; align-items:center; padding:0 9px 25px; color:var(--cookievj-text); }
.cookievj-modal-brand strong { font-size:19px; line-height:1; }
.cookievj-modal-brand small { grid-column:2; margin-top:4px; color:#61708a; font-size:11px; }
.cookievj-cookie-glyph { width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#347fff,#175ad5);color:#fff;font-size:12px;box-shadow:0 7px 16px rgba(31,111,255,.28); }
.cookievj-side-nav { display:grid; gap:7px; }
.cookievj-side-nav button {
    width:100%; min-height:48px; padding:0 13px; border:0; border-radius:10px; background:transparent; color:#263a59; display:flex; gap:12px; align-items:center; text-align:left; font-size:14px; cursor:pointer;
}
.cookievj-side-nav button.is-active { background:#e9f0ff; color:#1458d2; font-weight:700; }
.cookievj-privacy-card { margin-top:auto; display:flex; gap:12px; align-items:center; padding:13px; border-radius:11px; color:#263a59; background:#edf2fb; }
.cookievj-privacy-card > span { width:30px;height:30px;border:2px solid #2468df;border-radius:9px;display:grid;place-items:center;color:#2468df; }
.cookievj-privacy-card strong,.cookievj-privacy-card small{display:block}.cookievj-privacy-card strong{font-size:13px}.cookievj-privacy-card small{margin-top:3px;font-size:11px;color:#62728a}

.cookievj-modal-main { position:relative; padding:30px 30px 0; overflow:auto; background:#fff; }
.cookievj-modal-close { position:absolute; right:24px; top:20px; width:38px;height:38px;border:0;background:transparent;color:#173052;font-size:30px;line-height:1;cursor:pointer;border-radius:50%; }
.cookievj-modal-close:hover { background:#f1f4f9; }
.cookievj-modal-header { display:flex; justify-content:space-between; gap:22px; padding-right:45px; margin-bottom:22px; }
.cookievj-modal-header h2 { margin:0 0 9px; color:#102447; font-size:28px; line-height:1.2; font-weight:780; }
.cookievj-modal-header p { max-width:690px; margin:0; color:#4d607b; font-size:14px; line-height:1.55; }
.cookievj-choice-summary { min-width:175px; align-self:flex-start; padding:10px 14px; border-radius:12px; background:#edfbf5; color:#146645; display:grid; grid-template-columns:10px 1fr; column-gap:8px; }
.cookievj-choice-summary > span{width:7px;height:7px;margin-top:4px;border-radius:50%;background:#18a66c}.cookievj-choice-summary small,.cookievj-choice-summary strong{grid-column:2}.cookievj-choice-summary small{font-size:10px}.cookievj-choice-summary strong{font-size:12px;margin-top:2px}
.cookievj-category-list { border:1px solid #dfe6f0; border-radius:12px; overflow:hidden; }
.cookievj-category { display:grid; grid-template-columns:58px minmax(0,1fr) auto; gap:18px; align-items:center; min-height:108px; padding:18px 20px; border-bottom:1px solid #e3e8f0; }
.cookievj-category:last-child { border-bottom:0; }
.cookievj-category-icon { width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:23px;font-weight:800; }
.cookievj-category-necessary .cookievj-category-icon{background:#e8f8ed;color:#12944e}.cookievj-category-functional .cookievj-category-icon{background:#e8f0ff;color:#1663db}.cookievj-category-analytics .cookievj-category-icon{background:#f0ecff;color:#5544d4}.cookievj-category-marketing .cookievj-category-icon{background:#ffebee;color:#db3749}.cookievj-category-performance .cookievj-category-icon{background:#fff3dd;color:#c97609}
.cookievj-category-copy h3{margin:0 0 5px;color:#102447;font-size:16px;font-weight:760}.cookievj-category-copy p{margin:0;color:#536783;font-size:13px;line-height:1.5;max-width:650px}
.cookievj-category-control { display:flex; align-items:center; gap:14px; padding-left:15px; }
.cookievj-always-active { padding:6px 12px; border-radius:999px; background:#e8f8ee; color:#0d8f49; font-size:12px; font-weight:700; white-space:nowrap; }
.cookievj-row-chevron { border:0;background:transparent;color:#173258;font-size:20px;cursor:pointer; }
.cookievj-switch { position:relative; display:inline-block; width:46px; height:27px; }
.cookievj-switch input { opacity:0; width:0; height:0; }
.cookievj-slider { position:absolute;inset:0;border-radius:999px;background:#dbe2ec;transition:.2s;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(29,48,78,.04); }
.cookievj-slider:before { content:"";position:absolute;width:21px;height:21px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(22,43,73,.22);transition:.2s; }
.cookievj-switch input:checked + .cookievj-slider { background:linear-gradient(135deg,#1d6cff,#1155c4); }
.cookievj-switch input:checked + .cookievj-slider:before { transform:translateX(19px); }
.cookievj-switch input:focus-visible + .cookievj-slider { outline:3px solid rgba(31,111,255,.23); outline-offset:2px; }
.cookievj-modal-actions { position:sticky; bottom:0; z-index:2; display:flex; justify-content:flex-end; gap:14px; margin:20px -30px 0; padding:18px 30px 20px; border-top:1px solid #e2e8f0; background:rgba(255,255,255,.96); backdrop-filter:blur(8px); }
.cookievj-modal-secondary { color:#243956;background:#fff;border:1px solid #ccd5e2; }.cookievj-save-btn{background:#f7f9fc}.cookievj-modal-primary { color:#fff;background:linear-gradient(135deg,var(--cookievj-accent),#1456bf);border:1px solid transparent;box-shadow:0 8px 20px rgba(31,111,255,.2); }
html.cookievj-modal-open { overflow:hidden; }

@media (max-width: 980px) {
    .cookievj-banner-shell { grid-template-columns:58px 1fr; gap:18px; padding:20px 22px; }
    .cookievj-banner-icon { width:54px;height:54px; }
    .cookievj-banner-buttons { grid-column:1/-1; justify-content:flex-start; padding-left:76px; }
    .cookievj-modal-dialog { grid-template-columns:180px minmax(0,1fr); width:calc(100vw - 30px); max-height:calc(100vh - 30px); }
    .cookievj-modal-header { display:block; }
    .cookievj-choice-summary { margin-top:14px; width:max-content; }
    .cookievj-category { grid-template-columns:48px minmax(0,1fr); }
    .cookievj-category-control { grid-column:2; padding-left:0; justify-content:flex-end; }
}

@media (max-width: 720px) {
    .cookievj-cookie-banner { padding:12px; }
    .cookievj-banner-shell { width:100%; grid-template-columns:1fr; min-height:auto; padding:20px; border-radius:18px; }
    .cookievj-banner-icon { display:none; }
    .cookievj-banner-buttons { grid-column:auto; padding-left:0; display:grid; grid-template-columns:1fr 1fr; }
    .cookievj-banner-buttons button { min-height:48px; padding:0 12px; }
    .cookievj-customize-btn { grid-column:1/-1; justify-content:center; }
    .cookievj-cookie-banner:not([hidden]) ~ .cookievj-preferences-trigger { bottom:260px; }
    .cookievj-preferences-trigger { width:58px;height:58px;left:14px;bottom:14px; }
    .cookievj-trigger-cookie{width:31px;height:31px}.cookievj-trigger-dot{width:15px;height:15px}
    .cookievj-modal-dialog { display:block; width:calc(100vw - 18px); max-height:calc(100vh - 18px); border-radius:14px; }
    .cookievj-modal-sidebar { display:none; }
    .cookievj-modal-main { padding:24px 16px 0; }
    .cookievj-modal-header { padding-right:36px; }
    .cookievj-modal-header h2 { font-size:23px; }
    .cookievj-category { grid-template-columns:42px 1fr; gap:12px; min-height:0; padding:16px 14px; }
    .cookievj-category-icon { width:42px;height:42px;font-size:18px; }
    .cookievj-category-copy h3{font-size:15px}.cookievj-category-copy p{font-size:12px}
    .cookievj-category-control { grid-column:1/-1; justify-content:space-between; }
    .cookievj-modal-actions { margin:16px -16px 0; padding:14px 16px; display:grid; grid-template-columns:1fr 1fr; }
    .cookievj-modal-actions button { min-height:46px; padding:0 12px; font-size:13px; }
    .cookievj-modal-primary { grid-column:1/-1; grid-row:1; }
}

@media (prefers-reduced-motion: reduce) {
    .cookievj-preferences-trigger,
    .cookievj-banner-buttons button,
    .cookievj-modal-actions button,
    .cookievj-slider,
    .cookievj-slider:before { transition:none; }
}

/* Interactive category accordion. */
.cookievj-category { cursor: pointer; transition: background-color .18s ease, box-shadow .18s ease; }
.cookievj-category:hover { background: #fbfdff; }
.cookievj-category.is-expanded { background: #fbfdff; box-shadow: inset 3px 0 0 var(--cookievj-accent); }
.cookievj-category-details {
    grid-column: 2 / -1;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: -2px 0 2px;
    padding: 12px 14px;
    border-radius: 9px;
    background: #f3f7fd;
    color: #50647f;
    font-size: 12px;
    line-height: 1.5;
}
.cookievj-category-details[hidden] { display: none; }
.cookievj-category-details code { padding: 2px 7px; border-radius: 5px; background: #fff; color: #174ea6; }
.cookievj-row-chevron { transition: transform .18s ease; }
.cookievj-category.is-expanded .cookievj-row-chevron { transform: rotate(180deg); }
@media (max-width: 720px) {
    .cookievj-category-details { grid-column: 1 / -1; align-items: flex-start; flex-wrap: wrap; }
}
