:root{
  --cc-bg:#fff; --cc-fg:#111; --cc-muted:#555; --cc-border:#e5e5e7;
  --cc-overlay: rgba(0,0,0,.5); --cc-radius:22px; --cc-max:860px; --cc-btn-h:56px;
}

/* Acessibilidade */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Overlay e modal */
.cc-overlay{
  position:fixed;inset:0;background:var(--cc-overlay);
  backdrop-filter:saturate(120%) blur(2px);
  -webkit-backdrop-filter:saturate(120%) blur(2px);
  z-index:9998;
  pointer-events:auto; /* overlay recebe cliques (bloqueia o fundo) */
}
.cc-modal{
  position:fixed;inset:0;display:grid;place-items:center;padding:24px;z-index:9999;
  /* melhoria: garantir cliques em todos os dispositivos */
  pointer-events:auto;
}

/* Cartão */
.cc-card{
  position:relative;
  width:min(100%,var(--cc-max));
  background:var(--cc-bg);color:var(--cc-fg);
  border-radius:var(--cc-radius);
  border:1px solid var(--cc-border);
  box-shadow:0 20px 50px rgba(0,0,0,.25);
  padding:28px 28px 22px;
  pointer-events:auto;               /* o cartão é clicável */
  max-height:min(90vh, 720px);       /* conteúdo comprido não “rebenta” */
  overflow:auto;
  scrollbar-gutter: stable;
}
.cc-card h2{font-size:clamp(20px,2.6vw,28px);margin:0 0 10px}
.cc-card p{color:var(--cc-muted);line-height:1.6;margin:0 0 22px}
.cc-card a{text-decoration:underline;color:inherit}

/* Ações */
.cc-actions{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
.cc-btn{
  min-height:var(--cc-btn-h);padding:12px 22px;border-radius:999px;
  font-size:16px;font-weight:600;cursor:pointer;
  transition:transform .08s ease,box-shadow .2s ease;
  border:2px solid #111;background:#fff;color:#111
}
.cc-btn:focus-visible{outline:3px solid #000;outline-offset:2px}
.cc-btn:hover{transform:translateY(-1px)}
.cc-btn:active{transform:translateY(0);box-shadow:none}
.cc-btn.cc-outline{background:#fff}
.cc-btn.cc-solid{background:#111;color:#fff}

/* Definições */
.cc-settings fieldset{border:0;padding:0;margin:0 0 14px}
.cc-toggle{display:block;padding:14px 0;border-bottom:1px solid var(--cc-border)}
.cc-toggle input{
  appearance:none;width:44px;height:26px;border-radius:999px;background:#d7d7db;
  display:inline-block;position:relative;vertical-align:middle;margin-right:12px;
  outline:none;cursor:pointer
}
.cc-toggle input::after{
  content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;
  background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:left .15s ease
}
.cc-toggle input:checked{background:#111}
.cc-toggle input:checked::after{left:21px}
.cc-toggle input:focus-visible{outline:2px solid currentColor; outline-offset:3px}
.cc-toggle span{font-weight:600}
.cc-toggle small{display:block;color:var(--cc-muted);margin-left:56px;margin-top:4px}

/* Botão fechar (X) — alvo táctil 44x44, foco visível */
.cc-close{
  position:absolute; top:18px; right:18px;
  width:44px; height:44px; display:grid; place-items:center;
  font-size:26px; line-height:1;
  background:#fff; border:1px solid var(--cc-border);
  border-radius:999px; color:#555; cursor:pointer; z-index:10;
}
.cc-close:hover{ filter:brightness(0.97); }
.cc-close:focus-visible{ outline:3px solid #000; outline-offset:2px; }

/* Preferências de movimento */
@media (prefers-reduced-motion: reduce){
  .cc-btn{transition:none}
  .cc-overlay{backdrop-filter:none;-webkit-backdrop-filter:none}
}

/* Fallback quando não há suporte a backdrop-filter */
@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))){
  .cc-overlay{ background: rgba(0,0,0,.6); }
}

/* Mobile */
@media (max-width: 600px) {
  .cc-card { padding: 18px 8px 10px; border-radius: 14px; }
  .cc-card h2 { font-size: 18px; }
  .cc-btn { font-size: 15px; min-height: 44px; padding: 10px 12px; }
}

/* Dark mode */
@media (prefers-color-scheme: dark) {
  :root { --cc-bg: #181818; --cc-fg: #fff; --cc-muted: #bbb; --cc-border: #444; }
  .cc-btn.cc-outline { background: #222; color: #fff; border-color: #fff; }
  .cc-btn.cc-solid { background: #fff; color: #111; }
  .cc-close{ background:#111; color:#ddd; border-color:#555; }
  .cc-close:focus-visible{ outline-color:#fff; }
}

/* Alta acessibilidade (Windows High Contrast / forced-colors) */
@media (forced-colors: active){
  .cc-overlay{ background: CanvasText; opacity:.6; }
  .cc-card, .cc-btn, .cc-close{ border: 1px solid CanvasText; }
  .cc-btn.cc-solid{ forced-color-adjust:none; background: ButtonText; color: ButtonFace; }
  .cc-btn.cc-outline{ forced-color-adjust:none; background: ButtonFace; color: ButtonText; }
}

/* melhoria: garante que qualquer [hidden] fica invisível mesmo com resets */
[hidden]{ display:none !important; }
