/* ═══════════════════════════════════════════════════════════════════
 *  NOVIGA — Klaro Cookie Manager — Stile Brand
 * ═══════════════════════════════════════════════════════════════════
 *  Banner sticky in basso (position:fixed), sfondo bianco, palette Noviga.
 *  Layout: titolo + testo + [Preferenze] · [Accetta tutti], X in alto a dx.
 *  !important è necessario perché Klaro inietta CSS inline a runtime —
 *  non è un code smell, è il pattern raccomandato dalla doc Klaro.
 * ═══════════════════════════════════════════════════════════════════ */

/* Variabili locali al namespace Klaro per coerenza brand */
.klaro {
    --k-navy: #3260FF;
    --k-navy-dark: #1e47d0;
    --k-gold: #c8a44a;
    --k-white: #ffffff;
    --k-text: #1a1f3a;
    --k-text-muted: #5a6378;
    --k-border: rgba(50, 96, 255, 0.14);
    --k-shadow: 0 -8px 32px rgba(0, 0, 0, 0.10);
}

/* ─── Font base ───────────────────────────────────────────────────── */

#klaro,
#klaro .cookie-modal,
#klaro .cookie-notice,
#klaro .context-notice {
    font-family: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
    font-weight: 500;
}

/* ═══════════════════════════════════════════════════════════════════
 *  BANNER (cookie-notice)  —  sticky in basso
 * ═══════════════════════════════════════════════════════════════════ */

.klaro .cookie-notice {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 9999 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 24px 32px 22px !important;
    background: var(--k-white) !important;
    color: var(--k-text) !important;
    border-top: 3px solid var(--k-gold) !important;
    border-radius: 0 !important;
    box-shadow: var(--k-shadow) !important;
}

.klaro .cookie-notice .cn-body {
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important; /* per posizionare la X assoluta */
    max-width: 1180px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ─── X di chiusura (in alto a destra, discreta) ─────────────────── */

.klaro .cookie-notice .cn-close {
    position: absolute !important;
    top: -4px !important;
    right: 0 !important;
    background: transparent !important;
    border: none !important;
    padding: 8px !important;
    cursor: pointer !important;
    color: var(--k-text-muted) !important;
    transition: color 0.2s ease !important;
    line-height: 0 !important;
}

.klaro .cookie-notice .cn-close:hover {
    color: var(--k-navy) !important;
}

.klaro .cookie-notice .cn-close svg {
    display: block !important;
    width: 14px !important;
    height: 14px !important;
    stroke: currentColor !important;
}

.klaro .cookie-notice .cn-close svg line {
    stroke: currentColor !important;
    stroke-width: 1.5 !important;
}

/* ─── Titolo ─────────────────────────────────────────────────────── */

.klaro .cookie-notice .cn-body h1,
.klaro .cookie-notice .cn-body h2 {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-weight: 500 !important;
    font-size: 26px !important;
    line-height: 1.2 !important;
    margin: 0 0 10px 0 !important;
    padding-right: 32px !important; /* spazio per la X */
    color: var(--k-navy) !important;
    letter-spacing: -0.01em !important;
}

/* ─── Testo descrittivo ──────────────────────────────────────────── */

.klaro .cookie-notice .cn-body p {
    color: var(--k-text-muted) !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.55 !important;
    margin: 0 0 18px 0 !important;
}

.klaro .cookie-notice .cn-body p a,
.klaro .cookie-notice a {
    color: var(--k-navy) !important;
    font-weight: 600 !important;
    text-decoration: underline !important;
    text-decoration-color: rgba(50, 96, 255, 0.4) !important;
    text-underline-offset: 2px !important;
}

.klaro .cookie-notice a:hover {
    text-decoration-color: var(--k-navy) !important;
}

/* ═══════════════════════════════════════════════════════════════════
 *  BOTTONI BANNER  —  [Preferenze] · [Accetta tutti]
 * ═══════════════════════════════════════════════════════════════════
 *  DOM Klaro post-rimozione Rifiuta:
 *    .cn-ok
 *      ├── .cn-learn-more  (link "Preferenze")
 *      └── .cn-buttons
 *            └── button.cm-btn-success  ("Accetta tutti")
 *
 *  .cn-ok diventa flex container: 2 figli su una riga, justify-end
 *  così "Accetta tutti" si allinea a destra e "Preferenze" accanto.
 * ═══════════════════════════════════════════════════════════════════ */

.klaro .cookie-notice .cn-ok {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 14px !important;
    margin: 0 !important;
}

.klaro .cookie-notice .cn-buttons {
    display: flex !important;
    gap: 12px !important;
    align-items: center !important;
    margin: 0 !important;
}

/* "Accetta tutti" — blu pieno, bottone primario */
.klaro .cookie-notice .cm-btn.cm-btn-success,
.klaro .cookie-notice .cm-btn-accept,
.klaro .cookie-notice .cm-btn-accept-all {
    background: var(--k-navy) !important;
    color: var(--k-white) !important;
    border: 2px solid var(--k-navy) !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-weight: 600 !important;
    font-size: 15px !important;
    padding: 12px 28px !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    line-height: 1.2 !important;
    transition: all 0.2s ease !important;
}

.klaro .cookie-notice .cm-btn.cm-btn-success:hover,
.klaro .cookie-notice .cm-btn-accept:hover,
.klaro .cookie-notice .cm-btn-accept-all:hover {
    background: var(--k-navy-dark) !important;
    border-color: var(--k-navy-dark) !important;
    transform: translateY(-1px) !important;
}

/* "Preferenze" — link testuale discreto */
.klaro .cookie-notice .cn-learn-more {
    color: var(--k-text-muted) !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    text-decoration: underline !important;
    text-decoration-color: rgba(90, 99, 120, 0.35) !important;
    text-underline-offset: 3px !important;
    padding: 10px 4px !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
}

.klaro .cookie-notice .cn-learn-more:hover {
    color: var(--k-navy) !important;
    text-decoration-color: var(--k-navy) !important;
}

/* ═══════════════════════════════════════════════════════════════════
 *  MODAL PREFERENZE (cookie-modal)  —  pannello dettagli
 * ═══════════════════════════════════════════════════════════════════ */

.klaro .cookie-modal .cm-modal {
    background: var(--k-white) !important;
    color: var(--k-text) !important;
    border-radius: 12px !important;
    box-shadow: 0 10px 60px rgba(0, 0, 0, 0.3) !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
}

.klaro .cookie-modal .cm-modal .cm-header {
    border-bottom: 1px solid var(--k-border) !important;
    padding: 24px 28px !important;
}

.klaro .cookie-modal .cm-modal .cm-header h1,
.klaro .cookie-modal .cm-modal .cm-header h2 {
    font-family: 'Cormorant Garamond', serif !important;
    font-weight: 500 !important;
    color: var(--k-navy) !important;
    font-size: 28px !important;
    margin: 0 0 8px 0 !important;
}

.klaro .cookie-modal .cm-modal .cm-header p {
    color: var(--k-text-muted) !important;
    font-size: 15px !important;
    line-height: 1.5 !important;
}

.klaro .cookie-modal .cm-modal .cm-body {
    padding: 24px 28px !important;
}

.klaro .cookie-modal .cm-modal .cm-body ul li {
    background: rgba(50, 96, 255, 0.03) !important;
    border: 1px solid var(--k-border) !important;
    border-radius: 8px !important;
    padding: 16px !important;
    margin-bottom: 12px !important;
}

.klaro .cookie-modal .cm-modal .cm-body ul li .cm-services {
    margin-top: 12px !important;
}

/* Toggle switches */
.klaro .cm-list-input:checked + .cm-list-label .slider {
    background: var(--k-navy) !important;
}

.klaro .cm-list-title {
    color: var(--k-text) !important;
    font-weight: 600 !important;
}

.klaro .cm-list-description {
    color: var(--k-text-muted) !important;
    font-size: 14px !important;
}

/* Footer modal */
.klaro .cookie-modal .cm-modal .cm-footer {
    border-top: 1px solid var(--k-border) !important;
    padding: 20px 28px !important;
    background: rgba(50, 96, 255, 0.02) !important;
}

.klaro .cookie-modal .cm-modal .cm-footer .cm-btn {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-weight: 600 !important;
    padding: 12px 24px !important;
    border-radius: 8px !important;
    font-size: 15px !important;
}

.klaro .cookie-modal .cm-modal .cm-footer .cm-btn.cm-btn-success,
.klaro .cookie-modal .cm-modal .cm-footer .cm-btn-accept-all {
    background: var(--k-gold) !important;
    color: var(--k-white) !important;
    border: 2px solid var(--k-gold) !important;
}

.klaro .cookie-modal .cm-modal .cm-footer .cm-btn.cm-btn-success:hover {
    background: #b8932e !important;
    border-color: #b8932e !important;
}

.klaro .cookie-modal .cm-modal .cm-footer .cm-btn.cm-btn-info {
    background: var(--k-navy) !important;
    color: var(--k-white) !important;
    border: 2px solid var(--k-navy) !important;
}

.klaro .cookie-modal .cm-modal .cm-footer .cm-btn.cm-btn-info:hover {
    background: var(--k-navy-dark) !important;
    border-color: var(--k-navy-dark) !important;
}

/* Branding "Powered by Klaro" nascosto */
.klaro .cookie-modal .cm-powered-by,
.klaro .cookie-notice .cm-powered-by {
    display: none !important;
}

/* ═══════════════════════════════════════════════════════════════════
 *  RESPONSIVE MOBILE
 * ═══════════════════════════════════════════════════════════════════ */

@media (max-width: 640px) {
    .klaro .cookie-notice {
        padding: 20px 18px 18px !important;
    }

    .klaro .cookie-notice .cn-body h1,
    .klaro .cookie-notice .cn-body h2 {
        font-size: 20px !important;
        padding-right: 28px !important;
    }

    .klaro .cookie-notice .cn-body p {
        font-size: 13px !important;
        margin-bottom: 14px !important;
    }

    .klaro .cookie-notice .cn-ok {
        gap: 10px !important;
        justify-content: space-between !important;
    }

    .klaro .cookie-notice .cm-btn.cm-btn-success,
    .klaro .cookie-notice .cm-btn-accept,
    .klaro .cookie-notice .cm-btn-accept-all {
        padding: 11px 22px !important;
        font-size: 14px !important;
    }

    .klaro .cookie-notice .cn-learn-more {
        font-size: 13px !important;
        padding: 10px 0 !important;
    }
}
