/*
   Custom styles — Cabinet d'Hépato-Gastro-Entérologie et de Proctologie
   Dr BENNANI Youssef — Casablanca
*/

/* Police Montserrat : chargée par le <link> Google Fonts de chaque page */

:root {
  --bs-body-font-family: 'Montserrat', sans-serif;
  --bs-primary: #21325B; /* Teal/Turquoise */
  --bs-primary-rgb: 0, 177, 183;
  --accent-color: #C9A96E; /* Gold accent */
  --body-bg: #F9F8F6; /* Off-white */
}

a {
  color: var(--bs-primary);
  text-decoration: none;
  transition: color 0.3s ease;
}

a:hover {
  color: #009da2;
  text-decoration: underline;
}

.card-link {
  color: var(--bs-primary) !important;
}

.card-link:hover {
  color: #009da2 !important;
}

/* Pagination override */
.page-link {
  color: var(--bs-primary) !important;
}

.page-item.active .page-link {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #fff !important;
}

.page-link:hover {
  color: #009da2 !important;
}

.page-link:focus {
  box-shadow: 0 0 0 0.25rem rgba(0, 177, 183, 0.25) !important;
}

body {
  background-color: var(--body-bg) !important;
  font-family: 'Montserrat', sans-serif;
}

h1, h2, h3 {
  font-family: 'Montserrat', sans-serif !important;
  color: var(--bs-primary) !important;
}

/* Montserrat pour tous les titres et paragraphes */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .display-1, .display-2, .display-3, .display-4, p, li, blockquote {
  font-family: 'Montserrat', sans-serif;
}
h1, h2, h3, .h1, .h2, .h3 { letter-spacing: -.01em; }

/* Primary Button color override */
.btn-primary {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
}

.btn-primary:hover {
  background-color: #009da2 !important; /* Slightly darker teal */
  border-color: #009da2 !important;
}

/* Secondary/Accent styles */
.btn-outline-primary {
  color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
}

.btn-outline-primary:hover {
  background-color: var(--bs-primary) !important;
  color: #fff !important;
}

/* Text color overrides */
.text-primary {
  color: var(--bs-primary) !important;
}

.bg-primary {
  background-color: var(--bs-primary) !important;
}

/* Accent for highlights */
.text-accent {
  color: var(--accent-color) !important;
}

.bg-accent {
  background-color: var(--accent-color) !important;
}

/* Footer override */
footer.bg-dark {
  background-color: var(--bs-primary) !important;
}

footer.bg-dark h5, footer.bg-dark p, footer.bg-dark a, footer.bg-dark span {
  color: #fff !important;
}

footer.bg-dark .btn-primary {
  background-color: #fff !important;
  color: var(--bs-primary) !important;
  border-color: #fff !important;
}

footer.bg-dark .btn-primary:hover {
  background-color: #f8f9fa !important;
  color: var(--bs-primary) !important;
}

footer.bg-dark a:hover {
  text-decoration: underline;
}

/* Header & Logo adjustment - PERFECTLY CENTERED MENU */
#header .container {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 2rem !important;
  padding-right: 2rem !important;
}

.navbar-nav-wrap {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
}

.navbar-collapse {
  flex-grow: 1 !important;
}

/* Response Fix: Only row on desktop */
@media (min-width: 992px) {
  .navbar-nav {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    width: 100% !important;
  }

  /* Center items between first and last */
  .navbar-nav > li:first-child {
    margin-left: auto !important;
  }

  .navbar-nav > li:nth-last-child(2) {
    margin-right: auto !important;
  }

  .navbar-nav > li:last-child {
    margin-left: auto !important;
  }
}

@media (max-width: 991.98px) {
  .navbar-nav {
    margin-top: 1rem;
    padding-bottom: 1rem;
  }
  .navbar-nav .nav-item {
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(0,0,0,0.05);
  }
  .navbar-nav .btn {
    width: 100%;
    margin-top: 1rem;
    justify-content: center;
  }
}

/* Quote Responsive Size */
blockquote.blockquote-lg {
    font-size: 1.25rem !important;
}

@media (max-width: 768px) {
    blockquote.blockquote-lg {
        font-size: 1.1rem !important;
    }
}

/* Global Responsive Images */
img {
  max-width: 100%;
  height: auto;
}

/* Footer Alignments */
footer .navbar-brand-logo {
  width: 240px !important;
  min-width: 240px !important;
  max-height: none !important;
  margin-bottom: 0 !important;
}

footer .list-unstyled {
  margin-top: 0.5rem !important;
}

.navbar-brand {
  padding-top: 5px !important;
  padding-bottom: 5px !important;
  margin-right: 2rem !important;
  display: flex !important;
  align-items: center !important;
  flex-shrink: 0;
}

/* Force balanced logo size - INCREASED BY 15% */
.navbar .navbar-brand .navbar-brand-logo {
  width: 210px !important;
  min-width: 210px !important;
  height: auto !important;
  max-height: 85px !important;
  display: block !important;
  margin: 0 !important;
}

/* Specific adjustment for Footer logo - REDUCED BY 15% */
footer .navbar-brand-logo {
  width: 240px !important;
  min-width: 240px !important;
  max-height: none !important;
}

/* Fix for Rendez-vous button text on one line */
.btn-primary.btn-sm, .navbar-nav .btn {
  white-space: nowrap !important;
  padding-left: 1.2rem !important;
  padding-right: 1.2rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem;
}

/* Adjust nav links for visibility */
.navbar-nav .nav-link {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
  font-size: 1rem;
}

/* Push to the far RIGHT in header */
.navbar-collapse {
  flex-grow: 1;
}

@media (max-width: 1200px) {
    .navbar-brand-logo {
        width: 210px !important;
        min-width: 210px !important;
    }
    .navbar-nav .nav-link {
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
        font-size: 0.9rem;
    }
}

@media (max-width: 991.98px) {
  .navbar-nav-wrap {
    flex-wrap: wrap !important;
  }
  .navbar-brand-logo {
    width: 180px !important;
    max-height: 90px !important;
  }
  .navbar-collapse {
      flex-basis: 100%;
  }
}

/* Hero Swiper Full Height (100vh) */
.js-swiper-hero {
  height: 100vh !important;
  min-height: 100vh !important;
}

.js-swiper-hero .swiper-slide {
  height: 100vh !important;
  min-height: 100vh !important;
  background-size: cover !important;
  background-position: center !important;
  display: flex !important;
  align-items: center !important;
}

/* Ensure content overlay is centered and takes full height */
.js-swiper-hero .container {
  height: 100vh !important;
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Adjust fixed navbar gap if needed */
body {
  padding-top: 0 !important; /* To allow hero to go under transparent navbar if applicable, or stay at top */
}

/* Modern Hero Typography & Buttons */
.js-swiper-hero .text-cap {
  letter-spacing: 0.15rem;
  font-weight: 600;
  color: #21325B !important; /* Branding teal */
  background: rgba(255, 255, 255, 0.9);
  padding: 0.4rem 1rem;
  border-radius: 50px;
  display: inline-block;
  margin-bottom: 2rem;
  font-size: 0.85rem;
  box-shadow: 0 4px 15px rgba(0, 177, 183, 0.2);
}

.js-swiper-hero h1, .js-swiper-hero h2 {
  font-weight: 800 !important;
  line-height: 1.2;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
  margin-bottom: 1.5rem;
  letter-spacing: -0.02rem;
}

.js-swiper-hero .lead {
  font-size: 1.25rem;
  font-weight: 300;
  text-shadow: 0 1px 5px rgba(0, 0, 0, 0.4);
  margin-bottom: 2.5rem;
  opacity: 0.95;
}

.js-swiper-hero .btn-light {
  padding: 1.2rem 2.5rem !important;
  font-weight: 700;
  border-radius: 50px;
  transition: all 0.3s ease;
  border: none;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  text-transform: uppercase;
  letter-spacing: 0.05rem;
}

.js-swiper-hero .btn-light:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3);
  background-color: #21325B !important;
  color: white !important;
}

/* Hero Responsiveness */
@media (max-width: 768px) {
  .js-swiper-hero .container {
    text-align: center !important;
    justify-content: center !important;
  }
  .js-swiper-hero div[class*="w-"] {
    width: 100% !important;
  }
  .js-swiper-hero h1, .js-swiper-hero h2 {
    font-size: 2.2rem !important;
  }
  .js-swiper-hero .lead {
    font-size: 1.1rem !important;
  }
  .js-swiper-hero .btn-light {
    padding: 1rem 2rem !important;
  }
}

/* MAX VISIBILITY HERO DOTS - MEGA SIZE */
#hero-dots {
  position: absolute !important;
  z-index: 1000 !important;
  bottom: 50px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(0, 0, 0, 0.4) !important; /* Visible dark bar */
  padding: 12px 24px !important;
  border-radius: 60px !important;
  width: auto !important;
  min-width: 120px !important;
}

#hero-dots .swiper-pagination-bullet {
  width: 22px !important; /* MEGA SIZE */
  height: 22px !important;
  background-color: #ffffff !important;
  opacity: 0.7 !important;
  margin: 0 12px !important;
  display: inline-block !important;
  border: 2px solid #21325B !important; /* Teal border for visibility */
  box-shadow: 0 0 15px rgba(0, 0, 0, 0.8) !important;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer !important;
}

#hero-dots .swiper-pagination-bullet-active {
  background-color: #21325B !important;
  width: 60px !important; /* XL Active point */
  border-radius: 15px !important;
  opacity: 1 !important;
  box-shadow: 0 0 20px rgba(0, 177, 183, 1) !important;
}

/* ── Responsive: Dropdown menus ── */
@media (max-width: 575.98px) {
  #header-overlay .dropdown-menu {
    min-width: 100% !important;
    left: 0 !important;
    right: 0 !important;
  }
}

/* ── Responsive: Page hero / breadcrumb sections ── */
@media (max-width: 767.98px) {
  [style*="min-height:420px"],
  [style*="min-height: 420px"] {
    min-height: 260px !important;
  }
}

/* ── Responsive: Gallery image tiles ── */
.gallery-tile {
  height: 18rem;
  background-size: cover;
  background-position: center;
}
@media (max-width: 767.98px) {
  .gallery-tile {
    height: 12rem !important;
  }
}
@media (max-width: 575.98px) {
  .gallery-tile {
    height: 10rem !important;
  }
}

/* ── Responsive: Hero profile image ── */
.hero-profile-img {
  max-height: 520px;
  object-fit: cover;
  width: 100%;
}
@media (max-width: 767.98px) {
  .hero-profile-img {
    max-height: 320px !important;
  }
}
@media (max-width: 575.98px) {
  .hero-profile-img {
    max-height: 260px !important;
  }
}

/* ── Responsive: Decorative dots SVG ── */
.decorative-dots {
  width: 12rem;
}
@media (max-width: 767.98px) {
  .decorative-dots {
    width: 7rem !important;
  }
}

/* ── Responsive: Map iframe wrapper ── */
.map-responsive-wrapper {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 */
  height: 0;
  overflow: hidden;
}
.map-responsive-wrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
@media (max-width: 575.98px) {
  .map-responsive-wrapper {
    padding-bottom: 75%; /* taller on small screens */
  }
}

/* ── Responsive: Contact section map on mobile ── */
@media (max-width: 767.98px) {
  #contactsSection .position-md-absolute {
    position: relative !important;
    height: 300px;
    width: 100%;
  }
  #contactsSection .position-md-absolute iframe {
    height: 100%;
    width: 100%;
  }
}

/* ── Responsive: Footer logo ── */
@media (max-width: 575.98px) {
  footer .navbar-brand-logo {
    width: 170px !important;
    min-width: 170px !important;
  }
}

/* ── Responsive: Hero swiper on small phones ── */
@media (max-width: 575.98px) {
  .js-swiper-hero,
  .js-swiper-hero .swiper-slide,
  .js-swiper-hero .container {
    height: 80vh !important;
    min-height: 80vh !important;
  }
  .js-swiper-hero h1,
  .js-swiper-hero h2 {
    font-size: 1.6rem !important;
  }
  .js-swiper-hero .lead {
    font-size: 0.95rem !important;
  }
}

/* Cookie Banner Styles */
#cookie-banner {
  box-shadow: 0 -5px 25px rgba(0,0,0,0.2);
  border-top: 1px solid rgba(255,255,255,0.1);
}

#cookie-banner .btn-primary {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
}

#cookie-banner .link-primary {
  color: var(--bs-primary) !important;
}

/* =====================================================================
   THEME CARDIOLOGIE — Dr Moaad AGUEZNAI (refonte 2026)
   ===================================================================== */
:root{
  --bs-primary:#0b2340; --bs-primary-rgb:11,35,64;
  --accent-color:#d62839; --accent-dark:#b5122a; --navy-deep:#061428; --body-bg:#f6f8fb;
}
a:hover,.card-link:hover,.page-link:hover{color:var(--accent-color)!important}
.btn-primary{background-color:var(--accent-color)!important;border-color:var(--accent-color)!important;color:#fff!important}
.btn-primary:hover,.btn-primary:focus{background-color:var(--accent-dark)!important;border-color:var(--accent-dark)!important}
.btn-outline-primary{color:var(--bs-primary)!important;border-color:var(--bs-primary)!important}
.btn-outline-primary:hover{background:var(--bs-primary)!important;color:#fff!important}
.text-accent{color:var(--accent-color)!important}
.text-cap{color:var(--accent-color)!important;letter-spacing:.14em}
.bg-dark,footer.bg-dark{background-color:var(--navy-deep)!important}
.page-band{position:relative;min-height:340px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;
  background:radial-gradient(ellipse at 80% 20%,rgba(214,40,57,.28) 0%,transparent 55%),linear-gradient(135deg,#061428 0%,#0b2340 55%,#13365f 100%)}
.page-band::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
.band-ecg{position:absolute;left:0;right:0;bottom:22px;width:100%;height:90px;opacity:.9;pointer-events:none}
.band-section{display:inline-block;font-family:'Montserrat',sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:#ff8a96;margin-bottom:.6rem}
.page-band .breadcrumb-item,.page-band .breadcrumb-item a{color:rgba(255,255,255,.75)}
.page-band .breadcrumb-item.active{color:#fff}
.content-card{border:0;border-radius:18px;box-shadow:0 10px 40px rgba(11,35,64,.08);overflow:hidden}
.content-card .card-header{background:#fff;padding:1.75rem 2rem}
.content-card .card-body{padding:2rem}
@media(max-width:575px){.content-card .card-body,.content-card .card-header{padding:1.25rem}}
.lead-intro{font-size:1.08rem;line-height:1.75;color:#334155;text-align:justify}
.accordion-button{font-weight:600;color:var(--bs-primary)}
.accordion-button:not(.collapsed){color:var(--accent-color)}
.accordion-body{color:#3b4a5e;line-height:1.75}
.accordion-body p{text-align:justify}
.accordion-body ul{padding-left:1.2rem}
.accordion-body li{margin-bottom:.35rem}
.prose{font-size:1.04rem;line-height:1.85;color:#334155}
.prose h3{font-size:1.45rem;margin-top:2.2rem;margin-bottom:.9rem}
.prose h4{font-size:1.15rem;margin-top:1.5rem;color:var(--bs-primary)}
.prose p{text-align:justify}
.prose ul{padding-left:1.3rem}.prose li{margin-bottom:.4rem}
.prose li::marker{color:var(--accent-color)}
.side-card{border:0;border-radius:16px;box-shadow:0 6px 30px rgba(11,35,64,.07)}
.side-card .list-group-item{border:0;padding:.55rem 0;background:transparent}
.side-card .list-group-item a{color:#334155}
.side-card .list-group-item a.active{color:var(--accent-color);font-weight:600}
.rdv-card{border-radius:16px;background:linear-gradient(135deg,#0b2340,#13365f);color:#fff}
.rdv-card h4,.rdv-card h5{color:#fff!important}
.patho-tile{display:flex;align-items:center;gap:.9rem;padding:1.1rem 1.2rem;border-radius:14px;background:#fff;box-shadow:0 4px 18px rgba(11,35,64,.06);color:var(--bs-primary);font-weight:600;height:100%;transition:transform .2s,box-shadow .2s}
.patho-tile:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(11,35,64,.12);text-decoration:none!important}
.patho-tile i{font-size:1.4rem;color:var(--accent-color);flex-shrink:0;width:44px;height:44px;border-radius:12px;background:rgba(214,40,57,.08);display:flex;align-items:center;justify-content:center}
.feature-ico{width:52px;height:52px;border-radius:14px;background:rgba(214,40,57,.08);color:var(--accent-color);display:flex;align-items:center;justify-content:center;font-size:1.4rem}
.review-card{border:0;border-radius:16px;box-shadow:0 6px 30px rgba(11,35,64,.07);height:100%}
.review-card .stars{color:#f5b400;letter-spacing:.1em}
.stat-num{font-family:'Montserrat',sans-serif;font-size:2.6rem;font-weight:700;color:var(--accent-color);line-height:1}
.cta-strip{background:linear-gradient(135deg,#b5122a 0%,#d62839 60%,#e5414f 100%)}
.cta-eyebrow{display:block;font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.8);margin-bottom:.4rem;font-weight:600}
.cta-strip h2{color:#fff!important}
.site-footer h5{font-family:'Montserrat',sans-serif!important;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase}
.wa-float{position:fixed;left:1.25rem;bottom:1.25rem;z-index:1050;width:54px;height:54px;border-radius:50%;background:#25d366;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.6rem;box-shadow:0 8px 24px rgba(37,211,102,.45);transition:transform .2s}
.wa-float:hover{transform:scale(1.08);color:#fff!important}
.gps-float{position:fixed;right:1.25rem;bottom:1.25rem;z-index:1050;width:54px;height:54px;border-radius:50%;background:#1a73e8;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 8px 24px rgba(26,115,232,.45);transition:transform .2s}
.gps-float:hover{transform:scale(1.08);color:#fff!important}
/* Animations des boutons flottants */
.wa-float,.gps-float{animation:float-bob 3s ease-in-out infinite}
.gps-float{animation-delay:1.5s}
.wa-float::after,.gps-float::after{content:"";position:absolute;inset:0;border-radius:50%;z-index:-1;border:2px solid currentColor;opacity:0;animation:float-ring 2.2s ease-out infinite;animation-delay:.7s}
.wa-float::after{color:#25d366}.gps-float::after{color:#1a73e8;animation-delay:1.8s}
.wa-float:hover,.gps-float:hover{animation-play-state:paused}
@keyframes float-bob{0%,100%{translate:0 0}50%{translate:0 -5px}}
.wa-float::before,.gps-float::before{content:"";position:absolute;inset:0;border-radius:50%;z-index:-1;animation:float-ring 2.2s ease-out infinite}
.wa-float::before{background:#25d366}
.gps-float::before{background:#1a73e8;animation-delay:1.1s}
.wa-float i{display:inline-block;animation:wa-shake 3.5s ease-in-out infinite}
.gps-float i{display:inline-block;animation:gps-bounce 1.8s ease-in-out infinite}
@keyframes float-ring{0%{transform:scale(1);opacity:.6}80%,100%{transform:scale(1.8);opacity:0}}
@keyframes wa-shake{0%,70%,100%{transform:rotate(0)}74%{transform:rotate(-14deg)}78%{transform:rotate(12deg)}82%{transform:rotate(-10deg)}86%{transform:rotate(8deg)}90%{transform:rotate(0)}}
@keyframes gps-bounce{0%,100%{transform:translateY(0)}20%{transform:translateY(-6px)}40%{transform:translateY(0)}55%{transform:translateY(-3px)}70%{transform:translateY(0)}}
.timeline-step{position:relative;padding-left:2.2rem;padding-bottom:1.6rem;border-left:2px solid rgba(214,40,57,.25);margin-left:.6rem}
.timeline-step:last-child{border-left-color:transparent}
.timeline-step::before{content:"";position:absolute;left:-9px;top:2px;width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--accent-color)}
.timeline-step h5{margin-bottom:.25rem;color:var(--bs-primary)}
.quote-doc{font-family:'Montserrat',sans-serif;font-style:italic;font-size:1.5rem;line-height:1.6;color:var(--bs-primary)}
.quote-doc::before{content:"“";display:block;font-size:4rem;line-height:.6;color:var(--accent-color)}
.urgence-box{border-left:4px solid var(--accent-color);background:#fff4f5;border-radius:10px;padding:1rem 1.25rem}
.exam-card{border:0;border-radius:16px;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.18)}
.exam-card .card-img-top{aspect-ratio:3/2;object-fit:cover}
.blog-card{border:0;border-radius:16px;overflow:hidden;box-shadow:0 6px 26px rgba(11,35,64,.07)}
.blog-card .card-img-top{aspect-ratio:3/2;object-fit:cover}
.gallery-tile{background-size:cover;background-position:center;border-radius:14px}
/* Couleur de marque alignée sur le logo du Dr Agueznai */
:root{--accent-color:#9c1b2b;--accent-dark:#7a1421}
.page-band{background:radial-gradient(ellipse at 80% 20%,rgba(156,27,43,.35) 0%,transparent 55%),linear-gradient(135deg,#061428 0%,#0b2340 55%,#13365f 100%)}
.cta-strip{background:linear-gradient(135deg,#7a1421 0%,#9c1b2b 60%,#b8283b 100%)}
.patho-tile i,.feature-ico{background:rgba(156,27,43,.08)}
.timeline-step{border-left-color:rgba(156,27,43,.25)}
.urgence-box{background:#fbf1f2}
#header-overlay .navbar-brand img{border-radius:0;background:none;filter:drop-shadow(0 0 6px rgba(255,70,95,.45)) drop-shadow(0 0 1px rgba(255,255,255,.5))}
/* Logo header : effet battement de cœur (boum-boum puis pause) */
#header-overlay .navbar-brand img{transform-origin:center;will-change:transform;animation:logo-heartbeat 1.4s ease-in-out infinite}
@keyframes logo-heartbeat{0%,40%,100%{transform:scale(1)}10%{transform:scale(1.13)}20%{transform:scale(.98)}30%{transform:scale(1.08)}}

/* ── Responsive mobile ── */
/* Les animations AOS (fade-left/right) décalent les blocs hors écran : on coupe le débordement horizontal (critique en RTL) */
html,body{max-width:100%;overflow-x:hidden}
@supports (overflow-x:clip){html,body{overflow-x:clip}}
img,video,iframe{max-width:100%}
@media (max-width:767.98px){
  /* Texte justifié illisible sur écran étroit (grands espaces entre les mots) */
  .lead-intro,.accordion-body p,.prose p,[style*="text-align: justify"],[style*="text-align:justify"]{text-align:start!important;hyphens:auto;-webkit-hyphens:auto}
  p,li,h1,h2,h3,h4{overflow-wrap:break-word}
  /* Colonne de lecture plus large dans les articles */
  .content-card .card-body,.content-card .card-header{padding:1rem}
  .content-card{border-radius:14px}
  /* Boutons d'appel côte à côte : passent à la ligne proprement */
  .btn{white-space:normal}
  /* Boutons flottants un peu plus compacts */
  .wa-float,.gps-float{width:48px;height:48px;font-size:1.35rem;bottom:1rem}
  .wa-float{left:1rem}.gps-float{right:1rem}
  html[dir=rtl] .wa-float{left:auto;right:1rem}
  html[dir=rtl] .gps-float{right:auto;left:1rem}
}
/* Header mobile : logo et bouton menu sur la même ligne */
/* (sélecteurs #header-overlay.navbar pour passer devant le <style> intégré aux pages) */
@media (max-width:991.98px){
  #header-overlay.navbar .container-fluid{flex-wrap:wrap}
  #header-overlay.navbar .navbar-brand{flex:1 1 0!important;max-width:calc(100% - 4rem);min-width:0;margin-right:0}
  #header-overlay.navbar .brand-txt{min-width:0}
  #header-overlay.navbar .brand-txt .b-name,#header-overlay.navbar .brand-txt .b-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #header-overlay.navbar .navbar-toggler{flex:0 0 auto;margin-left:auto}
}
@media (max-width:575.98px){
  #header-overlay.navbar{padding:.9rem 0}
  #header-overlay.navbar.scrolled{padding:.55rem 0}
  #header-overlay.navbar .navbar-brand{gap:.55rem}
  #header-overlay.navbar .navbar-brand img{width:40px;height:40px}
  #header-overlay.navbar .brand-txt .b-name{font-size:.9rem;letter-spacing:0}
  #header-overlay.navbar .brand-txt .b-sub{font-size:.52rem;letter-spacing:.1em}
  #header-overlay.navbar .navbar-toggler{padding:.3rem .55rem}
  #header-overlay.navbar .navbar-toggler i{font-size:1.3rem!important}
}
@media (max-width:359.98px){
  #header-overlay.navbar .brand-txt .b-name{font-size:.82rem}
  #header-overlay.navbar .brand-txt .b-sub{font-size:.46rem;letter-spacing:.06em}
}
@media (max-width:575.98px){
  /* Évite que le contenu de fin de page soit masqué par les boutons flottants */
  footer{padding-bottom:4.5rem}
}
