/* Offre -10% : barre en haut, fenêtre coupon, pastille. Thème sombre + or du site. */
:root { --promo-h: 0px; --promo-gold: #e4bf3b; --promo-gold-deep: #cd9343; }
.promo-bar { position: fixed; inset: 0 0 auto 0; z-index: 100000; color: #fff; overflow: hidden;
    background: linear-gradient(100deg, #1b1306 0%, #2a1c08 40%, #3a2609 100%);
    border-bottom: 1px solid rgba(228, 191, 59, .35); box-shadow: 0 10px 30px -14px rgba(0, 0, 0, .8); }
.promo-bar[hidden] { display: none; }
.promo-bar::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55;
    background: linear-gradient(100deg, transparent 30%, rgba(255, 224, 130, .22) 50%, transparent 70%); background-size: 220% 100%; animation: promoShine 5.5s linear infinite; }
@keyframes promoShine { from { background-position: 160% 0; } to { background-position: -60% 0; } }
.promo-bar__inner { position: relative; display: flex; align-items: center; justify-content: center; gap: 18px; padding: 9px 56px 9px 20px; max-width: 1320px; margin: 0 auto; }
html[dir="rtl"] .promo-bar__inner { padding: 9px 20px 9px 56px; }
.promo-bar__badge { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; font: 800 15px/1 'Atkinson Hyperlegible', sans-serif; color: #1b1306;
    background: radial-gradient(circle at 30% 25%, #fff2a8, var(--promo-gold) 45%, var(--promo-gold-deep)); box-shadow: 0 0 0 4px rgba(228, 191, 59, .18); animation: promoPulse 2.4s ease-in-out infinite; }
@keyframes promoPulse { 50% { box-shadow: 0 0 0 9px rgba(228, 191, 59, 0); } }
.promo-bar__copy { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.promo-bar__title { font-size: 16px; letter-spacing: -.005em; }
.promo-bar__sub { font-size: 12.5px; color: #e5d9b8; opacity: .92; }
.promo-bar__timer { flex: none; display: flex; align-items: center; gap: 10px; }
.promo-bar__timer-label { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: #d8c590; max-width: 90px; line-height: 1.15; text-align: end; }
.promo-bar__digits { display: inline-flex; align-items: center; gap: 3px; font: 700 20px/1 'Atkinson Hyperlegible', monospace; font-variant-numeric: tabular-nums; }
.promo-bar__digits b { display: inline-block; min-width: 38px; padding: 7px 0; text-align: center; border-radius: 8px; background: rgba(0, 0, 0, .45); border: 1px solid rgba(228, 191, 59, .4); color: #fff3c4; }
.promo-bar__digits i { font-style: normal; color: var(--promo-gold); animation: promoBlink 1s steps(2) infinite; }
@keyframes promoBlink { 50% { opacity: .25; } }
.promo-bar.is-urgent .promo-bar__digits b { color: #ff9d8a; border-color: rgba(255, 120, 100, .6); }
.promo-bar__cta { flex: none; margin: 0; align-self: center; border: 0; cursor: pointer; padding: 11px 22px; border-radius: 40px; font: 700 14px/1 'Atkinson Hyperlegible', sans-serif; color: #1b1306;
    background: linear-gradient(135deg, #f4d03f, var(--promo-gold) 50%, var(--promo-gold-deep)); box-shadow: 0 10px 24px -10px rgba(228, 191, 59, .8); transition: transform .3s cubic-bezier(.22, 1, .36, 1), box-shadow .3s; }
.promo-bar__cta:hover { transform: translateY(-2px) scale(1.03); box-shadow: 0 16px 30px -12px rgba(228, 191, 59, .95); }
.promo-bar__close { position: absolute; inset-inline-end: 12px; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .25);
    background: rgba(255, 255, 255, .06); color: #fff; font-size: 22px; line-height: 1; cursor: pointer; transition: background .2s; }
.promo-bar__close:hover { background: rgba(255, 255, 255, .18); }
.promo-bar.is-expired .promo-bar__cta, .promo-bar.is-expired .promo-bar__timer { display: none; }
.promo-bar.is-expired .promo-bar__badge { filter: grayscale(1); animation: none; }
@media (max-width: 760px) {
    .promo-bar__inner { flex-wrap: wrap; gap: 8px 12px; padding: 8px 46px 8px 12px; justify-content: flex-start; }
    html[dir="rtl"] .promo-bar__inner { padding: 8px 12px 8px 46px; }
    .promo-bar__badge { width: 38px; height: 38px; font-size: 13px; }
    .promo-bar__copy { flex: 1 1 calc(100% - 60px); }
    .promo-bar__title { font-size: 14px; }
    .promo-bar__sub { display: none; }
    .promo-bar__timer-label { display: none; }
    .promo-bar__digits { font-size: 16px; } .promo-bar__digits b { min-width: 32px; padding: 6px 0; }
    .promo-bar__cta { flex: 1; padding: 10px 14px; }
}
/* le header fixe du site se décale sous la barre */
header { transition: top .35s cubic-bezier(.22, 1, .36, 1), all .3s ease; }
body.has-promo header, body.has-promo header.fixed_header { top: var(--promo-h) !important; }

/* --- Fenêtre coupon (ticket) --- */
.promo-modal { position: fixed; inset: 0; z-index: 100001; display: grid; place-items: center; padding: 18px; }
.promo-modal[hidden] { display: none; }
.promo-modal__backdrop { position: absolute; inset: 0; background: rgba(5, 6, 12, .72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.promo-ticket { position: relative; display: grid; grid-template-columns: 210px 1fr; width: min(760px, 100%); border-radius: 26px; overflow: hidden; color: #f4f5f9; outline: none;
    background: #14151e; box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .9), 0 0 0 1px rgba(228, 191, 59, .35); }
.promo-ticket__x { position: absolute; z-index: 3; inset-block-start: 12px; inset-inline-end: 12px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .2); background: rgba(0, 0, 0, .35); color: #fff; font-size: 22px; cursor: pointer; }
.promo-ticket__stub { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px 14px; color: #1b1306; text-align: center;
    background: radial-gradient(circle at 25% 15%, #fff2a8 0%, var(--promo-gold) 45%, var(--promo-gold-deep) 100%); }
.promo-ticket__stub::after { content: ""; position: absolute; inset-block: 0; inset-inline-end: -1px; width: 14px;
    background: radial-gradient(circle at 100% 50%, #14151e 6px, transparent 7px) 0 0 / 14px 22px repeat-y; }
html[dir="rtl"] .promo-ticket__stub::after { background: radial-gradient(circle at 0 50%, #14151e 6px, transparent 7px) 0 0 / 14px 22px repeat-y; }
.promo-ticket__pct { font: 800 78px/.9 'Atkinson Hyperlegible', sans-serif; letter-spacing: -.05em; white-space: nowrap; } .promo-ticket__pct sup { font-size: 32px; vertical-align: top; position: relative; top: 6px; letter-spacing: 0; }
.promo-ticket__off { font: 700 18px/1 'Atkinson Hyperlegible', sans-serif; letter-spacing: .5em; margin-top: 6px; }
.promo-ticket__ringwrap { position: relative; width: 118px; height: 118px; margin-top: 18px; display: grid; place-items: center; }
.promo-ticket__ring { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
.promo-ticket__ring circle { fill: none; stroke-width: 6; }
.promo-ticket__ring .bg { stroke: rgba(27, 19, 6, .18); }
.promo-ticket__ring .fg { stroke: #1b1306; stroke-linecap: round; stroke-dasharray: 327; stroke-dashoffset: 0; }
.promo-ticket__clock { position: relative; font: 800 26px/1 'Atkinson Hyperlegible', monospace; font-variant-numeric: tabular-nums; }
.promo-ticket__body { padding: 34px 34px 30px; display: flex; flex-direction: column; gap: 14px; }
.promo-ticket__title { margin: 0; font: 700 30px/1.1 'Rufina', 'Atkinson Hyperlegible', serif; color: #fff; }
.promo-ticket__sub { margin: 0; color: #c8cbd8; font-size: 15px; line-height: 1.5; }
.promo-ticket__code { display: flex; align-items: stretch; border: 1.5px dashed rgba(228, 191, 59, .75); border-radius: 14px; overflow: hidden; background: rgba(228, 191, 59, .06); }
.promo-ticket__code code { flex: 1; padding: 14px 16px; font: 800 24px/1 'Atkinson Hyperlegible', monospace; letter-spacing: .08em; color: var(--promo-gold); text-align: center; user-select: all; }
.promo-ticket__code button { border: 0; padding: 0 20px; cursor: pointer; font: 700 14px 'Atkinson Hyperlegible', sans-serif; color: #1b1306; background: var(--promo-gold); transition: background .2s; }
.promo-ticket__code button:hover { background: #f4d03f; }
.promo-ticket__rules { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; color: #dfe1ea; font-size: 14.5px; }
.promo-ticket__rules li { position: relative; padding-inline-start: 26px; }
.promo-ticket__rules li::before { content: ""; position: absolute; inset-inline-start: 0; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: var(--promo-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.2 8.4l2.4 2.4 5.2-5.4' fill='none' stroke='%231b1306' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat; }
.promo-ticket__go { align-self: flex-start; margin-top: 4px; padding: 14px 28px; border-radius: 40px; font: 700 15px 'Atkinson Hyperlegible', sans-serif; color: #1b1306; text-decoration: none;
    background: linear-gradient(135deg, #f4d03f, var(--promo-gold) 50%, var(--promo-gold-deep)); box-shadow: 0 14px 30px -14px rgba(228, 191, 59, .85); transition: transform .3s cubic-bezier(.22, 1, .36, 1); }
.promo-ticket__go:hover { transform: translateY(-2px); color: #1b1306; }
@media (max-width: 640px) {
    .promo-ticket { grid-template-columns: 1fr; }
    .promo-ticket__stub { flex-direction: row; gap: 14px; padding: 18px; justify-content: flex-start; }
    .promo-ticket__stub::after { display: none; }
    .promo-ticket__pct { font-size: 52px; } .promo-ticket__off { margin: 0; }
    .promo-ticket__ringwrap { width: 84px; height: 84px; margin: 0 0 0 auto; } .promo-ticket__clock { font-size: 18px; }
    .promo-ticket__body { padding: 22px 20px 24px; } .promo-ticket__title { font-size: 25px; }
    .promo-ticket__go { align-self: stretch; text-align: center; }
}

/* --- Pastille flottante (offre fermée mais encore valable) --- */
.promo-pill { position: fixed; z-index: 99990; inset-inline-start: 18px; bottom: 18px; display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px 8px 8px; border-radius: 40px; cursor: pointer;
    border: 1px solid rgba(228, 191, 59, .55); color: #fff; background: rgba(22, 17, 8, .92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 16px 36px -14px rgba(0, 0, 0, .85); font: 600 13px 'Atkinson Hyperlegible', sans-serif; }
.promo-pill[hidden] { display: none; }
.promo-pill b { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #1b1306; background: linear-gradient(135deg, #f4d03f, var(--promo-gold-deep)); font-size: 12px; animation: promoPulse 2.4s infinite; }
.promo-pill em { font-style: normal; font-variant-numeric: tabular-nums; color: var(--promo-gold); font-weight: 800; }
.promo-pill.is-urgent em { color: #ff9d8a; }
@media (prefers-reduced-motion: reduce) { .promo-bar::before, .promo-bar__badge, .promo-bar__digits i, .promo-pill b { animation: none; } }

/* popup d'appel (2 par visite) */
.promo-pop { position: fixed; inset: 0; z-index: 9995; display: grid; place-items: center; padding: 16px; }
.promo-pop__bd { position: absolute; inset: 0; background: rgba(6, 7, 12, .72); backdrop-filter: blur(6px); }
.promo-pop__box { position: relative; width: min(440px, 100%); padding: 44px 28px 28px; text-align: center; border-radius: 28px; color: #fff; background: radial-gradient(120% 90% at 50% 0%, rgba(228, 191, 59, .22), transparent 60%), #14161f; border: 1px solid rgba(228, 191, 59, .5); box-shadow: 0 40px 90px -30px #000, 0 0 60px -20px rgba(228, 191, 59, .5); font-family: 'Atkinson Hyperlegible', 'Tajawal', sans-serif; }
.promo-pop__badge { position: absolute; top: -34px; left: 50%; transform: translateX(-50%); display: grid; place-items: center; width: 74px; height: 74px; border-radius: 50%; background: linear-gradient(135deg, #f2d25a, #cd9343); color: #1b1306; font: 800 22px 'Atkinson Hyperlegible', sans-serif; box-shadow: 0 12px 30px -10px rgba(228, 191, 59, .8); }
.promo-pop__box h2 { margin: 6px 0 8px; font: 700 1.55rem/1.25 'Rufina', 'Tajawal', serif; color: #fff; } .promo-pop__box p { margin: 0 0 14px; color: #c3c7d6; line-height: 1.5; }
.promo-pop__cd { display: inline-block; margin-bottom: 18px; padding: 8px 16px; border-radius: 30px; background: rgba(255, 255, 255, .07); font-variant-numeric: tabular-nums; font-weight: 700; color: #f2d25a; }
.promo-pop__go { display: block; width: 100%; min-height: 54px; border: 0; border-radius: 40px; background: linear-gradient(135deg, #f2d25a, #cd9343); color: #1b1306; font: 700 16px 'Atkinson Hyperlegible', 'Tajawal', sans-serif; cursor: pointer; box-shadow: 0 14px 30px -14px rgba(228, 191, 59, .75); }
.promo-pop__x { position: absolute; top: 12px; inset-inline-end: 14px; width: 36px; height: 36px; border-radius: 50%; border: 1px solid #2a2e42; background: transparent; color: #fff; font-size: 20px; cursor: pointer; }

/* ===== Offre -10% : petit widget flottant au milieu à gauche (icône minuteur), plus de barre pleine largeur ni de pastille en bas ===== */
.promo-bar { overflow: visible; inset: auto; top: 38%; inset-inline-start: 0; bottom: auto; width: auto; z-index: 99990; border: 1px solid rgba(228, 191, 59, .45); border-inline-start: 0; border-radius: 0 16px 16px 0; background: linear-gradient(135deg, #1b1306, #3a2609); box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .85); }
html[dir="rtl"] .promo-bar { border-radius: 16px 0 0 16px; border-inline-start: 1px solid rgba(228, 191, 59, .45); border-inline-end: 0; }
.promo-bar::before { display: none; }
.promo-bar__inner { gap: 8px; padding: 8px 12px 8px 10px; flex-wrap: nowrap; justify-content: flex-start; }
html[dir="rtl"] .promo-bar__inner { padding: 8px 10px 8px 12px; }
.promo-bar__inner::before { content: ""; flex: none; width: 24px; height: 24px; background: center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e4bf3b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='13' r='8'/%3E%3Cpath d='M12 9v4l2.5 2M9 2h6M12 2v3'/%3E%3C/svg%3E"); }
.promo-bar__badge { width: 34px; height: 34px; font-size: 12px; }
.promo-bar__copy, .promo-bar__timer-label { display: none !important; }
.promo-bar__digits { font-size: 15px; } .promo-bar__digits b { min-width: 28px; padding: 5px 0; border-radius: 6px; }
.promo-bar__cta { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; margin: 0; border: 0; border-radius: inherit; background: transparent; box-shadow: none; font-size: 0; color: transparent; flex: none; z-index: 1; }
.promo-bar__cta:hover { transform: none; box-shadow: none; background: rgba(255, 255, 255, .06); }
.promo-bar__close { z-index: 2; top: -9px; inset-inline-end: -7px; transform: none; width: 22px; height: 22px; font-size: 15px; background: #1b1306; border-color: rgba(228, 191, 59, .5); }
.promo-bar.is-expired .promo-bar__inner::before { filter: grayscale(1); }
.promo-bar.is-expired .promo-bar__digits { display: none; }
.promo-pill { bottom: auto; top: 38%; inset-inline-start: 0; padding: 7px 12px 7px 8px; border-radius: 0 16px 16px 0; }
html[dir="rtl"] .promo-pill { border-radius: 16px 0 0 16px; }
@media (min-width: 992px) { .promo-bar, .promo-pill { top: calc(50% - 190px); } }
@media (max-width: 760px) { .promo-bar__inner { padding: 6px 10px 6px 8px; } .promo-bar__digits { font-size: 14px; } .promo-bar__digits b { min-width: 26px; } .promo-bar__badge { width: 30px; height: 30px; font-size: 11px; } }
