/* ============================================================
   BLACK SIX — CORREZIONI CHIRURGICHE (Brief operativo)
   Foglio additivo e isolato: nessuna regola globale, solo
   selettori mirati. Caricato dopo gli altri CSS, quindi vince
   dove serve. Tutto reversibile rimuovendo questo file.
   ============================================================ */

/* ===== BLOCCO 1 — QG Sell: testo leggibile nei banner valore =====
   Le pillole "Alto valore / Valore medio alto / Valore medio /
   Piccolo valore" hanno gradienti chiari: forzo il testo near-black.
   Scoped a #qg-sell: non tocca altri badge del sito. */
#qg-sell .qg-tier-badge {
    color: #050505 !important;
    font-weight: 800;
}

/* ===== BLOCCO 2 — Bot Curativi Alleanza: banner verticale in basso =====
   La card è una grid con align-items:center, quindi il pannello
   verticale "Infermieri" resta centrato e troppo alto. Lo allineo
   in basso, così la sua base combacia col listino 20/41/61.
   Non tocca prezzo automatico, codice VIP, bottoni. */
#alliance-offer .alliance-offer-price {
    align-self: end;
}

/* ===== BLOCCO 3 — Sticker Black Six sempre intero (no crop) =====
   Lo sticker non deve mai essere tagliato: object-fit contain +
   altezza naturale, mantenendo proporzioni. Scoped alle sole
   immagini sticker dentro i media-panel + hero home. */
.hero-war-image,
.media-panel img.hero-war-image,
.media-panel img[src*="stefano-bot-system"],
.media-panel img[src*="sticker-home-blacksix"] {
    object-fit: contain !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
}

/* ===== ADDENDUM #1 — Foto "Chi sono" (img_profilo) non tagliata =====
   Su desktop resta quadrata pulita; il taglio nasce su tablet
   (vedi media query sotto). Qui garantisco fit corretto. */
.profile-figure img,
.spotlight-media.profile-figure img {
    object-fit: contain !important;
    max-height: none !important;
    object-position: center top;
}

/* ===== ADDENDUM iPad/tablet — niente crop aggressivo, niente bg fixed =====
   Stesso breakpoint di mobile.css. Su iPad: lo sfondo NON è più
   "fixed" (Safari iOS lo zooma/taglia), e sticker + foto profilo
   non vengono più ritagliati a 330px. */
@media (max-width: 1024px),
       (min-width: 1025px) and (max-width: 1366px) and (pointer: coarse) and (hover: none) {

    /* Sfondo wallpaper: scroll invece di fixed (fix noto Safari iPadOS) */
    body {
        background-attachment: scroll !important;
    }

    /* Sticker Black Six: intero, non tagliato a 330px */
    .media-panel img[src*="stefano-bot-system"],
    .media-panel img[src*="sticker-home-blacksix"],
    .hero-war-image {
        max-height: none !important;
        object-fit: contain !important;
    }

    /* Foto profilo post-apocalittica: intera, viso e busto visibili */
    .profile-figure img,
    .spotlight-media.profile-figure img {
        max-height: none !important;
        object-fit: contain !important;
        object-position: center top !important;
    }
}

/* ============================================================
   FIX BOX CONSENSO (clausola condizioni ufficiali)
   Problema: regole larghe tipo ".brief-form input { width:100% }"
   gonfiavano la checkbox (non e' dentro .modal-field, quindi non
   riceve l'eccezione checkbox) -> box enorme + testo verticale.
   Qui forzo: checkbox piccola fissa a sinistra, testo che va a
   capo normalmente. Vale per modale pagamento e per i 3 form.
   ============================================================ */
.bs-consent-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 11px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    writing-mode: horizontal-tb !important;
    box-sizing: border-box;
}
.bs-consent-row input[type="checkbox"] {
    flex: 0 0 20px !important;
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    max-width: 20px !important;
    min-height: 20px !important;
    max-height: 20px !important;
    margin: 2px 0 0 0 !important;
    padding: 0 !important;
    border-radius: 4px !important;
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
    accent-color: var(--gold-soft);
}
.bs-consent-row span {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
    writing-mode: horizontal-tb !important;
    text-align: left !important;
    font-size: 0.82rem;
    line-height: 1.55;
}

/* ============================================================
   BADGE UFFICIALE BLACK SIX (sigillo di fiducia)
   Proporzioni quadrate, object-fit:contain, mai deformato.
   Inserito SOLO in punti decorativi/fiducia (footer, canali
   ufficiali, clausola anti-truffa). Lo sticker grande resta
   dove spiega i servizi.
   ============================================================ */
.official-badge {
    width: clamp(64px, 8vw, 100px);
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: contain !important;
    display: block;
    flex: 0 0 auto;
    max-width: 100%;
    filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.45));
}
.official-badge--sm { width: clamp(46px, 12vw, 60px); }
.official-badge-wrap {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
}
.footer-brand .official-badge { margin: 0 0 10px; }
.footer-official-note {
    display: block;
    margin-top: 8px;
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.55);
    line-height: 1.5;
    max-width: 340px;
}
@media (max-width: 768px) {
    .official-badge { width: clamp(56px, 16vw, 72px); }
    .official-badge--sm { width: 52px; }
}

/* ===== Popup eventi reali (acquisti/feedback confermati admin) ===== */
#bs-realpopup-host {
    position: fixed; left: 18px; bottom: 18px; z-index: 9000;
    display: flex; flex-direction: column; gap: 10px; max-width: 340px; pointer-events: none;
}
.bs-realpopup {
    pointer-events: auto; display: flex; gap: 12px; align-items: flex-start;
    padding: 12px 30px 12px 14px; border-radius: 16px; border: 1px solid rgba(196,154,63,0.45);
    background: linear-gradient(160deg, rgba(20,24,32,0.97), rgba(10,12,18,0.97));
    box-shadow: 0 14px 40px rgba(0,0,0,0.5);
    transform: translateY(14px); opacity: 0; transition: transform .3s ease, opacity .3s ease; position: relative;
}
.bs-realpopup.is-in { transform: translateY(0); opacity: 1; }
.bs-rp-badge { width: 38px; height: 38px; object-fit: contain; flex: 0 0 38px; }
.bs-rp-body { flex: 1 1 auto; min-width: 0; }
.bs-rp-label { font-size: 0.7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #f0c970; }
.bs-rp-name { font-weight: 800; font-size: 0.9rem; color: #fff; margin-top: 1px; }
.bs-rp-text { font-size: 0.82rem; color: rgba(255,255,255,0.8); line-height: 1.45; margin-top: 3px; word-break: break-word; }
.bs-rp-close { position: absolute; top: 6px; right: 9px; background: none; border: 0; color: rgba(255,255,255,0.5); font-size: 1.2rem; cursor: pointer; line-height: 1; }
.bs-rp-close:hover { color: #fff; }
@media (max-width: 600px) { #bs-realpopup-host { left: 10px; right: 10px; bottom: 10px; max-width: none; } }

.nav-links .bs-lang-fab {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 2px !important;
}
.nav-links .bs-lang-fab::after {
    content: attr(data-lang-label);
    font-size: 0.48rem;
    font-weight: 700;
    color: rgba(244, 212, 140, 0.60);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
    pointer-events: none;
    line-height: 1;
}
/* Il dropdown non deve essere tagliato dal clip del nav container */
.site-nav,
.nav-wrap {
    overflow: visible !important;
}
/* Su mobile (menu hamburger): stessa etichetta, allineata a sinistra come gli altri item */
@media (max-width: 1024px) {
    .nav-links .bs-lang-fab {
        flex-direction: row !important;
        align-items: center !important;
        gap: 8px !important;
    }
    .nav-links .bs-lang-fab::after {
        font-size: 0.75rem;
        letter-spacing: 0.05em;
        color: rgba(244, 212, 140, 0.75);
    }
}

/* ===== Modal close button — forza posizione top-right su tutti i modal ===== */
/* z-index: 100 — sovrasta cover immagine (z:0) e contenuto (z:1) del modale account */
.modal-close {
    position: absolute !important;
    top: 18px !important;
    right: 18px !important;
    left: auto !important;
    z-index: 100 !important;
    pointer-events: auto !important;
}

/* ===== BlackSix AI Assistant (assistant.js) — fix posizionamento ===== */
/* Senza questi stili il launcher e il panel si disegnano inline a piena larghezza */
.bsa-launcher {
    position: fixed !important;
    bottom: 90px !important;
    right: 20px !important;
    z-index: 160 !important;
    display: inline-flex !important;
    align-items: center;
    gap: 10px;
    padding: 8px 14px 8px 8px;
    border: 1px solid rgba(244,212,140,.22);
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(12,18,27,.96), rgba(7,10,16,.96));
    box-shadow: 0 8px 24px rgba(0,0,0,.4);
    cursor: pointer;
    color: #f7f2e8;
    font-size: 0.82rem;
}
.bsa-launcher-orb {
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
    display: block;
}
.bsa-launcher-orb img {
    width: 36px !important;
    height: 36px !important;
    max-width: 36px !important;
    max-height: 36px !important;
    object-fit: cover !important;
    display: block !important;
}
.bsa-panel {
    position: fixed !important;
    bottom: 152px !important;
    right: 20px !important;
    z-index: 161 !important;
    width: 340px !important;
    max-height: 520px !important;
    display: none !important;
    flex-direction: column;
    border: 1px solid rgba(244,212,140,.22);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(12,18,27,.97), rgba(7,10,16,.97));
    box-shadow: 0 16px 48px rgba(0,0,0,.5);
    overflow: hidden;
    color: #f7f2e8;
}
.bsa-panel.is-open {
    display: flex !important;
}
.bsa-head-avatar {
    width: 36px !important;
    height: 36px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}
.bsa-head-avatar img {
    width: 36px !important;
    height: 36px !important;
    max-width: 36px !important;
    max-height: 36px !important;
    object-fit: cover !important;
    display: block !important;
}

/* ===== BlackSix AI Launcher — NASCOSTO (rimosso su richiesta) ===== */
/* IN FONDO AL FILE: vince su .bsa-launcher { display:inline-flex } sopra */
#bsa-launcher, .bsa-launcher,
#bsa-panel, .bsa-panel,
.bsa-panel.is-open {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
    opacity: 0 !important;
}

/* ===== UI-QG-1 — Collaborazione Black Six × Mr. Freeman =====
   Sezione immagine premium inserita in area QG Sell,
   dopo il testo introduttivo e prima della griglia card.
   Classi isolate: .bs-qg-collab-* — zero conflitti con esistente.
   Rollback: rimuovere questo blocco + <section class="bs-qg-collab-card"> da index.html */
.bs-qg-collab-card {
    max-width: 1000px;
    margin: 0 auto 36px;
    padding: 0;
}
.bs-qg-collab-figure {
    margin: 0;
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(184, 140, 0, 0.4);
    box-shadow:
        0 6px 40px rgba(0, 0, 0, 0.65),
        0 0 0 1px rgba(212, 175, 55, 0.10),
        inset 0 0 0 1px rgba(255, 215, 0, 0.06);
    background: #080b12;
}
.bs-qg-collab-figure picture,
.bs-qg-collab-figure img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    /* Nessun deformation: il rapporto immagine è preservato dal browser */
}
.bs-qg-collab-caption {
    padding: 14px 22px 15px;
    font-size: 0.82rem;
    color: #9ca3af;
    line-height: 1.6;
    text-align: center;
    background: rgba(244, 212, 140, 0.04);
    border-top: 1px solid rgba(184, 140, 0, 0.20);
    letter-spacing: 0.01em;
}
@media (max-width: 768px) {
    .bs-qg-collab-card {
        margin-left: 0;
        margin-right: 0;
        margin-bottom: 28px;
        border-radius: 0;
    }
    .bs-qg-collab-figure {
        border-radius: 12px;
    }
    .bs-qg-collab-caption {
        font-size: 0.77rem;
        padding: 11px 14px 12px;
    }
}
@media (max-width: 480px) {
    .bs-qg-collab-caption {
        font-size: 0.74rem;
        padding: 10px 12px;
    }
}

/* ===== MF1 — Login: centratura ottica badge (BLOCCO 4B) =====
   .auth-badge-wrap ha width:148px fissi → in flex-column (align-items:stretch
   default) siede al bordo sinistro mentre i testi usano text-align:center.
   margin auto sull'asse orizzontale riporta il badge al centro visivo della card.
   Nessuna modifica a dimensioni, animazioni, colori, card, testi. */
.auth-badge-wrap {
    margin-left: auto;
    margin-right: auto;
}

/* Login: un solo asse centrale per badge, titoli, separatore e Google. */
.auth-gate-card {
    align-items: center;
    text-align: center;
}
.auth-main-title,
.auth-system-id,
.auth-gold-sep,
.auth-google-action,
.auth-security-note,
#auth-feedback {
    width: 100%;
}
.auth-google-action {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0 0 12px;
}
#btn-google-login {
    width: min(100%, 354px);
    margin: 0 auto;
}

/* ===== MF3 — Chat widget: modalità compatta su touch (BLOCCO 4B) =====
   Su pointer:coarse (iPad, smartphone) il launcher full-pill (~160×58px)
   copre card, prezzi e pulsanti durante lo scroll.
   Nascondere .bs-launcher-copy riduce il widget alla sola orb (~58×58px).
   Grafica orb, colori, avatar, posizione e z-index invariati.
   Desktop (pointer:fine) completamente invariato. */
@media (pointer: coarse) {
    .bs-launcher-copy {
        display: none !important;
    }
    .chat-launcher {
        padding: 8px !important;
        gap: 0 !important;
        min-width: 58px !important;
    }
}
