.wsm-cookie-banner[hidden],
.wsm-cookie-manage[hidden],
.wsm-cookie-banner__preferences[hidden] { display: none !important; }

.wsm-cookie-banner {
    position: fixed;
    z-index: 999999;
    width: min(760px, calc(100vw - var(--wsm-cookie-margin-left) - var(--wsm-cookie-margin-right)));
    box-sizing: border-box;
    margin: var(--wsm-cookie-margin-top) var(--wsm-cookie-margin-right) var(--wsm-cookie-margin-bottom) var(--wsm-cookie-margin-left);
    color: #111;
    font-family: inherit;
}
.wsm-cookie-banner--bottom-center { left: 50%; bottom: 0; transform: translateX(-50%); }
.wsm-cookie-banner--bottom-left { left: 0; bottom: 0; }
.wsm-cookie-banner--bottom-right { right: 0; bottom: 0; }
.wsm-cookie-banner--top-center { left: 50%; top: 0; transform: translateX(-50%); }
.wsm-cookie-banner--top-left { left: 0; top: 0; }
.wsm-cookie-banner--top-right { right: 0; top: 0; }

.wsm-cookie-banner__inner {
    padding: var(--wsm-cookie-padding-top) var(--wsm-cookie-padding-right) var(--wsm-cookie-padding-bottom) var(--wsm-cookie-padding-left);
    background: #fff;
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 14px;
    box-shadow: 0 20px 55px rgba(0,0,0,.16);
}
.wsm-cookie-banner__title { margin: 0 0 10px; font-size: 20px; line-height: 1.25; }
.wsm-cookie-banner__description { margin: 0; font-size: 14px; line-height: 1.55; color: #4d4d4d; }
.wsm-cookie-banner__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.wsm-cookie-banner__button {
    appearance: none;
    border: 1px solid #111;
    border-radius: 999px;
    padding: 11px 18px;
    font: inherit;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
}
.wsm-cookie-banner__button--primary { background: #111; color: #fff; }
.wsm-cookie-banner__button--secondary { background: #fff; color: #111; }
.wsm-cookie-banner__button:focus-visible, .wsm-cookie-manage:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

.wsm-cookie-banner__preferences { margin-top: 20px; border-top: 1px solid rgba(0,0,0,.1); padding-top: 8px; }
.wsm-cookie-banner__preference-row { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 14px 0; border-bottom: 1px solid rgba(0,0,0,.08); }
.wsm-cookie-banner__preference-copy { display: grid; gap: 4px; }
.wsm-cookie-banner__preference-copy strong { font-size: 14px; }
.wsm-cookie-banner__preference-copy small { color: #666; line-height: 1.45; }
.wsm-cookie-banner__switch { position: relative; width: 44px; min-width: 44px; height: 24px; }
.wsm-cookie-banner__switch input { position: absolute; opacity: 0; pointer-events: none; }
.wsm-cookie-banner__switch span { position: absolute; inset: 0; border-radius: 999px; background: #cfcfcf; transition: .2s ease; cursor: pointer; }
.wsm-cookie-banner__switch span:before { content: ''; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,.2); transition: .2s ease; }
.wsm-cookie-banner__switch input:checked + span { background: #111; }
.wsm-cookie-banner__switch input:checked + span:before { transform: translateX(20px); }
.wsm-cookie-banner__switch input:disabled + span { cursor: not-allowed; opacity: .65; }
.wsm-cookie-banner__preferences-actions { margin-top: 16px; }

.wsm-cookie-manage {
    position: fixed;
    z-index: 999998;
    right: 16px;
    bottom: 16px;
    appearance: none;
    border: 1px solid rgba(0,0,0,.15);
    background: #fff;
    color: #111;
    border-radius: 999px;
    padding: 9px 13px;
    font: inherit;
    font-size: 12px;
    box-shadow: 0 6px 22px rgba(0,0,0,.1);
    cursor: pointer;
}
.wsm-cookie-manage-link { appearance: none; border: 0; background: none; color: inherit; padding: 0; text-decoration: underline; cursor: pointer; font: inherit; }

@media (max-width: 640px) {
    .wsm-cookie-banner { width: auto; left: 0; right: 0; transform: none; }
    .wsm-cookie-banner__actions { display: grid; grid-template-columns: 1fr; }
    .wsm-cookie-banner__button { width: 100%; }
}
