/* Direction artistique premium — surcharge volontairement isolée de la mécanique Bootstrap. */
:root {
  --brand-cyan: #b69a67;
  --brand-blue: #12272a;
  --brand-magenta: #846942;
  --brand-dark: #142326;
  --brand-light: #ece6dc;
  --ivory: #f8f6f1;
  --paper: #fffdfa;
  --ink: #142326;
  --muted: #6d716c;
  --gold: #b69a67;
  --line: #dcd7ce;
  --deep: #112426;
}

html { scroll-behavior: smooth; }

body {
  color: var(--ink);
  background: var(--ivory);
  background-image: linear-gradient(90deg, rgba(20, 35, 38, .025) 1px, transparent 1px), linear-gradient(rgba(20, 35, 38, .025) 1px, transparent 1px);
  background-size: 68px 68px;
  font-family: "DM Sans", Arial, sans-serif;
  font-size: 15px;
  letter-spacing: -.01em;
}

body::before {
  position: fixed;
  z-index: -1;
  inset: 0;
  content: "";
  pointer-events: none;
  background: radial-gradient(820px 460px at 92% 4%, rgba(182,154,103,.15), transparent 70%), radial-gradient(620px 400px at 3% 35%, rgba(17,36,38,.08), transparent 70%);
}

h1, h2, h3, h4, h5, .display-5, .fw-extrabold {
  color: var(--ink);
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600 !important;
  letter-spacing: -.04em;
}

h1.display-5 { max-width: 11ch; font-size: clamp(3.35rem, 5.4vw, 5.7rem); line-height: .91; }
h2 { font-size: clamp(2.45rem, 4vw, 4rem); line-height: .95; }
.text-muted { color: var(--muted) !important; }
.text-dark { color: var(--ink) !important; }
.text-brand-blue, .text-brand-cyan, .text-brand-magenta { color: var(--gold) !important; }

.bg-blob, .bg-blobs, .section-dots { display: none !important; }
.scroll-progress { height: 2px; background: var(--gold); box-shadow: none; }

header.sticky-top { border-bottom: 1px solid rgba(220,215,206,.8); background: rgba(248,246,241,.86); backdrop-filter: blur(18px); }
.navbar.dt-header, .navbar-glass { min-height: 76px; overflow: visible; border: 0; background: transparent !important; box-shadow: none !important; }
.navbar.dt-header::before { display: none; }
.navbar.dt-header.dt-header--scrolled { background: transparent !important; box-shadow: none !important; }
.dt-brand { gap: .75rem !important; }
.dt-brand img { width: 42px !important; height: 42px !important; border: 1px solid var(--line); border-radius: 50% !important; box-shadow: none !important; filter: grayscale(1) contrast(1.15); }
.dt-brand .fw-extrabold { font-family: "DM Sans", Arial, sans-serif; font-size: .87rem; font-weight: 700 !important; letter-spacing: .04em; text-transform: uppercase; }
.dt-brand .text-muted { font-size: .66rem !important; letter-spacing: .12em; text-transform: uppercase; }
.dt-navlink { padding: .5rem .05rem !important; color: #485655 !important; font-size: .78rem; font-weight: 600 !important; letter-spacing: .07em; text-transform: uppercase; }
.dt-navlink::after { bottom: -.12rem; height: 1px; background: var(--gold); }

.btn { border-radius: 0 !important; font-size: .77rem; font-weight: 700 !important; letter-spacing: .065em; text-transform: uppercase; transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease !important; }
.btn-brand, .btn-brand:focus, .btn-brand:active { --bs-btn-bg: var(--deep); --bs-btn-border-color: var(--deep); background: var(--deep) !important; border-color: var(--deep) !important; color: #fff !important; box-shadow: none !important; }
.btn-brand:hover { background: var(--gold) !important; border-color: var(--gold) !important; color: #172526 !important; transform: translateY(-2px); }
.btn-outline-muted, .btn-outline-muted:focus { border-color: var(--line) !important; background: transparent !important; color: var(--ink) !important; box-shadow: none !important; }
.btn-outline-muted:hover { border-color: var(--ink) !important; background: var(--ink) !important; color: #fff !important; transform: translateY(-2px); }
.dt-iconbtn { min-width: 42px; padding-inline: .65rem !important; }
.dt-cta { animation: none; }

main > section { position: relative; }
main > section.container { padding-top: 7.25rem !important; padding-bottom: 7.25rem !important; }
main > section.container.pt-5 { padding-top: 6.7rem !important; }
main > section.container.py-5 + section.container.py-5::before { position: absolute; top: 0; left: calc(50% - min(540px, 43vw)); width: min(1080px, 86vw); height: 1px; content: ""; background: var(--line); }

.senegal-pill, .ticker, .how-badge, .chip, .tag-pill { border-color: var(--line) !important; background: var(--paper) !important; color: var(--ink) !important; box-shadow: none !important; }
.senegal-pill { border-radius: 0; font-size: .62rem; letter-spacing: .12em; }
.ticker { border-radius: 0; }
.ticker__inner { padding: .68rem .9rem; color: #68706d; font-size: .72rem; font-weight: 600; letter-spacing: .04em; animation-duration: 28s; }

.card, .card-glass, .dashboard-wrap, .how-shell, .how-step, .footer-shell, .testimonial-card, .t-card, .kpi-box, .stat-card {
  border: 1px solid var(--line) !important;
  border-radius: 0 !important;
  background: var(--paper) !important;
  box-shadow: none !important;
}
.card-glass, .dashboard-wrap, .how-shell { backdrop-filter: none; }
.shadow-soft { box-shadow: none !important; }
.card { transition: transform .25s ease, border-color .25s ease, background-color .25s ease !important; }
.card:hover, .how-step:hover, .testimonial-card:hover, .t-card:hover { border-color: var(--gold) !important; box-shadow: 8px 8px 0 rgba(182,154,103,.12) !important; transform: translate(-2px, -2px); }
.card-body { padding: 1.75rem !important; }

/* Hero : une mise en page plus calme, proche d'un dossier éditorial. */
#top > section:first-child { min-height: 700px; display: flex; align-items: center; }
#top > section:first-child > .row { width: 100%; }
#top > section:first-child .d-inline-flex { border-color: var(--line) !important; border-radius: 0 !important; background: transparent !important; font-size: .72rem; letter-spacing: .04em; }
#top > section:first-child .d-inline-flex > span:first-child { background: var(--gold) !important; }
#top > section:first-child .fs-5 { max-width: 38rem; font-size: 1.08rem !important; line-height: 1.75; }
#top > section:first-child .row.g-3 { max-width: 38rem !important; }
#top > section:first-child .row.g-3 .card-body { min-height: 105px; padding: 1.1rem !important; }
#top > section:first-child .h4 { font-family: "Cormorant Garamond", Georgia, serif; font-size: 2.05rem; font-weight: 600 !important; }

.dashboard-wrap { background: var(--deep) !important; color: #edf0e9; border-color: #314346 !important; }
.dashboard-wrap .border-bottom { border-color: rgba(255,255,255,.13) !important; }
.dashboard-wrap .text-dark, .dashboard-wrap .fw-bold, .dashboard-wrap .fw-extrabold { color: #f7f4ed !important; }
.dashboard-wrap .text-muted { color: #aab6ad !important; }
.dashboard-wrap .card { border-color: rgba(255,255,255,.12) !important; background: #1a3436 !important; color: #edf0e9 !important; }
.dashboard-wrap .card:hover { transform: none; box-shadow: none !important; border-color: rgba(182,154,103,.65) !important; }
.dashboard-wrap .bg-brand-light, .dashboard-wrap [style*="rgba(230,233,243"] { background: rgba(255,255,255,.07) !important; }
.dashboard-wrap .badge { border-radius: 0; background: rgba(182,154,103,.2) !important; color: #e3cb9f !important; font-size: .66rem; letter-spacing: .06em; }
.dashboard-wrap .progress-bar { background: var(--gold) !important; }

#categories .card-body { padding: 1.55rem !important; }
#categories .rounded-2xl { border: 1px solid var(--line); border-radius: 0 !important; background: #f3efe7 !important; }
#categories svg { color: var(--gold) !important; }
#categories .fw-bold { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.55rem; font-weight: 600 !important; }

.how-shell { background: var(--deep) !important; border-color: #314346 !important; color: #f6f3ec; }
.how-shell::before { display: none; }
.how-shell h2, .how-shell .how-mini-title, .how-shell .fw-bold { color: #f6f3ec !important; }
.how-shell .text-muted, .how-shell .how-kicker { color: #afbbb2 !important; }
.how-dot { background: var(--gold); box-shadow: none; }
.how-badge, .how-mini, .how-step, .how-step__media, .how-num, .chip { border-color: rgba(255,255,255,.15) !important; background: rgba(255,255,255,.045) !important; color: #f6f3ec !important; box-shadow: none !important; }
.how-mini { border-radius: 0; max-width: 29rem; }
.how-step { min-height: 100%; padding: 1rem 1rem 1.35rem; }
.how-step::before, .how-steps--withimg::before { display: none; }
.how-step:hover { background: rgba(255,255,255,.075) !important; }
.how-step__media { border-radius: 0; }
.how-num { border-radius: 0; color: #e1c99f !important; font-family: "DM Sans", sans-serif; font-size: .62rem; letter-spacing: .12em; }
.how-check { border-color: rgba(182,154,103,.5); border-radius: 50%; background: transparent; color: #e1c99f; }
.how-heroimg__img { border-radius: 0; border-color: rgba(255,255,255,.15); box-shadow: none; filter: saturate(.55) sepia(.12); }

#vitrine { background: #e9e4db; }
#vitrine .container { padding-top: 1rem; padding-bottom: 1rem; }
.featured-track { gap: 1rem !important; }
.featured-card { width: 340px; border: 1px solid var(--line) !important; border-radius: 0 !important; background: var(--paper) !important; box-shadow: none !important; }
.featured-card:hover { border-color: var(--gold) !important; transform: translateY(-3px); }
.featured-img { height: 184px; background: #e8e2d7; }
.featured-img img { padding: 1.5rem; object-fit: contain; mix-blend-mode: multiply; }
.featured-card .badge, .featured-card .tag-pill { border-radius: 0 !important; background: #f0ebdf !important; color: #5e553f !important; font-size: .64rem; letter-spacing: .07em; }
.featured-card .h5 { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.75rem; font-weight: 600 !important; }

#actualites .card-body { min-height: 254px; display: flex; flex-direction: column; }
#actualites [data-news-title] { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.75rem !important; line-height: 1; }
#actualites .btn-link, .how-shell .btn-link { color: var(--gold) !important; text-decoration: none; }
#actualites .card > .card-body > .btn-link { margin-top: auto !important; }

#temoignages > .card { background: #ebe6dd !important; }
.testimonial-card, .t-card { width: min(375px, 82vw); }
.dt-titleicon { display: inline; width: auto; height: auto; margin-right: .25rem; border: 0; background: transparent; box-shadow: none; }

.footer-shell { background: var(--deep) !important; border-color: #314346 !important; color: #f7f4ed; }
.footer-shell::before { display: none; }
.footer-shell .fw-extrabold, .footer-shell .footer-col-title { color: #f7f4ed !important; }
.footer-shell .text-muted, .footer-shell .footer-link, .footer-shell .footer-bottom { color: #aab6ad !important; }
.footer-shell .footer-link:hover { color: #e1c99f !important; }
.footer-mark { border-radius: 0; background: var(--gold); color: var(--deep); box-shadow: none; }
.footer-chip, .footer-tip { border-color: rgba(255,255,255,.15); border-radius: 0; background: transparent; color: #e7e5dd !important; box-shadow: none; }
.footer-chip:hover { border-color: var(--gold); background: rgba(182,154,103,.12); box-shadow: none; }

.modal-content, .chatbot-widget, .cookie-modal, .cookie-banner-inner { border: 1px solid var(--line) !important; border-radius: 0 !important; background: var(--paper) !important; box-shadow: 12px 12px 0 rgba(20,35,38,.12) !important; }
.modal-header, .modal-footer { border-color: var(--line) !important; }
.form-control, .form-select { border-color: var(--line); border-radius: 0 !important; background: #fffdfa; }
.form-control:focus, .form-select:focus { border-color: var(--gold); box-shadow: 0 0 0 .2rem rgba(182,154,103,.16); }
.js-cat-chip { border-color: var(--line) !important; border-radius: 0 !important; background: #f2eee6 !important; }
.chatbot-widget { border-color: var(--line); }
.chatbot-head, .chatbot-foot { border-color: var(--line); background: #f7f4ed; }
.chat-msg.bot { border-radius: 0; border-color: var(--line); background: #f7f4ed; }
.chat-msg.user { border-radius: 0; background: var(--deep); }
.chatbot-launcher { right: 24px; bottom: 24px; }
.chatbot-dot { background: var(--gold); }
#tourBtn { border-radius: 0 !important; background: var(--paper) !important; }

body.theme-dark { background: #102224; color: #edf0e9; background-image: linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px); }
body.theme-dark::before { background: radial-gradient(780px 480px at 90% 0%, rgba(182,154,103,.14), transparent 70%); }
body.theme-dark header.sticky-top { background: rgba(16,34,36,.9); border-color: rgba(255,255,255,.12); }
body.theme-dark h1, body.theme-dark h2, body.theme-dark h3, body.theme-dark h4, body.theme-dark h5, body.theme-dark .fw-extrabold, body.theme-dark .text-dark { color: #f6f3ec !important; }
body.theme-dark .card, body.theme-dark .card-glass, body.theme-dark .modal-content, body.theme-dark .chatbot-widget, body.theme-dark .cookie-modal, body.theme-dark .cookie-banner-inner { background: #183033 !important; border-color: rgba(255,255,255,.13) !important; }
body.theme-dark #vitrine, body.theme-dark #temoignages > .card { background: #173033 !important; }
body.theme-dark .btn-outline-muted { color: #edf0e9 !important; border-color: rgba(255,255,255,.18) !important; }
body.theme-dark .form-control, body.theme-dark .form-select { background: #102224 !important; color: #edf0e9 !important; border-color: rgba(255,255,255,.15) !important; }

@media (max-width: 991px) {
  .navbar.dt-header { min-height: 68px; }
  .navbar-collapse { margin-top: .8rem; padding: 1rem; border: 1px solid var(--line); background: var(--paper); }
  body.theme-dark .navbar-collapse { background: #183033; border-color: rgba(255,255,255,.14); }
  .navbar-nav { gap: .35rem !important; }
  main > section.container { padding-top: 5rem !important; padding-bottom: 5rem !important; }
  #top > section:first-child { min-height: auto; }
  #top > section:first-child .col-lg-6 + .col-lg-6 { margin-top: 1.5rem; }
}

@media (max-width: 576px) {
  h1.display-5 { font-size: 3.15rem; }
  h2 { font-size: 2.65rem; }
  #top > section:first-child { padding-top: 3.8rem !important; }
  .dashboard-wrap .p-4 { padding: 1.1rem !important; }
  .card-body { padding: 1.3rem !important; }
  .featured-card { width: min(300px, 84vw); }
  .featured-img { height: 160px; }
  .chatbot-launcher { right: 14px; bottom: 14px; }
  #tourBtn { left: 14px !important; bottom: 14px !important; }
}
