.ccoo-footer{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;column-gap:1.25rem;row-gap:.8rem;padding:1.25rem clamp(.75rem,2vw,1.5rem);background:var(--color-footer,#F2F2F2);color:var(--color-ink,#111);border-top:4px solid var(--app-accent,var(--ccoo-red));font-family:var(--ccoo-font,Arial,Helvetica,sans-serif)}
.ccoo-footer__institutional{min-width:0;justify-self:start;text-align:left}.ccoo-footer__institutional strong{font-weight:800}
.ccoo-footer__version{justify-self:center;text-align:center;white-space:nowrap;color:var(--color-muted,#676767);font-size:.85rem;font-weight:700}
.ccoo-footer__authorship{min-width:0;justify-self:end;text-align:right}.ccoo-footer ph-authorship-signature{display:block;max-width:28rem;color:#111;text-align:right}.ccoo-footer__authorship .ph-signature{justify-content:flex-end}
.ccoo-footer__actions{grid-column:1/-1;display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:.5rem}.ccoo-footer__actions a,.ccoo-footer__actions button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-target-min,44px);padding:.6rem .9rem;border:2px solid var(--app-accent,var(--ccoo-red));border-radius:999px;background:#fff;color:var(--app-accent,var(--ccoo-red));font:700 .875rem/1 var(--ccoo-font,Arial,Helvetica,sans-serif);text-decoration:none;cursor:pointer}
@media(max-width:780px){.ccoo-footer{grid-template-columns:1fr;align-items:start}.ccoo-footer__institutional,.ccoo-footer__version,.ccoo-footer__authorship{justify-self:start;text-align:left}.ccoo-footer__version{white-space:normal}.ccoo-footer ph-authorship-signature{text-align:left}.ccoo-footer__authorship .ph-signature{justify-content:flex-start}.ccoo-footer__actions{grid-column:1;justify-content:flex-start}}

/* v1.2.0 · WCAG 2.2 AA */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
:where(button,[href],input,select,textarea,[tabindex]:not([tabindex="-1"])):focus-visible{outline:3px solid #111!important;outline-offset:3px!important;box-shadow:0 0 0 2px #fff!important}
:where(button,input,select,textarea,[role="button"],[role="tab"]){min-height:44px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
@media(forced-colors:active){:focus-visible{outline:3px solid Highlight!important;box-shadow:none!important}}
