/*
 * Deal pages (REDESIGN slice C): /bons-plans/ (+ park, discount, tag listings), the deal page and the partners
 * A-Z page. Mobile first; tokens and shared components (page head, deal card, listing, side cards) in
 * ../app.css, the deal grid and the collapsed expired deals in park.css.
 */

/* Deal card additions on the deal lists: plain-text short description and the listing button label. */
.deal-card[hidden] { display: none; }
.deal-card-excerpt { color: var(--pa-muted); font-size: .84rem; line-height: 1.45; margin: -.3rem 0 .6rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.deal-card-cta { display: inline-flex; align-items: center; justify-content: center; gap: .35rem; margin-top: .75rem; padding: .45rem .75rem; border-radius: var(--radius-control); background: var(--pa-promo); color: #fff; font-weight: 700; font-size: .85rem; transition: background-color .15s ease; }
.deal-card:hover .deal-card-cta { background: var(--pa-promo-dark); }
.deal-card.is-expired .deal-card-cta { background: var(--pa-muted); }

/* Park search above the deal lists. */
.deals-search { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.25rem; margin-bottom: 1.5rem; }
.deals-search-form { flex: 1 1 18rem; max-width: 30rem; margin-left: 0; }
.deals-search-link { font-weight: 600; display: inline-flex; align-items: center; gap: .35rem; }
.text-promo-pa { color: var(--pa-promo-dark); }
.text-muted-pa { color: var(--pa-muted); font-weight: 600; }
.percent-chips .chip.is-current { color: #fff; background: var(--pa-promo); border-color: var(--pa-promo); }
.side-card-text { font-size: .92rem; line-height: 1.55; color: var(--pa-muted); }

/* Deal type filter (Voir tout / Codes promo / Meilleur prix). */
.deal-filter { display: inline-flex; flex-wrap: wrap; gap: .25rem; padding: .25rem; margin-bottom: 1.25rem; background: var(--pa-section); border: 1px solid var(--pa-line); border-radius: 12px; }
.deal-filter-btn { border: 0; background: transparent; color: var(--pa-navy); font-weight: 600; font-size: .9rem; padding: .4rem .85rem; border-radius: 9px; }
.deal-filter-btn:hover { background: #fff; color: var(--pa-primary-hover); }
.deal-filter-btn.is-active { background: #fff; color: var(--pa-promo-dark); box-shadow: var(--shadow-soft); }

/* Closing SEO text under the listing. */
.section-sm { margin-top: 3rem; }

/* ------------------------------------------------------------------ Deal page */
.deal-expired-notice { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 1.15rem; margin-bottom: 1.25rem; border: 1px solid #f7c6d8; border-left: 4px solid var(--pa-promo); border-radius: 12px; background: var(--pa-promo-soft); color: var(--pa-navy); }
.deal-expired-notice > .bi { font-size: 1.35rem; color: var(--pa-promo-dark); margin-top: .1rem; }
.deal-expired-title { font-weight: 800; font-size: 1.05rem; color: var(--pa-promo-dark); margin: 0 0 .2rem; }

.deal-offer { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; background: #fff; border: 1px solid var(--pa-line); border-radius: var(--card-radius); box-shadow: var(--shadow-soft); padding: 1rem; }
@media (min-width: 768px) { .deal-offer { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); padding: 1.25rem; gap: 1.5rem; } }
.deal-offer-media { display: flex; gap: .75rem; overflow-x: auto; scroll-snap-type: x mandatory; border-radius: 12px; background: var(--pa-section); align-self: start; }
.deal-offer-media img { display: block; flex: 0 0 100%; width: 100%; height: auto; max-height: 26rem; object-fit: contain; scroll-snap-align: start; background: #fff; }
.deal-offer-media.has-gallery img { flex-basis: 88%; }
.deal-offer.is-expired .deal-offer-media img { filter: grayscale(.6); opacity: .85; }
.deal-offer-box { display: flex; flex-direction: column; min-width: 0; }
.deal-offer-value { align-self: flex-start; margin: .2rem 0 .75rem; padding: .3rem .7rem; border-radius: 8px; background: var(--pa-promo); color: #fff; font-weight: 900; font-size: 1.15rem; letter-spacing: .01em; }
.deal-offer.is-expired .deal-offer-value { background: var(--pa-muted); }
.deal-offer-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .15rem .5rem; margin-bottom: .9rem; }
.deal-offer-from { width: 100%; font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--pa-muted); }
.deal-offer-amount { font-size: 2.1rem; font-weight: 900; line-height: 1.05; color: var(--pa-navy); }
.deal-offer-instead { color: var(--pa-muted); }
.deal-offer-saving { width: 100%; color: var(--pa-promo-dark); font-weight: 700; font-size: .92rem; }
.deal-code { margin-bottom: .9rem; }
.deal-code-label { display: block; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--pa-muted); margin-bottom: .35rem; }
.deal-code-row { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .45rem; border: 2px dashed var(--pa-promo); border-radius: 12px; background: var(--pa-promo-soft); }
.deal-code-value { flex: 1 1 auto; min-width: 0; font-size: 1.2rem; font-weight: 800; letter-spacing: .06em; color: var(--pa-navy); background: transparent; padding: .2rem .45rem; overflow-wrap: anywhere; user-select: all; }
.deal-code-row .btn { display: inline-flex; align-items: center; gap: .4rem; }
.deal-offer-cta { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; }
.deal-offer-expiry { display: flex; align-items: center; gap: .4rem; margin: .8rem 0 0; color: var(--pa-muted); font-size: .9rem; }
.deal-offer-text { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--pa-line-soft); font-size: .95rem; }
.page-deal .section-title-sm .bi { color: var(--pa-primary); }

/* ------------------------------------------------------------------ Partners A-Z */
.partners-search { margin-bottom: 1.5rem; }
/* Sticky letter index (the header is not sticky). */
.az-index { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .9rem; padding: .6rem .8rem; background: rgba(255, 255, 255, .96); border: 1px solid var(--pa-line); border-radius: 12px; box-shadow: var(--shadow-soft); }
.az-index-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--pa-muted); }
.az-index-list { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0; padding: 0; list-style: none; }
.az-index-list a { display: inline-flex; align-items: center; justify-content: center; min-width: 2.2rem; height: 2.2rem; border-radius: 8px; border: 1px solid var(--pa-line); font-weight: 800; color: var(--pa-navy); background: #fff; }
.az-index-list a:hover { background: var(--pa-surface); border-color: var(--pa-primary); color: var(--pa-primary-hover); text-decoration: none; }
.az-groups { display: grid; gap: 1rem; }
.az-group { scroll-margin-top: 4.5rem; background: #fff; border: 1px solid var(--pa-line); border-radius: var(--card-radius); padding: 1rem 1.15rem; }
.az-letter { font-size: 1.4rem; font-weight: 900; color: var(--pa-primary); margin: 0 0 .5rem; }
.az-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); gap: .3rem 1rem; margin: 0; padding: 0; list-style: none; }
.az-links a { font-weight: 600; }

@media (prefers-reduced-motion: reduce) {
    .deal-card-cta { transition: none; }
}

/* Deal titles can be long (partner wording): a smaller H1 than the other page heads. */
.page-deal .page-title { font-size: clamp(1.45rem, 2.5vw, 1.95rem); line-height: 1.2; }
