/* =========================================================
   CAMPUS LISTO · Textos legales + banner de cookies
   ========================================================= */

/* ---------- Páginas legales ---------- */
.legal{font-size:1.02rem}
.legal h2{font-size:clamp(1.35rem,2.4vw,1.65rem);margin:2.1em 0 .6em}
.legal h3{font-size:1.15rem;margin:1.6em 0 .4em}
.legal p,.legal li{color:#3d3a3a}
.legal ul{padding-left:1.2em}
.legal li{margin:.35em 0}
.legal code{background:var(--c-green-soft);color:var(--c-carbon);padding:.12em .45em;border-radius:6px;font-size:.92em}
.legal-upd{display:inline-block;font-size:.9rem;font-weight:600;color:var(--c-muted);background:var(--c-soft);border:1px solid var(--c-border);border-radius:999px;padding:.35em .9em;margin:0 0 1.2em}
.legal-datos{list-style:none;padding:0 !important;margin:1em 0 1.4em;border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;background:#fff}
.legal-datos li{display:grid;grid-template-columns:190px 1fr;gap:12px;margin:0;padding:.75em 1.1em;border-bottom:1px solid var(--c-border)}
.legal-datos li:last-child{border-bottom:0}
.legal-datos span{font-weight:700;color:var(--c-carbon)}
.legal-table-wrap{overflow-x:auto;margin:1em 0 1.4em;border:1px solid var(--c-border);border-radius:var(--radius)}
.legal-table{width:100%;border-collapse:collapse;font-size:.95rem;min-width:640px;background:#fff}
.legal-table th{background:var(--c-carbon);color:#fff;text-align:left;font-weight:700;padding:.8em 1em}
.legal-table td{padding:.8em 1em;border-top:1px solid var(--c-border);vertical-align:top}
.legal-table tr:nth-child(even) td{background:var(--c-soft)}
.legal-box{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--c-green-soft);border:1px solid #c9eee6;border-radius:var(--radius);padding:1em 1.2em;margin:0 0 1.5em}
.legal-box p{margin:0}
@media (max-width:600px){.legal-datos li{grid-template-columns:1fr;gap:2px}}

/* Enlace "Configurar cookies" del pie (es un botón) */
.footer-ck{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left;opacity:.85}
.footer-ck:hover{opacity:1;text-decoration:underline}

/* ---------- Banner (primera capa) ---------- */
.ck-banner{position:fixed;left:22px;bottom:22px;z-index:200;width:min(440px,calc(100vw - 32px));
  background:#fff;color:var(--c-text);border:1px solid var(--c-border);border-radius:20px;
  box-shadow:0 24px 60px -20px rgba(51,48,48,.45);opacity:0;transform:translateY(16px);transition:opacity .35s ease,transform .35s cubic-bezier(.2,.9,.3,1.2)}
.ck-banner.is-in{opacity:1;transform:none}
.ck-banner::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;border-radius:20px 20px 0 0;background:var(--c-green)}
.ck-banner-in{padding:22px 22px 18px}
.ck-title{margin:0 0 .35em;font-size:1.15rem;font-weight:800;color:var(--c-carbon)}
.ck-text{margin:0 0 1em;font-size:.93rem;line-height:1.55;color:var(--c-muted)}
.ck-text a{color:var(--c-green-text);font-weight:600}
.ck-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ck-btn{font:inherit;font-weight:700;font-size:.95rem;border-radius:999px;padding:.75em 1em;cursor:pointer;border:2px solid transparent;transition:background .15s,color .15s,border-color .15s,transform .15s}
.ck-btn:hover{transform:translateY(-1px)}
.ck-btn:focus-visible,.ck-x:focus-visible,.ck-sw input:focus-visible+i{outline:3px solid rgba(62,196,171,.55);outline-offset:2px}
/* Aceptar y Rechazar con el mismo peso visual (criterio AEPD) */
.ck-btn-main{background:var(--c-carbon);color:#fff}
.ck-btn-main:hover{background:#000}
.ck-btn-link{grid-column:1/-1;background:transparent;color:var(--c-carbon);border-color:var(--c-border)}
.ck-btn-link:hover{border-color:var(--c-carbon)}
.ck-btn-save{grid-column:1/-1;background:var(--c-green);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.18)}
.ck-btn-save:hover{background:#2FAE97}

/* ---------- Panel de configuración (segunda capa) ---------- */
.ck-lock,.ck-lock body{overflow:hidden}
.ck-modal{position:fixed;inset:0;z-index:210;display:grid;place-items:center;padding:16px}
.ck-modal-bg{position:absolute;inset:0;background:rgba(20,18,18,.55);backdrop-filter:blur(3px);opacity:0;transition:opacity .25s}
.ck-panel{position:relative;width:min(560px,100%);max-height:calc(100vh - 32px);overflow:auto;background:#fff;border-radius:22px;padding:28px 26px 22px;
  box-shadow:0 30px 80px -20px rgba(0,0,0,.5);opacity:0;transform:translateY(14px) scale(.98);transition:opacity .25s,transform .3s cubic-bezier(.2,.9,.3,1.2);outline:0}
.ck-modal.is-in .ck-modal-bg{opacity:1}
.ck-modal.is-in .ck-panel{opacity:1;transform:none}
.ck-x{position:absolute;top:12px;right:14px;width:36px;height:36px;border-radius:50%;border:0;background:var(--c-soft);font-size:1.5rem;line-height:1;cursor:pointer;color:var(--c-carbon)}
.ck-x:hover{background:var(--c-border)}
.ck-p-title{margin:0 0 .4em;font-size:1.4rem;font-weight:800;color:var(--c-carbon)}
.ck-cat{border:1px solid var(--c-border);border-radius:14px;padding:14px 16px;margin:0 0 10px}
.ck-cat p{margin:.35em 0 0;font-size:.9rem;color:var(--c-muted);line-height:1.5}
.ck-cat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;color:var(--c-carbon)}
.ck-always{font-size:.8rem;font-weight:700;color:var(--c-green-text);background:var(--c-green-soft);border-radius:999px;padding:.3em .75em}
.ck-panel .ck-actions{margin-top:16px}
/* Interruptor */
.ck-sw{position:relative;flex:0 0 auto;width:48px;height:28px}
.ck-sw input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1}
.ck-sw i{position:absolute;inset:0;border-radius:999px;background:#cfd8d6;transition:background .2s}
.ck-sw i::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .2s cubic-bezier(.3,1.4,.5,1)}
.ck-sw input:checked+i{background:var(--c-green)}
.ck-sw input:checked+i::after{transform:translateX(20px)}

@media (max-width:600px){
  .ck-banner{left:12px;right:12px;bottom:12px;width:auto}
  .ck-banner-in{padding:20px 18px 16px}
  .ck-panel{padding:24px 18px 18px}
}
@media (prefers-reduced-motion:reduce){.ck-banner,.ck-panel,.ck-modal-bg{transition:none}}
.ck-banner[hidden],.ck-modal[hidden]{display:none !important}
