:root { --gold:#b8901c; --gold-lt:#e8b84b; --dark:#111; }

.reg-hero {
    background: linear-gradient(160deg,#0a0a0a,#1a1200 50%,#0a0a0a);
    padding: 80px 0 60px;
    text-align: center;
    position: relative;
    overflow: hidden;

    /* ✅ AJOUTÉ — breakout "fondu" plein écran, DESKTOP + MOBILE.
       Même logique que .hero-section : le fond touche les bords du
       viewport quelle que soit la largeur d'écran, le contenu interne
       (.container Bootstrap) garde son padding habituel. */
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}
.reg-hero::before {
    content:'';
    position:absolute;inset:0;
    background:radial-gradient(ellipse 70% 60% at 50% 40%,rgba(184,144,28,.15),transparent 70%);
    pointer-events:none;
}
.reg-eyebrow { font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold); }
.reg-title   { font-family:'Playfair Display',serif;font-size:clamp(2rem,5vw,3.2rem);font-weight:700;color:#fff; }
.gold-bar    { width:40px;height:2px;background:var(--gold);border:none;margin:16px auto; }

.reg-card {
    background:#fff;
    border-radius:16px;
    border:1px solid #f0f0f0;
    padding:32px;
    margin-bottom:20px;
    display:flex;
    gap:24px;
    align-items:flex-start;
    transition:transform .25s,box-shadow .25s,border-color .25s;
}
.reg-card:hover {
    transform:translateX(6px);
    box-shadow:0 8px 32px rgba(184,144,28,.10);
    border-color:rgba(184,144,28,.25);
}
.reg-icon-box {
    width:52px;height:52px;
    border-radius:14px;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
    font-size:1.3rem;
}
.reg-icon-gold   { background:rgba(184,144,28,.12); color:var(--gold); }
.reg-icon-dark   { background:#111; color:#fff; }
.reg-icon-accent { background:rgba(59,130,246,.10); color:#3b82f6; }
.reg-icon-danger { background:rgba(239,68,68,.10); color:#ef4444; }

.reg-card-title { font-size:1rem;font-weight:700;color:var(--dark);margin-bottom:10px; }

.reg-list { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px; }
.reg-list li {
    display:flex;align-items:flex-start;gap:10px;
    font-size:14px;color:#555;line-height:1.6;
}
.reg-list li::before {
    content:'';
    width:6px;height:6px;border-radius:50%;
    background:var(--gold);margin-top:7px;flex-shrink:0;
}

.reg-badge {
    display:inline-flex;align-items:center;gap:8px;
    background:rgba(184,144,28,.09);
    border:1px solid rgba(184,144,28,.25);
    color:var(--gold);
    font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
    padding:6px 16px;border-radius:20px;
    margin-bottom:8px;
}
.reg-badge.reg-badge-danger {
    background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.2);color:#ef4444;
}

.score-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px; }
.score-item {
    background:#fafafa;border-radius:12px;
    padding:16px;text-align:center;
    border:1px solid #f0f0f0;
}
.score-num { font-family:'Playfair Display',serif;font-size:2rem;font-weight:700;color:var(--gold); }
.score-lbl { font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#888;margin-top:2px; }

.timeline { position:relative;padding-left:24px; }
.timeline::before {
    content:'';position:absolute;left:8px;top:0;bottom:0;
    width:2px;background:linear-gradient(180deg,var(--gold),rgba(184,144,28,.1));
}
.tl-item { position:relative;margin-bottom:20px;padding-left:20px; }
.tl-dot {
    position:absolute;left:-24px;top:4px;
    width:12px;height:12px;border-radius:50%;
    background:var(--gold);border:2px solid #fff;
    box-shadow:0 0 0 2px var(--gold);
}
.tl-label { font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:600; }
.tl-text  { font-size:14px;color:#555;line-height:1.6;margin-top:2px; }

.reg-footnote {
    text-align:center;padding:32px;
    background:linear-gradient(135deg,#111,#1a1200);
    border-radius:16px;margin-top:8px;
}
.reg-footnote i { color:var(--gold);font-size:1.5rem;margin-bottom:12px;display:block; }
.reg-footnote p { color:rgba(255,255,255,.7);font-size:13px;max-width:500px;margin:0 auto;line-height:1.8; }

/* ═══════════════════════════════════════════════════
   RESPONSIVE — MOBILE
   ═══════════════════════════════════════════════════ */
@media (max-width: 767px) {
    .reg-hero { padding: 56px 0 40px; }
    .reg-hero p { font-size: 12.5px; padding: 0 16px; }

    .reg-card {
        flex-direction: column;
        gap: 16px;
        padding: 22px;
        border-radius: 14px;
    }
    .reg-card:hover { transform: none; }

    .reg-icon-box {
        width: 44px; height: 44px; font-size: 1.1rem;
    }

    .reg-card-title { font-size: .95rem; }
    .reg-list li { font-size: 13.5px; }

    .score-grid { grid-template-columns: 1fr; gap: 10px; }
    .score-item { padding: 14px; }
    .score-num { font-size: 1.6rem; }

    .timeline { padding-left: 18px; }
    .tl-item { padding-left: 16px; margin-bottom: 16px; }
    .tl-dot { left: -20px; width: 10px; height: 10px; }
    .tl-text { font-size: 13px; }

    .reg-footnote { padding: 24px 18px; }
    .reg-footnote p { font-size: 12px; }
}

@media (max-width: 400px) {
    .reg-card { padding: 18px; }
    .reg-badge { font-size: 9px; padding: 5px 12px; }
}