/* =====================================================================
 * Fichier : assets/css/pages/impressum.css
 * Projet  : Brennholz Shop24
 * Rôle    : Styles propres à la page Impressum (impressum.php) :
 *           actions du bandeau (vCard, copie), liste de contact,
 *           tuiles des identifiants (SIREN, SIRET, USt-IdNr.), encadré
 *           VSBG, carte récapitulative de la colonne latérale.
 *           Mise en page commune : assets/css/components/legal.css
 * ===================================================================== */

/* Actions du bandeau */
.im-hero-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.4rem; animation: hfk-fade-up .7s .3s var(--hfk-ease) both; }
.im-hero-actions .btn i { transition: transform .35s var(--hfk-ease-bounce); }
.im-hero-actions .btn:hover i { transform: scale(1.2) rotate(-8deg); }
.im-hero-actions .btn.is-done { background: var(--hfk-forest); border-color: var(--hfk-forest); color: #fff; }

/* Carte « fournisseur » */
.im-provider { border-top-color: var(--hfk-flame); }
.im-provider .lx-card-head address { font-size: 1.08rem; }

/* Personnes (représentant, responsable du contenu) */
.im-person { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .6rem; padding: .8rem 1.1rem; background: var(--hfk-cream); border-left: 4px solid var(--hfk-amber); }
.im-person i { color: var(--hfk-flame); }
.im-person span { width: 100%; font-size: .9rem; color: var(--hfk-muted); }

/* Liste de contact */
.im-contact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: 1rem 0 1.2rem; }
.lx-content .im-contact > li {
    display: flex; align-items: center; gap: .8rem; margin: 0; padding: .8rem .9rem; background: #fff; border: 1px solid var(--hfk-border);
    transition: border-color .25s, transform .3s var(--hfk-ease), box-shadow .3s;
}
.lx-content .im-contact > li:hover { border-color: var(--hfk-flame); transform: translateY(-2px); box-shadow: var(--hfk-shadow-sm); }
.im-contact-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 42px; width: 42px; height: 42px; background: var(--hfk-flame-light); color: var(--hfk-flame-dark); transition: background .25s, color .25s; }
.im-contact > li:hover .im-contact-icon { background: var(--hfk-grad-fire); color: #fff; }
.im-contact-text { display: flex; flex-direction: column; flex: 1; min-width: 0; line-height: 1.35; }
.im-contact-text small { font-size: .74rem; letter-spacing: .06em; text-transform: uppercase; color: var(--hfk-muted); }
.im-contact-text strong { overflow-wrap: anywhere; }
.im-hours { padding: .8rem 1rem; background: var(--hfk-cream); border-left: 4px solid var(--hfk-forest); }

/* Bouton copier (icône seule) */
.im-copy {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 34px; width: 34px; height: 34px;
    background: transparent; border: 1px solid var(--hfk-border); color: var(--hfk-muted); transition: background .2s, color .2s, border-color .2s, transform .25s var(--hfk-ease-bounce);
}
.im-copy:hover { background: var(--hfk-charcoal); border-color: var(--hfk-charcoal); color: #fff; transform: scale(1.08); }
.im-copy.is-done { background: var(--hfk-forest); border-color: var(--hfk-forest); color: #fff; }

/* Identifiants */
.im-ids { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1.1rem 0 1.2rem; }
.im-id { position: relative; display: flex; flex-direction: column; gap: .25rem; padding: 1rem 3.4rem 1rem 1.1rem; background: #fff; border: 1px solid var(--hfk-border); border-left: 4px solid var(--hfk-sky); transition: transform .3s var(--hfk-ease), box-shadow .3s; }
.im-id:nth-child(3n+2) { border-left-color: var(--hfk-plum); }
.im-id:nth-child(3n) { border-left-color: var(--hfk-forest); }
.im-id:hover { transform: translateY(-3px); box-shadow: var(--hfk-shadow-sm); }
.im-id-label { font-size: .75rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--hfk-muted); }
.im-id-value { font-family: var(--hfk-font-head); font-size: 1.2rem; letter-spacing: .03em; color: var(--hfk-charcoal); cursor: copy; overflow-wrap: anywhere; transition: color .2s; }
.im-id-value:hover { color: var(--hfk-flame-dark); }
.im-id-value.is-flash { animation: hfk-pulse-soft .9s ease 1; color: var(--hfk-forest-dark); }
.im-id small { font-size: .82rem; line-height: 1.45; color: var(--hfk-muted); }
.im-id .im-copy { position: absolute; top: .8rem; right: .8rem; }
.im-muted { font-size: .9rem; color: var(--hfk-muted); }

/* Règlement des litiges */
.im-vsbg { display: flex; gap: 1rem; align-items: flex-start; margin: 0 0 1rem; padding: 1.1rem 1.2rem; color: #fff; background: var(--hfk-grad-night); border-left: 5px solid var(--hfk-amber); }
.im-vsbg p { margin: 0; color: #EDE4DA; }
.im-vsbg strong { color: #fff; }
.im-vsbg-icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 46px; width: 46px; height: 46px; background: var(--hfk-amber); color: var(--hfk-charcoal); font-size: 1.15rem; animation: hfk-float 4s ease-in-out infinite; }

/* Carte de la colonne latérale */
.im-aside-card { margin: 0; padding: 1rem; font-size: .88rem; }
.im-aside-card:hover { transform: none; }
.im-aside-card .lx-card-icon { flex-basis: 38px; width: 38px; height: 38px; font-size: 1rem; }
.im-aside-card .lx-card-list { grid-template-columns: minmax(0, 1fr); margin-top: .7rem; padding-top: .6rem; }
.im-aside-card .lx-card-list > div { padding: .25rem 0; }

@media (max-width: 1199.98px) {
    .im-contact, .im-ids { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 991.98px) {
    .im-aside-card { display: none; }
}
@media (max-width: 575.98px) {
    .im-hero-actions .btn { flex: 1 1 100%; justify-content: center; }
    .im-vsbg { flex-direction: column; }
}
@media print {
    .im-hero-actions, .im-copy, .im-aside-card { display: none !important; }
    .im-vsbg { background: none !important; color: #000; border: 1px solid #777; }
    .im-vsbg p, .im-vsbg strong { color: #000; }
    .im-vsbg-icon { display: none; }
    .im-id { padding-right: 1rem; border: 1px solid #999; }
}