/* ==========================================================================
   Thème « refonte » maniatoo — violet / orange, police Nunito Sans.
   Activé par MANIATOO_THEME=refonte (défaut) : la classe .theme-refonte est posée sur <body>.
   Mettre MANIATOO_THEME=classic dans .env pour revenir à l'ancien habillage.
   ========================================================================== */
body.theme-refonte {
    --purple: #4810bd; --deep: #21005e; --violet: #7118e8; --orange: #ff8a00; --line: #e9e6f3;
    --ink: #17143b; --ink-soft: #77758e; --page-ink: #17143b;
    --canvas: #faf9ff; --surface: #ffffff; --border: #e9e6f3;
    --chrome: #2a0a78;
    --indigo: #4810bd; --indigo-soft: #6a2be0; --indigo-light: #7118e8;
    --gold: #ff8a00; --gold-dark: #ff6500;
    --radius: 18px;
    --shadow-card: 0 6px 22px rgba(44,15,105,.07);
    --shadow-card-hover: 0 10px 30px rgba(44,15,105,.12);
    --shadow-btn: 0 8px 20px -8px rgba(255,101,0,.6);
    --shadow-btn-hover: 0 12px 24px -8px rgba(255,101,0,.7);
    font-family: 'Nunito Sans', 'Plus Jakarta Sans', system-ui, sans-serif;
    background: var(--canvas) !important;
}
.theme-refonte h1, .theme-refonte h2, .theme-refonte h3 { font-family: 'Nunito Sans', system-ui, sans-serif; font-weight: 900; letter-spacing: -.02em; }
.theme-refonte a { color: var(--purple); }
.theme-refonte .btn { background: linear-gradient(90deg, #ff8b00, #ff6500); font-weight: 900; }

/* ---------- En-tête : barre blanche, liens en pastilles, bouton violet ---------- */
.theme-refonte .navbar.site-navbar { background: #fff; border-bottom: 0; box-shadow: 0 3px 18px rgba(26,8,70,.06); }
.theme-refonte .site-navbar .navbar-brand { font-family: 'Nunito Sans', system-ui, sans-serif; font-weight: 900; font-size: 1.7rem; letter-spacing: -.06em; color: #24105f; display: inline-flex; align-items: center; gap: 9px; text-transform: lowercase; }
.theme-refonte .rf-brand-mark { width: 42px; height: 36px; display: inline-grid; place-items: center; border-radius: 13px 13px 13px 4px; background: linear-gradient(135deg, #ed26b9, #ff8a00); color: #fff; font-size: 33px; font-weight: 900; font-style: italic; line-height: 1; letter-spacing: 0; }
.theme-refonte .site-navbar .nav-link { color: var(--ink); font-weight: 800; font-size: .9rem; border-radius: 24px; padding: 9px 15px !important; }
.theme-refonte .site-navbar .nav-link:hover, .theme-refonte .site-navbar .nav-link:focus, .theme-refonte .site-navbar .nav-link.show { background: #f0e9ff; color: var(--purple); }
.theme-refonte .site-navbar .navbar-toggler { border-color: #e1d8f5; }
.theme-refonte .site-navbar .navbar-toggler-icon { filter: invert(1) brightness(.2); }
.theme-refonte .navbar-search-input { background: #f5f3fa !important; color: var(--ink) !important; border-color: transparent !important; }
.theme-refonte .navbar-search-input::placeholder { color: var(--ink-soft); }
.theme-refonte .navbar-search-input:focus { background: #efeaf9 !important; border-color: #cdbdf3 !important; }
.theme-refonte .site-navbar form span { color: var(--ink-soft) !important; }
.theme-refonte .site-navbar .btn { background: var(--purple); box-shadow: none; padding: 10px 20px; }
.theme-refonte .site-navbar .dropdown-menu { border-radius: 16px; border-color: #eeeaf6; box-shadow: var(--shadow-card-hover); }
.theme-refonte .site-navbar .dropdown-item:hover, .theme-refonte .site-navbar .dropdown-item:focus { background: #f0e9ff; color: var(--purple); }
.theme-refonte #mainNavbar.offcanvas { background: #fff; }
.theme-refonte #mainNavbar .offcanvas-header { border-bottom: 1px solid #eeeaf6; }
.theme-refonte #mainNavbar .btn-close-white { filter: none; }
.theme-refonte .points-pill { background: #f0e9ff; color: var(--purple) !important; }

/* ---------- Hero : dégradé violet → magenta, illustration à droite ---------- */
.theme-refonte .home-page .hero-wrap { background: linear-gradient(112deg, #23006e 0%, #5410bd 53%, #d52ac9 100%) !important; color: #fff; }
.theme-refonte .home-page .hero-wrap::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, transparent 0 90px, rgba(255,255,255,.045) 91px 94px); pointer-events: none; }
.theme-refonte .home-page .hero-wrap > div[style*="border-radius:50%"] { display: none; }
.theme-refonte .home-page .hero-wrap h1 { color: #fff !important; font-size: clamp(2.2rem, 5vw, 3.9rem) !important; line-height: 1 !important; letter-spacing: -.04em; }
.theme-refonte .home-page .hero-wrap .hero-cols > div:first-child > span:first-child { color: #ffbd18 !important; }
.theme-refonte .home-page .hero-wrap .hero-cols > div:first-child p,
.theme-refonte .home-page .hero-wrap .hero-cols > div:first-child p strong,
.theme-refonte .home-page .hero-wrap .hero-cols > div:first-child ul li > span { color: #f1eaff !important; }
.theme-refonte .home-page .hero-wrap .hero-cols > div:first-child form button { background: linear-gradient(90deg, #ff8b00, #ff6500) !important; border-radius: 999px !important; }
.theme-refonte .home-page .hero-wrap .hero-cols > div:first-child form > div { border-radius: 999px !important; border-color: transparent !important; }
.theme-refonte .home-page .hero-wrap .rf-hero-art { display: block; width: 100%; max-width: 620px; height: auto; border-radius: 0; margin-left: auto;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 26%), linear-gradient(0deg, transparent 0, #000 14%); -webkit-mask-composite: source-in;
    mask-image: linear-gradient(90deg, transparent 0, #000 26%), linear-gradient(0deg, transparent 0, #000 14%); mask-composite: intersect; }

/* ---------- Barre de raccourcis : une seule carte blanche arrondie, séparateurs ---------- */
.theme-refonte .sc-grid { background: #fff; border-radius: 0 0 22px 22px; box-shadow: 0 10px 30px rgba(44,15,105,.09); padding: 14px 8px; margin: 0; gap: 0; }
.theme-refonte .sc-tile { background: transparent; box-shadow: none; border-radius: 0; border-right: 1px solid var(--line); flex: 1 1 0; min-width: 100px; padding: 12px 8px; }
.theme-refonte .sc-tile:last-child { border-right: 0; }
.theme-refonte .sc-tile:hover { transform: none; background: #faf7ff; box-shadow: none; }
.theme-refonte .sc-lab { font-weight: 900; font-size: .9rem; }

/* ---------- Titres de section avec barre violette ---------- */
.theme-refonte .home-page section > h2, .theme-refonte .home-page section > div:first-child > h2 { font-weight: 900; font-size: 1.55rem; letter-spacing: -.03em; display: flex; align-items: center; gap: 12px; }
.theme-refonte .home-page section > h2::before, .theme-refonte .home-page section > div:first-child > h2::before { content: ""; width: 6px; height: 27px; border-radius: 8px; background: var(--violet); flex: none; }

/* ---------- « À la une » : cartes dégradées violet / bleu ---------- */
.theme-refonte .ft-card { background: linear-gradient(120deg, #26006f, #6515d7) !important; border-radius: 18px !important; box-shadow: var(--shadow-card); }
.theme-refonte .ft-card .ft-stretch { border-radius: 18px; }
.theme-refonte .ft-card h3 { font-weight: 900; letter-spacing: -.03em; }
.theme-refonte div[style*="flex-direction:column; gap:16px"] > .ft-card:nth-child(1) { background: linear-gradient(110deg, #071c4d, #1269a9) !important; }
.theme-refonte div[style*="flex-direction:column; gap:16px"] > .ft-card:nth-child(2) { background: linear-gradient(110deg, #24005e, #8413c8) !important; }
.theme-refonte .ft-card span[style*="background:var(--gold)"] { background: #6e25ee !important; }

/* ---------- Panneaux (classement, saison…) ---------- */
.theme-refonte .home-page div[style*="background:var(--surface); border-radius:var(--radius)"] { border: 1px solid #f0edf7; box-shadow: 0 6px 22px rgba(44,15,105,.05); border-radius: 20px !important; }

/* ---------- Pied de page : dégradé violet, vague ---------- */
.theme-refonte > footer { background: linear-gradient(110deg, #20005f, #4a0bb1) !important; position: relative; overflow: hidden; }
.theme-refonte > footer::after { content: ""; position: absolute; bottom: -90px; left: -5%; width: 110%; height: 130px; border-radius: 50%; background: #6e2ae9; opacity: .35; pointer-events: none; }
.theme-refonte > footer > .container { position: relative; z-index: 1; }
.theme-refonte > footer a { color: #eee5ff !important; }
.theme-refonte .rf-footer-brand { display: inline-flex; align-items: center; gap: 9px; font-weight: 900; font-size: 1.6rem; letter-spacing: -.06em; color: #fff; text-transform: lowercase; }

@media (max-width: 767.98px) {
    .theme-refonte .sc-tile { border-right: 0; min-width: 84px; }
    .theme-refonte .home-page .hero-wrap .rf-hero-art { max-width: 100%; }
}
