/* WSS Consent frontend: namespaced, responsive, zero webfonts. */
#wssc-root, #wssc-root *, #wssc-floating, .wssc-embed, .wssc-embed * { box-sizing: border-box; }
#wssc-root[hidden], #wssc-root [hidden], #wssc-floating[hidden] { display: none !important; }
#wssc-root { position: fixed; inset: 0; z-index: 2147482500; pointer-events: none; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif; color: #172339; line-height: 1.45; }
#wssc-root .wssc-backdrop { position: absolute; inset: 0; background: rgba(15, 23, 42, .35); pointer-events: auto; }
#wssc-root[data-position="bottom"] .wssc-backdrop, #wssc-root[data-position="corner"] .wssc-backdrop { display: none; }
#wssc-root .wssc-dialog { position: absolute; pointer-events: auto; top: 50%; left: 50%; transform: translate(-50%, -50%); padding: 28px; background: #fff; border: 1px solid #e1e7ed; border-radius: 18px; width: min(520px, calc(100vw - 32px)); max-height: min(90vh, 800px); overflow: auto; box-shadow: 0 20px 70px rgba(15,23,42,.23); outline: none; }
#wssc-root[data-position="bottom"] .wssc-dialog { top: auto; left: 0; bottom: 0; transform: none; border-radius: 18px 18px 0 0; width: 100vw; max-height: 80vh; padding: 20px max(24px, calc((100vw - 1150px) / 2)); }
#wssc-root[data-position="bottom"] .wssc-buttons { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#wssc-root[data-position="corner"] .wssc-dialog { top: auto; left: auto; right: 20px; bottom: 20px; transform: none; width: min(420px, calc(100vw - 28px)); }
#wssc-root .wssc-close { position: absolute; top: 14px; right: 15px; border: none; background: #f0f4f8; color: #344154; font-weight: 500; height: 35px; width: 35px; border-radius: 10px; font-size: 26px; cursor: pointer; display: grid; place-items: center; }
#wssc-root .wssc-brand-row { display: flex; align-items: center; gap: 12px; margin-bottom: 19px; padding-right: 30px; }
#wssc-root .wssc-client-logo { height: 40px; width: auto; max-width: 175px; object-fit: contain; }
#wssc-root .wssc-shield { width: 37px; height: 37px; display: inline-grid; place-items: center; background: #eff4f8; color: var(--wssc-accent, #173d64); font-size: 24px; border-radius: 11px; }
#wssc-root .wssc-brand-caption { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #64748b; }
#wssc-root h2 { margin: 0 0 12px; padding: 0; color: #101d2f; font-family: inherit; font-size: 22px; line-height: 1.27; letter-spacing: -.025em; font-weight: 750; }
#wssc-root .wssc-description { color: #475569; margin: 0 0 14px; font-size: 14px; line-height: 1.65; }
#wssc-root .wssc-policy-links { display: flex; flex-wrap: wrap; gap: 15px; margin-bottom: 20px; }
#wssc-root .wssc-policy-links a, #wssc-root .wssc-credit a { color: var(--wssc-accent, #173d64); text-decoration: underline; text-underline-offset: 2px; font-size: 13px; }
#wssc-root .wssc-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
#wssc-root .wssc-btn { margin: 0; appearance: none; cursor: pointer; border: 1.5px solid var(--wssc-accent, #173d64); border-radius: 9px; min-height: 44px; padding: 11px 13px; font-size: 14px; line-height: 1.25; font-family: inherit; font-weight: 650; transition: box-shadow .15s, background-color .15s; text-align: center; }
#wssc-root .wssc-btn:hover { box-shadow: 0 3px 15px rgba(0,0,0,.09); }
#wssc-root .wssc-btn-primary { color: #fff; background: var(--wssc-accent, #173d64); }
#wssc-root .wssc-btn-outline { color: var(--wssc-accent, #173d64); background: #fff; }
#wssc-root .wssc-btn-text { grid-column: 1 / -1; background: #f4f7fa; border-color: #e2e8f0; color: #334155; }
#wssc-root .wssc-settings-view h2 { margin-bottom: 13px; }
#wssc-root .wssc-category { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid #e8edf2; cursor: pointer; }
#wssc-root .wssc-category strong { display: block; font-size: 13px; margin-bottom: 3px; }
#wssc-root .wssc-category small { display: block; color: #64748b; font-size: 12px; line-height: 1.35; }
#wssc-root .wssc-required { white-space: nowrap; background: #edf3f7; font-size: 11px; color: #475569; border-radius: 20px; padding: 5px 8px; }
#wssc-root .wssc-switch { width: 43px; height: 25px; flex: 0 0 43px; display: block; position: relative; }
#wssc-root .wssc-switch input { position: absolute; opacity: 0; inset: 0; margin: 0; width: 100%; height: 100%; cursor: pointer; }
#wssc-root .wssc-switch span { display: block; width: 43px; height: 25px; background: #cbd5e1; border-radius: 20px; pointer-events: none; transition: background .16s; }
#wssc-root .wssc-switch span::after { content: ''; position: absolute; top: 3px; left: 3px; width: 19px; height: 19px; background: #fff; border-radius: 50%; box-shadow: 0 1px 3px #0002; transition: transform .16s; }
#wssc-root .wssc-switch input:checked + span { background: var(--wssc-accent, #173d64); }
#wssc-root .wssc-switch input:checked + span::after { transform: translateX(18px); }
#wssc-root .wssc-switch input:focus-visible + span { outline: 3px solid #80b6f4; outline-offset: 2px; }
#wssc-root .wssc-settings-actions { display: flex; gap: 10px; margin-top: 20px; }
#wssc-root .wssc-settings-actions .wssc-btn { flex: 1; }
#wssc-root .wssc-credit { border-top: 1px solid #edf1f5; margin-top: 18px; padding-top: 13px; text-align: center; color: #94a3b8; font-size: 11px; }
#wssc-root .wssc-credit a { font-size: 11px; color: #64748b; }
#wssc-floating { position: fixed; z-index: 2147482499; left: 16px; bottom: 18px; padding: 10px 14px; border: 1px solid #d8e0e8; border-radius: 50px; box-shadow: 0 5px 25px rgba(0,0,0,.13); color: #26364f; background: #fff; font-size: 12px; font-family: sans-serif; font-weight: 700; cursor: pointer; }
.wssc-open-preferences, .wssc-embed-action { cursor: pointer; border: 1px solid var(--wssc-accent, #173d64); color: var(--wssc-accent, #173d64); background: #fff; border-radius: 8px; padding: 8px 12px; font: 600 13px/1.4 sans-serif; }
.wssc-embed { aspect-ratio: 16/9; background: #f2f5f8; border: 1px solid #dce4ec; border-radius: 12px; overflow: hidden; width: 100%; margin: 16px 0; }
.wssc-embed iframe { display: block; border: 0; width: 100%; height: 100%; }
.wssc-embed-message { width: 100%; height: 100%; padding: 14px; display: flex; flex-direction: column; gap: 12px; justify-content: center; align-items: center; text-align: center; color: #475569; font: 13px/1.5 sans-serif; }
.wssc-embed-message p { padding: 0; margin: 0; color: inherit; }
.wssc-embed-shield { color: #173d64; font-size: 26px; }
#wssc-root button:focus-visible, #wssc-floating:focus-visible, .wssc-open-preferences:focus-visible, .wssc-embed-action:focus-visible { outline: 3px solid #89beff; outline-offset: 3px; }
@media (max-width: 560px) { #wssc-root .wssc-dialog { padding: 19px; width: calc(100vw - 18px); border-radius: 14px; } #wssc-root h2 { font-size: 20px; } #wssc-root .wssc-description { font-size: 13px; } #wssc-root[data-position="bottom"] .wssc-dialog { width: 100vw; border-radius: 14px 14px 0 0; } #wssc-root[data-position="bottom"] .wssc-buttons { grid-template-columns: 1fr 1fr; } #wssc-root[data-position="bottom"] .wssc-btn-text { grid-column: 1 / -1; } #wssc-root[data-position="corner"] .wssc-dialog { right: 9px; bottom: 9px; width: calc(100vw - 18px); } }
@media (prefers-reduced-motion: reduce) { #wssc-root .wssc-btn, #wssc-root .wssc-switch span, #wssc-root .wssc-switch span::after { transition: none; } }
/* WSS Consent v0.2 Designer: scoped custom properties, no third-party font requests. */
#wssc-root {
  font-family: var(--wssc-font, inherit);
  color: var(--wssc-body, #475569);
  font-size: var(--wssc-body-size, 14px);
}
#wssc-root .wssc-backdrop { background: var(--wssc-overlay, rgba(15,23,42,.35)); }
#wssc-root .wssc-dialog {
  background: var(--wssc-bg, #fff);
  color: var(--wssc-body, #475569);
  border-color: var(--wssc-border, #e1e7ed);
  border-radius: var(--wssc-radius, 18px);
  width: min(var(--wssc-width, 520px), calc(100vw - 32px));
  padding: var(--wssc-padding, 28px);
  font-family: inherit;
}
#wssc-root h2 {
  color: var(--wssc-heading, #101d2f);
  font-family: var(--wssc-heading-font, inherit);
  font-size: var(--wssc-title-size, 22px);
}
#wssc-root .wssc-description { color: var(--wssc-body, #475569); font-size: var(--wssc-body-size, 14px); }
#wssc-root .wssc-close-disclaimer { color: var(--wssc-muted, #64748b); font-size: 11px; line-height: 1.5; margin: -5px 0 12px; }
#wssc-root .wssc-policy-links a,#wssc-root .wssc-credit a { color: var(--wssc-link, #173d64); }
#wssc-root .wssc-brand-caption,#wssc-root .wssc-category small { color: var(--wssc-muted, #64748b); }
#wssc-root .wssc-client-logo { height: var(--wssc-logo-height, 40px); max-height: var(--wssc-logo-height, 40px); }
#wssc-root .wssc-shield { color: var(--wssc-accept-bg, #173d64); background: var(--wssc-customize-bg, #f4f7fa); }
#wssc-root .wssc-btn { font-size: var(--wssc-button-size, 14px); }
#wssc-root .wssc-btn-primary { background: var(--wssc-accept-bg, #173d64); color: var(--wssc-accept-text, #fff); border-color: var(--wssc-accept-bg, #173d64); }
#wssc-root .wssc-btn-outline { background: var(--wssc-reject-bg, #fff); color: var(--wssc-reject-text, #173d64); border-color: var(--wssc-reject-border, #173d64); }
#wssc-root .wssc-btn-text { background: var(--wssc-customize-bg, #f4f7fa); color: var(--wssc-customize-text, #334155); border-color: var(--wssc-border, #e1e7ed); }
#wssc-root .wssc-category { border-bottom-color: var(--wssc-border, #e1e7ed); }
#wssc-root .wssc-switch span { background: var(--wssc-toggle-off, #cbd5e1); }
#wssc-root .wssc-switch input:checked + span { background: var(--wssc-accept-bg, #173d64); }
#wssc-root .wssc-credit { border-color: var(--wssc-border, #e1e7ed); color: var(--wssc-muted, #64748b); }
#wssc-root .wssc-close { background: var(--wssc-customize-bg, #f4f7fa); color: var(--wssc-customize-text, #334155); }
#wssc-root[data-position="bottom"] .wssc-dialog {
  width: 100vw; border-radius: var(--wssc-radius, 18px) var(--wssc-radius, 18px) 0 0;
  padding: min(var(--wssc-padding, 28px), 32px) max(24px, calc((100vw - 1150px)/2));
}
#wssc-root[data-position="corner"] .wssc-dialog { width: min(var(--wssc-width, 520px), calc(100vw - 28px)); }
#wssc-floating { background: var(--wssc-float-bg, #fff); color: var(--wssc-float-text, #26364f); font-family: var(--wssc-font, inherit); }
#wssc-floating[data-side="right"] { left: auto; right: 16px; }
.wssc-open-preferences,.wssc-embed-action { border-color: var(--wssc-accent, #173d64); color: var(--wssc-accent, #173d64); }
@media (max-width: 560px) {
  #wssc-root .wssc-dialog { padding: clamp(15px, 4vw, var(--wssc-padding, 28px)); max-height: min(92dvh, 920px); }
  #wssc-root[data-position="bottom"] .wssc-dialog { width: 100vw; }
  #wssc-root[data-position="corner"] .wssc-dialog { width: calc(100vw - 18px); }
  #wssc-root .wssc-description { font-size: clamp(12px, var(--wssc-body-size, 14px), 18px); }
  #wssc-root h2 { font-size: clamp(18px, var(--wssc-title-size, 22px), 30px); }
}

/* v0.4: accessible in-banner locale switch (browser-language detection needs no IP). */
#wssc-root .wssc-language-control { display: flex; align-items: center; gap: 5px; max-width: calc(100% - 48px); margin: 0 43px 12px auto; justify-content: flex-end; color: var(--wssc-muted, #64748b); font-size: 12px; }
#wssc-root .wssc-language-control select { width: auto; min-width: 110px; max-width: 200px; padding: 5px 8px; border-radius: 7px; border: 1px solid var(--wssc-border,#e1e7ed); background: var(--wssc-bg,#fff); color: var(--wssc-body,#475569); font: inherit; cursor: pointer; }
#wssc-root .wssc-language-control select:focus-visible { outline: 3px solid #89beff; outline-offset: 2px; }
#wssc-root .wssc-policy-links a[hidden] { display: none !important; }
@media(max-width:560px){#wssc-root .wssc-language-control { margin-bottom: 10px; }}

/* v0.5.1 — Detailed cookie-preferences center, independent of initial banner placement */
#wssc-root:has(.wssc-settings-view:not([hidden])) .wssc-backdrop { display:block; }
#wssc-root:has(.wssc-settings-view:not([hidden])) .wssc-dialog { top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:min(740px,calc(100vw - 24px));height:min(680px,calc(100dvh - 30px));max-height:calc(100dvh - 30px);padding:0;border-radius:var(--wssc-radius,14px);display:flex;flex-direction:column;overflow:hidden; }
#wssc-root:has(.wssc-settings-view:not([hidden])) .wssc-dialog>.wssc-brand-row { display:none; }
#wssc-root:has(.wssc-settings-view:not([hidden])) .wssc-dialog>.wssc-language-control { flex-shrink:0;margin:8px 58px 0 auto; }
#wssc-root .wssc-settings-view:not([hidden]) { display:flex;flex-direction:column;min-height:0;flex:1; }
#wssc-root .wssc-settings-heading {padding:20px 24px 14px;border-bottom:1px solid var(--wssc-border,#e1e7ed);flex-shrink:0;}
#wssc-root .wssc-settings-heading h2 {font-size:clamp(18px, var(--wssc-title-size,22px),25px);padding-right:40px;margin:0 0 8px;}
#wssc-root .wssc-settings-heading p {font-size:var(--wssc-body-size,14px);line-height:1.55;margin:0;color:var(--wssc-body,#475569);}
#wssc-root .wssc-categories {padding:4px 24px;overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0;}
#wssc-root .wssc-category-section {border-bottom:1px solid var(--wssc-border,#e1e7ed);}
#wssc-root .wssc-category-head {display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;min-height:54px;}
#wssc-root .wssc-category-expand {border:0;background:none;color:var(--wssc-heading,#172339);display:flex;align-items:center;gap:12px;font-family:inherit;font-weight:700;font-size:14px;line-height:1.35;cursor:pointer;text-align:left;padding:4px 0;flex:1;min-width:0;}
#wssc-root .wssc-chevron {display:inline-block;font-size:23px;line-height:1;font-weight:400;transition:transform .15s;}
#wssc-root .wssc-category-expand[aria-expanded="true"] .wssc-chevron {transform:rotate(90deg);}
#wssc-root .wssc-category-content {padding:0 0 14px 24px;}
#wssc-root .wssc-category-description {margin:0 0 12px;font-size:13px;line-height:1.55;color:var(--wssc-muted,#64748b);}
#wssc-root .wssc-cookie-list {background:var(--wssc-customize-bg,#f4f7fa);border-radius:8px;overflow:hidden;}
#wssc-root .wssc-cookie-entry {padding:12px 14px;border-bottom:1px solid var(--wssc-border,#e1e7ed);overflow-wrap:anywhere;font-size:12px;}
#wssc-root .wssc-cookie-entry:last-child {border-bottom:0;}
#wssc-root .wssc-cookie-entry>strong {display:block;color:var(--wssc-heading,#101d2f);font-size:13px;margin-bottom:6px;}
#wssc-root .wssc-cookie-field {display:grid;grid-template-columns:minmax(60px,90px) 1fr;gap:10px;line-height:1.6;margin-top:2px;color:var(--wssc-body,#475569);}
#wssc-root .wssc-cookie-field b {color:var(--wssc-heading,#101d2f);font-weight:650;}
#wssc-root .wssc-no-cookies {margin:0;padding:12px 14px;color:var(--wssc-muted,#64748b);font-size:12px;}
#wssc-root .wssc-settings-actions {margin:0;padding:14px 24px;display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:8px;border-top:1px solid var(--wssc-border,#e1e7ed);flex-shrink:0;background:var(--wssc-bg,#fff);}
#wssc-root .wssc-settings-actions .wssc-btn {min-width:0;grid-column:auto;}
#wssc-root .wssc-settings-back {border:0;background:none;color:var(--wssc-muted,#64748b);text-decoration:underline;font:inherit;font-size:12px;cursor:pointer;align-self:flex-start;margin:0 24px 8px;padding:4px;}
#wssc-root .wssc-switch {cursor:pointer;}
#wssc-root .wssc-switch input {z-index:1;}
#wssc-root .wssc-credit {flex-shrink:0;}
@media(max-width:600px){
 #wssc-root:has(.wssc-settings-view:not([hidden])) .wssc-dialog {height:min(90dvh,780px);max-height:90dvh;width:calc(100vw - 16px);}
 #wssc-root .wssc-settings-heading{padding:16px 16px 12px;}
 #wssc-root .wssc-categories {padding:4px 16px;}
 #wssc-root .wssc-settings-actions {padding:12px 16px;display:grid;grid-template-columns:1fr 1fr;}
 #wssc-root .wssc-settings-actions .wssc-btn:nth-child(2) {grid-column:1/-1;grid-row:1;}
 #wssc-root .wssc-settings-actions .wssc-btn:nth-child(1) {grid-column:1;grid-row:2;}
 #wssc-root .wssc-settings-actions .wssc-btn:nth-child(3) {grid-column:2;grid-row:2;}
 #wssc-root .wssc-category-content {padding-left:10px;}
}


/* v0.5.2 — Cookie details must never inherit a button's dark surface.
 * Use the banner's actual background, not customize-button background.
 * These rules intentionally remain compatible with a site's light/dark palette. */
#wssc-root .wssc-cookie-list {
  display: grid;
  gap: 8px;
  overflow: visible;
  background: transparent;
  border-radius: 0;
}
#wssc-root .wssc-cookie-entry,
#wssc-root .wssc-no-cookies {
  box-sizing: border-box;
  margin: 0;
  background: #f5f7fa;
  background: color-mix(in srgb, var(--wssc-bg, #ffffff) 94%, var(--wssc-body, #475569) 6%);
  border: 1px solid var(--wssc-border, #e1e7ed);
  border-radius: 8px;
  color: var(--wssc-body, #475569);
  opacity: 1;
  overflow-wrap: anywhere;
}
#wssc-root .wssc-cookie-entry { padding: 13px 15px; }
#wssc-root .wssc-cookie-entry > strong,
#wssc-root .wssc-cookie-field,
#wssc-root .wssc-cookie-field b,
#wssc-root .wssc-cookie-field span {
  color: var(--wssc-body, #475569);
  opacity: 1;
}
#wssc-root .wssc-cookie-entry > strong { font-weight: 750; font-size: 13px; }
#wssc-root .wssc-cookie-field b { font-weight: 700; }
#wssc-root .wssc-cookie-field span { min-width: 0; overflow-wrap: anywhere; }
#wssc-root .wssc-no-cookies { padding: 12px 14px; }
/* Eliminate mouse-click outline added by some WordPress themes; preserve keyboard focus. */
#wssc-root .wssc-category-expand:focus:not(:focus-visible) { outline: none; box-shadow: none; }
#wssc-root .wssc-category-expand:focus-visible,
#wssc-root .wssc-switch input:focus-visible + span {
  outline: 3px solid #80b6f4;
  outline-offset: 2px;
}


/* v0.5.3 — Auto-sized, accessible preferences dialog. Always scoped to the open settings panel. */
#wssc-root:has(.wssc-settings-view:not([hidden])) .wssc-dialog {
  height: auto;
  max-height: min(88dvh, 760px);
  overflow: hidden;
  padding: 0;
}
#wssc-root .wssc-settings-view:not([hidden]) {
  flex: 0 1 auto;
  min-height: 0;
  overflow: hidden;
}
#wssc-root .wssc-categories {
  flex: 0 1 auto;
  min-height: 0;
  max-height: min(56dvh, 540px);
  overflow-y: auto;
  scrollbar-gutter: stable;
}
#wssc-root .wssc-settings-heading h2 {
  color: var(--wssc-settings-heading, #101d2f);
}
#wssc-root .wssc-category-expand {
  color: var(--wssc-category-heading, #101d2f);
}
#wssc-root .wssc-settings-actions {
  margin: 0;
  padding: 15px 24px 14px;
}
/* A discreet agency credit: separated from the action buttons, with breathing room. */
#wssc-root:has(.wssc-settings-view:not([hidden])) .wssc-credit {
  flex-shrink: 0;
  margin: 0 24px;
  padding: 14px 0 18px;
  border-top: 1px solid var(--wssc-border, #e1e7ed);
  line-height: 1.5;
}
@media (max-width:600px) {
  #wssc-root:has(.wssc-settings-view:not([hidden])) .wssc-dialog {
    height: auto;
    max-height: calc(100dvh - 16px);
  }
  #wssc-root .wssc-categories { max-height: 48dvh; scrollbar-gutter: auto; }
  #wssc-root .wssc-settings-actions { padding: 12px 16px; }
  #wssc-root:has(.wssc-settings-view:not([hidden])) .wssc-credit {
    margin: 0 16px;
    padding: 12px 0 15px;
  }
}

/* v0.6.1 — No reserved close-button space when the X is disabled. */
#wssc-root[data-show-close="0"] .wssc-brand-row { padding-right: 0; }
#wssc-root[data-show-close="0"] .wssc-language-control { margin-right: 0; max-width: 100%; }
