/* ============================================================
 * Consentimento (RGPD) — Esfera Líquida.
 * Chrome do sítio inteiro; assenta sobre os tokens da Home (esfera.css).
 * Não é um banner genérico: cartão editorial, calmo, com a voz do projeto.
 * Só é impresso/carregado quando el_consent_ativo() (opção el_cookies_ativo
 * ou ?el_cookies=1 para editores). O azul é um momento — aqui, um convite.
 * ============================================================ */
.el-cc,.el-cc *,.el-ccm,.el-ccm *{box-sizing:border-box}

/* ---- banner (cartão canto inferior) ---- */
.el-cc{position:fixed;z-index:9000;left:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);
  width:min(26rem,calc(100vw - 1.5rem));background:#fff;border:1px solid var(--rule);border-radius:16px;
  box-shadow:var(--shadow-strong);padding:clamp(1.05rem,1.9vw,1.4rem);
  font-family:var(--sans);color:var(--ink);
  transform:translateY(140%);opacity:0;pointer-events:none;
  transition:transform .55s cubic-bezier(.22,.61,.36,1),opacity .55s}
.el-cc.is-on{transform:none;opacity:1;pointer-events:auto}
.el-cc-ey{display:inline-flex;align-items:center;gap:.55rem;font-size:.66rem;font-weight:700;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold-deep)}
.el-cc-ey::before{content:"";width:24px;height:1px;background:currentColor}
.el-cc-t{font-family:var(--serif);font-weight:300;font-size:1.2rem;line-height:1.1;
  letter-spacing:-.01em;color:var(--navy);margin:.5rem 0 .4rem}
.el-cc-p{font-size:.8rem;line-height:1.5;color:var(--ink3,#5b5b5b);margin:0 0 .9rem}
.el-cc-p a{color:var(--navy);text-decoration:underline;text-underline-offset:2px}

/* botões */
.el-cc-actions{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:space-between}
.el-cc-btn{font-family:var(--sans);font-size:.76rem;font-weight:600;line-height:1;white-space:nowrap;
  padding:.62rem .8rem;border-radius:100px;border:1px solid var(--rule);background:#fff;color:var(--ink);
  cursor:pointer;transition:transform .2s,background .2s,border-color .2s,color .2s}
.el-cc-btn:hover{transform:translateY(-2px)}
.el-cc-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.el-cc-btn--primary{background:var(--navy);border-color:var(--navy);color:#fff}
.el-cc-btn--primary:hover{background:var(--blue);border-color:var(--blue)}
.el-cc-btn--ghost{border-color:transparent;background:transparent;color:var(--ink3,#5b5b5b);
  text-decoration:underline;text-underline-offset:3px;padding-left:.35rem;padding-right:.35rem}
.el-cc-btn--ghost:hover{color:var(--navy)}
.el-cc-more{display:inline-flex;align-items:center;gap:.4rem;margin-top:.55rem;
  background:none;border:0;padding:.15rem 0;font-family:var(--sans);font-size:.74rem;font-weight:600;
  color:var(--navy);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.el-cc-more svg{width:14px;height:14px}
.el-cc-more:hover{color:var(--gold-deep)}

/* ---- modal de preferências ---- */
.el-ccm{position:fixed;inset:0;z-index:9100;display:none;align-items:center;justify-content:center;
  padding:clamp(1rem,4vw,2rem)}
.el-ccm.is-on{display:flex}
.el-ccm-bg{position:absolute;inset:0;background:rgba(12,42,115,.34);backdrop-filter:blur(2px)}
.el-ccm-box{position:relative;width:min(41rem,100%);max-height:calc(100dvh - 2rem);overflow:auto;
  background:#fff;border-radius:22px;box-shadow:var(--shadow-strong);
  padding:clamp(1.6rem,3vw,2.4rem);font-family:var(--sans);color:var(--ink)}
.el-ccm-t{font-family:var(--serif);font-weight:300;font-size:clamp(1.5rem,3vw,1.85rem);line-height:1.08;
  letter-spacing:-.01em;color:var(--navy);margin:.6rem 0 .4rem}
.el-ccm-lead{font-size:.88rem;line-height:1.55;color:var(--ink3,#5b5b5b);margin:0 0 1.3rem;max-width:34rem}
.el-ccm-lead a{color:var(--navy);text-decoration:underline;text-underline-offset:2px}
.el-cc-x{position:absolute;top:.9rem;right:.9rem;width:36px;height:36px;border:0;background:transparent;
  color:var(--ink3,#5b5b5b);cursor:pointer;border-radius:50%;font-size:1.15rem;line-height:1;transition:background .2s}
.el-cc-x:hover{background:var(--bg-soft)}

/* categorias */
.el-ccm-cat{display:flex;gap:1.1rem;align-items:flex-start;justify-content:space-between;
  padding:1.05rem 0;border-top:1px solid var(--rule)}
.el-ccm-cat:last-of-type{border-bottom:1px solid var(--rule)}
.el-ccm-cat h3{font-family:var(--sans);font-size:.92rem;font-weight:700;margin:0 0 .28rem;color:var(--ink)}
.el-ccm-cat p{font-size:.81rem;line-height:1.5;color:var(--ink3,#5b5b5b);margin:0;max-width:30rem}
.el-ccm-fix{flex:none;font-size:.72rem;font-weight:700;letter-spacing:.03em;color:var(--gold-deep);
  text-transform:uppercase;padding-top:.15rem}

/* interruptor */
.el-sw{position:relative;flex:none;width:46px;height:26px;margin-top:.1rem}
.el-sw input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.el-sw span{position:absolute;inset:0;background:#d8d8d6;border-radius:100px;transition:background .25s}
.el-sw span::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;
  border-radius:50%;box-shadow:0 1px 2px rgba(0,0,0,.28);transition:transform .25s}
.el-sw input:checked+span{background:var(--navy)}
.el-sw input:checked+span::after{transform:translateX(20px)}
.el-sw input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}

.el-ccm-foot{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end;margin-top:1.5rem}

/* gatilho de reabertura (rodapé, política) */
.el-cc-reopen{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;
  text-decoration:underline;text-underline-offset:2px}
.el-cc-reopen:hover{color:var(--navy)}

/* responsivo */
@media(max-width:540px){
  /* margens seguras (notch/barra inferior do iPhone) e botões em coluna, largura total */
  .el-cc{left:max(.75rem,env(safe-area-inset-left));right:max(.75rem,env(safe-area-inset-right));bottom:max(.75rem,env(safe-area-inset-bottom));width:auto}
  .el-cc-actions{flex-direction:column}
  .el-cc-btn{width:100%;padding-top:.85rem;padding-bottom:.85rem}
  .el-cc-x{width:44px;height:44px}
  .el-ccm-foot{justify-content:stretch}
  .el-ccm-foot .el-cc-btn{flex:1}
}
@media(prefers-reduced-motion:reduce){
  .el-cc{transition:opacity .3s}
  .el-cc-btn:hover,.el-sw span,.el-sw span::after{transition:none}
}
