/* ────────────────────────────────────────────────────────────
   PAGE CATALOGUE — /coffrets-cadeaux/
   Grille de 8 coffrets : 4 cols desktop, 2 tablet, 1 mobile
   ──────────────────────────────────────────────────────────── */

/* ── HERO ──────────────────────────────────────────────────── */
.ze-vitrine-cat-hero {
    background: linear-gradient(180deg, var(--ze-ivoire) 0%, var(--ze-creme) 100%);
    padding: clamp(5rem, 10vw, 8rem) clamp(1.5rem, 4vw, 4rem) clamp(3rem, 6vw, 5rem);
    position: relative;
}

.ze-vitrine-cat-hero__inner {
    max-width: 880px;
    margin: 0 auto;
    text-align: center;
}

.ze-vitrine-cat-hero .ze-vitrine-breadcrumb,
.ze-vitrine-cat-hero .ze-vitrine-page-breadcrumb {
    margin: 0 auto 1.5rem;
    justify-content: center;
}

.ze-vitrine-cat-hero__eyebrow {
    font-family: var(--ze-font-sans);
    font-size: 0.8rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ze-or);
    margin-bottom: 1.5rem;
    font-weight: 500;
}

.ze-vitrine-cat-hero__title {
    font-family: var(--ze-font-serif);
    font-size: clamp(2.4rem, 5vw, 4rem);
    line-height: 1.1;
    color: var(--ze-charbon);
    margin: 0 0 1.5rem;
    font-weight: 500;
}

.ze-vitrine-cat-hero__title em {
    color: var(--ze-or);
    font-style: italic;
    font-weight: 400;
}

/* Filet or décoratif sous le H1 (fond aux extrémités) : casse le tout-texte */
.ze-vitrine-cat-hero__title::after {
    content: "";
    display: block;
    width: 90px;
    height: 2px;
    margin: 1.6rem auto 0;
    background: linear-gradient(90deg, transparent, var(--ze-or), transparent);
}

.ze-vitrine-cat-hero__subtitle {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--ze-gris-fonce);
    margin: 0 auto 2.5rem;
    max-width: 640px;
}

.ze-vitrine-cat-hero__ctas {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}

/* Lien d'ancre vers la grille catalogue · pas un CTA, juste un wayfinder */
.ze-vitrine-cat-hero__jump {
    text-align: center;
    margin: 1.4rem 0 0;
    font-size: 0.92rem;
}
.ze-vitrine-cat-hero__jump a {
    color: var(--ze-gris-fonce);
    text-decoration: underline;
    text-decoration-color: rgba(45, 35, 25, 0.25);
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    transition: color 0.2s ease, text-decoration-color 0.2s ease;
}
.ze-vitrine-cat-hero__jump a:hover {
    color: var(--ze-or);
    text-decoration-color: var(--ze-or);
}

/* ── BANDEAU SAISONNIER ────────────────────────────────────── */
.ze-vitrine-cat-season {
    background: var(--ze-charbon);
    color: rgba(255, 255, 255, 0.9);
    padding: 0.9rem 0;
    border-bottom: 1px solid rgba(232, 197, 96, 0.18);
}
.ze-vitrine-cat-season__inner {
    max-width: var(--ze-container);
    margin: 0 auto;
    padding: 0 5%;
    text-align: center;
}
.ze-vitrine-cat-season__text {
    margin: 0;
    font-family: var(--ze-font-sans);
    font-size: 0.92rem;
    line-height: 1.5;
    letter-spacing: 0.01em;
}
.ze-vitrine-cat-season__text strong {
    color: var(--ze-or-pale);
    font-weight: 600;
}
@media (max-width: 640px) {
    .ze-vitrine-cat-season__text { font-size: 0.85rem; }
}

/* ── GRILLE CATALOGUE ──────────────────────────────────────── */
.ze-vitrine-cat-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(1.5rem, 2.5vw, 2rem);
    margin-top: clamp(2.5rem, 5vw, 4rem);
}

@media (max-width: 640px) {
    .ze-vitrine-cat-grid { grid-template-columns: 1fr; }
}

/* Le Festif (--featured) : XL en tête de grille, layout horizontal sur desktop */
.ze-vitrine-cat-card--featured {
    order: -1;
}
@media (min-width: 1024px) {
    .ze-vitrine-cat-card--featured {
        grid-column: span 2;
        flex-direction: row !important;
    }
    .ze-vitrine-cat-card--featured .ze-vitrine-cat-card__img {
        width: 50%;
        aspect-ratio: 1 / 1;
    }
    .ze-vitrine-cat-card--featured .ze-vitrine-cat-card__body {
        flex: 1;
        justify-content: center;
        padding: 2rem 1.8rem;
    }
}

/* ── CARD COFFRET ──────────────────────────────────────────── */
.ze-vitrine-cat-card {
    display: flex !important;
    flex-direction: column;
    background: var(--ze-ivoire);
    border: 1px solid rgba(26, 25, 22, 0.08);
    border-radius: 12px;
    overflow: hidden;
    position: relative;
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}

.ze-vitrine-cat-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px -20px rgba(26, 25, 22, 0.15);
    border-color: rgba(184, 131, 10, 0.3);
}

.ze-vitrine-cat-card--featured {
    border-color: var(--ze-or);
    box-shadow: 0 14px 34px -20px rgba(184, 131, 10, 0.35);
}

.ze-vitrine-cat-card--prestige {
    background: linear-gradient(180deg, var(--ze-ivoire) 0%, #f0e9dc 100%);
    border-color: var(--ze-or);
}

/* Tuile sur-mesure : pas un coffret du catalogue, pitch artisanal.
   align-self: start → ne s'étire pas à la hauteur de la card voisine (Le Connaisseur),
   se cale à sa propre hauteur de contenu (sinon gros vide). */
.ze-vitrine-cat-card--sur-mesure {
    background: linear-gradient(165deg, var(--ze-creme) 0%, var(--ze-ivoire) 100%);
    border: 1px dashed rgba(184, 131, 10, 0.45);
    align-self: start;
}

.ze-vitrine-cat-card--sur-mesure:hover {
    border-color: var(--ze-or);
    border-style: solid;
}

.ze-vitrine-cat-card--sur-mesure .ze-vitrine-cat-card__body {
    justify-content: center;
    padding: clamp(2rem, 3vw, 2.6rem) clamp(1.5rem, 2.5vw, 1.8rem);
    gap: 0.9rem;
}

.ze-vitrine-cat-card__eyebrow {
    font-family: var(--ze-font-sans);
    font-size: 0.72rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ze-or);
    font-weight: 600;
    margin: 0;
}

.ze-vitrine-cat-card__pitch {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--ze-gris-fonce);
    margin: 0;
}

.ze-vitrine-cat-card__link-wrap {
    margin: auto 0 0;
    padding-top: 0.4rem;
}

.ze-vitrine-cat-card__link {
    font-family: var(--ze-font-sans);
    color: var(--ze-charbon);
    text-decoration: underline;
    text-decoration-color: var(--ze-or);
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
    font-weight: 600;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
    transition: color 0.2s ease;
}

.ze-vitrine-cat-card__link:hover {
    color: var(--ze-or);
}

/* Badge top-right pour featured / prestige */
.ze-vitrine-cat-card__badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    z-index: 2;
    background: var(--ze-or);
    color: var(--ze-ivoire);
    font-family: var(--ze-font-sans);
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 0.4rem 0.8rem;
    border-radius: 999px;
    font-weight: 600;
    margin: 0;
    box-shadow: 0 4px 12px -2px rgba(184, 131, 10, 0.4);
}

/* Image · ratio carré pour alléger la hauteur de carte (photos portrait ~0.83) */
.ze-vitrine-cat-card__img {
    margin: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--ze-creme);
}

.ze-vitrine-cat-card__img img {
    width: 100%;
    height: 100%;
    object-fit: contain !important;
    display: block;
    transition: transform 0.6s ease;
}

.ze-vitrine-cat-card:hover .ze-vitrine-cat-card__img img {
    transform: scale(1.04);
}

/* Grille tarifaire dégressive : 4 paliers en bas de card */
.ze-vitrine-cat-card__tiers {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-top: auto;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(26, 25, 22, 0.08);
}
.ze-vitrine-cat-card__tier {
    text-align: center;
    padding: 0 0.3rem;
    border-right: 1px solid rgba(26, 25, 22, 0.08);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}
.ze-vitrine-cat-card__tier:last-child {
    border-right: 0;
}
.ze-vitrine-cat-card__tier-from {
    font-family: var(--ze-font-sans);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ze-gris-fonce);
    margin: 0;
    line-height: 1.2;
}
.ze-vitrine-cat-card__tier-price {
    font-family: var(--ze-font-serif);
    font-weight: 600;
    font-size: 1.12rem;
    color: var(--ze-charbon);
    font-variant-numeric: lining-nums tabular-nums;
    margin: 0;
    line-height: 1.15;
}

/* Body */
.ze-vitrine-cat-card__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.5rem 1.4rem 1.4rem;
    gap: 0.85rem;
}

.ze-vitrine-cat-card__name {
    font-family: var(--ze-font-serif);
    font-size: clamp(1.75rem, 2vw, 2.1rem);
    line-height: 1.1;
    color: var(--ze-charbon);
    margin: 0;
    font-weight: 600;
    letter-spacing: -0.005em;
}

/* Le Festif (featured) : encore plus grand vu l'espace dispo */
.ze-vitrine-cat-card--featured .ze-vitrine-cat-card__name {
    font-size: clamp(2rem, 2.6vw, 2.6rem);
}

.ze-vitrine-cat-card__tagline {
    font-style: italic;
    color: var(--ze-gris-fonce);
    font-size: 1rem;
    line-height: 1.4;
    margin: 0;
}

/* Description éditoriale du coffret (texte Caroline, verbatim) : prose lisible, non-italique */
.ze-vitrine-cat-card__desc {
    color: var(--ze-gris-fonce);
    font-size: 0.95rem;
    line-height: 1.5;
    margin: 0;
}

/* Meta : prix + nombre de produits */
.ze-vitrine-cat-card__meta {
    display: flex !important;
    justify-content: space-between;
    align-items: baseline;
    padding: 0.85rem 0;
    border-top: 1px solid rgba(26, 25, 22, 0.08);
    border-bottom: 1px solid rgba(26, 25, 22, 0.08);
}

.ze-vitrine-cat-card__price {
    margin: 0;
    font-family: var(--ze-font-serif);
    color: var(--ze-charbon);
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.ze-vitrine-cat-card__price strong {
    font-size: 2.6rem;
    font-weight: 500;
    color: var(--ze-or);
    line-height: 1;
    letter-spacing: -0.01em;
}

.ze-vitrine-cat-card__price span {
    font-size: 0.85rem;
    color: var(--ze-gris);
    font-family: var(--ze-font-sans);
    letter-spacing: 0.04em;
}

.ze-vitrine-cat-card__count {
    margin: 0;
    font-family: var(--ze-font-sans);
    font-size: 0.85rem;
    letter-spacing: 0.06em;
    color: var(--ze-gris);
    text-transform: uppercase;
    font-weight: 500;
}

/* Liste des produits phares */
.ze-vitrine-cat-card__highlights {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.ze-vitrine-cat-card__highlights li {
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--ze-gris-fonce);
    padding-left: 1rem;
    position: relative;
}

.ze-vitrine-cat-card__highlights li::before {
    content: "›";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--ze-or);
    font-weight: 600;
}

/* Wp:details composition complète — la suite des produits avec le même rendu que .__highlights */
.ze-vitrine-cat-card__details {
    margin: 0;
    border: 0;
}

/* Quand ouvert : flex column-reverse pour que la liste apparaisse au-dessus du summary,
   et margin-top négatif pour combler le gap du body (0.85rem) et coller aux highlights */
.ze-vitrine-cat-card__details[open] {
    display: flex;
    flex-direction: column;
    margin-top: -0.5rem;
}

.ze-vitrine-cat-card__details[open] > summary {
    order: 2;
    margin-top: 0.6rem;
}

.ze-vitrine-cat-card__details > summary {
    list-style: none;
    cursor: pointer;
    font-family: var(--ze-font-sans);
    font-size: 0.92rem;
    color: var(--ze-or);
    font-weight: 500;
    letter-spacing: 0.03em;
    padding: 0.2rem 0;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: color 0.2s ease;
}

.ze-vitrine-cat-card__details > summary::-webkit-details-marker { display: none; }

.ze-vitrine-cat-card__details > summary::after {
    content: "↓";
    transition: transform 0.3s ease;
    font-size: 0.9em;
}

.ze-vitrine-cat-card__details[open] > summary::after {
    transform: rotate(180deg);
}

.ze-vitrine-cat-card__details > summary:hover {
    color: var(--ze-charbon);
}

/* Liste révélée : copie carbone de .__highlights pour une continuation visuelle parfaite */
.ze-vitrine-cat-card__full-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.ze-vitrine-cat-card__full-list li {
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--ze-gris-fonce);
    padding-left: 1rem;
    position: relative;
}

.ze-vitrine-cat-card__full-list li::before {
    content: "›";
    position: absolute;
    left: 0;
    top: 0;
    color: var(--ze-or);
    font-weight: 600;
}

/* ── ARTISANAT (rappel posture entre dégressifs et FAQ) ────── */
.ze-vitrine-cat-artisanat {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}

.ze-vitrine-cat-artisanat__text {
    font-family: var(--ze-font-serif);
    font-size: 1.1rem;
    line-height: 1.7;
    color: var(--ze-gris-fonce);
    font-style: italic;
    margin: 1.5rem 0 0;
}

/* ── PRODUCTEURS / circuit court (prose Caroline, colonne centrée) ── */
.ze-vitrine-cat-producteurs {
    max-width: 760px;
    margin: 0 auto;
    /* Tous les paragraphes alignés à gauche : harmonie + meilleure lecture des
       paragraphes longs (la liste de producteurs). Le lead reste distingué par
       sa taille et sa couleur (cf. :first-child), pas par un centrage qui
       cassait la continuité avec le corps. */
    text-align: left;
}

.ze-vitrine-cat-producteurs__text {
    font-size: 1.08rem;
    line-height: 1.75;
    color: var(--ze-gris-fonce);
    margin: 1.3rem 0 0;
}

/* 1er paragraphe en lead : plus grand et charbon */
.ze-vitrine-cat-producteurs__text:first-child {
    margin-top: 0;
    font-size: 1.22rem;
    line-height: 1.7;
    color: var(--ze-charbon);
}

/* Producteurs partenaires : repères or semibold dans la prose */
.ze-vitrine-cat-producteurs__name {
    color: var(--ze-or);
    font-weight: 600;
}

/* La FAQ catalogue utilise desormais les memes wrappers que les pages B2B
   (ze-vitrine-ce-faq__inner + __list, cf. markup Gutenberg) : son rendu
   (largeur 880 + gap) vient du CSS partagE du composant dans
   page-coffrets-cadeaux-entreprise.css. Aucune surcharge specifique ici. */

/* ── LIVRAISON : lead + rangée de faits logistiques ───────── */
.ze-vitrine-cat-livraison__lead {
    font-size: clamp(1.08rem, 1.6vw, 1.2rem);
    color: var(--ze-charbon);
}

.ze-vitrine-cat-facts {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: clamp(1.75rem, 5vw, 4rem);
    max-width: 900px;
    margin: clamp(2.25rem, 4.5vw, 3.5rem) auto 0;
}
.ze-vitrine-cat-fact {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.7rem;
    max-width: 170px;
    text-align: center;
}
.ze-vitrine-cat-fact::before {
    content: "";
    width: 38px;
    height: 38px;
    background-color: var(--ze-or);
    -webkit-mask: var(--fact-icon) center / contain no-repeat;
    mask: var(--fact-icon) center / contain no-repeat;
}
.ze-vitrine-cat-fact__label {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.35;
    font-weight: 500;
    color: var(--ze-gris-fonce);
}
.ze-vitrine-cat-fact--package { --fact-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/><path d='M3.27 6.96 12 12.01l8.73-5.05'/><path d='M12 22.08V12'/></svg>"); }
.ze-vitrine-cat-fact--truck { --fact-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='1' y='3' width='15' height='13'/><path d='M16 8h4l3 3v5h-7V8z'/><circle cx='5.5' cy='18.5' r='2.5'/><circle cx='18.5' cy='18.5' r='2.5'/></svg>"); }
.ze-vitrine-cat-fact--stack { --fact-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2 2 7l10 5 10-5-10-5z'/><path d='M2 17l10 5 10-5'/><path d='M2 12l10 5 10-5'/></svg>"); }
.ze-vitrine-cat-fact--boxes { --fact-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='7' height='7'/><rect x='14' y='3' width='7' height='7'/><rect x='14' y='14' width='7' height='7'/><rect x='3' y='14' width='7' height='7'/></svg>"); }

/* ── SUR-MESURE (4 volets, texte Caroline) ─────────────────── */
.ze-vitrine-cat-surmesure {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: stretch; /* desktop : hauteurs égales par ligne (1=2, 3=4) */
    gap: clamp(1.25rem, 2.2vw, 1.75rem);
    margin-top: clamp(2.5rem, 4.5vw, 3.5rem);
}

@media (max-width: 768px) {
    .ze-vitrine-cat-surmesure { grid-template-columns: 1fr; }
}

.ze-vitrine-cat-surmesure__card {
    display: flex;
    flex-direction: column;
    background: var(--ze-ivoire);
    border: 1px solid rgba(26, 25, 22, 0.08);
    border-radius: 12px;
    padding: clamp(1.75rem, 3vw, 2.5rem);
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}

/* Pictogramme or par volet — décoratif, masque CSS (texte inchangé) */
.ze-vitrine-cat-surmesure__card::before {
    content: "";
    width: 42px;
    height: 42px;
    margin-bottom: 1.15rem;
    background-color: var(--ze-or);
    -webkit-mask: var(--sm-icon) center / contain no-repeat;
    mask: var(--sm-icon) center / contain no-repeat;
    transition: transform 0.4s ease;
}

.ze-vitrine-cat-surmesure__card:nth-child(1) { --sm-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='8' width='18' height='4' rx='1'/><path d='M5 12v9h14v-9'/><path d='M12 8v13'/><path d='M12 8S10.5 3.5 8 3.5a2.5 2.5 0 0 0 0 5z'/><path d='M12 8s1.5-4.5 4-4.5a2.5 2.5 0 0 1 0 5z'/></svg>"); }
.ze-vitrine-cat-surmesure__card:nth-child(2) { --sm-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M8 22h8'/><path d='M12 15v7'/><path d='M6 3h12l-1 7a5 5 0 0 1-10 0z'/></svg>"); }
.ze-vitrine-cat-surmesure__card:nth-child(3) { --sm-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2.5a9.5 9.5 0 1 0 9.5 9.5 3.8 3.8 0 0 1-4.8-4.8A4.7 4.7 0 0 1 12 2.5z'/><circle cx='9' cy='13' r='0.9'/><circle cx='14.5' cy='15' r='0.9'/><circle cx='15' cy='9.5' r='0.9'/></svg>"); }
.ze-vitrine-cat-surmesure__card:nth-child(4) { --sm-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10z'/><path d='M2 21c0-3 1.85-5.36 5.08-6'/></svg>"); }

@media (hover: hover) {
    .ze-vitrine-cat-surmesure__card:hover {
        transform: translateY(-4px);
        box-shadow: 0 18px 40px -20px rgba(26, 25, 22, 0.18);
        border-color: var(--ze-or);
    }
    .ze-vitrine-cat-surmesure__card:hover::before {
        transform: scale(1.08) rotate(-4deg);
    }
}

.ze-vitrine-cat-surmesure__title {
    font-family: var(--ze-font-serif);
    font-size: clamp(1.25rem, 2vw, 1.4rem);
    line-height: 1.25;
    color: var(--ze-charbon);
    margin: 0 0 0.7rem;
    font-weight: 500;
}

.ze-vitrine-cat-surmesure__text {
    font-size: 0.98rem;
    line-height: 1.65;
    color: var(--ze-gris-fonce);
    margin: 0;
}

/* ── OBJETS PERSONNALISABLES (catalogue complet + prix) ───── */
.ze-vitrine-cat-objets {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: clamp(0.75rem, 1.5vw, 1.25rem);
    margin-top: clamp(2rem, 4vw, 3rem);
}

@media (max-width: 980px) { .ze-vitrine-cat-objets { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .ze-vitrine-cat-objets { grid-template-columns: repeat(2, 1fr); } }

.ze-vitrine-cat-objet {
    display: flex;
    flex-direction: column;
    text-align: center;
    background: var(--ze-ivoire);
    border: 1px solid rgba(26, 25, 22, 0.08);
    border-radius: 12px;
    padding: 0.9rem 0.8rem 1rem;
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}

@media (hover: hover) {
    .ze-vitrine-cat-objet:hover {
        transform: translateY(-3px);
        box-shadow: 0 14px 30px -18px rgba(26, 25, 22, 0.18);
        border-color: var(--ze-or);
    }
    .ze-vitrine-cat-objet:hover .ze-vitrine-cat-objet__photo img { transform: scale(1.06); }
}

.ze-vitrine-cat-objet__photo.wp-block-image {
    margin: 0 0 0.7rem;
    overflow: hidden;
    border-radius: 8px;
}
.ze-vitrine-cat-objet__photo img {
    width: 100%;
    height: 140px;
    object-fit: contain;
    transition: transform 0.45s ease;
}

.ze-vitrine-cat-objet__name {
    font-family: var(--ze-font-serif);
    font-size: 1.02rem;
    line-height: 1.2;
    color: var(--ze-charbon);
    margin: 0 0 0.3rem;
    font-weight: 500;
}

.ze-vitrine-cat-objet__meta {
    font-size: 0.76rem;
    line-height: 1.35;
    color: var(--ze-gris-fonce);
    margin: 0 0 0.6rem;
}

.ze-vitrine-cat-objet__price {
    margin: auto 0 0;
    font-family: var(--ze-font-serif);
    font-size: 1.05rem;
    line-height: 1.3;
    color: var(--ze-or);
    font-weight: 600;
    font-variant-numeric: lining-nums;
}

/* ── BIÈRE PERSONNALISÉE (avant / après, La Chaouette) ─────── */
.ze-vitrine-cat-biere {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: clamp(1.5rem, 3vw, 2.5rem);
    align-items: center;
    margin-top: clamp(1.5rem, 3vw, 2.25rem);
    padding: clamp(1.5rem, 3vw, 2.25rem);
    background: var(--ze-ivoire);
    border: 1px solid rgba(26, 25, 22, 0.08);
    border-radius: 16px;
}

@media (max-width: 768px) { .ze-vitrine-cat-biere { grid-template-columns: 1fr; } }

.ze-vitrine-cat-biere__title {
    font-family: var(--ze-font-serif);
    font-size: clamp(1.2rem, 2vw, 1.55rem);
    line-height: 1.25;
    color: var(--ze-charbon);
    margin: 0 0 1.25rem;
    font-weight: 500;
}
.ze-vitrine-cat-biere__title em { font-style: italic; color: var(--ze-or); }
.ze-vitrine-cat-biere__title::after {
    content: "";
    display: block;
    width: 56px;
    height: 2px;
    margin-top: 1rem;
    border-radius: 2px;
    background: var(--ze-or);
}

.ze-vitrine-cat-biere__prices {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
}
.ze-vitrine-cat-biere__price {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 6.5rem;
    padding: 0.85rem 1.4rem 0.95rem;
    background: var(--ze-creme);
    border-radius: 12px;
}
.ze-vitrine-cat-biere__format {
    font-family: var(--ze-font-sans);
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ze-gris-fonce);
}
.ze-vitrine-cat-biere__amount {
    font-family: var(--ze-font-serif);
    font-size: 1.75rem;
    line-height: 1.1;
    color: var(--ze-or);
    font-weight: 600;
    font-variant-numeric: lining-nums tabular-nums;
}
.ze-vitrine-cat-biere__unit { font-size: 0.72rem; color: var(--ze-gris); }

.ze-vitrine-cat-biere__visuals {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(0.75rem, 2vw, 1.5rem);
    background: var(--ze-creme);
    border-radius: 14px;
    padding: clamp(1.25rem, 3vw, 2rem) clamp(1rem, 2vw, 1.5rem);
}
.ze-vitrine-cat-biere__shot.wp-block-image { margin: 0; text-align: center; }
.ze-vitrine-cat-biere__shot img {
    width: 100%;
    max-width: 150px;
    height: auto;
    filter: drop-shadow(0 10px 18px rgba(26, 25, 22, 0.16));
}
.ze-vitrine-cat-biere__shot figcaption {
    font-size: 0.72rem;
    color: var(--ze-gris-fonce);
    margin-top: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.ze-vitrine-cat-biere__arrow {
    flex: 0 0 auto;
    width: 2.5rem;
    height: 2.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--ze-ivoire);
    color: var(--ze-or);
    font-size: 1.3rem;
    box-shadow: var(--ze-shadow-card);
}

.ze-vitrine-cat-objets-note {
    text-align: center;
    margin: clamp(1.25rem, 2.5vw, 1.75rem) 0 0;
    font-size: 0.9rem;
    color: var(--ze-gris-fonce);
}

/* ── MOTIFS : panneau personnalisation ───────────────────────
   Override coffrets : le foot-wrap est ici autonome (pas une tuile
   de bento comme sur collectivités) → on le recadre en panneau
   centré compact au lieu d'un bandeau pleine largeur à moitié vide. */
.ze-vitrine-ce-perso-bento__foot-wrap {
    grid-column: auto;
    grid-row: auto;
    max-width: 680px;
    margin: clamp(1.75rem, 3.5vw, 2.5rem) auto 0;
    padding: clamp(1.9rem, 3.5vw, 2.6rem) clamp(1.5rem, 3vw, 2.5rem);
    align-items: center;
    gap: 0;
}
.ze-vitrine-ce-perso-bento__motifs { gap: 0.95rem; }
.ze-vitrine-ce-perso-bento__motifs-label {
    font-size: 0.78rem;
    letter-spacing: 0.18em;
    margin-bottom: 0.15rem;
}
.ze-vitrine-ce-perso-bento__chips { gap: 0.6rem; }
.ze-vitrine-ce-perso-bento__chip {
    font-size: 1rem;
    padding: 0.6rem 1.4rem;
}
@media (hover: hover) {
    .ze-vitrine-ce-perso-bento__chip:hover {
        transform: translateY(-2px);
        box-shadow: 0 10px 22px -14px rgba(26, 25, 22, 0.25);
    }
}
/* Option « votre marque » : léger fond or pour la distinguer des motifs lorrains */
.ze-vitrine-ce-perso-bento__chip--gold {
    font-size: 1rem;
    padding: 0.6rem 1.5rem;
    background: rgba(184, 131, 10, 0.09);
}
@media (hover: hover) {
    .ze-vitrine-ce-perso-bento__chip--gold:hover {
        background: rgba(184, 131, 10, 0.16);
        transform: translateY(-2px);
        box-shadow: 0 10px 22px -14px rgba(184, 131, 10, 0.3);
    }
}
/* Séparateur « ou » : filets or dégradés de part et d'autre */
.ze-vitrine-ce-perso-bento__or {
    font-size: 0.98rem;
    color: var(--ze-gris-fonce);
    margin: 0.35rem 0;
}
.ze-vitrine-ce-perso-bento__or::before,
.ze-vitrine-ce-perso-bento__or::after {
    width: 44px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--ze-or));
}
.ze-vitrine-ce-perso-bento__or::after {
    background: linear-gradient(90deg, var(--ze-or), transparent);
}

/* ── FUNNEL (2 cards vers B2B / collectivités) ─────────────── */
.ze-vitrine-cat-funnel {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: clamp(1.5rem, 2.5vw, 2rem);
    margin-top: clamp(2rem, 4vw, 3rem);
}

@media (max-width: 768px) {
    .ze-vitrine-cat-funnel { grid-template-columns: 1fr; }
}

.ze-vitrine-cat-funnel__card {
    display: flex !important;
    flex-direction: column;
    background: var(--ze-ivoire);
    border: 1px solid rgba(26, 25, 22, 0.1);
    border-radius: 12px;
    padding: clamp(1.5rem, 3vw, 2.25rem);
    gap: 1rem;
    transition: transform 0.4s ease, box-shadow 0.4s ease, border-color 0.4s ease;
}

.ze-vitrine-cat-funnel__card:hover {
    transform: translateY(-3px);
    box-shadow: 0 16px 36px -20px rgba(26, 25, 22, 0.15);
    border-color: var(--ze-or);
}

.ze-vitrine-cat-funnel__name {
    font-family: var(--ze-font-serif);
    font-size: 1.5rem;
    color: var(--ze-charbon);
    margin: 0;
    font-weight: 500;
}

.ze-vitrine-cat-funnel__desc {
    font-size: 0.95rem;
    line-height: 1.55;
    color: var(--ze-gris-fonce);
    margin: 0;
    flex: 1;
}

.ze-vitrine-cat-funnel__cta-wrap {
    margin-top: auto;
}

.ze-vitrine-cat-funnel__cta .wp-block-button__link {
    background: transparent;
    color: var(--ze-charbon);
    border: 1px solid var(--ze-charbon);
    border-radius: 999px;
    padding: 0.75rem 1.6rem;
    font-family: var(--ze-font-sans);
    font-size: 0.9rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.ze-vitrine-cat-funnel__cta .wp-block-button__link:hover {
    background: var(--ze-charbon);
    color: var(--ze-ivoire);
}

/* Flèche de navigation sur le CTA */
.ze-vitrine-cat-funnel__cta .wp-block-button__link::after {
    content: "";
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14M12 5l7 7-7 7'/></svg>") center / contain no-repeat;
    mask: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12h14M12 5l7 7-7 7'/></svg>") center / contain no-repeat;
    transition: transform 0.3s ease;
}

/* Picto or par audience (cohérent avec le langage d'icônes de la page) */
.ze-vitrine-cat-funnel__card::before {
    content: "";
    width: 40px;
    height: 40px;
    background-color: var(--ze-or);
    -webkit-mask: var(--funnel-icon) center / contain no-repeat;
    mask: var(--funnel-icon) center / contain no-repeat;
    transition: transform 0.4s ease;
}
.ze-vitrine-cat-funnel__card:nth-child(1) { --funnel-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='7' width='20' height='14' rx='2'/><path d='M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2'/><path d='M2 13h20'/></svg>"); }
.ze-vitrine-cat-funnel__card:nth-child(2) { --funnel-icon: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M3 21h18'/><path d='M3 9h18'/><path d='M12 3 4 9h16z'/><path d='M6 9v12'/><path d='M10 9v12'/><path d='M14 9v12'/><path d='M18 9v12'/></svg>"); }

@media (hover: hover) {
    .ze-vitrine-cat-funnel__card:hover::before { transform: scale(1.08) rotate(-3deg); }
    .ze-vitrine-cat-funnel__card:hover .ze-vitrine-cat-funnel__cta .wp-block-button__link::after { transform: translateX(3px); }
}
