/* =====================================================================
   ONPMD — Charte « Prestige »
   ---------------------------------------------------------------------
   Variante institutionnelle : bleu marine profond, papier chaud, accent
   doré discret, Playfair Display (titres) + Source Sans 3 (texte).
   Chargée APRÈS app.css / admin.css : ne redéfinit que ce qui change.
   Retour arrière : config.php → 'theme' => 'classique'.
   ===================================================================== */

:root {
  --c-primary: #0f2a4f;
  --c-primary-700: #0a1f3c;
  --c-primary-900: #071629;
  --c-primary-100: #e6ecf4;
  --c-primary-50: #f1f4f9;
  --c-sky: #2f5f9e;
  --c-sky-100: #e3ebf6;
  --c-green: #0e7c4a;
  --c-green-700: #0a6139;
  --c-green-100: #e1f1e8;
  --c-red: #b3202c;
  --c-red-100: #f8e4e6;
  --c-gold: #c9a227;
  --c-gold-100: #f6eed5;

  --c-ink: #121a27;
  --c-ink-2: #2f3a4b;
  --c-muted: #6a7482;
  --c-line: #e1dcd2;
  --c-bg: #f7f4ee;
  --c-surface: #ffffff;

  --f-display: "Playfair Display", Georgia, "Times New Roman", serif;
  --f-body: "Source Sans 3", "Segoe UI", system-ui, sans-serif;

  --radius-s: 4px;
  --radius: 8px;
  --radius-l: 12px;
  --shadow-s: 0 1px 2px rgba(18, 26, 39, .05);
  --shadow: 0 12px 28px -16px rgba(18, 26, 39, .25);
  --shadow-l: 0 30px 60px -30px rgba(7, 22, 41, .45);
}

body { font-size: 17px; }
h1, h2, h3, h4 { font-weight: 600; letter-spacing: 0; }
h1 { font-size: clamp(2.1rem, 4.2vw, 3.2rem); }
h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); }
.lead { font-size: 1.2rem; }
a { color: var(--c-sky); }
a:hover { color: var(--c-primary); }

/* Ligne dorée signature sous les intitulés de section */
.eyebrow { color: var(--c-gold); letter-spacing: .22em; font-size: .72rem; }
.eyebrow::before { background: var(--c-gold); width: 36px; height: 1px; }
.section-head h2::after, .page-hero h1::after {
  content: ""; display: block; width: 56px; height: 2px; background: var(--c-gold); margin-top: .7rem;
}
.section-head--center h2::after { margin-inline: auto; }

/* ---------- Boutons : sobres, angles légers ---------- */
.btn { border-radius: var(--radius-s); font-weight: 600; letter-spacing: .02em; padding: .8rem 1.4rem; }
.btn:hover { transform: none; }
.btn--primary { background: var(--c-primary); box-shadow: none; }
.btn--primary:hover { background: var(--c-primary-700); }
.btn--green { background: var(--c-green); box-shadow: none; }
.btn--white { color: var(--c-primary); }
.btn--white:hover { background: var(--c-gold-100); }
.btn--ghost { border-color: rgba(255, 255, 255, .5); background: transparent; }
.btn--outline { border-color: var(--c-primary); }
.badge { border-radius: var(--radius-s); letter-spacing: .08em; font-weight: 700; }
.badge--gold { background: var(--c-gold-100); color: #7a5a0c; }

/* ---------- Barre supérieure et en-tête ---------- */
.topbar { background: var(--c-primary-900); border-bottom: 1px solid rgba(201, 162, 39, .35); color: #b9c4d6; }
.topbar .social a:hover { background: var(--c-gold); color: var(--c-primary-900); }
.header { background: #fff; border-bottom: 1px solid var(--c-line); box-shadow: 0 1px 0 var(--c-gold-100); }
.header .container { min-height: 92px; }
.brand__name { font-weight: 700; font-size: 1.45rem; letter-spacing: .04em; }
.brand__name b { color: var(--c-sky); }
.brand__name i { color: var(--c-red); }
.brand__name u { color: var(--c-green); }
.brand__tagline { color: var(--c-gold); letter-spacing: .18em; }
.nav ul a { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; border-radius: 0; padding: .7rem .5rem; border-bottom: 2px solid transparent; }
@media (max-width: 1600px) { .brand__tagline { display: none; } }
.nav ul a:hover { background: transparent; color: var(--c-primary); border-bottom-color: var(--c-gold); }
.nav ul a.is-active { background: transparent; color: var(--c-primary); border-bottom-color: var(--c-gold); }
@media (max-width: 1024px) {
  .nav ul a { border-bottom: 0; border-left: 3px solid transparent; }
  .nav ul a.is-active, .nav ul a:hover { border-left-color: var(--c-gold); background: var(--c-primary-50); }
}

/* ---------- Hero ---------- */
.hero { background: var(--c-primary-900); min-height: 600px; }
.hero__bg img { opacity: .5; filter: saturate(.85); }
.hero__bg::after { background: linear-gradient(100deg, rgba(7, 22, 41, .97) 0%, rgba(7, 22, 41, .82) 45%, rgba(7, 22, 41, .35) 100%); }
.hero .eyebrow { color: var(--c-gold); }
.hero h1 { font-weight: 600; font-size: clamp(2.3rem, 4.4vw, 3.5rem); }
.hero h1 em { color: #e8d48b; font-style: italic; font-weight: 500; }
.hero p { color: #c8d2e0; font-size: 1.15rem; }
.search-card { border-radius: var(--radius-l); border: 1px solid rgba(201, 162, 39, .45); box-shadow: var(--shadow-l); padding: 1.8rem; }
.search-card h2 { font-size: 1.5rem; }
.search-card h2::after { content: ""; display: block; width: 40px; height: 2px; background: var(--c-gold); margin: .5rem 0 .2rem; }
.search-card__hint { border-top: 1px solid var(--c-line); padding-top: .8rem; }

/* ---------- Chiffres clés ---------- */
.stats { background: #fff; border-bottom: 1px solid var(--c-line); }
.stat__icon { border-radius: 50%; background: var(--c-primary-50); color: var(--c-primary); }
.stat__icon--green { background: var(--c-green-100); color: var(--c-green); }
.stat__icon--sky { background: var(--c-sky-100); color: var(--c-sky); }
.stat__icon--red { background: var(--c-gold-100); color: #8a6418; }
.stat__value { font-size: 2.1rem; font-weight: 600; }
.stat__label { text-transform: uppercase; letter-spacing: .08em; font-size: .72rem; font-weight: 600; }

/* ---------- Sections, cartes ---------- */
.section--alt { background: #fff; }
.card { border-radius: var(--radius); border: 1px solid var(--c-line); box-shadow: none; position: relative; }
.card--link::before { content: ""; position: absolute; left: 0; top: 14px; bottom: 14px; width: 3px; background: transparent; border-radius: 0 3px 3px 0; transition: background .2s; }
.card--link:hover { transform: none; box-shadow: var(--shadow); border-color: var(--c-line); }
.card--link:hover::before { background: var(--c-gold); }
.card__icon { border-radius: 50%; background: var(--c-primary-50); color: var(--c-primary); }
.card__icon--green { background: var(--c-green-100); color: var(--c-green); }
.card__icon--red { background: var(--c-red-100); color: var(--c-red); }
.card__icon--sky { background: var(--c-sky-100); color: var(--c-sky); }
.card__icon--gold { background: var(--c-gold-100); color: #8a6418; }
.card .more { color: var(--c-primary); text-transform: uppercase; font-size: .78rem; letter-spacing: .08em; }
.split__media img { border-radius: var(--radius); }
.split__media .float-card { border-radius: var(--radius); border-left: 3px solid var(--c-gold); }
.checklist li::before { background-color: var(--c-gold-100); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238a6418' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }

/* Valeurs : trois panneaux marine à liseré doré */
.value { border-radius: var(--radius); background: var(--c-primary-700); border-top: 3px solid var(--c-gold); }
.value--sky, .value--red, .value--green { background: var(--c-primary-700); }
.value--sky { border-top-color: #6f9ad8; }
.value--red { border-top-color: #d65a63; }
.value--green { border-top-color: #3bb273; }
.value::after { background: rgba(201, 162, 39, .08); }
.value h3 { font-weight: 500; font-style: italic; }

/* Actualités, documents, annuaire, étapes */
.news-card { border-radius: var(--radius); }
.news-card:hover { transform: none; }
.news-card__date { color: var(--c-gold); }
.doc-item { border-radius: var(--radius); }
.doc-item__icon { border-radius: 50%; background: var(--c-primary-50); color: var(--c-primary); }
.pro-card { border-radius: var(--radius); }
.pro-card__avatar { border-radius: 50%; border: 2px solid var(--c-gold-100); }
.step { border-radius: var(--radius); border-left: 3px solid var(--c-gold); }
.step::before { color: var(--c-gold); font-style: italic; }
.accordion details { border-radius: var(--radius); }
.accordion summary::after { color: var(--c-gold); }
.quote-card { border-radius: var(--radius); border-top: 3px solid var(--c-gold); }
.quote-card img { border-color: var(--c-gold-100); }
.quote-card blockquote { font-style: italic; font-weight: 500; }
.prose blockquote { border-left-color: var(--c-gold); background: #fff; font-style: italic; }

/* Bannière intérieure */
.page-hero { background: var(--c-primary-900); padding: 4rem 0 3.4rem; }
.page-hero::before { background: radial-gradient(700px 320px at 95% 0%, rgba(201, 162, 39, .18), transparent 70%), radial-gradient(500px 300px at 0% 100%, rgba(47, 95, 158, .35), transparent 70%); }
.breadcrumb { text-transform: uppercase; letter-spacing: .1em; font-size: .72rem; }

/* Formulaires, tableaux, alertes */
.input, .select, .textarea { border-radius: var(--radius-s); border-color: #cfc8ba; background: #fff; }
.input:focus, .select:focus, .textarea:focus { border-color: var(--c-gold); box-shadow: 0 0 0 3px rgba(201, 162, 39, .2); }
.form-section h3 { border-bottom-color: var(--c-gold-100); }
.field label { font-size: .9rem; }
.table th { background: var(--c-primary-50); color: var(--c-primary); letter-spacing: .08em; }
.table-wrap { border-radius: var(--radius); }
.alert { border-radius: var(--radius); }
.pagination .is-current { background: var(--c-primary); border-color: var(--c-primary); }

/* Appel à l'action et pied de page */
.cta { border-radius: var(--radius); background: var(--c-primary-700); border: 1px solid rgba(201, 162, 39, .4); }
.cta::after { background: rgba(201, 162, 39, .1); }
.cta p { color: #c8d2e0; }
.footer { background: var(--c-primary-900); border-top: 3px solid var(--c-gold); }
.footer h4 { color: var(--c-gold); letter-spacing: .18em; }
.footer__brand .motto { font-style: italic; }
.footer__brand .motto b { color: #8fb0e0; } .footer__brand .motto i { color: #e08a90; } .footer__brand .motto u { color: #5fcf93; }
.footer .social a:hover { background: var(--c-gold); color: var(--c-primary-900); }
.footer__contact svg { color: var(--c-gold); }
.map { border-radius: var(--radius); }

/* =====================================================================
   Espace membre
   ===================================================================== */
.admin__side { background: var(--c-primary-900); border-right: 1px solid rgba(201, 162, 39, .25); }
.admin__side .brand__tagline { color: var(--c-gold); }
.admin__user { background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .08); border-radius: var(--radius); }
.admin__user .av { background: var(--c-gold); color: var(--c-primary-900); }
.admin__nav .sep { color: var(--c-gold); opacity: .8; }
.admin__nav a { border-radius: var(--radius-s); color: #b9c4d6; border-left: 3px solid transparent; }
.admin__nav a:hover { background: rgba(255, 255, 255, .06); color: #fff; }
.admin__nav a.is-active { background: rgba(201, 162, 39, .12); color: #fff; border-left-color: var(--c-gold); }
.admin__nav .count { background: rgba(255, 255, 255, .12); }
.admin__nav a.is-active .count { background: var(--c-gold); color: var(--c-primary-900); }
.admin__main { background: var(--c-bg); }
.admin__top { border-bottom: 1px solid var(--c-line); }
.admin__top h1 { font-size: 1.5rem; }
.admin__top h1::after { content: none; }
.tile { border-radius: var(--radius); border-top: 3px solid var(--c-gold); }
.tile:hover { transform: none; box-shadow: var(--shadow); }
.tile .stat__value { font-size: 1.9rem; }
.panel { border-radius: var(--radius); }
.panel__head { background: #fff; border-bottom: 1px solid var(--c-line); }
.panel__head h2 { font-size: 1.15rem; }
.panel__head h2::after { content: ""; display: block; width: 32px; height: 2px; background: var(--c-gold); margin-top: .35rem; }
.tabs a { border-radius: var(--radius-s); text-transform: uppercase; letter-spacing: .06em; font-size: .76rem; }
.tabs a.is-active { background: var(--c-primary); border-color: var(--c-primary); }
.bar { background: var(--c-primary-50); }
.bar > span { background: var(--c-primary); }
.column__bar { background: linear-gradient(180deg, var(--c-sky), var(--c-primary)); border-radius: 4px 4px 2px 2px; }
.column:last-child .column__bar { background: linear-gradient(180deg, #e2c35a, var(--c-gold)); }
.legend__dot { border-radius: 2px; }
.num-builder { color: var(--c-primary); border-color: var(--c-gold); background: var(--c-gold-100); }
.pager__btn { border-radius: var(--radius-s); }
.pager__btn.is-current { background: var(--c-primary); border-color: var(--c-primary); }
.login-wrap { background: radial-gradient(900px 500px at 15% 0%, rgba(47, 95, 158, .35), transparent 60%), radial-gradient(600px 400px at 100% 100%, rgba(201, 162, 39, .18), transparent 60%), var(--c-primary-900); }
.login-card { border-radius: var(--radius-l); border-top: 4px solid var(--c-gold); }
.login-card h1 { font-weight: 600; }
.dl dt { text-transform: uppercase; letter-spacing: .06em; font-size: .78rem; }
.avatar-lg { border-radius: var(--radius); }
