/* Thème « IFS » du portail — inspiré de www.ifs.com (relevé le 06/10/2026) :
 * violet nuit #170430 (en-tête), violet profond #360065 (titres), fond #f1f0f2,
 * bouton d'action vert néon #33ff94 au texte violet nuit, boutons en pilule,
 * cartes blanches arrondies (24 px) sans ombre. La police d'IFS (Euclid
 * Circular A) est commerciale : on utilise Figtree, géométrique et proche. */

body.cp-theme-ifs {
    --cp-primary: #360065;
    --cp-primary-rgb: 54, 0, 101;
    --cp-primary-dark: #170430;
    --cp-primary-soft: #ece3f6;
    --cp-primary-softer: #f5f2f7;
    --cp-on-primary: #ffffff;
    --ifs-night: #170430;
    --ifs-violet: #8427e2;
    --ifs-lilac: #cd92ff;
    --ifs-green: #33ff94;
    --ifs-green-dark: #1fe07d;
    --cp-bg: #f1f0f2;
    --cp-text: #170430;
    --cp-text-2: #685c79;
    --cp-border: #e2dfe6;
    --cp-accent: #6b1fb8;
    --cp-accent-bg: #f3e8ff;
    --cp-radius: 24px;
    --cp-radius-sm: 12px;
    --cp-shadow: none;
    --cp-font: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

.cp-theme-ifs h1, .cp-theme-ifs h2, .cp-theme-ifs h3 { font-weight: 600; letter-spacing: -.015em; color: var(--cp-primary); }
.cp-theme-ifs h1 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); }
.cp-theme-ifs a { color: var(--ifs-violet); }

/* Boutons en pilule ; l'action principale est verte comme sur ifs.com */
.cp-theme-ifs .cp-btn { border-radius: 1000px; font-weight: 600; border-width: 2px; }
.cp-theme-ifs .cp-btn--lg { padding: 15px 26px; }
.cp-theme-ifs .cp-input-group .cp-btn { border-radius: 0 var(--cp-radius-sm) var(--cp-radius-sm) 0; border: 1px solid #bab5c2; border-left: 0; color: var(--cp-text-2) !important; }
.cp-theme-ifs .cp-input-group .cp-btn:hover { background: var(--cp-primary-softer); color: var(--cp-primary) !important; }
.cp-theme-ifs .cp-btn--primary { background: var(--ifs-green); border-color: var(--ifs-green); color: var(--ifs-night) !important; }
.cp-theme-ifs .cp-btn--primary:hover { background: var(--ifs-green-dark); border-color: var(--ifs-green-dark); }
.cp-theme-ifs .cp-btn--neutral { border-color: var(--cp-primary); color: var(--cp-primary) !important; background: transparent; }
.cp-theme-ifs .cp-btn--neutral:hover { background: var(--cp-primary); color: #fff !important; }
.cp-theme-ifs .cp-btn--ghost:hover { background: var(--cp-primary-softer); color: var(--cp-primary) !important; }
.cp-theme-ifs .cp-chip { border-radius: 1000px; border-width: 2px; font-weight: 600; }
.cp-theme-ifs .cp-chip.is-active { background: var(--ifs-night); border-color: var(--ifs-night); color: #fff; }

/* Champs */
.cp-theme-ifs input[type=text], .cp-theme-ifs input[type=password], .cp-theme-ifs .cp-select {
    border-radius: var(--cp-radius-sm); border: 1px solid #bab5c2;
}
.cp-theme-ifs input:focus, .cp-theme-ifs .cp-select:focus { border-color: var(--ifs-violet); box-shadow: 0 0 0 3px rgba(132, 39, 226, .18); }
.cp-theme-ifs .cp-check input, .cp-theme-ifs .cp-option input { accent-color: var(--ifs-violet); }
.cp-theme-ifs :focus-visible { outline-color: var(--ifs-violet); }

/* En-tête violet nuit, comme le bandeau d'ifs.com */
.cp-theme-ifs .cp-header { background: var(--ifs-night); border-bottom: 0; color: #fff; }
.cp-theme-ifs .cp-header__brand { color: #fff !important; }
.cp-theme-ifs .cp-header__account { color: #fff !important; }
.cp-theme-ifs .cp-header__account:hover, .cp-theme-ifs .cp-header__account.is-active { background: rgba(255, 255, 255, .1); }
.cp-theme-ifs .cp-header__name small { color: var(--ifs-lilac); }
.cp-theme-ifs .cp-avatar { background: var(--ifs-violet); color: #fff; }
.cp-theme-ifs .cp-header .cp-btn--ghost { color: #fff !important; }
.cp-theme-ifs .cp-header .cp-btn--ghost:hover { background: rgba(255, 255, 255, .12); color: #fff !important; }
.cp-theme-ifs .cp-nav { background: var(--ifs-night); border-top: 1px solid rgba(255, 255, 255, .1); }
.cp-theme-ifs .cp-nav a { color: rgba(255, 255, 255, .72) !important; font-weight: 500; }
.cp-theme-ifs .cp-nav a:hover { color: #fff !important; }
.cp-theme-ifs .cp-nav a.is-active { color: #fff !important; border-bottom-color: var(--ifs-green); }

/* Accueil : bloc sombre avec lueur violette */
.cp-theme-ifs .cp-hero {
    background:
        radial-gradient(60% 120% at 100% 0%, rgba(132, 39, 226, .55), transparent 60%),
        radial-gradient(40% 80% at 0% 100%, rgba(205, 146, 255, .25), transparent 70%),
        var(--ifs-night);
    border-radius: 32px; padding: 40px;
}
.cp-theme-ifs .cp-hero h1 { color: #fff; }
.cp-theme-ifs .cp-eyebrow { color: var(--ifs-green); opacity: 1 !important; }
.cp-theme-ifs .cp-hero__shortcuts a { background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .14); border-radius: 20px; font-weight: 500; }
.cp-theme-ifs .cp-hero__shortcuts a:hover { background: rgba(255, 255, 255, .16); border-color: var(--ifs-green); }
.cp-theme-ifs .cp-hero__shortcuts .cp-icon { color: var(--ifs-green); }
.cp-theme-ifs .cp-banner { background: #fff; border: 2px solid var(--ifs-green); border-radius: 1000px; }
.cp-theme-ifs .cp-banner .cp-icon { color: var(--ifs-violet); }

/* Cartes plates, comme ifs.com */
.cp-theme-ifs .cp-card, .cp-theme-ifs .cp-stat { border: 0; box-shadow: none; }
.cp-theme-ifs .cp-card--link:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(23, 4, 48, .1); }
.cp-theme-ifs .cp-empty { border-color: #bab5c2; border-radius: var(--cp-radius); }
.cp-theme-ifs .cp-news__media { background: linear-gradient(135deg, #ece3f6, #f5f2f7); color: var(--ifs-violet); }
.cp-theme-ifs .cp-news__body h3 a:hover { color: var(--ifs-violet) !important; }
.cp-theme-ifs .cp-link { color: var(--ifs-violet); font-weight: 600; }

.cp-theme-ifs .cp-date-chip { background: var(--ifs-night); color: #fff; border-radius: 16px; }
.cp-theme-ifs .cp-date-chip b { color: var(--ifs-green); }
.cp-theme-ifs .cp-offer__emoji { background: var(--cp-primary-softer); border-radius: 18px; }
.cp-theme-ifs .cp-price { color: var(--cp-primary); }
.cp-theme-ifs .cp-stock { color: #0f7b4b; }
.cp-theme-ifs .cp-badge--accent { background: var(--ifs-night); color: var(--ifs-green); }
.cp-theme-ifs .cp-partner__deal { background: var(--cp-primary-softer); color: var(--cp-primary); }
.cp-theme-ifs .cp-partner__deal .cp-icon { color: var(--ifs-violet); }
.cp-theme-ifs .cp-option { border-radius: 16px; }
.cp-theme-ifs .cp-option:has(input:checked) { border-color: var(--ifs-violet); background: var(--cp-primary-softer); }
.cp-theme-ifs .cp-results__bar span { background: linear-gradient(90deg, var(--ifs-violet), var(--ifs-lilac)); }
.cp-theme-ifs .cp-elu__photo { background: var(--cp-primary-softer); color: var(--ifs-violet); }
.cp-theme-ifs .cp-elu__role { color: var(--ifs-violet); }
.cp-theme-ifs .cp-stat__val { color: var(--cp-primary); font-weight: 600; }
.cp-theme-ifs .cp-pagination .current { background: var(--ifs-night); border-color: var(--ifs-night); }
.cp-theme-ifs .cp-alert { border-radius: 16px; }
.cp-theme-ifs .cp-alert--info { background: #fff; border-color: var(--ifs-lilac); }

/* Pied de page violet nuit */
.cp-theme-ifs .cp-footer { background: var(--ifs-night); border-top: 0; color: rgba(255, 255, 255, .7); }
.cp-theme-ifs .cp-footer strong { color: #fff; }
.cp-theme-ifs .cp-footer .cp-legal a { color: rgba(255, 255, 255, .85) !important; }
.cp-theme-ifs .cp-footer a { color: var(--ifs-lilac); }

/* Page de connexion */
.cp-theme-ifs.cp-login-page .cp-login__panel { background: #fff; }
.cp-theme-ifs .cp-login__welcome h2 { color: var(--cp-primary); font-size: 1.75rem; }
.cp-theme-ifs .cp-login__brand-text { color: var(--cp-primary); font-weight: 600; letter-spacing: -.01em; }
.cp-theme-ifs .cp-login__pattern {
    background:
        radial-gradient(50% 60% at 85% 15%, rgba(132, 39, 226, .7), transparent 70%),
        radial-gradient(40% 50% at 10% 90%, rgba(51, 255, 148, .25), transparent 70%),
        var(--ifs-night);
}
.cp-theme-ifs .cp-login__visual--contain::before { background: #f5f2f7; }
.cp-theme-ifs .cp-modal__dialog { border-radius: 24px; }
.cp-theme-ifs .cp-modal__body h3 { color: var(--ifs-violet); }

/* Panier */
.cp-theme-ifs .cp-cart-btn__count { background: var(--ifs-green); color: var(--ifs-night); }
.cp-theme-ifs .cp-header .cp-cart-btn.is-active { background: rgba(255, 255, 255, .16); color: #fff !important; }
.cp-theme-ifs .cp-cart-line__unit, .cp-theme-ifs dd.cp-summary__total, .cp-theme-ifs .cp-table tfoot td strong { color: var(--cp-primary); }
.cp-theme-ifs .cp-cart__summary { border: 2px solid var(--cp-primary-soft); }
.cp-theme-ifs .cp-select { border-radius: 1000px; }
.cp-theme-ifs .cp-toast { background: var(--ifs-night); border-radius: 16px; }
.cp-theme-ifs .cp-toast--ok { border-left-color: var(--ifs-green); }
.cp-theme-ifs .cp-toast__link { color: var(--ifs-green) !important; }

/* Page Le CSE */
.cp-theme-ifs .cp-hero--cse { background: radial-gradient(60% 120% at 100% 0%, rgba(132, 39, 226, .55), transparent 60%), radial-gradient(40% 80% at 0% 100%, rgba(51, 255, 148, .18), transparent 70%), var(--ifs-night); }
.cp-theme-ifs .cp-mission__icon { background: var(--cp-primary-softer); }
.cp-theme-ifs .cp-person__role, .cp-theme-ifs .cp-services .cp-icon, .cp-theme-ifs .cp-faq summary::after { color: var(--ifs-violet); }
.cp-theme-ifs .cp-checklist li::before { background: var(--ifs-night); color: var(--ifs-green); }
.cp-theme-ifs .cp-attrib li { background: var(--cp-primary-softer); color: var(--ifs-violet); }
.cp-theme-ifs .cp-materiel input[type=date].cp-select, .cp-theme-ifs .cp-materiel textarea.cp-select { border-radius: var(--cp-radius-sm); }
