/* Copa SDS · reglas comunes del sitio (aviso de cookies, política, barra de avance y animaciones al hacer scroll) */

/* Barra de avance de lectura */
.scroll-bar { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 90; pointer-events: none; transform-origin: 0 50%; transform: scaleX(var(--p, 0));
  background: linear-gradient(90deg, var(--yellow), #ffe27a 60%, var(--blue)); box-shadow: 0 0 12px rgba(241,196,25,.55); }

/* Aparición al hacer scroll (solo si el JS está activo y el usuario no pidió menos movimiento) */
.js-motion [data-reveal] { opacity: 0; transform: translate3d(0, 34px, 0) scale(.985); filter: blur(4px);
  transition: opacity .9s cubic-bezier(.16,1,.3,1), transform 1s cubic-bezier(.16,1,.3,1), filter .9s ease; transition-delay: calc(var(--rd, 0) * 90ms); will-change: opacity, transform; }
.js-motion [data-reveal="left"] { transform: translate3d(-40px, 0, 0); }
.js-motion [data-reveal="right"] { transform: translate3d(40px, 0, 0); }
.js-motion [data-reveal="zoom"] { transform: scale(.9); }
.js-motion [data-reveal].is-in { opacity: 1; transform: none; filter: none; }

/* Pie legal */
.legal-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 16px; margin: 12px 0 0; font-size: 12px; color: var(--muted); }
.legal-links a, .legal-links button { color: var(--muted); }
.linkbtn { background: none; border: 0; padding: 0; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.linkbtn:focus-visible { outline: 2px solid var(--yellow); outline-offset: 2px; }

/* Aviso de cookies */
.cookie-bar { position: fixed; left: 16px; right: 16px; bottom: max(16px, env(safe-area-inset-bottom)); max-width: 760px; margin: 0 auto; z-index: 95;
  background: rgba(13,20,36,.96); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: #fff; border: 1px solid rgba(255,255,255,.1); border-left: 6px solid var(--yellow);
  border-radius: 14px; padding: 16px 20px; display: flex; gap: 20px; align-items: center; box-shadow: 0 18px 50px rgba(0,0,0,.5); font-size: 14px; line-height: 1.5;
  animation: cookieIn .6s cubic-bezier(.16,1,.3,1) both; }
.cookie-bar[hidden] { display: none; }
.cookie-bar p { margin: 0; }
.cookie-bar div { display: flex; gap: 16px; align-items: center; flex-shrink: 0; }
.cookie-bar .btn { min-height: 42px; padding: 0 18px; font-size: 14px; }
@keyframes cookieIn { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }

/* Política de cookies */
.policy { border: 0; padding: 0; margin: auto; max-width: 680px; width: calc(100% - 32px); max-height: 86vh; background: #fff; color: #0d1424; border-top: 6px solid var(--yellow); border-radius: 14px; }
.policy::backdrop { background: rgba(4,7,14,.78); }
.policy-in { padding: 38px 40px; position: relative; }
.policy .kick { font: 700 12px/1 var(--body); letter-spacing: .14em; text-transform: uppercase; color: var(--blue); margin: 0; }
.policy h2 { font: 900 40px/1 var(--display); margin: 8px 0 6px; color: #0d1424; text-transform: uppercase; }
.policy h3 { font: 800 18px/1.2 var(--display); margin: 24px 0 6px; color: #0d1424; text-transform: uppercase; }
.policy p, .policy li { font-size: 15px; line-height: 1.6; margin: 0 0 8px; }
.policy ul { padding-left: 20px; margin: 0 0 8px; }
.policy code { font-size: 13px; background: #eef1f6; padding: 1px 5px; border-radius: 4px; }
.policy a { color: var(--blue); }
.policy-date { color: #5a6480; font-size: 13px !important; }
.policy-x { position: absolute; top: 12px; right: 14px; background: none; border: 0; font-size: 32px; line-height: 1; cursor: pointer; color: #0d1424; padding: 4px 8px; }

@media (max-width: 760px) {
  .cookie-bar { flex-direction: column; align-items: flex-start; gap: 12px; left: 12px; right: 12px; }
  .policy-in { padding: 30px 22px; }
  .policy h2 { font-size: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  .js-motion [data-reveal] { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
  .cookie-bar { animation: none; }
  .scroll-bar { display: none; }
}
