/* =====================================================================
   ND LIENS — Système de design (redesign 2026)
   Palette officielle ndliens-maroc.com. Classes préfixées "nd-" pour
   ne pas entrer en conflit avec le thème existant (rollout page par page).
   ===================================================================== */

:root {
  color-scheme: light;       /* empêche le mode sombre auto des navigateurs mobiles */
  --nd-bleu: #388da8;        /* accent */
  --nd-bleu-fonce: #3e5055;  /* titres */
  --nd-bleu-clair: #77b6ca;  /* hover */
  --nd-bleu-pale: #eaf4f8;
  --nd-accent: #F5A623;      /* doré */
  --nd-maroc-rouge: #C1272D;
  --nd-maroc-vert: #006233;
  --nd-blanc: #FFFFFF;
  --nd-texte: #3d4348;
  --nd-gris: #5E6E7C;
  --nd-font-titre: 'Nunito', sans-serif;
  --nd-font-texte: 'Roboto', sans-serif;
  --nd-font-ui: 'Inter', sans-serif;
}

/* Bouton « remonter en haut » du thème retiré partout (il masquait le bouton contact) */
.scroll-top, #scroll-top { display: none !important; }

/* Notifications toast (contact / newsletter sur l'accueil) */
.nd-toast-zone { position: fixed; top: 84px; left: 50%; transform: translateX(-50%); z-index: 2000; display: flex; flex-direction: column; gap: 10px; width: min(92vw, 460px); }
.nd-toast { display: flex; align-items: center; gap: 11px; padding: 14px 16px; border-radius: 14px; box-shadow: 0 12px 34px rgba(27,74,122,0.22); font-size: 14.5px; font-family: var(--nd-font-ui); background: #fff; animation: ndToastIn .35s ease; }
.nd-toast i { font-size: 18px; flex: 0 0 auto; }
.nd-toast span { flex: 1; color: var(--nd-texte); }
.nd-toast-ok { border-left: 4px solid var(--nd-maroc-vert); }
.nd-toast-ok > i { color: var(--nd-maroc-vert); }
.nd-toast-err { border-left: 4px solid var(--nd-maroc-rouge); }
.nd-toast-err > i { color: var(--nd-maroc-rouge); }
.nd-toast-x { background: none; border: none; font-size: 21px; line-height: 1; color: var(--nd-gris); cursor: pointer; padding: 0 2px; flex: 0 0 auto; }
.nd-toast-x:hover { color: var(--nd-bleu-fonce); }
@keyframes ndToastIn { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: none; } }

/* Réglages généraux d'une page redesignée */
.nd-page, .nd-auth { font-family: var(--nd-font-texte); color: var(--nd-texte); background: var(--nd-blanc); }
/* box-sizing (les pages auth ne chargent pas le reset global) + fond blanc forcé */
.nd-page, .nd-page *, .nd-auth, .nd-auth * { box-sizing: border-box; }
.nd-auth-form-side, .nd-auth-card { background: var(--nd-blanc); }
.nd-page img { max-width: 100%; }
.nd-titre { font-family: var(--nd-font-titre); font-size: clamp(26px, 3.5vw, 38px); font-weight: 700; color: var(--nd-bleu-fonce); line-height: 1.25; }
.nd-liseret { height: 4px; background: linear-gradient(90deg, var(--nd-maroc-rouge) 0%, var(--nd-maroc-rouge) 45%, var(--nd-maroc-vert) 55%, var(--nd-maroc-vert) 100%); }

/* Boutons */
.nd-btn-bleu, .nd-btn-ghost, .nd-btn-accent {
  display: inline-block; text-decoration: none; font-weight: 700; font-size: 16px;
  padding: 15px 36px; border-radius: 40px; transition: transform .2s, background .2s; cursor: pointer; border: none;
}
.nd-btn-bleu { background: linear-gradient(90deg, var(--nd-bleu), var(--nd-bleu-clair)); color: var(--nd-blanc); box-shadow: 0 8px 26px rgba(27,74,122,0.30); }
.nd-btn-bleu:hover { transform: translateY(-3px); color: #fff; }
.nd-btn-ghost { border: 1.5px solid var(--nd-bleu); color: var(--nd-bleu); background: var(--nd-blanc); }
.nd-btn-ghost:hover { background: var(--nd-bleu-pale); color: var(--nd-bleu); }
.nd-btn-accent { background: var(--nd-accent); color: var(--nd-bleu-fonce); box-shadow: 0 8px 26px rgba(245,166,35,0.4); font-weight: 800; }
.nd-btn-accent:hover { transform: translateY(-3px); color: var(--nd-bleu-fonce); }

/* Bandeau événement (haut de page) */
.nd-event-banner { background: linear-gradient(90deg, var(--nd-bleu-fonce), var(--nd-bleu), var(--nd-bleu-fonce)); color: var(--nd-blanc); text-align: center; padding: 12px 20px; font-weight: 500; font-size: 15px; }
.nd-event-banner strong { font-weight: 800; color: #FFD98A; }
.nd-event-banner a { display: inline-block; margin-left: 14px; background: var(--nd-accent); color: var(--nd-bleu-fonce); padding: 6px 18px; border-radius: 30px; text-decoration: none; font-size: 13px; font-weight: 700; transition: transform .2s; }
.nd-event-banner a:hover { transform: scale(1.05); color: var(--nd-bleu-fonce); }

/* Icônes sociales */
.nd-ico-social { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; font-size: 17px; text-decoration: none; color: #fff !important; }
.nd-ico-insta { background: linear-gradient(45deg, #F58529, #DD2A7B, #8134AF); }
.nd-ico-wa { background: #25D366; }

/* ===== HERO ===== */
.nd-hero { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 70px 24px 80px; min-height: 78vh; overflow: hidden; background: var(--nd-bleu-fonce); }
.nd-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: 0; animation: ndHeroFade 21s infinite; z-index: 0; }
.nd-hero-bg:nth-child(1) { animation-delay: 0s; }
.nd-hero-bg:nth-child(2) { animation-delay: 7s; }
.nd-hero-bg:nth-child(3) { animation-delay: 14s; }
@keyframes ndHeroFade { 0% { opacity: 0; transform: scale(1); } 8% { opacity: 1; } 33% { opacity: 1; transform: scale(1.06); } 41% { opacity: 0; } 100% { opacity: 0; } }
.nd-hero-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(62,80,85,0.75) 0%, rgba(56,141,168,0.55) 60%, rgba(62,80,85,0.85) 100%); }
.nd-hero > *:not(.nd-hero-bg):not(.nd-hero-overlay) { position: relative; z-index: 2; }
.nd-badge-cible { display: inline-flex; align-items: center; gap: 10px; background: var(--nd-blanc); border: 1px solid rgba(27,74,122,0.25); color: var(--nd-bleu); padding: 9px 24px; border-radius: 30px; font-size: 13px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; margin-bottom: 26px; box-shadow: 0 4px 14px rgba(27,74,122,0.10); }
.nd-hero h1 { font-family: var(--nd-font-titre); font-size: clamp(34px, 5vw, 56px); font-weight: 800; line-height: 1.15; max-width: 980px; color: var(--nd-blanc); text-shadow: 0 2px 20px rgba(0,0,0,0.35); }
.nd-hero h1 em { font-style: normal; color: #FFD98A; }
.nd-hero .nd-sous-titre { margin-top: 22px; font-size: clamp(16px, 2vw, 19px); color: rgba(255,255,255,0.92); max-width: 720px; line-height: 1.65; text-shadow: 0 1px 10px rgba(0,0,0,0.3); }
.nd-hero .nd-sous-titre strong { color: #FFD98A; }
.nd-recherche { margin-top: 36px; background: var(--nd-blanc); border-radius: 50px; box-shadow: 0 12px 40px rgba(27,74,122,0.18); padding: 10px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; max-width: 820px; width: 100%; }
.nd-recherche select, .nd-recherche input { flex: 1; min-width: 150px; border: none; outline: none; padding: 14px 18px; font-family: var(--nd-font-ui); font-size: 15px; color: var(--nd-texte); background: transparent; border-right: 1px solid #E3EAF0; height: 52px; }
.nd-recherche select { -webkit-appearance: none; -moz-appearance: none; appearance: none; cursor: pointer; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23388da8' d='M6 8 0 0h12z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
.nd-recherche select:invalid { color: #8a97a1; }
.nd-recherche .nd-btn-chercher { background: linear-gradient(90deg, var(--nd-bleu), var(--nd-bleu-clair)); color: var(--nd-blanc); border: none; padding: 15px 30px; border-radius: 40px; font-weight: 700; font-size: 15px; cursor: pointer; }
.nd-hero-ctas { margin-top: 28px; display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }
.nd-note-gratuit { margin-top: 15px; font-size: 14px; color: rgba(255,255,255,0.85); }
.nd-note-gratuit strong { color: #FFD98A; }
.nd-hero-preuves { margin-top: 46px; display: flex; gap: 46px; flex-wrap: wrap; justify-content: center; }
.nd-preuve { text-align: center; }
.nd-preuve .nd-chiffre { font-family: var(--nd-font-titre); font-size: 28px; font-weight: 700; color: var(--nd-blanc); text-shadow: 0 1px 10px rgba(0,0,0,0.3); }
.nd-preuve .nd-label { font-size: 12.5px; color: rgba(255,255,255,0.8); margin-top: 4px; }

/* ===== Sections génériques ===== */
.nd-section { padding: 80px 24px; }
.nd-section-sub { color: var(--nd-gris); margin-top: 14px; font-size: 16px; }
.nd-container { max-width: 1100px; margin: 0 auto; }

/* Catégories (chips) */
.nd-categories { text-align: center; background: var(--nd-blanc); }
.nd-cat-grid { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; max-width: 900px; margin: 40px auto 0; }
.nd-cat { display: inline-flex; align-items: center; gap: 10px; background: var(--nd-bleu-pale); color: var(--nd-bleu-fonce); padding: 13px 24px; border-radius: 40px; font-size: 15px; font-weight: 600; text-decoration: none; transition: all .2s; border: 1px solid transparent; }
.nd-cat:hover { background: var(--nd-bleu); color: var(--nd-blanc); transform: translateY(-2px); }
.nd-cat.nd-plus { background: var(--nd-blanc); border: 1.5px dashed var(--nd-bleu-clair); color: var(--nd-bleu-clair); }

/* 2 Piliers */
.nd-piliers { background: var(--nd-bleu-pale); text-align: center; }
.nd-piliers-grid { display: flex; gap: 30px; justify-content: center; flex-wrap: wrap; max-width: 1000px; margin: 50px auto 0; }
.nd-pilier { flex: 1; min-width: 300px; border-radius: 20px; padding: 45px 35px; text-align: left; }
.nd-pilier.nd-clair { background: var(--nd-blanc); box-shadow: 0 8px 30px rgba(27,74,122,0.08); }
.nd-pilier.nd-fonce { background: var(--nd-bleu); color: var(--nd-blanc); }
.nd-pilier .nd-emoji { font-size: 36px; margin-bottom: 16px; }
.nd-pilier h3 { font-family: var(--nd-font-titre); font-size: 22px; margin-bottom: 12px; }
.nd-pilier.nd-clair h3 { color: var(--nd-bleu-fonce); }
.nd-pilier p { line-height: 1.65; font-size: 15.5px; }
.nd-pilier.nd-clair p { color: var(--nd-gris); }
.nd-pilier.nd-fonce p { color: rgba(255,255,255,0.85); }

/* Galerie */
.nd-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; max-width: 1100px; margin: 45px auto 0; }
.nd-gallery img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 16px; box-shadow: 0 8px 24px rgba(27,74,122,0.15); }
.nd-gallery-note { margin-top: 35px; background: var(--nd-bleu-pale); display: inline-block; padding: 16px 34px; border-radius: 40px; font-weight: 700; color: var(--nd-bleu-fonce); font-size: 16px; }

/* Qui sommes-nous */
.nd-fondatrice { background: var(--nd-blanc); display: flex; justify-content: center; }
.nd-fondatrice-inner { max-width: 1000px; display: grid; grid-template-columns: 1fr 1.5fr; gap: 50px; align-items: center; }
.nd-photo-cadre { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 4/5; border: 3px solid var(--nd-bleu-pale); box-shadow: 0 20px 50px rgba(27,74,122,0.15); }
.nd-photo-cadre img { width: 100%; height: 100%; object-fit: cover; }
.nd-fondatrice .nd-tag { color: var(--nd-maroc-vert); font-size: 13px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 14px; }
.nd-fondatrice p.nd-recit { color: var(--nd-gris); line-height: 1.75; font-size: 16px; margin-top: 18px; }
.nd-fondatrice p.nd-recit strong { color: var(--nd-bleu-fonce); }
.nd-citation { margin-top: 24px; padding: 20px 26px; border-left: 4px solid var(--nd-maroc-rouge); background: var(--nd-bleu-pale); border-radius: 0 14px 14px 0; font-family: var(--nd-font-titre); font-size: 19px; font-weight: 600; color: var(--nd-bleu-fonce); font-style: italic; }

/* Événement */
.nd-event-section { background: var(--nd-bleu-fonce); padding: 90px 24px; display: flex; flex-direction: column; align-items: center; gap: 30px; }
.nd-event-card { max-width: 1000px; width: 100%; border-radius: 20px; padding: 50px 55px; background: radial-gradient(ellipse at top right, rgba(46,124,199,0.35) 0%, transparent 55%), var(--nd-bleu); color: var(--nd-blanc); display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: center; box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
.nd-event-tag { color: #FFD98A; font-size: 13px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 16px; }
.nd-event-card h2 { font-family: var(--nd-font-titre); font-size: clamp(26px, 3.5vw, 38px); font-weight: 700; line-height: 1.2; }
.nd-event-card h2 span { color: #FFD98A; }
.nd-event-card p.nd-desc { color: rgba(255,255,255,0.85); margin-top: 18px; line-height: 1.65; font-size: 16px; }
.nd-event-infos { margin-top: 24px; display: flex; flex-direction: column; gap: 10px; }
.nd-event-infos div { display: flex; align-items: center; gap: 12px; font-size: 15px; }
.nd-event-cta-box { text-align: center; }
.nd-compteur { display: flex; gap: 12px; justify-content: center; margin-bottom: 26px; }
.nd-compteur .nd-bloc { background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.25); border-radius: 12px; padding: 14px 16px; min-width: 66px; }
.nd-compteur .nd-num { font-family: var(--nd-font-titre); font-size: 26px; font-weight: 700; color: #FFD98A; }
.nd-compteur .nd-unite { font-size: 11px; color: rgba(255,255,255,0.7); text-transform: uppercase; letter-spacing: 1px; margin-top: 2px; }
.nd-places { margin-top: 16px; font-size: 13px; color: #FFD98A; font-weight: 600; }
.nd-sponsor-strip { max-width: 1000px; width: 100%; border: 1.5px dashed rgba(255,217,138,0.6); border-radius: 16px; padding: 22px 32px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; color: var(--nd-blanc); }
.nd-sponsor-strip .nd-txt { font-size: 15px; line-height: 1.5; }
.nd-sponsor-strip .nd-txt strong { color: #FFD98A; }
.nd-btn-sponsor { border: 1.5px solid #FFD98A; color: #FFD98A; padding: 12px 26px; border-radius: 40px; text-decoration: none; font-weight: 700; font-size: 14px; white-space: nowrap; transition: all .2s; }
.nd-btn-sponsor:hover { background: #FFD98A; color: var(--nd-bleu-fonce); }

/* Tarifs */
.nd-tarifs { background: var(--nd-bleu-pale); text-align: center; }
.nd-toggle-wrap { display: inline-flex; align-items: center; gap: 0; margin: 30px 0 45px; background: var(--nd-blanc); border-radius: 40px; padding: 6px; box-shadow: 0 4px 16px rgba(27,74,122,0.10); }
.nd-toggle-wrap button { border: none; background: transparent; padding: 12px 26px; border-radius: 34px; font-family: var(--nd-font-ui); font-size: 15px; font-weight: 600; color: var(--nd-gris); cursor: pointer; transition: all .2s; }
.nd-toggle-wrap button.nd-actif { background: var(--nd-bleu); color: var(--nd-blanc); }
.nd-toggle-wrap .nd-promo { font-size: 12px; color: var(--nd-maroc-vert); font-weight: 700; }
.nd-tarif-grid { display: flex; gap: 24px; justify-content: center; flex-wrap: wrap; max-width: 760px; margin: 0 auto; }
.nd-tarif-card { flex: 1; min-width: 235px; max-width: 320px; background: var(--nd-blanc); border-radius: 20px; padding: 38px 28px; text-align: left; box-shadow: 0 8px 30px rgba(27,74,122,0.08); position: relative; }
.nd-tarif-card.nd-star { border: 2px solid var(--nd-bleu-clair); transform: scale(1.03); }
.nd-tarif-card .nd-pop { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--nd-bleu-clair); color: var(--nd-blanc); font-size: 12px; font-weight: 700; padding: 5px 16px; border-radius: 20px; white-space: nowrap; }
.nd-tarif-card h3 { font-family: var(--nd-font-titre); font-size: 20px; color: var(--nd-bleu-fonce); }
.nd-tarif-card .nd-prix { font-family: var(--nd-font-titre); font-size: 34px; font-weight: 800; color: var(--nd-bleu); margin: 14px 0 2px; }
.nd-tarif-card .nd-periode { font-size: 13px; color: var(--nd-gris); margin-bottom: 18px; }
.nd-tarif-card ul { list-style: none; margin: 18px 0 24px; padding: 0; }
.nd-tarif-card li { font-size: 14px; color: var(--nd-gris); padding: 6px 0; }
.nd-tarif-card li::before { content: "✔ "; color: var(--nd-maroc-vert); font-weight: 700; }
.nd-tarif-card a { display: block; text-align: center; background: var(--nd-bleu); color: var(--nd-blanc); padding: 13px; border-radius: 30px; text-decoration: none; font-weight: 700; font-size: 15px; }
.nd-tarif-card.nd-free a { background: var(--nd-bleu-pale); color: var(--nd-bleu); }
.nd-paiements { margin-top: 40px; font-size: 14px; color: var(--nd-gris); }
.nd-paiements .nd-badges { display: flex; gap: 14px; justify-content: center; margin-top: 14px; flex-wrap: wrap; }
.nd-badge-pay { background: var(--nd-blanc); border: 1px solid #D5E2ED; border-radius: 10px; padding: 10px 22px; font-weight: 700; font-size: 15px; color: var(--nd-texte); }

/* CTA final */
.nd-cta-final { text-align: center; background: var(--nd-blanc); }
.nd-cta-final p { color: var(--nd-gris); margin: 18px auto 34px; font-size: 17px; max-width: 700px; }

/* Newsletter */
.nd-newsletter { background: var(--nd-bleu-fonce); color: var(--nd-blanc); text-align: center; padding: 55px 24px; }
.nd-newsletter h2 { font-family: var(--nd-font-titre); color: var(--nd-blanc); }
.nd-newsletter-form { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 20px; max-width: 520px; margin-left: auto; margin-right: auto; }
.nd-newsletter-form input { flex: 1; min-width: 220px; border: none; border-radius: 40px; padding: 14px 20px; font-family: var(--nd-font-ui); }

/* Bouton contact flottant */
.nd-contact-float { position: fixed; bottom: 26px; right: 26px; z-index: 200; background: var(--nd-bleu); color: #fff; width: 58px; height: 58px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 26px; text-decoration: none; box-shadow: 0 8px 24px rgba(56,141,168,0.45); transition: transform .2s; }
.nd-contact-float:hover { transform: scale(1.1); color: #fff; }
.nd-ico-contact { background: var(--nd-bleu); }

/* ===== NAV (page redesignée) ===== */
.nd-nav-header { position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; background: var(--nd-blanc); box-shadow: 0 1px 8px rgba(27,74,122,0.08); }
.nd-nav-header .nd-nav { box-shadow: none; margin: 0 auto; max-width: 1300px; }
.nd-nav { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 12px 40px; background: var(--nd-blanc); box-shadow: 0 1px 8px rgba(27,74,122,0.08); flex-wrap: wrap; }
.nd-nav .nd-nav-logo img { height: 48px; width: auto; }
.nd-nav-toggle { display: none; background: none; border: none; font-size: 28px; line-height: 1; color: var(--nd-bleu-fonce); cursor: pointer; padding: 2px 6px; }
.nd-nav-links { display: flex; gap: 22px; align-items: center; }
.nd-nav-links a { color: var(--nd-gris); text-decoration: none; font-size: 15px; font-weight: 500; font-family: var(--nd-font-ui); transition: color .2s; }
.nd-nav-links a:hover { color: var(--nd-bleu); }
.nd-btn-connexion { border: 1.5px solid var(--nd-bleu); color: var(--nd-bleu) !important; padding: 8px 22px; border-radius: 30px; font-weight: 600 !important; }
.nd-btn-connexion:hover { background: var(--nd-bleu-pale); }

/* Footer redesigné */
.nd-footer { background: var(--nd-bleu-fonce); color: rgba(255,255,255,0.75); padding: 50px 40px 26px; }
.nd-footer-grid { display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; max-width: 1100px; margin: 0 auto; }
.nd-footer h4 { color: var(--nd-blanc); font-family: var(--nd-font-titre); font-size: 16px; margin-bottom: 14px; }
.nd-footer a { color: rgba(255,255,255,0.75); text-decoration: none; display: block; padding: 4px 0; font-size: 14.5px; }
.nd-footer a:hover { color: #FFD98A; }
.nd-footer-social { display: flex; gap: 12px; margin-top: 10px; }
/* Les icônes sociales gardent leur forme ronde (sinon .nd-footer a { display:block } les écrase) */
.nd-footer .nd-footer-social a { display: inline-flex; padding: 0; }
.nd-copyright { text-align: center; margin-top: 36px; font-size: 13px; color: rgba(255,255,255,0.45); }
.nd-copyright a { color: rgba(255,255,255,0.55); }

/* ===== Tablette ===== */
@media (max-width: 992px) {
  .nd-hero { min-height: auto; padding: 60px 20px 70px; }
  .nd-hero-preuves { gap: 30px; }
  .nd-piliers-grid, .nd-tarif-grid { gap: 18px; }
  .nd-fondatrice-inner, .nd-event-card { grid-template-columns: 1fr; gap: 28px; }
}

/* ===== Menu : hamburger dès 992px pour éviter que le nav passe sur 2 lignes
   (sinon le nav fixe, plus haut, recouvre le début de la page) ===== */
@media (max-width: 992px) {
  .nd-nav { padding: 10px 18px; }
  .nd-nav-toggle { display: inline-flex; }
  .nd-nav-links { display: none; width: 100%; flex-direction: column; align-items: stretch; gap: 4px; padding: 8px 0 4px; }
  .nd-nav.nd-nav-open .nd-nav-links { display: flex; }
  .nd-nav-links a { padding: 11px 8px; border-radius: 8px; }
  .nd-nav-links a:hover { background: var(--nd-bleu-pale); }
  .nd-nav-links .nd-ico-social { width: 42px; }
  .nd-btn-connexion { text-align: center; margin-top: 6px; }
}

/* ===== Mobile : mise en page une colonne ===== */
@media (max-width: 860px) {
  .nd-event-card { padding: 32px 22px; }
  .nd-recherche { border-radius: 22px; padding: 8px; }
  .nd-recherche select, .nd-recherche input { border-right: none; border-bottom: 1px solid #E3EAF0; min-width: 100%; }
  .nd-recherche .nd-btn-chercher { width: 100%; }
  .nd-section { padding: 52px 18px; }
  .nd-piliers-grid, .nd-tarif-grid, .nd-cat-grid { gap: 14px; }
  .nd-tarif-card { max-width: 100%; transform: none; }
  .nd-tarif-card.nd-star { transform: none; }
  .nd-hero-preuves { gap: 22px 34px; margin-top: 34px; }
  .nd-sponsor-strip, .nd-gallery-note { text-align: center; justify-content: center; }
  .nd-footer { padding: 40px 22px 24px; }
  .nd-footer-grid { gap: 28px; }
}

/* ===== Petit téléphone ===== */
@media (max-width: 480px) {
  .nd-event-banner { font-size: 13px; padding: 10px 14px; }
  .nd-event-banner a { display: inline-block; margin: 8px 0 0; }
  .nd-hero { padding: 46px 16px 56px; }
  .nd-badge-cible { font-size: 11px; padding: 8px 16px; letter-spacing: 1px; }
  .nd-hero-preuves { gap: 18px 26px; }
  .nd-preuve .nd-chiffre { font-size: 24px; }
  .nd-section { padding: 44px 16px; }
  .nd-pilier { padding: 32px 24px; min-width: 0; }
  .nd-event-section { padding: 60px 16px; }
  .nd-event-card { padding: 26px 18px; }
  .nd-compteur .nd-bloc { min-width: 56px; padding: 12px; }
  .nd-tarif-card { padding: 30px 22px; }
  .nd-btn-bleu, .nd-btn-ghost, .nd-btn-accent { padding: 14px 26px; font-size: 15px; }
  .nd-hero-ctas .nd-btn-bleu, .nd-hero-ctas .nd-btn-ghost { width: 100%; text-align: center; }
  .nd-cat { font-size: 14px; padding: 11px 18px; }
}

/* ===== Pages Auth (connexion / inscription) ===== */
.nd-auth { min-height: 100vh; display: flex; font-family: var(--nd-font-texte); color: var(--nd-texte); background: var(--nd-blanc); }
.nd-auth-visual { flex: 1; position: relative; background: linear-gradient(160deg, var(--nd-bleu-fonce), var(--nd-bleu)); color: #fff; display: flex; flex-direction: column; justify-content: center; padding: 60px 55px; overflow: hidden; }
.nd-auth-visual::after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; height: 5px; background: linear-gradient(90deg, var(--nd-maroc-rouge) 0 45%, var(--nd-maroc-vert) 55% 100%); }
.nd-auth-visual .nd-auth-logo img { height: 54px; width: auto; background: #fff; border-radius: 10px; padding: 6px 12px; }
.nd-auth-visual h2 { font-family: var(--nd-font-titre); font-size: 32px; font-weight: 800; margin-top: 28px; line-height: 1.25; max-width: 430px; }
.nd-auth-visual h2 span { color: #FFD98A; }
.nd-auth-visual .nd-auth-desc { margin-top: 16px; font-size: 16px; color: rgba(255,255,255,0.9); line-height: 1.6; max-width: 430px; }
.nd-auth-points { margin-top: 30px; display: flex; flex-direction: column; gap: 12px; }
.nd-auth-points div { display: flex; align-items: center; gap: 12px; font-size: 15px; }
.nd-auth-points i { color: #FFD98A; font-size: 18px; }
.nd-auth-form-side { flex: 1; display: flex; align-items: center; justify-content: center; padding: 40px 24px; }
.nd-auth-card { width: 100%; max-width: 440px; }
.nd-auth-card .nd-auth-title { font-family: var(--nd-font-titre); font-size: 26px; font-weight: 800; color: var(--nd-bleu-fonce); }
.nd-auth-card .nd-auth-sub { color: var(--nd-gris); margin: 6px 0 24px; font-size: 15px; }
.nd-auth-card input[type=text], .nd-auth-card input[type=email], .nd-auth-card input[type=password], .nd-auth-card input[type=tel], .nd-auth-card select {
  width: 100%; padding: 13px 16px; margin-bottom: 14px; border: 1.5px solid #dbe6ec; border-radius: 12px; font-family: var(--nd-font-ui); font-size: 15px; color: var(--nd-texte); background: #fff; outline: none; transition: border-color .2s, box-shadow .2s;
}
.nd-auth-card input:focus, .nd-auth-card select:focus { border-color: var(--nd-bleu); box-shadow: 0 0 0 3px rgba(56,141,168,0.15); }
.nd-auth-card select { -webkit-appearance: none; appearance: none; cursor: pointer; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%23388da8' d='M6 8 0 0h12z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
.nd-auth-card button[type=submit] { width: 100%; margin-top: 6px; border: none; cursor: pointer; background: linear-gradient(90deg, var(--nd-bleu), var(--nd-bleu-clair)); color: #fff; font-weight: 700; font-size: 16px; padding: 14px; border-radius: 40px; box-shadow: 0 8px 22px rgba(56,141,168,0.28); transition: transform .2s; }
.nd-auth-card button[type=submit]:hover { transform: translateY(-2px); }
.nd-auth-card .nd-auth-link { text-align: center; margin-top: 20px; color: var(--nd-gris); font-size: 14.5px; }
.nd-auth-card .nd-auth-link a { color: var(--nd-bleu); font-weight: 600; text-decoration: none; }
.nd-auth-card .nd-checkbox { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; font-size: 14px; color: var(--nd-gris); }
.nd-auth-card .nd-checkbox input { width: auto; margin: 0; }
.nd-role-title { font-weight: 600; color: var(--nd-bleu-fonce); margin-bottom: 10px; }
.nd-role-selection { display: flex; gap: 12px; margin-bottom: 18px; }
.nd-role-option { flex: 1; text-align: center; padding: 16px; border: 1.5px solid #dbe6ec; border-radius: 14px; cursor: pointer; font-weight: 600; color: var(--nd-gris); transition: all .2s; user-select: none; }
.nd-role-option:hover { border-color: var(--nd-bleu-clair); }
.nd-role-option.selected { border-color: var(--nd-bleu); background: var(--nd-bleu-pale); color: var(--nd-bleu-fonce); box-shadow: 0 4px 14px rgba(56,141,168,0.12); }
.nd-auth-alert { padding: 12px 16px; border-radius: 10px; margin-bottom: 14px; font-size: 14px; }
.nd-auth-alert.err { background: #fdeaea; color: #a12626; }
.nd-auth-alert.ok { background: #e8f6ee; color: #1c7a43; }
@media (max-width: 860px) {
  .nd-auth { flex-direction: column; }
  .nd-auth-visual { padding: 36px 28px; }
  .nd-auth-visual h2 { font-size: 23px; margin-top: 16px; }
  .nd-auth-points { display: none; }
}

/* ===================================================================
   Liste des prestataires (/profil/list — annuaire)
   =================================================================== */
.nd-liste-page { padding-top: 80px; background: var(--nd-bleu-pale); min-height: 100vh; }

/* Bannière « Abonnement requis » (abonné connecté sans abo actif) */
.nd-sub-alert { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px; background: linear-gradient(90deg, var(--nd-maroc-rouge), #a51f24); color: #fff; padding: 12px 20px; font-size: 14.5px; font-weight: 500; }
.nd-sub-alert i { margin-right: 4px; }
.nd-sub-alert a { background: #fff; color: var(--nd-maroc-rouge); font-weight: 700; padding: 7px 18px; border-radius: 30px; text-decoration: none; font-size: 13.5px; white-space: nowrap; }
.nd-sub-alert a:hover { background: #ffe9ea; }

/* En-tête (bandeau teal) */
.nd-liste-head { position: relative; background: linear-gradient(160deg, var(--nd-bleu-fonce), var(--nd-bleu)); color: #fff; text-align: center; padding: 46px 24px 90px; overflow: hidden; }
.nd-liseret-top { position: absolute; top: 0; left: 0; right: 0; }
.nd-liste-head-inner { max-width: 760px; margin: 0 auto; position: relative; z-index: 1; }
.nd-liste-head .nd-badge-cible { margin-bottom: 18px; }
.nd-liste-head h1 { font-family: var(--nd-font-titre); font-size: clamp(28px, 4vw, 42px); font-weight: 800; line-height: 1.2; color: #fff; }
.nd-liste-head h1 em { font-style: normal; color: #FFD98A; }
.nd-liste-head p { margin-top: 14px; font-size: 16px; color: rgba(255,255,255,0.9); line-height: 1.6; }

/* Barre de filtres (chevauche le bandeau) */
.nd-liste-filtres-wrap { max-width: 1000px; margin: -58px auto 0; padding: 0 20px; position: relative; z-index: 2; }
.nd-liste-filtres { background: #fff; border-radius: 18px; box-shadow: 0 14px 40px rgba(27,74,122,0.16); padding: 14px; display: flex; gap: 10px; flex-wrap: wrap; align-items: stretch; }
.nd-filtre-champ { flex: 1; min-width: 170px; display: flex; align-items: center; gap: 8px; background: var(--nd-bleu-pale); border: 1.5px solid transparent; border-radius: 12px; padding: 0 14px; transition: border-color .2s, background .2s; }
.nd-filtre-champ:focus-within { border-color: var(--nd-bleu); background: #fff; }
.nd-filtre-champ > i { color: var(--nd-bleu); font-size: 16px; }
.nd-filtre-q { flex: 2; min-width: 220px; }
.nd-filtre-champ input, .nd-filtre-champ select { flex: 1; width: 100%; border: none; outline: none; background: transparent; padding: 14px 0; font-family: var(--nd-font-ui); font-size: 14.5px; color: var(--nd-texte); }
.nd-filtre-champ select { -webkit-appearance: none; appearance: none; cursor: pointer; padding-right: 18px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%23388da8' d='M6 8 0 0h12z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right center; }
.nd-liste-filtres .nd-btn-chercher { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: linear-gradient(90deg, var(--nd-bleu), var(--nd-bleu-clair)); color: #fff; border: none; padding: 0 28px; border-radius: 12px; font-weight: 700; font-size: 14.5px; cursor: pointer; font-family: var(--nd-font-ui); transition: transform .2s; }
.nd-liste-filtres .nd-btn-chercher:hover { transform: translateY(-2px); }

/* Résumé (compteur + réinitialisation) */
.nd-liste-resume { max-width: 1000px; margin: 18px auto 0; padding: 0 4px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.nd-resume-count { color: var(--nd-gris); font-size: 15px; }
.nd-resume-count strong { color: var(--nd-bleu-fonce); font-size: 17px; }
.nd-reset-filtres { color: var(--nd-bleu); font-weight: 600; font-size: 14px; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; }
.nd-reset-filtres:hover { color: var(--nd-maroc-rouge); }

/* Grille de résultats */
.nd-liste-resultats { max-width: 1180px; margin: 0 auto; padding: 30px 20px 70px; }
.nd-liste-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }

/* Carte prestataire */
.nd-presta-card { background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 6px 22px rgba(27,74,122,0.08); display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.nd-presta-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(27,74,122,0.16); }
.nd-presta-media { position: relative; aspect-ratio: 16 / 10; background: var(--nd-bleu-pale); overflow: hidden; }
.nd-presta-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nd-presta-initiales { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-family: var(--nd-font-titre); font-size: 44px; font-weight: 800; color: var(--nd-bleu); background: linear-gradient(135deg, var(--nd-bleu-pale), #dcecf3); }
.nd-presta-verif { position: absolute; top: 12px; right: 12px; width: 30px; height: 30px; border-radius: 50%; background: #fff; color: var(--nd-bleu); display: inline-flex; align-items: center; justify-content: center; font-size: 16px; box-shadow: 0 2px 8px rgba(0,0,0,0.15); }
.nd-presta-domaine { position: absolute; left: 12px; bottom: 12px; max-width: calc(100% - 24px); background: rgba(62,80,85,0.9); color: #fff; font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 30px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nd-presta-body { padding: 18px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.nd-presta-nom { font-family: var(--nd-font-titre); font-size: 18px; font-weight: 700; color: var(--nd-bleu-fonce); margin: 0; }
.nd-presta-titre { color: var(--nd-bleu); font-size: 13.5px; font-weight: 600; margin-top: 2px; }
.nd-presta-meta { color: var(--nd-gris); font-size: 13px; margin-top: 8px; display: flex; align-items: center; gap: 5px; }
.nd-presta-desc { color: var(--nd-gris); font-size: 14px; line-height: 1.55; margin-top: 10px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nd-presta-foot { margin-top: auto; padding-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.nd-stars { display: flex; align-items: center; gap: 2px; color: var(--nd-accent); font-size: 13px; }
.nd-stars .bi-star { color: #d4dde3; }
.nd-stars-txt { color: var(--nd-gris); font-size: 12.5px; margin-left: 5px; font-weight: 600; }
.nd-stars-txt small { font-weight: 400; color: #9aa7b0; }
.nd-presta-btn { background: var(--nd-bleu); color: #fff !important; text-decoration: none; padding: 9px 18px; border-radius: 30px; font-size: 13.5px; font-weight: 700; white-space: nowrap; transition: background .2s; }
.nd-presta-btn:hover { background: var(--nd-bleu-fonce); }

/* Pagination */
.nd-pagination { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: 44px; }
.nd-page-lien { min-width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 0 12px; border-radius: 10px; background: #fff; color: var(--nd-bleu-fonce); text-decoration: none; font-weight: 600; font-size: 15px; box-shadow: 0 3px 12px rgba(27,74,122,0.08); transition: all .2s; }
.nd-page-lien:hover { background: var(--nd-bleu-pale); color: var(--nd-bleu); }
.nd-page-lien.nd-actif { background: linear-gradient(90deg, var(--nd-bleu), var(--nd-bleu-clair)); color: #fff; box-shadow: 0 6px 18px rgba(56,141,168,0.35); }

/* État vide */
.nd-empty { text-align: center; padding: 60px 24px; background: #fff; border-radius: 20px; box-shadow: 0 6px 22px rgba(27,74,122,0.06); max-width: 560px; margin: 10px auto; }
.nd-empty-ico { width: 76px; height: 76px; border-radius: 50%; background: var(--nd-bleu-pale); color: var(--nd-bleu); display: inline-flex; align-items: center; justify-content: center; font-size: 32px; margin-bottom: 18px; }
.nd-empty h3 { font-family: var(--nd-font-titre); font-size: 22px; font-weight: 700; color: var(--nd-bleu-fonce); }
.nd-empty p { color: var(--nd-gris); margin: 10px 0 22px; }

/* Messages flash */
.nd-flash { padding: 13px 18px; border-radius: 12px; margin-bottom: 16px; font-size: 14.5px; }
.nd-flash-error, .nd-flash-danger { background: #fdeaea; color: #a12626; }
.nd-flash-success { background: #e8f6ee; color: #1c7a43; }
.nd-flash-info { background: #fff; color: var(--nd-bleu-fonce); box-shadow: 0 3px 12px rgba(27,74,122,0.06); }

/* Responsive liste */
@media (max-width: 860px) {
  .nd-liste-head { padding: 40px 20px 84px; }
  .nd-liste-filtres { flex-direction: column; }
  .nd-filtre-champ, .nd-filtre-q { min-width: 100%; }
  .nd-liste-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
}
@media (max-width: 480px) {
  .nd-liste-grid { grid-template-columns: 1fr; }
  .nd-liste-resume { flex-direction: column; align-items: flex-start; }
}

/* ===================================================================
   Offres disponibles (/offres) + modal candidature
   =================================================================== */
.nd-offres-grid { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.nd-offre-card { background: #fff; border-radius: 18px; padding: 24px 24px 22px; box-shadow: 0 6px 22px rgba(27,74,122,0.08); display: flex; flex-direction: column; border-top: 4px solid var(--nd-bleu); transition: transform .2s, box-shadow .2s; }
.nd-offre-card:hover { transform: translateY(-5px); box-shadow: 0 16px 40px rgba(27,74,122,0.16); }
.nd-offre-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.nd-offre-type { background: var(--nd-bleu-pale); color: var(--nd-bleu); font-size: 12px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; padding: 5px 14px; border-radius: 30px; }
.nd-offre-date { color: var(--nd-gris); font-size: 12.5px; display: inline-flex; align-items: center; gap: 5px; }
.nd-offre-titre { font-family: var(--nd-font-titre); font-size: 19px; font-weight: 700; color: var(--nd-bleu-fonce); margin: 0; line-height: 1.3; }
.nd-offre-auteur { color: var(--nd-gris); font-size: 13px; margin-top: 8px; display: inline-flex; align-items: center; gap: 6px; }
.nd-offre-desc { color: var(--nd-gris); font-size: 14px; line-height: 1.6; margin-top: 12px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nd-offre-foot { margin-top: auto; padding-top: 18px; }
.nd-offre-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; width: 100%; border: none; cursor: pointer; }
.nd-offre-postule { display: inline-flex; align-items: center; gap: 8px; width: 100%; justify-content: center; background: #e8f6ee; color: #1c7a43; font-weight: 700; font-size: 14px; padding: 10px; border-radius: 30px; }
.nd-offre-lock { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; background: #f4f6f8; color: var(--nd-gris); font-weight: 600; font-size: 13.5px; padding: 11px; border-radius: 30px; text-decoration: none; border: 1px dashed #cfd9e0; }
.nd-offre-lock:hover { background: var(--nd-bleu-pale); color: var(--nd-bleu); border-color: var(--nd-bleu-clair); }

/* Modal candidature (surcharge du composant Bootstrap) */
.nd-modal { border: none; border-radius: 20px; overflow: hidden; box-shadow: 0 24px 70px rgba(27,74,122,0.3); font-family: var(--nd-font-texte); }
.nd-modal-head { background: linear-gradient(120deg, var(--nd-bleu-fonce), var(--nd-bleu)); color: #fff; padding: 20px 24px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.nd-modal-head h5 { font-family: var(--nd-font-titre); font-weight: 800; font-size: 19px; margin: 0; }
.nd-modal-offre { margin: 4px 0 0; font-size: 13.5px; color: #FFD98A; font-weight: 600; }
.nd-modal-close { background: rgba(255,255,255,0.18); border: none; color: #fff; width: 34px; height: 34px; border-radius: 50%; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; flex: 0 0 auto; transition: background .2s; }
.nd-modal-close:hover { background: rgba(255,255,255,0.32); }
.nd-modal-body { padding: 22px 24px; background: #fff; }
.nd-modal-row { margin-bottom: 15px; }
.nd-modal-row label { display: block; font-weight: 600; color: var(--nd-bleu-fonce); font-size: 14px; margin-bottom: 6px; }
.nd-modal-row .nd-opt { font-weight: 400; color: var(--nd-gris); font-size: 12.5px; }
.nd-modal-row .nd-req { color: var(--nd-maroc-rouge); }
.nd-modal-row input, .nd-modal-row textarea { width: 100%; border: 1.5px solid #dbe6ec; border-radius: 12px; padding: 12px 14px; font-family: var(--nd-font-ui); font-size: 14.5px; color: var(--nd-texte); background: #fff; outline: none; transition: border-color .2s, box-shadow .2s; }
.nd-modal-row input[readonly] { background: var(--nd-bleu-pale); color: var(--nd-gris); }
.nd-modal-row input:focus, .nd-modal-row textarea:focus { border-color: var(--nd-bleu); box-shadow: 0 0 0 3px rgba(56,141,168,0.15); }
.nd-modal-row textarea { resize: vertical; }
.nd-modal-foot { padding: 16px 24px 22px; background: #fff; display: flex; justify-content: flex-end; gap: 12px; flex-wrap: wrap; }
.nd-btn-sm { padding: 11px 22px; font-size: 14.5px; display: inline-flex; align-items: center; gap: 7px; }

@media (max-width: 480px) {
  .nd-offres-grid { grid-template-columns: 1fr; }
  .nd-modal-foot { flex-direction: column-reverse; }
  .nd-modal-foot .nd-btn-sm { width: 100%; justify-content: center; }
}

/* Page offres unifiée (publier + mes offres + postuler) */
.nd-offre-publish-btn { margin-top: 22px; display: inline-flex; align-items: center; gap: 9px; }
.nd-section-titre { max-width: 1180px; margin: 34px auto 16px; display: flex; align-items: center; gap: 10px; font-family: var(--nd-font-titre); font-size: 21px; font-weight: 800; color: var(--nd-bleu-fonce); }
.nd-section-titre:first-of-type { margin-top: 6px; }
.nd-section-titre i { color: var(--nd-bleu); font-size: 20px; }
.nd-liste-resultats > .nd-section-titre { padding: 0 4px; }

/* Cartes « mes offres » */
.nd-mine-card { border-top-color: var(--nd-accent); }
.nd-mine-meta { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 12px; color: var(--nd-gris); font-size: 13px; }
.nd-mine-meta i { color: var(--nd-bleu); margin-right: 4px; }
.nd-mine-note { font-size: 13px; color: var(--nd-gris); display: inline-flex; align-items: center; gap: 7px; }
.nd-mine-note-refus { color: var(--nd-maroc-rouge); }
.nd-mine-card .nd-offre-foot form { width: 100%; margin: 0; }
.nd-mine-card .nd-offre-foot .nd-offre-btn,
.nd-mine-card .nd-offre-foot .nd-offre-lock { width: 100%; }

/* Badges de statut d'une offre */
.nd-statut { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; padding: 5px 12px; border-radius: 30px; white-space: nowrap; }
.nd-statut-live { background: #e8f6ee; color: #1c7a43; }
.nd-statut-attente { background: #fff5e6; color: #b26a00; }
.nd-statut-refus { background: #fdeaea; color: #a12626; }
.nd-statut-off { background: #eef1f4; color: #5e6e7c; }

/* Formulaire nd- (publier une offre, etc.) */
.nd-form-wrap { max-width: 680px; margin: -46px auto 0; padding: 0 20px 70px; position: relative; z-index: 2; }
.nd-form-back { display: inline-flex; align-items: center; gap: 7px; color: var(--nd-bleu); font-weight: 600; font-size: 14px; text-decoration: none; margin-bottom: 14px; }
.nd-form-back:hover { color: var(--nd-bleu-fonce); }
.nd-form-card { background: #fff; border-radius: 18px; box-shadow: 0 10px 34px rgba(27,74,122,0.12); padding: 28px 26px; }
.nd-form-card .nd-field { margin-bottom: 18px; display: block; }
.nd-form-card label { display: block; font-weight: 600; color: var(--nd-bleu-fonce); font-size: 14px; margin-bottom: 7px; }
.nd-form-card .nd-opt { font-weight: 400; color: var(--nd-gris); font-size: 12.5px; }
.nd-form-card .nd-req { color: var(--nd-maroc-rouge); }
.nd-form-card input, .nd-form-card select, .nd-form-card textarea {
  width: 100%; border: 1.5px solid #dbe6ec; border-radius: 12px; padding: 12px 15px; font-family: var(--nd-font-ui); font-size: 14.5px; color: var(--nd-texte); background: #fff; outline: none; transition: border-color .2s, box-shadow .2s;
}
.nd-form-card input:focus, .nd-form-card select:focus, .nd-form-card textarea:focus { border-color: var(--nd-bleu); box-shadow: 0 0 0 3px rgba(56,141,168,0.15); }
.nd-form-card select { -webkit-appearance: none; appearance: none; cursor: pointer; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%23388da8' d='M6 8 0 0h12z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
.nd-form-card textarea { resize: vertical; }
.nd-form-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 8px; flex-wrap: wrap; }
@media (max-width: 480px) {
  .nd-form-actions { flex-direction: column-reverse; }
  .nd-form-actions .nd-btn-sm { width: 100%; justify-content: center; text-align: center; }
}

/* ===================================================================
   Page abonnement (/abonnement)
   =================================================================== */
.nd-abo-page .nd-liste-head { padding-bottom: 46px; }
.nd-abo-wrap { max-width: 1120px; margin: 26px auto 0; padding: 0 20px 70px; position: relative; z-index: 2; }
.nd-abo-grid { align-items: stretch; }
.nd-abo-grid { display: flex; gap: 22px; justify-content: center; flex-wrap: wrap; align-items: stretch; }
.nd-abo-card { flex: 1; min-width: 270px; max-width: 350px; background: #fff; border-radius: 20px; padding: 32px 28px; box-shadow: 0 10px 34px rgba(27,74,122,0.12); position: relative; display: flex; flex-direction: column; border: 2px solid transparent; transition: transform .2s, box-shadow .2s; }
.nd-abo-free { background: #fbfdfe; }
.nd-abo-badge-free { background: var(--nd-bleu-fonce) !important; box-shadow: none !important; }
.nd-abo-souprix { margin: 4px 0 0; font-size: 13px; color: var(--nd-gris); font-weight: 600; }
.nd-abo-card:hover { transform: translateY(-4px); box-shadow: 0 18px 44px rgba(27,74,122,0.18); }
.nd-abo-card.nd-abo-star { border-color: var(--nd-bleu); }
.nd-abo-badge { position: absolute; top: -14px; left: 50%; transform: translateX(-50%); background: linear-gradient(90deg, var(--nd-bleu), var(--nd-bleu-clair)); color: #fff; font-size: 12px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase; padding: 6px 18px; border-radius: 30px; white-space: nowrap; box-shadow: 0 6px 16px rgba(56,141,168,0.35); }
.nd-abo-nom { font-family: var(--nd-font-titre); font-size: 22px; font-weight: 800; color: var(--nd-bleu-fonce); margin: 4px 0 0; }
.nd-abo-desc { color: var(--nd-gris); font-size: 14px; line-height: 1.5; margin: 6px 0 0; }
.nd-abo-prix { font-family: var(--nd-font-titre); font-size: 40px; font-weight: 800; color: var(--nd-bleu); margin: 18px 0 0; line-height: 1; }
.nd-abo-euro { font-size: 22px; vertical-align: super; margin-right: 2px; }
.nd-abo-periode { font-family: var(--nd-font-ui); font-size: 14px; font-weight: 500; color: var(--nd-gris); }
.nd-abo-engagement { display: inline-flex; align-items: center; gap: 7px; margin: 12px 0 20px; font-size: 13px; font-weight: 600; color: var(--nd-bleu-fonce); }
.nd-abo-engagement i { color: var(--nd-maroc-vert); }
.nd-abo-actions { margin-top: auto; padding-top: 18px; display: flex; flex-direction: column; gap: 10px; }
.nd-abo-actions form { margin: 0; }
.nd-abo-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; border: none; cursor: pointer; font-family: var(--nd-font-ui); font-weight: 700; font-size: 15px; padding: 13px; border-radius: 40px; text-decoration: none; transition: all .2s; }
.nd-abo-btn-primary { background: linear-gradient(90deg, var(--nd-bleu), var(--nd-bleu-clair)); color: #fff; box-shadow: 0 8px 22px rgba(56,141,168,0.28); }
.nd-abo-btn-primary:hover { transform: translateY(-2px); color: #fff; }
.nd-abo-btn-ghost { background: #fff; color: var(--nd-bleu); border: 1.5px solid var(--nd-bleu); }
.nd-abo-btn-ghost:hover { background: var(--nd-bleu-pale); }
.nd-abo-btn-disabled { background: #eef1f4; color: #9aa7b0; cursor: not-allowed; }
.nd-abo-note { color: var(--nd-gris); font-size: 12px; text-align: center; margin: 0 0 4px; line-height: 1.4; }
.nd-abo-features { list-style: none; margin: 20px 0 0; padding: 20px 0 0; border-top: 1px solid #eef3f6; }
.nd-abo-features li { display: flex; align-items: flex-start; gap: 9px; font-size: 14px; color: var(--nd-texte); padding: 7px 0; }
.nd-abo-features li i { color: var(--nd-maroc-vert); font-size: 15px; margin-top: 2px; flex: 0 0 auto; }
.nd-abo-secure { text-align: center; color: var(--nd-gris); font-size: 13px; margin: 30px auto 0; display: flex; align-items: center; justify-content: center; gap: 8px; }
.nd-abo-secure i { color: var(--nd-bleu); }
@media (max-width: 600px) {
  .nd-abo-card.nd-abo-star { transform: none; }
  .nd-abo-card { max-width: 100%; }
}

/* Page de confirmation de paiement */
.nd-confirm-page { min-height: 78vh; display: flex; align-items: center; justify-content: center; padding: 90px 18px 40px; background: var(--nd-bleu-pale); }
.nd-confirm-card { max-width: 520px; width: 100%; text-align: center; background: #fff; border-radius: 20px; box-shadow: 0 14px 44px rgba(27,74,122,0.14); padding: 44px 32px; }
.nd-confirm-card h3 { font-family: var(--nd-font-titre); font-weight: 800; color: var(--nd-bleu-fonce); margin: 22px 0 0; font-size: 22px; }
.nd-confirm-card p { color: var(--nd-gris); margin: 12px 0 0; line-height: 1.6; font-size: 14.5px; }
.nd-confirm-card .nd-btn-bleu { margin-top: 20px; }
.nd-confirm-emoji { font-size: 46px; }
.nd-confirm-spinner { width: 52px; height: 52px; border-radius: 50%; border: 5px solid var(--nd-bleu-pale); border-top-color: var(--nd-bleu); margin: 0 auto; animation: ndSpin 0.8s linear infinite; }
@keyframes ndSpin { to { transform: rotate(360deg); } }

/* ===================================================================
   Consulter un prestataire (/profil/{id}/consulter) — habillage nd-
   =================================================================== */
.nd-consulter { padding-top: 80px; background: var(--nd-bleu-pale); min-height: 100vh; }
.nd-consulter > .container, .nd-consulter section > .container { max-width: 1100px; }
.nd-consulter section { padding: 24px 0 40px; }
/* Bandeau d'en-tête décoratif → teal */
.nd-consulter .pt-20 { height: 130px; border-radius: 20px 20px 0 0 !important; background: linear-gradient(120deg, var(--nd-bleu-fonce), var(--nd-bleu)) !important; }
.nd-consulter .card { border: none !important; border-radius: 20px !important; box-shadow: 0 8px 30px rgba(27,74,122,0.10) !important; }
.nd-consulter .avatar-xxl.rounded-circle, .nd-consulter .avatar-xxl img { border: 4px solid #fff !important; box-shadow: 0 6px 18px rgba(27,74,122,0.18); background: #fff; }
.nd-consulter h4, .nd-consulter h5, .nd-consulter h6, .nd-consulter .title { color: var(--nd-bleu-fonce) !important; font-family: var(--nd-font-titre); }
/* Bouton Contacter */
.nd-consulter .contact-pro .btn-getstarted { background: linear-gradient(90deg, var(--nd-bleu), var(--nd-bleu-clair)) !important; color: #fff !important; border: none !important; border-radius: 40px !important; padding: 11px 30px !important; font-weight: 700; box-shadow: 0 8px 22px rgba(56,141,168,0.28); transition: transform .2s; }
.nd-consulter .contact-pro .btn-getstarted:hover { transform: translateY(-2px); }
.nd-consulter .contact-pro a[style*="ccc"], .nd-consulter .contact-pro a[style*="not-allowed"] { background: #eef1f4 !important; color: var(--nd-gris) !important; box-shadow: none; }
/* Cartes d'info + timeline */
.nd-consulter .info-item { background: #fff !important; border-radius: 16px; box-shadow: 0 6px 22px rgba(27,74,122,0.08) !important; padding: 22px !important; margin-bottom: 20px; }
.nd-consulter .details a, .nd-consulter .text-primary { color: var(--nd-bleu) !important; }
.nd-consulter .details i, .nd-consulter .fas { color: var(--nd-bleu) !important; }
.nd-consulter .badge.hov-badge { background: var(--nd-bleu-pale) !important; color: var(--nd-bleu-fonce) !important; font-weight: 600; padding: 8px 14px; border-radius: 30px; }
.nd-consulter .competence-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.nd-consulter .timeline-item { position: relative; padding-left: 22px; padding-bottom: 18px; border-left: 2px solid #dce8ee; margin-left: 6px; }
.nd-consulter .timeline-item:last-child { border-left-color: transparent; }
.nd-consulter .timeline-icon { position: absolute; left: -7px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--nd-bleu); box-shadow: 0 0 0 3px var(--nd-bleu-pale); }
.nd-consulter .timeline-content { background: var(--nd-bleu-pale); border-radius: 12px; padding: 12px 16px; }
/* Avis */
.nd-consulter .stars .bi-star-fill { font-size: 15px; }
.nd-consulter #flash-messages .flash { padding: 12px 16px; border-radius: 12px; margin-bottom: 14px; background: #fff; box-shadow: 0 3px 12px rgba(27,74,122,0.06); }
/* Modal d'avis (Bootstrap) */
.nd-consulter .modal-content { border: none; border-radius: 18px; box-shadow: 0 24px 70px rgba(27,74,122,0.28); }
.nd-consulter .modal-header { border: none; }

/* ===================================================================
   Messagerie (chat client) — temps réel
   =================================================================== */
.nd-chat-page { padding-top: 70px; height: 100vh; display: flex; flex-direction: column; background: var(--nd-bleu-pale); }
.nd-chat { flex: 1; min-height: 0; display: flex; max-width: 1300px; width: 100%; margin: 0 auto; background: #fff; box-shadow: 0 6px 30px rgba(27,74,122,0.10); }

/* Avatars partagés */
.nd-chat-avatar { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background: var(--nd-bleu-pale); }
.nd-chat-avatar img { width: 100%; height: 100%; object-fit: cover; }
.nd-chat-avatar-txt { background: linear-gradient(135deg, var(--nd-bleu), var(--nd-bleu-clair)); color: #fff; font-family: var(--nd-font-titre); font-weight: 800; font-size: 18px; }

/* Sidebar conversations */
.nd-chat-sidebar { flex: 0 0 320px; border-right: 1px solid #e6eef2; display: flex; flex-direction: column; min-height: 0; background: #fff; }
.nd-chat-sidebar-head { padding: 20px 22px; font-family: var(--nd-font-titre); font-weight: 800; color: var(--nd-bleu-fonce); font-size: 17px; border-bottom: 1px solid #eef3f6; display: flex; align-items: center; gap: 9px; }
.nd-chat-sidebar-head i { color: var(--nd-bleu); }
.nd-chat-list { list-style: none; margin: 0; padding: 8px; overflow-y: auto; flex: 1; min-height: 0; }
.nd-chat-item { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-radius: 14px; text-decoration: none; transition: background .15s; }
.nd-chat-item:hover { background: var(--nd-bleu-pale); }
.nd-chat-item.nd-actif { background: var(--nd-bleu-pale); box-shadow: inset 3px 0 0 var(--nd-bleu); }
.nd-chat-item-info { min-width: 0; display: flex; flex-direction: column; }
.nd-chat-item-nom { font-weight: 700; color: var(--nd-bleu-fonce); font-size: 14.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nd-chat-item-last { color: var(--nd-gris); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Zone conversation */
.nd-chat-main { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; background: #f7fafc; }
.nd-chat-topbar { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; padding: 14px 22px; background: #fff; border-bottom: 1px solid #e6eef2; }
.nd-chat-back { display: none; width: 40px; height: 40px; border-radius: 50%; align-items: center; justify-content: center; color: var(--nd-bleu-fonce); background: var(--nd-bleu-pale); text-decoration: none; font-size: 18px; flex: 0 0 auto; }
.nd-chat-topbar-info { min-width: 0; }
.nd-chat-topbar-nom { font-family: var(--nd-font-titre); font-weight: 800; color: var(--nd-bleu-fonce); font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nd-chat-topbar-status { color: var(--nd-gris); font-size: 12.5px; display: flex; align-items: center; gap: 6px; }
.nd-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--nd-maroc-vert); display: inline-block; }

/* Historique + bulles */
.nd-chat-history { flex: 1; min-height: 0; overflow-y: auto; padding: 24px 22px; display: flex; flex-direction: column; gap: 12px; }
.nd-msg { display: flex; max-width: 74%; }
.nd-msg-mine { align-self: flex-end; justify-content: flex-end; }
.nd-msg-other { align-self: flex-start; }
.nd-msg-bulle { position: relative; padding: 10px 15px 20px; border-radius: 16px; font-size: 14.5px; line-height: 1.5; word-wrap: break-word; overflow-wrap: anywhere; box-shadow: 0 2px 8px rgba(27,74,122,0.06); }
.nd-msg-mine .nd-msg-bulle { background: linear-gradient(135deg, var(--nd-bleu), var(--nd-bleu-clair)); color: #fff; border-bottom-right-radius: 5px; }
.nd-msg-other .nd-msg-bulle { background: #fff; color: var(--nd-texte); border-bottom-left-radius: 5px; }
.nd-msg-txt { display: block; white-space: pre-wrap; }
.nd-msg-file { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 13.5px; font-weight: 600; text-decoration: underline; color: inherit; }
.nd-msg-mine .nd-msg-file { color: #fff; }
.nd-msg-other .nd-msg-file { color: var(--nd-bleu); }
.nd-msg-time { position: absolute; right: 12px; bottom: 5px; font-size: 10.5px; opacity: .7; }
.nd-chat-empty { margin: auto; text-align: center; color: var(--nd-gris); }
.nd-chat-empty i { font-size: 40px; color: var(--nd-bleu-clair); }
.nd-chat-empty p { margin-top: 12px; font-size: 14.5px; }

/* Barre de saisie */
.nd-chat-compose { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; padding: 14px 18px; background: #fff; border-top: 1px solid #e6eef2; }
.nd-chat-attach { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--nd-bleu-pale); color: var(--nd-bleu); cursor: pointer; font-size: 19px; margin: 0; transition: background .2s; }
.nd-chat-attach:hover { background: #dcecf3; }
.nd-chat-input-wrap { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.nd-chat-input-wrap input { width: 100%; border: 1.5px solid #dbe6ec; border-radius: 40px; padding: 13px 20px; font-family: var(--nd-font-ui); font-size: 14.5px; color: var(--nd-texte); outline: none; transition: border-color .2s, box-shadow .2s; }
.nd-chat-input-wrap input:focus { border-color: var(--nd-bleu); box-shadow: 0 0 0 3px rgba(56,141,168,0.15); }
.nd-chat-file-badge { font-size: 12px; color: var(--nd-bleu); margin: 5px 0 0 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nd-chat-send { flex: 0 0 auto; width: 48px; height: 48px; border-radius: 50%; border: none; cursor: pointer; background: linear-gradient(135deg, var(--nd-bleu), var(--nd-bleu-clair)); color: #fff; font-size: 18px; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(56,141,168,0.35); transition: transform .15s; }
.nd-chat-send:hover { transform: scale(1.06); }

/* Liste des conversations (page indexConv) */
.nd-conv-wrap { max-width: 760px; margin: -40px auto 0; padding: 0 20px 60px; position: relative; z-index: 2; }
.nd-conv-list { list-style: none; margin: 0; padding: 0; background: #fff; border-radius: 18px; box-shadow: 0 10px 34px rgba(27,74,122,0.12); overflow: hidden; }
.nd-conv-item { display: flex; align-items: center; gap: 14px; padding: 16px 20px; text-decoration: none; border-bottom: 1px solid #eef3f6; transition: background .15s; }
.nd-conv-list li:last-child .nd-conv-item { border-bottom: none; }
.nd-conv-item:hover { background: var(--nd-bleu-pale); }
.nd-conv-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.nd-conv-nom { font-family: var(--nd-font-titre); font-weight: 700; color: var(--nd-bleu-fonce); font-size: 15.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nd-conv-last { color: var(--nd-gris); font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 2px; }
.nd-conv-go { color: var(--nd-bleu-clair); font-size: 18px; flex: 0 0 auto; }

/* Responsive chat */
@media (max-width: 860px) {
  .nd-chat-sidebar { display: none; }
  .nd-chat-back { display: inline-flex; }
  .nd-msg { max-width: 86%; }
}

/* ===================================================================
   Espace administration
   =================================================================== */
.nd-admin { font-family: var(--nd-font-texte); background: var(--nd-bleu-pale); color: var(--nd-texte); margin: 0; min-height: 100vh; }
.nd-admin * { box-sizing: border-box; }

/* Barre du haut */
.nd-admin-topbar { position: sticky; top: 0; z-index: 1000; background: var(--nd-bleu-fonce); box-shadow: 0 2px 14px rgba(27,74,122,0.18); }
.nd-admin-topbar-inner { max-width: 1280px; margin: 0 auto; display: flex; align-items: center; gap: 16px; padding: 10px 22px; flex-wrap: wrap; }
.nd-admin-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: #fff; font-family: var(--nd-font-titre); font-weight: 800; }
.nd-admin-brand img { height: 34px; background: #fff; border-radius: 7px; padding: 3px 7px; }
.nd-admin-brand span { font-size: 15px; letter-spacing: .5px; opacity: .9; }
.nd-admin-toggle { display: none; margin-left: auto; background: rgba(255,255,255,0.12); border: none; color: #fff; font-size: 22px; width: 42px; height: 42px; border-radius: 10px; cursor: pointer; }
.nd-admin-links { display: flex; align-items: center; gap: 4px; flex: 1; flex-wrap: wrap; }
.nd-admin-links a { display: inline-flex; align-items: center; gap: 7px; color: rgba(255,255,255,0.82); text-decoration: none; font-family: var(--nd-font-ui); font-size: 14px; font-weight: 500; padding: 9px 14px; border-radius: 10px; transition: all .15s; }
.nd-admin-links a:hover { background: rgba(255,255,255,0.10); color: #fff; }
.nd-admin-links a.active { background: var(--nd-bleu); color: #fff; }
.nd-admin-links a i { font-size: 15px; }
.nd-admin-spacer { flex: 1; }
.nd-admin-ext { color: #FFD98A !important; }
.nd-admin-logout { background: rgba(255,255,255,0.10); }

/* Contenu */
.nd-admin-main { padding: 28px 0 60px; }
.nd-admin-wrap { max-width: 1280px; margin: 0 auto; padding: 0 22px; }
.nd-admin-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.nd-admin-head h1 { font-family: var(--nd-font-titre); font-size: 26px; font-weight: 800; color: var(--nd-bleu-fonce); margin: 0; }
.nd-admin-head .nd-admin-sub { color: var(--nd-gris); font-size: 14px; margin-top: 4px; }
.nd-admin-head-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* Boutons admin */
.nd-abtn { display: inline-flex; align-items: center; gap: 7px; border: none; cursor: pointer; font-family: var(--nd-font-ui); font-weight: 600; font-size: 13.5px; padding: 9px 16px; border-radius: 10px; text-decoration: none; transition: all .15s; white-space: nowrap; }
.nd-abtn-primary { background: linear-gradient(90deg, var(--nd-bleu), var(--nd-bleu-clair)); color: #fff; }
.nd-abtn-primary:hover { transform: translateY(-1px); color: #fff; }
.nd-abtn-ghost { background: #fff; color: var(--nd-bleu-fonce); border: 1.5px solid #dbe6ec; }
.nd-abtn-ghost:hover { border-color: var(--nd-bleu); color: var(--nd-bleu); }
.nd-abtn-success { background: #1c9d54; color: #fff; }
.nd-abtn-success:hover { background: #17843f; color: #fff; }
.nd-abtn-danger { background: #fff; color: var(--nd-maroc-rouge); border: 1.5px solid #f0c9cb; }
.nd-abtn-danger:hover { background: var(--nd-maroc-rouge); color: #fff; }
.nd-abtn-sm { padding: 7px 12px; font-size: 13px; }
.nd-abtn-icon { padding: 8px 11px; }

/* Cartes de stats */
.nd-admin-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 18px; margin-bottom: 26px; }
.nd-stat { background: #fff; border-radius: 16px; padding: 22px; box-shadow: 0 6px 22px rgba(27,74,122,0.08); display: flex; align-items: center; justify-content: space-between; gap: 14px; border-left: 4px solid var(--nd-bleu); }
.nd-stat-lbl { color: var(--nd-gris); font-size: 13.5px; font-weight: 600; }
.nd-stat-val { font-family: var(--nd-font-titre); font-size: 30px; font-weight: 800; color: var(--nd-bleu-fonce); line-height: 1.1; margin-top: 2px; }
.nd-stat-ico { width: 52px; height: 52px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 24px; background: var(--nd-bleu-pale); color: var(--nd-bleu); flex: 0 0 auto; }
.nd-stat.nd-stat-clients { border-left-color: var(--nd-bleu); }
.nd-stat.nd-stat-presta { border-left-color: var(--nd-accent); }
.nd-stat.nd-stat-presta .nd-stat-ico { background: #fdf1dc; color: #b26a00; }
.nd-stat.nd-stat-attente { border-left-color: var(--nd-maroc-rouge); }
.nd-stat.nd-stat-attente .nd-stat-ico { background: #fdeaea; color: var(--nd-maroc-rouge); }

/* Carte de contenu */
.nd-admin-card { background: #fff; border-radius: 16px; box-shadow: 0 6px 22px rgba(27,74,122,0.08); overflow: hidden; }
.nd-admin-card-head { padding: 18px 22px; border-bottom: 1px solid #eef3f6; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.nd-admin-card-head h2 { font-family: var(--nd-font-titre); font-size: 17px; font-weight: 800; color: var(--nd-bleu-fonce); margin: 0; }
.nd-admin-card-body { padding: 20px 22px; }
.nd-admin-card-body.nd-p0 { padding: 0; }

/* Filtres */
.nd-admin-filtres { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.nd-admin-filtres select, .nd-admin-filtres input { border: 1.5px solid #dbe6ec; border-radius: 10px; padding: 9px 13px; font-family: var(--nd-font-ui); font-size: 13.5px; color: var(--nd-texte); outline: none; background: #fff; }
.nd-admin-filtres select:focus, .nd-admin-filtres input:focus { border-color: var(--nd-bleu); box-shadow: 0 0 0 3px rgba(56,141,168,0.12); }
.nd-admin-filtres select { -webkit-appearance: none; appearance: none; padding-right: 34px; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%23388da8' d='M6 8 0 0h12z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; }

/* Tableau */
.nd-admin-table { width: 100%; border-collapse: collapse; }
.nd-admin-table thead th { text-align: left; font-family: var(--nd-font-ui); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--nd-gris); padding: 14px 18px; background: var(--nd-bleu-pale); white-space: nowrap; }
.nd-admin-table tbody td { padding: 14px 18px; border-top: 1px solid #eef3f6; font-size: 14px; vertical-align: middle; }
.nd-admin-table tbody tr:hover { background: #f7fbfd; }
.nd-admin-table .nd-td-end { text-align: right; }
.nd-admin-user { display: flex; align-items: center; gap: 11px; }
.nd-admin-avatar { width: 38px; height: 38px; border-radius: 50%; background: linear-gradient(135deg, var(--nd-bleu), var(--nd-bleu-clair)); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--nd-font-titre); font-weight: 800; font-size: 14px; flex: 0 0 auto; }
.nd-admin-user-nom { font-weight: 600; color: var(--nd-bleu-fonce); }
.nd-admin-user-sub { font-size: 12.5px; color: var(--nd-gris); }
.nd-table-actions { display: inline-flex; gap: 8px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.nd-table-actions form { margin: 0; }

/* Badges admin */
.nd-badge { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; padding: 4px 11px; border-radius: 30px; white-space: nowrap; }
.nd-badge-client { background: var(--nd-bleu-pale); color: var(--nd-bleu); }
.nd-badge-presta { background: #fdf1dc; color: #b26a00; }
.nd-badge-ok { background: #e8f6ee; color: #1c7a43; }
.nd-badge-wait { background: #fff5e6; color: #b26a00; }
.nd-badge-off { background: #eef1f4; color: #5e6e7c; }
.nd-badge-danger { background: #fdeaea; color: #a12626; }

/* Pied de carte / pagination */
.nd-admin-card-foot { padding: 14px 22px; border-top: 1px solid #eef3f6; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.nd-admin-card-foot .nd-pagination { margin: 0; }
.nd-admin-count { color: var(--nd-gris); font-size: 13px; }

/* État vide admin */
.nd-admin-empty { text-align: center; padding: 46px 20px; color: var(--nd-gris); }
.nd-admin-empty i { font-size: 40px; color: var(--nd-bleu-clair); display: block; margin-bottom: 12px; }

/* Bloc « demande / élément » (offres à valider) */
.nd-admin-item { border: 1px solid #eef3f6; border-radius: 14px; padding: 18px 20px; margin-bottom: 14px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: flex-start; }
.nd-admin-item:hover { border-color: #dce8ee; box-shadow: 0 4px 16px rgba(27,74,122,0.06); }
.nd-admin-item-main { flex: 1; min-width: 260px; }
.nd-admin-item-main h3 { font-family: var(--nd-font-titre); font-size: 17px; font-weight: 700; color: var(--nd-bleu-fonce); margin: 0 0 6px; }
.nd-admin-item-meta { color: var(--nd-gris); font-size: 13px; margin-bottom: 8px; display: flex; flex-wrap: wrap; gap: 4px 14px; }
.nd-admin-item-desc { color: var(--nd-texte); font-size: 14px; line-height: 1.55; margin: 0; }
.nd-admin-item-actions { display: flex; gap: 10px; flex-wrap: wrap; }

/* Formulaire admin (réutilise nd-form-card) */
.nd-admin-wrap .nd-form-card { max-width: 820px; }

/* Candidats (offre/index) */
.nd-admin-applicants { margin-top: 14px; border-top: 1px dashed #dce8ee; padding-top: 12px; }
.nd-admin-applicants summary { cursor: pointer; color: var(--nd-bleu); font-weight: 600; font-size: 13.5px; display: inline-flex; align-items: center; gap: 7px; list-style: none; }
.nd-admin-applicants summary::-webkit-details-marker { display: none; }
.nd-admin-applicants[open] summary { margin-bottom: 12px; }
.nd-admin-table-compact thead th { padding: 9px 12px; font-size: 11px; }
.nd-admin-table-compact tbody td { padding: 9px 12px; font-size: 13px; }

/* Le select dans une modal nd- (offre admin) */
.nd-modal-row select { width: 100%; padding: 12px 14px; border: 1.5px solid #dbe6ec; border-radius: 12px; font-family: var(--nd-font-ui); font-size: 14.5px; color: var(--nd-texte); background: #fff; outline: none; -webkit-appearance: none; appearance: none; cursor: pointer; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%23388da8' d='M6 8 0 0h12z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; transition: border-color .2s, box-shadow .2s; }
.nd-modal-row select:focus { border-color: var(--nd-bleu); box-shadow: 0 0 0 3px rgba(56,141,168,0.15); }

/* Fiche membre (userIndex) — habillage nd- du contenu profil */
.nd-admin-userview .contact.section, .nd-admin-userview.section { margin: 0 !important; padding: 0 !important; overflow: visible; }
.nd-admin-userview .container { max-width: 100% !important; padding-left: 0; padding-right: 0; }
.nd-admin-userview .section-title { display: none; }
.nd-admin-userview .info-item { background: #fff !important; border-radius: 16px; box-shadow: 0 6px 22px rgba(27,74,122,0.08) !important; padding: 22px !important; margin-bottom: 20px; }
.nd-admin-userview h4, .nd-admin-userview h5, .nd-admin-userview h6,
.nd-admin-userview .title, .nd-admin-userview .profile-header h5 { color: var(--nd-bleu-fonce) !important; font-family: var(--nd-font-titre); }
.nd-admin-userview .card { border: none !important; border-radius: 16px !important; box-shadow: 0 6px 22px rgba(27,74,122,0.08) !important; margin-bottom: 20px; overflow: hidden; }
.nd-admin-userview .card-header { background: var(--nd-bleu-pale) !important; color: var(--nd-bleu-fonce) !important; border: none !important; font-family: var(--nd-font-titre); font-weight: 700; }
.nd-admin-userview .profile-image img, .nd-admin-userview .profile-image .rounded-circle { border: 3px solid var(--nd-bleu-clair) !important; }
.nd-admin-userview .text-primary, .nd-admin-userview .details a { color: var(--nd-bleu) !important; }
.nd-admin-userview .details i, .nd-admin-userview .fas { color: var(--nd-bleu) !important; }
.nd-admin-userview .badge.hov-badge { background: var(--nd-bleu-pale) !important; color: var(--nd-bleu-fonce) !important; font-weight: 600; padding: 8px 14px; border-radius: 30px; }
.nd-admin-userview .competence-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.nd-admin-userview .timeline-item { position: relative; padding-left: 22px; padding-bottom: 18px; border-left: 2px solid #dce8ee; margin-left: 6px; }
.nd-admin-userview .timeline-item:last-child { border-left-color: transparent; }
.nd-admin-userview .timeline-icon { position: absolute; left: -7px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--nd-bleu); box-shadow: 0 0 0 3px var(--nd-bleu-pale); }
.nd-admin-userview .timeline-content { background: var(--nd-bleu-pale); border-radius: 12px; padding: 12px 16px; }
.nd-admin-userview .alert { border-radius: 12px !important; }
.nd-admin-userview .table { border-radius: 12px; overflow: hidden; }
.nd-admin-userview #flash-messages .flash { padding: 12px 16px; border-radius: 12px; margin-bottom: 14px; background: #fff; box-shadow: 0 3px 12px rgba(27,74,122,0.06); }

/* Responsive admin */
@media (max-width: 860px) {
  .nd-admin-toggle { display: inline-flex; align-items: center; justify-content: center; }
  .nd-admin-links { display: none; width: 100%; flex-direction: column; align-items: stretch; gap: 3px; padding-top: 8px; }
  .nd-admin-topbar.open .nd-admin-links { display: flex; }
  .nd-admin-spacer { display: none; }
  .nd-admin-table thead { display: none; }
  .nd-admin-table tbody td { display: block; border: none; padding: 6px 16px; }
  .nd-admin-table tbody tr { display: block; border-top: 1px solid #eef3f6; padding: 12px 0; }
  .nd-admin-table .nd-td-end { text-align: left; }
  .nd-table-actions { justify-content: flex-start; }
}

/* ===================================================================
   Profil client (/profil/hote/modifier)
   =================================================================== */
.nd-profil-head { text-align: left; padding: 44px 24px 80px; }
.nd-profil-head-inner { max-width: 1000px; margin: 0 auto; display: flex; align-items: center; gap: 24px; position: relative; z-index: 1; }
.nd-profil-head-avatar { flex: 0 0 auto; width: 96px; height: 96px; border-radius: 50%; overflow: hidden; background: rgba(255,255,255,0.16); border: 3px solid rgba(255,255,255,0.5); display: flex; align-items: center; justify-content: center; font-family: var(--nd-font-titre); font-weight: 800; font-size: 32px; color: #fff; }
.nd-profil-head-avatar img { width: 100%; height: 100%; object-fit: cover; }
.nd-profil-head-txt h1 { font-family: var(--nd-font-titre); font-size: clamp(24px, 3.4vw, 34px); font-weight: 800; color: #fff; margin: 0; }
.nd-profil-head-txt p { margin: 6px 0 0; color: rgba(255,255,255,0.9); font-size: 15px; display: flex; align-items: center; gap: 7px; }
.nd-profil-badge { display: inline-flex; align-items: center; gap: 7px; margin-top: 12px; background: rgba(255,255,255,0.16); color: #fff; padding: 6px 16px; border-radius: 30px; font-size: 13px; font-weight: 700; }

.nd-profil-wrap { max-width: 1000px; margin: -46px auto 0; padding: 0 20px 70px; position: relative; z-index: 2; }

/* Carte abonnement */
.nd-profil-abo { background: #fff; border-radius: 18px; box-shadow: 0 10px 34px rgba(27,74,122,0.12); padding: 22px 26px; margin-bottom: 24px; border-left: 4px solid var(--nd-accent); }
.nd-profil-abo-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.nd-profil-abo-head h3 { font-family: var(--nd-font-titre); font-size: 18px; font-weight: 800; color: var(--nd-bleu-fonce); margin: 0; display: flex; align-items: center; gap: 9px; }
.nd-profil-abo-head h3 i { color: var(--nd-accent); }
.nd-profil-abo-head form { margin: 0; }

/* Carte à onglets */
.nd-profil-card { background: #fff; border-radius: 18px; box-shadow: 0 10px 34px rgba(27,74,122,0.10); overflow: hidden; }
.nd-tabs { list-style: none; margin: 0; padding: 6px 10px 0; display: flex; gap: 6px; border-bottom: 1px solid #e9eff3; background: var(--nd-bleu-pale); }
.nd-tab { border: none; background: transparent; cursor: pointer; font-family: var(--nd-font-ui); font-weight: 600; font-size: 14.5px; color: var(--nd-gris); padding: 14px 20px; border-radius: 12px 12px 0 0; display: inline-flex; align-items: center; gap: 8px; transition: all .2s; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.nd-tab:hover { color: var(--nd-bleu); }
.nd-tab.active { color: var(--nd-bleu-fonce); background: #fff; border-bottom-color: var(--nd-bleu); }
.nd-profil-tabcontent { padding: 30px 28px 32px; }

/* Formulaires profil */
.nd-profil-form .nd-profil-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.nd-field { display: flex; flex-direction: column; }
.nd-field-full { grid-column: 1 / -1; }
.nd-field label { font-weight: 600; color: var(--nd-bleu-fonce); font-size: 14px; margin-bottom: 7px; }
.nd-profil-form .form-control,
.nd-profil-form input[type=text],
.nd-profil-form input[type=email],
.nd-profil-form input[type=tel],
.nd-profil-form input[type=password] {
  width: 100%; border: 1.5px solid #dbe6ec; border-radius: 12px; padding: 12px 15px; font-family: var(--nd-font-ui); font-size: 14.5px; color: var(--nd-texte); background: #fff; outline: none; transition: border-color .2s, box-shadow .2s;
}
.nd-profil-form .form-control:focus,
.nd-profil-form input:focus { border-color: var(--nd-bleu); box-shadow: 0 0 0 3px rgba(56,141,168,0.15); }
.nd-profil-actions { display: flex; justify-content: flex-end; margin-top: 22px; }

/* Avatar éditable */
.nd-profil-avatar-row { display: flex; align-items: center; gap: 20px; margin-bottom: 26px; padding-bottom: 24px; border-bottom: 1px solid #eef3f6; }
.nd-profil-avatar { position: relative; flex: 0 0 auto; width: 96px; height: 96px; border-radius: 50%; overflow: hidden; cursor: pointer; display: block; box-shadow: 0 6px 18px rgba(27,74,122,0.15); }
.nd-profil-avatar .current-img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nd-profil-avatar-txt { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--nd-bleu), var(--nd-bleu-clair)); color: #fff; font-family: var(--nd-font-titre); font-weight: 800; font-size: 32px; }
.nd-profil-avatar-cam { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(62,80,85,0); color: transparent; font-size: 24px; transition: all .2s; }
.nd-profil-avatar:hover .nd-profil-avatar-cam { background: rgba(62,80,85,0.5); color: #fff; }
.nd-profil-avatar-hint { display: flex; flex-direction: column; gap: 3px; }
.nd-profil-avatar-hint strong { color: var(--nd-bleu-fonce); font-size: 15px; }
.nd-profil-avatar-hint span { color: var(--nd-gris); font-size: 13px; }

@media (max-width: 640px) {
  .nd-profil-head-inner { flex-direction: column; text-align: center; }
  .nd-profil-head-txt p { justify-content: center; }
  .nd-profil-form .nd-profil-grid { grid-template-columns: 1fr; }
  .nd-profil-avatar-row { flex-direction: column; text-align: center; }
  .nd-profil-tabcontent { padding: 24px 18px 26px; }
  .nd-tab { padding: 12px 14px; font-size: 13.5px; }
}

/* ===================================================================
   Profil prestataire (/profil/presta) — habillage nd- du markup existant
   (couche de surcharge scoppée à .nd-presta-profil : ne touche pas les
   modals/CRUD ni les autres pages)
   =================================================================== */
.nd-presta-profil { padding-top: 70px; background: var(--nd-bleu-pale); min-height: 100vh; }
.nd-presta-profil .contact.section,
.nd-presta-profil.section { margin: 0 !important; padding: 30px 16px 70px !important; overflow: visible; }
.nd-presta-profil .container { max-width: 1180px; }

/* Bandeau d'en-tête (teal) */
.nd-presta-hero { text-align: left; padding: 38px 24px; }
.nd-presta-hero .nd-profil-head-inner { max-width: 1180px; margin: 0 auto; display: flex; align-items: center; gap: 22px; flex-wrap: wrap; position: relative; z-index: 1; }
.nd-presta-hero .nd-profil-head-txt h1 { color: #fff !important; }
.nd-presta-hero .nd-profil-head-txt p { color: rgba(255,255,255,0.9) !important; margin: 6px 0 0; display: flex; align-items: center; gap: 7px; }
.nd-presta-hero .nd-profil-head-txt p i { color: #fff !important; }
.nd-presta-hero .nd-profil-badge { display: inline-flex; align-items: center; gap: 7px; margin-top: 12px; background: rgba(255,255,255,0.16); color: #fff !important; padding: 6px 16px; border-radius: 30px; font-size: 13px; font-weight: 700; }
.nd-presta-hero .nd-profil-badge i { color: #FFD98A !important; }
.nd-profil-head-btn { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid rgba(255,255,255,0.6); color: #fff !important; background: transparent; border-radius: 40px; padding: 11px 22px; text-decoration: none; font-weight: 600; font-size: 14.5px; font-family: var(--nd-font-ui); transition: background .2s; }
.nd-profil-head-btn:hover { background: rgba(255,255,255,0.16); color: #fff !important; }
@media (max-width: 640px) {
  .nd-presta-hero { text-align: center; }
  .nd-presta-hero .nd-profil-head-inner { flex-direction: column; }
  .nd-presta-hero .nd-profil-head-txt p { justify-content: center; }
  .nd-profil-head-btn { margin-left: 0; }
}

/* Cartes */
.nd-presta-profil .info-item { background: #fff !important; border-radius: 18px; box-shadow: 0 6px 22px rgba(27,74,122,0.08) !important; padding: 24px !important; margin-bottom: 22px; }
.nd-presta-profil .profile-header { border-bottom: 1px solid #eef3f6 !important; }

/* Titres en teal (surcharge des #0e0147 inline) */
.nd-presta-profil h4, .nd-presta-profil h5, .nd-presta-profil h6,
.nd-presta-profil .title, .nd-presta-profil .profile-header h5 { color: var(--nd-bleu-fonce) !important; font-family: var(--nd-font-titre); }
.nd-presta-profil .section .title { font-size: 15px; font-weight: 700; }

/* Avatar */
.nd-presta-profil .profile-image img,
.nd-presta-profil .profile-image .rounded-circle { border: 3px solid var(--nd-bleu-clair) !important; box-shadow: 0 6px 18px rgba(27,74,122,0.15); }

/* Boutons Modifier / Ajouter / Gérer */
.nd-presta-profil .btn-outline-primary { border: 1.5px solid var(--nd-bleu) !important; color: var(--nd-bleu) !important; border-radius: 30px !important; font-weight: 600; padding: 6px 18px; transition: all .2s; background: #fff; }
.nd-presta-profil .btn-outline-primary:hover { background: var(--nd-bleu) !important; color: #fff !important; }

/* Liens documents / coordonnées + icônes */
.nd-presta-profil .text-primary, .nd-presta-profil .details a { color: var(--nd-bleu) !important; }
.nd-presta-profil .details i, .nd-presta-profil .fas { color: var(--nd-bleu) !important; }

/* Badges (langues, compétences) */
.nd-presta-profil .competence-badges { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-start; }
.nd-presta-profil .competence-badges a { text-decoration: none; }
.nd-presta-profil .badge.hov-badge { background: var(--nd-bleu-pale) !important; color: var(--nd-bleu-fonce) !important; font-weight: 600; font-size: 13px; padding: 8px 14px; border-radius: 30px; border: 1px solid transparent; transition: all .2s; }
.nd-presta-profil .badge.hov-badge:hover { background: var(--nd-bleu) !important; color: #fff !important; }

/* Timeline expériences / certifications */
.nd-presta-profil .timeline { position: relative; padding-left: 4px; }
.nd-presta-profil .timeline-item { position: relative; padding-left: 22px; padding-bottom: 18px; border-left: 2px solid #dce8ee; margin-left: 6px; }
.nd-presta-profil .timeline-item:last-child { border-left-color: transparent; padding-bottom: 0; }
.nd-presta-profil .timeline-icon { position: absolute; left: -7px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--nd-bleu); box-shadow: 0 0 0 3px var(--nd-bleu-pale); }
.nd-presta-profil .timeline-content { background: var(--nd-bleu-pale); border-radius: 12px; padding: 12px 16px; }
.nd-presta-profil .timeline-content h6 { color: var(--nd-bleu-fonce) !important; }
.nd-presta-profil .icon-actions { display: inline-flex; gap: 12px; align-items: center; }
.nd-presta-profil .icon-actions .bi-pencil { color: var(--nd-bleu) !important; }
.nd-presta-profil .icon-actions .bi-trash { color: var(--nd-maroc-rouge) !important; }

/* Flash */
.nd-presta-profil #flash-messages .flash { padding: 12px 16px; border-radius: 12px; margin-bottom: 14px; background: #fff; box-shadow: 0 3px 12px rgba(27,74,122,0.06); }

/* Sections d'infos (Documents, Coordonnées, etc.) */
.nd-presta-profil .section > .title { position: relative; padding-left: 14px; margin-bottom: 10px; }
.nd-presta-profil .section > .title::before { content: ""; position: absolute; left: 0; top: 2px; bottom: 2px; width: 4px; border-radius: 3px; background: linear-gradient(var(--nd-bleu), var(--nd-bleu-clair)); }
.nd-presta-profil hr { border-color: #e9eff3; opacity: 1; }
.nd-presta-profil .details h6.title { font-weight: 600; }
.nd-presta-profil .details .text-muted { color: var(--nd-gris) !important; }

/* ===== Modals CRUD du profil presta (habillage nd-) ===== */
.modal-dialog:has(.modal-reservation) { max-width: 640px; }
.modal-reservation { border: none !important; border-radius: 20px !important; overflow: hidden; box-shadow: 0 24px 70px rgba(27,74,122,0.30) !important; font-family: var(--nd-font-texte); }
.modal-reservation .modal-header { background: linear-gradient(120deg, var(--nd-bleu-fonce), var(--nd-bleu)); border: none; padding: 18px 24px; }
.modal-reservation .modal-header h5 { color: #fff !important; font-family: var(--nd-font-titre); font-weight: 800; font-size: 19px; }
.modal-reservation .modal-header .btn-close { filter: brightness(0) invert(1); opacity: .9; }
.modal-reservation .modal-body { padding: 22px 24px; background: #fff; }
.modal-reservation label { font-weight: 600; color: var(--nd-bleu-fonce) !important; font-size: 14px; margin-bottom: 6px; }
.modal-reservation .form-control,
.modal-reservation .form-select,
.modal-reservation input:not([type=file]):not([type=checkbox]):not([type=radio]),
.modal-reservation select,
.modal-reservation textarea {
  width: 100%; border: 1.5px solid #dbe6ec !important; border-radius: 12px !important; padding: 12px 14px !important; font-family: var(--nd-font-ui); font-size: 14.5px; color: var(--nd-texte); background: #fff; outline: none; box-shadow: none !important;
}
.modal-reservation .form-control:focus,
.modal-reservation .form-select:focus,
.modal-reservation input:focus,
.modal-reservation select:focus,
.modal-reservation textarea:focus { border-color: var(--nd-bleu) !important; box-shadow: 0 0 0 3px rgba(56,141,168,0.15) !important; }
.modal-reservation input[type=file] { font-size: 13.5px; color: var(--nd-gris); }
.modal-reservation .input-group { display: block; }
.modal-reservation .btn.post,
.modal-reservation .btn-outline-primary.post {
  background: linear-gradient(90deg, var(--nd-bleu), var(--nd-bleu-clair)) !important; color: #fff !important; border: none !important; border-radius: 40px !important; font-weight: 700; padding: 11px 28px !important; box-shadow: 0 8px 22px rgba(56,141,168,0.28); transition: transform .2s;
}
.modal-reservation .btn.post:hover { transform: translateY(-2px); color: #fff !important; }
/* Avatar éditable dans le modal profil */
.modal-reservation .profile-image-container { margin: 0 auto; }
.modal-reservation .profile-image-container .current-img { border: 3px solid var(--nd-bleu-clair); box-shadow: 0 6px 18px rgba(27,74,122,0.15); }
.modal-reservation .image-overlay { background: rgba(62,80,85,0); color: transparent; transition: all .2s; }
.modal-reservation .profile-image-container:hover .image-overlay { background: rgba(62,80,85,0.5); color: #fff; }
.modal-reservation .image-overlay .fas { color: #fff !important; }
