/* ── Cookie Consent Pro — banner.css ── */
:root {
  --ccp-bg:     #ffffff;
  --ccp-text:   #1a1a1a;
  --ccp-accent: #0066cc;
  --ccp-reject: #6b7280;
  --ccp-radius: 12px;
  --ccp-shadow: 0 -2px 24px rgba(0,0,0,.10), 0 2px 8px rgba(0,0,0,.06);
}

#ccp-root { position: relative; z-index: 999999; }

#ccp-banner {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ccp-text);
  position: fixed;
  z-index: 999999;
  box-sizing: border-box;
  animation: ccp-in .25s ease;
}

#ccp-banner *, #ccp-banner *::before, #ccp-banner *::after { box-sizing: border-box; }

@keyframes ccp-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }

/* Layouts */
.ccp-banner--bottom_bar { bottom:0; left:0; right:0; background:var(--ccp-bg); border-top:1px solid rgba(0,0,0,.08); box-shadow:var(--ccp-shadow); }
.ccp-banner--center     { top:50%; left:50%; transform:translate(-50%,-50%); background:var(--ccp-bg); border-radius:var(--ccp-radius); box-shadow:var(--ccp-shadow); width:min(560px,95vw); max-height:90vh; overflow-y:auto; }
.ccp-banner--modal      { bottom:1.25rem; right:1.25rem; background:var(--ccp-bg); border-radius:var(--ccp-radius); box-shadow:var(--ccp-shadow); width:min(380px,95vw); max-height:85vh; overflow-y:auto; border:1px solid rgba(0,0,0,.07); }

/* Overlay for center */
.ccp-banner--center::before { content:''; position:fixed; inset:0; background:rgba(0,0,0,.45); z-index:-1; pointer-events:none; }

/* Inner */
.ccp-inner { padding:1.1rem 1.4rem; max-width:1100px; margin:0 auto; }
.ccp-banner--bottom_bar .ccp-inner { display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto auto; column-gap:2rem; align-items:center; }

/* Typography */
.ccp-title { font-weight:700; font-size:.95rem; margin:0; }
.ccp-desc  { color:#4b5563; font-size:.85rem; margin:.25rem 0 0; }
.ccp-links { font-size:.8rem; margin:.4rem 0 0; }
.ccp-links a { color:var(--ccp-accent); text-decoration:none; }
.ccp-links a:hover { text-decoration:underline; }

/* Actions */
.ccp-actions { display:flex; flex-wrap:wrap; gap:.45rem; align-items:center; margin-top:.65rem; }
.ccp-banner--bottom_bar .ccp-actions { grid-column:2; grid-row:1/4; flex-direction:column; margin-top:0; }

/* Buttons */
.ccp-btn { cursor:pointer; border:0; border-radius:6px; padding:.5rem 1rem; font-size:.85rem; font-weight:600; white-space:nowrap; transition:filter .15s,transform .1s; line-height:1.4; min-width:120px; text-align:center; font-family:inherit; }
.ccp-btn:hover  { filter:brightness(1.08); }
.ccp-btn:active { transform:scale(.97); }
.ccp-btn:focus-visible { outline:2px solid var(--ccp-accent); outline-offset:2px; }
.ccp-btn--accept { background:var(--ccp-accent); color:#fff; }
.ccp-btn--reject { background:transparent; color:var(--ccp-reject); border:1.5px solid var(--ccp-reject); }
.ccp-btn--config { background:transparent; color:var(--ccp-text); border:1.5px solid rgba(0,0,0,.15); }

/* Layer 2 — preferences */
#ccp-layer-2 .ccp-inner { display:block; max-height:75vh; overflow-y:auto; }
.ccp-toggles { margin:1rem 0; }
.ccp-toggle-row { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.75rem 0; border-bottom:1px solid rgba(0,0,0,.06); }
.ccp-toggle-row:last-child { border-bottom:0; }
.ccp-toggle-info { flex:1; min-width:0; }
.ccp-toggle-info strong { font-size:.875rem; display:block; margin-bottom:.1rem; }
.ccp-toggle-info p { font-size:.78rem; color:#6b7280; margin:0; }
.ccp-toggle-ctrl { flex-shrink:0; }

/* Toggle switch */
.ccp-switch { position:relative; display:inline-block; width:46px; height:24px; }
.ccp-switch input { opacity:0; width:0; height:0; position:absolute; }
.ccp-slider { position:absolute; inset:0; background:#d1d5db; border-radius:24px; cursor:pointer; transition:background .2s; }
.ccp-slider::before { content:''; position:absolute; width:18px; height:18px; left:3px; bottom:3px; background:#fff; border-radius:50%; transition:transform .2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
.ccp-switch input:checked + .ccp-slider { background:var(--ccp-accent); }
.ccp-switch input:checked + .ccp-slider::before { transform:translateX(22px); }
.ccp-switch input:focus-visible + .ccp-slider { outline:2px solid var(--ccp-accent); outline-offset:2px; }

.ccp-always-on { font-size:.72rem; color:var(--ccp-accent); font-weight:700; text-transform:uppercase; letter-spacing:.04em; }

/* Iframe placeholder */
.ccp-iframe-placeholder { background:#f3f4f6; border:2px dashed #d1d5db; border-radius:8px; padding:1.5rem; text-align:center; color:#6b7280; font-size:.875rem; }
.ccp-iframe-placeholder p { margin:0 0 .75rem; }

/* Cookie table (shortcode) */
.ccp-cookie-table { width:100%; border-collapse:collapse; font-size:.875rem; margin:1rem 0 2rem; }
.ccp-cookie-table th,.ccp-cookie-table td { padding:.55rem .75rem; border:1px solid #e5e7eb; text-align:left; }
.ccp-cookie-table th { background:#f9fafb; font-weight:600; font-size:.8rem; color:#374151; }
.ccp-cookie-table tr:hover td { background:#f9fafb; }

/* Preferences link */
a.ccp-open-preferences { color:var(--ccp-accent); font-size:.8rem; }

/* Responsive */
@media (max-width:680px) {
  .ccp-banner--bottom_bar .ccp-inner { grid-template-columns:1fr; }
  .ccp-banner--bottom_bar .ccp-actions { grid-column:1; flex-direction:row; }
  .ccp-btn { min-width:auto; flex:1; }
  .ccp-banner--modal { bottom:0; right:0; left:0; border-radius:var(--ccp-radius) var(--ccp-radius) 0 0; width:100%; }
}
