/*
 * Polyclinique Maya — maya-ui.css
 * 1. Section « Assurances » premium (bandeau émeraude, cartes en verre)
 * 2. Design mobile façon application (barre d'onglets, cartes, rythme, effet de pression)
 * Habillage principal de l'accueil, indépendant des anciens effets 3D.
 */

:root {
  --mu-deep: #04231a;
  --mu-deep-2: #063528;
  --mu-emerald: #10b981;
  --mu-emerald-2: #34d399;
  --mu-mint: #d1fae5;
  --mu-ink: #0b3d29;
  --mu-ease: cubic-bezier(.22, 1, .36, 1);
  --mu-dock-h: 0px;
}

/* ============================================================
   3. ACCUEIL — statistiques éditoriales
   ============================================================ */

#stats.home-stats-premium {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(3.2rem, 7vw, 5.8rem) 0 !important;
  color: #eafff4;
  background:
    radial-gradient(780px 380px at -8% -6%, rgba(52, 211, 153, .26), transparent 64%),
    radial-gradient(680px 360px at 108% 98%, rgba(13, 148, 136, .22), transparent 62%),
    linear-gradient(145deg, #052e20 0%, #041f18 58%, #063628 100%) !important;
}

#stats.home-stats-premium::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .28;
  pointer-events: none;
  background-image: radial-gradient(rgba(255, 255, 255, .24) 1px, transparent 1px);
  background-size: 24px 24px;
  mask-image: linear-gradient(180deg, #000, transparent 88%);
  -webkit-mask-image: linear-gradient(180deg, #000, transparent 88%);
}

#stats .home-stats-orb { position: absolute; z-index: -1; border-radius: 50%; filter: blur(4px); pointer-events: none; }
#stats .home-stats-orb-one { top: -90px; left: 10%; width: 240px; height: 240px; background: rgba(52, 211, 153, .12); }
#stats .home-stats-orb-two { right: 4%; bottom: -120px; width: 300px; height: 300px; background: rgba(45, 212, 191, .1); }

#stats .home-stats-heading { max-width: 720px; margin: 0 auto clamp(1.8rem, 4vw, 2.8rem); }
#stats .home-stats-kicker { display: inline-flex; align-items: center; gap: .45rem; padding: .4rem .72rem; border: 1px solid rgba(167, 243, 208, .2); border-radius: 999px; color: #a7f3d0; background: rgba(255, 255, 255, .06); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
#stats .home-stats-heading h2 { margin: .9rem 0 .5rem; color: #fff !important; font-family: 'Poppins', sans-serif; font-size: clamp(1.8rem, 4.5vw, 3rem); font-weight: 800; line-height: 1.12; letter-spacing: -.035em; }
#stats .home-stats-heading p { max-width: 58ch; margin: 0 auto; color: rgba(226, 255, 242, .7); font-size: .94rem; line-height: 1.65; }

#stats .home-stats-grid { max-width: 1120px; margin-inline: auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
#stats .home-stat-card { --stat-accent: #34d399; position: relative; min-height: 218px; display: flex; flex-direction: column; overflow: hidden; padding: 1.15rem; border: 1px solid rgba(255, 255, 255, .14); border-radius: 22px; text-align: left; background: linear-gradient(160deg, rgba(255, 255, 255, .13), rgba(255, 255, 255, .045)); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 24px 42px -32px rgba(0, 0, 0, .9), inset 0 1px 0 rgba(255, 255, 255, .16); transition: transform .4s cubic-bezier(.22, 1, .36, 1), border-color .4s ease; }
#stats .home-stat-card::after { content: ""; position: absolute; right: -45px; bottom: -55px; width: 145px; height: 145px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--stat-accent) 26%, transparent), transparent 68%); pointer-events: none; }
#stats .home-stat-card:hover { transform: translateY(-7px); border-color: color-mix(in srgb, var(--stat-accent) 52%, transparent); }
#stats .home-stat-tone-purple { --stat-accent: #c084fc; }
#stats .home-stat-tone-blue { --stat-accent: #60a5fa; }
#stats .home-stat-tone-gold { --stat-accent: #facc15; }
#stats .home-stat-topline { display: flex; align-items: center; justify-content: space-between; gap: .7rem; }
#stats .home-stat-icon { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid color-mix(in srgb, var(--stat-accent) 45%, transparent); border-radius: 14px; color: var(--stat-accent); background: color-mix(in srgb, var(--stat-accent) 12%, transparent); font-size: 1.08rem; }
#stats .home-stat-index { color: rgba(229, 255, 243, .42); font-size: .66rem; font-weight: 900; letter-spacing: .1em; }
#stats .home-stat-value { display: flex; align-items: baseline; gap: .18rem; margin-top: 1.2rem; color: #fff; font-size: clamp(1.75rem, 3vw, 2.45rem); font-weight: 850; line-height: 1; letter-spacing: -.035em; }
#stats .home-stat-suffix { color: var(--stat-accent); font-size: .94rem; letter-spacing: 0; }
#stats .home-stat-card p { margin: .55rem 0 1rem; color: rgba(226, 255, 242, .72); font-size: .76rem; font-weight: 700; line-height: 1.4; text-transform: uppercase; letter-spacing: .055em; }
#stats .home-stat-line { width: 42px; height: 3px; margin-top: auto; border-radius: 999px; background: var(--stat-accent); box-shadow: 0 0 16px color-mix(in srgb, var(--stat-accent) 58%, transparent); }
#stats .home-stats-empty { grid-column: 1 / -1; padding: 2rem; text-align: center; color: rgba(226, 255, 242, .7); }
#stats .home-stats-note { width: fit-content; max-width: 100%; margin: 1.35rem auto 0; display: flex; align-items: center; justify-content: center; gap: .5rem; padding: .52rem .82rem; border: 1px solid rgba(167, 243, 208, .16); border-radius: 999px; color: rgba(226, 255, 242, .68); background: rgba(255, 255, 255, .05); font-size: .7rem; }
#stats .home-stats-note i { color: #6ee7b7; }

/* ============================================================
   4. ACCUEIL — formulaire de rendez-vous
   ============================================================ */

html.m3d main > #appointment.home-appointment-premium,
#appointment.home-appointment-premium {
  position: relative;
  padding: clamp(3.2rem, 7vw, 5.8rem) 0 !important;
  background:
    radial-gradient(720px 400px at 105% 5%, rgba(52, 211, 153, .15), transparent 64%),
    linear-gradient(180deg, #eefaf4 0%, #f9fdfb 100%) !important;
}

#appointment .home-appointment-shell { max-width: 1240px; margin-inline: auto; display: grid; grid-template-columns: minmax(250px, .62fr) minmax(0, 1.7fr); align-items: stretch; overflow: hidden; border: 1px solid rgba(16, 185, 129, .2); border-radius: 32px; background: #fff; box-shadow: 0 34px 82px -46px rgba(5, 73, 45, .72), 0 12px 30px -26px rgba(16, 185, 129, .5); }
#appointment .home-appointment-intro { position: relative; overflow: hidden; padding: clamp(1.5rem, 4vw, 2.7rem); color: #eafff4; background: radial-gradient(440px 260px at 10% 0%, rgba(52, 211, 153, .3), transparent 64%), linear-gradient(155deg, #075239, #03291d 72%); }
#appointment .home-appointment-intro::after { content: ""; position: absolute; right: -65px; bottom: -75px; width: 210px; height: 210px; border-radius: 50%; background: rgba(52, 211, 153, .08); }
#appointment .home-appointment-kicker { display: inline-flex; align-items: center; gap: .42rem; padding: .38rem .65rem; border: 1px solid rgba(167, 243, 208, .2); border-radius: 999px; color: #a7f3d0; background: rgba(255, 255, 255, .06); font-size: .64rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
#appointment .home-appointment-intro h2 { margin: 1rem 0 .55rem; color: #fff !important; font-size: clamp(1.55rem, 3vw, 2.2rem); font-weight: 800; line-height: 1.15; letter-spacing: -.03em; }
#appointment .home-appointment-intro > p { margin: 0; color: rgba(226, 255, 242, .68); font-size: .84rem; line-height: 1.6; }
#appointment .home-appointment-benefits { position: relative; z-index: 1; list-style: none; display: grid; gap: .65rem; margin: 1.35rem 0; padding: 0; }
#appointment .home-appointment-benefits li { display: flex; align-items: center; gap: .65rem; min-height: 52px; padding: .65rem .72rem; border: 1px solid rgba(167, 243, 208, .1); border-radius: 14px; background: rgba(255, 255, 255, .07); }
#appointment .home-appointment-benefits li > i { flex: 0 0 auto; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; color: #052e20; background: #6ee7b7; }
#appointment .home-appointment-benefits strong { display: block; color: #f3fff8; font-size: .78rem; line-height: 1.3; }
#appointment .home-appointment-full-link { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: .42rem; color: #a7f3d0; font-size: .68rem; font-weight: 800; text-decoration: none; }
#appointment .home-appointment-full-link i { transition: transform .25s ease; }
#appointment .home-appointment-full-link:hover i { transform: translate(2px, -2px); }

#appointment .home-appointment-form-wrap { padding: clamp(1.2rem, 4vw, 2.2rem); background: linear-gradient(180deg, #fff 0%, #fbfffd 100%); }
#appointment .home-appointment-form-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.15rem; padding-bottom: .9rem; border-bottom: 1px solid rgba(16, 185, 129, .12); }
#appointment .home-appointment-form-head strong { display: block; color: #0b432e; font-size: 1.05rem; }
#appointment .home-appointment-form-head small { display: block; margin-top: .15rem; color: #809087; font-size: .65rem; }
#appointment .home-appointment-form-head > span { display: inline-flex; align-items: center; gap: .32rem; padding: .32rem .5rem; border-radius: 999px; color: #0c7448; background: #eafaf2; font-size: .58rem; font-weight: 800; }
#appointment.home-appointment-premium form#appointment-form.home-appointment-form { padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
#appointment .home-form-section-label { display: flex; align-items: center; gap: .48rem; margin-top: .15rem; padding-top: .65rem; color: #0b6942; font-size: .7rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
#appointment .home-form-section-label:not(:first-child) { margin-top: .35rem; border-top: 1px solid rgba(16, 185, 129, .1); }
#appointment .home-form-section-label i { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; color: #fff; background: linear-gradient(135deg, #0b8a55, #25bd79); box-shadow: 0 10px 18px -12px rgba(5, 150, 105, .8); }
#appointment .home-booking-field > label { display: flex; align-items: center; gap: .38rem; margin-bottom: .4rem; color: #28533f !important; font-size: .73rem; font-weight: 800; }
#appointment .home-booking-field > label i { color: #0f9f62; }
#appointment .home-booking-field .form-control,
#appointment .home-booking-field .form-select { min-height: 48px; padding: .62rem .78rem; border: 1px solid rgba(16, 185, 129, .22); border-radius: 14px !important; color: #173d2e; background-color: #fff; box-shadow: 0 10px 22px -22px rgba(7, 77, 48, .75); font-size: .8rem; }
#appointment .home-booking-field textarea.form-control { min-height: 92px; resize: vertical; }
#appointment .home-booking-field .form-control:focus,
#appointment .home-booking-field .form-select:focus { border-color: rgba(16, 185, 129, .55); background: #fff; box-shadow: 0 0 0 4px rgba(16, 185, 129, .08); }
#appointment .home-booking-field .home-booking-readonly { color: #0c7046; background: #ecfaf3; font-weight: 800; }
#appointment .home-payment-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
#appointment .home-payment-option { position: relative; }
#appointment .home-payment-option input { position: absolute; opacity: 0; pointer-events: none; }
#appointment .home-payment-option label { display: flex; align-items: center; gap: .5rem; min-height: 45px; margin: 0; padding: .55rem; border: 1px solid rgba(16, 185, 129, .16); border-radius: 12px; color: #315a47; background: #fbfffd; cursor: pointer; font-size: .7rem; font-weight: 800; }
#appointment .home-payment-option label i { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; color: #fff; background: #f59e0b; }
#appointment .home-payment-option.is-orange label i { background: #f97316; }
#appointment .home-payment-option input:checked + label { border-color: #16a36a; color: #0b6842; background: #ebfaf2; box-shadow: 0 0 0 3px rgba(16, 185, 129, .08); }
#appointment .home-availability-card { height: 100%; min-height: 92px; padding: .72rem; border: 1px solid rgba(16, 185, 129, .18); border-radius: 14px; background: linear-gradient(145deg, #f2fcf7, #fff); }
#appointment .home-availability-title { display: flex; align-items: center; gap: .3rem; color: #0d7749; font-size: .57rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
#appointment .home-availability-card #availability-note { margin-top: .25rem; color: #73837b !important; font-size: .59rem !important; line-height: 1.35; }
#appointment .home-availability-card .slot-preview { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .4rem; }
#appointment .home-availability-card .slot-chip { padding: .18rem .38rem; border: 1px solid rgba(16, 185, 129, .18); border-radius: 999px; color: #0c7046; background: #fff; font-size: .54rem; font-weight: 800; }
#appointment .home-booking-loading { align-items: center; justify-content: center; gap: .45rem; margin-top: 1rem; color: #0d7749; font-size: .68rem; font-weight: 700; }
#appointment .home-booking-submit-row { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid rgba(16, 185, 129, .12); }
#appointment .home-booking-submit-row > span { display: flex; align-items: center; gap: .38rem; color: #829188; font-size: .62rem; }
#appointment .home-booking-submit-row > span i { color: #0f9f62; }
#appointment button.home-booking-submit { width: auto; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: .48rem; padding: .72rem 1.25rem; border: 0; border-radius: 14px !important; color: #fff; background: linear-gradient(135deg, #087d4e, #18b873); box-shadow: 0 18px 30px -18px rgba(5, 150, 105, .8); font-size: .8rem; font-weight: 850; transition: transform .25s ease, box-shadow .25s ease; }
#appointment button.home-booking-submit:hover { transform: translateY(-2px); }

@media (max-width: 991.98px) {
  #stats .home-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #appointment .home-appointment-shell { grid-template-columns: 1fr; }
  #appointment .home-appointment-benefits { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
  html.m3d main > #stats.home-stats-premium,
  #stats.home-stats-premium { padding: 2.6rem 0 !important; }
  #stats .container { padding-inline: 14px !important; }
  #stats .home-stats-heading { margin-bottom: 1.35rem; }
  #stats .home-stats-kicker { font-size: .58rem; }
  #stats .home-stats-heading h2 { font-size: 1.65rem !important; }
  #stats .home-stats-heading p { font-size: .8rem !important; }
  #stats .home-stats-grid { gap: 10px; }
  #stats .home-stat-card { min-height: 158px; padding: .8rem; border-radius: 17px; }
  #stats .home-stat-icon { width: 36px; height: 36px; border-radius: 11px; font-size: .86rem; }
  #stats .home-stat-value { margin-top: .82rem; font-size: 1.45rem; }
  #stats .home-stat-suffix { font-size: .7rem; }
  #stats .home-stat-card p { margin-top: .4rem; font-size: .57rem; }
  #stats .home-stats-note { border-radius: 14px; font-size: .59rem; text-align: center; }

  html.m3d main > #appointment.home-appointment-premium,
  #appointment.home-appointment-premium { padding: 2.6rem 0 !important; }
  #appointment.home-appointment-premium > .container { padding-inline: 14px !important; border: 0 !important; background: none !important; box-shadow: none !important; }
  #appointment .home-appointment-shell { border-radius: 22px; }
  #appointment .home-appointment-intro { padding: 1.2rem 1rem; }
  #appointment .home-appointment-intro h2 { font-size: 1.5rem !important; }
  #appointment .home-appointment-benefits { grid-template-columns: 1fr; gap: .5rem; }
  #appointment .home-appointment-form-wrap { padding: 1rem .8rem; }
  #appointment .home-appointment-form-head { align-items: flex-start; }
  #appointment .home-payment-options { grid-template-columns: 1fr; }
  #appointment .home-booking-submit-row { flex-direction: column; align-items: stretch; }
  #appointment button.home-booking-submit { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  #stats .home-stat-card,
  #appointment button.home-booking-submit,
  #appointment .home-appointment-full-link i { transition: none !important; }
}

/* ============================================================
   1. ASSURANCES — bandeau premium
   ============================================================ */

#insurance-partners.ins-premium {
  position: relative;
  overflow: visible;
  isolation: isolate;
  margin-top: 0 !important;
  padding: clamp(1.85rem, 4vw, 2.9rem) 0 clamp(1.7rem, 3.5vw, 2.5rem) !important;
  border-radius: 0 0 clamp(26px, 6vw, 44px) clamp(26px, 6vw, 44px);
  background:
    radial-gradient(1200px 520px at 8% -10%, rgba(16, 185, 129, .30), transparent 58%),
    radial-gradient(900px 460px at 104% 4%, rgba(45, 212, 191, .24), transparent 56%),
    linear-gradient(165deg, #052e20 0%, #04231a 52%, #05372a 100%) !important;
  color: #e9fff6;
}

#insurance-partners.ins-premium > .container {
  max-width: 1180px;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* Voiles lumineux statiques, contenus dans la section */
#insurance-partners .ins-aurora {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(420px 260px at 20% 30%, rgba(52, 211, 153, .28), transparent 62%),
    radial-gradient(360px 240px at 78% 20%, rgba(16, 185, 129, .22), transparent 60%),
    radial-gradient(300px 200px at 55% 80%, rgba(110, 231, 183, .16), transparent 62%);
  filter: blur(4px);
}

/* Grille pointillée discrète */
#insurance-partners.ins-premium::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .5;
  background-image: radial-gradient(rgba(255, 255, 255, .14) 1px, transparent 1px);
  background-size: 22px 22px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, .55), transparent 70%);
  -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, .55), transparent 70%);
}

#insurance-partners .ins-head {
  width: 100%;
  text-align: center;
  max-width: 680px;
  margin: 0 auto clamp(1rem, 2.5vw, 1.45rem);
}

#insurance-partners .ins-badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .42rem .95rem;
  border-radius: 999px;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #bbf7d6;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(190, 242, 220, .25);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
#insurance-partners .ins-badge i { color: var(--mu-emerald-2); font-size: .9rem; }
#insurance-partners .ins-badge b {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  padding: 0 .35rem;
  border-radius: 999px;
  font-size: .72rem;
  color: #04231a;
  background: linear-gradient(135deg, #6ee7b7, #34d399);
}

#insurance-partners .ins-title {
  margin: .85rem 0 .5rem;
  font-weight: 800;
  letter-spacing: -.025em;
  font-size: clamp(1.55rem, 4.4vw, 2.45rem);
  line-height: 1.12;
  text-wrap: balance;
  background: linear-gradient(115deg, #ffffff 0%, #d9fff0 45%, #6ee7b7 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}

#insurance-partners .ins-sub {
  margin: 0 auto;
  max-width: 48ch;
  color: rgba(214, 255, 238, .78);
  font-size: clamp(.92rem, 2.6vw, 1.05rem);
  line-height: 1.6;
}

#insurance-partners .ins-trust {
  list-style: none;
  padding: 0;
  margin: .85rem 0 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .5rem;
}
#insurance-partners .ins-trust li {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .4rem .8rem;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 600;
  color: #d7fdec;
  background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(167, 243, 208, .18);
}
#insurance-partners .ins-trust i { color: var(--mu-emerald-2); }

/* --- Cartes assurance : grille centrée, sans carrousel ni masque --- */
#insurance-partners .insurance-partner-grid {
  width: min(100%, 1060px);
  margin-inline: auto;
  padding: .25rem 0 .75rem;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: center;
  gap: 14px;
}
#insurance-partners .insurance-partner-item {
  flex: 0 1 198px;
  width: min(100%, 198px);
  min-width: 0;
}

#insurance-partners .ins-card {
  position: relative;
  height: 100%;
  min-height: 142px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  padding: .9rem .75rem .8rem;
  border-radius: 20px;
  overflow: visible;
  text-align: center;
  background: linear-gradient(168deg, rgba(255, 255, 255, .16) 0%, rgba(255, 255, 255, .06) 60%, rgba(255, 255, 255, .03) 100%);
  border: 1px solid rgba(255, 255, 255, .17);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  box-shadow:
    0 26px 44px -30px rgba(0, 0, 0, .95),
    inset 0 1px 0 rgba(255, 255, 255, .26);
  transition: transform .45s var(--mu-ease), border-color .45s var(--mu-ease), box-shadow .45s var(--mu-ease);
}

#insurance-partners .ins-card-glow {
  position: absolute;
  inset: -40% 55% 55% -40%;
  background: radial-gradient(circle, rgba(110, 231, 183, .38), transparent 68%);
  opacity: 0;
  transition: opacity .5s var(--mu-ease);
  pointer-events: none;
}

#insurance-partners .ins-card-logo {
  width: 62px;
  height: 62px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  padding: 8px;
  border-radius: 17px;
  background: #ffffff;
  box-shadow: 0 16px 28px -18px rgba(0, 0, 0, .75), inset 0 0 0 1px rgba(6, 78, 59, .06);
}
#insurance-partners .ins-card-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
#insurance-partners .ins-card-initials {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 11px;
  font-weight: 800;
  font-size: 1.05rem;
  letter-spacing: .04em;
  color: #ffffff;
  background: linear-gradient(140deg, #059669, #34d399);
}

#insurance-partners .ins-card-name {
  margin: 0;
  font-size: .86rem;
  font-weight: 700;
  line-height: 1.3;
  color: #ffffff;
  text-wrap: balance;
}

#insurance-partners .ins-card-tag {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .2rem .52rem;
  border-radius: 999px;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: #a7f3d0;
  background: rgba(16, 185, 129, .18);
  border: 1px solid rgba(110, 231, 183, .28);
}

@media (hover: hover) and (pointer: fine) {
  #insurance-partners .ins-card:hover {
    transform: translateY(-8px);
    border-color: rgba(167, 243, 208, .42);
    box-shadow: 0 34px 56px -30px rgba(0, 0, 0, 1), inset 0 1px 0 rgba(255, 255, 255, .34);
  }
  #insurance-partners .ins-card:hover .ins-card-glow { opacity: 1; }
}

#insurance-partners .ins-actions {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  margin-top: .15rem;
}

#insurance-partners .ins-cta {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .7rem 1.25rem;
  border: 0;
  border-radius: 999px;
  font-weight: 700;
  font-size: .88rem;
  color: #04231a;
  background: linear-gradient(135deg, #a7f3d0, #34d399 55%, #10b981);
  box-shadow: 0 18px 34px -18px rgba(52, 211, 153, .85);
  transition: transform .3s var(--mu-ease), box-shadow .3s var(--mu-ease), filter .3s var(--mu-ease);
}
#insurance-partners .ins-cta:hover { transform: translateY(-2px); filter: brightness(1.05); }
#insurance-partners .ins-cta:active { transform: translateY(0) scale(.98); }
#insurance-partners .ins-cta-count {
  display: inline-grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  padding: 0 .4rem;
  border-radius: 999px;
  font-size: .76rem;
  color: #eafff5;
  background: rgba(4, 35, 25, .8);
}

#insurance-partners .ins-empty {
  width: 100%;
  text-align: center;
  color: rgba(214, 255, 238, .72);
  padding: 2rem 1rem;
}

/* Les anciennes brillances continues sont supprimées : la carte reste calme. */
#insurance-partners .ins-card::after {
  content: none;
}

/* Assurances sur mobile */
@media (max-width: 767.98px) {
  #insurance-partners.ins-premium {
    padding: 1.35rem 0 1.3rem !important;
    border-radius: 0 0 34px 34px;
    margin-top: 0 !important;
    box-shadow: 0 26px 40px -30px rgba(4, 35, 26, .95);
  }
  /* L'ancien habillage « carte blanche » ne doit pas couvrir le bandeau */
  #insurance-partners.ins-premium > .container {
    padding: 0 16px !important;
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  #insurance-partners .ins-head { margin-bottom: .9rem; }
  #insurance-partners .ins-badge { font-size: .64rem; padding: .34rem .75rem; gap: .4rem; letter-spacing: .1em; }
  #insurance-partners .ins-badge b { min-width: 20px; height: 20px; font-size: .68rem; }
  #insurance-partners.ins-premium .ins-title {
    font-size: clamp(1.55rem, 7.2vw, 2rem) !important;
    margin: .7rem 0 .4rem !important;
  }
  #insurance-partners.ins-premium .ins-sub {
    font-size: .86rem !important;
    max-width: 30ch;
    margin-bottom: 0 !important;
  }

  /* Trois garanties en tuiles égales */
  #insurance-partners .ins-trust {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
    margin-top: .8rem;
  }
  #insurance-partners .ins-trust li {
    flex-direction: column;
    justify-content: flex-start;
    gap: .32rem;
    padding: .58rem .25rem .52rem;
    border-radius: 15px;
    font-size: .63rem;
    line-height: 1.25;
    text-align: center;
    background: linear-gradient(170deg, rgba(255, 255, 255, .11), rgba(255, 255, 255, .03));
  }
  #insurance-partners .ins-trust i {
    width: 28px;
    height: 28px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    font-size: .82rem;
    color: #04231a;
    background: linear-gradient(135deg, #a7f3d0, #34d399);
    box-shadow: 0 8px 16px -10px rgba(52, 211, 153, .9);
  }

  /* Cartes : deux colonnes centrées, sans débordement latéral */
  #insurance-partners .insurance-partner-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 10px;
    padding: .1rem 0 .8rem;
  }
  #insurance-partners .insurance-partner-item {
    width: 100%;
    max-width: none;
  }
  #insurance-partners .insurance-partner-item:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    width: min(100%, calc(50% - 5px));
    justify-self: center;
  }
  #insurance-partners .ins-card {
    min-height: 124px;
    padding: .72rem .42rem .66rem;
    border-radius: 17px;
    gap: .35rem;
  }
  #insurance-partners .ins-card-logo { width: 48px; height: 48px; border-radius: 13px; padding: 6px; }
  #insurance-partners .ins-card-initials { font-size: .88rem; border-radius: 9px; }
  #insurance-partners .ins-card-name {
    font-size: .72rem;
    line-height: 1.25;
    min-height: 2.5em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  #insurance-partners .ins-card-tag { font-size: .55rem; padding: .15rem .4rem; }
  #insurance-partners .ins-actions { margin-top: .15rem; }
  #insurance-partners .ins-cta.insurance-view-all-btn {
    width: auto;
    min-width: min(100%, 230px);
    max-width: 100% !important;
    justify-content: center;
    padding: .72rem 1rem !important;
    border-radius: 15px !important;
    font-size: .82rem !important;
    margin-top: 0 !important;
  }
}

@media (max-width: 359.98px) {
  #insurance-partners .ins-trust li { font-size: .6rem; padding-inline: .2rem; }
  #insurance-partners .ins-card-logo { width: 44px; height: 44px; }
}

/* ============================================================
   2. MOBILE — habillage façon application
   ============================================================ */

@media (max-width: 767.98px) {

  /* --- Rythme et respiration --- */
  html.m3d body.index-page {
    background: linear-gradient(180deg, #f4fdf8 0%, #ffffff 30%, #f2fbf6 100%) !important;
  }

  html.m3d main > section {
    padding-top: 2.1rem !important;
    padding-bottom: 2.1rem !important;
  }

  html.m3d main > section > .container { padding-inline: 16px !important; }

  /* --- Titres de section : pastille + titre serré --- */
  html.m3d main > section .section-title h2,
  html.m3d main > section > .container > .text-center h2 {
    font-size: clamp(1.35rem, 6.2vw, 1.75rem) !important;
    font-weight: 800 !important;
    letter-spacing: -.025em !important;
    line-height: 1.18 !important;
    margin-bottom: .4rem !important;
  }
  html.m3d main > section .section-title p { font-size: .88rem !important; line-height: 1.55; }

  /* --- Toute carte a le même rayon et la même ombre douce --- */
  html.m3d .card,
  html.m3d .service-card-mini,
  html.m3d .pricing-card2,
  html.m3d .info-item,
  html.m3d .stats-card,
  html.m3d .testimonial-card,
  html.m3d .gallery-tile,
  html.m3d .faq-item,
  html.m3d .glass-effect,
  html.m3d #appointment .rounded-4 {
    border-radius: 22px !important;
    box-shadow: 0 1px 2px rgba(6, 60, 38, .04), 0 10px 26px -18px rgba(6, 60, 38, .5) !important;
  }

  /* --- Zones tactiles confortables (44px minimum) --- */
  html.m3d .btn,
  html.m3d .quick-btn,
  html.m3d .form-control,
  html.m3d .form-select {
    min-height: 46px;
    border-radius: 16px !important;
    font-size: .95rem !important;
  }
  html.m3d .btn.btn-sm { min-height: 40px; }
  html.m3d .form-control,
  html.m3d .form-select {
    border: 1px solid rgba(16, 185, 129, .18) !important;
    background: #ffffff !important;
    padding-inline: 1rem !important;
  }

  /* --- Effet de pression (retour tactile façon Material) --- */
  html.m3d .btn,
  html.m3d .quick-btn,
  html.m3d .service-tile,
  html.m3d .gallery-tile,
  html.m3d .ins-card,
  html.m3d .mu-dock-item {
    -webkit-tap-highlight-color: transparent;
    transition: transform .18s var(--mu-ease), box-shadow .18s var(--mu-ease), background-color .18s var(--mu-ease);
  }
  html.m3d .btn:active,
  html.m3d .quick-btn:active,
  html.m3d .service-tile:active,
  html.m3d .gallery-tile:active,
  html.m3d .ins-card:active { transform: scale(.965); }

  /* --- Accès rapides : rangée défilante de pastilles --- */
  .mobile-quick-actions {
    display: flex !important;
    grid-template-columns: none !important;
    gap: .5rem !important;
    margin: .7rem 0 1rem !important;
    padding: .15rem 16px .35rem !important;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .mobile-quick-actions::-webkit-scrollbar { display: none; }
  .mobile-quick-actions .quick-btn {
    flex: 0 0 auto;
    scroll-snap-align: start;
    padding: .55rem .9rem .55rem .55rem !important;
    border-radius: 999px !important;
    font-size: .8rem !important;
    box-shadow: 0 10px 20px -16px rgba(5, 150, 105, .8) !important;
  }
  .mobile-quick-actions .quick-btn i { width: 28px; height: 28px; font-size: .85rem; }

  /* --- Carrousels : défilement par à-coups (snap) --- */
  html.m3d .swiper-wrapper { scroll-snap-type: x mandatory; }
  html.m3d .swiper-slide { scroll-snap-align: center; }

  /* --- Services : cartes plus généreuses --- */
  html.m3d #featured-services .service-card-mini { padding: 1rem .7rem !important; }
  html.m3d #featured-services .service-card-mini .icon-wrap {
    width: 46px !important;
    height: 46px !important;
    border-radius: 16px !important;
  }
  html.m3d #featured-services .service-card-mini h6 { font-size: .87rem !important; margin-top: .55rem; }
  html.m3d #featured-services .service-card-mini p { font-size: .72rem !important; }

  /* --- Statistiques : tuiles app --- */
  html.m3d #stats .stats-card { border-radius: 22px !important; }

  /* --- Formulaire de rendez-vous : champs empilés lisibles --- */
  html.m3d #appointment .form-label { font-size: .82rem !important; margin-bottom: .3rem; }

  /* --- Pied de page : coins arrondis façon feuille --- */
  html.m3d #footer.footer { border-radius: 28px 28px 0 0; }

  /* --- Place pour la barre d'onglets --- */
  html.mu-has-dock body { padding-bottom: calc(var(--mu-dock-h) + 20px + env(safe-area-inset-bottom, 0px)); }

  /* WhatsApp, chat et « haut de page » vivent maintenant dans la barre */
  html.mu-has-dock .whatsapp-floating-btn,
  html.mu-has-dock .maya-chatbot .chatbot-toggle,
  html.mu-has-dock .scroll-top { display: none !important; }

  /* L'assistant s'ouvre en panneau juste au-dessus de la barre */
  html.mu-has-dock .maya-chatbot {
    left: 10px !important;
    right: 10px !important;
    bottom: calc(var(--mu-dock-h) + 22px + env(safe-area-inset-bottom, 0px)) !important;
    z-index: 1045;
  }
  html.mu-has-dock.mu-dock-hidden .maya-chatbot { bottom: calc(10px + env(safe-area-inset-bottom, 0px)) !important; }
  html.mu-has-dock .maya-chatbot .chatbot-panel {
    left: 0;
    right: 0;
    bottom: 0;
    width: auto;
    max-width: none;
    border-radius: 26px;
    transform: translateY(18px) scale(.97);
    transform-origin: 85% 100%;
    transition: transform .35s var(--mu-ease), opacity .25s var(--mu-ease);
    box-shadow: 0 30px 60px -24px rgba(2, 20, 14, .7), 0 0 0 1px rgba(16, 185, 129, .12);
  }
  html.mu-has-dock .maya-chatbot .chatbot-panel.open { transform: none; }
  html.mu-has-dock .maya-chatbot .chatbot-header {
    padding: 14px 16px;
    background: linear-gradient(140deg, #06402a, #0b7a4b) !important;
  }
  html.mu-has-dock .maya-chatbot .chatbot-header h6,
  html.mu-has-dock .maya-chatbot .chatbot-header small,
  html.mu-has-dock .maya-chatbot .chatbot-close { color: #ffffff !important; }
  html.mu-has-dock .maya-chatbot .chatbot-header h6 { font-size: 1rem !important; font-weight: 800 !important; }
  html.mu-has-dock .maya-chatbot .chatbot-header small { opacity: .8; }
  html.mu-has-dock .maya-chatbot .chatbot-messages { max-height: min(340px, calc(100dvh - 440px)); min-height: 120px; }
}

/* ============================================================
   3. BARRE D'ONGLETS MOBILE (façon application)
   ============================================================ */

.mu-dock {
  position: fixed;
  left: 50%;
  bottom: max(10px, env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  width: min(440px, calc(100vw - 20px));
  z-index: 1040;
  display: none;
  align-items: flex-end;
  justify-content: space-between;
  padding: .5rem .35rem .45rem;
  border-radius: 28px;
  background: linear-gradient(165deg, rgba(9, 70, 51, .95) 0%, rgba(4, 35, 26, .97) 100%);
  border: 1px solid rgba(167, 243, 208, .16);
  backdrop-filter: blur(22px) saturate(1.6);
  -webkit-backdrop-filter: blur(22px) saturate(1.6);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .1),
    0 22px 44px -18px rgba(2, 20, 14, .8),
    0 6px 14px -8px rgba(2, 20, 14, .5);
  transition: transform .45s var(--mu-ease), opacity .3s var(--mu-ease);
}

/* Reflet discret sur le haut de la barre */
.mu-dock::before {
  content: "";
  position: absolute;
  inset: 0 0 50% 0;
  border-radius: 28px 28px 0 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, .07), transparent);
  pointer-events: none;
}

@media (max-width: 767.98px) {
  .mu-dock { display: flex; }
}

.mu-dock.is-hidden {
  transform: translateX(-50%) translateY(140%);
  opacity: 0;
  pointer-events: none;
}

/* Pastille lumineuse qui glisse sous l'onglet actif */
.mu-dock-pill {
  position: absolute;
  left: 0;
  top: 0;
  width: 54px;
  height: 32px;
  border-radius: 999px;
  background: linear-gradient(135deg, #bbf7d0, #34d399);
  box-shadow: 0 8px 18px -8px rgba(52, 211, 153, .95);
  opacity: 0;
  z-index: 0;
  pointer-events: none;
  transition: transform .5s var(--mu-ease), opacity .3s var(--mu-ease);
}

.mu-dock-item,
.mu-dock-center {
  position: relative;
  z-index: 1;
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .22rem;
  padding: 0;
  border: 0;
  background: none;
  text-decoration: none;
  color: rgba(209, 250, 229, .62);
  font-family: inherit;
  -webkit-tap-highlight-color: transparent;
  transition: color .3s var(--mu-ease), transform .18s var(--mu-ease);
}
.mu-dock-item:active,
.mu-dock-center:active { transform: scale(.92); }

.mu-dock-ic {
  position: relative;
  width: 54px;
  height: 32px;
  display: grid;
  place-items: center;
}
.mu-dock-ic i {
  font-size: 1.16rem;
  line-height: 1;
  transition: color .3s var(--mu-ease), transform .4s var(--mu-ease);
}

.mu-dock-lb {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .01em;
}

.mu-dock-item.is-active { color: #ffffff; }
.mu-dock-item.is-active .mu-dock-ic i { color: #04231a; transform: scale(1.05); }

/* WhatsApp : couleur de la marque + point « en ligne » qui pulse */
.mu-dock-wa .mu-dock-ic i { color: #4ade80; }
.mu-dock-dot {
  position: absolute;
  top: 4px;
  right: 13px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #4ade80;
  border: 2px solid #063528;
}
.mu-dock-wa .mu-dock-dot::after {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 2px solid #4ade80;
  animation: mu-dot-pulse 2.2s ease-out infinite;
}
.mu-dock-chat .mu-dock-dot { background: #fbbf24; }
.mu-dock-chat.is-active .mu-dock-dot { display: none; }

@keyframes mu-dot-pulse {
  0%   { transform: scale(1); opacity: .9; }
  100% { transform: scale(2.4); opacity: 0; }
}

/* Bouton central : prendre rendez-vous */
.mu-dock-center { flex: 0 0 68px; margin-top: -30px; }
.mu-dock-fab {
  position: relative;
  width: 60px;
  height: 60px;
  border-radius: 22px;
  display: grid;
  place-items: center;
  color: #ffffff;
  background: linear-gradient(145deg, #6ee7b7 0%, #10b981 50%, #047857 100%);
  border: 4px solid #063528;
  box-shadow:
    0 14px 26px -10px rgba(16, 185, 129, .9),
    0 0 0 1px rgba(167, 243, 208, .3);
  transition: transform .4s var(--mu-ease), box-shadow .4s var(--mu-ease);
}
.mu-dock-fab i { font-size: 1.42rem; }
.mu-dock-fab::after {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 24px;
  box-shadow: 0 0 0 0 rgba(52, 211, 153, .55);
  animation: mu-fab-pulse 2.8s ease-out infinite;
  pointer-events: none;
}
.mu-dock-center .mu-dock-lb { color: #a7f3d0; font-weight: 700; }
.mu-dock-center.is-active .mu-dock-fab {
  transform: translateY(-3px) rotate(-6deg);
  box-shadow: 0 18px 30px -10px rgba(52, 211, 153, 1), 0 0 0 1px rgba(167, 243, 208, .5);
}
.mu-dock-center.is-active .mu-dock-lb { color: #ffffff; }

@keyframes mu-fab-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(52, 211, 153, .5); }
  70%  { box-shadow: 0 0 0 16px rgba(52, 211, 153, 0); }
  100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0); }
}

@media (max-width: 359.98px) {
  .mu-dock-ic { width: 46px; }
  .mu-dock-pill { width: 46px; }
  .mu-dock-lb { font-size: .56rem; }
  .mu-dock-center { flex-basis: 60px; }
  .mu-dock-fab { width: 54px; height: 54px; border-radius: 20px; }
}

/* Onde au toucher (façon Material) */
.mu-ripple {
  position: absolute;
  border-radius: 50%;
  transform: scale(0);
  background: rgba(16, 185, 129, .28);
  pointer-events: none;
  animation: mu-ripple-out .6s var(--mu-ease) forwards;
}

@keyframes mu-ripple-out {
  to { transform: scale(2.6); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  #insurance-partners .ins-aurora,
  #insurance-partners .ins-card::after,
  .mu-dock-wa .mu-dock-dot::after,
  .mu-dock-fab::after { animation: none !important; }
  .mu-ripple { display: none; }
}

/* ============================================================
   4. Bandeau « Installer l'application » : version compacte,
      posée au-dessus de la barre d'onglets (et non par-dessus).
   ============================================================ */
@media (max-width: 767.98px) {
  html.mu-has-dock #maya-install-banner {
    left: 12px !important;
    right: 12px !important;
    bottom: calc(var(--mu-dock-h) + 12px + env(safe-area-inset-bottom, 0px)) !important;
    padding: .55rem .65rem !important;
    gap: .5rem !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 34px -20px rgba(4, 38, 25, .9) !important;
  }
  /* Une seule ligne : titre + astuce courte, boutons à droite
     (le script PWA pose ses styles en ligne : il faut !important) */
  html.mu-has-dock #maya-install-banner {
    flex-wrap: nowrap !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: .55rem !important;
  }
  html.mu-has-dock #maya-install-banner > div:last-child {
    width: auto !important;
    flex: 0 0 auto !important;
    justify-content: flex-end !important;
  }
  html.mu-has-dock #maya-install-banner > div:last-child button:first-child {
    flex: 0 0 auto !important;
    min-height: 38px !important;
  }
  html.mu-has-dock #maya-install-banner > div:last-child button:last-child {
    width: 34px !important;
    height: 34px !important;
    font-size: 18px !important;
  }
  html.mu-has-dock #maya-install-banner > div:first-child {
    font-size: 11.5px !important;
    min-width: 0;
    flex: 1 1 auto;
  }
  html.mu-has-dock #maya-install-banner > div:first-child > span,
  html.mu-has-dock #maya-install-banner > div:first-child > br { display: none !important; }
  html.mu-has-dock #maya-install-banner > div:first-child > div {
    font-size: 10.5px !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  html.mu-has-dock #maya-install-banner button { flex: 0 0 auto; white-space: nowrap; }
  html.mu-has-dock #maya-install-banner > div:last-child button:first-child {
    padding: .45rem .75rem !important;
    font-size: 12px !important;
  }
}

/* ============================================================
   5. Fenêtre « Toutes les assurances » : même soin que la section
   ============================================================ */
html.m3d #insuranceModal .insurance-modal-content {
  border-radius: 26px;
  border: 1px solid rgba(16, 185, 129, .18);
}
html.m3d #insuranceModal .insurance-modal-title { font-size: 1.02rem; }

html.m3d #insuranceModal .insurance-modal-body .insurance-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}
@media (min-width: 576px) {
  html.m3d #insuranceModal .insurance-modal-body .insurance-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
  html.m3d #insuranceModal .insurance-modal-body .insurance-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem; }
}

html.m3d #insuranceModal .insurance-modal-body .insurance-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 150px;
  padding: 1rem .7rem !important;
  border-radius: 20px;
  border: 1px solid rgba(16, 185, 129, .16);
  background: linear-gradient(168deg, #ffffff 0%, #f1fdf7 100%);
  box-shadow: 0 14px 30px -24px rgba(6, 95, 70, .7);
}

html.m3d #insuranceModal .insurance-modal-body .insurance-logo {
  height: 52px;
  max-width: 100%;
  object-fit: contain;
  margin: 0 !important;
}
html.m3d #insuranceModal .insurance-modal-body .insurance-logo-fallback {
  width: 52px;
  height: 52px;
  border-radius: 16px;
  font-size: .9rem;
  margin: 0 !important;
}
html.m3d #insuranceModal .insurance-modal-body .insurance-card h6 {
  font-size: .82rem;
  line-height: 1.3;
  margin: 0 !important;
  color: #0a5936;
  text-wrap: balance;
}
html.m3d #insuranceModal .insurance-modal-body .insurance-card p {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: .72rem;
  margin: 0 !important;
}

@media (max-width: 767.98px) {
  html.m3d #insuranceModal .insurance-modal-body .insurance-card { min-height: 138px; }
  html.m3d #insuranceModal .insurance-modal-body .insurance-card p { display: none; }
  html.m3d #insuranceModal .insurance-modal-body .insurance-logo { height: 46px; }
  html.m3d #insuranceModal .insurance-modal-body .insurance-logo-fallback { width: 46px; height: 46px; border-radius: 14px; font-size: .82rem; }
  html.m3d #insuranceModal .insurance-modal-body .insurance-card h6 { font-size: .78rem; }
}

/* Pastille verte pour les assurances sans logo (fenêtre « Voir tout ») */
html.m3d #insuranceModal .insurance-modal-body .insurance-logo-fallback {
  display: flex !important;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-weight: 800;
  letter-spacing: .04em;
  background: linear-gradient(140deg, #059669, #34d399);
  box-shadow: 0 10px 20px -14px rgba(16, 185, 129, .9);
}

/* Les boutons flottants ne passent plus devant les fenêtres ouvertes */
body.modal-open .maya-chatbot,
body.modal-open .whatsapp-floating-btn,
body.modal-open .scroll-top {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .2s ease;
}

/* ============================================================
   6. MOBILE — entrées animées + sections « feuilles » douces
   ============================================================ */

/* Compatibilité avec les anciennes classes d'entrée, désormais inactives. */
html.m3d-mreveal .m3d-rv-pre { opacity: 0; }

/* L'ancienne animation des services laisse la main au nouveau système */
html.m3d-mreveal .animate-on-scroll { opacity: 1; transform: none; }

@media (max-width: 767.98px) {

  /* --- Chaque section devient une feuille arrondie qui chevauche la précédente --- */
  html.m3d main > section:not(#hero):not(#insurance-partners) {
    position: relative;
    margin-top: -28px !important;
    padding-top: calc(2.1rem + 12px) !important;
    border-radius: 32px 32px 0 0;
    box-shadow: 0 -16px 32px -24px rgba(6, 60, 38, .32);
  }
  html.m3d main > #insurance-partners + section { margin-top: 14px !important; }
  html.m3d #footer.footer { margin-top: -28px !important; position: relative; }

  /* Teintes douces en alternance (une image de fond choisie dans l'admin reste prioritaire) */
  html.m3d main > #featured-services,
  html.m3d main > #features,
  html.m3d main > #doctors,
  html.m3d main > #pricing,
  html.m3d main > #contact {
    background: linear-gradient(180deg, #ffffff 0%, #f5fcf8 100%) !important;
  }
  html.m3d main > #about,
  html.m3d main > #appointment,
  html.m3d main > #gallery,
  html.m3d main > #faq {
    background:
      radial-gradient(420px 220px at 100% 0%, rgba(52, 211, 153, .12), transparent 70%),
      linear-gradient(180deg, #eefaf4 0%, #f7fdf9 100%) !important;
  }

  /* Petite poignée en haut de chaque feuille, comme une fiche d'application */
  html.m3d main > section:not(#hero):not(#insurance-partners)::after {
    content: "";
    position: absolute;
    top: 10px;
    left: 50%;
    width: 38px;
    height: 4px;
    margin-left: -19px;
    border-radius: 99px;
    background: rgba(6, 95, 70, .14);
    pointer-events: none;
  }
  html.m3d main > #testimonials::after,
  html.m3d main > #call-to-action::after { background: rgba(255, 255, 255, .22); }

  /* --- Les anciennes « cartes dans la carte » disparaissent : la feuille suffit --- */
  html.m3d #featured-services > .container,
  html.m3d #features > .container,
  html.m3d #gallery > .container {
    border: 0 !important;
    background: none !important;
    box-shadow: none !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  /* --- Espacements resserrés sous les titres --- */
  html.m3d main > section .section-title { padding-bottom: 1.35rem !important; margin-bottom: 0 !important; }
  html.m3d main > section > .container > .text-center.mb-5,
  html.m3d main > section > .container > .mb-5.text-center { margin-bottom: 1.35rem !important; }
  html.m3d main > section .section-title h2::after,
  html.m3d main > section .section-title h2::before { opacity: .9; }

  /* --- Points forts : l'image ne laisse plus un grand vide --- */
  html.m3d #features .features-image { min-height: 0 !important; }
  html.m3d #features .features-image img {
    position: relative !important;
    height: 220px !important;
    max-height: none !important;
    border-radius: 24px !important;
    box-shadow: 0 18px 36px -24px rgba(6, 60, 38, .6);
  }
  html.m3d #features .icon-box {
    padding: .85rem !important;
    margin-top: .7rem !important;
    border-radius: 20px;
    background: #ffffff;
    box-shadow: 0 10px 24px -20px rgba(6, 60, 38, .5);
  }

  /* --- Titres de section : même allure partout --- */
  html.m3d main > section h2 { text-wrap: balance; }
}
