/* ==========================================================================
 *  FLOW « BON CADEAUX » — 8 écrans de la maquette (landing, listings,
 *  tunnel « Offrir un cadeau »).
 *  S'appuie sur les jetons --pl-* et réutilise .pl-card / .card-grid /
 *  .act-* (recherche, chips, sidebar de filtres) des autres flows.
 * ========================================================================== */

/* Jetons propres au flow (spec Cadeaux). */
:root {
    --gift-purple: #5d00ff;      /* accents carte cadeau (violet action) */
    --gift-form-bg: #f7f8fb;     /* fond de la zone formulaire du tunnel */
    --gift-field-border: #e5e7eb;
    --gift-field-icon: #9ca3af;
    --gift-required: #ef4444;
}

/* --------------------------------------------------------------------------
 *  ÉCRAN 1 — HERO
 * ------------------------------------------------------------------------ */

.gift-hero { position: relative; background: var(--pl-white); overflow: hidden; }
.gift-hero__img {
    position: absolute; right: 0; top: 0; height: 100%; width: auto;
    object-fit: cover; object-position: right center;
}
.gift-hero__inner { position: relative; z-index: 1; padding-block: 83px 71px; }
.gift-hero__title {
    margin: 0 0 14px; color: var(--pl-cta);
    font-size: 42px; font-weight: 700; line-height: 1.1;
}
.gift-hero__subtitle {
    margin: 0 0 30px; color: var(--pl-text-strong);
    font-size: 20px; font-weight: 700; line-height: 1.4;
}

.gift-amounts { display: flex; align-items: center; gap: 22px; margin-bottom: 20px; }
.gift-amount {
    min-width: 122px; height: 40px; padding: 0 18px;
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    border: 1.5px solid var(--gift-purple); border-radius: 8px;
    background: var(--pl-white); color: var(--gift-purple);
    font-size: 15px; font-weight: 600; cursor: pointer;
}
.gift-amount.is-active { background: var(--gift-purple); color: var(--pl-white); }
.gift-amount--custom { background: #efe6ff; border-color: var(--gift-purple); cursor: default; justify-content: space-between; }
.gift-amount__steps { display: inline-flex; flex-direction: column; }
.gift-amount__steps button {
    border: 0; background: none; padding: 0; line-height: 0;
    color: var(--gift-purple); cursor: pointer;
}
.gift-amount__steps button:first-child .pl-icon { transform: rotate(180deg); }
/* Violet spécifique au CTA du héros (maquette : #6d28d9, ≠ --pl-action). */
.gift-hero__cta { width: 194px; min-height: 40px; background: #6d28d9; }
.gift-hero__cta:hover { background: #5b21b8; }

/* Rangée d'arguments : 4 pastilles teintées. Maquette : tuiles à largeur de
   contenu (250/320/279/305), gouttière 23px, hauteur 147, icône 46, texte 26. */
.gift-args-section { padding: 46px 0 26px; }
.gift-args { display: flex; gap: 23px; }
.gift-arg {
    flex: 1 1 auto;
    display: flex; align-items: center; gap: 11px;
    border-radius: 10px; padding: 39px 30px 39px 33px;
    font-size: 26px; font-weight: 700; line-height: 1.3;
    white-space: nowrap;
}
.gift-arg .pl-icon { flex: none; }
.gift-arg--violet { background: #efe6ff; color: var(--gift-purple); }
.gift-arg--blue   { background: #e9effd; color: var(--pl-info); }
.gift-arg--green  { background: #e6f6ec; color: var(--pl-success); }
.gift-arg--orange { background: #fff2e6; color: var(--pl-cta); }

/* --------------------------------------------------------------------------
 *  MOSAÏQUE DE CATÉGORIES (écrans 1 et 2-3) — tuiles-images maquette.
 * ------------------------------------------------------------------------ */

/* Comme .card-grid : la mosaïque déborde de 6px de chaque côté du texte
   (mesuré sur la maquette : x104 → x1335). */
.gift-mosaic {
    display: grid; grid-template-columns: repeat(8, 1fr);
    grid-auto-rows: 306px; grid-auto-flow: dense; gap: 15px;
}
.gift-tile { display: block; border-radius: 12px; overflow: hidden; }
.gift-tile img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gift-tile--small { grid-column: span 2; }
.gift-tile--tall  { grid-column: span 2; grid-row: span 2; }
.gift-tile--wide  { grid-column: span 3; }

/* --------------------------------------------------------------------------
 *  DOUBLE BANNIÈRE CTA (bleu entreprise / jaune montant libre).
 * ------------------------------------------------------------------------ */

.gift-duo-section { background: var(--pl-surface-dashboard); padding: 46px 0; }
.gift-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.gift-banner {
    position: relative; overflow: hidden; border-radius: 12px;
    min-height: 293px; padding: 42px 36px;
    display: flex; align-items: flex-start;
}
.gift-banner--blue { background: #2b59e0; }
.gift-banner--yellow { background: #fcd951; }
.gift-banner__text { position: relative; z-index: 1; max-width: 46%; }
.gift-banner__title { margin: 0 0 12px; font-size: 27px; font-weight: 700; line-height: 1.25; }
.gift-banner--blue .gift-banner__title { color: var(--pl-white); }
.gift-banner--yellow .gift-banner__title { color: var(--gift-purple); }
.gift-banner__desc { margin: 0 0 26px; font-size: 15px; line-height: 1.5; }
.gift-banner--blue .gift-banner__desc { color: rgb(255 255 255 / .92); }
.gift-banner--yellow .gift-banner__desc { color: var(--gift-purple); }
.gift-banner__btn {
    display: inline-flex; align-items: center; justify-content: center;
    height: 42px; padding: 0 20px; border-radius: 8px;
    background: var(--pl-white); color: #2b59e0;
    font-size: 14px; font-weight: 600; text-decoration: none;
}
.gift-banner__btn--violet { background: var(--gift-purple); color: var(--pl-white); }
.gift-banner__img {
    position: absolute; right: 0; bottom: 0; top: 0; height: 100%;
    max-width: 52%; object-fit: contain; object-position: right bottom;
}

/* Titre de section seul (sans bouton à droite). */
.gift-solo-title { margin-bottom: var(--pl-sp-24); }

/* --------------------------------------------------------------------------
 *  CARTES CADEAUX (spec §1.F) + badges verts/orange.
 * ------------------------------------------------------------------------ */

.pl-card__tag--new { background: var(--pl-success); }
.pl-card__tag--hot { background: var(--pl-cta); }

.gift-card__tagline { color: var(--pl-text-secondary); font-size: 14px; }
.gift-card__label { color: var(--pl-error); font-size: 14px; font-weight: 500; }
.gift-card .pl-card__title { font-size: 17px; }
/* Maquette « Bon cadeaux » : corps de carte plus aéré que celui d'Activités
   (31px du libellé au titre, 29px du titre à la note). */
.gift-card .pl-card__body { gap: 22px; }

/* --------------------------------------------------------------------------
 *  BANNIÈRE « POUR OFFRIR UN CADEAU ? » (fond crème).
 * ------------------------------------------------------------------------ */

/* Maquette : bande pleine largeur #fff2e6, 545px de haut, sans arrondi ;
   contenu aligné sur .home-container, coffrets dorés en absolu à droite. */
.gift-why-section { padding-block: 24px 0; }
.gift-why {
    position: relative; overflow: hidden;
    background: #fff2e6; min-height: 545px;
    display: flex; align-items: center;
}
.gift-why > .container { width: 100%; }
.gift-why__text { position: relative; z-index: 1; max-width: 46%; }
.gift-why__title { margin: 0 0 26px; color: var(--pl-cta); font-size: 38px; font-weight: 600; }
.gift-why__list { list-style: none; margin: 0 0 30px; padding: 0; display: grid; gap: 20px; }
.gift-why__list li { display: flex; align-items: flex-start; gap: 16px; }
/* Maquette : glyphe orange posé directement sur le fond crème (pas de
   pastille blanche). */
.gift-why__icon {
    flex: none; width: 28px; height: 28px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--pl-cta);
}
.gift-why__list strong { display: block; font-size: 19px; font-weight: 700; color: var(--pl-text-strong); }
.gift-why__list small { display: block; margin-top: 2px; font-size: 14px; color: var(--pl-text-secondary); }
.gift-why__actions { display: flex; align-items: center; gap: 26px; }
.gift-why__link { color: var(--pl-cta); font-size: 15px; font-weight: 600; text-decoration: none; }
.gift-why__link:hover { text-decoration: underline; }
.gift-why__img {
    position: absolute; right: 0; top: 0; height: 100%;
    object-fit: cover; object-position: right center;
}

/* Destinataires : 4 tuiles-images. */
.gift-recipients { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.gift-recipients .gift-tile { height: 306px; }

/* --------------------------------------------------------------------------
 *  ÉCRAN 4 — état « image manquante » des cartes filtrées.
 * ------------------------------------------------------------------------ */

.gift-ph { background: #d7d9de; display: flex; align-items: center; justify-content: center; }
.gift-ph__badge {
    position: absolute; top: 12px; left: 12px;
    padding: 4px 12px; border-radius: 999px;
    background: rgb(255 255 255 / .55); color: #5a6070;
    font-size: 12px; font-weight: 600;
}
.gift-ph__icon { color: #9aa0ab; line-height: 0; }

/* Le compteur du chip « Filtre » du listing Cadeaux. */
.gift-chip-filter__back { display: inline-flex; line-height: 0; }
.gift-chip-filter__back[hidden] { display: none; }

/* Grille filtrée : 3 colonnes, les 12 cartes visibles (écran 4). */
.gift-fgrid { grid-template-columns: repeat(3, 1fr); }
.gift-fgrid .pl-card__title { min-height: 2.7em; }

/* --------------------------------------------------------------------------
 *  TUNNEL « OFFRIR UN CADEAU » (écrans 5-8).
 * ------------------------------------------------------------------------ */

/* Maquette : le fil d'Ariane du tunnel est à y145 (nous étions à 130). */
.gift-tunnel-page { padding: 39px 0 64px; }
.gift-tunnel-page .act-breadcrumb { margin-bottom: 39px; }
/* Maquette « Bon cadeaux (1) » : le tunnel occupe la grille des IMAGES
   (x104 -> x1336, 1232) et non celle des blocs de texte ; panneau gris de 813,
   22px d'écart, récapitulatif de 396. */
.gift-tunnel-page .container { --bs-gutter-x: 208px; }
.gift-tunnel {
    display: grid; grid-template-columns: 1fr 396px;
    gap: 22px; align-items: start;
}

/* Colonne gauche : panneau gris clair contenant les cartes blanches.
   Maquette : retrait interne de 36 (la carte blanche va de x145 à x884). */
.gift-steps { background: var(--gift-form-bg); border-radius: 12px; padding: 36px; }
.gift-formcard {
    background: var(--pl-white); border-radius: 12px;
    padding: 32px 24px; margin-bottom: 39px;
}
/* Maquette : dans la carte « A qui vous l'offrez », seul le premier champ est
   suivi d'un grand écart (105px d'un libellé à l'autre contre 91) ; le champ
   destinataire retrouve l'écart courant avant la zone de message. Le dernier
   champ ne porte pas de marge : c'est le retrait de la carte qui ferme le bloc. */
.gift-formcard--recipient .gift-field:first-of-type { margin-bottom: 25px; }
.gift-formcard .gift-field:last-child { margin-bottom: 0; }
/* Maquette : 50px du haut du panneau au titre et 34 jusqu'a la 1re option. */
.gift-formcard--pay { background: none; padding: 9px 0 0; margin: 0; }
.gift-formcard--pay .gift-formcard__title { margin-bottom: 32px; }
/* Maquette : titre de carte 26px (215px d'encre pour « Vos informations »),
   intitulé 18px (258 pour « Saisissez vos informations ici ») et mention
   « Champ obligatoire* » en 16px (145) — nous étions à 28 / 16 / 14. */
.gift-formcard__title { margin: 0 0 27px; font-size: 26px; font-weight: 700; color: var(--pl-text-strong); }
.gift-formcard__lead { margin: 0 0 6px; font-size: 18px; font-weight: 700; color: var(--pl-text-strong); }
.gift-formcard__lead--head { margin: 0 0 6px; }
.gift-formcard__required { margin: 0 0 22px; font-size: 16px; color: var(--pl-text); }

/* Champs (spec C5) : icône préfixe, états focus / rempli / erreur.
   Maquette : champ de 48px de haut et 18px jusqu'au libellé suivant (nous
   étions à 52 et 27, d'où 13px de dérive par champ). */
.gift-field { margin-bottom: 11px; }
/* Maquette : les libellés de champ sont en graisse NORMALE, pas demi-grasse. */
.gift-field__label { display: block; margin-bottom: 8px; font-size: 16px; font-weight: 400; color: var(--pl-text-strong); }
.gift-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.gift-input { position: relative; }
.gift-input__icon {
    position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
    color: var(--gift-field-icon); line-height: 0;
}
.gift-input input {
    width: 100%; height: 48px; padding: 0 14px 0 44px;
    border: 1px solid var(--gift-field-border); border-radius: 8px;
    font-size: 15px; color: var(--pl-text-strong); background: var(--pl-white);
}
.gift-input input::placeholder { color: var(--pl-text-disabled); }
.gift-input input:focus { outline: none; border-color: var(--gift-purple); box-shadow: 0 0 0 3px rgb(93 0 255 / .08); }
.gift-field.has-error .gift-input input { border-color: var(--gift-required); }
.gift-field__error { margin: 6px 0 0; font-size: 13px; color: var(--gift-required); }
.gift-field__hint { margin: 8px 0 0; font-size: 13px; color: var(--pl-text-disabled); }

.gift-textarea textarea {
    width: 100%; padding: 14px; resize: vertical; min-height: 114px;
    border: 1px solid var(--gift-field-border); border-radius: 8px;
    font-size: 15px; color: var(--pl-text-strong); font-family: inherit;
}
.gift-textarea textarea::placeholder { color: var(--pl-text-disabled); }
.gift-textarea textarea:focus { outline: none; border-color: var(--gift-purple); box-shadow: 0 0 0 3px rgb(93 0 255 / .08); }
.gift-field__counter { margin: 6px 0 0; font-size: 13px; color: var(--pl-text-muted); }

.gift-consent { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--pl-text); cursor: pointer; }
.gift-consent input { width: 18px; height: 18px; accent-color: var(--gift-purple); flex: none; }

.gift-tunnel__foot {
    display: flex; align-items: center; justify-content: flex-end;
    gap: 22px; padding: 4px 8px 20px;
}
.gift-tunnel__total { margin: 0; font-size: 18px; font-weight: 700; color: var(--pl-text-strong); }
/* Maquette : bouton « Suivant » de 107 x 48, posé 31px sous la dernière carte. */
.gift-next { min-width: 108px; height: 48px; }
.gift-formcard:last-of-type { margin-bottom: 26px; }

/* Modes de paiement (spec C7).
   Maquette « Bon cadeaux (4) » : options de 84px de haut espacees de 31,
   retrait interne de 27 et libelle en 18px — nous avions 70 / 18 / 20 / 16. */
.gift-pays { display: grid; gap: 31px; }
.gift-pay {
    display: flex; align-items: center; gap: 14px;
    background: var(--pl-white); border: 1px solid transparent; border-radius: 10px;
    padding: 27px; cursor: pointer;
    font-size: 18px; font-weight: 700; color: var(--pl-text-strong);
}
.gift-pay input { width: 20px; height: 20px; accent-color: var(--gift-purple); flex: none; }
.gift-pay:has(input:checked) { border-color: var(--gift-purple); }

/* --------------------------------------------------------------------------
 *  RÉCAPITULATIF DE COMMANDE (spec C3), colonne droite sticky.
 * ------------------------------------------------------------------------ */

.gift-summary {
    position: sticky; top: 24px;
    background: var(--pl-white); border: 1px solid var(--pl-border);
    border-radius: 12px; padding: 24px;
}
/* Maquette : l'aperçu mesure 332px de large (260 d'encre) et l'encart de
   validité le suit immédiatement — nous l'étirions sur toute la largeur de la
   carte, ce qui décalait tout le récapitulatif de 27px. */
.gift-summary__cards { width: 332px; display: block; margin: 0 auto; }

.gift-valid {
    display: flex; align-items: flex-start; gap: 27px;
    /* Maquette : encart de 123px de haut sur fond #fafafb, pictogramme de 21
       suivi de 27px d'écart. */
    background: #fafafb; border-radius: 10px; padding: 26px 16px;
    margin-bottom: 8px; color: var(--pl-text-strong);
}
.gift-valid .pl-icon { flex: none; margin-top: 2px; }
.gift-valid p { margin: 0; font-size: 15px; line-height: 1.55; }

.gift-summary__total {
    display: flex; align-items: center; justify-content: space-between;
    /* Maquette : 76px du total au premier accordéon (nous étions à 61). */
    padding: 18px 0 33px; border-bottom: 1px solid var(--pl-border);
    font-size: 15px; font-weight: 600; color: var(--pl-text-strong);
}
.gift-summary__total strong { font-size: 18px; font-weight: 700; }

/* Accordéons « + / × » synchronisés avec le formulaire. */
.gift-acc { border-bottom: 1px solid var(--pl-border); }
.gift-acc:last-child { border-bottom: 0; }
.gift-acc summary {
    display: flex; align-items: center; justify-content: space-between;
    padding: 18px 0; cursor: pointer; list-style: none;
    font-size: 16px; font-weight: 700; color: var(--pl-text-strong);
}
.gift-acc summary::-webkit-details-marker { display: none; }
.gift-acc__toggle { position: relative; width: 16px; height: 16px; flex: none; }
.gift-acc__toggle::before,
.gift-acc__toggle::after {
    content: ""; position: absolute; left: 50%; top: 50%;
    transform: translate(-50%, -50%); background: var(--pl-text-strong);
}
.gift-acc__toggle::before { width: 16px; height: 2px; }
.gift-acc__toggle::after { width: 2px; height: 16px; }
.gift-acc[open] .gift-acc__toggle { transform: rotate(45deg); }
.gift-acc__body { padding: 0 0 18px; }
.gift-acc__body p { margin: 0 0 6px; font-size: 15px; color: var(--pl-text-strong); }
.gift-acc__label { margin: 0; font-weight: 700; }

/* --------------------------------------------------------------------------
 *  RESPONSIVE.
 * ------------------------------------------------------------------------ */

@media (max-width: 1199.98px) {
    .gift-hero__img { opacity: .35; }
    .gift-args { flex-wrap: wrap; }
    .gift-duo { grid-template-columns: 1fr; }
    .gift-tunnel { grid-template-columns: 1fr; }
    .gift-why__text { max-width: 100%; }
    .gift-why__img { display: none; }
    .gift-recipients { grid-template-columns: repeat(2, 1fr); }
    .gift-mosaic { grid-auto-rows: 220px; }
}

/* --------------------------------------------------------------------------
 *  Listing « Activités Ateliers & Créations » (écrans 2-4) — conformité 13/08.
 * ------------------------------------------------------------------------ */

/* Maquette : le sous-titre court jusqu'au bord de la colonne (x1288) alors que
   le listing Activités le coupe à 1100 ; et 59px séparent le fil d'Ariane du
   titre (44 sur Activités). */
.gift-listing .act-head__subtitle { max-width: none; margin-bottom: 33px; }
.gift-listing .act-breadcrumb { margin-bottom: 44px; }

/* Maquette : les chips de villes sont des pastilles PLEINES #f8fafc sans
   bordure (nous les faisions blanches a bordure), hautes de 36 et non 39 ;
   seul le chip « Filtre » garde le fond blanc et son liseré. */
.gift-listing .act-chip {
    height: 36px; padding: 0 16px;
    background: var(--pl-surface-dashboard); border-color: transparent;
}
.gift-listing .act-chip--filter { background: var(--pl-white); border-color: #eceef1; }
/* Le fond plein ci-dessus a la meme specificite que `.act-chip.is-active` et
   passait apres : les chips actifs (ville selectionnee, filtre applique)
   perdaient leur violet et gardaient leur texte BLANC — donc invisibles.
   Maquette : chip actif violet plein a texte blanc, chip « Filtre » violet lui
   aussi quand la sidebar est ouverte. */
.gift-listing .act-chip.is-active,
.gift-listing .act-chip--filter[aria-expanded="true"] {
    background: var(--pl-action); border-color: var(--pl-action); color: var(--pl-white);
}

/* Maquette : « Afficher la carte » porte la meme vignette de carte que dans
   l'espace compte, et c'est le bouton des FILTRES qui est sur le carre gris,
   pas celui de la liste. */
.gift-listing .act-tool {
    border-color: #b9c9e8; color: var(--pl-text-secondary);
    background: linear-gradient(rgba(255, 255, 255, .55), rgba(255, 255, 255, .55)),
        url("../images/account/map-button-LUavxWr.jpg") center / cover;
}

/* Rythme vertical du listing, relevé sur « Cadeaux par villes » : barre de
   recherche 356->411, outils 444->483, chips 518->553, ligne de résultats
   588->627, première rangée de cartes à 692. */
.gift-listing .act-search { margin-bottom: 32px; }
.gift-listing .act-toolbar { margin-bottom: 31px; }
.gift-listing .act-chipbar { margin-bottom: 24px; }

/* Rangée de cartes du listing : la maquette pose la deuxième rangée 438px sous
   la première (nous étions à 464) — le pied de carte y est plus serré. */
.gift-listing .gift-card .pl-card__body { padding-top: 18px; padding-bottom: 0; }
.gift-listing .gift-card .pl-card__foot { margin-top: -11px; padding-top: 4px; padding-bottom: 16px; }
/* Maquette : 29px entre deux rangées de cartes du listing (grille par défaut). */
.gift-listing .card-grid { row-gap: 29px; }

/* Maquette : 129px entre le bouton « Voir plus d'activités » et le titre
   « Top catégories » (nous étions à 99), puis 42px avant la mosaïque (26). */
.gift-listing #gift-topcats { padding-top: 60px; }
.gift-listing .gift-solo-title { margin-bottom: 42px; }

/* --------------------------------------------------------------------------
 *  Listing filtré (« Cadeaux- filtre ») — rail de filtres.
 * ------------------------------------------------------------------------ */

/* Maquette : le contenu du rail démarre à x140 et « Filtres » à y181 (nous
   étions à x121 et y126) ; le rail lui-même part de la navbar comme chez nous. */
.gift-listing .of-filters { padding: 75px 24px 40px 36px; }

/* Rythme du rail, relevé sur la maquette : « Filtres » y181, « Filtres
   appliqués » y264, chip y297, « Date » y384, « Participants » y464,
   « Type de destination » y582. Les écarts n'y sont pas réguliers (83, 33, 48,
   25, 65) : on pose donc un écart minimal et des marges explicites. */
.gift-listing .of-filters { gap: 4px; }
.gift-listing .of-filters .act-filters__applied { gap: 17px; margin: 56px 0 37px; }
.gift-listing .of-filters .act-filters__field + .act-filters__field { margin-top: 9px; }
.gift-listing .of-filters .act-filters__group { margin-top: 28px; }

/* La maquette du listing FILTRÉ est plus resserrée que celle du listing plein :
   titre y200 (210), barre de recherche y336 (356), outils y427 (444), chips
   y476 (518), résultats y552 (588), première rangée y617 (692). */
.gift-listing.has-filters .act-head { padding-block: 28px var(--pl-sp-8); }
.gift-listing.has-filters .act-head__subtitle { margin-bottom: 24px; }
.gift-listing.has-filters .act-search { margin-bottom: 22px; }
.gift-listing.has-filters .act-toolbar { margin-bottom: 19px; }
.gift-listing.has-filters .act-chipbar { margin-bottom: 15px; }
.gift-listing.has-filters .act-results { padding-block: var(--pl-sp-8) 0; }

/* Maquette : la grille filtrée est à TROIS colonnes de 294 (x416 -> x1329) ;
   nous gardions les quatre colonnes du listing plein, d'où des cartes de 224
   et une colonne vide à droite. */
.gift-listing.has-filters .card-grid { grid-template-columns: repeat(3, 1fr); margin-inline: 0; }
/* La grille filtrée est dans un `.act-section > .container` qui gardait la
   gouttière de 220 du conteneur standard : les cartes tombaient à 224 au lieu
   de 294 et une colonne vide restait à droite. */
.gift-listing.has-filters .act-section > .container { max-width: none; padding-inline: 0; }
/* Maquette : 19px entre le rail de filtres et la colonne de contenu (le listing
   Activités en met 32, hérités par ce flow). */
.gift-listing.has-filters { column-gap: 19px; }
