/* =============================================================================
   Eat's For Me — nouveaux écrans du domaine annonceur
   (raccourcis de l'espace annonceur, page de paiement, TWINT, publicités, pack sur mesure)
   Composants du design system (gi-design-system.css, gi-users.css, gi-advertiser.css) réutilisés ;
   seules les classes efm-* sont définies ici.
   ============================================================================= */

/* Les boutons du design system sont en display:inline-flex : l'attribut hidden doit primer */
.gi-btn[hidden], .efm-pay [hidden], .efm-ads [hidden], .efm-contact [hidden] { display: none !important; }

/* ─── Espace annonceur : raccourcis ─────────────────────────────────────────── */
.efm-shortcuts {
  display: grid;
  gap: var(--gi-space-3);
  padding-top: var(--gi-space-4);
}
@media (min-width: 640px) {
  .efm-shortcuts { grid-template-columns: 1fr 1fr; }
}
a.efm-shortcut,
a.efm-shortcut:visited {
  display: flex;
  align-items: center;
  gap: var(--gi-space-3);
  padding: var(--gi-space-3) var(--gi-space-4);
  background: var(--gi-white);
  border: 1px solid var(--gi-grey-200);
  border-radius: var(--gi-radius-lg);
  box-shadow: var(--gi-shadow-sm);
  color: var(--gi-dark);
  text-decoration: none;
  transition: var(--gi-transition-fast);
}
a.efm-shortcut:hover,
a.efm-shortcut:focus-visible {
  border-color: var(--gi-cyan);
  background: var(--gi-cyan-10);
  color: var(--gi-dark);
}
.efm-shortcut__icon {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: var(--gi-radius-md);
  background: var(--gi-cyan-10);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
}
.efm-shortcut__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.efm-shortcut__title { font-size: var(--gi-font-size-sm); font-weight: 700; color: var(--gi-dark); }
.efm-shortcut__text { font-size: var(--gi-font-size-xs); color: var(--gi-grey-500); line-height: 1.4; }
.efm-shortcut__arrow { font-size: 1.5rem; line-height: 1; font-weight: 700; color: var(--gi-cyan-dark); }

/* Campagne expirée (nouveau statut) et campagne tout juste payée */
.gi-campaign-card--expired { border-left: 3px solid var(--gi-grey-300); opacity: .75; }
.gi-campaign-card.is-new { box-shadow: 0 0 0 3px var(--gi-cyan-20), var(--gi-shadow-md); }
.efm-card-actions { display: inline-flex; gap: var(--gi-space-2); flex-wrap: wrap; justify-content: flex-end; }
a.gi-btn.efm-pay-link, a.gi-btn.efm-pay-link:visited { color: var(--gi-dark); }

/* ─── Retour de paiement (espace annonceur / publicités) ───────────────────── */
.efm-paid-box {
  margin-top: var(--gi-space-4);
  padding: var(--gi-space-6) var(--gi-space-5);
  background: var(--gi-white);
  border: 2px solid var(--gi-cyan-20);
  border-radius: var(--gi-radius-lg);
  box-shadow: var(--gi-shadow-md);
  text-align: center;
}
.efm-paid-box__img { display: block; width: 140px; height: auto; margin: 0 auto var(--gi-space-3); }
.efm-paid-box__title { font-size: var(--gi-font-size-xl); font-weight: 700; color: var(--gi-dark); margin: 0 0 var(--gi-space-2); }
.efm-paid-box__text { font-size: var(--gi-font-size-sm); color: var(--gi-grey-500); line-height: 1.5; margin: var(--gi-space-2) 0 var(--gi-space-4); }
.efm-paid-box__text:last-child { margin-bottom: 0; }
.efm-paid-box__link {
  background: var(--gi-grey-100);
  border-radius: var(--gi-radius-md);
  padding: var(--gi-space-3);
  margin-bottom: var(--gi-space-3);
  word-break: break-all;
  font-size: 13px;
  font-weight: 700;
  color: var(--gi-cyan-dark);
}
.efm-paid-box__actions { display: flex; gap: var(--gi-space-2); justify-content: center; flex-wrap: wrap; }

/* ─── Cartes génériques ─────────────────────────────────────────────────────── */
.efm-card {
  background: var(--gi-white);
  border-radius: var(--gi-radius-lg);
  box-shadow: var(--gi-shadow-md);
  padding: var(--gi-space-5) var(--gi-space-4);
}
.efm-card + .efm-card { margin-top: var(--gi-space-4); }
.efm-card__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gi-space-2);
  margin: 0 0 var(--gi-space-3);
  font-size: var(--gi-font-size-lg);
  font-weight: 700;
  color: var(--gi-dark);
}
.efm-card__meta { font-size: var(--gi-font-size-xs); font-weight: 600; color: var(--gi-grey-500); white-space: nowrap; }
.efm-card__text { font-size: var(--gi-font-size-sm); color: var(--gi-grey-500); line-height: 1.6; margin: 0 0 var(--gi-space-3); }
.efm-card .gi-order-recap { margin-bottom: 0; }
.efm-card .gi-recap-row { gap: var(--gi-space-3); }
.efm-card .gi-recap-row span { flex-shrink: 0; }
.efm-card .gi-recap-row strong { text-align: right; min-width: 0; overflow-wrap: anywhere; }

.efm-section { padding: var(--gi-space-4) var(--gi-space-4) 0; }
.efm-section-title { font-size: var(--gi-font-size-lg); font-weight: 700; color: var(--gi-dark); margin: 0 0 var(--gi-space-4); }

.efm-notice {
  margin: var(--gi-space-4) var(--gi-space-4) 0;
  padding: var(--gi-space-3) var(--gi-space-4);
  border-left: 3px solid var(--gi-cyan-dark);
  border-radius: var(--gi-radius-md);
  background: var(--gi-cyan-10);
  font-size: var(--gi-font-size-sm);
  font-weight: 600;
  line-height: 1.5;
  color: var(--gi-dark);
}
.efm-notice--warning { background: rgba(243, 156, 18, .10); border-left-color: var(--gi-warning); color: #8a5a00; }
.efm-notice--error { background: rgba(231, 76, 60, .08); border-left-color: var(--gi-danger); color: var(--gi-danger); }
.efm-notice--success { background: rgba(46, 204, 113, .10); border-left-color: var(--gi-success); color: #1e8449; }
.efm-notice a { color: inherit; text-decoration: underline; }

/* Lien « secondaire » (ancres stylées comme du texte) */
a.efm-link, a.efm-link:visited { color: var(--gi-grey-500); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
a.efm-link:hover { color: var(--gi-cyan-dark); }
a.gi-btn--primary, a.gi-btn--primary:visited, a.gi-btn--primary:hover { color: var(--gi-dark); }
a.gi-btn--outline, a.gi-btn--outline:visited { color: var(--gi-cyan-dark); }
a.gi-btn--dark, a.gi-btn--dark:visited, a.gi-btn--dark:hover { color: var(--gi-white); }
a.gi-btn--ghost, a.gi-btn--ghost:visited { color: var(--gi-grey-500); }

/* ─── Page de paiement ──────────────────────────────────────────────────────── */
.efm-pay { max-width: 560px; margin: 0 auto; padding-bottom: var(--gi-space-8); }
.efm-pay .gi-stepper { padding-bottom: 0; }
.efm-pay .gi-step.is-done .gi-step__dot { font-size: 0; }
.efm-pay .gi-step.is-done .gi-step__dot::before { font-size: var(--gi-font-size-sm); }
.efm-pay__lock {
  width: 44px;
  height: 44px;
  border-radius: var(--gi-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  background: linear-gradient(135deg, var(--gi-cyan), var(--gi-cyan-dark));
  box-shadow: 0 0 0 2px rgba(87, 225, 255, .25);
  flex-shrink: 0;
}
.efm-billing { font-size: var(--gi-font-size-sm); line-height: 1.65; color: var(--gi-dark); }
.efm-billing__muted { color: var(--gi-grey-500); }
.efm-billing__hint { margin-top: var(--gi-space-2); font-size: var(--gi-font-size-xs); color: var(--gi-grey-500); }

.efm-pay-methods .gi-visibility-option { align-items: center; }
.efm-pay-method__logo {
  width: 48px;
  height: 36px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--gi-radius-sm);
  background: var(--gi-white);
  border: 1px solid var(--gi-grey-200);
  font-size: 1.3rem;
  overflow: hidden;
}
.efm-pay-method__logo img { display: block; max-width: 40px; max-height: 26px; width: auto; height: auto; }
.efm-pay-method__check {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-left: auto;
  border-radius: 50%;
  border: 2px solid var(--gi-grey-300);
  transition: var(--gi-transition-fast);
}
.gi-visibility-option.is-selected .efm-pay-method__check {
  border-color: var(--gi-cyan-dark);
  background: radial-gradient(circle, var(--gi-cyan-dark) 0 4px, transparent 5px);
}
.efm-pay__cta { margin-top: var(--gi-space-5); }
.efm-pay__secure { margin: var(--gi-space-3) 0 0; text-align: center; font-size: var(--gi-font-size-xs); color: var(--gi-grey-500); }
.efm-pay__back { margin-top: var(--gi-space-4); text-align: center; font-size: var(--gi-font-size-sm); }
.efm-dev {
  margin-top: var(--gi-space-5);
  padding: var(--gi-space-3);
  border: 1px dashed var(--gi-warning);
  border-radius: var(--gi-radius-md);
  background: rgba(243, 156, 18, .06);
  text-align: center;
}
.efm-dev p { margin: 0 0 var(--gi-space-2); font-size: var(--gi-font-size-xs); color: #8a5a00; font-weight: 600; }

/* Réussite */
.efm-pay-success { text-align: center; }
.efm-pay-success__img { display: block; width: 160px; height: auto; margin: 0 auto var(--gi-space-3); }
.efm-pay-success__title { font-size: var(--gi-font-size-2xl); font-weight: 700; color: var(--gi-dark); margin: 0 0 var(--gi-space-2); line-height: 1.2; }
.efm-pay-success__meta { font-size: var(--gi-font-size-sm); color: var(--gi-grey-500); margin: 0 0 var(--gi-space-5); }
.efm-pay-success .efm-paid-box { margin-top: 0; box-shadow: none; background: var(--gi-grey-100); border-color: transparent; }
.efm-actions { display: flex; flex-direction: column; gap: var(--gi-space-3); margin-top: var(--gi-space-5); }

/* État (commande expirée, remboursée…) */
.efm-state-card { text-align: center; }
.efm-state-card__icon { font-size: 2.5rem; margin-bottom: var(--gi-space-3); }
.efm-state-card__title { font-size: var(--gi-font-size-xl); font-weight: 700; color: var(--gi-dark); margin: 0 0 var(--gi-space-2); }
.efm-state-card__text { font-size: var(--gi-font-size-sm); color: var(--gi-grey-500); line-height: 1.6; margin: 0; }

/* ─── TWINT ─────────────────────────────────────────────────────────────────── */
.efm-twint { text-align: center; }
.efm-twint__head { display: flex; align-items: center; justify-content: space-between; gap: var(--gi-space-3); margin-bottom: var(--gi-space-4); }
.efm-twint img.efm-twint__logo { display: block; height: 30px; width: auto; }
.efm-twint__amount { font-size: var(--gi-font-size-2xl); font-weight: 700; color: var(--gi-dark); line-height: 1.1; }
.efm-twint__shop { margin: 4px 0 var(--gi-space-4); font-size: var(--gi-font-size-xs); font-weight: 600; color: var(--gi-grey-500); text-transform: uppercase; letter-spacing: .06em; }
.efm-twint__qr {
  display: inline-block;
  padding: var(--gi-space-3);
  background: #FFFFFF;
  border: 1px solid var(--gi-grey-200);
  border-radius: var(--gi-radius-lg);
  line-height: 0;
}
.efm-twint__qr svg { display: block; width: 220px; height: 220px; }
.efm-twint__hint { max-width: 360px; margin: var(--gi-space-3) auto 0; font-size: var(--gi-font-size-sm); line-height: 1.5; color: var(--gi-grey-700); }
.efm-twint__hint--small { font-size: var(--gi-font-size-xs); color: var(--gi-grey-500); }
.efm-twint__or {
  display: flex;
  align-items: center;
  gap: var(--gi-space-3);
  margin: var(--gi-space-4) 0 var(--gi-space-3);
  color: var(--gi-grey-300);
  font-size: var(--gi-font-size-sm);
}
.efm-twint__or::before, .efm-twint__or::after { content: ''; flex: 1; height: 1px; background: var(--gi-grey-200); }
.efm-twint__label { font-size: var(--gi-font-size-sm); font-weight: 600; color: var(--gi-dark); margin: 0 0 var(--gi-space-2); }
.efm-twint__token { display: flex; align-items: center; justify-content: center; gap: var(--gi-space-2); flex-wrap: wrap; }
input.efm-twint__token-value {
  width: 9ch;
  min-width: 0;
  padding: var(--gi-space-2) var(--gi-space-3);
  border-radius: var(--gi-radius-md);
  background: var(--gi-grey-100);
  font-family: var(--gi-font);
  font-size: 1.75rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-align: center;
  color: var(--gi-dark);
  font-variant-numeric: tabular-nums;
}
.efm-twint__banks { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gi-space-2); margin: var(--gi-space-2) 0 var(--gi-space-3); }
a.efm-twint__bank {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: var(--gi-space-2);
  background: #FFFFFF;
  border: 1px solid var(--gi-grey-200);
  border-radius: var(--gi-radius-md);
  color: var(--gi-dark);
  font-size: var(--gi-font-size-xs);
  font-weight: 700;
  text-decoration: none;
}
a.efm-twint__bank:hover { border-color: var(--gi-cyan); }
a.efm-twint__bank img { display: block; max-width: 100%; max-height: 60px; width: auto; height: auto; }
.efm-twint__select { margin-top: var(--gi-space-2); }
.efm-twint__select .gi-select,
.efm-form select.gi-select {
  padding-right: 40px;
  background-color: var(--gi-white);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238892A4' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 14px center;
  border-radius: var(--gi-radius-md) !important;
  font-weight: 600;
  color: var(--gi-dark);
  cursor: pointer;
}
.efm-twint__select .gi-select { background-color: var(--gi-grey-100); }
.efm-twint__status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--gi-space-2);
  margin-top: var(--gi-space-5);
  padding: var(--gi-space-3);
  border-radius: var(--gi-radius-md);
  background: var(--gi-grey-100);
  font-size: var(--gi-font-size-sm);
  font-weight: 600;
  color: var(--gi-dark);
}
.efm-twint__status.is-error { background: rgba(231, 76, 60, .08); color: var(--gi-danger); }
.efm-twint__status.is-success { background: rgba(46, 204, 113, .12); color: #1e8449; }
.efm-twint__actions { display: flex; flex-direction: column; gap: var(--gi-space-2); margin-top: var(--gi-space-4); }
.efm-twint [hidden] { display: none !important; }

/* ─── Publicités ────────────────────────────────────────────────────────────── */
.efm-ads { max-width: 980px; margin: 0 auto; padding-bottom: var(--gi-space-8); }
.efm-ad-badges { margin-top: var(--gi-space-1); }
.efm-ads__grid { display: grid; gap: var(--gi-space-4); }
@media (min-width: 960px) {
  .efm-ads__grid { grid-template-columns: minmax(0, 1fr) 300px; align-items: start; }
  .efm-ads__aside { position: sticky; top: var(--gi-space-4); }
}
.efm-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--gi-space-2); margin: var(--gi-space-4) 0; }
.efm-fact { padding: var(--gi-space-3) var(--gi-space-2); border-radius: var(--gi-radius-md); background: var(--gi-grey-100); text-align: center; }
.efm-fact__value { font-size: var(--gi-font-size-lg); font-weight: 700; color: var(--gi-dark); line-height: 1.2; }
.efm-fact__label { margin-top: 2px; font-size: 11px; font-weight: 600; color: var(--gi-grey-500); text-transform: uppercase; letter-spacing: .05em; }
.efm-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gi-space-3); counter-reset: efm-step; }
.efm-steps li { display: flex; align-items: flex-start; gap: var(--gi-space-3); font-size: var(--gi-font-size-sm); color: var(--gi-dark); line-height: 1.5; }
.efm-steps li::before {
  counter-increment: efm-step;
  content: counter(efm-step);
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--gi-cyan);
  color: var(--gi-dark);
  font-size: 12px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}
.efm-rule { display: flex; gap: var(--gi-space-2); align-items: flex-start; margin-top: var(--gi-space-4); padding: var(--gi-space-3); border-radius: var(--gi-radius-md); background: rgba(243, 156, 18, .08); font-size: var(--gi-font-size-xs); color: #8a5a00; line-height: 1.5; font-weight: 600; }
.efm-scan { margin-top: var(--gi-space-4); }

/* Formulaire */
.efm-form .gi-form-group { margin-bottom: var(--gi-space-4); }
.efm-form .gi-label .efm-optional { font-weight: 500; color: var(--gi-grey-500); }
.efm-hint { font-size: var(--gi-font-size-xs); color: var(--gi-grey-500); line-height: 1.45; }
.efm-counter { font-size: var(--gi-font-size-xs); color: var(--gi-grey-300); text-align: right; }
.efm-form .gi-input, .efm-form .gi-textarea, .efm-form .gi-select { background: var(--gi-white); box-shadow: inset 0 0 0 1px var(--gi-grey-200); border-radius: var(--gi-radius-md) !important; }
.efm-form .gi-input:focus, .efm-form .gi-textarea:focus, .efm-form .gi-select:focus { box-shadow: inset 0 0 0 2px var(--gi-cyan); }
.efm-upload {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--gi-space-3);
  padding: var(--gi-space-4);
  border: 2px dashed var(--gi-grey-300);
  border-radius: var(--gi-radius-lg);
  background: var(--gi-grey-100);
  cursor: pointer;
  transition: var(--gi-transition-fast);
}
.efm-upload:hover, .efm-upload.is-dragover { border-color: var(--gi-cyan); background: var(--gi-cyan-10); }
.efm-upload input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.efm-upload__thumb {
  flex-shrink: 0;
  width: 54px;
  height: 72px;
  border-radius: var(--gi-radius-sm);
  background: var(--gi-white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  overflow: hidden;
}
.efm-upload__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.efm-upload__body { flex: 1; min-width: 0; text-align: left; }
.efm-upload__title, .efm-upload__text { display: block; }
.efm-upload__title { font-size: var(--gi-font-size-sm); font-weight: 700; color: var(--gi-dark); }
.efm-upload__text { font-size: var(--gi-font-size-xs); color: var(--gi-grey-500); line-height: 1.45; margin-top: 2px; }
.efm-form__actions { display: flex; flex-direction: column; gap: var(--gi-space-2); margin-top: var(--gi-space-4); }
.efm-form__note { margin-top: var(--gi-space-2); text-align: center; font-size: var(--gi-font-size-xs); color: var(--gi-grey-500); }

/* Aperçu (reprend la carte .gi-offer-card-v2 du carrousel d'accueil) */
.efm-ad-preview__label { font-size: var(--gi-font-size-xs); font-weight: 700; color: var(--gi-grey-500); text-transform: uppercase; letter-spacing: .06em; margin-bottom: var(--gi-space-2); text-align: center; }
.efm-ad-preview { width: 100%; max-width: 280px; margin: 0 auto; }
.efm-ad-preview .gi-offer-card-v2 { position: relative; border-radius: 20px; overflow: hidden; box-shadow: 0 6px 24px rgba(0,0,0,.14); aspect-ratio: 3 / 4; background: #dbeafe; cursor: default; }
.efm-ad-preview .gi-offer-card-v2__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: 0; display: block; }
.efm-ad-preview .gi-offer-card-v2__bg-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; gap: 8px; align-items: center; justify-content: center; font-size: 56px; background: linear-gradient(135deg, #bae6fd 0%, #0ea5e9 100%); z-index: 0; }
.efm-ad-preview .gi-offer-card-v2__bg-placeholder small { font-size: 12px; font-weight: 600; color: rgba(255,255,255,.9); }
.efm-ad-preview .gi-offer-card-v2__overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(to bottom, rgba(0,0,0,.35) 0%, transparent 35%), linear-gradient(to top, rgba(0,0,0,.7) 0%, transparent 45%); }
.efm-ad-preview .gi-offer-card-v2__time-left { position: absolute; top: 14px; right: 14px; z-index: 3; padding: 5px 10px; border-radius: 999px; background: rgba(0,0,0,.55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); color: #fff; font-size: 11px; font-weight: 600; line-height: 1; white-space: nowrap; box-shadow: 0 2px 8px rgba(0,0,0,.18); }
.efm-ad-preview .gi-offer-card-v2__header { position: absolute; top: 14px; left: 14px; right: 14px; padding-right: 90px; display: flex; align-items: center; gap: 10px; z-index: 2; box-sizing: border-box; }
.efm-ad-preview .gi-offer-card-v2__partner-logo { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; border: 2.5px solid rgba(255,255,255,.95); background: #fff; flex-shrink: 0; display: block; }
.efm-ad-preview .gi-offer-card-v2__partner-logo-ph { width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.92); display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; border: 2.5px solid rgba(255,255,255,.6); }
.efm-ad-preview .gi-offer-card-v2__partner-name { font-weight: 700; font-size: 14px; color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,.5); line-height: 1.2; }
.efm-ad-preview .gi-offer-card-v2__partner-city { font-size: 12px; color: rgba(255,255,255,.88); text-shadow: 0 1px 3px rgba(0,0,0,.4); margin-top: 1px; }
.efm-ad-preview .gi-offer-card-v2__footer { position: absolute; bottom: 0; left: 0; right: 0; padding: 40px 14px 16px; z-index: 2; display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; }
.efm-ad-preview .gi-offer-card-v2__item-name { font-size: 20px; font-weight: 800; color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,.5); line-height: 1.15; flex: 1; min-width: 0; overflow-wrap: anywhere; }
.efm-ad-preview .gi-offer-card-v2__ad-label { display: block; font-size: 9px; font-weight: 500; color: rgba(255,255,255,.78); text-transform: uppercase; letter-spacing: .06em; text-shadow: 0 1px 2px rgba(0,0,0,.4); line-height: 1.2; margin-bottom: 4px; }
.efm-ad-preview .gi-offer-card-v2__advertiser { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0; max-width: 45%; }
.efm-ad-preview .gi-offer-card-v2__adv-label { font-size: 9px; color: rgba(255,255,255,.78); text-transform: uppercase; letter-spacing: .06em; text-shadow: 0 1px 2px rgba(0,0,0,.4); }
.efm-ad-preview .gi-offer-card-v2__adv-chip { display: flex; align-items: center; gap: 6px; max-width: 100%; background: rgba(255,255,255,.2); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.3); border-radius: 999px; padding: 4px 10px 4px 4px; }
.efm-ad-preview .gi-offer-card-v2__adv-logo { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; border: 1.5px solid rgba(255,255,255,.9); background: #fff; display: block; flex-shrink: 0; }
.efm-ad-preview .gi-offer-card-v2__adv-logo-ph { width: 28px; height: 28px; border-radius: 50%; background: rgba(255,255,255,.9); display: flex; align-items: center; justify-content: center; font-size: 13px; flex-shrink: 0; }
.efm-ad-preview .gi-offer-card-v2__adv-name { font-size: 12px; font-weight: 700; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.efm-ad-preview__offer { margin-top: var(--gi-space-3); text-align: center; font-size: var(--gi-font-size-sm); color: var(--gi-dark); font-weight: 600; }
.efm-ad-preview__offer span { color: var(--gi-grey-500); font-weight: 500; }

/* Liste « Mes publicités » (même carte que « Mes campagnes ») */
.efm-ad-card .gi-campaign-card__icon img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: inherit; }
.efm-ad-card .gi-campaign-card__info { min-width: 0; }
.efm-ad-card .gi-campaign-card__partner { overflow-wrap: anywhere; }
.gi-campaign-card--draft, .gi-campaign-card--pending_payment { border-left: 3px solid var(--gi-warning); }
.gi-campaign-card--pending_review { border-left: 3px solid var(--gi-cyan-dark); }
.gi-campaign-card--rejected { border-left: 3px solid var(--gi-danger); }
.efm-ad-card .gi-campaign-card__footer { flex-wrap: wrap; gap: var(--gi-space-2); }
.efm-ad-reason { margin-top: var(--gi-space-2); padding: var(--gi-space-2) var(--gi-space-3); border-radius: var(--gi-radius-md); background: rgba(231, 76, 60, .08); font-size: var(--gi-font-size-xs); color: var(--gi-danger); font-weight: 600; line-height: 1.5; }
.efm-ad-dates { margin-top: var(--gi-space-1); font-size: var(--gi-font-size-xs); color: var(--gi-grey-500); }

/* ─── Pack sur mesure ───────────────────────────────────────────────────────── */
.efm-contact { max-width: 620px; margin: 0 auto; padding-bottom: var(--gi-space-8); }
.efm-contact__hero { text-align: center; padding: var(--gi-space-6) var(--gi-space-4) var(--gi-space-2); }
.efm-contact__emoji { font-size: 2.6rem; line-height: 1; margin-bottom: var(--gi-space-3); }
.efm-contact__title { font-size: var(--gi-font-size-2xl); font-weight: 700; color: var(--gi-dark); margin: 0 0 var(--gi-space-2); line-height: 1.2; }
.efm-contact__intro { font-size: var(--gi-font-size-md); color: var(--gi-grey-500); line-height: 1.6; margin: 0 auto; max-width: 480px; }
.efm-perks { display: grid; gap: var(--gi-space-2); margin: var(--gi-space-4) 0 0; padding: 0; list-style: none; }
.efm-perks li { display: flex; gap: var(--gi-space-2); align-items: flex-start; font-size: var(--gi-font-size-sm); color: var(--gi-dark); line-height: 1.5; }
.efm-perks li span { flex-shrink: 0; }
.efm-row { display: grid; gap: 0 var(--gi-space-3); }
@media (min-width: 560px) { .efm-row { grid-template-columns: 1fr 1fr; } }
.efm-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.efm-success { text-align: center; padding: var(--gi-space-6) var(--gi-space-4); }
.efm-success__icon { font-size: 3rem; line-height: 1; margin-bottom: var(--gi-space-3); }
.efm-success__title { font-size: var(--gi-font-size-xl); font-weight: 700; color: var(--gi-dark); margin: 0 0 var(--gi-space-2); }
.efm-success__text { font-size: var(--gi-font-size-sm); color: var(--gi-grey-500); line-height: 1.6; margin: 0 0 var(--gi-space-5); }
.efm-notice--action { display: flex; align-items: center; justify-content: space-between; gap: var(--gi-space-3); flex-wrap: wrap; }
.efm-notice--action span { flex: 1; min-width: 180px; }
.efm-pay-methods .gi-visibility-option:focus-visible { outline: 3px solid var(--gi-cyan-20); outline-offset: 2px; }
