/* Cookie Consent Modal (centered) */

.cc-overlay { position: fixed; inset: 0; z-index: 99999; opacity: 0; visibility: hidden; transition: opacity .18s ease; }
.cc-overlay.show { opacity: 1; visibility: visible; }
.cc-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.55); backdrop-filter: blur(2px); }
.cc-modal-open { overflow: hidden; }

.cc-modal { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: min(720px, 92vw); background: #fff; color:#111; border-radius: 14px; box-shadow: 0 30px 90px rgba(0,0,0,.35); padding: 28px; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
.cc-close { position: absolute; right: 14px; top: 10px; background: transparent; border: 0; font-size: 22px; line-height: 1; cursor: pointer; color: #666; }
.cc-title { margin: 6px 0 12px; font-size: 28px; font-weight: 600; text-align: center; }
.cc-desc { margin: 0 auto 18px; line-height: 1.55; color: #333; text-align: center; max-width: 60ch; }
.cc-desc a { color: var(--brand, #0aa1c4); text-decoration: underline; }

.cc-actions { display: grid; gap: 12px; margin-top: 18px; justify-items: center; }
.cc-actions-row { grid-template-columns: 1fr; }
.cc-btn { padding: 11px 18px; border-radius: 999px; border: 2px solid #0aa1c4; background: #f8feff; color: #0a7fa0; font-weight: 600; cursor: pointer; width: min(420px, 90%); }
.cc-btn:hover { background: #eefbff; }
.cc-link { background: transparent; border: 0; color: #0a7fa0; text-decoration: underline; cursor: pointer; font-weight: 500; }

/* Preferences */
.cc-groups { margin: 14px 0 6px; display: grid; gap: 12px; }
.cc-group { border: 1px solid #e6eef2; border-radius: 12px; padding: 12px 14px; background: #fafcfd; }
.cc-group-head { display: flex; align-items: center; justify-content: space-between; font-weight: 600; }
.cc-always-on { color: #0a9b47; font-weight: 600; font-size: 13px; }
.cc-group-body { margin-top: 8px; color: #555; font-size: 14px; }

/* iOS-like switch */
.cc-switch { position: relative; display: inline-block; width: 54px; height: 30px; }
.cc-switch input { opacity: 0; width: 0; height: 0; }
.cc-switch span { position: absolute; cursor: pointer; inset: 0; background: #d7dee3; border-radius: 34px; transition: .2s; }
.cc-switch span:before { content: ""; position: absolute; height: 24px; width: 24px; left: 3px; top: 3px; background: white; border-radius: 50%; transition: .2s; box-shadow: 0 1px 3px rgba(0,0,0,.2); }
.cc-switch input:checked + span { background: #0aa1c4; }
.cc-switch input:checked + span:before { transform: translateX(24px); }

@media (min-width: 680px) {
  .cc-actions { grid-template-columns: 1fr; }
  .cc-actions.cc-actions-row { grid-template-columns: repeat(3, 1fr); }
  .cc-actions .cc-btn { width: auto; }
}

