/*
 * ============================================================================
 *  PAGES INSTITUTIONNELLES — maquettes docs/maquettes (cgu, mentions_legales,
 *  politique_de_confidentialite… 04/10). Préfixe .lg2-* (juridique).
 * ============================================================================
 */
.lg2 { --lg-violet: #3b19e6; --lg-line: #e6e8ef; --lg-ink: #0b1437; font-family: var(--tm-font, inherit); color: var(--lg-ink); }
.lg2-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 300px; overflow: hidden; background: #f6f7fc; }
.lg2-hero__text { position: relative; z-index: 1; padding: 34px 40px 34px 72px; }
.lg2-crumb { margin-bottom: 14px; color: #6b6f85; font-size: 13px; }
.lg2-crumb a { color: inherit; text-decoration: none; }
.lg2-hero h1 { margin: 0 0 10px; color: var(--lg-ink); font-size: 40px; font-weight: 800; letter-spacing: -.01em; }
.lg2-hero__date { margin: 0 0 22px; font-size: 15px; }
.lg2-hero__intro { max-width: 520px; margin: 0; font-size: 15px; line-height: 24px; }
.lg2-hero__img { width: 100%; height: 100%; object-fit: cover; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 30%); mask-image: linear-gradient(90deg, transparent 0%, #000 30%); }

.lg2-body { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 28px; max-width: 1440px; margin: 0 auto; padding: 24px 72px 56px; }
.lg2-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.lg2-card { position: relative; display: grid; grid-template-columns: 36px 52px minmax(0, 1fr); gap: 14px; padding: 18px; background: #fff; border: 1px solid var(--lg-line); border-radius: 10px; box-shadow: 0 2px 10px rgba(11, 20, 55, .04); scroll-margin-top: calc(var(--tm-header-h, 80px) + 20px); }
.lg2-card h2 { margin: 2px 0 8px; font-size: 15px; font-weight: 800; color: var(--lg-ink); }
.lg2-num { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: #eef0fc; color: var(--lg-violet); font-size: 14px; font-weight: 800; }
.lg2-ico { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: #eef0fc; color: var(--lg-violet); }
.lg2-ico.is-green { background: #e9f8ee; color: #16a34a; } .lg2-ico.is-orange { background: #fdf2e6; color: #f08a00; }
.lg2-ico.is-red { background: #fdeaf0; color: #e5326b; } .lg2-ico.is-teal { background: #e6f6f5; color: #0d9488; } .lg2-ico.is-violet { background: #f1ecfd; color: #6d28d9; }
.lg2-text { color: var(--lg-ink); font-size: 13px; line-height: 20px; }
.lg2-text p { margin: 0 0 6px; }
.lg2-text ul { margin: 0 0 6px; padding-left: 18px; }
.lg2-text a { color: var(--lg-violet); }
.lg2-preamble { margin-bottom: 14px; font-size: 14px; line-height: 22px; }
.lg2-empty { color: #6b6f85; }

/* Variante liste (politique de confidentialité). */
.lg2-list { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.lg2-list li { background: #fff; border: 1px solid var(--lg-line); border-radius: 8px; scroll-margin-top: calc(var(--tm-header-h, 80px) + 20px); }
.lg2-list summary { display: grid; grid-template-columns: 44px 52px minmax(0, 1fr) 24px; gap: 14px; align-items: center; padding: 12px 16px; list-style: none; cursor: pointer; }
.lg2-list summary::-webkit-details-marker { display: none; }
.lg2-list summary > .pl-icon { color: var(--lg-violet); transition: transform .2s; }
.lg2-list details[open] summary > .pl-icon { transform: rotate(90deg); }
.lg2-list .lg2-num { border-radius: 6px; width: 34px; }
.lg2-list .lg2-ico { width: 44px; height: 44px; }
.lg2-list__title { font-size: 15px; font-weight: 800; }
.lg2-list .lg2-text { padding: 0 20px 16px 140px; }

/* Colonne de droite. */
.lg2-side { display: flex; flex-direction: column; gap: 16px; }
.lg2-toc, .lg2-engage { padding: 20px 22px; background: #fff; border: 1px solid var(--lg-line); border-radius: 10px; }
.lg2-toc { position: sticky; top: calc(var(--tm-header-h, 80px) + 16px); }
.lg2-toc h2, .lg2-engage h2 { margin: 0 0 12px; font-size: 17px; font-weight: 800; }
.lg2-toc h2::after { content: ""; display: block; width: 28px; height: 2px; margin-top: 8px; background: var(--lg-violet); }
.lg2-toc ol { margin: 0; padding-left: 20px; font-size: 13.5px; line-height: 26px; }
.lg2-toc a { color: var(--lg-violet); text-decoration: none; }
.lg2-toc a:hover { text-decoration: underline; }
.lg2-engage { background: #f6f7fd; }
.lg2-engage__ico { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: 8px; border-radius: 50%; background: #fff; color: var(--lg-violet); }
.lg2-engage p { margin: 0 0 16px; font-size: 13px; line-height: 20px; }
.lg2-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 40px; background: var(--lg-violet); border-radius: 6px; color: #fff; font-size: 13.5px; font-weight: 700; text-decoration: none; }
.lg2-btn:hover { color: #fff; filter: brightness(1.1); }
.lg2-print { display: inline-flex; align-items: center; gap: 6px; color: var(--lg-violet); font-size: 13px; font-weight: 600; }

@media (max-width: 1199.98px) {
    .lg2-body { grid-template-columns: 1fr; padding: 24px 24px 48px; }
    .lg2-toc { position: static; }
    .lg2-hero__text { padding: 28px 24px; }
}
@media (max-width: 767.98px) {
    .lg2-hero { grid-template-columns: 1fr; }
    .lg2-hero__img { position: absolute; inset: 0; opacity: .18; -webkit-mask-image: none; mask-image: none; }
    .lg2-grid { grid-template-columns: 1fr; }
    .lg2-card { grid-template-columns: 34px minmax(0, 1fr); }
    .lg2-card .lg2-ico { display: none; }
    .lg2-list summary { grid-template-columns: 40px minmax(0, 1fr) 20px; }
    .lg2-list summary .lg2-ico { display: none; }
    .lg2-list .lg2-text { padding: 0 16px 14px; }
    .lg2-hero h1 { font-size: 30px; }
}
@media print { .lg2-side, .tm-header, .tm-footer { display: none !important; } .lg2-body { display: block; } }

/* ===== Gabarit commun des pages corporate (.pg-*) ===== */
.pg { --pg-violet: #3b19e6; --pg-line: #e6e8ef; --pg-ink: #0b1437; --pg-soft: #f5f6fd; color: var(--pg-ink); }
.pg-wrap { max-width: 1440px; margin: 0 auto; padding: 0 72px; }
.pg-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); min-height: 280px; overflow: hidden; background: #f6f7fc; }
.pg-hero__text { position: relative; z-index: 1; align-self: center; padding: 30px 30px 30px 72px; }
.pg-hero h1 { margin: 0 0 10px; color: var(--pg-ink); font-size: 40px; font-weight: 800; letter-spacing: -.01em; }
.pg-hero__sub { margin: 0 0 18px; font-size: 16px; }
.pg-hero__lead { max-width: 520px; margin: 0 0 18px; font-size: 15px; line-height: 24px; }
.pg-hero__img { width: 100%; height: 100%; min-height: 280px; object-fit: cover; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 28%); mask-image: linear-gradient(90deg, transparent 0%, #000 28%); }
.pg-hero__checks { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; font-size: 13.5px; }
.pg-hero__checks li { display: flex; align-items: center; gap: 10px; }
.pg-hero__checks .pl-icon { color: var(--pg-violet); }
.pg-hero__badges { display: flex; flex-wrap: wrap; gap: 26px; margin: 0; padding: 0; list-style: none; font-size: 12.5px; }
.pg-hero__badges li { display: flex; align-items: center; gap: 10px; max-width: 170px; }
.pg-hero__badges .pl-icon { flex: none; color: var(--pg-violet); }
.pg-hero__float { position: absolute; right: 50px; bottom: 28px; z-index: 1; display: flex; gap: 14px; max-width: 300px; padding: 18px; background: rgba(255, 255, 255, .95); border-radius: 10px; box-shadow: 0 10px 30px rgba(11, 20, 55, .15); font-size: 12px; line-height: 19px; }
.pg-hero__float strong { display: block; margin-bottom: 6px; font-size: 13.5px; }
.pg-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 22px; }
.pg-h2 { margin: 0 0 22px; font-size: 19px; font-weight: 800; }
.pg-h2::after { content: ""; display: block; width: 28px; height: 3px; margin-top: 10px; background: var(--pg-violet); border-radius: 2px; }
.pg-h2--center { text-align: center; } .pg-h2--center::after { display: none; }
.pg-ico { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: #eef0fc; color: var(--pg-violet); }
.pg-ico.is-green { background: #e9f8ee; color: #16a34a; } .pg-ico.is-orange { background: #fdf2e6; color: #f08a00; }
.pg-ico.is-red { background: #fdeaf0; color: #e5326b; } .pg-ico.is-violet { background: #f1ecfd; color: #6d28d9; } .pg-ico.is-yellow { background: #fff6dc; color: #e0a200; }
.pg-card { padding: 20px; background: #fff; border: 1px solid var(--pg-line); border-radius: 10px; box-shadow: 0 2px 10px rgba(11, 20, 55, .04); }
.pg-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 42px; padding: 0 26px; background: var(--pg-violet); border: 0; border-radius: 6px; color: #fff; font-size: 14px; font-weight: 700; text-decoration: none; cursor: pointer; }
.pg-btn:hover { color: #fff; filter: brightness(1.1); }
.pg-btn--block { width: 100%; }
.pg-btn--ghost { background: transparent; border: 1.5px solid #fff; }
.pg-btn--outline { background: #fff; border: 1.5px solid var(--pg-violet); color: var(--pg-violet); } .pg-btn--outline:hover { color: var(--pg-violet); }
.pg-link { display: inline-flex; align-items: center; gap: 6px; padding: 0; background: none; border: 0; color: var(--pg-violet); font-size: 13px; font-weight: 700; text-decoration: none; cursor: pointer; }
.pg-muted { color: #6b6f85; }

/* Contact */
.pg-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 50px; padding-top: 34px; padding-bottom: 26px; }
.pg-contact > section:first-child { padding-right: 46px; border-right: 1px solid var(--pg-line); }
.pg-form { display: flex; flex-direction: column; gap: 12px; }
.pg-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pg-field input, .pg-field select, .pg-field textarea { width: 100%; padding: 9px 14px; background: #fff; border: 1px solid #cfd3e3; border-radius: 6px; color: var(--pg-ink); font-size: 13.5px; }
.pg-field input, .pg-field select { height: 40px; }
.pg-field :focus { outline: 2px solid rgba(59, 25, 230, .25); border-color: var(--pg-violet); }
.pg-field.is-invalid input, .pg-field.is-invalid select, .pg-field.is-invalid textarea, .pg-field :user-invalid { border-color: #dc2626; }
.pg-attach { display: inline-flex; align-items: center; gap: 8px; color: var(--pg-ink); font-size: 12.5px; cursor: pointer; }
.pg-attach .pl-icon { color: var(--pg-violet); }
.pg-ways { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pg-way { display: flex; gap: 16px; padding: 18px; background: #fff; border: 1px solid var(--pg-line); border-radius: 10px; box-shadow: 0 2px 10px rgba(11, 20, 55, .04); }
.pg-way > div { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; }
.pg-way strong { font-size: 14px; }
.pg-way a:not(.pg-link) { color: var(--pg-violet); text-decoration: none; }
.pg-way small { color: var(--pg-ink); font-size: 12px; line-height: 19px; }
.pg-way .pg-link { margin-top: 8px; }
.pg-way--wide { grid-column: 1 / -1; align-items: flex-start; background: var(--pg-soft); }
.pg-way--wide > div { flex: 1; }
.pg-way__map img { width: 180px; height: 90px; border-radius: 6px; object-fit: cover; }
.pg-band { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0 auto 40px; padding: 18px 72px; list-style: none; }
.pg-band li { display: flex; align-items: center; gap: 16px; padding: 18px 26px; background: var(--pg-soft); font-size: 12.5px; }
.pg-band li:first-child { border-radius: 10px 0 0 10px; } .pg-band li:last-child { border-radius: 0 10px 10px 0; }
.pg-band { gap: 0; }
.pg-band .pl-icon { flex: none; color: var(--pg-violet); }
.pg-band li:last-child .pl-icon { color: #e5326b; }
.pg-band strong { display: block; margin-bottom: 4px; font-size: 13.5px; }

@media (max-width: 1199.98px) {
    .pg-wrap, .pg-band { padding-left: 24px; padding-right: 24px; }
    .pg-hero__text { padding-left: 24px; }
    .pg-contact { grid-template-columns: 1fr; gap: 32px; }
    .pg-contact > section:first-child { padding-right: 0; border-right: 0; }
    .pg-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pg-band li { border-radius: 0 !important; }
    .pg-hero__float { display: none; }
}
@media (max-width: 767.98px) {
    .pg-hero { grid-template-columns: 1fr; }
    .pg-hero__img { position: absolute; inset: 0; opacity: .15; -webkit-mask-image: none; mask-image: none; }
    .pg-hero h1 { font-size: 30px; }
    .pg-form__row, .pg-ways, .pg-band { grid-template-columns: 1fr; }
    .pg-way--wide { flex-wrap: wrap; }
}

/* Paiement sécurisé */
.pg-section { padding-top: 40px; padding-bottom: 20px; }
.pg-features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.pg-feature { display: flex; gap: 18px; }
.pg-feature h3 { margin: 4px 0 8px; font-size: 15px; font-weight: 800; }
.pg-feature p { margin: 0; font-size: 12.5px; line-height: 20px; }
.pg-pay { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 100px; padding-top: 12px; padding-bottom: 32px; }
.pg-pay__methods { background: var(--pg-soft); }
.pg-pay__cols { display: grid; grid-template-columns: 1.3fr 1fr; }
.pg-pay__cols > div { padding: 0 32px; }
.pg-pay__cols > div + div { border-left: 1px solid var(--pg-line); }
.pg-pay__cols p { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.pg-logos { display: flex; flex-wrap: wrap; gap: 16px; margin: 0; padding: 0; list-style: none; }
.pg-logos li { display: inline-flex; align-items: center; justify-content: center; min-width: 72px; height: 44px; padding: 0 6px; background: #fff; border: 1px solid #d5d8e3; border-radius: 6px; }
.pg-logo-cb { background: linear-gradient(135deg, #1b4f9c, #2aa7a0) !important; color: #fff; font-weight: 900; font-size: 18px; }
.pg-logo-amex { background: #2e77bb !important; color: #fff; font-weight: 900; font-size: 15px; letter-spacing: .04em; }
.pg-help { background: var(--pg-soft); }
.pg-help h2 { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; font-size: 15px; font-weight: 800; }
.pg-help p { font-size: 12.5px; line-height: 20px; }

/* Qui sommes-nous */
.pg-hero--about { min-height: 300px; }
.pg-stats { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: -36px 0 34px; padding: 22px 26px; list-style: none; background: #fff; border-radius: 12px; box-shadow: 0 8px 30px rgba(11, 20, 55, .08); }
.pg-stats li { display: flex; align-items: center; gap: 14px; padding: 0 18px; }
.pg-stats li + li { border-left: 1px solid var(--pg-line); }
.pg-stats strong { display: block; font-size: 17px; font-weight: 800; }
.pg-stats small { font-size: 12px; }
.pg-h2--green::after { background: #16a34a; }
.pg-about { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 56px; margin-bottom: 40px; }
.pg-mission p { font-size: 13.5px; line-height: 22px; }
.pg-values { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.pg-value h3 { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; font-size: 14px; font-weight: 800; }
.pg-value .pg-ico { width: 44px; height: 44px; }
.pg-value p { margin: 0 0 0 56px; font-size: 11.5px; line-height: 19px; }
.pg-team { display: grid; grid-template-columns: 220px minmax(0, 1fr) 260px; gap: 30px; align-items: start; padding-bottom: 32px; }
.pg-team__intro p { font-size: 13.5px; line-height: 22px; }
.pg-team__list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
.pg-team__list li { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 0 8px 14px; text-align: center; overflow: hidden; }
.pg-team__list img { width: calc(100% + 16px); height: 96px; margin: 0 -8px 10px; padding-top: 10px; background: #f2f3f7; object-fit: contain; }
.pg-team__list strong { font-size: 13px; }
.pg-team__list small { font-size: 11px; color: #4b4f66; }
.pg-team__list a { margin-top: 6px; color: var(--pg-violet); }
.pg-join { padding: 26px 20px; background: var(--pg-violet); border-radius: 12px; color: #fff; }
.pg-join h2 { font-size: 18px; font-weight: 800; }
.pg-join p { font-size: 13px; line-height: 21px; }

@media (max-width: 1199.98px) {
    .pg-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pg-pay { grid-template-columns: 1fr; gap: 20px; }
    .pg-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 18px; }
    .pg-stats li + li { border-left: 0; }
    .pg-about, .pg-team { grid-template-columns: 1fr; gap: 24px; }
    .pg-values { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .pg-features, .pg-pay__cols, .pg-values { grid-template-columns: 1fr; }
    .pg-pay__cols > div + div { border-left: 0; margin-top: 16px; }
    .pg-stats { grid-template-columns: 1fr 1fr; margin-top: 16px; }
    .pg-team__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pg-hero__badges { gap: 12px; }
}

/* Carrières / partenaire / offres d'emploi */
.pg-mt { margin-top: 22px; }
.pg-title { margin: 0 0 22px; text-align: center; font-size: 20px; font-weight: 800; }
.pg-title::after { content: ""; display: block; width: 30px; height: 3px; margin: 10px auto 0; background: var(--pg-violet); border-radius: 2px; }
.pg-h3 { margin: 0 0 16px; font-size: 17px; font-weight: 800; }
.pg-hero__stats { position: absolute; top: 30px; right: 86px; z-index: 1; display: flex; flex-direction: column; gap: 14px; min-width: 230px; margin: 0; padding: 18px 22px; list-style: none; background: rgba(255, 255, 255, .96); border-radius: 10px; box-shadow: 0 10px 30px rgba(11, 20, 55, .15); }
.pg-hero__stats li { display: flex; align-items: center; gap: 14px; }
.pg-hero__stats .pg-ico { width: 38px; height: 38px; }
.pg-hero__stats strong { display: block; font-size: 15px; font-weight: 800; }
.pg-hero__stats small { font-size: 11px; }
.pg-values--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.pg-features--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.pg-careers { display: grid; grid-template-columns: minmax(0, 1fr) 350px 200px; gap: 16px; padding-bottom: 18px; }
.pg-rowhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pg-rowhead .pg-h3 { margin: 0 0 14px; }
.pg-jobs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.pg-jobs--all { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); margin: 14px 0 24px; }
.pg-job { display: flex; flex-direction: column; gap: 14px; padding: 16px; }
.pg-job__head { display: flex; gap: 12px; }
.pg-job__head .pg-ico { width: 44px; height: 44px; }
.pg-job h3 { margin: 2px 0 8px; font-size: 13px; font-weight: 800; line-height: 18px; }
.pg-job small { font-size: 11.5px; }
.pg-job .pg-link { margin-top: auto; }
.pg-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.pg-tags li { padding: 3px 8px; border: 1px solid var(--pg-line); border-radius: 4px; font-size: 11px; }
.pg-quotes { position: relative; display: flex; flex-direction: column; background: var(--pg-soft); }
.pg-quotes__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.pg-quotes__track::-webkit-scrollbar { display: none; }
.pg-quote { flex: 0 0 100%; margin: 0; scroll-snap-align: start; }
.pg-quote blockquote { margin: 0 0 16px; font-size: 12.5px; font-style: italic; line-height: 20px; }
.pg-quote figcaption { display: flex; align-items: center; gap: 12px; font-size: 12px; }
.pg-quote img { width: 46px; height: 46px; border-radius: 50%; background: #e7e9f3; object-fit: cover; }
.pg-quote strong, .pg-quote small { display: block; }
.pg-quotes__nav { display: flex; justify-content: flex-end; gap: 8px; margin-top: auto; padding-top: 10px; }
.pg-quotes__nav button { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; background: #fff; border: 1px solid var(--pg-line); border-radius: 50%; color: var(--pg-ink); }
.pg-spont { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; background: var(--pg-soft); }
.pg-spont img { width: 110px; align-self: center; }
.pg-spont h2 { margin: 0; font-size: 14px; font-weight: 800; line-height: 20px; }
.pg-spont p { margin: 0 0 6px; font-size: 12px; }
.pg-spont .pg-btn { height: 34px; padding: 0 16px; font-size: 12.5px; }
.pg-spont--row { flex-direction: row; align-items: center; justify-content: space-between; }
.pg-band--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.pg-band--5 .pg-ico { width: 44px; height: 44px; background: #fff; }
.pg-how { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 30px; padding-bottom: 18px; }
.pg-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; }
.pg-steps li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 0 8px; text-align: center; }
.pg-steps li + li::before { content: "→"; position: absolute; top: 16px; left: -12px; color: #9aa0c3; font-size: 20px; }
.pg-steps .pg-ico { width: 58px; height: 58px; margin-bottom: 8px; }
.pg-steps strong { font-size: 12.5px; }
.pg-steps small { font-size: 11.5px; color: #3b19e6; line-height: 17px; }
.pg-ready { display: flex; align-items: center; gap: 30px; margin-bottom: 30px; padding: 20px 30px; background: var(--pg-soft); border-radius: 10px; }
.pg-ready > div { flex: 1; }
.pg-ready h2 { margin: 0 0 6px; font-size: 17px; font-weight: 800; }
.pg-ready p { margin: 0; font-size: 13px; }
.pg-ready ul { display: flex; gap: 26px; margin: 0; padding: 0; list-style: none; font-size: 12px; }
.pg-ready li { display: flex; align-items: center; gap: 10px; }
.pg-ready .pg-ico { width: 40px; height: 40px; background: #fff; }
.pg-ready strong, .pg-ready small { display: block; }
.pg-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.pg-chip { padding: 6px 14px; border: 1px solid var(--pg-line); border-radius: 999px; color: var(--pg-ink); font-size: 13px; text-decoration: none; }
.pg-chip.is-active, .pg-chip:hover { background: var(--pg-violet); border-color: var(--pg-violet); color: #fff; }
.pg-modal { position: fixed; inset: 0; z-index: 1080; display: flex; align-items: center; justify-content: center; padding: 16px; }
.pg-modal__veil { position: absolute; inset: 0; background: rgba(11, 20, 55, .55); }
.pg-modal__box { position: relative; width: min(720px, 100%); max-height: 90vh; overflow-y: auto; padding: 30px; background: #fff; border-radius: 12px; font-size: 13.5px; }
.pg-modal__box h2 { margin: 0 0 6px; font-size: 22px; font-weight: 800; }
.pg-modal__box h3 { margin: 16px 0 6px; font-size: 15px; font-weight: 800; }
.pg-modal__close { position: absolute; top: 14px; right: 14px; color: var(--pg-ink); }

@media (max-width: 1399.98px) { .pg-hero__stats { right: 24px; } }
@media (max-width: 1199.98px) {
    .pg-hero__stats { display: none; }
    .pg-values--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pg-features--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pg-careers, .pg-how { grid-template-columns: 1fr; }
    .pg-jobs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pg-band--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .pg-ready { flex-wrap: wrap; }
}
@media (max-width: 767.98px) {
    .pg-values--6, .pg-features--5, .pg-jobs, .pg-band--5 { grid-template-columns: 1fr; }
    .pg-steps { grid-template-columns: 1fr 1fr; row-gap: 20px; }
    .pg-steps li + li::before { display: none; }
    .pg-ready ul { flex-direction: column; gap: 12px; }
    .pg-spont--row { flex-direction: column; align-items: flex-start; }
}

/* ===== Offres du moment (.ofm-*) ===== */
.ofm-hero { position: relative; display: flex; align-items: center; min-height: 160px; overflow: hidden; background: #fff4ea; }
.ofm-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: right center; -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000 60%); mask-image: linear-gradient(90deg, transparent 30%, #000 60%); }
.ofm-hero__text { position: relative; padding: 22px 80px; }
.ofm-hero h1 { margin: 0 0 6px; font-size: 38px; font-weight: 800; color: var(--pg-ink); }
.ofm-hero p { margin: 0 0 14px; font-size: 16px; font-weight: 600; }
.ofm-hero__chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ofm-hero__chips li { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; background: #fff; border-radius: 6px; box-shadow: 0 2px 8px rgba(11, 20, 55, .08); font-size: 12.5px; font-weight: 600; }
.ofm-hero__chips .pl-icon { color: #f05a00; }
.ofm-hero__burst { position: absolute; right: 240px; top: 50%; display: flex; flex-direction: column; padding: 14px 26px; background: #f26a10; border-radius: 30px 60px 30px 60px; color: #fff; transform: translateY(-50%) rotate(-6deg); }
.ofm-hero__burst strong { font-size: 44px; font-weight: 900; line-height: 1; }
.ofm-hero__burst small { font-size: 12px; }
.ofm-tiles { display: flex; gap: 12px; overflow-x: auto; padding-top: 14px; padding-bottom: 14px; scrollbar-width: thin; }
.ofm-tile { display: flex; flex: 0 0 auto; align-items: center; gap: 12px; min-width: 160px; padding: 12px 14px; background: #fff; border: 1px solid var(--pg-line); border-radius: 8px; color: var(--pg-ink); text-decoration: none; }
.ofm-tile strong, .ofm-tile small { display: block; } .ofm-tile strong { font-size: 13px; } .ofm-tile small { font-size: 12px; color: #4b4f66; }
.ofm-tile.is-active { border-color: var(--pg-violet); box-shadow: 0 0 0 1px var(--pg-violet); }
.ofm-tile.is-empty { opacity: .6; }
.ofm-tile__ico { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 8px; color: #fff; background: var(--pg-violet); }
.ofm-tile__ico.is-orange { background: #f59e0b; } .ofm-tile__ico.is-green { background: #22c55e; } .ofm-tile__ico.is-violet { background: #8b5cf6; }
.ofm-tile__ico.is-red { background: #ec4899; } .ofm-tile__ico.is-yellow { background: #eab308; } .ofm-tile__ico.is-blue { background: #3b19e6; }
.ofm-layout { display: grid; grid-template-columns: 210px minmax(0, 1fr) 290px; gap: 22px; align-items: start; }
.ofm-filters { position: sticky; top: calc(var(--tm-header-h, 80px) + 12px); padding: 18px 20px; background: #fff; border: 1px solid var(--pg-line); border-radius: 10px; }
.ofm-filters__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ofm-filters__head h2 { margin: 0; font-size: 16px; font-weight: 800; }
.ofm-filters__head a { color: var(--pg-violet); font-size: 11.5px; font-weight: 600; }
.ofm-filters fieldset { margin-bottom: 16px; }
.ofm-filters legend { margin-bottom: 6px; font-size: 13px; font-weight: 800; }
.ofm-filters input[type="range"] { width: 100%; accent-color: var(--pg-violet); }
.ofm-range { display: flex; justify-content: space-between; font-size: 11.5px; }
.ofm-check { display: flex; align-items: center; gap: 8px; margin: 4px 0; font-size: 12.5px; cursor: pointer; }
.ofm-check input { accent-color: var(--pg-violet); width: 15px; height: 15px; }
.ofm-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.ofm-bar .pg-h3 { display: flex; align-items: center; gap: 8px; margin: 0; }
.ofm-bar--mt { margin-top: 26px; }
.ofm-sort { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; }
.ofm-sort select { height: 32px; padding: 0 10px; border: 1px solid var(--pg-line); border-radius: 6px; font-size: 12.5px; }
.ofm-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ofm-card { position: relative; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--pg-line); border-radius: 10px; box-shadow: 0 2px 10px rgba(11, 20, 55, .05); }
.ofm-card__media { position: relative; display: block; aspect-ratio: 16 / 10; }
.ofm-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ofm-badge { position: absolute; top: 10px; left: 10px; padding: 3px 8px; background: #ef2b2b; border-radius: 5px; color: #fff; font-size: 14px; font-weight: 800; }
.ofm-badge.is-alt { background: #16a34a; font-size: 12px; }
.ofm-card__timer { position: absolute; left: 50%; bottom: 8px; display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; background: #fff; border-radius: 4px; color: var(--pg-ink); font-size: 10.5px; white-space: nowrap; transform: translateX(-50%); }
.ofm-card__timer .pl-icon { color: #ef2b2b; }
.ofm-card__fav { position: absolute; top: 8px; right: 8px; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0; background: rgba(0, 0, 0, .25); border: 0; border-radius: 50%; color: #fff; }
.ofm-card__fav.is-active { color: #ff4d6d; }
.ofm-card__body { display: flex; flex: 1; flex-direction: column; gap: 4px; padding: 10px 12px 12px; }
.ofm-card__place { color: #4b4f66; font-size: 11px; }
.ofm-card__place .pl-icon { color: #e5326b; }
.ofm-card__title { color: var(--pg-ink); font-size: 14.5px; font-weight: 800; text-decoration: none; }
.ofm-card__offer { color: #16a34a; font-size: 11.5px; font-weight: 600; }
.ofm-card__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 6px; margin: 4px 0 10px; }
.ofm-card__row > span:first-child { display: flex; flex-direction: column; gap: 3px; font-size: 11.5px; }
.ofm-card__row .pl-icon { color: #f5a623; }
.ofm-price { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.1; }
.ofm-price s { color: #8a8fa8; font-size: 11.5px; }
.ofm-price strong { color: var(--pg-violet); font-size: 19px; font-weight: 800; }
.ofm-card .pg-btn { height: 36px; margin-top: auto; font-size: 13px; }
.ofm-more { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 14px; color: var(--pg-violet); font-weight: 700; text-decoration: none; }
.ofm-empty { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 40px; background: var(--pg-soft); border-radius: 10px; color: #4b4f66; }
.ofm-last { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.ofm-mini { display: flex; flex-direction: column; gap: 2px; overflow: hidden; background: #fff; border: 1px solid var(--pg-line); border-radius: 8px; color: var(--pg-ink); text-decoration: none; }
.ofm-mini__media { position: relative; display: block; aspect-ratio: 16 / 10; margin-bottom: 6px; }
.ofm-mini__media img { width: 100%; height: 100%; object-fit: cover; }
.ofm-mini__media .ofm-badge { top: 6px; left: 6px; font-size: 12px; }
.ofm-mini__when { position: absolute; left: 6px; bottom: 6px; padding: 1px 6px; background: rgba(0, 0, 0, .55); border-radius: 3px; color: #fff; font-size: 10.5px; }
.ofm-mini > strong, .ofm-mini > small, .ofm-mini > .ofm-card__row { padding: 0 10px; }
.ofm-mini > strong { font-size: 12.5px; }
.ofm-mini > small { color: #4b4f66; font-size: 11px; }
.ofm-mini .ofm-card__row { margin: 4px 0 8px; align-items: center; }
.ofm-mini .ofm-price { flex-direction: row; align-items: baseline; gap: 6px; }
.ofm-mini .ofm-price strong { font-size: 14px; }
.ofm-side { display: flex; flex-direction: column; gap: 18px; }
.ofm-flash { padding: 22px; background: radial-gradient(circle at 80% 80%, #3b5bff, #0d1fa8 60%); border-radius: 10px; color: #fff; }
.ofm-flash h2 { margin: 0 0 4px; font-size: 26px; font-weight: 800; }
.ofm-flash p { margin: 0 0 12px; font-size: 14px; }
.ofm-flash__count { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 16px; }
.ofm-flash__count span { display: flex; flex-direction: column; align-items: center; padding: 6px 0; background: rgba(0, 0, 0, .3); border-radius: 6px; font-size: 10.5px; }
.ofm-flash__count b { font-size: 24px; font-weight: 800; }
.ofm-flash__big { display: flex; flex-direction: column; }
.ofm-flash__big strong { font-size: 52px; font-weight: 900; line-height: 1; }
.ofm-flash__big small { font-size: 13px; }
.ofm-flash__btn { display: flex; align-items: center; justify-content: center; height: 40px; background: #ffc400; border-radius: 6px; color: var(--pg-ink); font-weight: 800; font-size: 13px; text-decoration: none; }
.ofm-news { padding: 20px; background: var(--pg-soft); border-radius: 10px; }
.ofm-news h2 { margin: 0 0 8px; font-size: 16px; font-weight: 800; }
.ofm-news p { font-size: 12px; }
.ofm-news form { display: flex; overflow: hidden; background: #fff; border: 1px solid var(--pg-line); border-radius: 6px; }
.ofm-news input[type="email"] { flex: 1; min-width: 0; padding: 0 12px; border: 0; font-size: 12.5px; }
.ofm-news .pg-btn { height: 38px; padding: 0 16px; border-radius: 0; font-size: 12.5px; }
.ofm-news__msg { margin: 8px 0 0; color: #16a34a; font-weight: 600; }
.ofm-news__msg.is-error { color: #dc2626; }
.ofm-features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 26px auto 34px; list-style: none; }
.ofm-features li { display: flex; align-items: center; gap: 14px; padding: 16px 24px; background: var(--pg-soft); font-size: 12px; }
.ofm-features .pl-icon { flex: none; color: var(--pg-violet); }
.ofm-features strong { display: block; font-size: 13.5px; }

@media (max-width: 1399.98px) {
    .ofm-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ofm-last { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ofm-hero__burst { right: 60px; }
}
@media (max-width: 1199.98px) {
    .ofm-layout { grid-template-columns: 1fr; }
    .ofm-filters { position: static; }
    .ofm-side { flex-direction: row; flex-wrap: wrap; } .ofm-side > * { flex: 1 1 280px; }
    .ofm-hero__text { padding: 20px 24px; }
    .ofm-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .ofm-grid, .ofm-last { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ofm-hero__burst { display: none; }
    .ofm-hero h1 { font-size: 28px; }
    .ofm-features { grid-template-columns: 1fr; }
}
@media (max-width: 479.98px) { .ofm-grid, .ofm-last { grid-template-columns: 1fr; } }

/* Épingle de carte (Explorer). */
.pg-pin span { display: block; width: 22px; height: 22px; background: var(--pg-violet, #3b19e6); border: 3px solid #fff; border-radius: 50% 50% 50% 0; box-shadow: 0 2px 6px rgba(0, 0, 0, .35); transform: rotate(-45deg); }

/* ===== Bons cadeaux (.gc-*) ===== */
.gc { display: grid; grid-template-columns: 230px minmax(0, 1fr); min-height: 100%; }
.gc-filters { padding: 26px 20px; background: #fff; border-right: 1px solid var(--pg-line); }
.gc-filters form { position: sticky; top: calc(var(--tm-header-h, 80px) + 12px); }
.gc-filters fieldset { margin-bottom: 18px; }
.gc-filters legend { margin-bottom: 6px; font-size: 13px; font-weight: 800; }
.gc-filters .ofm-check .pl-icon { color: var(--pg-violet); }
.gc-filters small { display: block; margin-top: 4px; font-size: 11px; }
.gc-main { min-width: 0; }
.gc-hero { display: grid; grid-template-columns: minmax(0, 1fr) 420px; align-items: center; min-height: 160px; padding: 0 0 0 40px; overflow: hidden; background: linear-gradient(90deg, #fff 40%, #f1edfb); }
.gc-hero h1 { display: flex; align-items: center; gap: 12px; margin: 16px 0 6px; font-size: 32px; font-weight: 800; }
.gc-hero h1 .pl-icon { color: var(--pg-violet); }
.gc-hero p { margin: 0 0 16px; font-size: 14px; }
.gc-hero > img { width: 100%; height: 160px; object-fit: cover; -webkit-mask-image: linear-gradient(90deg, transparent, #000 35%); mask-image: linear-gradient(90deg, transparent, #000 35%); }
.gc-hero__badges { display: flex; flex-wrap: wrap; gap: 26px; margin: 0 0 16px; padding: 0; list-style: none; font-size: 11.5px; }
.gc-hero__badges li { display: flex; align-items: center; gap: 10px; }
.gc-hero__badges .pl-icon { color: var(--pg-violet); }
.gc-hero__badges strong { display: block; font-size: 12.5px; }
.gc-crumb { margin-top: 12px; font-size: 12px; }
.gc-cols { display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 24px; padding: 20px 26px 30px 40px; }
.gc-section { position: relative; margin-bottom: 24px; }
.gc-cats { display: grid; grid-auto-columns: calc((100% - 48px) / 5); grid-auto-flow: column; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.gc-cats::-webkit-scrollbar { display: none; }
.gc-cat { position: relative; display: flex; flex-direction: column; padding-bottom: 12px; overflow: hidden; background: #fff; border: 1px solid var(--pg-line); border-radius: 8px; color: var(--pg-ink); text-decoration: none; scroll-snap-align: start; }
.gc-cat.is-active { border-color: var(--pg-violet); box-shadow: 0 0 0 1px var(--pg-violet); }
.gc-cat img { width: 100%; height: 92px; object-fit: cover; }
.gc-cat__ico { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin: -16px 0 6px 10px; border: 2px solid #fff; border-radius: 50%; color: #fff; background: var(--pg-violet); }
.gc-cat__ico.is-green { background: #22c55e; } .gc-cat__ico.is-violet { background: #8b5cf6; } .gc-cat__ico.is-orange { background: #f97316; }
.gc-cat__ico.is-red { background: #ec4899; } .gc-cat__ico.is-yellow { background: #eab308; }
.gc-cat strong, .gc-cat small { padding: 0 12px; } .gc-cat strong { font-size: 13px; } .gc-cat small { font-size: 11px; color: #4b4f66; }
.gc-next { position: absolute; top: 80px; right: -14px; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; background: #fff; border: 1px solid var(--pg-line); border-radius: 50%; box-shadow: 0 2px 8px rgba(11, 20, 55, .12); color: var(--pg-violet); }
.gc-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.gc-card { display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--pg-line); border-radius: 8px; box-shadow: 0 2px 10px rgba(11, 20, 55, .05); }
.gc-card__media { position: relative; display: block; aspect-ratio: 16 / 10; }
.gc-card__media img { width: 100%; height: 100%; object-fit: cover; }
.gc-badge { position: absolute; top: 8px; left: 8px; padding: 2px 7px; background: var(--pg-violet); border-radius: 4px; color: #fff; font-size: 10.5px; font-weight: 700; }
.gc-badge.is-green { background: #16a34a; } .gc-badge.is-orange { background: #f97316; }
.gc-card__body { display: flex; flex: 1; flex-direction: column; gap: 2px; padding: 10px; }
.gc-card__title { color: var(--pg-ink); font-size: 13px; font-weight: 800; text-decoration: none; }
.gc-card__body > small { color: #4b4f66; font-size: 11px; }
.gc-card .ofm-price small { color: #4b4f66; font-size: 10.5px; }
.gc-card .ofm-price strong { font-size: 16px; color: var(--pg-ink); }
.gc-card__cta { height: 32px !important; margin-top: auto; padding: 0 8px !important; font-size: 11.5px !important; }
.gc-more { display: flex; width: max-content; margin: 16px auto 0; }
.gc-how { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; padding: 18px 24px; background: var(--pg-soft); border-radius: 10px; }
.gc-how__title { display: flex; align-items: center; gap: 10px; padding-right: 24px; border-right: 1px solid var(--pg-line); font-size: 13px; }
.gc-how__title .pl-icon, .gc-how .pl-icon { color: var(--pg-violet); }
.gc-how ol { display: flex; flex: 1; flex-wrap: wrap; justify-content: space-between; gap: 18px; margin: 0; padding: 0; list-style: none; }
.gc-how li { display: flex; align-items: center; gap: 10px; font-size: 11.5px; }
.gc-how li + li::before { content: "→"; margin-right: 8px; color: #9aa0c3; }
.gc-how strong { display: block; font-size: 12.5px; }
.gc-side { display: flex; flex-direction: column; gap: 16px; }
.gc-why { display: flex; flex-direction: column; gap: 14px; margin: 0 0 16px; padding: 0; list-style: none; }
.gc-why li { display: flex; gap: 12px; font-size: 11px; }
.gc-why .pl-icon { flex: none; color: var(--pg-violet); }
.gc-why strong { display: block; font-size: 12px; }
.gc-pro { display: flex; flex-direction: column; gap: 6px; padding: 14px; background: var(--pg-soft); border: 1px solid var(--pg-line); border-radius: 8px; font-size: 11.5px; }
.gc-pro .pg-btn { height: 34px; font-size: 12.5px; }
.gc-free { background: var(--pg-soft); }
.gc-free > div { display: flex; gap: 14px; margin-bottom: 14px; font-size: 11.5px; }
.gc-free > div .pl-icon { flex: none; color: var(--pg-violet); }
.gc-free strong { display: block; font-size: 13.5px; }

/* Formulaire « Offrir » */
.gc-buy { padding: 10px 0 40px; }
.gc-buy__title { display: flex; align-items: center; gap: 12px; margin: 14px 0 18px; font-size: 28px; font-weight: 800; }
.gc-buy__title .pl-icon { color: var(--pg-violet); }
.gc-buy__cols { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.gc-buy__main { display: flex; flex-direction: column; gap: 16px; }
.gc-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; font-size: 13px; font-weight: 600; }
.gc-field input, .gc-field select, .gc-field textarea { padding: 9px 12px; border: 1px solid #cfd3e3; border-radius: 6px; font-size: 13.5px; font-weight: 400; }
.gc-field input, .gc-field select { height: 40px; }
.gc-field.is-invalid input, .gc-field.is-invalid select, .gc-field.is-invalid textarea { border-color: #dc2626; }
.gc-field small { font-weight: 400; }
.gc-err { color: #dc2626; font-size: 12px; font-weight: 600; }
.gc-alert { padding: 10px 14px; background: #fdecec; border-radius: 6px; color: #b91c1c; font-weight: 600; }
.gc-radios { display: flex; flex-wrap: wrap; gap: 10px; }
.gc-radio { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid var(--pg-line); border-radius: 8px; font-weight: 600; cursor: pointer; }
.gc-radio:has(input:checked) { border-color: var(--pg-violet); background: #f3f1fe; }
.gc-radio input { accent-color: var(--pg-violet); }
.gc-radio .pl-icon { color: var(--pg-violet); }
.gc-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.gc-pill { padding: 6px 14px; background: #fff; border: 1px solid var(--pg-line); border-radius: 999px; font-weight: 700; }
.gc-pill:hover { border-color: var(--pg-violet); color: var(--pg-violet); }
.gc-check { display: flex; gap: 10px; align-items: flex-start; font-size: 12.5px; }
.gc-check input { margin-top: 2px; accent-color: var(--pg-violet); }
.gc-check.is-invalid span { color: #dc2626; }
.gc-check a { color: var(--pg-violet); }
.gc-buy__side { position: sticky; top: calc(var(--tm-header-h, 80px) + 12px); }
.gc-summary { display: flex; flex-direction: column; gap: 6px; }
.gc-summary img { width: 100%; height: 150px; margin-bottom: 6px; border-radius: 8px; object-fit: cover; }
.gc-summary small { color: #4b4f66; }
.gc-summary__line { margin: 6px 0 0; font-size: 13px; }
.gc-summary__total { display: flex; align-items: baseline; justify-content: space-between; margin: 8px 0; padding-top: 10px; border-top: 1px solid var(--pg-line); font-weight: 700; }
.gc-summary__total strong { color: var(--pg-violet); font-size: 24px; }
.gc-summary__perks { display: flex; flex-direction: column; gap: 4px; margin: 0 0 12px; padding: 0; list-style: none; font-size: 12px; }
.gc-summary__perks .pl-icon { color: #16a34a; }
.gc-summary .pg-link { align-self: center; margin-top: 6px; }

/* Confirmation / bon imprimable */
.gc-done { padding: 30px 0 50px; }
.gc-done__ok { display: flex; align-items: center; justify-content: center; gap: 10px; color: #16a34a; font-size: 20px; font-weight: 800; }
.gc-voucher { max-width: 560px; margin: 20px auto; padding: 26px 30px; background: linear-gradient(135deg, #3b19e6, #7c3aed); border-radius: 16px; box-shadow: 0 14px 40px rgba(59, 25, 230, .3); color: #fff; text-align: center; }
.gc-voucher header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; font-weight: 800; }
.gc-voucher header small { color: #ffd166; font-weight: 600; }
.gc-voucher header strong { padding: 4px 10px; background: rgba(255, 255, 255, .18); border-radius: 999px; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.gc-voucher__amount { margin: 6px 0; font-size: 46px; font-weight: 900; }
.gc-voucher__what { margin: 0; font-size: 15px; font-weight: 600; }
.gc-voucher blockquote { margin: 12px 0; font-style: italic; }
.gc-voucher__code { margin: 14px 0 6px; font-size: 14px; }
.gc-voucher__code strong { display: inline-block; margin-left: 8px; padding: 6px 14px; background: #fff; border-radius: 6px; color: var(--pg-violet); font-family: ui-monospace, monospace; font-size: 20px; letter-spacing: .08em; }
.gc-done__info { text-align: center; }
.gc-done__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

@media (max-width: 1399.98px) { .gc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .gc-cats { grid-auto-columns: calc((100% - 24px) / 3); } }
@media (max-width: 1199.98px) {
    .gc { grid-template-columns: 1fr; }
    .gc-filters { border-right: 0; border-bottom: 1px solid var(--pg-line); }
    .gc-filters form { position: static; }
    .gc-cols, .gc-buy__cols { grid-template-columns: 1fr; padding-left: 24px; padding-right: 24px; }
    .gc-hero { grid-template-columns: 1fr; padding: 0 24px; }
    .gc-hero > img { display: none; }
    .gc-buy__side { position: static; }
}
@media (max-width: 767.98px) {
    .gc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gc-cats { grid-auto-columns: 70%; }
    .gc-how__title { border-right: 0; }
    .gc-buy__cols { padding: 0; }
}
@media print { .gc-done__actions, .gc-done__ok, .gc-done__info { display: none; } }

/* ===== Explorer (.ex2-*) ===== */
.ex2-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; font-size: 13px; font-weight: 800; }
.ex2-input { display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 10px; border: 1px solid #cfd3e3; border-radius: 6px; }
.ex2-input input { flex: 1; min-width: 0; border: 0; font-size: 12.5px; font-weight: 400; outline: 0; }
.ex2-input .pl-icon { color: #6b6f85; }
.ex2-field select { height: 38px; padding: 0 10px; border: 1px solid #cfd3e3; border-radius: 6px; font-size: 12.5px; font-weight: 400; }
.ex2-stars { display: flex; gap: 6px; }
.ex2-stars input { position: absolute; opacity: 0; }
.ex2-stars span { display: inline-flex; align-items: center; gap: 4px; padding: 5px 8px; border: 1px solid var(--pg-line); border-radius: 6px; font-size: 11.5px; cursor: pointer; }
.ex2-stars .pl-icon { color: #f5a623; }
.ex2-stars input:checked + span { border-color: var(--pg-violet); background: #f3f1fe; }
.ex2-stars input:focus-visible + span { outline: 2px solid var(--pg-violet); }
.ex2-total { margin: 12px 0 0; color: var(--pg-violet); font-size: 11.5px; text-align: center; }
.ex2-main { padding: 22px 26px 10px 40px; }
.ex2-head h1 { margin: 0 0 4px; font-size: 30px; font-weight: 800; }
.ex2-head p { margin: 0 0 18px; font-size: 13.5px; }
.ex2-track { display: grid; grid-auto-columns: calc((100% - 48px) / 4); grid-auto-flow: column; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.ex2-track::-webkit-scrollbar { display: none; }
.ex2-col { overflow: hidden; background: #fff; border: 1px solid var(--pg-line); border-radius: 10px; box-shadow: 0 2px 10px rgba(11, 20, 55, .05); scroll-snap-align: start; }
.ex2-col__media { position: relative; display: block; height: 150px; }
.ex2-col__media img { width: 100%; height: 100%; object-fit: cover; }
.ex2-col__media .gc-cat__ico { position: absolute; left: 14px; bottom: -18px; width: 40px; height: 40px; margin: 0; border-width: 3px; }
.ex2-col__body { display: flex; flex-direction: column; gap: 4px; padding: 24px 16px 14px; }
.ex2-col__body h2 { margin: 0; font-size: 14px; font-weight: 800; }
.ex2-col__body small { color: #4b4f66; font-size: 11.5px; }
.ex2-col__body .pg-link { margin-top: 8px; font-size: 12px; }
.ex2-collections .gc-next { top: 110px; }
.ex2-cats { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; }
.ex2-cats a:not(.pg-btn) { display: inline-flex; align-items: center; gap: 8px; padding: 6px 4px; color: var(--pg-ink); font-size: 12.5px; text-decoration: none; }
.ex2-cats a:not(.pg-btn) .pl-icon { color: var(--pg-violet); }
.ex2-cats a:not(.pg-btn):hover { color: var(--pg-violet); }
.ex2-cats .pg-btn { height: 36px; margin-left: auto; font-size: 12.5px; }
.ex2-cols { display: grid; grid-template-columns: minmax(0, 1fr) 430px; gap: 18px; }
.ex2-ideas { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ex2-ideas .gc-card { position: relative; }
.ex2-near .pg-h3 { display: flex; align-items: center; gap: 6px; } .ex2-near .pg-h3 .pl-icon { color: #16a34a; }
.ex2-near__body { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 14px; }
.ex2-map { height: 180px; border-radius: 8px; overflow: hidden; background: #e8ecf3; }
.ex2-near__list { display: flex; flex-direction: column; gap: 12px; margin: 0; padding-left: 20px; color: var(--pg-violet); font-weight: 800; }
.ex2-near__list li { font-size: 12px; }
.ex2-near__list li > a { display: inline-flex; flex-direction: column; color: var(--pg-ink); text-decoration: none; }
.ex2-near__list strong { font-size: 12px; }
.ex2-near__list small { color: #4b4f66; font-weight: 400; font-size: 11px; }
.ex2-near__list em { float: right; color: #4b4f66; font-style: normal; font-weight: 400; font-size: 11px; }
.ex2-near__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; }
.ex2-near__actions .pg-btn { height: 34px; font-size: 12.5px; }
.ex2-features { padding: 0; }

@media (max-width: 1399.98px) {
    .ex2-cols { grid-template-columns: 1fr; }
    .ex2-track { grid-auto-columns: calc((100% - 32px) / 3); }
}
@media (max-width: 1199.98px) { .ex2-main { padding: 18px 24px; } }
@media (max-width: 767.98px) {
    .ex2-track { grid-auto-columns: 78%; }
    .ex2-ideas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ex2-near__body { grid-template-columns: 1fr; }
    .ex2-cats .pg-btn { margin-left: 0; }
}
.lg-pending { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 14px; padding: 10px 14px; background: #fff8e6; border: 1px solid #f5d98b; border-radius: 8px; font-size: 13px; }
.lg-pending a { color: var(--lg-violet); font-weight: 700; }
