/* Aviso de cookies: estructura comun; cada area define sus colores. */
.cc-banner {
    --cc-bg: #fff;
    --cc-fg: #3c3c3c;
    --cc-accent: #002C73;
    --cc-accent-fg: #fff;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1080;
    display: none;
    padding: 1rem;
}

.cc-banner.is-visible {
    display: block;
    animation: cc-slide-up .35s ease-out;
}

.cc-banner__box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    max-width: 1140px;
    margin: 0 auto;
    padding: 1rem 1.25rem;
    border-radius: .75rem;
    background: var(--cc-bg);
    color: var(--cc-fg);
    box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .25);
}

.cc-banner__text {
    flex: 1 1 20rem;
    margin: 0;
    font-size: .9rem;
    line-height: 1.55;
}

.cc-banner__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.cc-btn {
    border: 1px solid transparent;
    border-radius: .5rem;
    padding: .55rem 1.15rem;
    font: inherit;
    font-size: .875rem;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

.cc-btn--accept {
    background: var(--cc-accent);
    color: var(--cc-accent-fg);
}

.cc-btn--reject {
    background: transparent;
    color: var(--cc-accent);
    border-color: currentColor;
}

.cc-btn:focus-visible {
    outline: 2px solid var(--cc-accent);
    outline-offset: 2px;
}

.cc-link {
    color: var(--cc-accent);
    font-weight: 600;
    text-decoration: underline;
}

@keyframes cc-slide-up {
    from { transform: translateY(100%); opacity: 0; }
    to { transform: none; opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .cc-banner.is-visible { animation: none; }
}

@media (max-width: 575.98px) {
    .cc-banner { padding: .5rem; }
    .cc-banner__actions { width: 100%; }
    .cc-banner__actions .cc-btn { flex: 1 1 auto; }
}

/* Site */
.cc-banner--site .cc-banner__box {
    border-top: 4px solid var(--cc-accent);
    font-family: 'Jost', sans-serif;
}

/* Portal */
.cc-banner--portal {
    --cc-bg: #002C73;
    --cc-fg: #fff;
    --cc-accent: #fff;
    --cc-accent-fg: #002C73;
}

.cc-banner--portal .cc-banner__box {
    font-family: Verdana, Geneva, sans-serif;
}

/* CRM */
.cc-banner--crm {
    --cc-bg: var(--white, #fff);
    --cc-fg: var(--body-font-color, #2F2F3B);
    --cc-accent: var(--theme-deafult, #002C73);
}

.cc-banner--crm .cc-banner__box {
    font-family: Rubik, sans-serif;
}

/* Marcador que sustituye al contenido de terceros hasta que se aceptan las cookies. */
.cc-embed {
    --cc-accent: #002C73;
    --cc-accent-fg: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .75rem;
    width: 100%;
    height: 100%;
    padding: 1rem;
    text-align: center;
    background: #f2f3f7;
    border: 1px dashed #c3c9d6;
    border-radius: .5rem;
}

.cc-embed__text {
    max-width: 32rem;
    margin: 0;
    font-size: .9rem;
    line-height: 1.55;
    color: #3c3c3c;
}
