/* ============================================================
   MESRS — Pont visuel : charte du site institutionnel
   Surcharge non intrusive appliquée aux portails de téléprocédures.
   Bleu nuit #0F2C5C · Vert #1FA13C · Fraunces / Libre Franklin.
   ============================================================ */

:root {
    --mesrs-navy: #0F2C5C;
    --mesrs-navy-deep: #0A1F42;
    --mesrs-blue: #1C5BA6;
    --mesrs-green: #1FA13C;
    --mesrs-green-deep: #167E2F;
    --mesrs-ink: #11203A;
    --mesrs-bg-soft: #F4F7FB;
    --mesrs-line: #E2E8F0;
    /* Variables Bootstrap 5.3 */
    --bs-primary: #0F2C5C;
    --bs-primary-rgb: 15, 44, 92;
    --bs-success: #1FA13C;
    --bs-success-rgb: 31, 161, 60;
    --bs-link-color: #1C5BA6;
    --bs-link-color-rgb: 28, 91, 166;
    --bs-link-hover-color: #0F2C5C;
    --bs-link-hover-color-rgb: 15, 44, 92;
}

/* ── Typographie ───────────────────────────────────────────── */
body {
    font-family: "Libre Franklin", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    color: var(--mesrs-ink);
}
h1, h2, h3 { font-family: "Fraunces", Georgia, serif; color: var(--mesrs-navy); }
h4, h5, h6 { font-family: "Libre Franklin", sans-serif; font-weight: 700; color: var(--mesrs-navy); }

/* ── Chrome du portail (thème ftco) ────────────────────────── */
.header_area { background: var(--mesrs-navy) !important; }
nav.navbar.bg-dark,
#ftco-navbar,
.ftco_navbar,
.ftco-navbar-light {
    background: var(--mesrs-navy-deep) !important;
}
.navbar-dark .navbar-nav .nav-link { color: rgba(255, 255, 255, .88); }
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus { color: #fff; }
.navbar-dark .navbar-nav .active > .nav-link,
.navbar-dark .navbar-nav .nav-link.active {
    color: #fff; box-shadow: inset 0 -3px 0 var(--mesrs-green);
}

/* Utilitaires recolorés (le thème ftco les fixait à #2f89fc) */
.bg-primary { background-color: var(--mesrs-navy) !important; }
.text-primary { color: var(--mesrs-blue) !important; }
.bg-success { background-color: var(--mesrs-green) !important; }
.border-primary { border-color: var(--mesrs-navy) !important; }

/* ── Boutons ───────────────────────────────────────────────── */
.btn { border-radius: 6px; font-weight: 600; }
.btn-primary {
    --bs-btn-bg: var(--mesrs-navy);
    --bs-btn-border-color: var(--mesrs-navy);
    --bs-btn-hover-bg: var(--mesrs-navy-deep);
    --bs-btn-hover-border-color: var(--mesrs-navy-deep);
    --bs-btn-active-bg: var(--mesrs-navy-deep);
    --bs-btn-active-border-color: var(--mesrs-navy-deep);
    --bs-btn-disabled-bg: var(--mesrs-navy);
    --bs-btn-disabled-border-color: var(--mesrs-navy);
    background-color: var(--mesrs-navy);
    border-color: var(--mesrs-navy);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
    background-color: var(--mesrs-navy-deep);
    border-color: var(--mesrs-navy-deep);
}
.btn-success {
    --bs-btn-bg: var(--mesrs-green);
    --bs-btn-border-color: var(--mesrs-green);
    --bs-btn-hover-bg: var(--mesrs-green-deep);
    --bs-btn-hover-border-color: var(--mesrs-green-deep);
    --bs-btn-active-bg: var(--mesrs-green-deep);
    --bs-btn-active-border-color: var(--mesrs-green-deep);
    background-color: var(--mesrs-green);
    border-color: var(--mesrs-green);
}
.btn-success:hover, .btn-success:focus, .btn-success:active {
    background-color: var(--mesrs-green-deep);
    border-color: var(--mesrs-green-deep);
}
.btn-info {
    --bs-btn-bg: var(--mesrs-blue);
    --bs-btn-border-color: var(--mesrs-blue);
    --bs-btn-color: #fff;
    --bs-btn-hover-bg: var(--mesrs-navy);
    --bs-btn-hover-border-color: var(--mesrs-navy);
    --bs-btn-hover-color: #fff;
    background-color: var(--mesrs-blue);
    border-color: var(--mesrs-blue);
    color: #fff;
}
.btn-info:hover { background-color: var(--mesrs-navy); border-color: var(--mesrs-navy); color: #fff; }
.btn-outline-primary {
    --bs-btn-color: var(--mesrs-navy);
    --bs-btn-border-color: var(--mesrs-navy);
    --bs-btn-hover-bg: var(--mesrs-navy);
    --bs-btn-hover-border-color: var(--mesrs-navy);
    color: var(--mesrs-navy);
    border-color: var(--mesrs-navy);
}
.btn-outline-primary:hover { background-color: var(--mesrs-navy); color: #fff; }

/* ── Formulaires ───────────────────────────────────────────── */
.form-control, .form-select {
    border-radius: 6px;
    border-color: var(--mesrs-line);
}
.form-control:focus, .form-select:focus {
    border-color: var(--mesrs-green);
    box-shadow: 0 0 0 .2rem rgba(31, 161, 60, .15);
}
label { color: var(--mesrs-navy); }

/* ── Tableaux ──────────────────────────────────────────────── */
.table thead th, .table thead td {
    background-color: var(--mesrs-bg-soft);
    color: var(--mesrs-navy);
    border-bottom: 2px solid var(--mesrs-navy);
    font-weight: 700;
}
.table-hover tbody tr:hover { background-color: rgba(15, 44, 92, .04); }

/* ── Composants divers ─────────────────────────────────────── */
.card { border-radius: 8px; border-color: var(--mesrs-line); }
.card-header { background-color: var(--mesrs-bg-soft); color: var(--mesrs-navy); font-weight: 700; }
.modal-content { border-radius: 8px; border-top: 4px solid var(--mesrs-green); }
.progress-bar { background-color: var(--mesrs-green); }
.page-link { color: var(--mesrs-navy); }
.page-item.active .page-link {
    background-color: var(--mesrs-navy);
    border-color: var(--mesrs-navy);
}
.breadcrumb a { color: var(--mesrs-blue); }
.badge.bg-success, .badge.badge-success { background-color: var(--mesrs-green) !important; }
.badge.bg-primary, .badge.badge-primary { background-color: var(--mesrs-navy) !important; }

/* Pied de page sombre du thème ftco */
.ftco-footer, footer.ftco-footer { background: var(--mesrs-navy-deep) !important; }

/* ════════════════════════════════════════════════════════════
   PHASE 2 — Chrome unifié
   Le header + footer du site institutionnel sont injectés sur tout
   le frontend par mesrs_website (layout_inject). On masque donc :
   1. le header/footer natifs Odoo (sinon doublon sous le bandeau MESRS) ;
   2. les fragments du thème ftco encore embarqués dans le corps des
      pages à layout (espaces DOB, inscription harmonisée).
   Portée limitée à #wrapwrap : les pages autonomes de demande_theme
   (hors layout, hors assets) ne sont pas concernées — phase 3.
   ════════════════════════════════════════════════════════════ */
#wrapwrap > header#top { display: none !important; }
#wrapwrap > footer#bottom { display: none !important; }
#wrapwrap .header_area,
#wrapwrap nav#ftco-navbar,
#wrapwrap .ftco_navbar,
#wrapwrap footer.ftco-footer { display: none !important; }

/* ════════════════════════════════════════════════════════════
   PHASE 3 (volet 1) — pages-carrefours du portail à la charte
   ════════════════════════════════════════════════════════════ */
form.mesrs-svcform { margin: 0; }
button.mesrs-svc {
    width: 100%; text-align: left; cursor: pointer;
    font-family: inherit; font-size: inherit;
    appearance: none; -webkit-appearance: none;
}
.mesrs-svc.is-disabled { opacity: .55; cursor: not-allowed; }
.mesrs-svc.is-disabled:hover { transform: none; box-shadow: none; border-left-color: var(--mesrs-navy); }

.mesrs-pstats { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.mesrs-pstat { text-align: center; background: #fff; border: 1px solid var(--mesrs-line);
    border-radius: 8px; padding: 1.5rem 1rem; }
.mesrs-pstat__num { display: block; font-family: "Fraunces", Georgia, serif; font-weight: 700;
    font-size: 2.2rem; color: var(--mesrs-green-deep); line-height: 1.1; }
.mesrs-pstat__lbl { color: var(--mesrs-ink); font-size: .9rem; font-weight: 600; }

.mesrs-steps { list-style: none; padding: 0; margin: 0 0 2rem; max-width: 760px;
    display: flex; flex-direction: column; gap: 1rem; }
.mesrs-step { display: flex; gap: 1.1rem; align-items: flex-start;
    background: #fff; border: 1px solid var(--mesrs-line); border-radius: 8px; padding: 1.1rem 1.25rem; }
.mesrs-step__num { flex: 0 0 auto; width: 38px; height: 38px; display: grid; place-items: center;
    background: var(--mesrs-navy); color: #fff; border-radius: 50%;
    font-family: "Fraunces", Georgia, serif; font-weight: 700; }
.mesrs-step__body { display: flex; flex-direction: column; gap: .2rem; }
.mesrs-step__body strong { color: var(--mesrs-navy); }

/* ════════════════════════════════════════════════════════════
   PHASE 3 (volet pages de choix) — stepper et cartes d'action
   ════════════════════════════════════════════════════════════ */
.mesrs-wsteps {
    list-style: none; display: flex; justify-content: space-between;
    gap: .25rem; padding: 0; margin: 0 auto 2.5rem; max-width: 760px;
}
.mesrs-wstep {
    flex: 1; display: flex; flex-direction: column; align-items: center;
    gap: .4rem; position: relative; text-align: center;
}
.mesrs-wstep:not(:last-child)::after {
    content: ""; position: absolute; top: 17px; left: calc(50% + 22px);
    width: calc(100% - 44px); height: 3px; background: var(--mesrs-line);
}
.mesrs-wstep.is-done:not(:last-child)::after { background: var(--mesrs-green); }
.mesrs-wstep__num {
    width: 36px; height: 36px; display: grid; place-items: center;
    border-radius: 50%; background: #fff; border: 2px solid var(--mesrs-line);
    color: var(--mesrs-ink); font-weight: 700; position: relative; z-index: 1;
}
.mesrs-wstep.is-active .mesrs-wstep__num {
    background: var(--mesrs-green); border-color: var(--mesrs-green); color: #fff;
}
.mesrs-wstep.is-done .mesrs-wstep__num {
    background: var(--mesrs-navy); border-color: var(--mesrs-navy); color: #fff;
}
.mesrs-wstep__lbl { font-size: .82rem; font-weight: 600; color: var(--mesrs-ink); }
.mesrs-wstep.is-active .mesrs-wstep__lbl { color: var(--mesrs-green-deep); }
@media (max-width: 640px) {
    .mesrs-wstep__lbl { font-size: .68rem; }
    .mesrs-wstep__num { width: 28px; height: 28px; }
    .mesrs-wstep:not(:last-child)::after { top: 13px; left: calc(50% + 18px); width: calc(100% - 36px); }
}
.mesrs-choixcard { display: flex; flex-direction: column; }
.mesrs-choixcard p { flex: 1; }
.mesrs-choixcard form { margin: 0; }
.mesrs-choixcard .mesrs-btn { width: 100%; text-align: center; cursor: pointer; }
