/* =========================================================
   IFPP-CI — Thème « Institutionnel » (clair, sobre, rassurant)
   Se charge APRÈS site.css et ne s'applique qu'avec body.theme-inst
   Couleurs du logo : vert #0B6B3A · orange #B85407 · bleu #24489A
   ========================================================= */
body.theme-inst {
    --bg: #FFFFFF;
    --bg-2: #F3F6F3;
    --bg-3: #FFFFFF;
    --surface: #F3F6F3;
    --surface-2: #E9EFEA;
    --line: #E1E7E2;
    --line-2: #C9D3CB;
    --text: #13241A;
    --muted: #56655B;
    --gold: #B85407;          /* accent : orange du logo */
    --gold-2: #0B6B3A;
    --gold-3: #0B6B3A;
    --green: #1E8A4C;
    --green-deep: #0B6B3A;
    --green-dark: #08472A;
    --blue: #24489A;
    --orange: #B85407;
    --orange-soft: #FFF3E8;
    --green-soft: #E8F3EC;
    --radius: 12px;
    --radius-sm: 8px;
    --shadow: 0 18px 40px -22px rgba(19, 36, 26, .28);
    --serif: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --gold-grad: #B85407;
    background: var(--bg);
    color: var(--text);
    font-size: 16px;
}
.theme-inst ::selection { background: #0B6B3A; color: #fff; }
.theme-inst :focus-visible { outline-color: #0B6B3A; }

/* Éléments décoratifs du thème premium retirés */
.theme-inst .grain, .theme-inst .aurora, .theme-inst .orbit,
.theme-inst .hero::after, .theme-inst .scroll-hint, .theme-inst .footer-word { display: none !important; }

/* ---------- Typographie ---------- */
.theme-inst h1, .theme-inst h2 { font-family: var(--serif); font-weight: 700; letter-spacing: -.025em; color: var(--text); }
.theme-inst h3 { font-family: var(--serif); font-weight: 600; letter-spacing: -.01em; }
.theme-inst h2 { font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.15; }
.theme-inst h1 em, .theme-inst h2 em, .theme-inst .hero-title em {
    font-style: normal; background: none; -webkit-background-clip: initial; background-clip: initial;
    color: var(--green-deep); -webkit-text-fill-color: currentColor; padding: 0;
}
.theme-inst .eyebrow { color: var(--orange); font-family: var(--serif); letter-spacing: .14em; font-size: .76rem; }
.theme-inst .eyebrow::before { width: 22px; height: 3px; border-radius: 3px; }
.theme-inst .lead { color: var(--muted); }
.theme-inst .link-arrow { color: var(--green-deep); }
.theme-inst .link-arrow:hover { color: var(--orange); }
.theme-inst .serif { font-family: var(--serif); font-weight: 600; }

/* ---------- Boutons ---------- */
.theme-inst .btn { border-radius: 8px; font-family: var(--serif); font-weight: 600; letter-spacing: 0; }
.theme-inst .btn-gold { background: var(--orange); color: #fff; box-shadow: 0 8px 20px -10px rgba(184, 84, 7, .6); }
.theme-inst .btn-gold:hover { background: #9C4706; box-shadow: 0 10px 24px -10px rgba(184, 84, 7, .7); }
.theme-inst .btn-ghost { background: #fff; border-color: var(--line-2); color: var(--green-deep); backdrop-filter: none; }
.theme-inst .btn-ghost:hover { border-color: var(--green-deep); background: var(--green-soft); }
.theme-inst .btn-dark { background: #fff; color: var(--green-deep); }
.theme-inst .btn-dark:hover { background: var(--orange-soft); }
.theme-inst .btn-outline-dark { border-color: rgba(255,255,255,.6); color: #fff; }
.theme-inst .btn-outline-dark:hover { background: rgba(255,255,255,.1); }
.theme-inst .round-btn { background: #fff; color: var(--green-deep); border-color: var(--line-2); }
.theme-inst .round-btn:hover { background: var(--green-deep); color: #fff; border-color: var(--green-deep); }
.theme-inst .pill { background: var(--green-soft); border-color: transparent; color: var(--green-deep); font-weight: 600; backdrop-filter: none; }
.theme-inst .glass { background: #fff; border: 1px solid var(--line); backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: var(--shadow); }

/* ---------- Barre d'information + annonce ---------- */
.inst-topbar { display: none; }
.theme-inst .inst-topbar { display: block; background: var(--green-dark); color: rgba(255,255,255,.88); font-size: .82rem; }
.theme-inst .inst-topbar .container { display: flex; align-items: center; gap: 22px; min-height: 38px; flex-wrap: wrap; }
.theme-inst .inst-topbar a:hover { color: #fff; text-decoration: underline; }
.theme-inst .inst-topbar .sep { flex: 1; }
.theme-inst .inst-topbar span::before { margin-right: 6px; opacity: .8; }
.theme-inst .announce { background: var(--orange-soft); color: #5A2A04; border-bottom: 1px solid #F4D9C2; font-weight: 500; }
.theme-inst .announce a { color: var(--orange); }
.theme-inst .announce-dot { background: var(--orange); }

/* ---------- En-tête ---------- */
.theme-inst .site-header { border-bottom: 1px solid var(--line); }
.theme-inst .site-header::before { background: #fff; }
.theme-inst .site-header.scrolled::before { background: rgba(255,255,255,.97); box-shadow: 0 6px 20px -12px rgba(19,36,26,.25); }
.theme-inst .header-inner { height: 84px; }
.theme-inst .brand img { width: 52px; height: 52px; }
.theme-inst .brand-text strong { font-family: var(--serif); font-weight: 700; color: var(--green-deep); font-size: 1.25rem; }
.theme-inst .brand-text small { color: var(--muted); }
.theme-inst .main-nav a { color: var(--text); font-weight: 500; border-radius: 6px; }
.theme-inst .main-nav a:hover { background: var(--green-soft); color: var(--green-deep); }
.theme-inst .main-nav a.active { color: var(--green-deep); font-weight: 600; }
.theme-inst .main-nav a.active::after { width: 22px; height: 3px; margin-left: -11px; bottom: 0; border-radius: 3px; background: var(--orange); }
.theme-inst .header-phone { color: var(--green-deep); }
.theme-inst .header-phone svg { fill: var(--orange); }
.theme-inst .burger { background: #fff; border-color: var(--line-2); }
.theme-inst .burger span { background: var(--text); }

/* ---------- Hero ---------- */
.theme-inst .hero {
    min-height: auto; padding: clamp(50px, 7vw, 90px) 0 clamp(60px, 8vw, 100px);
    background:
        radial-gradient(circle at 92% 8%, rgba(184,84,7,.08), transparent 32%),
        linear-gradient(180deg, #F3F6F3 0%, #FFFFFF 100%);
    border-bottom: 1px solid var(--line);
}
.theme-inst .hero-title { font-size: clamp(2.4rem, 5vw, 4.1rem); line-height: 1.06; letter-spacing: -.03em; font-weight: 700; }
.theme-inst .hero-sub { color: var(--muted); }
.theme-inst .hero-visual { height: min(560px, 64vh); }
.theme-inst .hv { border-radius: 14px; border: 6px solid #fff; box-shadow: 0 24px 50px -24px rgba(19,36,26,.4); }
.theme-inst .hv-2 { border-radius: 14px; }
.theme-inst .hv img { transform: none; }
.theme-inst .float-card { background: #fff !important; border: 1px solid var(--line); color: var(--text); animation: none; box-shadow: 0 16px 34px -16px rgba(19,36,26,.35); }
.theme-inst .float-card small { color: var(--muted); }
.theme-inst .fc-ico { background: var(--green-deep); color: #fff; border-radius: 8px; }
.theme-inst .fc-num { background: none; -webkit-background-clip: initial; background-clip: initial; color: var(--orange); font-family: var(--serif); font-weight: 700; -webkit-text-fill-color: currentColor; }
.theme-inst .avatars img { border-color: #fff; }

/* Bandeau des filières */
.theme-inst .marquee { background: var(--green-deep); border: 0; padding: 16px 0; }
.theme-inst .marquee span { font: 600 1.05rem/1 var(--serif); color: #fff; letter-spacing: .02em; }
.theme-inst .marquee b { color: #FFB37A; font-size: .8rem; }
.theme-inst .marquee-track { animation-duration: 55s; }

/* ---------- Sections ---------- */
.theme-inst .stats { background: transparent; border: 0; gap: 16px; border-radius: 0; overflow: visible; }
.theme-inst .stat { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--green-deep); border-radius: var(--radius); box-shadow: var(--shadow); }
.theme-inst .stat:nth-child(2) { border-top-color: var(--orange); }
.theme-inst .stat:nth-child(3) { border-top-color: var(--blue); }
.theme-inst .stat:nth-child(4) { border-top-color: var(--green); }
.theme-inst .stat-value { background: none; -webkit-background-clip: initial; background-clip: initial; color: var(--text); -webkit-text-fill-color: currentColor; font-family: var(--serif); font-weight: 700; font-size: clamp(2.2rem, 4vw, 3.2rem); }

.theme-inst .bento-card { border-radius: var(--radius); border: 0; box-shadow: var(--shadow); }
.theme-inst .bento-shade { background: linear-gradient(180deg, rgba(8,40,24,0) 25%, rgba(8,40,24,.72) 62%, rgba(8,40,24,.95) 100%); }
.theme-inst .bento-card h3 { font-family: var(--serif); font-weight: 700; color: #fff; }
.theme-inst .bento-card p { color: rgba(255,255,255,.88); }
.theme-inst .bento-count { color: #fff; background: var(--accent); padding: .35em .7em; border-radius: 4px; font-size: .68rem; }
.theme-inst .bento-list li { color: #fff; }
.theme-inst .bento-go { color: #fff; border-radius: 8px; }

.theme-inst .why { background: var(--bg-2); }
.theme-inst .why-visual img { border-radius: var(--radius); border: 0; box-shadow: var(--shadow); }
.theme-inst .why-badge { background: var(--green-deep) !important; border: 0; color: #fff; border-radius: 10px; }
.theme-inst .why-badge strong { color: #fff; font-family: var(--serif); font-weight: 700; font-size: 1.3rem; }
.theme-inst .why-badge span { color: rgba(255,255,255,.85); }
.theme-inst .feature { padding: 20px 22px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; margin-bottom: 10px; }
.theme-inst .feature:last-child { border-bottom: 1px solid var(--line); }
.theme-inst .feature-n { font: 700 .95rem/1.6 var(--serif); color: #fff; background: var(--green-deep); min-width: 36px; height: 36px; border-radius: 8px; display: grid; place-items: center; }

.theme-inst .f-card { background: #fff; border-color: var(--line); box-shadow: 0 2px 0 rgba(19,36,26,.03); }
.theme-inst .f-card:hover { border-color: var(--green-deep); box-shadow: var(--shadow); }
.theme-inst .f-card h3 { font-family: var(--serif); font-weight: 600; font-size: 1.18rem; }
.theme-inst .f-card-kicker { color: var(--orange); }
.theme-inst .price { color: var(--green-deep); }
.theme-inst .go { border-radius: 8px; color: var(--green-deep); }
.theme-inst .f-card:hover .go { background: var(--green-deep); color: #fff; border-color: var(--green-deep); transform: none; }
.theme-inst .card-more { font-family: var(--serif); font-weight: 600; background: var(--bg-2); border-style: solid; border-color: var(--line); }
.theme-inst .card-more b { background: var(--green-deep); color: #fff; border-radius: 8px; }

.theme-inst .steps-section { background: var(--bg-2); }
.theme-inst .steps::before { background: var(--line-2); opacity: 1; height: 2px; }
.theme-inst .step-n { background: var(--green-deep); color: #fff; border: 0; font: 700 1.4rem var(--serif); box-shadow: 0 0 0 8px var(--bg-2); }
.theme-inst .step:nth-child(even) .step-n { background: var(--orange); }

.theme-inst .event { background: #fff; }
.theme-inst .event:hover { border-color: var(--green-deep); }
.theme-inst .event-date { background: var(--green-deep); color: #fff; border-radius: 10px; }
.theme-inst .event-date .d { font-family: var(--serif); font-weight: 700; }
.theme-inst .event h3 { font-family: var(--serif); font-weight: 600; }
.theme-inst .event-meta { color: var(--orange); }

.theme-inst .testimonial blockquote { font: 400 1.08rem/1.65 var(--sans); color: var(--text); }
.theme-inst .testimonial .initial { background: var(--green-deep); color: #fff; }

.theme-inst .cta { background: var(--green-deep); color: #fff; border-radius: 16px; }
.theme-inst .cta-glow { background: radial-gradient(420px circle at 100% 0%, rgba(184,84,7,.45), transparent 60%), radial-gradient(380px circle at 0% 100%, rgba(36,72,154,.35), transparent 60%); }
.theme-inst .cta h2 { color: #fff; }
.theme-inst .cta h2 em { color: #FFB37A; }
.theme-inst .cta p { color: rgba(255,255,255,.88); opacity: 1; }

/* ---------- Pages intérieures ---------- */
.theme-inst .page-hero { background: linear-gradient(180deg, var(--bg-2), #fff); border-bottom: 1px solid var(--line); }
.theme-inst .page-hero h1 { font-size: clamp(2.1rem, 4.4vw, 3.4rem); font-weight: 700; }
.theme-inst .search-wrap input { background: #fff; border-color: var(--line-2); border-radius: 10px; box-shadow: var(--shadow); }
.theme-inst .search-wrap input:focus { border-color: var(--green-deep); background: #fff; }
.theme-inst .filter-bar { background: rgba(255,255,255,.96); top: 84px; }
.theme-inst .filter { border-radius: 8px; color: var(--text); background: #fff; }
.theme-inst .filter:hover { border-color: var(--green-deep); color: var(--green-deep); }
.theme-inst .filter.active { background: var(--green-deep); border-color: var(--green-deep); color: #fff; }
.theme-inst .fil-head h2 { font-size: clamp(1.5rem, 2.6vw, 2rem); }
.theme-inst .tabs { background: #fff; border-radius: 10px; }
.theme-inst .tabs a { border-radius: 8px; color: var(--text); }
.theme-inst .tabs a.active { background: var(--green-deep); color: #fff; }

.theme-inst .detail-hero { min-height: 58vh; }
.theme-inst .detail-shade { background: linear-gradient(90deg, rgba(8,40,24,.92) 0%, rgba(8,40,24,.75) 45%, rgba(8,40,24,.35) 100%); }
.theme-inst .detail-hero h1, .theme-inst .detail-hero .lead { color: #fff; }
.theme-inst .detail-hero .crumbs { color: rgba(255,255,255,.8); }
.theme-inst .detail-hero .crumbs a:hover { color: #FFB37A; }
.theme-inst .detail-bg img { animation: none; transform: none; }
.theme-inst .aside-label { color: var(--muted); }
.theme-inst .aside-price { font-family: var(--serif); font-weight: 700; color: var(--green-deep); font-size: 1.9rem; }
.theme-inst .aside-card h3 { font-family: var(--serif); font-weight: 600; }
.theme-inst .prose p, .theme-inst .prose li { color: #2B3B31; }
.theme-inst .prose h3 { font-family: var(--serif); font-weight: 600; }
.theme-inst .program li { background: var(--bg-2); border-color: var(--line); }
.theme-inst .program li::before { font: 700 .9rem var(--serif); color: var(--orange); }

.theme-inst .post-card { background: #fff; }
.theme-inst .post-card:hover { border-color: var(--green-deep); box-shadow: var(--shadow); }
.theme-inst .post-date { color: var(--orange); }
.theme-inst .post-body h2, .theme-inst .post-body h3 { font-family: var(--serif); font-weight: 600; }

/* Formulaires */
.theme-inst .form-card { border-radius: 14px; }
.theme-inst legend { font-family: var(--serif); font-weight: 600; }
.theme-inst legend span { background: var(--green-deep); color: #fff; }
.theme-inst .field label, .theme-inst .field .label { color: var(--text); }
.theme-inst .field input, .theme-inst .field select, .theme-inst .field textarea { background: #fff; border-color: var(--line-2); border-radius: 8px; color: var(--text); }
.theme-inst .field input:focus, .theme-inst .field select:focus, .theme-inst .field textarea:focus { background: #fff; border-color: var(--green-deep); box-shadow: 0 0 0 4px rgba(11,107,58,.12); }
.theme-inst .field select option, .theme-inst .field select optgroup { background: #fff; color: var(--text); }
.theme-inst .field .err { color: #B42318; }
.theme-inst .choice span { border-radius: 8px; background: #fff; }
.theme-inst .choice input:checked + span { background: var(--green-deep); color: #fff; border-color: var(--green-deep); }
.theme-inst .form-errors { background: #FEF3F2; border-color: #FDA29B; color: #7A271A; }
.theme-inst .flash-success { background: var(--green-soft); border-color: #9FD3B2; color: #0B4A2A; }
.theme-inst .flash-error { background: #FEF3F2; border-color: #FDA29B; color: #7A271A; }
.theme-inst .mini-steps strong { color: var(--text); }

.theme-inst .check-anim circle { stroke: var(--green-deep); }
.theme-inst .check-anim path { stroke: var(--green-deep); }
.theme-inst .ref-box strong { font-family: var(--serif); font-weight: 700; color: var(--green-deep); }
.theme-inst .big-404 { background: none; -webkit-background-clip: initial; background-clip: initial; color: var(--green-deep); -webkit-text-fill-color: currentColor; font-family: var(--serif); font-weight: 700; font-style: normal; }

.theme-inst .c-ico { background: var(--green-deep); color: #fff; border-radius: 10px; }
.theme-inst a.c-card:hover { border-color: var(--green-deep); }
.theme-inst .map iframe { filter: none; }

.theme-inst .about-logo img { animation: none; box-shadow: var(--shadow); }
.theme-inst .logo-halo { border-color: rgba(11,107,58,.25); animation: none; }
.theme-inst .value { border-top: 4px solid var(--green-deep); }
.theme-inst .value:nth-child(2) { border-top-color: var(--orange); }
.theme-inst .value:nth-child(3) { border-top-color: var(--blue); }
.theme-inst .value-n { font: 700 .9rem var(--serif); color: var(--orange); }
.theme-inst .value h3 { font-family: var(--serif); font-weight: 700; font-size: 1.5rem; }
.theme-inst .gallery figure { border: 0; border-radius: 10px; }

/* ---------- Pied de page (sombre, institutionnel) ---------- */
.theme-inst .site-footer { --text: #EEF4EF; --muted: #A7BBAE; --line: rgba(255,255,255,.12); background: #0A2F1D; color: var(--text); border-top: 4px solid var(--orange); }
.theme-inst .site-footer h4 { color: #FFB37A; font-family: var(--serif); }
.theme-inst .footer-brand img { background: #fff; }

.theme-inst .sticky-cta { background: #fff; border-color: var(--line-2); box-shadow: var(--shadow); }
.theme-inst .sticky-cta small { color: var(--green-deep); }

/* Animations plus discrètes */
.theme-inst .reveal { transform: translateY(14px); transition-duration: .6s; }
.theme-inst .reveal.in { transform: none; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .theme-inst .header-inner { height: 70px; }
    .theme-inst .filter-bar { top: 70px; }
    .theme-inst .site-header::before { background: #fff; backdrop-filter: none; }
    .theme-inst .main-nav { background: #fff; }
    .theme-inst .main-nav a { font: 600 1.6rem/1.3 var(--serif); color: var(--text); }
    .theme-inst .main-nav a.active { color: var(--green-deep); }
    .theme-inst .main-nav .nav-cta-mobile { color: #fff; }
    .theme-inst .inst-topbar .hide-m { display: none; }
}
@media (max-width: 640px) {
    .theme-inst .inst-topbar .container { gap: 14px; justify-content: center; }
    .theme-inst .inst-topbar .sep { display: none; }
    .theme-inst .hero-visual { height: 340px; }
    .theme-inst .stats { grid-template-columns: 1fr 1fr; gap: 10px; }
    .theme-inst .feature { padding: 16px; }
}
.theme-inst .prose h2 { font-size: clamp(1.45rem, 2.2vw, 1.85rem); }
@media (max-width: 900px) {
    .theme-inst .main-nav a.nav-cta-mobile { background: var(--orange) !important; color: #fff; box-shadow: none; }
}

/* Carrousel — version institutionnelle */
.theme-inst .slider { --slide-bg: #0A3A22; --slide-accent: #FFB37A; }
.theme-inst .slider::before { content: ""; position: absolute; inset: 0; z-index: 0; background: radial-gradient(600px circle at 0% 100%, rgba(184,84,7,.22), transparent 60%); pointer-events: none; }
.theme-inst .slide-title { color: #fff; font-weight: 700; }
.theme-inst .slide-title em { color: #FFB37A; }
.theme-inst .slide-kicker { font-family: var(--serif); }
.theme-inst .slider .btn-gold { background: var(--orange); color: #fff; }
.theme-inst .slider .btn-gold:hover { background: #D0650F; }
.theme-inst .slider-btn:hover, .theme-inst .slider-pause:hover { color: #0A3A22; }
.theme-inst .slider-btn, .theme-inst .slider-pause { border-radius: 8px; }
.theme-inst .slider-dot::before, .theme-inst .slider-dot i { border-radius: 2px; }
