/**
 * AGAFORT MarketingSeo cookie consent — compact floating card.
 * Visual/UX only. Consent authority remains AgMseConsent / ag_mse_consent.
 * Tokens: Design System (--ag-surface, --ag-text, --ag-border, --ag-shadow-*, --ag-z-cookie).
 */

.ag-mse-cookie-card {
    position: fixed;
    z-index: var(--ag-z-cookie, 1065);
    inset-block-end: max(1.5rem, env(safe-area-inset-bottom, 0px));
    inset-inline-start: max(1.5rem, env(safe-area-inset-left, 0px));
    inset-inline-end: auto;
    width: min(400px, calc(100vw - 3rem));
    max-width: 400px;
    max-height: min(85vh, calc(100dvh - 3rem));
    overflow: auto;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background: var(--ag-surface, #fff);
    color: var(--ag-text, #111827);
    border: 1px solid var(--ag-border, #e5e7eb);
    border-radius: var(--ag-radius-lg, 12px);
    box-shadow: var(--ag-shadow-xl, 0 18px 40px color-mix(in srgb, var(--ag-dh-text, #111) 14%, transparent));
    font-size: 0.875rem;
    line-height: 1.45;
}

.ag-mse-cookie-card[hidden],
.ag-mse-cookie-reopen[hidden] {
    display: none !important;
}

.ag-mse-cookie-card__body {
    display: flex;
    flex-direction: column;
    gap: var(--ag-space-3, 0.75rem);
    padding: var(--ag-space-4, 1rem) var(--ag-space-4, 1rem) var(--ag-space-3, 0.75rem);
    box-sizing: border-box;
}

.ag-mse-cookie-card__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ag-text, #111827);
}

.ag-mse-cookie-card__text {
    margin: 0;
    color: color-mix(in srgb, var(--ag-text, #111827) 82%, transparent);
}

.ag-mse-cookie-card__policy {
    margin: 0;
}

.ag-mse-cookie-card__policy-link {
    color: var(--ag-dh-primary, var(--ag-primary, #0d6efd));
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 600;
}

.ag-mse-cookie-card__policy-link:hover,
.ag-mse-cookie-card__policy-link:focus-visible {
    text-decoration-thickness: 2px;
}

.ag-mse-cookie-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--ag-space-2, 0.5rem);
    align-items: stretch;
}

.ag-mse-cookie-btn {
    appearance: none;
    border: 1px solid transparent;
    border-radius: var(--ag-radius-md, var(--ag-dh-btn-radius, 8px));
    padding: 0.5rem 0.75rem;
    font: inherit;
    font-weight: 600;
    line-height: 1.25;
    cursor: pointer;
    flex: 1 1 auto;
    min-height: 2.5rem;
    text-align: center;
    transition: background var(--ag-transition-fast, 0.15s ease), border-color var(--ag-transition-fast, 0.15s ease), color var(--ag-transition-fast, 0.15s ease);
}

.ag-mse-cookie-btn:focus-visible {
    outline: 2px solid var(--ag-dh-primary, var(--ag-primary, #0d6efd));
    outline-offset: 2px;
}

.ag-mse-cookie-btn--primary {
    background: var(--ag-dh-primary, var(--ag-primary, #0d6efd));
    color: var(--ag-dh-on-primary, #fff);
    border-color: var(--ag-dh-primary, var(--ag-primary, #0d6efd));
}

.ag-mse-cookie-btn--secondary {
    background: var(--ag-surface, #fff);
    color: var(--ag-text, #111827);
    border-color: var(--ag-border, #d1d5db);
}

.ag-mse-cookie-btn--ghost {
    background: transparent;
    color: var(--ag-text, #111827);
    border-color: transparent;
    text-decoration: underline;
    text-underline-offset: 2px;
    flex: 1 1 100%;
}

.ag-mse-cookie-btn--block {
    width: 100%;
    flex: 1 1 100%;
}

.ag-mse-cookie-card__customize {
    margin-top: var(--ag-space-1, 0.25rem);
    padding-top: var(--ag-space-3, 0.75rem);
    border-top: 1px solid var(--ag-border, #e5e7eb);
}

.ag-mse-cookie-card__fieldset {
    margin: 0 0 var(--ag-space-3, 0.75rem);
    padding: 0;
    border: 0;
    min-width: 0;
}

.ag-mse-cookie-card__legend {
    padding: 0;
    margin: 0 0 var(--ag-space-2, 0.5rem);
    font-weight: 700;
    font-size: 0.8125rem;
}

.ag-mse-cookie-cat {
    display: flex;
    align-items: flex-start;
    gap: var(--ag-space-2, 0.5rem);
    margin: 0.4rem 0;
    cursor: pointer;
}

.ag-mse-cookie-cat input {
    margin-block-start: 0.2rem;
    flex-shrink: 0;
}

.ag-mse-cookie-reopen {
    /* Legacy floating reopen — removed from markup; keep rule inert if cached HTML remains. */
    display: none !important;
}

.ag-footer-legal-links .ag-footer-cookie-prefs {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    padding-block: .25rem;
    margin: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: inherit;
    text-decoration: underline;
    text-underline-offset: 0.15em;
    cursor: pointer;
    overflow-wrap: anywhere;
}

.ag-footer-legal-links .ag-footer-cookie-prefs:focus-visible {
    outline: 2px solid var(--ag-dh-primary, var(--ag-primary, #0d6efd));
    outline-offset: 2px;
}

.ag-mse-cookie-reopen:focus-visible {
    outline: 2px solid var(--ag-dh-primary, var(--ag-primary, #0d6efd));
    outline-offset: 2px;
}

/* Mobile: almost full width with safe margins — never edge-to-edge */
@media (max-width: 480px) {
    .ag-mse-cookie-card {
        inset-block-end: max(1rem, env(safe-area-inset-bottom, 0px));
        inset-inline-start: max(0.75rem, env(safe-area-inset-left, 0px));
        inset-inline-end: max(0.75rem, env(safe-area-inset-right, 0px));
        width: auto;
        max-width: none;
    }

    .ag-mse-cookie-card__actions {
        flex-direction: column;
    }

    .ag-mse-cookie-btn,
    .ag-mse-cookie-btn--ghost {
        flex: 1 1 auto;
        width: 100%;
    }

    .ag-mse-cookie-reopen {
        inset-block-end: max(1rem, env(safe-area-inset-bottom, 0px));
        inset-inline-start: max(0.75rem, env(safe-area-inset-left, 0px));
    }
}

/* Tablet: keep compact card — never jump to full-bleed bar */
@media (min-width: 481px) and (max-width: 1024px) {
    .ag-mse-cookie-card {
        width: min(400px, calc(100vw - 3rem));
        max-width: 400px;
    }
}

/*
 * Legacy full-width bar neutralization (critical/dist may still ship old rules).
 * New markup no longer uses .ag-dh-cookie-banner as the surface root.
 */
.ag-dh-cookie-banner:not(.ag-mse-cookie-card) {
    /* If any leftover markup exists, constrain it rather than full-bleed. */
    inset-inline: auto !important;
    inset-inline-start: max(1.5rem, env(safe-area-inset-left, 0px)) !important;
    width: min(400px, calc(100vw - 3rem)) !important;
    max-width: 400px !important;
}
