/* Shared editorial system for every interior page. Homepage lives in home.css. */
body:not(.home-page) {
  --ed-ink: #17211b;
  --ed-muted: #5f6b63;
  --ed-paper: #f4f1e9;
  --ed-cream: #fbfaf6;
  --ed-green: #174f3a;
  --ed-green-dark: #103829;
  --ed-lime: #d9ef86;
  --ed-line: rgba(23, 33, 27, .18);
  --ed-soft-line: rgba(23, 33, 27, .1);
  background: var(--ed-cream);
  color: var(--ed-ink);
  font-family: "Inter", system-ui, sans-serif;
}

body:not(.home-page) h1,
body:not(.home-page) h2 { color: var(--ed-ink); font-family: "Inter", system-ui, sans-serif; font-weight: 500; letter-spacing: -.035em; line-height: 1; }
body:not(.home-page) h3, body:not(.home-page) h4, body:not(.home-page) strong { color: var(--ed-ink); }
body:not(.home-page) p { color: var(--ed-muted); }
body:not(.home-page) .container { max-width: 1180px; padding-inline: 28px; }
body:not(.home-page) .section { padding-block: 92px; }
body:not(.home-page) .page-section { padding-block: 82px; }

html.js body:not(.home-page) .reveal,
html.js body:not(.home-page) .reveal.revealed { opacity: 1 !important; transform: none !important; transition: none !important; }

/* Navigation */
body:not(.home-page) .navbar,
body:not(.home-page) .navbar.scrolled { background: rgba(251,250,246,.96); border-bottom: 1px solid var(--ed-line); box-shadow: none; backdrop-filter: blur(12px); }
body:not(.home-page) .nav-container { max-width: 1320px; height: 78px; padding-inline: 28px; }
body:not(.home-page) .nav-logo { display: inline-flex; align-items: baseline; gap: 8px; }
body:not(.home-page) .nav-logo::before { content: "CF"; display: grid; width: 36px; height: 36px; place-items: center; color: #fff; background: var(--ed-green); font: 700 11px "Inter", sans-serif; letter-spacing: .08em; }
body:not(.home-page) .logo-text { color: var(--ed-ink); font: 600 20px "Inter", system-ui, sans-serif; letter-spacing: -.02em; }
body:not(.home-page) .logo-accent { color: var(--ed-ink); }
body:not(.home-page) .logo-subbrand { margin: 0; padding: 0; color: var(--ed-green); background: none; border: 0; border-radius: 0; font-size: 12px; letter-spacing: .16em; }
body:not(.home-page) .nav-links { gap: 17px; }
body:not(.home-page) .nav-link { color: #4e5952; font-size: 12px; font-weight: 600; }
body:not(.home-page) .nav-link:hover, body:not(.home-page) .nav-link.active { color: var(--ed-green); }
body:not(.home-page) .nav-link.active { text-decoration: underline; text-underline-offset: 6px; }
body:not(.home-page) .hamburger span { background: var(--ed-ink); }

/* Actions */
body:not(.home-page) .btn { border-radius: 2px; box-shadow: none; font-family: "Inter", sans-serif; font-size: 13px; }
body:not(.home-page) .btn-primary { background: var(--ed-green); color: #fff; }
body:not(.home-page) .btn-primary:hover { background: var(--ed-green-dark); color: #fff; box-shadow: none; transform: translateY(-1px); }
body:not(.home-page) .btn-secondary { color: var(--ed-ink); background: transparent; border: 1px solid var(--ed-ink); backdrop-filter: none; }
body:not(.home-page) .btn-secondary:hover { color: #fff; background: var(--ed-ink); border-color: var(--ed-ink); box-shadow: none; }
body:not(.home-page) .nav-cta { padding: 11px 16px; }

/* Mastheads */
body:not(.home-page) .page-hero { min-height: 0; padding: 152px 0 72px; background: var(--ed-paper); border-bottom: 1px solid var(--ed-line); }
body:not(.home-page) .page-hero::before, body:not(.home-page) .page-hero::after { display: none; }
body:not(.home-page) .page-hero-inner { max-width: 900px; }
body:not(.home-page) .page-breadcrumb { margin-bottom: 28px; color: var(--ed-green); font-size: 12px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
body:not(.home-page) .page-breadcrumb a { color: var(--ed-green); }
body:not(.home-page) .page-breadcrumb .sep { margin-inline: 9px; color: #89928c; }
body:not(.home-page) .page-hero h1 { max-width: 930px; margin: 0 0 24px; font-size: clamp(50px,6vw,82px); }
body:not(.home-page) .page-hero-sub { max-width: 760px; color: var(--ed-muted); font-size: 17px; line-height: 1.65; }
body:not(.home-page) .hero-badge,
body:not(.home-page) .section-tag { display: inline-block; margin: 0 0 18px; padding: 0; color: var(--ed-green); background: none; border: 0; border-radius: 0; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
body:not(.home-page) .badge-dot { display: none; }
body:not(.home-page) .gradient-text { color: var(--ed-green); background: none; -webkit-text-fill-color: currentColor; }
body:not(.home-page) .section-header { max-width: 760px; margin-bottom: 52px; }
body:not(.home-page) .section-title, body:not(.home-page) .section-title-page { font-size: clamp(42px,5vw,62px); }
body:not(.home-page) .section-subtitle { max-width: 680px; margin-inline: auto; color: var(--ed-muted); font-size: 15px; }

/* Catalogue */
body:not(.home-page) .programs-section { background: #fff; }
body:not(.home-page) .catalog-toolbar { gap: 16px; margin-bottom: 18px; }
body:not(.home-page) .search-input { min-height: 54px; padding: 0 18px; color: var(--ed-ink); background: var(--ed-cream); border: 1px solid var(--ed-line); border-radius: 2px; font-size: 14px; }
body:not(.home-page) .search-input:focus { border-color: var(--ed-green); box-shadow: 0 0 0 2px rgba(23,79,58,.12); }
body:not(.home-page) .count-badge { padding: 0; color: var(--ed-muted); background: none; border: 0; font-size: 12px; }
body:not(.home-page) .filter-bar { justify-content: flex-start; gap: 7px; margin-bottom: 34px; }
body:not(.home-page) .filter-btn { padding: 8px 11px; color: var(--ed-muted); background: transparent; border: 1px solid var(--ed-line); border-radius: 2px; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; }
body:not(.home-page) .filter-btn:hover { color: var(--ed-green); border-color: var(--ed-green); }
body:not(.home-page) .filter-btn.active { color: #fff; background: var(--ed-green); border-color: var(--ed-green); }
body:not(.home-page) .catalog-refine { justify-content: flex-start; margin-bottom: 34px; background: var(--ed-paper); border: 0; border-radius: 0; }
body:not(.home-page) .refine-select { border-radius: 2px; }
body:not(.home-page) .programs-grid { gap: 0; border-top: 1px solid var(--ed-ink); }
body:not(.home-page) .program-card { min-height: 245px; padding: 25px; color: var(--ed-ink); background: #fff; border: 0; border-right: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); border-radius: 0; box-shadow: none; }
body:not(.home-page) .program-card:nth-child(3n) { border-right: 0; }
body:not(.home-page) .program-card:hover { background: var(--ed-paper); border-color: var(--ed-line); box-shadow: none; transform: none; }
body:not(.home-page) .program-tag { margin-bottom: 28px; padding: 0; color: var(--ed-green) !important; background: none !important; border-radius: 0; font-size: 12px; letter-spacing: .14em; }
body:not(.home-page) .program-name { color: var(--ed-ink); font-family: "Inter", system-ui, sans-serif; font-size: 23px; font-weight: 600; }
body:not(.home-page) .program-full-name { color: var(--ed-muted); font-size: 12px; }
body:not(.home-page) .program-amount { color: var(--ed-ink); font-size: 12px; }
body:not(.home-page) .program-for { color: var(--ed-muted); border-color: var(--ed-soft-line); font-size: 12px; }

/* Program records */
body:not(.home-page) .program-detail-grid { grid-template-columns: minmax(0,1.65fr) minmax(280px,.65fr); gap: 64px; }
body:not(.home-page) .program-detail-main > h2, body:not(.home-page) .sources-head h2, body:not(.home-page) .page-section > .container > h2 { font-size: clamp(34px,4vw,48px); }
body:not(.home-page) .program-intro { color: var(--ed-ink); font-size: 18px; }
body:not(.home-page) .program-intro-long { color: var(--ed-muted); }
body:not(.home-page) .detail-block { margin-top: 0; padding: 27px 0 28px 58px; background: transparent; border: 0; border-top: 1px solid var(--ed-line); border-radius: 0; box-shadow: none; }
body:not(.home-page) .detail-block:first-of-type { margin-top: 30px; }
body:not(.home-page) .detail-block::before { left: 0; top: 25px; background-color: var(--ed-green); }
body:not(.home-page) .detail-block h3 { margin-bottom: 10px; font-size: 16px; }
body:not(.home-page) .detail-list li, body:not(.home-page) .detail-block-text { color: var(--ed-muted); font-size: 14px; }
body:not(.home-page) .detail-list li::before { background: var(--ed-green); }
body:not(.home-page) .program-detail-side { gap: 0; top: 98px; border-top: 2px solid var(--ed-ink); }
body:not(.home-page) .side-card { padding: 22px 0; background: transparent; border: 0; border-bottom: 1px solid var(--ed-line); border-radius: 0; box-shadow: none; }
body:not(.home-page) .side-card-primary { border-left: 0; }
body:not(.home-page) .side-card h4 { color: var(--ed-green); }
body:not(.home-page) .side-card .side-amount { color: var(--ed-ink); font-family: "Inter", system-ui, sans-serif; font-size: 25px; }
body:not(.home-page) .sources-section { background: var(--ed-paper); }
body:not(.home-page) .sources-grid { gap: 0; border-top: 1px solid var(--ed-ink); }
body:not(.home-page) .source-card { padding: 22px; background: transparent; border: 0; border-right: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); border-radius: 0; box-shadow: none; }
body:not(.home-page) .source-dot { background: var(--ed-green); }

/* Process, content and audience pages */
body:not(.home-page) .process-steps { gap: 0; border-top: 1px solid var(--ed-ink); }
body:not(.home-page) .process-step { padding: 27px; border-right: 1px solid var(--ed-line); text-align: left; }
body:not(.home-page) .process-step:last-child { border-right: 0; }
body:not(.home-page) .step-number { color: var(--ed-green); font: 500 24px "Inter", system-ui, sans-serif; }
body:not(.home-page) .step-card { padding: 0; background: transparent; border: 0; border-radius: 0; }
body:not(.home-page) .step-card:hover { transform: none; }
body:not(.home-page) .step-icon { justify-content: flex-start; color: var(--ed-green); }
body:not(.home-page) .step-time { color: var(--ed-green); background: none; padding: 0; border-radius: 0; }
body:not(.home-page) .trust-section, body:not(.home-page) .coop-section, body:not(.home-page) .diagnostic-section { background: var(--ed-paper); }
body:not(.home-page) .pain-grid, body:not(.home-page) .coop-grid { gap: 0; border-top: 1px solid var(--ed-ink); }
body:not(.home-page) .pain-card, body:not(.home-page) .coop-card { padding: 25px; background: transparent; border: 0; border-right: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); border-radius: 0; box-shadow: none; }
body:not(.home-page) .pain-card:hover, body:not(.home-page) .coop-card:hover { border-color: var(--ed-line); box-shadow: none; transform: none; }
body:not(.home-page) .pain-icon, body:not(.home-page) .coop-icon { color: var(--ed-green); background: none; border: 0; border-radius: 0; }
body:not(.home-page) .coop-cta, body:not(.home-page) .partnership-banner { padding: 30px; background: var(--ed-lime); border: 0; border-radius: 0; }
body:not(.home-page) .coop-highlight { padding: 30px; background: rgba(23,79,58,.07); border: 1px solid var(--ed-line); border-radius: 0; }

/* Diagnostic, pricing and forms */
body:not(.home-page) .diagnostic-section { padding-top: 150px; }
body:not(.home-page) .wizard-container { max-width: 820px; padding: 40px; background: #fff; border: 1px solid var(--ed-line); border-radius: 0; box-shadow: 10px 10px 0 rgba(23,79,58,.08); }
body:not(.home-page) .progress-bar { background: var(--ed-paper); }
body:not(.home-page) .progress-fill { background: var(--ed-green); }
body:not(.home-page) .progress-fill::after { display: none; }
body:not(.home-page) .progress-step { color: var(--ed-muted); background: #fff; border-color: var(--ed-line); }
body:not(.home-page) .progress-step.active, body:not(.home-page) .progress-step.completed { color: #fff; background: var(--ed-green); border-color: var(--ed-green); }
body:not(.home-page) .wizard-question { font: 500 30px "Inter", system-ui, sans-serif; }
body:not(.home-page) .wizard-step.active { animation: none; }
body:not(.home-page) .option-content { min-height: 58px; color: var(--ed-ink); background: var(--ed-cream); border-color: var(--ed-line); border-radius: 2px; }
body:not(.home-page) .option-card:hover .option-content { background: var(--ed-paper); border-color: var(--ed-green); }
body:not(.home-page) .option-card input:checked + .option-content { background: rgba(23,79,58,.08); border-color: var(--ed-green); box-shadow: none; }
body:not(.home-page) .option-text { color: var(--ed-ink); }
body:not(.home-page) .option-icon { color: var(--ed-green); background: transparent; }
body:not(.home-page) .form-group input, body:not(.home-page) .form-group textarea, body:not(.home-page) .form-group select,
body:not(.home-page) .portal-row input, body:not(.home-page) .portal-row textarea, body:not(.home-page) .portal-row select { color: var(--ed-ink); background: #fff; border: 1px solid var(--ed-line); border-radius: 2px; }
body:not(.home-page) .form-group input::placeholder, body:not(.home-page) .form-group textarea::placeholder { color: #929a95; }
body:not(.home-page) .wizard-nav { border-color: var(--ed-line); }
body:not(.home-page) .pricing-grid { gap: 0; align-items: stretch; border-top: 1px solid var(--ed-ink); }
body:not(.home-page) .pricing-card, body:not(.home-page) .pricing-card-featured { padding: 30px; background: #fff; border: 0; border-right: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); border-radius: 0; box-shadow: none; transform: none; }
body:not(.home-page) .pricing-card:last-child { border-right: 0; }
body:not(.home-page) .pricing-card:hover, body:not(.home-page) .pricing-card-featured:hover { box-shadow: none; transform: none; }
body:not(.home-page) .pricing-badge { top: 0; border-radius: 0; background: var(--ed-green); }
body:not(.home-page) .price-amount { color: var(--ed-ink); font-family: "Inter", system-ui, sans-serif; }

/* Client portal */
body:not(.home-page) .portal-grid { gap: 45px; }
body:not(.home-page) .portal-card { padding: 28px; background: #fff; border: 1px solid var(--ed-line); border-radius: 0; box-shadow: none; }
body:not(.home-page) .portal-card h2 { font-size: 27px; }
body:not(.home-page) .token-box { background: var(--ed-paper); border-color: var(--ed-line); border-radius: 2px; color: var(--ed-ink); }

/* Editorial guides */
body:not(.home-page) .guide { color: var(--ed-ink); }
body:not(.home-page) .guide-meta { padding: 0 0 0 18px; color: var(--ed-muted); background: transparent; border: 0; border-left: 3px solid var(--ed-green); border-radius: 0; }
body:not(.home-page) .guide-grid { gap: 0; border-top: 1px solid var(--ed-ink); }
body:not(.home-page) .guide-card { min-height: 240px; padding: 25px; color: var(--ed-ink); background: #fff; border: 0; border-right: 1px solid var(--ed-line); border-bottom: 1px solid var(--ed-line); border-radius: 0; box-shadow: none; }
body:not(.home-page) .guide-card:nth-child(3n) { border-right: 0; }
body:not(.home-page) .guide-card:hover { background: var(--ed-paper); box-shadow: none; transform: none; }
body:not(.home-page) .guide-card h2, body:not(.home-page) .guide-card h3 { font-family: "Inter", system-ui, sans-serif; font-size: 22px; font-weight: 600; }
body:not(.home-page) .guide-card-more { color: var(--ed-green); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }

/* Footer */
body:not(.home-page) .footer { padding: 58px 0 25px; background: var(--ed-ink); border: 0; }
body:not(.home-page) .footer .logo-text, body:not(.home-page) .footer strong, body:not(.home-page) .footer h4 { color: #fff; }
body:not(.home-page) .footer .logo-subbrand { color: var(--ed-lime); }
body:not(.home-page) .footer p, body:not(.home-page) .footer a { color: rgba(255,255,255,.58); }
body:not(.home-page) .footer a:hover { color: #fff; }
body:not(.home-page) .footer-bottom { border-color: rgba(255,255,255,.16); }

@media (max-width: 900px) {
  body:not(.home-page) .program-detail-grid { grid-template-columns: 1fr; }
  body:not(.home-page) .program-detail-side { position: static; }
  body:not(.home-page) .program-card:nth-child(3n) { border-right: 1px solid var(--ed-line); }
  body:not(.home-page) .program-card:nth-child(2n) { border-right: 0; }
}

@media (max-width: 1240px) {
  html.js body:not(.home-page) .nav-links {
    position: fixed;
    inset: 78px 0 0;
    z-index: 1000;
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 22px;
    background: rgba(251,250,246,.99);
    border-bottom: 1px solid var(--ed-line);
  }
  html.js body:not(.home-page).nav-open .nav-links { display: flex; }
  body:not(.home-page) .nav-link { font-size: 17px; }
  body:not(.home-page) .nav-cta { display: none; }
  html.js body:not(.home-page) .hamburger { display: block; }
}

@media (max-width: 768px) {
  body:not(.home-page) .container { padding-inline: 20px; }
  body:not(.home-page) .nav-container { height: 68px; padding-inline: 20px; }
  body:not(.home-page) .nav-links { top: 68px; background: var(--ed-cream); border-bottom: 1px solid var(--ed-line); }
  body:not(.home-page) .page-hero { padding: 120px 0 55px; }
  body:not(.home-page) .page-hero h1 { font-size: 48px; overflow-wrap: anywhere; }
  body:not(.home-page) .section, body:not(.home-page) .page-section { padding-block: 62px; }
  body:not(.home-page) .programs-grid, body:not(.home-page) .sources-grid, body:not(.home-page) .process-steps,
  body:not(.home-page) .pain-grid, body:not(.home-page) .coop-grid, body:not(.home-page) .pricing-grid { grid-template-columns: 1fr !important; }
  body:not(.home-page) .program-card, body:not(.home-page) .program-card:nth-child(n), body:not(.home-page) .process-step,
  body:not(.home-page) .pain-card, body:not(.home-page) .coop-card, body:not(.home-page) .pricing-card { border-right: 0; }
  body:not(.home-page) .wizard-container { padding: 25px 20px; box-shadow: 6px 6px 0 rgba(23,79,58,.08); }
  body:not(.home-page) .wizard-options { grid-template-columns: 1fr; }
  body:not(.home-page) .catalog-toolbar { align-items: stretch; flex-direction: column; }
  body:not(.home-page) .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 520px) {
  body:not(.home-page) .footer-grid { grid-template-columns: 1fr; }
  body:not(.home-page) .page-hero h1 { font-size: 42px; }
}

/* ── Program-card badges (palier · sourcé · échéance) ─────────── */
.program-flags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.pc-badge {
  display: inline-flex; align-items: center;
  padding: 3px 10px; border-radius: 999px;
  font: 700 12px "Inter", sans-serif; letter-spacing: .04em; text-transform: uppercase;
}
.pc-badge-sourced { background: rgba(30,122,84,.12); color: #1E7A54; }
.pc-badge-continuous { background: rgba(178,106,0,.12); color: #B26A00; }

/* ── Push Vooban (site entier) : illustration de hero + règles + mono ── */
body:not(.home-page) .page-hero {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 360 300' fill='none' stroke='%23174f3a' stroke-opacity='0.5' stroke-width='1.4'%3E%3Ccircle cx='56' cy='66' r='30'/%3E%3Ccircle cx='304' cy='66' r='30'/%3E%3Ccircle cx='56' cy='236' r='30'/%3E%3Ccircle cx='304' cy='236' r='30'/%3E%3Crect x='142' y='120' width='116' height='72' rx='4'/%3E%3Cpath d='M86 66h56M274 96v44h-72M86 236h56M274 206v-42M142 156h-56'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 5% center; background-size: min(360px, 32%);
}
body:not(.home-page) .section-tag { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace !important; }
body:not(.home-page) .page-section + .page-section { border-top: 2px solid var(--ed-ink); }
@media (max-width: 900px) { body:not(.home-page) .page-hero { background-image: none; } }

/* ── Bande wordmark + bloc couleur CTA (pages internes) ──────── */
.page-wordmark { overflow: hidden; background: var(--ed-green); color: var(--ed-cream); }
.page-wordmark span { display: block; padding: 14px 0 4px; font-size: clamp(38px, 9.5vw, 158px); font-weight: 800; letter-spacing: -.06em; line-height: .8; white-space: nowrap; text-align: center; }
.cta-band { background: var(--ed-green); color: #fff; padding: 64px 0; }
.cta-band h2 { color: #fff !important; margin: 0 0 14px; }
.cta-band p { color: rgba(255,255,255,.82) !important; max-width: 620px; margin: 0 0 26px; }
.cta-band .btn-primary { background: #fff; color: var(--ed-green); }
@media (max-width: 700px) { .page-wordmark span { font-size: 20vw; } }
