/* Armoniats · Banner y panel de consentimiento de cookies (RGPD/LSSI).
   Lógica en assets/consent.js. Usa las variables de assets/v4.css. */
.cb-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:200;max-width:720px;margin:0 auto;background:var(--ivory);color:var(--graphite);border-radius:18px;box-shadow:0 30px 70px rgba(0,0,0,.45);padding:22px 24px}
.cb-banner h2{font-size:var(--fs-h4,18px);margin:0 0 8px;color:var(--graphite)}
.cb-banner p{font-size:var(--fs-body-s,15px);line-height:1.6;color:var(--muted);margin:0}
.cb-banner p a{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.cb-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.cb-btn{flex:1 1 150px;font:inherit;font-size:var(--fs-body-s,15px);font-weight:600;padding:12px 16px;border-radius:12px;border:1.5px solid var(--deep);background:var(--white);color:var(--deep);cursor:pointer;text-align:center;transition:background .2s,color .2s}
.cb-btn:hover{background:var(--deep);color:var(--ivory)}
.cb-btn:focus-visible{outline:3px solid var(--green);outline-offset:3px}

/* Panel de preferencias */
.cb-overlay{position:fixed;inset:0;z-index:210;background:rgba(11,31,25,.65);display:flex;align-items:center;justify-content:center;padding:20px}
.cb-modal{background:var(--ivory);color:var(--graphite);border-radius:18px;box-shadow:0 40px 90px rgba(0,0,0,.5);max-width:560px;width:100%;max-height:85vh;overflow:auto;padding:clamp(22px,4vw,34px)}
.cb-modal h2{font-size:var(--fs-h3,22px);margin:0 0 6px}
.cb-modal>p{font-size:var(--fs-body-s,15px);color:var(--muted);line-height:1.6;margin:0 0 18px}
.cb-modal>p a{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.cb-cat{display:flex;align-items:flex-start;gap:14px;border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--white)}
.cb-cat+.cb-cat{margin-top:10px}
.cb-cat-text{flex:1}
.cb-cat-text strong{display:block;font-size:var(--fs-body,16px);margin-bottom:4px}
.cb-cat-text span{font-size:var(--fs-small,13px);color:var(--muted);line-height:1.55}
.cb-cat input[type="checkbox"]{width:20px;height:20px;margin-top:2px;accent-color:var(--green);flex-shrink:0}
.cb-cat input[type="checkbox"]:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.cb-siempre{font-size:var(--fs-small,13px);font-weight:600;color:var(--green);white-space:nowrap;margin-top:3px}
.cb-close{position:sticky;top:0;float:right;font:inherit;background:none;border:0;cursor:pointer;font-size:22px;line-height:1;color:var(--muted);padding:4px 8px}
.cb-close:hover{color:var(--graphite)}
.cb-close:focus-visible{outline:3px solid var(--green);outline-offset:2px}

@media(max-width:600px){
  .cb-banner{left:10px;right:10px;bottom:10px;padding:16px;max-height:40vh;overflow:auto}
  .cb-banner h2{font-size:16px;margin-bottom:6px}
  .cb-banner p{font-size:13px;line-height:1.45}
  .cb-actions{flex-direction:row;gap:8px;margin-top:12px}
  .cb-btn{flex:1 1 30%;padding:11px 8px;min-height:44px;font-size:13px}
}
@media(prefers-reduced-motion:no-preference){
  .cb-banner{animation:cbIn .4s var(--ease,ease)}
  @keyframes cbIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
}
