/* dadesign Consent - banner e pannello preferenze
   Skin delegata al tema: ridefinire le variabili --da-consent-* nel child.
   Nessun colore senza var(). Contrasto AA sui default. */

.da-consent {
    --_bg:       var(--da-consent-bg, #1f2328);
    --_fg:       var(--da-consent-fg, #ffffff);
    --_muted:    var(--da-consent-muted, rgba(255, 255, 255, 0.78));
    --_border:   var(--da-consent-border, rgba(255, 255, 255, 0.25));
    --_primary:  var(--da-consent-primary, #ffffff);
    --_primary-fg: var(--da-consent-primary-fg, #1f2328);
    --_radius:   var(--da-consent-radius, 6px);
    --_font:     var(--da-consent-font, inherit);
    --_size:     var(--da-consent-font-size, 0.875rem);
    --_z:        var(--da-consent-z, 9990);
    --_max:      var(--da-consent-max-width, 1200px);
    --_dialog-bg: var(--da-consent-dialog-bg, #ffffff);
    --_dialog-fg: var(--da-consent-dialog-fg, #1f2328);
    --_dialog-border: var(--da-consent-dialog-border, #d0d4d9);
    --_accent:   var(--da-consent-accent, #1f2328);
    --_accent-ink: var(--da-consent-accent-ink, var(--_accent));
    --_focus:    var(--da-consent-focus, #4c9ffe);
    font-family: var(--_font);
    font-size: var(--_size);
    line-height: 1.45;
}

.da-consent[hidden],
.da-consent__bar[hidden] { display: none; }

/* ---------- barra ---------- */

.da-consent__bar {
    position: fixed;
    inset: auto 0 0 0;
    z-index: var(--_z);
    background: var(--_bg);
    color: var(--_fg);
    box-shadow: var(--da-consent-shadow, 0 -2px 12px rgba(0, 0, 0, 0.25));
}

/* La barra riceve il focus da script solo per l'annuncio agli screen reader:
   niente anello (i temi lo mettono su :focus-visible), i pulsanti hanno il loro. */
.da-consent .da-consent__bar:focus,
.da-consent .da-consent__bar:focus-visible { outline: none; box-shadow: var(--da-consent-shadow, 0 -2px 12px rgba(0, 0, 0, 0.25)); }

.da-consent__inner {
    position: relative;
    max-width: var(--_max);
    margin: 0 auto;
    padding: 1rem 3rem 1rem 1.25rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    align-items: center;
}

.da-consent__content { flex: 1 1 28rem; min-width: 0; }

.da-consent__title {
    margin: 0 0 0.25rem;
    font-weight: 700;
    font-size: 1.05em;
}

.da-consent__text { margin: 0; color: var(--_muted); }

.da-consent__link {
    color: inherit;
    text-decoration: underline;
    margin-left: 0.5rem;
    white-space: nowrap;
}

.da-consent__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.da-consent__btn {
    font: inherit;
    font-weight: 600;
    padding: 0.6em 1.1em;
    border-radius: var(--_radius);
    border: 2px solid var(--_primary);
    background: transparent;
    color: var(--_fg);
    cursor: pointer;
    line-height: 1.2;
}

.da-consent__btn--primary { background: var(--_primary); color: var(--_primary-fg); }

.da-consent__btn:hover,
.da-consent__btn:focus-visible { filter: brightness(0.9); }

.da-consent__btn:focus-visible,
.da-consent__close:focus-visible,
.da-consent__switch:focus-visible {
    outline: 3px solid var(--_focus);
    outline-offset: 2px;
}

.da-consent__close {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    width: 2.25rem;
    height: 2.25rem;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: inherit;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
}

/* ---------- pannello preferenze ---------- */

.da-consent__dialog {
    position: fixed;
    inset: 0;
    margin: auto;
    width: min(92vw, 36rem);
    max-height: 90vh;
    padding: 0;
    border: 1px solid var(--_dialog-border);
    border-radius: var(--_radius);
    background: var(--_dialog-bg);
    color: var(--_dialog-fg);
    z-index: calc(var(--_z) + 1);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}

.da-consent__dialog::backdrop { background: rgba(0, 0, 0, 0.55); }
.da-consent__dialog:not([open]) { display: none; }

.da-consent__form {
    display: flex;
    flex-direction: column;
    max-height: 90vh;
    padding: 1.5rem 1.5rem 1.25rem;
    overflow: auto;
}

.da-consent__dialog-head {
    position: relative;
    padding-right: 2.5rem;
}

.da-consent__dialog-title { margin: 0 0 0.5rem; font-size: 1.25em; }
.da-consent__dialog .da-consent__close { top: -0.5rem; right: -0.5rem; }
.da-consent__dialog-text { margin: 0 0 1rem; }

.da-consent__categories {
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
    border-top: 1px solid var(--_dialog-border);
}

.da-consent__category {
    padding: 0.85rem 0;
    border-bottom: 1px solid var(--_dialog-border);
}

.da-consent__category-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.da-consent__category-label { font-weight: 700; flex: 1 1 auto; }
.da-consent__category-text { margin: 0.35rem 0 0; font-size: 0.92em; opacity: 0.85; }
.da-consent__always { font-size: 0.85em; opacity: 0.75; }

/* interruttore: checkbox nativo, solo riveduto */
.da-consent__switch {
    appearance: none;
    -webkit-appearance: none;
    width: 2.75rem;
    height: 1.5rem;
    margin: 0;
    border-radius: 1rem;
    background: var(--da-consent-switch-off, #8a9099);
    position: relative;
    cursor: pointer;
    flex: none;
    transition: background 0.15s;
}

.da-consent__switch::after {
    content: "";
    position: absolute;
    top: 0.2rem;
    left: 0.2rem;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    background: var(--da-consent-switch-knob, #ffffff);
    transition: transform 0.15s;
}

/* acceso: accent-ink, non accent nudo (un accent chiaro sul pannello chiaro non tiene il 3:1) */
.da-consent__switch:checked { background: var(--_accent-ink); }
.da-consent__switch:checked::after { transform: translateX(1.25rem); }
.da-consent__switch:disabled { opacity: 0.55; cursor: default; }

.da-consent__actions--dialog { justify-content: flex-end; }

.da-consent__dialog .da-consent__btn {
    border-color: var(--_accent-ink);
    color: var(--_dialog-fg);
}

.da-consent__dialog .da-consent__btn--primary {
    background: var(--_accent);
    color: var(--da-consent-accent-fg, #ffffff);
}

/* ---------- mobile ---------- */

@media (max-width: 640px) {
    .da-consent__inner { padding: 0.9rem 2.75rem 0.9rem 1rem; gap: 0.6rem; }
    .da-consent__actions { width: 100%; }
    .da-consent__actions .da-consent__btn { flex: 1 1 auto; }
    .da-consent__link { display: inline-block; margin: 0.25rem 0.5rem 0 0; }
    .da-consent__actions--dialog .da-consent__btn { flex: 1 1 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .da-consent__switch,
    .da-consent__switch::after { transition: none; }
}

/* ---------- segnaposto iframe (fase 2) ---------- */

.da-consent-embed {
    --_embed-bg: var(--da-consent-embed-bg, #eef0f3);
    --_embed-fg: var(--da-consent-embed-fg, #1f2328);
    --_embed-accent: var(--da-consent-accent, #1f2328);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 12rem;
    aspect-ratio: 16 / 9;
    background: var(--_embed-bg);
    color: var(--_embed-fg);
    border-radius: var(--da-consent-radius, 6px);
    font-size: var(--da-consent-font-size, 0.875rem);
    line-height: 1.45;
    text-align: center;
}

.da-consent-embed__inner { max-width: 32rem; padding: 1.5rem; }
.da-consent-embed__text { margin: 0 0 0.5rem; }
.da-consent-embed__category { margin: 0 0 1rem; font-size: 0.85em; opacity: 0.7; }
.da-consent-embed__actions { margin: 0; display: flex; gap: 0.75rem 1rem; justify-content: center; align-items: center; flex-wrap: wrap; }

.da-consent-embed__btn {
    font: inherit;
    font-weight: 600;
    padding: 0.6em 1.1em;
    border-radius: var(--da-consent-radius, 6px);
    border: 2px solid var(--_embed-accent);
    background: var(--_embed-accent);
    color: var(--da-consent-accent-fg, #ffffff);
    cursor: pointer;
}

.da-consent-embed__btn:focus-visible { outline: 3px solid var(--da-consent-focus, #4c9ffe); outline-offset: 2px; }
.da-consent-embed__link { color: inherit; text-decoration: underline; }

/* ---------- tabella cookie ---------- */

.da-consent-table__group { margin: 0 0 2rem; }
.da-consent-table__title { margin: 0 0 0.25rem; }
.da-consent-table__description { margin: 0 0 0.75rem; }
.da-consent-table__table { width: 100%; border-collapse: collapse; font-size: 0.92em; }
.da-consent-table__table th,
.da-consent-table__table td { padding: 0.5rem 0.6rem; border-bottom: 1px solid var(--da-consent-dialog-border, #d0d4d9); text-align: left; vertical-align: top; }
.da-consent-table__table thead th { border-bottom-width: 2px; }
.da-consent-table__table code { font-size: 0.95em; }

@media (max-width: 640px) {
    .da-consent-table__table { display: block; overflow-x: auto; }
}
