/*
 * Aviso de cookies do site.
 *
 * Tudo com o prefixo .ck, para não encostar no resto do site.
 * As cores são as principais do Brand Book da ELUP (2025): os dois roxos, o
 * coral e o verde. As fontes e o formato dos botões seguem o site (base.css),
 * para o aviso não destoar da página: Mitr no título, Maven Pro no texto e o
 * botão do .cta-submit.
 */

.ck {
    --ck-roxo: #47208b;
    --ck-roxo-escuro: #29155b;
    --ck-lilas: #e5dcfb;
    --ck-menta: #0adca1;
    --ck-coral: #f95043;

    position: fixed;
    /* acima do cabeçalho fixo (99) e dos botões flutuantes de terceiros (99999) */
    z-index: 100000;
    left: 24px;
    bottom: 24px;
    width: 392px;
    max-width: calc(100% - 48px);
    overflow: hidden;
    border-radius: 22px;
    background: linear-gradient(135deg, var(--ck-roxo) 0%, var(--ck-roxo-escuro) 100%);
    /* o fio claro separa o cartão do topo roxo do site; sobre fundo branco ele some */
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.16), 0 20px 50px rgba(41, 21, 91, 0.45);
    color: #fff;
    font-family: 'Maven Pro', sans-serif;
    text-align: left;
    animation: ck-entra 0.32s ease-out;
}

.ck[hidden],
.ck [hidden] {
    display: none;
}

/* O base.css aplica "transition: all" e "outline: none" em todo a, div e
   button. Aqui dentro a transição é desligada (cada controle declara a sua)
   e o foco do teclado volta a aparecer, como anel desenhado com box-shadow. */
.ck,
.ck * {
    transition: none;
}

@keyframes ck-entra {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
}

/* A faixa coral do site, cruzando o canto do cartão. */
.ck-faixa {
    position: absolute;
    top: 0;
    right: 0;
    width: 170px;
    height: 110px;
    pointer-events: none;
}

.ck-faixa path {
    fill: none;
    stroke: var(--ck-coral);
    stroke-width: 13;
    stroke-linecap: round;
}

.ck-corpo {
    position: relative;
    max-height: calc(100vh - 48px);
    padding: 28px 28px 22px;
    overflow-y: auto;
}

.ck-titulo {
    margin: 0 0 10px;
    /* o título não passa por baixo da faixa */
    padding-right: 96px;
    font-family: 'Mitr', sans-serif;
    font-size: 20px;
    font-weight: 400;
    line-height: 1.3;
    color: #fff;
    outline: none;
}

.ck-texto {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--ck-lilas);
}

.ck-texto a {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 2px;
    border-radius: 2px;
}

.ck-botoes {
    display: flex;
    margin-top: 20px;
}

.ck-botao + .ck-botao {
    margin-left: 10px;
}

/* O botão do site (.cta-submit), em altura menor e com as cores da marca. Aceitar e Recusar são
   idênticos de propósito: recusar tem de ser tão fácil quanto aceitar. */
.ck-botao {
    flex: 1 1 0;
    height: 46px;
    padding: 0 12px;
    border: 0;
    border-radius: 4px;
    background: var(--ck-menta);
    color: var(--ck-roxo-escuro);
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color 0.15s ease-out;
}

.ck-botao:hover {
    background: #5cf0cb;
}

.ck-link {
    display: inline-block;
    margin-top: 14px;
    padding: 2px 0;
    border: 0;
    border-radius: 2px;
    background: none;
    color: #fff;
    font-family: inherit;
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.ck-texto a:hover,
.ck-link:hover {
    color: var(--ck-menta);
}

.ck-botao:focus-visible,
.ck-link:focus-visible,
.ck-texto a:focus-visible {
    box-shadow: 0 0 0 2px var(--ck-roxo-escuro), 0 0 0 4px #fff;
}

.ck-lista {
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
}

.ck-item {
    padding: 14px 0;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
}

.ck-item:first-child {
    border-top: 0;
}

.ck-item-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 24px;
    margin: 0 0 4px;
}

label.ck-item-topo {
    cursor: pointer;
}

.ck-item-nome {
    font-size: 15px;
    font-weight: 500;
    color: #fff;
}

.ck-fixo {
    flex: none;
    margin-left: 12px;
    font-size: 12px;
    color: var(--ck-lilas);
}

/* Chave liga/desliga: o checkbox continua ali, invisível, e é ele que recebe
   o teclado e o leitor de tela. O .ck-trilho é só o desenho. */
.ck-chave {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
}

.ck-trilho {
    position: relative;
    flex: none;
    width: 44px;
    margin-left: 12px;
    height: 24px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.25);
    transition: background-color 0.15s ease-out;
}

.ck-trilho::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    transition: transform 0.15s ease-out, background-color 0.15s ease-out;
}

.ck-chave:checked + .ck-trilho {
    background: var(--ck-menta);
}

.ck-chave:checked + .ck-trilho::after {
    background: var(--ck-roxo-escuro);
    transform: translateX(20px);
}

.ck-chave:focus-visible + .ck-trilho {
    box-shadow: 0 0 0 2px var(--ck-roxo-escuro), 0 0 0 4px #fff;
}

/* Lido pelo leitor de tela ao salvar a escolha; não aparece na tela. */
.ck-status {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

/* Links do rodapé: com o terceiro ("Preferências de cookies") a lista passa a
   quebrar em duas linhas, e o recuo fixo que o includes.css dá ao segundo link
   desalinharia a linha de baixo. */
.footer-copyright.lista-termos ul li,
.footer-copyright.lista-termos ul li:nth-child(2) {
    margin: 0 5px 6px;
}

@media (min-width: 560px) {
    /* recuo à esquerda em todos os links, compensado na lista: assim a linha de
       baixo começa alinhada com a de cima */
    .footer-copyright.lista-termos ul {
        margin-left: -10px;
    }

    .footer-copyright.lista-termos ul li,
    .footer-copyright.lista-termos ul li:nth-child(2) {
        margin: 0 0 6px 10px;
    }
}

@media (max-width: 559px) {
    .ck {
        left: 12px;
        right: 12px;
        bottom: 12px;
        width: auto;
        max-width: none;
    }

    .ck-corpo {
        max-height: calc(100vh - 24px);
        padding: 24px 20px 18px;
    }

    .ck-faixa {
        width: 136px;
        height: 88px;
    }

    .ck-titulo {
        padding-right: 76px;
        font-size: 19px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ck {
        animation: none;
    }

    .ck-botao,
    .ck-trilho,
    .ck-trilho::after {
        transition: none;
    }
}

@media print {
    .ck {
        display: none;
    }
}
