/* ═══════════════════════════════════════════════════════════
   PAGES CARTE CADEAU — pages/offrir.html (achat + confirmation)
   et pages/activer.html (activation du code).
   Réutilise les tokens globaux de base.css (--vp, --vb, --vc, --g, --bg, --bg2, --border) ;
   seuls les tokens absents du site (--gift-dim, couleurs d'état) sont définis ici.
════════════════════════════════════════════════════════════ */

.gift-page {
    --gift-text-muted: rgba(255, 255, 255, .62);
    --gift-dim: rgba(255, 255, 255, .45);
    --gift-green: #34d399;
    --gift-amber: #fbbf24;
    --gift-red: #f87171;
    line-height: 1.5;
}

/* L'attribut hidden (piloté en JS) doit l'emporter sur les display:flex/grid ci-dessous. */
.gift-page [hidden] { display: none !important; }

.gift-wrap {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 24px;
}

@media (max-width: 520px) {
    .gift-wrap { padding: 0 16px; }
}

.gift-eyebrow {
    font-family: 'DM Mono', monospace;
    font-size: 11.5px;
    letter-spacing: 2.4px;
    text-transform: uppercase;
    color: var(--vc);
}

.gift-view { display: none; }
.gift-view.on { display: block; }

/* ── Boutons ── */
.gift-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    border-radius: 99px;
    font-family: 'Syne', sans-serif;
    font-weight: 700;
    font-size: 16px;
    padding: 16px 32px;
    cursor: pointer;
    text-decoration: none;
    color: #fff;
    min-height: 48px;
    transition: filter .15s, background .15s;
}

.gift-btn--primary { background: var(--g); }
.gift-btn--primary:hover { filter: brightness(1.1); color: #fff; }
.gift-btn--ghost { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .16); }
.gift-btn--ghost:hover { background: rgba(255, 255, 255, .1); }
.gift-btn--block { width: 100%; }
.gift-btn:disabled { opacity: .55; cursor: not-allowed; filter: none; }
.gift-page :focus-visible { outline: 2px solid var(--vc); outline-offset: 3px; }

/* ── Hero ── */
.gift-hero {
    position: relative;
    overflow: hidden;
    padding: 64px 0 40px;
}

.gift-hero::before {
    content: "";
    position: absolute;
    inset: -200px -100px auto auto;
    width: 640px;
    height: 640px;
    background: radial-gradient(closest-side, rgba(118, 75, 162, .35), transparent);
    pointer-events: none;
}

.gift-hero-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 56px;
    align-items: center;
    position: relative;
}

@media (max-width: 900px) {
    .gift-hero { padding-top: 40px; }
    .gift-hero-grid { grid-template-columns: 1fr; gap: 40px; }
}

.gift-hero h1 {
    font-family: 'Bebas Neue', sans-serif;
    font-weight: 400;
    font-size: clamp(48px, 7vw, 84px);
    line-height: .95;
    margin: 16px 0 18px;
    letter-spacing: .5px;
}

.gift-grad {
    background: var(--g);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.gift-lead {
    font-size: 18px;
    line-height: 1.55;
    color: var(--gift-text-muted);
    margin: 0 0 28px;
    max-width: 520px;
}

.gift-hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; }

.gift-ticks {
    display: flex;
    gap: 8px 20px;
    flex-wrap: wrap;
    font-family: 'DM Mono', monospace;
    font-size: 12px;
    color: var(--gift-dim);
    margin-top: 18px;
}

.gift-ticks span::before { content: "✓ "; color: var(--gift-green); }

.gift-xmas {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(251, 191, 36, .1);
    border: 1px solid rgba(251, 191, 36, .35);
    color: var(--gift-amber);
    border-radius: 99px;
    padding: 6px 14px;
    font-family: 'DM Mono', monospace;
    font-size: 11.5px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

/* ── Visuel carte cadeau ── */
.gift-card {
    position: relative;
    aspect-ratio: 1.586;
    border-radius: 22px;
    padding: 28px;
    background:
        radial-gradient(120% 140% at 100% 0%, rgba(255, 255, 255, .18), transparent 55%),
        linear-gradient(135deg, #764ba2 0%, #667eea 100%);
    box-shadow: 0 30px 80px rgba(102, 126, 234, .35), 0 0 0 1px rgba(255, 255, 255, .15) inset;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    max-width: 500px;
    width: 100%;
    margin: 0 auto;
    text-align: left;
    transition: background .3s, box-shadow .3s;
}

.gift-card--life {
    background:
        radial-gradient(120% 140% at 100% 0%, rgba(255, 255, 255, .22), transparent 55%),
        linear-gradient(135deg, #1b1640 0%, #3a2d9c 55%, #764ba2 100%);
    box-shadow: 0 30px 80px rgba(118, 75, 162, .45), 0 0 0 1px rgba(251, 191, 36, .45) inset;
}

.gift-card::after {
    content: "";
    position: absolute;
    right: -60px;
    bottom: -60px;
    width: 260px;
    height: 260px;
    border-radius: 50%;
    border: 40px solid rgba(255, 255, 255, .07);
}

.gift-card-top,
.gift-card-mid,
.gift-card-bot { position: relative; z-index: 1; }

.gift-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.gift-card-brand { font-family: 'Bebas Neue', sans-serif; font-size: 30px; letter-spacing: 2px; line-height: 1; }

.gift-card-type {
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    background: rgba(0, 0, 0, .22);
    padding: 6px 12px;
    border-radius: 99px;
    white-space: nowrap;
}

.gift-card-title { font-family: 'Bebas Neue', sans-serif; font-size: clamp(30px, 5vw, 46px); line-height: .95; }

.gift-card-msg {
    font-size: 14px;
    line-height: 1.45;
    color: rgba(255, 255, 255, .88);
    margin-top: 8px;
    min-height: 20px;
    max-width: 85%;
    font-style: italic;
    overflow-wrap: anywhere;
}

.gift-card-bot { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; font-size: 13px; }
.gift-card-who { color: rgba(255, 255, 255, .85); line-height: 1.4; min-width: 0; overflow-wrap: anywhere; }
.gift-card-who b { color: #fff; }

.gift-card-code {
    font-family: 'DM Mono', monospace;
    font-size: 13px;
    letter-spacing: 2px;
    background: rgba(0, 0, 0, .25);
    padding: 8px 12px;
    border-radius: 10px;
    white-space: nowrap;
}

@media (max-width: 520px) {
    .gift-card { padding: 18px; border-radius: 16px; }
    .gift-card-brand { font-size: 22px; }
    .gift-card-type { font-size: 9.5px; padding: 5px 9px; letter-spacing: 1.2px; }
    .gift-card-msg { font-size: 12px; margin-top: 4px; }
    .gift-card-bot { font-size: 11.5px; }
    .gift-card-code { font-size: 10.5px; letter-spacing: 1px; padding: 6px 8px; }
}

/* ── Sections ── */
.gift-block { padding: 56px 0; }

.gift-section-head { text-align: center; max-width: 640px; margin: 0 auto 36px; }

.gift-section-head h2 {
    font-family: 'Bebas Neue', sans-serif;
    font-weight: 400;
    font-size: clamp(36px, 5vw, 48px);
    line-height: 1;
    margin: 10px 0 12px;
}

/* ── Formulaire d'achat ── */
.gift-buy-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 28px; align-items: start; }

@media (max-width: 900px) {
    .gift-buy-grid { grid-template-columns: 1fr; }
}

.gift-panel {
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--border);
    border-radius: 22px;
    padding: 30px;
}

@media (max-width: 520px) {
    .gift-panel { padding: 22px 18px; border-radius: 18px; }
}

.gift-panel h3 {
    font-family: 'Bebas Neue', sans-serif;
    font-weight: 400;
    font-size: 26px;
    letter-spacing: .8px;
    margin: 0 0 4px;
    line-height: 1.2;
}

.gift-panel h3.gift-h3-spaced { margin-top: 28px; }
.gift-hint { color: var(--gift-dim); font-size: 14px; margin: 0 0 20px; }

.gift-step-n {
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--g);
    font-family: 'DM Mono', monospace;
    font-size: 12px;
    margin-right: 10px;
    vertical-align: 3px;
}

.gift-plans { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 8px; }

@media (max-width: 520px) {
    .gift-plans { grid-template-columns: 1fr; }
}

.gift-plan {
    position: relative;
    display: block;
    cursor: pointer;
    border-radius: 18px;
    padding: 22px 20px;
    background: rgba(255, 255, 255, .03);
    border: 1px solid var(--border);
    transition: border-color .15s, background .15s;
}

.gift-plan input { position: absolute; opacity: 0; pointer-events: none; }
.gift-plan:hover { border-color: rgba(167, 139, 250, .4); }

.gift-plan.sel {
    background: linear-gradient(160deg, rgba(118, 75, 162, .2), rgba(102, 126, 234, .1));
    border-color: rgba(167, 139, 250, .7);
    box-shadow: 0 0 0 1px rgba(167, 139, 250, .5) inset;
}

.gift-plan:has(input:focus-visible) { outline: 2px solid var(--vc); outline-offset: 3px; }

.gift-plan-badge {
    position: absolute;
    top: -11px;
    right: 16px;
    font-family: 'DM Mono', monospace;
    font-size: 10.5px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 5px 12px;
    border-radius: 99px;
    background: linear-gradient(135deg, #b7791f, #fbbf24);
    color: #1b1206;
}

.gift-plan-name { font-family: 'Bebas Neue', sans-serif; font-size: 22px; letter-spacing: .8px; }
.gift-plan-price { display: flex; align-items: baseline; gap: 6px; margin: 6px 0 4px; }
.gift-plan-price .num { font-family: 'Bebas Neue', sans-serif; font-size: 46px; line-height: 1; }
.gift-plan-price .unit { color: var(--gift-dim); font-size: 14px; }
.gift-plan-sub { color: var(--gift-text-muted); font-size: 13.5px; line-height: 1.45; }

/* Promotion programmée (promo_carte_cadeau) */
.gift-plan-old { color: var(--gift-dim); font-size: 18px; font-family: 'Bebas Neue', sans-serif; letter-spacing: .5px; }
.gift-plan-off {
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    font-weight: 500;
    color: #1b1206;
    background: linear-gradient(135deg, #b7791f, #fbbf24);
    border-radius: 99px;
    padding: 3px 8px;
    align-self: center;
}
.gift-plan-promo {
    display: inline-block;
    margin: 2px 0 8px;
    font-family: 'DM Mono', monospace;
    font-size: 11px;
    letter-spacing: .5px;
    color: var(--gift-amber);
    background: rgba(251, 191, 36, .1);
    border: 1px solid rgba(251, 191, 36, .35);
    border-radius: 99px;
    padding: 4px 10px;
}
.gift-sum-promo { margin: -10px 0 16px; text-align: right; font-family: 'DM Mono', monospace; font-size: 11.5px; color: var(--gift-amber); }

.gift-plan-radio {
    position: absolute;
    top: 22px;
    right: 20px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .3);
}

.gift-plan.sel .gift-plan-radio { border-color: #fff; background: radial-gradient(circle, #fff 0 4px, transparent 5px); }

.gift-field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 16px; min-width: 0; }
.gift-field label { font-size: 13.5px; font-weight: 600; }
.gift-field label small { color: var(--gift-dim); font-weight: 400; }

.gift-field input,
.gift-field textarea {
    font-family: 'Syne', sans-serif;
    font-size: 16px; /* ≥ 16px : pas de zoom auto à la saisie sur iOS */
    color: #fff;
    background: var(--bg2);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 12px;
    padding: 12px 14px;
    min-height: 48px;
    width: 100%;
    color-scheme: dark;
}

.gift-field textarea { resize: vertical; min-height: 84px; }

.gift-field select {
    font-family: 'Syne', sans-serif;
    font-size: 16px;
    color: #fff;
    background: var(--bg2);
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 12px;
    padding: 12px 14px;
    min-height: 48px;
    width: 100%;
    color-scheme: dark;
    cursor: pointer;
}

.gift-field select:focus { outline: none; border-color: var(--vc); box-shadow: 0 0 0 3px rgba(167, 139, 250, .2); }
.gift-field-hint { color: var(--gift-dim); font-size: 12.5px; line-height: 1.45; }
.gift-field input::placeholder,
.gift-field textarea::placeholder { color: rgba(255, 255, 255, .35); }

.gift-field input:focus,
.gift-field textarea:focus { outline: none; border-color: var(--vc); box-shadow: 0 0 0 3px rgba(167, 139, 250, .2); }

.gift-field input.gift-input--error { border-color: var(--gift-red); }

.gift-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

@media (max-width: 520px) {
    .gift-row2 { grid-template-columns: 1fr; gap: 0; }
}

.gift-count { align-self: flex-end; font-family: 'DM Mono', monospace; font-size: 11px; color: var(--gift-dim); margin-top: -2px; }

.gift-deliv { display: grid; gap: 10px; margin-bottom: 16px; }

.gift-opt {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 14px;
    cursor: pointer;
    background: rgba(255, 255, 255, .02);
}

.gift-opt input { margin-top: 3px; accent-color: #a78bfa; width: 18px; height: 18px; flex-shrink: 0; }
.gift-opt b { display: block; font-size: 14.5px; }
.gift-opt span { color: var(--gift-text-muted); font-size: 13px; line-height: 1.4; }
.gift-opt:has(input:checked) { border-color: rgba(167, 139, 250, .6); background: rgba(118, 75, 162, .1); }

.gift-sched { display: none; margin: -4px 0 16px; }
.gift-sched.on { display: block; }

/* ── Récapitulatif + paiement ── */
.gift-summary { position: sticky; top: 90px; }

@media (max-width: 900px) {
    .gift-summary { position: static; }
}

.gift-sum-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 14.5px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
    color: var(--gift-text-muted);
}

.gift-sum-line b { color: #fff; font-weight: 600; text-align: right; overflow-wrap: anywhere; }
.gift-sum-total { display: flex; justify-content: space-between; align-items: baseline; padding: 16px 0 20px; }
.gift-sum-total span { font-size: 15px; }
.gift-sum-total b { font-family: 'Bebas Neue', sans-serif; font-size: 40px; font-weight: 400; }

.gift-cgv { display: flex; gap: 10px; align-items: flex-start; font-size: 12.5px; color: var(--gift-text-muted); line-height: 1.45; margin-bottom: 16px; cursor: pointer; }
.gift-cgv input { accent-color: #a78bfa; width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px; }
.gift-cgv a { color: var(--vc); }

.gift-payment { display: none; margin-bottom: 16px; }
.gift-payment.on { display: block; }

/* Stripe Payment Element (iframe claire) posé sur un fond clair, comme la modale de paiement du site */
.gift-payment-box { background: #fff; border-radius: 14px; padding: 16px; min-height: 120px; }

.gift-payment-loading { display: flex; align-items: center; justify-content: center; gap: 10px; color: #6b6585; font-size: 14px; min-height: 88px; }

.gift-msg { font-size: 13.5px; min-height: 1.2em; margin: 10px 0 0; text-align: center; }
.gift-msg--error { color: var(--gift-red); }
.gift-msg--ok { color: var(--gift-green); }

.gift-pay-note { display: flex; gap: 8px 10px; justify-content: center; align-items: center; color: var(--gift-dim); font-size: 12.5px; margin-top: 14px; flex-wrap: wrap; }
.gift-paym { font-family: 'DM Mono', monospace; font-size: 10.5px; border: 1px solid var(--border); border-radius: 6px; padding: 3px 7px; color: var(--gift-text-muted); }

.gift-edit-link { background: none; border: 0; color: var(--vc); font-family: inherit; font-size: 13px; text-decoration: underline; margin-top: 10px; padding: 6px; }

/* ── Fonctionnalités & étapes ── */
.gift-feat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }

@media (max-width: 900px) {
    .gift-feat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
    .gift-feat-grid { grid-template-columns: 1fr; }
}

.gift-feat { background: rgba(255, 255, 255, .04); border: 1px solid var(--border); border-radius: 18px; padding: 22px; }
.gift-feat svg { color: var(--vc); }
.gift-feat h4 { font-family: 'Bebas Neue', sans-serif; font-weight: 400; font-size: 22px; letter-spacing: .6px; margin: 12px 0 6px; }
.gift-feat p { color: var(--gift-text-muted); font-size: 14px; line-height: 1.5; margin: 0; }

.gift-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }

@media (max-width: 800px) {
    .gift-steps { grid-template-columns: 1fr; }
}

.gift-st { position: relative; padding: 26px; border-radius: 18px; background: var(--bg2); border: 1px solid var(--border); }
.gift-st .n { font-family: 'Bebas Neue', sans-serif; font-size: 56px; line-height: 1; background: var(--g); -webkit-background-clip: text; background-clip: text; color: transparent; }
.gift-st h4 { font-family: 'Bebas Neue', sans-serif; font-weight: 400; font-size: 24px; letter-spacing: .6px; margin: 6px 0 8px; }
.gift-st p { margin: 0; color: var(--gift-text-muted); font-size: 14.5px; line-height: 1.5; }

/* ── FAQ ── */
.gift-faq { max-width: 760px; margin: 0 auto; }
.gift-faq details { border-bottom: 1px solid var(--border); padding: 4px 0; }

.gift-faq summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 0;
    font-weight: 600;
    font-size: 15.5px;
}

.gift-faq summary::-webkit-details-marker { display: none; }
.gift-faq summary::after { content: "+"; font-family: 'DM Mono', monospace; color: var(--vc); font-size: 20px; line-height: 1; }
.gift-faq details[open] summary::after { content: "−"; }
.gift-faq p { margin: 0 0 18px; color: var(--gift-text-muted); line-height: 1.6; font-size: 14.5px; }

/* ── Confirmation ── */
.gift-center { max-width: 720px; margin: 0 auto; padding: 56px 24px 40px; text-align: center; }

@media (max-width: 520px) {
    .gift-center { padding: 36px 16px 32px; }
}

.gift-ok-ico {
    width: 72px;
    height: 72px;
    margin: 0 auto 18px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(52, 211, 153, .12);
    border: 1px solid rgba(52, 211, 153, .4);
    color: var(--gift-green);
}

.gift-center h1 { font-family: 'Bebas Neue', sans-serif; font-weight: 400; font-size: clamp(44px, 7vw, 64px); line-height: 1; margin: 10px 0 12px; }
.gift-center .gift-lead { margin: 0 auto 32px; max-width: 540px; font-size: 17px; }
.gift-center .gift-card { max-width: 440px; }

/* Cartes compactes (confirmation, activation) : titre réduit pour tenir sur 2 lignes même
   dans les langues plus longues (ES « Tu próxima carrera merece un plan de verdad. »). */
.gift-center .gift-card-title,
.gift-act-wrap .gift-card-title { font-size: clamp(26px, 4vw, 36px); }

.gift-codebox {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: var(--bg2);
    border: 1px dashed rgba(167, 139, 250, .6);
    border-radius: 16px;
    padding: 16px 16px 16px 22px;
    margin: 24px auto 0;
    max-width: 500px;
    text-align: left;
}

.gift-codebox .code { font-family: 'DM Mono', monospace; font-size: 22px; letter-spacing: 3px; }
.gift-codebox small { display: block; color: var(--gift-dim); font-family: 'DM Mono', monospace; font-size: 10.5px; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 2px; }
.gift-copy-btn { padding: 10px 18px; font-size: 13px; min-height: 44px; }

@media (max-width: 520px) {
    .gift-codebox { padding: 14px; }
    .gift-codebox .code { font-size: 17px; letter-spacing: 1.5px; }
}

.gift-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 28px; }
.gift-recap { margin: 36px auto 0; max-width: 500px; text-align: left; }

.gift-pending { color: var(--gift-text-muted); font-size: 15px; display: flex; align-items: center; justify-content: center; gap: 10px; margin: 24px 0; }

/* ── Activation ── */
.gift-act-wrap { max-width: 980px; margin: 0 auto; padding: 56px 24px 40px; }

@media (max-width: 520px) {
    .gift-act-wrap { padding: 32px 16px 32px; }
}

.gift-act-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 28px; align-items: start; }

@media (max-width: 860px) {
    .gift-act-grid { grid-template-columns: 1fr; }
}

.gift-act-wrap h1 { font-family: 'Bebas Neue', sans-serif; font-weight: 400; font-size: clamp(42px, 6vw, 60px); line-height: 1; margin: 12px 0 12px; }
.gift-act-wrap .gift-lead { font-size: 16.5px; margin-bottom: 26px; }
.gift-act-wrap .gift-card { max-width: 420px; margin: 0; }

.gift-code-input { display: flex; gap: 10px; }
.gift-code-input input { flex: 1; font-family: 'DM Mono', monospace; letter-spacing: 3px; text-transform: uppercase; font-size: 17px; }
.gift-code-input .gift-btn { padding: 12px 18px; flex-shrink: 0; }

@media (max-width: 400px) {
    .gift-code-input { flex-direction: column; }
}

.gift-state { display: none; align-items: center; gap: 10px; margin-top: 4px; padding: 12px 14px; border-radius: 12px; font-size: 14px; line-height: 1.45; }
.gift-state.on { display: flex; }
.gift-state--ok { background: rgba(52, 211, 153, .08); border: 1px solid rgba(52, 211, 153, .35); color: var(--gift-green); }
.gift-state--ok b { color: #fff; }
.gift-state--error { background: rgba(248, 113, 113, .08); border: 1px solid rgba(248, 113, 113, .35); color: var(--gift-red); }
.gift-state svg { flex-shrink: 0; }

.gift-account-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--bg2);
    margin-bottom: 16px;
    font-size: 14px;
    flex-wrap: wrap;
}

.gift-account-box b { overflow-wrap: anywhere; }

.gift-locked { opacity: .45; pointer-events: none; }

.gift-success { display: none; text-align: center; padding: 10px 0; }
.gift-success.on { display: block; }
.gift-success h3 { font-family: 'Bebas Neue', sans-serif; font-weight: 400; font-size: 34px; margin: 12px 0 8px; }
.gift-success p { color: var(--gift-text-muted); line-height: 1.55; margin: 0 0 20px; }

.gift-until {
    display: inline-block;
    font-family: 'DM Mono', monospace;
    font-size: 13px;
    letter-spacing: 1px;
    background: rgba(167, 139, 250, .12);
    border: 1px solid rgba(167, 139, 250, .4);
    padding: 8px 14px;
    border-radius: 99px;
    margin-bottom: 20px;
    color: #fff;
}

/* Spinner léger réutilisable (bouton paiement, attente webhook) */
.gift-spinner {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .25);
    border-top-color: #fff;
    animation: spin .8s linear infinite;
    flex-shrink: 0;
}

.gift-payment-loading .gift-spinner { border-color: rgba(118, 75, 162, .2); border-top-color: #764ba2; }
