/*
 * AxA Cookie Consent - estilos de front
 * @author Aníbal Adrián Vidal  @copyright AxA Computación
 * Scopeado a #axacc-root. Hereda la tipografía del theme (no carga fuentes).
 */

#axacc-root[hidden]{display:none!important}
#axacc-root,#axacc-root *,#axacc-root *::before,#axacc-root *::after{box-sizing:border-box}
/* Neutraliza márgenes que algunos themes aplican a estos elementos (evita desbordes) */
#axacc-root label,#axacc-root button,#axacc-root input{margin:0}
#axacc-root button{min-width:0}
#axacc-root{font-family:inherit;font-size:var(--axacc-fs,14px);line-height:1.45;color:var(--axacc-text,#5d5d5d)}

/* ---------- Banner ---------- */
.axacc-banner{
  position:fixed;z-index:var(--axacc-z,99990);
  background:var(--axacc-bg,#fff);color:var(--axacc-text,#5d5d5d);
  border-radius:var(--axacc-radius,12px);box-shadow:var(--axacc-shadow,0 8px 30px rgba(0,0,0,.18));
  padding:18px 20px;max-width:var(--axacc-maxw,470px);width:auto;
  display:flex;flex-direction:column;gap:14px;border:1px solid rgba(0,0,0,.06)
}
/* Necesaria: el display:flex de arriba (regla de autor) le gana al
   [hidden]{display:none} del navegador (regla del user-agent), así que sin
   esto el banner sólo se oculta si el theme trae su propio reset de [hidden].
   Mismo criterio que .axacc-panel / .axacc-backdrop / .axacc-reopen. */
.axacc-banner[hidden]{display:none}
.axacc--box-bottom-left .axacc-banner{left:16px;bottom:16px}
.axacc--box-bottom-right .axacc-banner{right:16px;bottom:16px}
.axacc--bar-bottom .axacc-banner{
  left:0;right:0;bottom:0;max-width:none;width:100%;border-radius:0;border-left:0;border-right:0;border-bottom:0;
  flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:14px 24px
}
.axacc--modal-center .axacc-banner{left:50%;top:50%;transform:translate(-50%,-50%);max-width:520px;z-index:calc(var(--axacc-z,99990) + 2)}

.axacc-banner-body{display:flex;gap:14px;align-items:flex-start;flex:1 1 auto;min-width:0}
.axacc-ico,.axacc-logo{flex:0 0 auto;margin-top:2px}
.axacc-ico{color:var(--axacc-heading,#3d3d3d)}
.axacc-logo{max-width:42px;height:auto;border-radius:6px}
.axacc-texts{min-width:0}
.axacc-text{margin:0}
.axacc-text--mobile{display:none}
.axacc-links{margin:8px 0 0}
.axacc-links a{color:var(--axacc-link,#5a9e74);text-decoration:underline;margin-right:14px}

/* ---------- Acciones / botones ---------- */
.axacc-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.axacc--bar-bottom .axacc-actions{flex:0 0 auto}
.axacc-btn{
  font:inherit;font-weight:600;cursor:pointer;border:1px solid transparent;border-radius:8px;
  padding:10px 16px;line-height:1.1;transition:filter .15s ease,background .15s ease;white-space:nowrap
}
.axacc-btn:hover{filter:brightness(.94)}
.axacc-btn:focus-visible{outline:3px solid var(--axacc-link,#5a9e74);outline-offset:2px}
.axacc-btn--accept{background:var(--axacc-accept-bg,#000);color:var(--axacc-accept-text,#fff)}
.axacc-btn--reject{background:var(--axacc-reject-bg,#fff);color:var(--axacc-reject-text,#3d3d3d);border-color:var(--axacc-reject-border,#3d3d3d)}
.axacc-btn--config{background:var(--axacc-config-bg,#f2f2f2);color:var(--axacc-config-text,#3d3d3d)}
.axacc-btn--save{background:var(--axacc-save-bg,#5a9e74);color:var(--axacc-save-text,#fff)}

/* ---------- Panel de preferencias ---------- */
.axacc-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:calc(var(--axacc-z,99990) + 1)}
.axacc-backdrop[hidden]{display:none}
.axacc-panel{
  position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(560px,calc(100vw - 32px));max-height:86vh;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
  background:var(--axacc-bg,#fff);color:var(--axacc-text,#5d5d5d);
  border-radius:var(--axacc-radius,12px);box-shadow:0 16px 50px rgba(0,0,0,.3);
  z-index:calc(var(--axacc-z,99990) + 3);padding:22px 24px
}
.axacc-panel[hidden]{display:none}
.axacc-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.axacc-panel-title{margin:0;font-size:1.25em;color:var(--axacc-heading,#3d3d3d)}
.axacc-close{background:none;border:0;cursor:pointer;color:var(--axacc-heading,#3d3d3d);padding:6px;border-radius:6px;line-height:0}
.axacc-close:focus-visible{outline:3px solid var(--axacc-link,#5a9e74);outline-offset:2px}
.axacc-panel-intro{margin:8px 0 16px}
.axacc-panel-head,.axacc-panel-intro,.axacc-cats,.axacc-cat,.axacc-panel-actions,.axacc-links--panel{max-width:100%}

.axacc-cats{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:12px}
.axacc-cat{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;width:100%;
  padding:14px;border:1px solid rgba(0,0,0,.10);border-radius:10px}
.axacc-cat-info{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}
.axacc-cat-name{font-weight:600;color:var(--axacc-heading,#3d3d3d);overflow-wrap:anywhere}
.axacc-cat-desc{font-size:.92em;overflow-wrap:anywhere}

/* Switch accesible */
.axacc-switch{position:relative;display:inline-block;width:46px;height:26px;flex:0 0 auto}
.axacc-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.axacc-slider{position:absolute;inset:0;background:#c9c9c9;border-radius:999px;transition:background .15s ease}
.axacc-slider::before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .15s ease}
.axacc-switch input:checked + .axacc-slider{background:var(--axacc-save-bg,#5a9e74)}
.axacc-switch input:checked + .axacc-slider::before{transform:translateX(20px)}
.axacc-switch input:focus-visible + .axacc-slider{outline:3px solid var(--axacc-link,#5a9e74);outline-offset:2px}
.axacc-switch--locked{opacity:.65}
.axacc-switch--locked input{cursor:not-allowed}

.axacc-links--panel{margin:0 0 16px}
.axacc-panel-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}

/* ---------- Botón flotante para reabrir ---------- */
.axacc-reopen{
  position:fixed;left:16px;bottom:16px;z-index:var(--axacc-z,99990);
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  background:var(--axacc-accept-bg,#000);color:var(--axacc-accept-text,#fff);
  border:0;border-radius:999px;padding:10px 14px;box-shadow:0 6px 18px rgba(0,0,0,.25);font:inherit;font-weight:600
}
.axacc-reopen[hidden]{display:none}
.axacc-reopen:hover{filter:brightness(.93)}
.axacc-reopen:focus-visible{outline:3px solid var(--axacc-link,#5a9e74);outline-offset:2px}

/* ---------- Enlace discreto al pie (estilo "linea de texto") ---------- */
.axacc-footer-link-wrap{text-align:center;padding:10px 0;line-height:1.4}
.axacc-footer-link{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font:inherit;font-size:13px;color:inherit;opacity:.85;text-decoration:none;background:none;border:0;padding:0}
.axacc-footer-link:hover{opacity:1;text-decoration:underline}
.axacc-footer-link svg{flex:0 0 auto;opacity:.9}

/* ---------- Responsive / mobile compacto ---------- */
@media (max-width:600px){
  .axacc--box-bottom-left .axacc-banner,
  .axacc--box-bottom-right .axacc-banner{left:10px;right:10px;bottom:10px;max-width:none}
  .axacc--modal-center .axacc-banner{left:10px;right:10px;top:auto;bottom:10px;transform:none;max-width:none}
  .axacc-banner{padding:16px}
  .axacc-text--desktop{display:none}
  .axacc-text--mobile{display:block}
  .axacc-actions{flex-direction:column-reverse;align-items:stretch}
  .axacc-actions .axacc-btn{width:100%;text-align:center}
  .axacc-panel-actions{flex-direction:column-reverse}
  .axacc-panel-actions .axacc-btn{width:100%}
  .axacc-reopen-label{display:none}
  .axacc-reopen{padding:12px}
}

@media (prefers-reduced-motion:reduce){
  .axacc-btn,.axacc-slider,.axacc-slider::before{transition:none}
}
