/*
 * Club : couleurs et polices du thème (variables --ec-*, avec une valeur de secours pour une autre boutique).
 * Préfixe fid- partout : rien ne déborde sur le reste du site.
 */
.fid {
  --fid-brand: var(--ec-brand, #135173);
  --fid-brand-text: var(--ec-brand-text, #135173);
  --fid-brand-soft: var(--ec-brand-soft, #e6f5f7);
  --fid-cta: var(--ec-cta, #008040);
  --fid-on-cta: var(--ec-on-cta, #fff);
  --fid-dark: var(--ec-dark, #002b35);
  --fid-ink: var(--ec-ink, #181818);
  --fid-muted: var(--ec-muted, #4a5060);
  --fid-line: var(--ec-line, #d5d9e1);
  --fid-border: var(--ec-border, #7b8394);
  --fid-ok: var(--ec-ok, #0b6b47);
  --fid-ok-soft: var(--ec-ok-soft, #e3f4ec);
  --fid-warn: var(--ec-warn, #6b4400);
  --fid-warn-soft: var(--ec-warn-soft, #fff1d0);
  --fid-radius: var(--ec-radius, 4px);
  --fid-radius-btn: var(--ec-radius-btn, 2px);
  --fid-display: var(--ec-font-display, 'Bebas Neue', 'Arial Narrow', sans-serif);
  color: var(--fid-ink);
  font-size: 1rem;
  line-height: 1.5;
}
.fid p { margin: 0 0 .5rem; }
.fid-muted { color: var(--fid-muted); }
.fid-small { font-size: .875rem; color: var(--fid-muted); }
.fid-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.fid-error { color: #a4161a; }

/* Boutons (mêmes hauteurs que le thème : au moins 44 px au doigt) */
.fid-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 46px; padding: 0 20px; border-radius: var(--fid-radius-btn);
  font-weight: 800; font-size: 1rem; text-decoration: none; cursor: pointer; border: 2px solid transparent;
}
.fid-btn--cta { background: var(--fid-cta); color: var(--fid-on-cta); width: 100%; min-height: 50px; }
.fid-btn--cta:hover, .fid-btn--cta:focus { color: var(--fid-on-cta); filter: brightness(1.1); }
.fid-btn--ghost { background: #fff; color: var(--fid-brand-text); border-color: var(--fid-brand-text); }
.fid-btn--ghost:hover, .fid-btn--ghost:focus { color: var(--fid-dark); border-color: var(--fid-dark); }
.fid-btn--light { background: #fff; color: var(--fid-brand-text); align-self: flex-start; }
.fid-btn:focus-visible { outline: 3px solid var(--ec-focus-ring, #00a5b5); outline-offset: 2px; }
.fid-btn[disabled] { opacity: .6; cursor: wait; }

/* Titres */
.fid-eyebrow { font-size: .8125rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--fid-brand-soft); margin: 0; }
.fid-eyebrow--muted { color: var(--fid-muted); }
.fid-h2 { font-family: var(--fid-display); font-weight: 400; font-size: 1.9rem; line-height: 1; color: var(--fid-dark); margin: 0 0 .75rem; }

/* Bandeau du haut */
.fid-hero { background: var(--fid-brand); color: #fff; border-radius: var(--fid-radius); padding: 24px 20px 28px; display: flex; flex-direction: column; gap: 10px; }
.fid-hero__title { font-family: var(--fid-display); font-weight: 400; font-size: clamp(2.5rem, 7vw, 3.5rem); line-height: .95; margin: 0; color: #fff; }
.fid-hero__lead { font-size: 1.0625rem; margin: 0; max-width: 40em; }
.fid-from { display: flex; align-items: center; gap: 10px; font-weight: 700; color: var(--fid-brand-soft); margin: 0; }

/* Le client : avatar, solde */
.fid-me { margin-top: -12px; background: #fff; border: 1px solid var(--fid-line); border-radius: var(--fid-radius); box-shadow: 0 6px 18px rgba(0, 43, 53, .12); padding: 18px; display: flex; flex-direction: column; gap: 12px; position: relative; }
.fid-me__who { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.fid-me__who p { margin: 0; }
.fid-me__printer { background: var(--fid-brand-soft); border-radius: var(--fid-radius); padding: 12px; margin: 0; }
.fid-avatar { flex: 0 0 48px; width: 48px; height: 48px; border-radius: 50%; background: var(--fid-brand); color: #fff; font-weight: 800; font-size: 1.15rem; display: inline-flex; align-items: center; justify-content: center; }
.fid-avatar--light { flex-basis: 40px; width: 40px; height: 40px; background: #fff; color: var(--fid-brand-text); }
.fid-card { background: var(--fid-brand); color: #fff; border-radius: var(--fid-radius); padding: 18px; }
.fid-me .fid-card { background: #fff; color: var(--fid-ink); padding: 0; }
.fid-card__head { margin: 0 0 6px; display: flex; align-items: baseline; gap: 8px; }
.fid-card__points { font-size: 2.75rem; font-weight: 800; line-height: 1; }
.fid-me .fid-card__points { color: var(--fid-brand-text); }
.fid-card__unit { font-size: 1.125rem; font-weight: 800; }
.fid-card__usable strong { font-size: 1.05rem; }
.fid-me .fid-card__usable { color: var(--fid-ok); font-weight: 700; }
.fid-card__small { font-size: .8125rem; opacity: .95; margin: 0; }
.fid-bar { height: 10px; border-radius: 5px; background: rgba(255, 255, 255, .28); overflow: hidden; margin: 8px 0; }
.fid-bar span { display: block; height: 100%; background: #fff; }
.fid-me .fid-bar { background: var(--fid-brand-soft); }
.fid-me .fid-bar span { background: var(--ec-accent, #00a5b5); }

/* Parrainage : le bloc le plus visible de la page */
.fid-ref { margin-top: 24px; background: var(--fid-brand-soft); border: 2px solid var(--fid-brand); border-radius: var(--fid-radius); overflow: hidden; }
.fid-ref__art { background: #fff; color: var(--fid-brand); display: flex; justify-content: center; padding-top: 10px; }
.fid-ref__art svg { max-width: 100%; height: auto; }
.fid-art-a { fill: var(--fid-brand); }
.fid-art-b { fill: var(--ec-accent, #00a5b5); }
.fid-art-gift { fill: var(--fid-cta); }
.fid-art-lid { fill: var(--fid-ok); }
.fid-ref__body { padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.fid-ref__title { font-family: var(--fid-display); font-weight: 400; font-size: 2.25rem; line-height: .95; color: var(--fid-dark); margin: 0; }
.fid-ref--compact .fid-ref__title { font-size: 1.9rem; }
.fid-ref__lead { margin: 0; }
.fid-ref__steps { margin: 0; padding-left: 1.25rem; display: flex; flex-direction: column; gap: 6px; }
.fid-ref__msg { background: #fff; border-radius: var(--fid-radius); padding: 10px 12px; }
.fid-ref__msg-label { display: block; font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--fid-muted); margin-bottom: 4px; }
.fid-ref__msg-text { width: 100%; border: 0; resize: vertical; font: inherit; color: var(--fid-ink); background: transparent; min-height: 4.5em; }
.fid-ref__msg-text:focus { outline: 2px solid var(--fid-brand); }
.fid-ref__more { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.fid-ref__more .fid-btn { flex: 1 1 0; padding: 0 10px; }
.fid-ref__code { margin: 0; }
.fid-ref__code strong { letter-spacing: .04em; color: var(--fid-brand-text); }
.fid-ref__stats { border-top: 1px solid #b9d7dc; padding-top: 10px; font-size: .9375rem; }
.fid-ref__stats p { display: flex; justify-content: space-between; gap: 10px; margin: 0 0 6px; }
.fid-ref__stats-title { font-weight: 800; }
.fid-ref__status:empty { display: none; }
.fid-invite { display: flex; flex-direction: column; gap: 8px; }
.fid-invite__title { font-weight: 700; margin: 0; }
.fid-invite__row { display: flex; flex-wrap: wrap; gap: 8px; }
.fid-invite label { flex: 1 1 200px; display: flex; flex-direction: column; font-size: .875rem; font-weight: 700; }
.fid-invite input { min-height: 44px; border: 1px solid var(--fid-border); border-radius: var(--fid-radius); padding: 0 12px; font: inherit; font-weight: 400; }

/* Mot de l'équipe */
.fid-team { margin-top: 28px; display: flex; flex-direction: column; gap: 10px; }
.fid-team__photo { width: 100%; max-height: 260px; object-fit: cover; border-radius: var(--fid-radius); }
.fid-team__quote { font-size: 1.0625rem; margin: 0; max-width: 42em; }
.fid-team__sign { font-family: var(--fid-display); font-size: 1.5rem; color: var(--fid-brand-text); margin: 0; }

/* Sections, listes */
.fid-sec { margin-top: 28px; }
.fid-steps { margin: 0; padding-left: 1.25rem; display: flex; flex-direction: column; gap: 8px; }
.fid-rewards, .fid-bonus, .fid-history, .fid-trust { list-style: none; margin: 0 0 8px; padding: 0; border: 1px solid var(--fid-line); border-radius: var(--fid-radius); }
.fid-rewards li, .fid-bonus li, .fid-history li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; }
.fid-rewards li + li, .fid-bonus li + li, .fid-history li + li, .fid-trust li + li { border-top: 1px solid var(--fid-line); }
.fid-rewards__pts { font-weight: 800; color: var(--fid-brand-text); white-space: nowrap; }
.fid-plus { color: var(--fid-ok); white-space: nowrap; }
.fid-minus { color: var(--fid-warn); white-space: nowrap; }
.fid-note { font-style: italic; }
.fid-trust li { padding: 12px 14px; }
.fid-faq dt { font-weight: 800; margin-top: 10px; }
.fid-faq dd { margin: 2px 0 0; color: var(--fid-muted); }
.fid-mails { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; max-width: 40rem; }
.fid-mails p { margin: 0; }
.fid-help { margin-top: 16px; border: 1px solid var(--fid-line); border-radius: var(--fid-radius); padding: 14px; display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.fid-help p { margin: 0; }

/* Page Club : grands blocs illustrés. Tout est limité à .fid-club, les autres pages du Club gardent leur mise en page. */
.fid-club { --fid-round: 16px; }
.fid-club .fid-hero { position: relative; overflow: hidden; flex-direction: column; gap: 0; padding: 26px 22px 0; border-radius: var(--fid-round);
  background: #013258; }
.fid-club .fid-hero__text { display: flex; flex-direction: column; gap: 10px; position: relative; z-index: 1; }
.fid-club .fid-hero__art { display: block; width: calc(100% + 44px); max-width: none; height: 200px; margin: 6px -22px 0; object-fit: cover; object-position: 92% 50%; -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 16%); mask-image: linear-gradient(180deg, transparent 0, #000 16%); }
.fid-club .fid-me { position: relative; z-index: 2; max-width: none; margin-top: -8px; border: 0; border-radius: var(--fid-round); box-shadow: 0 10px 30px rgba(0, 43, 53, .16); padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.fid-club .fid-me__who { margin: 0; }
.fid-me__bal { position: relative; min-width: 0; }
.fid-me__coins { position: absolute; right: 0; top: 0; width: 84px; height: auto; pointer-events: none; }
.fid-club .fid-me .fid-card__usable { padding-right: 90px; }
.fid-club .fid-me .fid-btn--ghost { border-radius: 8px; }
.fid-tier { padding: 10px 12px; border-radius: 10px; background: #fff8e6; }
.fid-tier p { margin: 0; }
.fid-tier__badge { display: inline-flex; vertical-align: -6px; margin-right: 6px; color: #c98a0c; }
.fid-tier .fid-bar { height: 8px; margin: 8px 0 4px; background: #f6e5b8; }
.fid-tier .fid-bar span { background: #d9951a; }
.fid-tiers ul { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 12px 0 0; padding: 0; list-style: none; }
.fid-tiers li { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 18px 14px; border: 1px solid #cfe5ea; border-radius: var(--fid-round); background: linear-gradient(160deg, #eff8fa, #e4f3f6); text-align: center; }
.fid-tiers li .material-icons { color: #c98a0c; font-size: 34px; }
.fid-tiers li strong { font-family: var(--fid-display); font-size: 1.7rem; font-weight: 400; line-height: 1.1; color: var(--fid-dark); }
.fid-tiers li span { color: var(--fid-muted); font-size: .9375rem; }
.fid-tiers li b { margin-top: 4px; color: var(--fid-ok); }
.fid-tiers li.is-mine { border: 2px solid var(--fid-brand); }
.fid-club .fid-me .fid-card__points { font-size: 3rem; }

.fid-club .fid-btn { border-radius: 8px; }
.fid-ic { flex: none; width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.fid-club .fid-ref { margin-top: 28px; border: 1px solid #bfe0e6; border-radius: var(--fid-round); background: linear-gradient(135deg, #e6f6f8 0%, #f4fbfc 55%, #dff1f5 100%); }
.fid-club .fid-ref__art { display: block; padding: 0; background: none; }
.fid-club .fid-ref__art img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 70%; }
.fid-club .fid-ref__title { scroll-margin-top: 110px; }
.fid-club .fid-ref__body { padding: 20px; gap: 12px; }
.fid-club .fid-ref__steps { list-style: none; padding: 0; gap: 8px; }
.fid-club .fid-ref__steps li { position: relative; padding-left: 28px; }
.fid-club .fid-ref__steps li:before { content: ""; position: absolute; left: 0; top: 2px; width: 19px; height: 19px; border-radius: 50%; background: var(--fid-ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.500l4.500 4.500L19 7.500'/%3E%3C/svg%3E") center/13px no-repeat; }
.fid-club .fid-ref__msg { border: 1px solid #cfe7ec; border-radius: 10px; }
.fid-club .fid-ref__more .fid-btn { gap: 6px; }


.fid-club .fid-sec { margin-top: 30px; min-width: 0; }
.fid-club .fid-h2 { font-size: 2.1rem; }




/* Gagner des points : le bloc le plus visible de la page, juste sous le solde. */
.fid-board { margin-top: 18px; padding: 20px 14px; border-radius: var(--fid-round); color: #fff; scroll-margin-top: 110px; background: var(--fid-brand); background: radial-gradient(90% 130% at 100% 0, color-mix(in srgb, var(--ec-accent, #00a5b5) 42%, transparent), transparent 66%), linear-gradient(135deg, var(--fid-dark), var(--fid-brand)); }
.fid-board__head { display: flex; flex-direction: column; gap: 14px; margin-bottom: 16px; }
.fid-board__title { margin: 0 0 6px; font-family: var(--fid-display); font-weight: 400; font-size: clamp(2.5rem, 6vw, 3.5rem); line-height: 1; color: #fff; }
.fid-club .fid-board__lead { margin: 0; max-width: 34em; color: #e3f2f5; }
.fid-club .fid-board__left { flex: none; display: flex; align-items: center; gap: 12px; margin: 0; padding: 10px 16px; border-radius: 12px; background: rgba(255, 255, 255, .12); font-weight: 800; line-height: 1.2; }
.fid-board__left b { font-family: var(--fid-display); font-weight: 400; font-size: 3.25rem; line-height: 1; color: #ffd76a; }
.fid-board__left .material-icons { font-size: 42px; color: #ffd76a; }
.fid-board__left small { display: block; margin-top: 2px; font-size: .875rem; font-weight: 600; color: #e3f2f5; }
.fid-board__main, .fid-board__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0; padding: 0; list-style: none; }
.fid-board__list { margin-top: 10px; }
.fid-m { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; grid-template-areas: "ico txt pts" "act act act"; gap: 10px 12px; align-items: start; padding: 14px; border-radius: 12px; background: #fff; color: var(--fid-ink); box-shadow: 0 6px 18px rgba(0, 20, 30, .2); }
.fid-m__ico { grid-area: ico; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; overflow: hidden; background: var(--fid-brand-soft); color: var(--fid-brand-text); }
.fid-m__ico img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fid-m__ico .material-icons { font-size: 24px; }
.fid-m__txt { grid-area: txt; min-width: 0; }
.fid-club .fid-m__txt h3 { margin: 0 0 2px; font-family: inherit; font-size: 1.0625rem; font-weight: 800; line-height: 1.25; text-transform: none; color: var(--fid-dark); }
.fid-club .fid-m__txt p { margin: 0; font-size: .9375rem; line-height: 1.35; color: var(--fid-muted); }
.fid-club .fid-m__pts { grid-area: pts; margin: 0; text-align: right; line-height: 1; white-space: nowrap; }
.fid-m__pts b { display: block; font-family: var(--fid-display); font-weight: 400; font-size: 2.25rem; line-height: 1; color: var(--fid-ok); }
.fid-m__pts small { display: block; margin-top: 2px; font-size: .8125rem; font-weight: 700; color: var(--fid-muted); }
.fid-m__pts .fid-m__worth { color: var(--fid-ok); }
.fid-m__act { grid-area: act; align-self: end; min-width: 0; }
.fid-m__btn { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; padding: 0 12px; border: 0; border-radius: 8px; background: var(--fid-brand-soft); color: var(--fid-brand-text); font: inherit; font-weight: 800; text-align: center; text-decoration: none; cursor: pointer; }
.fid-m__btn:hover, .fid-m__btn:focus { background: var(--fid-brand); color: #fff; }
.fid-m__btn:focus-visible { outline: 3px solid var(--ec-focus-ring, #00a5b5); outline-offset: 2px; }
.fid-m__form { display: flex; gap: 8px; margin: 0; }
.fid-m__form input { flex: 1 1 auto; min-width: 0; min-height: 44px; padding: 0 8px; border: 1px solid var(--fid-border); border-radius: 8px; font: inherit; }
.fid-m__form .fid-m__btn { flex: none; width: auto; }
.fid-done { padding: 12px 14px; border-radius: 12px; background: rgba(255, 255, 255, .1); }
.fid-club .fid-done p { display: flex; align-items: flex-start; gap: 6px; margin: 4px 0 0; font-size: .9375rem; line-height: 1.3; color: #e3f2f5; }
.fid-club .fid-done .fid-done__title { margin: 0 0 6px; font-weight: 800; color: #fff; }
.fid-done .material-icons { flex: none; font-size: 18px; color: #ffd76a; }
.fid-club .fid-board__login { display: flex; width: 100%; margin-top: 12px; }

/* Ce que valent les points */
.fid-club .fid-worth { position: relative; margin-top: 28px; padding: 20px 14px 14px; border-radius: var(--fid-round); background: linear-gradient(160deg, #eff8fa, #e4f3f6); }
.fid-worth__art { display: none; }
.fid-club .fid-worth__lead { color: var(--fid-muted); }
.fid-club ul.fid-rewards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 12px 0 8px; border: 0; }
.fid-club .fid-rewards li { flex-direction: column; justify-content: flex-start; gap: 2px; padding: 14px 8px 12px; border: 1px solid #cfe5ea; border-radius: 12px; background: #fff; text-align: center; }
.fid-club .fid-rewards li + li { border-top: 1px solid #cfe5ea; }
.fid-club .fid-rewards li.is-ok { border: 2px solid var(--fid-ok); padding: 13px 7px 11px; }
.fid-rewards b { font-family: var(--fid-display); font-size: 2rem; font-weight: 400; line-height: 1.05; color: var(--fid-dark); }
.fid-rewards span { font-size: .875rem; color: var(--fid-muted); }
.fid-club .fid-rewards__pts { margin-top: 6px; padding: 3px 12px; border-radius: 999px; background: var(--fid-brand-soft); font-style: normal; }
.fid-rewards small { margin-top: 4px; font-size: .8125rem; font-weight: 700; color: var(--fid-muted); }
.fid-rewards .is-ok small { color: var(--fid-ok); }

/* Comment ça marche */
ol.fid-flow { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0; padding: 0; list-style: none; }
.fid-flow li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 0 12px; align-items: center; padding: 12px 14px; border-radius: 12px; background: #f6fafb; font-size: .9375rem; line-height: 1.35; color: var(--fid-muted); }
.fid-flow strong { grid-column: 2; color: var(--fid-dark); font-size: 1.0625rem; }
.fid-flow li > span:last-child { grid-column: 2; }
.fid-flow__ico { grid-row: 1 / span 2; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(150deg, #23b0c0, #135173); color: #fff; }
.fid-flow__ico .material-icons { font-size: 24px; }

/* Bas de page : les questions, puis l'équipe */
.fid-end { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 30px; }
.fid-club .fid-end .fid-sec { margin-top: 0; }
.fid-club .fid-team { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin: 0; padding: 20px; border-radius: var(--fid-round); background: linear-gradient(160deg, #eff8fa, #e4f3f6); }
.fid-club .fid-team p { margin: 0; }
.fid-club .fid-team__quote { font-size: 1rem; }
.fid-club .fid-team .fid-btn { align-self: stretch; }
.fid-team__social { font-size: .9375rem; }

/* Mon compte › Mes points : les blocs du Club, dans la colonne du compte */
.fid-club .fid-tickets { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0 0 8px; padding: 0; list-style: none; }
.fid-tickets li { display: flex; align-items: center; gap: 14px; padding: 12px 16px; border: 2px dashed var(--ec-accent, #00a5b5); border-radius: 12px; background: #f6fafb; }
.fid-tickets b { flex: none; font-family: var(--fid-display); font-size: 2.25rem; font-weight: 400; line-height: 1; color: var(--fid-ok); }
.fid-club ul.fid-history { margin: 0; border-color: #cfe5ea; border-radius: 12px; overflow: hidden; background: #fff; }
.fid-club .fid-history li + li { border-top-color: #e6f0f3; }
.fid-club .fid-history .fid-plus, .fid-club .fid-history .fid-minus { font-family: var(--fid-display); font-size: 1.625rem; font-weight: 400; line-height: 1; }
.fid-side { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.fid-panel { padding: 16px; border-radius: 12px; background: linear-gradient(160deg, #eff8fa, #e4f3f6); }
.fid-club .fid-panel .fid-h2 { font-size: 1.625rem; margin-bottom: 6px; }
.fid-panel .fid-btn { width: 100%; min-height: 44px; font-size: .9375rem; }
.fid-panel p { font-size: .9375rem; }
.fid-club.fid-points .fid-ref { align-items: stretch; }

@media (min-width: 768px) {
  .fid-club .fid-hero { display: block; min-height: 346px; padding: 36px 30px 100px; }
  .fid-club .fid-hero__text { width: 42%; }
  .fid-club .fid-hero__art { position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 0; object-fit: cover; object-position: right center; -webkit-mask-image: none; mask-image: none; }
  .fid-club .fid-me { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px 28px; margin: -60px 16px 0; padding: 16px 22px; }
  .fid-club .fid-me__who { flex: 0 1 260px; }
  .fid-me__bal { flex: 1 1 320px; }
  .fid-me__coins { top: 50%; width: 96px; transform: translateY(-50%); }
  .fid-club .fid-me .fid-card__usable, .fid-club .fid-me .fid-card__small { padding-right: 104px; }
  .fid-club .fid-me .fid-tier { flex: 1 1 250px; }
  .fid-board { padding: 26px 22px 22px; }
  .fid-board__head { flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
  .fid-board__main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .fid-board__list { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
  .fid-board__list > li { flex: 1 1 calc(25% - 12px); min-width: 230px; }
  .fid-board__list .fid-m { grid-template-columns: 44px minmax(0, 1fr); grid-template-rows: auto 1fr auto; grid-template-areas: "ico pts" "txt txt" "act act"; }
  .fid-board__list .fid-m__pts b { font-size: 2.5rem; }
  .fid-m--big { grid-template-columns: 60px minmax(0, 1fr); grid-template-rows: auto 1fr auto; grid-template-areas: "ico pts" "txt txt" "act act"; gap: 10px 14px; padding: 16px 18px; }
  .fid-m--big .fid-m__ico { width: 60px; height: 60px; }
  .fid-m--big .fid-m__ico .material-icons { font-size: 32px; }
  .fid-m--big .fid-m__pts b { font-size: 3rem; }
  .fid-club .fid-m--big .fid-m__txt h3 { font-size: 1.25rem; }
  .fid-m--big .fid-m__act .fid-btn, .fid-m--big .fid-m__act .fid-m__btn { width: 100%; min-height: 46px; background: var(--fid-cta); color: var(--fid-on-cta); }
  .fid-club .fid-worth { padding: 24px 22px 16px; }
  .fid-worth__art { display: block; position: absolute; right: 18px; top: -30px; width: 132px; height: auto; pointer-events: none; }
  .fid-club .fid-worth__lead { padding-right: 150px; }
  .fid-club ul.fid-rewards { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
  ol.fid-flow { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .fid-end { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); align-items: start; gap: 28px; }
  .fid-club.fid-points .fid-me { margin: 0; }
  .fid-club .fid-tickets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fid-club .fid-ref { display: grid; grid-template-columns: 42% minmax(0, 1fr); align-items: stretch; }
  .fid-club .fid-ref__art img { height: 100%; aspect-ratio: auto; object-position: 50% 62%; }
  .fid-club .fid-ref__body { padding: 24px 26px; }
  .fid-club .fid-ref--teaser .fid-ref__body { justify-content: center; }
  .fid-tiers ul { grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
}

/* Sur toute la largeur de la page du Club : commande et parrainage en ligne */
@media (min-width: 1200px) {
  .fid-club:not(.fid-points) .fid-m--big { grid-template-columns: 76px minmax(0, 1fr) auto; grid-template-rows: 1fr auto; grid-template-areas: "ico txt pts" "ico act pts"; gap: 12px 16px; padding: 18px 20px; }
  .fid-club:not(.fid-points) .fid-m--big .fid-m__ico { width: 76px; height: 76px; align-self: center; }
  .fid-club:not(.fid-points) .fid-m--big .fid-m__ico .material-icons { font-size: 40px; }
  .fid-club:not(.fid-points) .fid-m--big .fid-m__pts { align-self: center; }
}

/* Messages */
.fid-ok { background: var(--fid-ok-soft); color: var(--fid-ok); font-weight: 800; border-radius: var(--fid-radius); padding: 8px 12px; margin: 0; align-self: flex-start; }
.fid-notice { background: var(--fid-warn-soft); color: var(--fid-warn); border-radius: var(--fid-radius); padding: 10px 12px; margin: 0 0 12px; }
.fid-earn { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--fid-ok); margin: 8px 0 0; }
.fid-earn a { color: inherit; text-decoration: none; }
.fid-earn a:hover { text-decoration: underline; }
.fid-earn--summary { font-size: .9375rem; }

/* Panier, paiement, page « merci » */
.fid-cart { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }
.fid-cart .fid-earn { display: block; margin: 0; }
.fid-pay { border: 2px solid var(--fid-brand); border-radius: var(--fid-radius); padding: 16px; margin-bottom: 16px; display: flex; flex-direction: column; gap: 10px; background: #fff; }
.fid-pay__title { display: flex; align-items: center; gap: 8px; font-size: 1.0625rem; font-weight: 800; color: var(--fid-brand-text); margin: 0; }
.fid-pay p { margin: 0; }
.fid-pay form { margin: 0; }
.fid-pay__others summary { cursor: pointer; font-weight: 700; color: var(--fid-brand-text); min-height: 44px; display: flex; align-items: center; }
.fid-pay__others form { margin-top: 8px; }
.fid-pay__status:empty { display: none; }
.fid-thanks { margin: 0 0 24px; }
.fid-thanks__msg { display: flex; flex-direction: column; gap: 8px; }

/* Page du proche parrainé */
.fid-friend .fid-ok { background: var(--fid-ok-soft); }
.fid-finder { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0; }
.fid-finder input { flex: 1 1 260px; min-height: 48px; border: 1px solid var(--fid-border); border-radius: var(--fid-radius); padding: 0 14px; font: inherit; }
.fid-finder .fid-btn--cta { flex: 1 1 200px; width: auto; }

@media (min-width: 768px) {
  .fid-hero { padding: 36px 32px 40px; }
  .fid-me { margin-top: -20px; max-width: 640px; }
  .fid-ref { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
  .fid-ref--compact, .fid-ref--teaser { display: block; }
  .fid-ref__art { align-items: center; padding: 20px; }
  .fid-btn--cta { width: auto; }
  .fid-ref__body .fid-btn--cta { align-self: flex-start; min-width: 280px; }
}
