/* Univers Diaspora — charte visuelle (titres éditoriaux + interface premium) */

:root{
  --ud-blue:#1e3a6e;
  --ud-blue-light:#2a5a9e;
  --ud-gold:#d9a04a;
  --ud-gold-soft:#e8c98a;
  --ud-bg:#faf8f3;
  --ud-bg-soft:#f0ebe2;
  --ud-surface:#ffffff;
  --ud-surface-muted:#f4f6fa;
  --ud-ink:#0d1528;
  --ud-ink-muted:rgba(13,21,40,.72);
  --ud-border:rgba(24,40,88,.1);
  --ud-border-strong:rgba(24,40,88,.16);
  --ud-night:#0a1228;
  --ud-admin-bg:#0e1628;
  --ud-radius:22px;
  --ud-radius-sm:15px;
  --ud-radius-xs:12px;
  --ud-shadow:0 24px 64px rgba(12,24,48,.1);
  --ud-shadow-sm:0 8px 28px rgba(12,24,48,.08);
  --ud-shadow-inset: inset 0 1px 0 rgba(255,255,255,.75);
  --ud-font-display:"Fraunces", Georgia, "Times New Roman", serif;
  --ud-font-body:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
  /* Aligner Bootstrap sur la charte */
  --bs-primary: #1e3a6e;
  --bs-primary-rgb: 30, 58, 110;
  --bs-link-color: #1e3a6e;
  --bs-link-hover-color: #152d52;
}

.ud-body{
  background:
    radial-gradient(1200px 520px at 88% 0%, rgba(218,155,72,.09), transparent 55%),
    radial-gradient(900px 400px at 0% 20%, rgba(30,58,110,.04), transparent 50%),
    linear-gradient(188deg, var(--ud-bg-soft) 0%, #fffcf7 38%, #f5f0e6 100%);
  color:var(--ud-ink);
  font-family: var(--ud-font-body);
  font-size: 1.04rem;
  line-height: 1.64;
  letter-spacing: 0.01em;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6,
.ud-title,
.ud-hero__headline,
.ud-brand__name,
.ud-section-kicker,
.ud-footer__brand,
.ud-footer__heading{
  font-family: var(--ud-font-display);
}

.ud-navlink,
.ud-dropdown .dropdown-item,
.ud-mobile-list .list-group-item,
.ud-offcanvas__title{
  font-family: var(--ud-font-body);
}

html{
  overflow-x: hidden;
}
@media (prefers-reduced-motion: no-preference){
  html{
    scroll-behavior: smooth;
  }
}

/* Accessibility: reduce motion for users who prefer less animation. */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  .ud-reveal,
  .ud-service-card.ud-reveal,
  .ud-service-card.ud-reveal.is-inview{
    transform: none !important;
  }
  .ud-btn--shine::after{
    animation: none !important;
  }
}

/* Accessibility: visible keyboard focus */
:focus-visible{
  outline: 3px solid rgba(218,155,72,.60);
  outline-offset: 2px;
}

.ud-hp{
  position:absolute;
  left:-10000px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}

.ud-topbar{
  background: rgba(255,255,255,.92);
  border-bottom:1px solid var(--ud-border);
  position: sticky;
  top:0;
  z-index: 1030;
  overflow: visible;
  backdrop-filter: saturate(1.2) blur(16px);
  -webkit-backdrop-filter: saturate(1.2) blur(16px);
  box-shadow: var(--ud-shadow-inset);
}

.ud-navbar{
  transition: background-color .18s ease, box-shadow .18s ease, border-color .18s ease, transform .18s ease;
}

/* Home: navbar glass over hero, becomes solid on scroll */
.ud-home .ud-topbar{
  background: rgba(255,255,255,.55);
  border-bottom-color: rgba(255,255,255,.25);
}
.ud-home .ud-topbar:not(.ud-scrolled){
  box-shadow: none;
}
.ud-topbar.ud-scrolled{
  background: rgba(255,255,255,.97);
  border-bottom-color: var(--ud-border);
  box-shadow: 0 4px 24px rgba(12,24,48,.08), 0 1px 0 rgba(255,255,255,.8) inset;
}

.ud-brand__logo{
  border-radius:12px;
  object-fit:cover;
  box-shadow: 0 8px 22px rgba(24,40,88,.15);
}

.ud-brand__name{
  font-weight:800;
  color: var(--ud-blue);
  letter-spacing:.02em;
}

.ud-toggler{
  border: 1px solid rgba(24,40,88,.22);
  border-radius: 12px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 4px 14px rgba(12,24,48,.10);
  padding: .42rem .52rem;
  position: relative;
  z-index: 2;
  touch-action: manipulation;
}
.ud-toggler:focus-visible{
  box-shadow: 0 0 0 3px rgba(218,155,72,.45), 0 4px 14px rgba(12,24,48,.10);
}
.ud-toggler .navbar-toggler-icon{
  width: 1.2rem;
  height: 1.2rem;
}
.ud-home .ud-topbar:not(.ud-scrolled) .ud-toggler{
  background: rgba(255,255,255,.92);
  border-color: rgba(24,40,88,.28);
}

.ud-navlink{
  font-weight: 800;
  color: rgba(10,24,52,.82) !important;
  padding: .5rem .75rem !important;
  border-radius: 999px;
}
.ud-navlink:hover{
  background: rgba(24,40,88,.06);
}
.ud-navlink.active{
  background: rgba(24,40,88,.10);
  color: var(--ud-blue) !important;
}

.ud-nav-cta{
  font-weight: 800;
  border-radius: 999px;
  padding: .55rem .9rem;
  box-shadow: 0 14px 34px rgba(24,40,88,.22);
  background: linear-gradient(152deg, var(--ud-blue) 0%, var(--ud-blue-light) 100%) !important;
  border: none !important;
  color: #fff !important;
}
.ud-nav-cta:hover,
.ud-nav-cta:focus-visible{
  background: linear-gradient(152deg, #152d52 0%, #1e3a6e 100%) !important;
  color: #fff !important;
}
.ud-nav-cta--ghost{
  box-shadow: none;
  border-color: rgba(24,40,88,.30);
}

.ud-dropdown{
  border-radius: 16px;
  padding: .5rem;
  border: 1px solid rgba(24,40,88,.12);
  box-shadow: 0 22px 70px rgba(18,32,58,.18);
  min-width: min(420px, 92vw);
}
.ud-dropdown .dropdown-item{
  border-radius: 12px;
  padding: .6rem .7rem;
  font-weight: 800;
  color: rgba(10,24,52,.86);
}
.ud-dropdown .dropdown-item:hover{
  background: rgba(24,40,88,.06);
}
.ud-dropdown .dropdown-item.active{
  background: rgba(24,40,88,.10);
  color: var(--ud-blue);
}
.ud-dd-icon{
  border-radius: 8px;
  background: rgba(24,40,88,.04);
  padding: 2px;
}
.ud-dd-pill{
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: .22rem .45rem;
  border-radius: 999px;
  color: rgba(90,74,29,.95);
  background: rgba(218,155,72,.25);
  border: 1px solid rgba(218,155,72,.55);
}

/* Menu mobile (offcanvas) — garde le comportement Bootstrap d’origine + correctif au-dessus du widget IA */
.offcanvas-backdrop.show{
  z-index: 1200 !important;
}
.offcanvas.show:not(.ud-admin-offcanvas){
  z-index: 1210 !important;
}
#udOffcanvas.ud-mobile-offcanvas{
  width: min(100vw - 1.25rem, 22.5rem);
  max-width: 100%;
  border-left: 1px solid rgba(24,40,88,.10);
  box-shadow: -12px 0 40px rgba(8,16,36,.18);
  background: #fff;
  height: 100%;
  max-height: 100vh;
  max-height: 100dvh;
  display: flex;
  flex-direction: column;
}
#udOffcanvas .offcanvas-header{
  flex-shrink: 0;
  padding: 1rem 1rem .85rem;
  border-bottom: 1px solid rgba(24,40,88,.08);
}
#udOffcanvas .offcanvas-body{
  flex: 1 1 auto;
  min-height: 0;
  padding: 1rem;
  padding-bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
#udOffcanvas .offcanvas-body a{
  position: relative;
  z-index: 1;
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(24,40,88,.12);
}
body:has(.offcanvas.show:not(.ud-admin-offcanvas)) .ud-ai-chat{
  display: none !important;
}

.ud-mobile-actions .ud-nav-cta{
  border-radius: 14px;
}
.ud-mobile-list .list-group-item{
  border: 0;
  padding: .7rem .35rem;
  font-weight: 800;
  color: rgba(10,24,52,.88);
  border-radius: 10px;
}
.ud-mobile-list .list-group-item:hover,
.ud-mobile-list .list-group-item:focus-visible{
  background: rgba(24,40,88,.06);
  color: var(--ud-blue);
}
.ud-mobile-list .list-group-item.active{
  background: rgba(24,40,88,.10);
  color: var(--ud-blue);
}
.ud-mobile-list__label{
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(24,40,88,.55);
}

.ud-offcanvas__title{
  font-weight: 900;
  color: var(--ud-blue);
  line-height: 1.1;
}
.ud-offcanvas__subtitle{
  font-size: .85rem;
  color: rgba(24,40,88,.65);
}
.ud-divider{
  height: 1px;
  background: rgba(18,32,58,.10);
}

.ud-nav__scroll{
  display:flex;
  flex-wrap:nowrap;
  overflow:auto;
  gap:.5rem;
  padding-bottom:.25rem;
}

.ud-nav .nav-link{
  white-space:nowrap;
  color:var(--ud-blue);
  font-weight:700;
  padding:.35rem .6rem;
  border-radius:999px;
}
.ud-nav .nav-link:hover{
  background:rgba(24,40,88,.06);
}
.ud-nav .nav-link.active{
  background:rgba(24,40,88,.12);
  color:var(--ud-blue);
}

.ud-hero-wrap{
  position: relative;
  overflow: hidden;
  background-image:
    linear-gradient(180deg, rgba(10,24,52,.30), rgba(10,24,52,.12)),
    var(--ud-hero-bg, url("../img/arriereplan.png"));
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.ud-hero-wrap--minimal{
  background: linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,255,255,.68));
}
.ud-hero-wrap--video-clean{
  background: transparent;
}

/* =============================================================================
   Globe 3D animé sur TOUTE la page d'accueil (Univers Diaspora)
   --------------------------------------------------------------------
   Architecture simple :
     • body.ud-home : peint un dégradé cosmique sombre comme base
     • canvas      : position:fixed, z-index:0 → couvre le viewport en
                     permanence pendant le scroll
     • <main>      : z-index 1 → tout le contenu au-dessus du canvas
     • <footer>    : z-index 2 → recouvre le canvas quand on arrive en bas
     • AI chat     : z-index 1080 (déjà géré, au-dessus de tout)
   ============================================================================= */

/* Fond cosmique global appliqué à TOUTES les pages publiques (mode cosmos).
   Active dès que le <body> porte la classe .ud-cosmos (mise par _layout.php). */
body.ud-body.ud-cosmos{
  background:
    radial-gradient(1400px 700px at 80% 0%, rgba(218,160,72,.07), transparent 60%),
    radial-gradient(1200px 600px at 20% 100%, rgba(40,80,160,.16), transparent 55%),
    linear-gradient(180deg, #081024 0%, #050818 50%, #081024 100%) !important;
  /* On NE MET PAS color blanc global ici : ça casserait les formulaires
     qui sont sur fond clair. Les couleurs blanches sont appliquées
     ciblées plus bas (titres, sous-titres, témoignages, etc.). */
}

/* Canvas plein écran, FIXE pendant le scroll. */
.ud-hero-globe--full{
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100vh;
  display: block;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  animation: ud-hero-globe-fade 1.6s ease-out 0.2s forwards;
}
@keyframes ud-hero-globe-fade{
  from { opacity: 0; }
  to   { opacity: 0.85; }
}

/* Le contenu (tout sauf canvas + footer) passe au-dessus du canvas.
   La topbar garde son propre z-index (1030 dans .ud-topbar) qui prime déjà. */
body.ud-cosmos > main{
  position: relative;
  z-index: 1;
}
body.ud-cosmos > footer{
  position: relative;
  z-index: 2;          /* recouvre le canvas quand le scroll y arrive */
}

.ud-cosmos-page{
  position: relative;
  background: transparent;       /* le globe (canvas) est visible derrière */
}

/* Garde-fou : les formulaires gardent leur typo en sombre lisible */
.ud-cosmos-page .ud-form,
.ud-cosmos-page .ud-form .form-label,
.ud-cosmos-page .ud-form .form-control,
.ud-cosmos-page .ud-form .form-check-label,
.ud-cosmos-page .ud-form .form-check-label a,
.ud-cosmos-page .ud-form-reassure,
.ud-cosmos-page .ud-form-next,
.ud-cosmos-page .ud-form__title,
.ud-cosmos-page .ud-form__subtitle{
  color: var(--ud-ink, #0d1528);
}
.ud-cosmos-page .ud-form .form-check-label a{ color: var(--ud-blue, #182858); }
.ud-cosmos-page .ud-form-next{ color: rgba(13,21,40,.66); }
.ud-cosmos-page .ud-form-reassure{ color: rgba(24,40,88,.75); }
.ud-cosmos-page .ud-form__subtitle{ color: rgba(13,21,40,.62); }

/* ------- Hero spécifique ---------------------------------------------------- */
.ud-hero-wrap--cosmos{
  background: transparent;
  isolation: isolate;
}
.ud-hero-wrap--cosmos::before{
  background:
    radial-gradient(900px 420px at 14% 18%, rgba(218,155,72,.10), transparent 58%),
    radial-gradient(900px 420px at 86% 26%, rgba(24,40,88,.16), transparent 62%),
    linear-gradient(175deg, rgba(8,18,42,.18), rgba(8,18,42,.05));
}
.ud-hero-wrap.ud-hero-wrap--cosmos > .ud-hero,
.ud-hero-wrap.ud-hero-wrap--cosmos > .ud-hero-images{
  position: relative;
  z-index: 2;
}
.ud-hero-wrap.ud-hero-wrap--cosmos > .container{
  position: relative;
  z-index: 2;
}
.ud-hero-wrap.ud-hero-wrap--cosmos::before{ z-index: 1; }

/* Pastille pulsante du badge (rappel des arcs du globe) -------------------- */
.ud-hero__badge{ position: relative; }
.ud-hero__badge-dot{
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--ud-gold, #d9a04a);
  box-shadow: 0 0 0 0 rgba(218,160,72, .65);
  margin-right: .55rem;
  vertical-align: middle;
  animation: ud-hero-pulse 1.8s ease-out infinite;
}
@keyframes ud-hero-pulse{
  0%   { box-shadow: 0 0 0 0   rgba(218,160,72, .65); transform: scale(1); }
  70%  { box-shadow: 0 0 0 10px rgba(218,160,72, 0);   transform: scale(1.1); }
  100% { box-shadow: 0 0 0 0   rgba(218,160,72, 0);   transform: scale(1); }
}

/* =============================================================================
   Sections en mode cosmos : transparence + voile sombre + textes clairs
   ============================================================================= */

/* Toutes les sections > section deviennent transparentes ------------------- */
.ud-cosmos-page .ud-services,
.ud-cosmos-page .ud-services--premium,
.ud-cosmos-page .ud-trust,
.ud-cosmos-page .ud-contact{
  background: transparent !important;
}

/* Voile de respiration entre les sections — laisse poindre le globe -------- */
.ud-cosmos-page .ud-services::after,
.ud-cosmos-page .ud-trust::after,
.ud-cosmos-page .ud-contact::after{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 360px at 15% 0%, rgba(218,160,72,.06), transparent 60%),
    radial-gradient(900px 360px at 85% 100%, rgba(40,80,160,.10), transparent 55%);
  pointer-events: none;
  z-index: 0;
  opacity: .7;
}
.ud-cosmos-page .ud-services > *,
.ud-cosmos-page .ud-trust > *,
.ud-cosmos-page .ud-contact > *{ position: relative; z-index: 1; }

/* Les anciens halos décoratifs des services peuvent gêner ------------------ */
.ud-cosmos-page .ud-services::before{ display: none; }

/* Titres / sous-titres lisibles sur fond cosmique -------------------------- */
.ud-cosmos-page .ud-title{ color: #fff !important; }
.ud-cosmos-page .ud-subtitle{ color: rgba(255,255,255,.78) !important; }
.ud-cosmos-page .ud-section-divider{ opacity: .9; }
.ud-cosmos-page .ud-section-kicker{
  color: rgba(255,235,200,.95);
  background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(218,155,72,.18));
  border-color: rgba(218,155,72,.5);
}

/* Exception : si un .ud-section-title est posé DANS une carte claire opaque
   (ex. .ud-appt-card sur la page Rendez-vous, .ud-about-card, etc.), on
   restaure les couleurs sombres d'origine — sinon le titre devient blanc
   sur blanc et n'est plus lisible. */
.ud-cosmos-page .ud-surface .ud-section-title .ud-title,
.ud-cosmos-page .ud-appt-card .ud-section-title .ud-title,
.ud-cosmos-page .ud-about-card .ud-section-title .ud-title{
  color: var(--ud-blue) !important;
  text-shadow: none !important;
}
.ud-cosmos-page .ud-surface .ud-section-title .ud-subtitle,
.ud-cosmos-page .ud-appt-card .ud-section-title .ud-subtitle,
.ud-cosmos-page .ud-about-card .ud-section-title .ud-subtitle{
  color: var(--ud-ink-muted) !important;
}
.ud-cosmos-page .ud-surface .ud-section-title .ud-section-kicker,
.ud-cosmos-page .ud-appt-card .ud-section-title .ud-section-kicker,
.ud-cosmos-page .ud-about-card .ud-section-title .ud-section-kicker{
  color: rgba(20,32,64,.9);
  background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(218,155,72,.2));
  border-color: rgba(218,155,72,.4);
}
.ud-cosmos-page .ud-surface .ud-section-title .small.text-muted,
.ud-cosmos-page .ud-surface .ud-section-title .text-muted,
.ud-cosmos-page .ud-appt-card .ud-section-title .text-muted{
  color: rgba(18,32,58,.62) !important;
}

/* ------- Carrousel de services (cards en glassmorphisme) ------------------- */
.ud-cosmos-page .ud-svc-card{
  background: linear-gradient(165deg, rgba(255,255,255,.96) 0%, rgba(248,242,228,.92) 100%);
  border-color: rgba(255,255,255,.5);
  box-shadow: 0 24px 56px rgba(4,8,22,.45);
}
.ud-cosmos-page .ud-services-rail::before,
.ud-cosmos-page .ud-services-rail::after{ display: none; }
.ud-cosmos-page .ud-services-control{
  background: rgba(255,255,255,.96);
  border-color: rgba(255,255,255,.4);
  color: var(--ud-blue, #182858);
}
.ud-cosmos-page .ud-services-tab{
  color: rgba(255,255,255,.78);
}
.ud-cosmos-page .ud-services-tab:hover,
.ud-cosmos-page .ud-services-tab:focus-visible{
  background: rgba(255,255,255,.08);
  color: #fff;
}
.ud-cosmos-page .ud-services-toolbar{
  background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(218,155,72,.10));
  border-color: rgba(255,255,255,.18);
  box-shadow: 0 8px 26px rgba(4,8,22,.35);
}
.ud-cosmos-page .ud-services-tab__count{
  background: rgba(255,255,255,.18);
  color: rgba(255,255,255,.88);
}
.ud-cosmos-page .ud-services-foot__hint{
  color: rgba(255,255,255,.7);
}

/* ------- Témoignages : verre dépoli sur fond sombre ------------------------ */
.ud-cosmos-page .ud-trust-band span{
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.18);
  color: rgba(255,235,200,.92);
}
.ud-cosmos-page .ud-testimonial{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 18px 42px rgba(4,8,22,.4);
}
.ud-cosmos-page .ud-testimonial__text{ color: rgba(255,255,255,.92); }
.ud-cosmos-page .ud-testimonial__case{ color: rgba(255,235,200,.78); }
.ud-cosmos-page .ud-testimonial__meta{ color: rgba(255,235,200,.55); }

/* ------- Section Contact (accueil) : formulaire en glassmorphisme + accents
   clairs. NB : on scope au #contact pour ne PAS transformer les .ud-surface
   des autres pages (À propos, RDV, Démarrer, etc.) qui contiennent du texte
   sombre et doivent rester en cartes claires opaques. */
.ud-cosmos-page #contact .ud-form{
  background: linear-gradient(165deg, rgba(255,255,255,.95) 0%, rgba(255,255,255,.88) 100%);
  border-color: rgba(255,255,255,.4);
  box-shadow: 0 28px 60px rgba(4,8,22,.45);
}
.ud-cosmos-page #contact .ud-surface{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: rgba(255,255,255,.92);
}
.ud-cosmos-page #contact .ud-contact-card__title,
.ud-cosmos-page #contact .ud-cta-box__title{ color: #fff; }
.ud-cosmos-page #contact .ud-contact-card__subtitle{
  color: rgba(255,235,200,.85);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .72rem;
  font-weight: 800;
}
.ud-cosmos-page #contact .ud-contact-mini__label,
.ud-cosmos-page #contact .ud-cta-box__hint{ color: rgba(255,255,255,.6); }
.ud-cosmos-page #contact .ud-contact-mini__value,
.ud-cosmos-page #contact .ud-contact-mini__value a{ color: #fff; }
.ud-cosmos-page #contact .ud-contact-mini__value a:hover{ color: var(--ud-gold, #d9a04a); }

/* Cartes « Nos bureaux » : fond clair opaque — ne PAS appliquer du texte blanc
   (sinon illisible sur le dégradé clair des .ud-location). */
.ud-cosmos-page #contact .ud-location{
  background:
    radial-gradient(220px 120px at 15% 20%, rgba(218,155,72,.14), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.97), rgba(252,250,245,.94));
  border-color: rgba(255,255,255,.42);
  box-shadow: 0 14px 38px rgba(4,8,22,.22);
}
.ud-cosmos-page #contact .ud-location__addr{
  color: rgba(10,24,52,.94);
}
.ud-cosmos-page #contact .ud-location__row{
  border-top-color: rgba(24,40,88,.14);
}
.ud-cosmos-page #contact .ud-location__row span{
  color: rgba(24,40,88,.62);
}
.ud-cosmos-page #contact .ud-location__row strong{
  color: rgba(10,24,52,.94);
}
.ud-cosmos-page #contact .ud-cta-box__text{ color: rgba(255,255,255,.78); }
.ud-cosmos-page #contact .ud-map-card{ background: rgba(255,255,255,.96); }

/* Bandeau du carrousel : empêche le mask de couper le globe */
.ud-cosmos-page .ud-services-rail{
  -webkit-mask-image: none;
          mask-image: none;
}

/* =============================================================================
   Mode cosmos GLOBAL : applique le globe + le thème sombre à TOUTES les pages
   du site (services, RDV, démarrer, à propos, mentions légales, etc.).
   ============================================================================= */

/* Wrappers de pages : on les rend transparents pour laisser passer le globe.
   Les vraies cartes/formulaires conservent leur fond clair (glass) à l'intérieur. */
body.ud-cosmos .ud-page-body,
body.ud-cosmos .ud-service-body,
body.ud-cosmos .ud-service-premium,
body.ud-cosmos .ud-start-hero,
body.ud-cosmos .ud-about-hero,
body.ud-cosmos .ud-appt-hero,
body.ud-cosmos .ud-about-hero-pro,
body.ud-cosmos .ud-about-page,
body.ud-cosmos .ud-about-page--institutional .ud-about-hero-pro,
body.ud-cosmos .ud-about-body,
body.ud-cosmos .ud-admin-wrap{
  background: transparent !important;
  border-color: transparent !important;
}

/* Hero secondaire (ex: pages "Démarrer", "Rendez-vous") :
   le titre principal repasse en clair pour rester lisible sur fond cosmique. */
body.ud-cosmos .ud-page-body > .container > .text-center .ud-title,
body.ud-cosmos .ud-page-body .ud-section-kicker,
body.ud-cosmos .ud-start-hero .ud-start-hero__title,
body.ud-cosmos .ud-about-hero .ud-section-title,
body.ud-cosmos .ud-appt-hero .ud-section-title{
  color: #fff !important;
}
body.ud-cosmos .ud-page-body > .container > .text-center .ud-subtitle,
body.ud-cosmos .ud-appt-hero .ud-subtitle,
body.ud-cosmos .ud-start-hero .ud-start-hero__subtitle{
  color: rgba(255,255,255,.78) !important;
}

/* Bandeaux institutionnels (à propos / équipe / mentions / politique) :
   le panneau "À propos" garde son design d'origine (glass sombre + texte blanc)
   qui s'intègre déjà parfaitement au thème cosmique. On renforce juste le
   contraste pour une excellente lisibilité par-dessus le globe. */
body.ud-cosmos .ud-about-hero-pro__panel{
  background: rgba(10,18,42,.62) !important;
  border-color: rgba(255,255,255,.18) !important;
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  box-shadow:
    0 28px 80px rgba(2,6,16,.55),
    inset 0 1px 0 rgba(255,255,255,.16) !important;
}
body.ud-cosmos .ud-about-hero-pro__title,
body.ud-cosmos .ud-about-hero-pro__lead,
body.ud-cosmos .ud-about-hero-pro__meta,
body.ud-cosmos .ud-about-hero-pro__meta li,
body.ud-cosmos .ud-about-hero-pro__meta a{
  color: #fff !important;
}
body.ud-cosmos .ud-about-hero-pro__lead,
body.ud-cosmos .ud-about-hero-pro__meta li{
  color: rgba(255,255,255,.86) !important;
}
body.ud-cosmos .ud-about-hero-pro__meta-label{
  color: rgba(232,201,138,.96) !important;       /* or doux pour les libellés */
  font-weight: 800;
  letter-spacing: .04em;
  margin-right: .25rem;
}
body.ud-cosmos .ud-about-hero-pro__meta a{
  text-decoration: underline;
  text-decoration-color: rgba(232,201,138,.55);
  text-underline-offset: 3px;
}
body.ud-cosmos .ud-about-hero-pro__meta a:hover{
  color: #f1d49a !important;
}
body.ud-cosmos .ud-about-hero-pro__eyebrow{
  color: rgba(232,201,138,.95) !important;
}

/* Pages "À propos" : titres et textes hors cartes (qui apparaissent directement
   sur le fond cosmique) doivent passer en clair pour rester lisibles. */
body.ud-cosmos .ud-about-block-title{
  color: #fff !important;
  text-shadow: 0 2px 16px rgba(0,0,0,.45);
}
body.ud-cosmos .ud-about-intro-text,
body.ud-cosmos .ud-about-footnote{
  color: rgba(255,255,255,.82) !important;
}

/* Fil d'Ariane : visible en clair sur fond cosmique. */
body.ud-cosmos .ud-breadcrumb{
  color: rgba(255,255,255,.78) !important;
}
body.ud-cosmos .ud-breadcrumb a{
  color: rgba(232,201,138,.95) !important;       /* or doux */
}
body.ud-cosmos .ud-breadcrumb a:hover{
  color: #f1d49a !important;
}

/* Petits textes/horodatages sous les titres de page (ex: "Dernière mise à jour"). */
body.ud-cosmos .ud-section-title .small.text-muted,
body.ud-cosmos .ud-section-title .text-muted{
  color: rgba(255,255,255,.7) !important;
}
body.ud-cosmos .ud-section-title code{
  background: rgba(255,255,255,.08);
  color: rgba(255,235,200,.92);
  border: 1px solid rgba(255,255,255,.16);
  padding: .05em .35em;
  border-radius: 6px;
}

/* Footer : un voile sombre pour bien recouvrir le globe en bas de page. */
body.ud-cosmos .ud-footer{
  background:
    linear-gradient(180deg, rgba(8,16,36,.94), rgba(6,12,28,.98)),
    radial-gradient(1200px 480px at 80% 0%, rgba(218,160,72,.05), transparent 60%);
}

/* Topbar : on l'allège en glass clair pour cohérence avec le thème cosmos. */
body.ud-cosmos .ud-topbar{
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(14px) saturate(120%);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
}
body.ud-cosmos .ud-topbar.ud-scrolled{
  background: rgba(255,255,255,.96);
}

/* Pages de services : le hero et les sections internes deviennent transparents
   pour laisser apparaître le globe en arrière-plan (le texte est déjà blanc). */
body.ud-cosmos .ud-service-premium .sp-hero,
body.ud-cosmos .ud-service-premium .sp-main-section,
body.ud-cosmos .ud-service-premium .sp-volet,
body.ud-cosmos .ud-service-premium .sp-cta{
  background: transparent !important;
}

/* Mouvement réduit ---------------------------------------------------------- */
@media (prefers-reduced-motion: reduce){
  .ud-hero-globe--full{ animation: none; opacity: .85; }
  .ud-hero__badge-dot{ animation: none; }
}

/* Mobile : globe atténué pour préserver la lisibilité ----------------------- */
@media (max-width: 991.98px){
  .ud-hero-globe--full{
    animation-name: ud-hero-globe-fade-mobile;
  }
  @keyframes ud-hero-globe-fade-mobile{
    from { opacity: 0; }
    to   { opacity: .55; }
  }
}
.ud-hero-wrap::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 420px at 15% 20%, rgba(218,155,72,.22), transparent 58%),
    radial-gradient(900px 420px at 85% 30%, rgba(24,40,88,.24), transparent 60%),
    linear-gradient(175deg, rgba(8,18,42,.38) 0%, rgba(10,24,52,.22) 45%, rgba(255,255,255,.12) 100%);
  pointer-events:none;
}
.ud-hero-wrap--minimal::before{
  background:
    radial-gradient(900px 420px at 10% 16%, rgba(218,155,72,.12), transparent 58%),
    radial-gradient(900px 420px at 88% 22%, rgba(24,40,88,.10), transparent 62%);
}
.ud-hero-wrap > .ud-hero,
.ud-hero-wrap > .ud-hero-images{
  position: relative;
  z-index: 1;
}
.ud-hero{
  padding: 2.5rem 0 1.0rem;
}
.ud-hero--minimal{
  padding: 4.6rem 0 3.6rem;
}
.ud-hero--video-clean{
  padding: 5.1rem 0 4.1rem;
}
.ud-hero-wrap--video-clean::before{
  background:
    radial-gradient(900px 420px at 10% 16%, rgba(218,155,72,.18), transparent 58%),
    radial-gradient(900px 420px at 88% 22%, rgba(24,40,88,.28), transparent 62%),
    linear-gradient(175deg, rgba(8,18,42,.52), rgba(8,18,42,.24));
}
.ud-hero-images{
  padding: 0.5rem 0 1.8rem;
}
.ud-hero-wrap .container{
  position: relative;
  z-index: 1;
}
.ud-hero__logo{
  max-height: 520px;
  filter: drop-shadow(0 14px 28px rgba(18,32,58,.14));
}
.ud-hero__panel{
  border: 1px solid rgba(24,40,88,.12);
  border-radius: 18px;
  padding: 1.15rem;
  background: rgba(255,255,255,.78);
  box-shadow: 0 16px 42px rgba(18,32,58,.10);
}
.ud-hero__stats{
  margin-top: .7rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: .6rem;
}
.ud-hero__stat{
  border: 1px solid rgba(24,40,88,.1);
  border-radius: 12px;
  padding: .6rem .55rem;
  background: rgba(255,255,255,.85);
  text-align: center;
}
.ud-hero__stat-num{
  display: block;
  font-family: var(--ud-font-display);
  color: var(--ud-blue);
  font-size: 1.2rem;
  line-height: 1;
}
.ud-hero__stat-label{
  display: block;
  margin-top: .22rem;
  font-size: .62rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(24,40,88,.65);
}
.ud-hero__tagline{
  color: var(--ud-ink-muted);
  font-size:1.08rem;
  font-weight: 500;
  max-width: 36rem;
}
.ud-hero__tagline strong{
  color: var(--ud-blue);
  font-weight: 700;
}

.ud-hero__kicker{
  display:inline-block;
  font-weight: 900;
  letter-spacing: .14em;
  font-size: .72rem;
  color: rgba(24,40,88,.82);
  background: linear-gradient(135deg, rgba(218,155,72,.22), rgba(255,255,255,.75));
  border: 1px solid rgba(218,155,72,.45);
  padding: .38rem .75rem;
  border-radius: 999px;
  margin-bottom: .9rem;
  box-shadow: 0 2px 12px rgba(218,155,72,.15);
}
.ud-hero__headline{
  font-weight: 700;
  letter-spacing: -.03em;
  color: var(--ud-blue);
  font-size: clamp(2.15rem, 4vw, 3.15rem);
  line-height: 1.1;
}
.ud-hero__brand{
  color: var(--ud-blue);
}
.ud-hero__headline--video{
  color: #fff;
  font-size: clamp(2.4rem, 5vw, 4.2rem);
}
.ud-hero__headline--video .ud-hero__brand{
  color: #fff;
}
/* Variante cosmos : la première ligne du headline reprend l'or des arcs lumineux. */
.ud-hero-wrap--cosmos .ud-hero__headline--video .ud-hero__brand{
  background: linear-gradient(110deg, #ffe6a8 0%, #d9a04a 45%, #fff1c8 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  text-shadow: 0 6px 24px rgba(218,160,72,.18);
}
.ud-hero__tagline--video{
  color: rgba(255,255,255,.85);
  max-width: 44rem;
}
.ud-hero__badge{
  display: inline-flex;
  border: 1px solid rgba(217,160,74,.45);
  background: rgba(217,160,74,.14);
  color: rgba(255,255,255,.92);
  border-radius: 999px;
  padding: .36rem .8rem;
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  margin-bottom: 1rem;
}
.ud-btn--on-dark{
  border-color: rgba(255,255,255,.4) !important;
  color: rgba(255,255,255,.95) !important;
}
.ud-btn--on-dark:hover{
  background: rgba(255,255,255,.08) !important;
}
.ud-hero__chips{
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.ud-hero__chip{
  border: 1px solid rgba(255,255,255,.25);
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.9);
  border-radius: 999px;
  padding: .35rem .72rem;
  font-size: .66rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.ud-hero__office-cards{
  display: grid;
  gap: .7rem;
}
.ud-hero__office-card{
  border: 1px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.08);
  border-radius: 12px;
  padding: .8rem .9rem;
  backdrop-filter: blur(8px);
}
.ud-hero__office-city{
  color: var(--ud-gold-soft);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .62rem;
  margin-bottom: .3rem;
}
.ud-hero__office-name{
  color: #fff;
  font-family: var(--ud-font-display);
  font-size: 1.2rem;
  line-height: 1.1;
}
.ud-hero__points{
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.ud-hero__points span{
  border: 1px solid rgba(24,40,88,.15);
  background: rgba(255,255,255,.7);
  color: rgba(24,40,88,.76);
  border-radius: 999px;
  padding: .36rem .7rem;
  font-size: .68rem;
  font-weight: 700;
}
@supports ((-webkit-background-clip: text) or (background-clip: text)){
  .ud-hero__brand{
    background: linear-gradient(128deg, #1e3a6e 0%, #2d5a98 46%, #c8782a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
}

.ud-hero-images__screen{
  max-height: 320px;
  border-radius: var(--ud-radius-sm);
  box-shadow: 0 20px 50px rgba(8,20,40,.2), 0 0 0 1px rgba(255,255,255,.12) inset;
}

/* =============================================================================
   Section Services — design premium (cartes, filtres par audience, volets)
   ============================================================================= */

/* Toolbar de filtres ------------------------------------------------------- */
.ud-services-toolbar{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .55rem;
  padding: .35rem;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(218,155,72,.06));
  border: 1px solid rgba(24,40,88,.1);
  box-shadow: 0 8px 26px rgba(12,24,48,.06);
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}
.ud-services-tab{
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .55rem 1rem;
  border: 0;
  background: transparent;
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 700;
  color: rgba(24,40,88,.7);
  letter-spacing: .01em;
  cursor: pointer;
  transition: background .22s ease, color .22s ease, transform .22s ease;
}
.ud-services-tab:hover,
.ud-services-tab:focus-visible{
  background: rgba(24,40,88,.06);
  color: var(--ud-blue, #182858);
  outline: none;
}
.ud-services-tab.is-active{
  background: linear-gradient(135deg, var(--ud-blue, #182858), #2a4791);
  color: #fff;
  box-shadow: 0 8px 22px rgba(24,40,88,.28);
}
.ud-services-tab__count{
  display: inline-flex;
  min-width: 1.4rem;
  height: 1.4rem;
  padding: 0 .4rem;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(24,40,88,.1);
  color: rgba(24,40,88,.78);
  font-size: .7rem;
  font-weight: 800;
}
.ud-services-tab.is-active .ud-services-tab__count{
  background: rgba(255,255,255,.2);
  color: #fff;
}

/* =============================================================================
   Carrousel horizontal en boucle infinie (gauche → droite)
   ============================================================================= */
.ud-services-rail{
  position: relative;
  overflow: hidden;
  padding: .75rem 0 1rem;
  /* Fondu doux sur les bords gauche/droit */
  -webkit-mask-image: linear-gradient(
    to right,
    transparent 0,
    #000 6%,
    #000 94%,
    transparent 100%
  );
          mask-image: linear-gradient(
    to right,
    transparent 0,
    #000 6%,
    #000 94%,
    transparent 100%
  );
}
@media (hover: hover) and (pointer: fine){
  .ud-services-rail{ perspective: 1100px; }
}

.ud-services-track{
  display: flex;
  flex-wrap: nowrap;
  gap: 1.25rem;
  width: max-content;
  align-items: stretch;
  will-change: transform;
  animation: ud-services-marquee var(--ud-marquee-duration, 48s) linear infinite;
}

/* Sens de défilement : « de droite vers gauche »
   Le track va de translateX(0) → translateX(-50%). Comme les cartes
   sont dupliquées (originaux + clones), à -50% on est aligné sur le
   début des clones — strictement identique à 0 % côté visuel.
   Visuellement : les cartes apparaissent à droite, traversent vers
   la gauche, et sortent à gauche. */
@keyframes ud-services-marquee{
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Pause : survol, focus, bouton, onglet caché, mouvement réduit */
.ud-services-rail:hover .ud-services-track,
.ud-services-rail:focus-within .ud-services-track,
.ud-services-rail.is-paused .ud-services-track,
.ud-services-rail.is-tab-hidden .ud-services-track{
  animation-play-state: paused;
}

/* Cartes en mode rail : largeur fixe, pas de grille */
.ud-services-track .ud-svc-card{
  flex: 0 0 clamp(280px, 30vw, 360px);
  width: clamp(280px, 30vw, 360px);
  margin: 0;
  /* Désactive l'opacité d'entrée héritée pour ne pas masquer la marquee */
  opacity: 1 !important;
}
.ud-services-track .ud-svc-card.is-hidden{ display: none !important; }
.ud-services-track .ud-svc-card.is-clone{ user-select: none; }

/* Contrôles : précédent / pause / suivant ---------------------------------- */
.ud-services-controls{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .5rem;
  margin-top: .75rem;
}
.ud-services-control{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-width: 42px;
  height: 42px;
  padding: 0 .85rem;
  border: 1px solid rgba(24,40,88,.18);
  background: rgba(255,255,255,.94);
  color: var(--ud-blue, #182858);
  border-radius: 999px;
  font-size: 1.05rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(12,24,48,.06);
  transition:
    background .22s ease,
    color .22s ease,
    transform .22s ease,
    box-shadow .22s ease,
    border-color .22s ease;
}
.ud-services-control:hover,
.ud-services-control:focus-visible{
  background: linear-gradient(135deg, var(--ud-blue, #182858), #2a4791);
  color: #fff;
  border-color: transparent;
  outline: none;
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(24,40,88,.22);
}
.ud-services-control--pause{
  min-width: auto;
  padding-left: 1rem;
  padding-right: 1rem;
  font-size: .82rem;
  letter-spacing: .04em;
}
.ud-services-control__pause,
.ud-services-control__play{
  font-size: .8rem;
  line-height: 1;
}
.ud-services-control__play{ display: none; }
.ud-services-rail.is-paused ~ .ud-services-controls .ud-services-control__pause,
.ud-services-rail.is-paused + .ud-services-controls .ud-services-control__pause{ display: none; }
.ud-services-rail.is-paused ~ .ud-services-controls .ud-services-control__play,
.ud-services-rail.is-paused + .ud-services-controls .ud-services-control__play{ display: inline; }

/* Repli grille statique pour mouvement réduit ------------------------------ */
@media (prefers-reduced-motion: reduce){
  .ud-services-rail{
    overflow: visible;
    -webkit-mask-image: none;
            mask-image: none;
  }
  .ud-services-track{
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
    animation: none !important;
    transform: none !important;
  }
  .ud-services-track .ud-svc-card.is-clone{ display: none !important; }
  .ud-services-controls{ display: none; }
}

/* Compat : ancien identifiant */
.ud-services-deck{ display: contents; }

/* Carte service ------------------------------------------------------------ */
.ud-svc-card{
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  padding: 1.5rem 1.4rem 1.3rem;
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(24,40,88,.1);
  box-shadow: 0 18px 40px rgba(12,24,48,.07);
  overflow: hidden;
  /* Le `transform` complet est composé par le bloc Animations plus bas
     via les variables --ud-y, --ud-s, --rx, --ry. */
}
.ud-svc-card.is-hidden{ display: none; }
.ud-svc-card:hover{
  border-color: rgba(218,155,72,.55);
  box-shadow: 0 28px 60px rgba(12,24,48,.14);
}
.ud-svc-card.is-soon{
  background: linear-gradient(180deg, rgba(255,255,255,.85), rgba(248,242,228,.65));
  border-style: dashed;
}

/* Numéro en filigrane (01, 02, ...) */
.ud-svc-card__num{
  position: absolute;
  top: -.4rem;
  right: 1.05rem;
  font-family: var(--ud-font-display, "Fraunces", Georgia, serif);
  font-style: italic;
  font-weight: 800;
  font-size: 4.6rem;
  line-height: 1;
  letter-spacing: -.04em;
  color: rgba(24,40,88,.06);
  z-index: 0;
  user-select: none;
  pointer-events: none;
  transition: color .35s ease, transform .35s ease;
}
.ud-svc-card:hover .ud-svc-card__num{
  color: rgba(218,155,72,.18);
  transform: translateY(-2px) rotate(-1.5deg);
}

/* Halo lumineux de fond (apparaît au hover) */
.ud-svc-card__glow{
  position: absolute;
  inset: -40% -40% auto auto;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(218,155,72,.22), transparent 65%);
  filter: blur(20px);
  opacity: 0;
  transition: opacity .45s ease;
  z-index: 0;
}
.ud-svc-card:hover .ud-svc-card__glow{ opacity: .9; }

.ud-svc-card > *:not(.ud-svc-card__num):not(.ud-svc-card__glow){ position: relative; z-index: 1; }

/* Header (icône + tags) */
.ud-svc-card__head{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: .8rem;
  margin-bottom: .9rem;
}
.ud-svc-card__icon-wrap{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: linear-gradient(160deg, rgba(24,40,88,.08), rgba(218,155,72,.12));
  border: 1px solid rgba(24,40,88,.08);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6);
  transition: transform .35s ease, box-shadow .35s ease;
}
.ud-svc-card:hover .ud-svc-card__icon-wrap{
  transform: rotate(-3deg) scale(1.04);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7), 0 8px 18px rgba(218,155,72,.18);
}
.ud-svc-card__icon{ width: 40px; height: 40px; }

.ud-svc-card__tags{
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  justify-content: flex-end;
}
.ud-svc-card__tag{
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 800;
  padding: .28rem .55rem;
  border-radius: 999px;
  border: 1px solid transparent;
  white-space: nowrap;
}
.ud-svc-card__tag--diaspora{
  color: var(--ud-blue, #182858);
  background: rgba(24,40,88,.08);
  border-color: rgba(24,40,88,.18);
}
.ud-svc-card__tag--entrepreneur{
  color: #6e4108;
  background: rgba(218,155,72,.18);
  border-color: rgba(218,155,72,.45);
}
.ud-svc-card__tag--particulier{
  color: #1f5d3f;
  background: rgba(72,175,113,.16);
  border-color: rgba(72,175,113,.42);
}
.ud-svc-card__tag--soon{
  color: #6c4f1d;
  background: rgba(218,155,72,.12);
  border-color: rgba(218,155,72,.45);
  font-style: italic;
}
.ud-svc-card__tag--ext{
  color: rgba(24,40,88,.78);
  background: rgba(24,40,88,.05);
  border-color: rgba(24,40,88,.14);
}

/* Titre & description */
.ud-svc-card__title{
  margin: 0 0 .55rem;
  font-family: var(--ud-font-display, "Fraunces", Georgia, serif);
  font-size: 1.32rem;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: -.015em;
  color: var(--ud-blue, #182858);
}
.ud-svc-card__desc{
  margin: 0 0 1rem;
  color: rgba(13,21,40,.72);
  font-size: .92rem;
  line-height: 1.65;
}

/* Liste des volets */
.ud-svc-card__volets{
  list-style: none;
  margin: 0 0 1.2rem;
  padding: .8rem .85rem;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  border-left: 2px solid rgba(218,155,72,.5);
  background: linear-gradient(180deg, rgba(218,155,72,.06), rgba(218,155,72,.02));
  border-radius: 0 10px 10px 0;
}
.ud-svc-card__volets li{
  font-size: .8rem;
  color: rgba(13,21,40,.78);
  line-height: 1.4;
  display: flex;
  align-items: center;
  gap: .45rem;
}
.ud-svc-card__volets li::before{
  content: "";
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--ud-gold, #d9a04a);
  flex: 0 0 auto;
}
.ud-svc-card__volets-more{
  font-size: .72rem !important;
  font-weight: 700;
  color: rgba(110,65,8,.78) !important;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ud-svc-card__volets-more::before{ background: rgba(110,65,8,.5) !important; }

/* CTA en bas */
.ud-svc-card__foot{
  margin-top: auto;
  padding-top: .25rem;
}
.ud-svc-card__cta{
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  width: 100%;
  padding: .75rem 1rem;
  border-radius: 12px;
  font-weight: 700;
  font-size: .92rem;
  text-decoration: none;
  background: rgba(24,40,88,.04);
  color: var(--ud-blue, #182858);
  border: 1px solid rgba(24,40,88,.1);
  transition: background .22s ease, border-color .22s ease, color .22s ease, transform .22s ease;
}
.ud-svc-card__cta:hover,
.ud-svc-card__cta:focus-visible{
  background: linear-gradient(135deg, var(--ud-blue, #182858), #2a4791);
  color: #fff;
  border-color: transparent;
  outline: none;
}
.ud-svc-card__cta-arrow{
  font-size: 1.05rem;
  transform: translateX(0);
  transition: transform .22s ease;
}
.ud-svc-card__cta:hover .ud-svc-card__cta-arrow{ transform: translateX(4px); }
.ud-svc-card__cta.is-disabled{
  opacity: .8;
  cursor: not-allowed;
  pointer-events: none;
  background: rgba(218,155,72,.08);
  border-color: rgba(218,155,72,.35);
  color: #6c4f1d;
  font-style: italic;
}

/* Footer après la grille */
.ud-services-foot__hint{
  color: rgba(24,40,88,.65);
  font-size: .92rem;
  margin-bottom: 1rem;
  font-weight: 600;
}

/* =============================================================================
   Animations — section Services
   ============================================================================= */

/* Reveal cascade (titre, toolbar, footer, cartes) -------------------------- */
.ud-services .ud-fx-pre{
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity .85s cubic-bezier(.2,.7,.2,1),
    transform .85s cubic-bezier(.2,.7,.2,1);
  transition-delay: calc(var(--i, 0) * 75ms);
  will-change: opacity, transform;
}
.ud-services .ud-fx-pre.ud-fx-in{
  opacity: 1;
  transform: translateY(0);
}

/* Cartes : reveal cascade — on utilise des CSS vars pour pouvoir composer
   avec le tilt 3D sans conflit de spécificité */
.ud-svc-card{
  --ud-y: 0px;
  --ud-s: 1;
  --rx: 0deg;
  --ry: 0deg;
  transform-style: preserve-3d;
  transform: translateY(var(--ud-y)) scale(var(--ud-s)) rotateX(var(--rx)) rotateY(var(--ry));
  transition:
    transform .35s cubic-bezier(.2,.7,.2,1),
    box-shadow .35s ease,
    border-color .25s ease,
    opacity .7s cubic-bezier(.2,.7,.2,1);
}
/* Reveal d'entrée : ne s'applique PLUS aux cartes du carrousel marquee
   (voir .ud-services-track .ud-svc-card { opacity: 1 !important }) */
.ud-svc-card.ud-fx-pre{
  opacity: 0;
  --ud-y: 48px;
  --ud-s: .94;
  transition:
    opacity .85s cubic-bezier(.2,.7,.2,1),
    transform .95s cubic-bezier(.2,.7,.2,1);
  transition-delay: calc(var(--i, 0) * 95ms);
}
/* Le marquee neutralise l'opacité 0 sur les cartes (titre/toolbar restent animés) */
.ud-services-track .ud-svc-card.ud-fx-pre{ opacity: 1; transform: none; }
.ud-svc-card.ud-fx-pre.ud-fx-in,
.ud-svc-card.is-revealed{
  opacity: 1;
  --ud-y: 0px;
  --ud-s: 1;
}

/* Filtre : sortie en fade vers le bas ------------------------------------- */
.ud-svc-card.is-hiding{
  opacity: 0;
  --ud-y: 14px;
  --ud-s: .98;
  transition:
    opacity .22s ease,
    transform .22s ease;
  pointer-events: none;
}

/* Hover & Tilt 3D — desktop avec souris uniquement ------------------------- */
@media (hover: hover) and (pointer: fine){
  .ud-svc-card:hover{
    --ud-y: -4px;
  }
  .ud-svc-card:hover .ud-svc-card__icon-wrap,
  .ud-svc-card:hover .ud-svc-card__title{
    transform: translateZ(18px);
  }
  .ud-svc-card__title{ transition: transform .35s cubic-bezier(.2,.7,.2,1); }

  /* Faisceau de lumière qui suit la souris */
  .ud-svc-card::before{
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(
      circle at var(--mx, 50%) var(--my, 50%),
      rgba(255,255,255,.55),
      transparent 35%
    );
    opacity: 0;
    transition: opacity .35s ease;
    pointer-events: none;
    mix-blend-mode: overlay;
    z-index: 0;
    border-radius: inherit;
  }
  .ud-svc-card:hover::before{ opacity: .8; }
}

/* Shimmer du numéro filigrane au reveal ------------------------------------ */
@keyframes ud-svc-num-in{
  0%   { opacity: 0; transform: translateY(-10px) scale(.85); letter-spacing: .1em; }
  60%  { opacity: 1; }
  100% { opacity: 1; transform: translateY(0) scale(1); letter-spacing: -.04em; }
}
.ud-svc-card.is-revealed .ud-svc-card__num,
.ud-svc-card.ud-fx-in .ud-svc-card__num{
  animation: ud-svc-num-in .9s cubic-bezier(.2,.7,.2,1) both;
  animation-delay: calc(var(--i, 0) * 85ms + .25s);
}

/* Pulse subtil du glow doré (continu, lent) -------------------------------- */
@keyframes ud-svc-glow-breathe{
  0%, 100% { transform: scale(1);   opacity: .0; }
  50%      { transform: scale(1.12); opacity: .52; }
}
.ud-svc-card .ud-svc-card__glow{
  animation: ud-svc-glow-breathe 6s ease-in-out infinite;
  animation-delay: calc(var(--i, 0) * .25s);
}
.ud-svc-card:hover .ud-svc-card__glow{ animation: none; opacity: .9; }

/* Volets : lisibles par défaut ; animation seulement si mouvement autorisé */
.ud-svc-card__volets li{
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: no-preference){
  .ud-svc-card.ud-fx-in .ud-svc-card__volets li,
  .ud-svc-card.is-revealed .ud-svc-card__volets li{
    animation: ud-svc-volet-in .58s cubic-bezier(.2,.7,.2,1) both;
    animation-delay: calc(var(--i, 0) * 95ms + var(--j, 0) * 100ms + .35s);
  }
}
@keyframes ud-svc-volet-in{
  from{ opacity: 0; transform: translateX(-12px); }
  to  { opacity: 1; transform: translateX(0); }
}

/* CTA : indicateur lumineux qui balaye au hover ---------------------------- */
.ud-svc-card__cta{ position: relative; overflow: hidden; }
.ud-svc-card__cta::after{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    transparent 30%,
    rgba(255,255,255,.35) 50%,
    transparent 70%
  );
  transform: translateX(-110%);
  transition: transform .65s cubic-bezier(.2,.7,.2,1);
  pointer-events: none;
}
.ud-svc-card__cta:hover::after,
.ud-svc-card__cta:focus-visible::after{
  transform: translateX(110%);
}

/* Toolbar de filtres : indicateur actif animé ----------------------------- */
.ud-services-tab{
  position: relative;
  overflow: hidden;
}
.ud-services-tab::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: 6px;
  width: 0;
  height: 2px;
  border-radius: 2px;
  background: var(--ud-gold, #d9a04a);
  transform: translateX(-50%);
  transition: width .35s cubic-bezier(.2,.7,.2,1);
  pointer-events: none;
}
.ud-services-tab.is-active::after{ width: 28px; background: rgba(255,255,255,.85); }
.ud-services-tab:hover:not(.is-active)::after{ width: 18px; }

/* Respect du prefers-reduced-motion --------------------------------------- */
@media (prefers-reduced-motion: reduce){
  .ud-services .ud-fx-pre,
  .ud-svc-card.ud-fx-pre,
  .ud-svc-card.is-hiding,
  .ud-svc-card,
  .ud-svc-card .ud-svc-card__glow,
  .ud-svc-card__volets li,
  .ud-svc-card__cta::after,
  .ud-services-tab::after{
    transition: none !important;
    animation: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* Compat : ancien wrapper si jamais réutilisé ailleurs */
.ud-services-grid-simple{ margin-top: .2rem; }
.ud-form-reassure{
  font-size: .78rem;
  color: rgba(24,40,88,.75);
  font-weight: 700;
}
.ud-form-next{
  font-size: .74rem;
  color: rgba(24,40,88,.66);
}

.ud-trust{
  background:
    radial-gradient(800px 300px at 20% 0%, rgba(218,155,72,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.88));
}
.ud-trust-band{
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}
.ud-trust-band span{
  border: 1px solid rgba(24,40,88,.16);
  border-radius: 999px;
  padding: .35rem .75rem;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(24,40,88,.74);
  background: rgba(255,255,255,.86);
}
.ud-testimonial{
  border: 1px solid rgba(24,40,88,.12);
  border-radius: 14px;
  padding: 1rem;
  background: rgba(255,255,255,.92);
  box-shadow: 0 12px 24px rgba(12,24,48,.06);
}
.ud-testimonial__text{
  margin: 0 0 .8rem;
  color: rgba(13,21,40,.8);
  line-height: 1.7;
  font-size: .92rem;
}
.ud-testimonial__meta{
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(24,40,88,.62);
}
.ud-testimonial-form{
  border: 1px solid rgba(218,155,72,.28);
  box-shadow: 0 18px 50px rgba(18,32,58,.08);
  background: linear-gradient(165deg, rgba(255,255,255,.98) 0%, rgba(248,245,238,.96) 100%);
  color: var(--ud-ink, #0d1528);
}
.ud-testimonial-form__title{
  font-family: var(--ud-font-display);
  font-weight: 800;
  color: rgba(10,24,52,.94);
}
.ud-testimonial-form .text-muted{
  color: rgba(18,32,58,.65) !important;
}
.ud-testimonial-form .form-label{
  font-weight: 800;
  color: rgba(10,24,52,.88);
}
.ud-testimonial-form .form-check-label{
  font-weight: 650;
  color: rgba(18,32,58,.82);
}
.ud-testimonial-form .form-check-label a{
  color: var(--ud-blue, #182858);
  font-weight: 700;
}
.ud-testimonial-form .form-control{
  color: var(--ud-ink, #0d1528);
  background-color: #fff;
  border-color: rgba(24,40,88,.16);
}
.ud-testimonial-form .form-control::placeholder{
  color: rgba(18,32,58,.42);
  opacity: 1;
}
.ud-testimonial-form .form-control:focus{
  color: var(--ud-ink, #0d1528);
  background-color: #fff;
  border-color: rgba(24,40,88,.32);
  box-shadow: 0 0 0 .25rem rgba(24,40,88,.10);
}
/* Accueil cosmos : carte témoignage lisible (comme #contact) */
.ud-cosmos-page #temoignages .ud-testimonial-form{
  background: linear-gradient(165deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.94) 100%);
  border: 1px solid rgba(255,255,255,.55);
  box-shadow: 0 28px 60px rgba(4,8,22,.45);
  color: var(--ud-ink, #0d1528);
}
.ud-cosmos-page #temoignages .ud-testimonial-form__title{
  color: var(--ud-blue, #182858) !important;
}
.ud-cosmos-page #temoignages .ud-testimonial-form .text-muted{
  color: rgba(18,32,58,.65) !important;
}
.ud-cosmos-page #temoignages .ud-testimonial-form .form-label,
.ud-cosmos-page #temoignages .ud-testimonial-form .form-check-label,
.ud-cosmos-page #temoignages .ud-testimonial-form .ud-form,
.ud-cosmos-page #temoignages .ud-testimonial-form .ud-form .form-label,
.ud-cosmos-page #temoignages .ud-testimonial-form .ud-form .form-control,
.ud-cosmos-page #temoignages .ud-testimonial-form .ud-form .form-check-label{
  color: var(--ud-ink, #0d1528) !important;
}
.ud-cosmos-page #temoignages .ud-testimonial-form .form-check-label a{
  color: var(--ud-blue, #182858) !important;
}
.ud-cosmos-page #temoignages .ud-testimonial-form .ud-form{
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.ud-testimonial__case{
  margin: 0 0 .55rem;
  font-size: .72rem;
  color: rgba(24,40,88,.72);
  font-weight: 700;
}

.ud-title{
  color: var(--ud-blue);
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: 1.15;
}
.ud-section-title .ud-title{
  font-size: clamp(1.7rem, 3.2vw, 2.35rem);
  font-weight: 700;
}

.ud-section-title.text-center{
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
}

.ud-section-title .ud-subtitle{
  color: var(--ud-ink-muted);
  font-weight: 600;
  font-size: 1.05rem;
  line-height: 1.45;
  margin-top: 0.35rem;
}

.ud-section-kicker{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .72rem;
  color: rgba(20,32,64,.9);
  background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(218,155,72,.2));
  border: 1px solid rgba(218,155,72,.4);
  padding: .44rem 1rem;
  border-radius: 999px;
  box-shadow: 0 2px 12px rgba(12,24,48,.06);
}

.ud-section-divider{
  height: 3px;
  width: min(200px, 50%);
  margin: 0 auto;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, var(--ud-gold), var(--ud-blue), transparent);
  opacity: 0.85;
  filter: none;
}

.ud-services{
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(800px 360px at 15% 30%, rgba(24,40,88,.10), transparent 60%),
    radial-gradient(900px 420px at 85% 10%, rgba(218,155,72,.16), transparent 60%),
    linear-gradient(180deg, rgba(24,40,88,.02), rgba(24,40,88,0));
}
.ud-services::before,
.ud-services::after{
  content:"";
  position:absolute;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  filter: blur(40px);
  opacity: .78;
  pointer-events:none;
}
.ud-services::before{
  left: -220px;
  top: -180px;
  background: radial-gradient(circle at 30% 30%, rgba(218,155,72,.55), rgba(218,155,72,0));
  animation: udFloatA 10s ease-in-out infinite;
}
.ud-services::after{
  right: -260px;
  bottom: -220px;
  background: radial-gradient(circle at 30% 30%, rgba(24,40,88,.55), rgba(24,40,88,0));
  animation: udFloatB 12s ease-in-out infinite;
}
@keyframes udFloatA{
  0%,100%{ transform: translate3d(0,0,0) }
  50%{ transform: translate3d(64px, 46px, 0) }
}
@keyframes udFloatB{
  0%,100%{ transform: translate3d(0,0,0) }
  50%{ transform: translate3d(-56px, -42px, 0) }
}
@media (prefers-reduced-motion: reduce){
  .ud-services::before,
  .ud-services::after{ animation: none !important; }
}

.ud-services__meta{
  position: relative;
  z-index: 1;
}

/* Carrousel horizontal — services accueil */
.ud-services-carousel{
  position: relative;
  z-index: 1;
  width: 100%;
}
.ud-services-carousel__viewport{
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: rgba(24,40,88,.28) transparent;
  padding: 0.35rem 0 0.85rem;
  outline: none;
}
.ud-services-carousel__viewport:focus-visible{
  box-shadow: inset 0 0 0 2px rgba(218,155,72,.55);
  border-radius: 12px;
}
.ud-services-carousel__viewport::-webkit-scrollbar{
  height: 6px;
}
.ud-services-carousel__viewport::-webkit-scrollbar-thumb{
  background: rgba(24,40,88,.22);
  border-radius: 999px;
}
.ud-services-carousel__track{
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 1.15rem;
  /* Pas de padding horizontal basé sur 100vw (créait un grand vide à gauche dans .container) */
  padding: 0.25rem 0 0.75rem;
  min-height: 0;
}
.ud-services-carousel__slide{
  flex: 0 0 auto;
  width: min(420px, calc(100vw - 2.5rem));
  max-width: min(420px, calc(100vw - 2.5rem));
  scroll-snap-align: start;
  scroll-snap-stop: always;
  scroll-margin-inline: 0;
}
.ud-service-card--carousel{
  width: 100%;
}
.ud-services-carousel__nav{
  display: flex;
  justify-content: center;
  padding: 0.15rem 1rem 0.35rem;
}
.ud-services-carousel__dots{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.45rem;
  align-items: center;
}
.ud-services-carousel__dot{
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(24,40,88,.22);
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease;
}
.ud-services-carousel__dot:hover{
  background: rgba(24,40,88,.38);
  transform: scale(1.15);
}
.ud-services-carousel__dot.is-active{
  background: linear-gradient(135deg, var(--ud-blue) 0%, rgba(24,40,88,.88) 100%);
  box-shadow: 0 0 0 3px rgba(218,155,72,.28);
  transform: scale(1.2);
}
@media (prefers-reduced-motion: reduce){
  .ud-services-carousel__viewport{
    scroll-behavior: auto;
  }
  .ud-services-carousel__dot{
    transition: none;
  }
}

.ud-stats{
  display:flex;
  flex-wrap: wrap;
  gap: .65rem;
  justify-content: center;
}
@media (min-width: 992px){
  .ud-stats{ justify-content: flex-end; }
}
.ud-stat{
  min-width: 92px;
  text-align:center;
  padding:.65rem .8rem;
  border-radius: var(--ud-radius-xs);
  background: rgba(255,255,255,.85);
  border: 1px solid var(--ud-border);
  box-shadow: var(--ud-shadow-sm);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.ud-stat__num{
  font-weight: 900;
  font-size: 1.25rem;
  color: var(--ud-night);
  letter-spacing: .02em;
  line-height: 1.05;
}
.ud-stat__num--text{
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .01em;
  text-transform: none;
  hyphens: auto;
}
.ud-stat__label{
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 900;
  font-size: .65rem;
  color: rgba(24,40,88,.72);
}

.ud-service-chips{
  opacity: .98;
}
.ud-chip{
  display:inline-flex;
  align-items:center;
  padding:.48rem .85rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: .84rem;
  color: rgba(10,24,52,.9);
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(218,155,72,.35);
  box-shadow: 0 4px 16px rgba(12,24,48,.08);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.ud-chip::before{
  content:"";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  margin-right: .5rem;
  background: radial-gradient(circle at 30% 30%, rgba(218,155,72,.85), rgba(218,155,72,.25));
  box-shadow: 0 10px 18px rgba(218,155,72,.25);
}

.ud-card{
  border:1px solid rgba(18,32,58,.12);
  border-radius: 14px;
  background:#fff;
  padding: 1.1rem 1.1rem .9rem;
  box-shadow: 0 8px 22px rgba(18,32,58,.06);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ud-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 16px 44px rgba(18,32,58,.12);
  border-color: rgba(24,40,88,.22);
}
.ud-card__icon{
  text-align:center;
  margin-bottom:.75rem;
}
.ud-card__icon img{
  width: 110px;
  height: 110px;
  object-fit: contain;
}
.ud-card__title{
  text-align:center;
  font-weight: 900;
  color: var(--ud-blue);
  margin-bottom: .55rem;
  letter-spacing: .01em;
}
.ud-card__list{
  margin:0;
  padding-left: 1.2rem;
  color:#22386f;
  min-height: 128px;
}
.ud-card__footer{
  margin-top: .9rem;
  display:flex;
  justify-content:center;
}

.ud-btn{
  font-weight:800;
  letter-spacing:.02em;
  padding:.65rem 1rem;
  border-radius: 10px;
}
.btn-primary.ud-btn{
  background: linear-gradient(155deg, var(--ud-blue) 0%, var(--ud-blue-light) 48%, #152a52 100%);
  border: none;
  color: #fff;
  box-shadow: 0 6px 20px rgba(24,40,88,.28), 0 1px 0 rgba(255,255,255,.2) inset;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.btn-primary.ud-btn:hover{
  background: linear-gradient(155deg, #152d52 0%, #1e3a6e 100%);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 36px rgba(12,24,48,.32), 0 1px 0 rgba(255,255,255,.15) inset;
  filter: brightness(1.04);
}
.btn-primary.ud-btn:active{
  transform: translateY(0);
}
.ud-btn--ghost{
  border-width: 2px;
  border-color: rgba(24,40,88,.35);
  color: var(--ud-blue);
  background: rgba(255,255,255,.55);
}
.ud-btn--ghost:hover{
  background: rgba(255,255,255,.95);
  border-color: rgba(218,155,72,.65);
  color: var(--ud-blue);
  box-shadow: 0 8px 24px rgba(218,155,72,.18);
}
.ud-btn--cta{
  box-shadow: 0 12px 32px rgba(24,40,88,.22);
}

.ud-btn--wide{
  width: 100%;
}

.ud-cta{
  border-radius: 999px;
  font-weight: 900;
  letter-spacing: .02em;
  padding: .45rem .75rem;
}

.ud-badge{
  font-weight:900;
  color:#5a4a1d;
  background: rgba(218,155,72,.25);
  border: 1px dashed rgba(218,155,72,.65);
  padding:.55rem .8rem;
  border-radius: 10px;
  text-transform: uppercase;
  letter-spacing:.06em;
  font-size:.85rem;
}

.ud-contact{
  background: linear-gradient(180deg, rgba(30,58,110,.04) 0%, rgba(24,40,88,0) 55%);
}

.ud-contact-head{
  position: relative;
  z-index: 1;
}

.ud-form{
  border-radius: var(--ud-radius);
  border: 1px solid var(--ud-border);
  background: linear-gradient(165deg, rgba(255,255,255,.94) 0%, rgba(255,255,255,.86) 100%);
  box-shadow: var(--ud-shadow);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 1.35rem 1.4rem 1.25rem;
}
.ud-form__title{
  font-weight: 900;
  color: var(--ud-blue);
  letter-spacing: .01em;
  font-size: 1.15rem;
}
.ud-form__subtitle{
  font-weight: 650;
  color: rgba(18,32,58,.72);
}
.ud-contact-form .form-label{
  font-weight: 800;
  color: rgba(10,24,52,.80);
}
.ud-contact-form .form-control{
  border-radius: 14px;
  border-color: rgba(24,40,88,.14);
  padding: .7rem .85rem;
}
.ud-contact-form textarea.form-control{
  border-radius: 16px;
}
.ud-contact-form .form-control:focus{
  border-color: rgba(24,40,88,.32);
  box-shadow: 0 0 0 .25rem rgba(24,40,88,.10);
}
.ud-contact-form .form-check-label{
  font-weight: 650;
  color: rgba(18,32,58,.76);
}

.ud-contact-card__title{
  font-weight: 900;
  color: var(--ud-blue);
  margin-bottom: .75rem;
}
.ud-contact-card__subtitle{
  font-weight: 900;
  color: rgba(10,24,52,.88);
  margin: .25rem 0 .65rem;
}
.ud-contact-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: .6rem;
}
.ud-contact-mini{
  border-radius: 16px;
  padding: .75rem .8rem;
  border: 1px solid rgba(24,40,88,.10);
  background: rgba(24,40,88,.02);
}
.ud-contact-mini__label{
  font-weight: 900;
  letter-spacing: .10em;
  text-transform: uppercase;
  font-size: .68rem;
  color: rgba(24,40,88,.72);
}
.ud-contact-mini__value{
  font-weight: 800;
  color: rgba(10,24,52,.86);
  margin-top: .15rem;
}
.ud-contact-mini__value a{
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ud-contact-mini__value a:hover{
  color: var(--ud-blue);
}

.ud-locations{
  display:grid;
  gap: .65rem;
}
.ud-location{
  border-radius: 18px;
  padding: .85rem .9rem;
  border: 1px solid rgba(24,40,88,.10);
  background:
    radial-gradient(220px 120px at 15% 20%, rgba(218,155,72,.16), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.86));
  box-shadow: 0 14px 34px rgba(18,32,58,.10);
}
.ud-location__addr{
  font-weight: 900;
  color: rgba(10,24,52,.92);
  margin-bottom: .55rem;
  line-height: 1.2;
}
.ud-location__row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap: .75rem;
  padding: .25rem 0;
  border-top: 1px dashed rgba(24,40,88,.12);
}
.ud-location__row:first-of-type{
  border-top: 0;
}
.ud-location__row span{
  font-weight: 900;
  letter-spacing: .10em;
  text-transform: uppercase;
  font-size: .68rem;
  color: rgba(24,40,88,.70);
}
.ud-location__row strong{
  font-weight: 900;
  color: rgba(10,24,52,.90);
  white-space: nowrap;
}

.ud-map{
  width: 100%;
  height: 380px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(24,40,88,.12);
  box-shadow: 0 18px 55px rgba(18,32,58,.10);
  background: rgba(255,255,255,.85);
}
.ud-map-card{
  padding: 1.05rem;
}
.ud-map .leaflet-control-attribution{
  font-size: 11px;
  max-width: min(520px, 78vw);
  white-space: normal;
}
.ud-map .leaflet-control-layers{
  border-radius: 14px;
  border: 1px solid rgba(24,40,88,.12);
  box-shadow: 0 8px 24px rgba(18,32,58,.10);
  background: rgba(255,255,255,.95);
  font-size: 13px;
}
.ud-map .leaflet-control-layers-toggle{
  width: 40px;
  height: 40px;
  line-height: 40px;
  border-radius: 14px;
  background: rgba(255,255,255,.95);
}
.ud-map .leaflet-control-layers-expanded{
  padding: 8px 10px 10px;
}
.ud-map .leaflet-control-layers label{
  margin-bottom: 0.25rem;
  cursor: pointer;
}
.ud-map .leaflet-popup-content-wrapper{
  border-radius: 14px;
}

@media (max-width: 575.98px){
  .ud-contact-grid{
    grid-template-columns: 1fr;
  }
  .ud-map{
    height: 260px;
  }
}

.ud-flash{
  border-radius: var(--ud-radius-sm);
  font-weight: 600;
}
.ud-flash-wrap{
  animation: udFadeDown .45s ease-out;
}
@keyframes udFadeDown{
  from{ opacity: 0; transform: translateY(-8px); }
  to{ opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce){
  .ud-flash-wrap{ animation: none; }
}

/* Cartes services (accueil) */
.ud-service-card.ud-service-card--modern{
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: var(--ud-radius-sm);
  background: var(--ud-surface);
  border: 1px solid var(--ud-border);
  box-shadow: var(--ud-shadow-sm), 0 0 0 1px rgba(255,255,255,.6) inset;
  padding: 0;
  overflow: hidden;
  transition: transform .22s cubic-bezier(0.22,1,0.36,1), box-shadow .22s ease, border-color .22s ease;
}
.ud-service-card.ud-service-card--modern:hover{
  transform: translateY(-5px);
  box-shadow: 0 20px 48px rgba(12,24,48,.12), 0 0 0 1px rgba(255,255,255,.7) inset;
  border-color: var(--ud-border-strong);
}
.ud-service-card__accent{
  height: 3px;
  width: 100%;
  background: linear-gradient(90deg, #152a52 0%, var(--ud-blue) 40%, var(--ud-gold) 100%);
  flex-shrink: 0;
  opacity: 0.98;
}
.ud-service-card__badge.ud-pill--soon{
  position: absolute;
  top: 0.85rem;
  right: 0.85rem;
  z-index: 2;
  margin: 0;
}
.ud-service-card__inner{
  padding: 1.15rem 1.2rem 1.2rem;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.ud-service-card__head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.85rem;
  margin-bottom: 0.85rem;
}
.ud-service-card__intro{
  flex: 1;
  min-width: 0;
}
.ud-service-card__title{
  font-family: var(--ud-font-display);
  font-weight: 700;
  font-size: 1.2rem;
  line-height: 1.25;
  letter-spacing: -0.02em;
  margin: 0 0 0.35rem;
  color: var(--ud-blue);
}
.ud-service-card__title-link{
  color: inherit;
  text-decoration: none;
}
.ud-service-card__title-link:hover{
  color: var(--ud-blue-light);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ud-service-card__desc{
  font-size: 0.9rem;
  font-weight: 500;
  color: rgba(18,32,58,.68);
  line-height: 1.45;
  margin: 0;
}
.ud-service-card__thumb{
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, #f0f3f9 0%, #e8ecf4 100%);
  border: 1px solid rgba(24,40,88,.08);
  text-decoration: none;
  transition: border-color .2s ease, background .2s ease;
}
.ud-service-card--modern:hover .ud-service-card__thumb{
  border-color: rgba(24,40,88,.14);
  background: linear-gradient(145deg, #eef2f8 0%, #e4e9f2 100%);
}
.ud-service-card__thumb img{
  width: 36px;
  height: 36px;
  object-fit: contain;
  opacity: 0.92;
}

/* Accueil : cartes services — apparition en cascade (délais gérés en JS) */
.ud-service-card.ud-reveal{
  opacity: 0;
  transform: translate3d(-22px, 26px, 0);
  transition: opacity 0.58s cubic-bezier(0.22, 1, 0.36, 1), transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.ud-service-card.ud-reveal.is-inview{
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
@media (prefers-reduced-motion: reduce){
  .ud-service-card.ud-reveal{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    will-change: auto;
  }
}

.ud-service-card__list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.4rem;
  color: rgba(18,32,58,.82);
  font-weight: 500;
  font-size: 0.9rem;
}
.ud-service-card__list li{
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  padding-left: 0;
}
.ud-service-card__list li::before{
  content: "";
  flex: 0 0 auto;
  width: 5px;
  height: 5px;
  margin-top: 0.45em;
  border-radius: 50%;
  background: var(--ud-blue);
  opacity: 0.55;
}

.ud-service-card__footer{
  margin-top: auto;
  padding-top: 1.1rem;
}
.ud-service-card__footer .ud-badge{
  text-transform: none;
  letter-spacing: 0.02em;
  font-weight: 650;
  font-size: 0.8rem;
}
.ud-service-card__cta{
  border-radius: 12px;
  font-size: 0.95rem;
  padding: 0.55rem 1rem;
}

/* Accueil — cartes services : image + titre + bouton (détails sur la fiche) */
.ud-service-card--visual-only.ud-service-card--modern{
  min-height: 300px;
}
.ud-service-card--visual-only .ud-service-card__home-head{
  flex-shrink: 0;
  padding: 0.55rem 0.85rem 0.4rem;
  text-align: center;
  background: linear-gradient(180deg, #ffffff 0%, #f5f8fc 100%);
  border-top: 1px solid rgba(24,40,88,.07);
}
.ud-service-card--visual-only .ud-service-card__home-title{
  font-family: var(--ud-font-display);
  font-weight: 800;
  font-size: clamp(0.98rem, 2.5vw, 1.14rem);
  line-height: 1.28;
  letter-spacing: -0.02em;
  color: var(--ud-blue);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-wrap: balance;
}
.ud-service-card--visual-only .ud-service-card__inner{
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0;
}
.ud-service-card--visual-only .ud-service-card__visual{
  flex: 1 1 0;
  min-height: 12rem;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem 1.15rem 0.75rem;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(255,255,255,.9) 0%, transparent 55%),
    linear-gradient(185deg, #f6f8fc 0%, #e8edf5 100%);
}
.ud-service-card--visual-only .ud-service-card__visual-img{
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: min(42vh, 320px);
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
}
.ud-service-card--visual-only .ud-service-card__footer{
  flex-shrink: 0;
  margin-top: 0;
  padding: 0.35rem 1rem 1.05rem;
}
.ud-service-card--visual-only .ud-service-card__badge.ud-pill--soon{
  top: 0.65rem;
  right: 0.65rem;
}

.ud-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:.35rem .6rem;
  border-radius: 999px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: .7rem;
}
.ud-pill--soon{
  color: rgba(90,74,29,.95);
  background: rgba(218,155,72,.25);
  border: 1px solid rgba(218,155,72,.55);
}

.ud-btn--shine{
  position: relative;
  overflow: hidden;
}
.ud-btn--shine::after{
  content:"";
  position:absolute;
  top:-60%;
  left:-30%;
  width: 60%;
  height: 220%;
  transform: rotate(24deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
  opacity: .0;
  transition: opacity .18s ease;
}
.ud-btn--shine:hover::after{
  opacity: .9;
  animation: udShine 1.1s ease-in-out;
}
@keyframes udShine{
  0%{ transform: translateX(-60%) rotate(24deg); }
  100%{ transform: translateX(220%) rotate(24deg); }
}
@media (prefers-reduced-motion: reduce){
  .ud-btn--shine:hover::after{ animation: none !important; }
}

.ud-arrow{
  display:inline-block;
  margin-left: .25rem;
  transition: transform .18s ease;
}
.ud-btn--shine:hover .ud-arrow{
  transform: translateX(3px);
}

.ud-footer{
  position: relative;
  color: rgba(255,255,255,.93);
  background:
    radial-gradient(1000px 320px at 8% 100%, rgba(218,155,72,.13), transparent 55%),
    linear-gradient(170deg, #142d58 0%, var(--ud-night) 48%, #03070f 100%);
  border-top: 1px solid rgba(218,155,72,.3);
}
.ud-footer__accent{
  height: 4px;
  background: linear-gradient(90deg, transparent, rgba(218,155,72,.85), rgba(255,255,255,.35), rgba(218,155,72,.85), transparent);
  opacity: .95;
}
.ud-footer__logo{
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
}
.ud-footer__brand{
  font-weight: 900;
  color: #fff;
  letter-spacing: .04em;
  font-size: 1.15rem;
}
.ud-footer__lead{
  color: rgba(255,255,255,.72);
  font-size: .95rem;
  line-height: 1.55;
  max-width: 22rem;
}
.ud-footer__heading{
  font-weight: 900;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(218,155,72,.95);
  margin-bottom: .85rem;
}
.ud-footer__list li{
  margin-bottom: .45rem;
}
.ud-footer__list a{
  color: rgba(255,255,255,.78);
  text-decoration: none;
  font-weight: 600;
  font-size: .95rem;
  transition: color .15s ease;
}
.ud-footer__list a:hover{
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ud-footer__social{
  display: flex;
  flex-wrap: wrap;
  gap: .4rem .95rem;
}
.ud-footer__social li{
  margin: 0;
}
.ud-footer__social a{
  color: rgba(255,255,255,.82);
  text-decoration: none;
  font-weight: 650;
  font-size: .92rem;
  transition: color .15s ease;
}
.ud-footer__social a:hover{
  color: var(--ud-gold-soft);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ud-footer__url{
  color: rgba(255,255,255,.45);
  word-break: break-all;
}
.ud-footer__bottom{
  border-top: 1px solid rgba(255,255,255,.10);
}
.ud-footer__bottom-row{
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.4rem;
  align-items: center;
  justify-content: space-between;
}
.ud-footer__copy{
  font-size: .85rem;
  color: rgba(255,255,255,.55);
}
.ud-footer__signature{
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  text-decoration: none;
  color: rgba(255,255,255,.78);
  padding: .35rem .55rem .35rem .25rem;
  border-radius: 999px;
  transition: color .25s ease, background .25s ease;
}
.ud-footer__signature:hover,
.ud-footer__signature:focus-visible{
  color: #fff;
  background: rgba(255,255,255,.04);
  outline: none;
}
.ud-footer__signature-rule{
  display: inline-block;
  width: 38px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(217,160,74,.7), transparent);
}
.ud-footer__signature-mono{
  display: inline-flex;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  font-family: var(--ud-font-display, "Fraunces", serif);
  font-style: italic;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: .02em;
  color: var(--ud-gold, #d9a04a);
  border: 1px solid rgba(217,160,74,.45);
  background: linear-gradient(160deg, rgba(217,160,74,.18), rgba(255,255,255,.02));
  box-shadow: 0 6px 20px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.08);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.ud-footer__signature:hover .ud-footer__signature-mono,
.ud-footer__signature:focus-visible .ud-footer__signature-mono{
  transform: translateY(-1px);
  border-color: rgba(232,201,138,.85);
  box-shadow: 0 10px 26px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.12);
}
.ud-footer__signature-text{
  display: inline-flex;
  flex-direction: column;
  line-height: 1.15;
}
.ud-footer__signature-kicker{
  font-size: .58rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.5);
  font-weight: 700;
}
.ud-footer__signature-brand{
  font-family: var(--ud-font-display, "Fraunces", serif);
  font-weight: 700;
  font-size: .98rem;
  letter-spacing: -.01em;
  color: rgba(255,255,255,.92);
}
.ud-footer__legal{
  margin-top: .65rem;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .65rem;
  align-items: center;
  font-size: .76rem;
  color: rgba(255,255,255,.45);
}
.ud-footer__legal a{
  color: rgba(255,255,255,.7);
  text-decoration: underline;
  text-decoration-color: rgba(217,160,74,.45);
  text-underline-offset: 3px;
}
.ud-footer__legal a:hover,
.ud-footer__legal a:focus-visible{
  color: #fff;
  text-decoration-color: var(--ud-gold, #d9a04a);
}

.ud-service__icon{
  border-radius: 16px;
  background: rgba(24,40,88,.04);
  padding: .35rem;
}

.ud-breadcrumb{
  display:flex;
  gap:.5rem;
  align-items:center;
  flex-wrap: wrap;
  font-weight: 800;
  color: rgba(10,24,52,.70);
  margin: 0 0 1rem;
}
.ud-breadcrumb a{
  color: rgba(24,40,88,.88);
  text-decoration: none;
}
.ud-breadcrumb a:hover{ text-decoration: underline; }
.ud-breadcrumb__sep{ opacity: .55; }

.ud-service-hero{
  padding: 2.2rem 0 1.2rem;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(900px 420px at 15% 20%, rgba(218,155,72,.18), transparent 60%),
    radial-gradient(900px 420px at 85% 30%, rgba(24,40,88,.14), transparent 62%),
    linear-gradient(180deg, rgba(24,40,88,.03), rgba(24,40,88,0));
}
.ud-service-hero.ud-page-service{
  padding: 1.35rem 0 1rem;
}
@media (min-width: 768px){
  .ud-service-hero.ud-page-service{
    padding: 1.85rem 0 1.25rem;
  }
}
@media (min-width: 992px){
  .ud-service-hero.ud-page-service{
    padding: 2.35rem 0 1.45rem;
  }
}
.ud-service-hero__grid{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 1.25rem;
  align-items: stretch;
}
.ud-service-hero__left{
  display:flex;
  gap: 1rem;
  align-items:flex-start;
}
.ud-service-hero__badge{
  width: 82px;
  height: 82px;
  border-radius: 22px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: radial-gradient(90px 90px at 30% 30%, rgba(218,155,72,.25), rgba(24,40,88,.06));
  border: 1px solid rgba(24,40,88,.12);
  box-shadow: 0 18px 48px rgba(18,32,58,.16);
}
.ud-service-hero__badge img{
  width: 62px;
  height: 62px;
  object-fit: contain;
}
.ud-service-hero__title{
  font-weight: 900;
  letter-spacing: .01em;
  color: var(--ud-blue);
  font-size: clamp(1.65rem, 2.6vw, 2.4rem);
}
.ud-service-hero__subtitle{
  font-weight: 650;
  color: rgba(10,24,52,.78);
}
.ud-service-hero__right{
  display:flex;
}
.ud-service-hero__card{
  width: 100%;
  border-radius: 18px;
  padding: 1rem 1rem .9rem;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(24,40,88,.12);
  box-shadow: 0 22px 70px rgba(18,32,58,.14);
  backdrop-filter: blur(10px);
}
.ud-service-hero__card-title{
  font-weight: 900;
  color: rgba(10,24,52,.88);
  letter-spacing: .02em;
  margin-bottom: .65rem;
}
.ud-service-hero__list{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:.45rem;
  font-weight: 650;
  color: rgba(18,32,58,.84);
}
.ud-service-hero__list li{
  display:flex;
  gap:.55rem;
  align-items:flex-start;
}
.ud-service-hero__list li::before{
  content:"";
  width: 18px;
  height: 18px;
  border-radius: 6px;
  margin-top: 2px;
  background: radial-gradient(10px 10px at 35% 35%, rgba(218,155,72,.60), rgba(218,155,72,.18));
  border: 1px solid rgba(218,155,72,.55);
  box-shadow: 0 10px 18px rgba(218,155,72,.20);
  flex: 0 0 auto;
}

.ud-service-body,
.ud-page-body{
  background: #fff;
}
.ud-surface{
  border-radius: var(--ud-radius);
  padding: 1.2rem 1.25rem;
  border: 1px solid var(--ud-border);
  background: linear-gradient(195deg, rgba(255,255,255,.98) 0%, rgba(250,252,255,.95) 100%);
  box-shadow: var(--ud-shadow-sm), 0 0 0 1px rgba(255,255,255,.5) inset;
}
.ud-steps{
  display:grid;
  gap: .75rem;
}
.ud-step{
  display:flex;
  gap: .8rem;
  align-items:flex-start;
  padding: .85rem .85rem;
  border-radius: 16px;
  border: 1px solid rgba(24,40,88,.10);
  background: rgba(24,40,88,.02);
}
.ud-step__num{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  color: rgba(10,24,52,.92);
  background: rgba(218,155,72,.22);
  border: 1px solid rgba(218,155,72,.40);
}
.ud-step__title{
  font-weight: 900;
  color: rgba(10,24,52,.90);
}
.ud-step__text{
  color: rgba(18,32,58,.76);
  font-weight: 600;
}

.ud-cta-box{
  background:
    radial-gradient(240px 160px at 15% 15%, rgba(218,155,72,.22), transparent 60%),
    radial-gradient(240px 160px at 85% 30%, rgba(24,40,88,.12), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.88));
}
.ud-cta-box__title{
  font-weight: 900;
  font-size: 1.15rem;
  color: var(--ud-blue);
}
.ud-cta-box__text{
  font-weight: 650;
  color: rgba(18,32,58,.78);
}
.ud-cta-box__hint{
  font-size: .85rem;
  font-weight: 650;
  color: rgba(18,32,58,.62);
}

.ud-related__kicker{
  display:inline-block;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .72rem;
  color: rgba(24,40,88,.78);
}
.ud-related__title{
  font-weight: 900;
  color: var(--ud-blue);
  font-size: 1.35rem;
}
.ud-related-card{
  display:flex;
  align-items:center;
  gap: .75rem;
  padding: .9rem .95rem;
  border-radius: 18px;
  text-decoration:none;
  border: 1px solid rgba(24,40,88,.10);
  background: rgba(255,255,255,.72);
  box-shadow: 0 16px 44px rgba(18,32,58,.10);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ud-related-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 24px 66px rgba(18,32,58,.16);
  border-color: rgba(24,40,88,.20);
}
.ud-related-card img{
  border-radius: 14px;
  background: rgba(24,40,88,.04);
  padding: 6px;
}
.ud-related-card__text{
  min-width: 0;
}
.ud-related-card__title{
  font-weight: 900;
  color: rgba(10,24,52,.92);
  line-height: 1.15;
}
.ud-related-card__meta{
  font-weight: 700;
  color: rgba(24,40,88,.70);
  font-size: .88rem;
}
.ud-related-card__arrow{
  margin-left: auto;
  font-weight: 900;
  color: rgba(24,40,88,.70);
}

/* About page */
.ud-about-hero{
  background:
    radial-gradient(900px 420px at 15% 20%, rgba(218,155,72,.14), transparent 60%),
    radial-gradient(900px 420px at 85% 30%, rgba(24,40,88,.10), transparent 62%),
    linear-gradient(180deg, rgba(24,40,88,.02), rgba(24,40,88,0));
}

/* À propos — version institutionnelle (lisible sur fond vidéo sombre) */
.ud-about-page--institutional .ud-about-hero-pro{
  position: relative;
  border-bottom: 1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(900px 520px at 12% 20%, rgba(218,155,72,.18), transparent 58%),
    radial-gradient(820px 440px at 88% 35%, rgba(30,58,110,.45), transparent 58%),
    linear-gradient(185deg, rgba(10,18,40,.88), rgba(10,18,40,.72));
}
.ud-about-hero-pro__panel{
  padding: 1.65rem 1.45rem;
  border-radius: var(--ud-radius);
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.07);
  backdrop-filter: blur(14px) saturate(1.15);
  -webkit-backdrop-filter: blur(14px) saturate(1.15);
  box-shadow: 0 28px 70px rgba(4,8,20,.45), inset 0 1px 0 rgba(255,255,255,.12);
}
@media (min-width: 768px){
  .ud-about-hero-pro__panel{
    padding: 2rem 2rem 1.85rem;
  }
}
.ud-about-hero-pro__eyebrow{
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: .68rem;
  color: rgba(232,201,138,.92);
  margin-bottom: .65rem;
}
.ud-about-hero-pro__title{
  font-family: var(--ud-font-display);
  font-weight: 800;
  font-size: clamp(1.55rem, 4vw, 2.35rem);
  line-height: 1.12;
  letter-spacing: -.015em;
  color: #fff;
  margin-bottom: .85rem;
}
.ud-about-hero-pro__lead{
  font-weight: 500;
  font-size: clamp(1rem, 1.35vw, 1.08rem);
  line-height: 1.65;
  color: rgba(248,250,255,.88);
  margin-bottom: 1.25rem;
  max-width: 38rem;
}
.ud-about-hero-pro__meta{
  font-size: .92rem;
  line-height: 1.55;
  color: rgba(236,240,252,.86);
  border-top: 1px solid rgba(255,255,255,.14);
  padding-top: 1rem;
}
.ud-about-hero-pro__meta li + li{
  margin-top: .45rem;
}
.ud-about-hero-pro__meta-label{
  display: inline-block;
  min-width: 5.5rem;
  font-weight: 800;
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(232,201,138,.88);
  margin-right: .35rem;
}
.ud-about-hero-pro__meta a{
  color: #fff;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ud-about-hero-pro__meta a:hover{
  color: var(--ud-gold-soft);
}
.ud-about-hero-pro__emblem{
  padding: 1rem;
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  box-shadow: 0 22px 55px rgba(4,8,20,.35);
}
.ud-about-hero-pro__emblem-img{
  display: block;
  width: 112px;
  height: 112px;
  border-radius: 18px;
  object-fit: cover;
}
.ud-about-body{
  background:
    radial-gradient(900px 420px at 10% 0%, rgba(218,155,72,.08), transparent 55%),
    linear-gradient(180deg, rgba(250,248,243,.96), rgba(250,248,243,.99));
}
.ud-about-fact__title{
  font-family: var(--ud-font-display);
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--ud-blue);
  margin-bottom: .55rem;
}
.ud-about-fact__text{
  font-weight: 600;
  font-size: .96rem;
  line-height: 1.62;
  color: rgba(18,32,58,.78);
}
.ud-about-block-title{
  font-family: var(--ud-font-display);
  font-weight: 800;
  font-size: clamp(1.35rem, 2.4vw, 1.75rem);
  color: var(--ud-blue);
  letter-spacing: -.02em;
}
.ud-about-axis{
  padding: 1.35rem 1.25rem 1.25rem;
  border-radius: 18px;
  border: 1px solid rgba(24,40,88,.10);
  background: rgba(255,255,255,.92);
  box-shadow: 0 14px 36px rgba(18,32,58,.06);
  height: 100%;
}
.ud-about-axis__title{
  font-family: var(--ud-font-display);
  font-weight: 800;
  font-size: 1.02rem;
  color: rgba(10,24,52,.94);
  margin-bottom: .55rem;
  padding-bottom: .55rem;
  border-bottom: 2px solid rgba(218,155,72,.45);
}
.ud-about-axis__text{
  font-weight: 600;
  font-size: .95rem;
  line-height: 1.65;
  color: rgba(18,32,58,.78);
}
.ud-about-quote{
  max-width: 46rem;
  margin-left: auto;
  margin-right: auto;
  padding: 1.5rem 1.35rem;
  border-radius: 18px;
  border-left: 4px solid var(--ud-gold);
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(24,40,88,.10);
  border-left-width: 4px;
  border-left-color: rgba(217,160,74,.95);
  box-shadow: 0 18px 48px rgba(18,32,58,.08);
}
.ud-about-quote__text{
  font-family: var(--ud-font-display);
  font-weight: 600;
  font-style: italic;
  font-size: clamp(1.05rem, 2vw, 1.22rem);
  line-height: 1.55;
  color: rgba(13,21,40,.88);
}
.ud-about-intro-text{
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.6;
  color: rgba(18,32,58,.76);
  max-width: 38rem;
}
.ud-about-offer{
  padding: 1.35rem 1.25rem;
}
@media (min-width: 768px){
  .ud-about-offer{
    padding: 1.65rem 1.75rem;
  }
}
.ud-about-offer__list{
  display: flex;
  flex-direction: column;
  gap: .65rem;
}
.ud-about-offer__row{
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  padding: .85rem 1rem;
  border-radius: 14px;
  background: rgba(24,40,88,.03);
  border: 1px solid rgba(24,40,88,.08);
  font-weight: 650;
  font-size: .97rem;
  line-height: 1.5;
  color: rgba(13,21,40,.88);
}
.ud-about-offer__marker{
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  margin-top: .42rem;
  border-radius: 3px;
  background: var(--ud-blue);
  opacity: .85;
}
.ud-about-footnote{
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.55;
  color: rgba(18,32,58,.62);
  max-width: 36rem;
}

.ud-about-card{
  padding: 1.4rem 1.4rem 1.2rem;
}
.ud-legal-placeholder{
  font-style: italic;
  color: rgba(18,32,58,.55);
  font-size: .95em;
}
.ud-legal-kv{
  font-weight: 650;
  color: rgba(18,32,58,.78);
  line-height: 1.55;
}
.ud-about-p{
  font-weight: 650;
  color: rgba(18,32,58,.78);
  line-height: 1.7;
}
.ud-about-p--html h2,
.ud-about-p--html h3,
.ud-about-p--html h4{
  font-size: 1.05rem;
  font-weight: 800;
  margin: 1rem 0 .5rem;
  color: var(--ud-night);
}
.ud-about-p--html h2:first-child,
.ud-about-p--html h3:first-child,
.ud-about-p--html h4:first-child{
  margin-top: 0;
}
.ud-about-p--html ul,
.ud-about-p--html ol{
  margin: 0 0 .85rem;
  padding-left: 1.25rem;
  font-weight: 650;
  color: rgba(18,32,58,.78);
}
.ud-about-p--html p{
  margin: 0 0 .65rem;
}
.ud-about-p--html p:last-child{
  margin-bottom: 0;
}
.ud-about-list{
  margin: .25rem 0 1.1rem;
  padding-left: 1.15rem;
  color: rgba(18,32,58,.82);
  font-weight: 650;
}
.ud-about-list li{
  margin-bottom: .35rem;
}

@media (min-width: 992px){
  .ud-about-page .ud-section-title.text-lg-start .ud-section-divider{
    margin-left: 0;
    margin-right: auto;
  }
}

.ud-about-intro__frame{
  max-width: 380px;
  padding: 0.65rem;
  border-radius: 28px;
  background:
    linear-gradient(145deg, rgba(218,155,72,.35), rgba(24,40,88,.12));
  box-shadow: 0 28px 70px rgba(18,32,58,.14);
}
.ud-about-intro__img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 22px;
  box-shadow: 0 14px 40px rgba(18,32,58,.12);
}

.ud-about-stat{
  padding: 1.15rem 1.2rem 1.05rem;
}
.ud-about-stat--location{
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ud-about-stat--location:hover{
  transform: translateY(-3px);
  box-shadow: 0 24px 66px rgba(18,32,58,.14);
  border-color: rgba(24,40,88,.18);
  color: inherit;
}
.ud-about-stat__map-link{
  font-weight: 800;
  color: var(--ud-blue);
}
.ud-about-stat__label{
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .68rem;
  color: rgba(24,40,88,.62);
  margin-bottom: 0.35rem;
}
.ud-about-stat__value{
  font-family: var(--ud-font-display);
  font-weight: 900;
  font-size: clamp(1.15rem, 2.4vw, 1.45rem);
  color: var(--ud-blue);
  letter-spacing: .01em;
  line-height: 1.15;
  margin-bottom: 0.5rem;
}
.ud-about-stat__hint{
  font-weight: 650;
  font-size: 0.92rem;
  line-height: 1.5;
  color: rgba(18,32,58,.72);
}

.ud-about-section-title{
  font-family: var(--ud-font-display);
  font-weight: 900;
  color: var(--ud-blue);
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
  letter-spacing: -.01em;
}
.ud-about-lead{
  font-weight: 650;
  color: rgba(18,32,58,.76);
  line-height: 1.6;
}

.ud-about-pillar{
  padding: 1.25rem 1.25rem 1.15rem;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ud-about-pillar:hover{
  transform: translateY(-3px);
  box-shadow: 0 26px 64px rgba(18,32,58,.14);
  border-color: rgba(24,40,88,.16);
}
.ud-about-pillar__icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  margin-bottom: 0.85rem;
  font-weight: 900;
  font-size: 0.82rem;
  letter-spacing: .06em;
  color: rgba(90,74,29,.95);
  background: linear-gradient(155deg, rgba(218,155,72,.28), rgba(218,155,72,.10));
  border: 1px solid rgba(218,155,72,.50);
  box-shadow: 0 12px 28px rgba(218,155,72,.18);
}
.ud-about-pillar__title{
  font-family: var(--ud-font-display);
  font-weight: 900;
  font-size: 1.08rem;
  color: rgba(10,24,52,.92);
  margin-bottom: 0.55rem;
}
.ud-about-pillar__text{
  font-weight: 650;
  font-size: 0.95rem;
  line-height: 1.65;
  color: rgba(18,32,58,.78);
}

.ud-about-highlight{
  padding: 1.35rem 1.35rem 1.35rem 1.25rem;
  border-radius: 18px;
  border: 1px solid rgba(218,155,72,.45);
  background:
    linear-gradient(120deg, rgba(218,155,72,.14), rgba(255,255,255,.92) 45%, rgba(24,40,88,.04));
  box-shadow: 0 20px 55px rgba(18,32,58,.10);
}
@media (min-width: 768px){
  .ud-about-highlight{
    padding: 1.5rem 1.75rem 1.5rem 1.5rem;
    border-left: 5px solid rgba(218,155,72,.85);
  }
}
.ud-about-highlight__lead{
  font-weight: 650;
  font-size: clamp(1.02rem, 1.5vw, 1.12rem);
  line-height: 1.7;
  color: rgba(18,32,58,.82);
}

.ud-about-gridlist__item{
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  font-weight: 650;
  font-size: 0.96rem;
  line-height: 1.55;
  color: rgba(18,32,58,.82);
  padding: 0.65rem 0.75rem;
  border-radius: 14px;
  background: rgba(24,40,88,.03);
  border: 1px solid rgba(24,40,88,.08);
  height: 100%;
}
.ud-about-gridlist__dot{
  flex: 0 0 auto;
  width: 12px;
  height: 12px;
  margin-top: 0.35rem;
  border-radius: 4px;
  background: radial-gradient(8px 8px at 35% 35%, rgba(218,155,72,.75), rgba(218,155,72,.22));
  border: 1px solid rgba(218,155,72,.55);
  box-shadow: 0 8px 16px rgba(218,155,72,.22);
}

.ud-about-cta{
  padding: 1.75rem 1.35rem 1.65rem;
  background:
    radial-gradient(520px 140px at 15% 0%, rgba(218,155,72,.16), transparent 55%),
    radial-gradient(480px 120px at 90% 20%, rgba(24,40,88,.08), transparent 55%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(244,246,251,.88));
}
@media (min-width: 768px){
  .ud-about-cta{
    padding: 2rem 2rem 1.85rem;
  }
}
.ud-about-cta__title{
  font-family: var(--ud-font-display);
  font-weight: 900;
  color: var(--ud-blue);
  font-size: clamp(1.25rem, 2vw, 1.55rem);
}
.ud-about-cta__text{
  font-weight: 650;
  color: rgba(18,32,58,.74);
  max-width: 36rem;
  line-height: 1.6;
}

a.ud-legal-jump{
  display: block;
  height: 100%;
  padding: 1rem 1.05rem;
  border-radius: 18px;
  text-decoration: none;
  color: inherit;
  border: 1px solid rgba(24,40,88,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.90));
  box-shadow: 0 18px 55px rgba(18,32,58,.10);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
a.ud-legal-jump:hover{
  transform: translateY(-2px);
  box-shadow: 0 22px 60px rgba(18,32,58,.14);
  border-color: rgba(24,40,88,.16);
  color: inherit;
}
.ud-legal-jump__kicker{
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-size: .66rem;
  color: rgba(24,40,88,.58);
  margin-bottom: .35rem;
}
.ud-legal-jump__title{
  font-family: var(--ud-font-display);
  font-weight: 900;
  font-size: 1.02rem;
  color: var(--ud-blue);
  margin-bottom: .25rem;
}
.ud-legal-jump__text{
  font-size: .9rem;
  font-weight: 650;
  color: rgba(18,32,58,.72);
  margin: 0;
  line-height: 1.45;
}

h2[id^="legal-"],
h2[id^="privacy-"]{
  scroll-margin-top: calc(5.75rem + env(safe-area-inset-top, 0px));
}

@media (prefers-reduced-motion: reduce){
  .ud-about-pillar:hover{
    transform: none;
  }
  a.ud-legal-jump:hover{
    transform: none;
  }
}

@media (max-width: 991.98px){
  .ud-service-hero__grid{
    grid-template-columns: 1fr;
  }
}

.ud-start-hero{
  padding: 2.2rem 0 1.3rem;
  background:
    radial-gradient(900px 420px at 15% 20%, rgba(218,155,72,.18), transparent 60%),
    radial-gradient(900px 420px at 85% 30%, rgba(24,40,88,.14), transparent 62%),
    linear-gradient(180deg, rgba(24,40,88,.03), rgba(24,40,88,0));
}
.ud-start-hero.ud-page-demarrer{
  padding: 1.1rem 0 1rem;
}
@media (min-width: 768px){
  .ud-start-hero.ud-page-demarrer{
    padding: 1.45rem 0 1.2rem;
  }
}
@media (min-width: 992px){
  .ud-start-hero.ud-page-demarrer{
    padding: 1.85rem 0 1.35rem;
  }
}
.ud-start-hero__card{
  border-radius: 20px;
  padding: 1.25rem 1.25rem 1.1rem;
  border: 1px solid rgba(24,40,88,.12);
  background: rgba(255,255,255,.78);
  box-shadow: 0 22px 70px rgba(18,32,58,.14);
  backdrop-filter: blur(10px);
}
.ud-start-hero__kicker{
  display:inline-flex;
  align-items:center;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .72rem;
  color: rgba(24,40,88,.82);
  background: rgba(218,155,72,.18);
  border: 1px solid rgba(218,155,72,.45);
  padding: .42rem .75rem;
  border-radius: 999px;
}
.ud-start-hero__title{
  font-weight: 900;
  color: var(--ud-blue);
  letter-spacing: .01em;
  font-size: clamp(1.8rem, 2.8vw, 2.6rem);
}
.ud-start-hero__subtitle{
  font-weight: 650;
  color: rgba(18,32,58,.76);
}
.ud-start-steps{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}
.ud-start-step{
  display:flex;
  gap: .7rem;
  align-items:flex-start;
  padding: .85rem .85rem;
  border-radius: 18px;
  border: 1px solid rgba(24,40,88,.10);
  background: rgba(24,40,88,.02);
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}
.ud-start-step:hover{
  transform: translateY(-3px);
  box-shadow: 0 22px 70px rgba(18,32,58,.14);
  border-color: rgba(24,40,88,.20);
}
.ud-start-step.is-active{
  background: rgba(255,255,255,.82);
  border-color: rgba(218,155,72,.55);
  box-shadow: 0 24px 66px rgba(218,155,72,.16);
}
.ud-start-step.is-done .ud-start-step__num{
  background: rgba(24,40,88,.10);
  border-color: rgba(24,40,88,.18);
}
.ud-start-step.is-done .ud-start-step__num::after{
  content:"✓";
  font-weight: 900;
  margin-left: .25rem;
  color: rgba(24,40,88,.90);
}
.ud-start-step__num{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  color: rgba(10,24,52,.92);
  background: rgba(218,155,72,.22);
  border: 1px solid rgba(218,155,72,.40);
  flex: 0 0 auto;
}
.ud-start-step__title{
  font-weight: 900;
  color: rgba(10,24,52,.90);
}
.ud-start-step__text{
  font-weight: 600;
  color: rgba(18,32,58,.74);
  font-size: .9rem;
}

.ud-appt-hero{
  padding: 2.2rem 0 1.2rem;
  background:
    radial-gradient(900px 420px at 15% 20%, rgba(218,155,72,.18), transparent 60%),
    radial-gradient(900px 420px at 85% 30%, rgba(24,40,88,.14), transparent 62%),
    linear-gradient(180deg, rgba(24,40,88,.03), rgba(24,40,88,0));
}
.ud-appt-hero.ud-page-rdv{
  padding: 1.1rem 0 1rem;
}
@media (min-width: 768px){
  .ud-appt-hero.ud-page-rdv{
    padding: 1.45rem 0 1.15rem;
  }
}
@media (min-width: 992px){
  .ud-appt-hero.ud-page-rdv{
    padding: 1.85rem 0 1.35rem;
  }
}
.ud-appt-card{
  padding: 1.2rem 1.15rem 1.05rem;
}
.ud-appt-form .form-select{
  border-radius: 14px;
  border-color: rgba(24,40,88,.14);
  padding: .7rem .85rem;
}
.ud-appt-form .form-select:focus{
  border-color: rgba(24,40,88,.32);
  box-shadow: 0 0 0 .25rem rgba(24,40,88,.10);
}

/* Parcours RDV guidé (style étape par étape) */
.ud-rdv-wizard{
  max-width: 42rem;
  margin: 0 auto;
  padding: 1.25rem 1.15rem 1.5rem;
  border-radius: 20px;
  border: 1px solid rgba(24,40,88,.10);
  box-shadow: 0 18px 50px rgba(12,24,48,.08);
}
.ud-rdv-wizard__steps{
  display: flex;
  gap: .35rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: .35rem;
  margin-bottom: 1.25rem;
  border-bottom: 1px solid rgba(24,40,88,.10);
}
.ud-rdv-wizard__step{
  flex: 1 0 auto;
  min-width: max-content;
  border: 0;
  background: transparent;
  color: rgba(24,40,88,.55);
  font-weight: 700;
  font-size: .78rem;
  padding: .45rem .15rem .55rem;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.ud-rdv-wizard__step.is-active{
  color: var(--ud-blue);
  border-bottom-color: var(--ud-gold);
}
.ud-rdv-wizard__step.is-done{
  color: rgba(24,40,88,.78);
}
.ud-rdv-wizard__context{
  margin-bottom: 1rem;
  padding: .75rem .9rem;
  border-radius: 12px;
  background: rgba(218,155,72,.12);
  border: 1px solid rgba(218,155,72,.35);
  font-size: .92rem;
  color: rgba(10,24,52,.88);
}
.ud-rdv-wizard__context-label{
  display: block;
  font-size: .72rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(24,40,88,.55);
  margin-bottom: .15rem;
}
.ud-rdv-wizard__context-volet{
  color: rgba(24,40,88,.72);
}
.ud-rdv-wizard__panel{
  animation: ud-rdv-fade .22s ease;
}
@keyframes ud-rdv-fade{
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
.ud-rdv-wizard__back{
  border: 0;
  background: transparent;
  color: rgba(24,40,88,.62);
  font-weight: 650;
  font-size: .88rem;
  padding: 0;
  margin-bottom: .85rem;
}
.ud-rdv-wizard__back:hover{
  color: var(--ud-blue);
}
.ud-rdv-wizard__kicker{
  margin: 0 0 .35rem;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(24,40,88,.52);
}
.ud-rdv-wizard__title{
  margin: 0 0 .65rem;
  font-family: var(--ud-font-display);
  font-weight: 800;
  font-size: clamp(1.35rem, 4.5vw, 1.85rem);
  line-height: 1.15;
  color: var(--ud-blue);
}
.ud-rdv-wizard__lead{
  margin: 0 0 1.15rem;
  color: rgba(24,40,88,.68);
  font-weight: 500;
}
.ud-rdv-wizard__cta{
  min-height: 3rem;
  border-radius: 999px;
  font-weight: 800;
}
.ud-rdv-office-list{
  display: grid;
  gap: .65rem;
}
.ud-rdv-office-option{
  display: block;
  margin: 0;
  cursor: pointer;
}
.ud-rdv-office-option input{
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.ud-rdv-office-option__box{
  display: block;
  padding: .85rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(24,40,88,.14);
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.ud-rdv-office-option input:checked + .ud-rdv-office-option__box,
.ud-rdv-office-option input:focus-visible + .ud-rdv-office-option__box{
  border-color: rgba(218,155,72,.75);
  box-shadow: 0 0 0 3px rgba(218,155,72,.22);
  background: rgba(218,155,72,.06);
}
.ud-rdv-office-option__title{
  font-weight: 700;
  color: rgba(10,24,52,.9);
  font-size: .95rem;
}
.ud-rdv-summary{
  padding: 1rem;
  border-radius: 14px;
  background: rgba(24,40,88,.04);
  border: 1px solid rgba(24,40,88,.08);
}
.ud-rdv-summary__list{
  margin: 0;
  display: grid;
  gap: .55rem;
}
.ud-rdv-summary__list > div{
  display: grid;
  grid-template-columns: 6.5rem 1fr;
  gap: .5rem;
  align-items: start;
}
.ud-rdv-summary__list dt{
  margin: 0;
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: rgba(24,40,88,.55);
}
.ud-rdv-summary__list dd{
  margin: 0;
  font-weight: 650;
  color: rgba(10,24,52,.9);
  word-break: break-word;
}
@media (max-width: 575.98px){
  .ud-rdv-wizard{
    padding: 1rem .85rem 1.25rem;
    border-radius: 16px;
  }
  .ud-rdv-summary__list > div{
    grid-template-columns: 1fr;
    gap: .15rem;
  }
}

.ud-admin-shell .ud-admin-title,
.ud-admin-shell .ud-admin-kicker,
.ud-admin-shell .ud-admin-panel__title,
.ud-admin-shell .ud-admin-topbar__title,
.ud-admin-shell .ud-admin-side__title,
.ud-admin-shell .ud-admin-metric__label{
  font-family: var(--ud-font-body);
}

.ud-admin-wrap{
  background:
    radial-gradient(900px 420px at 15% 20%, rgba(218,155,72,.16), transparent 60%),
    radial-gradient(900px 420px at 85% 30%, rgba(24,40,88,.10), transparent 62%),
    linear-gradient(180deg, rgba(24,40,88,.02), rgba(24,40,88,0));
}
.ud-admin-card{
  border-radius: 22px;
  border: 1px solid rgba(24,40,88,.12);
  background: rgba(255,255,255,.80);
  box-shadow: 0 30px 90px rgba(18,32,58,.18);
  backdrop-filter: blur(12px);
  padding: 1.25rem 1.25rem 1.15rem;
}
.ud-admin-brand{
  display:flex;
  align-items:center;
  gap: .85rem;
}
.ud-admin-brand img{
  border-radius: 14px;
  box-shadow: 0 16px 44px rgba(18,32,58,.14);
}
.ud-admin-brand__title{
  font-weight: 900;
  color: var(--ud-blue);
  letter-spacing: .02em;
}
.ud-admin-brand__sub{
  font-weight: 750;
  color: rgba(18,32,58,.70);
}
.ud-admin-foot{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.ud-admin-page{
  background:
    radial-gradient(1000px 460px at 10% 10%, rgba(218,155,72,.12), transparent 60%),
    radial-gradient(1000px 460px at 90% 0%, rgba(24,40,88,.08), transparent 60%),
    linear-gradient(180deg, rgba(24,40,88,.01), rgba(24,40,88,0));
}
.ud-admin-top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.ud-admin-kicker{
  display:inline-flex;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: .72rem;
  color: rgba(24,40,88,.78);
}
.ud-admin-title{
  font-weight: 900;
  color: var(--ud-blue);
  letter-spacing: .01em;
}
.ud-admin-sub{
  font-weight: 650;
  color: rgba(18,32,58,.72);
}
.ud-admin-metric{
  border-radius: 20px;
  border: 1px solid rgba(24,40,88,.12);
  background: rgba(255,255,255,.78);
  box-shadow: 0 22px 70px rgba(18,32,58,.14);
  backdrop-filter: blur(10px);
  padding: 1.1rem 1.1rem 1rem;
  display:block;
  text-decoration:none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ud-admin-metric--link:hover{
  transform: translateY(-3px);
  box-shadow: 0 30px 90px rgba(18,32,58,.18);
  border-color: rgba(218,155,72,.55);
}
.ud-admin-metric__label{
  font-weight: 900;
  color: rgba(24,40,88,.78);
  letter-spacing: .10em;
  text-transform: uppercase;
  font-size: .72rem;
}
.ud-admin-metric__value{
  font-weight: 900;
  font-size: 2rem;
  color: rgba(10,24,52,.92);
  line-height: 1.1;
  margin-top: .3rem;
}
.ud-admin-metric__hint{
  font-weight: 650;
  color: rgba(18,32,58,.66);
  margin-top: .15rem;
}
.ud-admin-panel{
  border-radius: 20px;
  border: 1px solid rgba(24,40,88,.12);
  background: rgba(255,255,255,.78);
  box-shadow: 0 22px 70px rgba(18,32,58,.14);
  backdrop-filter: blur(10px);
  overflow: hidden;
}
.ud-admin-panel__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: .75rem;
  padding: 1rem 1.05rem;
  border-bottom: 1px solid rgba(24,40,88,.10);
}
.ud-admin-panel__title{
  font-weight: 900;
  color: rgba(10,24,52,.92);
}
.ud-admin-panel__meta{
  font-weight: 800;
  color: rgba(24,40,88,.64);
  font-size: .88rem;
}
.ud-admin-table{
  margin: 0;
}
.ud-admin-table thead th{
  font-weight: 900;
  color: rgba(24,40,88,.78);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .72rem;
  border-bottom-color: rgba(24,40,88,.10);
}
.ud-admin-table tbody td{
  font-weight: 650;
  color: rgba(18,32,58,.84);
  border-top-color: rgba(24,40,88,.08);
}

.ud-admin-shell.ud-body{
  background: #eef1f7;
}
.ud-admin-shell .ud-footer,
.ud-admin-shell .ud-topbar{
  display:none;
}
.ud-admin-shell__wrap{
  min-height: 100vh;
  display:grid;
  grid-template-columns: minmax(240px, 280px) 1fr;
  background: #eef1f7;
}
.ud-admin-side{
  position: sticky;
  top:0;
  height: 100vh;
  padding: 1rem 0.85rem;
  background: linear-gradient(180deg, #151d32 0%, #0c1220 55%, #0a0f18 100%);
  border-right: 1px solid rgba(255,255,255,.08);
  display:flex;
  flex-direction:column;
}
.ud-admin-side__brand{
  display:flex;
  gap:.75rem;
  align-items:center;
  text-decoration:none;
  padding:.75rem .75rem;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.06);
  transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.ud-admin-side__brand:hover{
  background: rgba(255,255,255,.10);
  border-color: rgba(218,155,72,.35);
}
.ud-admin-side__brand img{
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(0,0,0,.35);
}
.ud-admin-side__title{
  font-weight: 800;
  color: #fff;
  letter-spacing: .02em;
}
.ud-admin-side__sub{
  font-weight: 600;
  color: rgba(255,255,255,.52);
  font-size: .85rem;
}
.ud-admin-nav{
  margin-top: 1rem;
  display:grid;
  gap:.35rem;
}
.ud-admin-nav__divider{
  height:1px;
  background: rgba(255,255,255,.10);
  margin:.5rem 0;
}
.ud-admin-nav__link{
  display:flex;
  padding:.65rem .75rem;
  border-radius: 12px;
  text-decoration:none;
  font-weight: 650;
  font-size: .92rem;
  color: rgba(255,255,255,.78);
  border: 1px solid transparent;
  align-items:center;
  justify-content:space-between;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.ud-admin-nav__link:hover{
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.08);
  color: #fff;
}
.ud-admin-nav__link.is-active{
  background: rgba(218,155,72,.16);
  border-color: rgba(218,155,72,.45);
  color: #fff;
}
.ud-admin-nav__link.is-active::after{
  content:"";
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: radial-gradient(circle at 30% 30%, #e8b04a, rgba(218,155,72,.4));
  box-shadow: 0 0 12px rgba(218,155,72,.5);
}
.ud-admin-nav__link--danger{
  color: #f5a8a8 !important;
}
.ud-admin-nav__link--danger:hover{
  background: rgba(180,40,40,.25);
  border-color: rgba(255,100,100,.25);
  color: #fff !important;
}
.ud-admin-side__foot{
  margin-top: auto;
  padding: .75rem .4rem 0;
  color: rgba(255,255,255,.38) !important;
  font-size: .75rem;
}
.ud-admin-main{
  min-width: 0;
}
.ud-admin-main__top{
  padding: 1.1rem 1.35rem;
  position: sticky;
  top: 0;
  z-index: 5;
  background: rgba(255,255,255,.88);
  border-bottom: 1px solid rgba(24,40,88,.10);
  backdrop-filter: blur(14px);
  box-shadow: 0 4px 24px rgba(18,32,58,.06);
}
.ud-admin-main__page-title{
  font-family: var(--ud-font-body);
  font-weight: 800;
  font-size: clamp(1.15rem, 2.5vw, 1.35rem);
  color: rgba(10,24,52,.95);
  letter-spacing: -.02em;
  margin: 0 0 .35rem;
  line-height: 1.2;
}
.ud-admin-main__meta{
  font-size: .88rem;
  font-weight: 600;
  color: rgba(18,32,58,.62);
}
.ud-admin-main__meta strong{
  color: rgba(10,24,52,.88);
  font-weight: 700;
}
.ud-admin-page-lead,
.ud-admin-dash-hero__lead{
  font-size: .95rem;
  line-height: 1.55;
  max-width: 52rem;
}
.ud-admin-dash-hero{
  padding: 1.1rem 1.2rem;
  border-radius: 18px;
  border: 1px solid rgba(24,40,88,.10);
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(247,244,236,.92));
  box-shadow: 0 14px 40px rgba(18,32,58,.08);
}
#ud-inbox-contacts,
#ud-inbox-appts{
  scroll-margin-top: 1.25rem;
}
.ud-admin-main__content{
  padding-bottom: 2rem;
}
@media (max-width: 991.98px){
  .ud-admin-shell__wrap{
    grid-template-columns: 1fr;
  }
  .ud-admin-side{
    position: relative;
    height: auto;
    border-right: 0;
    border-bottom: 1px solid rgba(24,40,88,.10);
  }
  .ud-admin-main__top{
    position: relative;
    border-bottom: 0;
    background: transparent;
    backdrop-filter: none;
  }
}

.ud-admin-offcanvas{
  background: linear-gradient(180deg, #151d32 0%, #0c1220 100%);
  color: rgba(255,255,255,.88);
}
.ud-admin-offcanvas .btn-close{
  filter: invert(1);
  opacity: .7;
}
.ud-admin-offcanvas .ud-admin-side__title{
  color: #fff;
}
.ud-admin-offcanvas .ud-admin-side__sub{
  color: rgba(255,255,255,.52);
}
.ud-admin-offcanvas .ud-admin-nav__link{
  color: rgba(255,255,255,.82);
}
.ud-admin-offcanvas .text-muted{
  color: rgba(255,255,255,.45) !important;
}
.ud-admin-offcanvas .offcanvas-header{
  border-bottom: 1px solid rgba(255,255,255,.10);
}

.ud-admin-topbar{
  position: sticky;
  top: 0;
  z-index: 1040;
  padding: .65rem 0;
  background: linear-gradient(180deg, #151d32 0%, #121a2e 100%);
  border-bottom: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 8px 28px rgba(0,0,0,.2);
}
.ud-admin-topbar__title{
  font-weight: 800;
  color: #fff;
  letter-spacing: .04em;
  font-size: .95rem;
}
.ud-admin-topbar__btn{
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
  color: #fff !important;
  font-weight: 700;
  font-size: .82rem;
  padding: .45rem .65rem;
}
.ud-admin-topbar__burger{
  width: 18px;
  height: 2px;
  background: rgba(255,255,255,.92);
  display:block;
  position: relative;
  border-radius: 999px;
}
.ud-admin-topbar__burger::before,
.ud-admin-topbar__burger::after{
  content:"";
  position:absolute;
  left:0;
  width: 18px;
  height: 2px;
  background: rgba(255,255,255,.92);
  border-radius: 999px;
}
.ud-admin-topbar__burger::before{ top:-6px; }
.ud-admin-topbar__burger::after{ top:6px; }

.ud-admin-table tbody tr:hover{
  background: rgba(24,40,88,.03);
}
.ud-admin-table td, .ud-admin-table th{
  vertical-align: middle;
}

.ud-admin-panel{
  border-radius: 22px;
}
.ud-admin-panel__head{
  padding: 1.1rem 1.15rem;
}

/* Dashboard cosmetics */
.ud-admin-dashboard .ud-admin-hero{
  border-radius: 26px;
  border: 1px solid rgba(24,40,88,.12);
  background:
    radial-gradient(900px 420px at 20% 0%, rgba(218,155,72,.22), transparent 60%),
    radial-gradient(900px 420px at 85% 10%, rgba(24,40,88,.20), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.78), rgba(255,255,255,.62));
  box-shadow: 0 30px 100px rgba(18,32,58,.14);
  backdrop-filter: blur(14px);
  padding: 1.4rem 1.4rem 1.1rem;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap: 1rem;
  flex-wrap: wrap;
}
.ud-admin-hero__content{ max-width: 720px; }
.ud-admin-hero__title{
  font-weight: 1000;
  color: var(--ud-blue);
  letter-spacing: .01em;
  font-size: clamp(1.6rem, 2.2vw, 2.2rem);
}
.ud-admin-hero__sub{
  font-weight: 650;
  color: rgba(18,32,58,.72);
}
.ud-admin-hero__actions{
  display:flex;
  gap: .6rem;
}

.ud-admin-panel--hero{
  background:
    radial-gradient(600px 260px at 10% 0%, rgba(218,155,72,.20), transparent 60%),
    radial-gradient(600px 260px at 90% 0%, rgba(24,40,88,.16), transparent 60%),
    rgba(255,255,255,.78);
}

.ud-admin-stat{
  text-decoration:none;
}

.ud-admin-timeline{
  position: relative;
}
.ud-admin-timeline__item{
  display:grid;
  grid-template-columns: 18px 1fr;
  gap: .75rem;
  padding: .55rem 0;
}
.ud-admin-timeline__dot{
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: radial-gradient(circle at 30% 30%, rgba(218,155,72,.95), rgba(218,155,72,.25));
  box-shadow: 0 16px 44px rgba(218,155,72,.18);
  margin-top: .55rem;
}
.ud-admin-timeline__title{
  font-weight: 900;
  color: rgba(10,24,52,.92);
  line-height: 1.2;
}
.ud-admin-timeline__sub{
  font-weight: 650;
  color: rgba(18,32,58,.72);
}
.ud-admin-timeline__time{
  font-weight: 850;
  color: rgba(18,32,58,.60);
  font-size: .88rem;
}
.ud-admin-timeline__meta{
  margin-top: .35rem;
  font-weight: 750;
  color: rgba(24,40,88,.72);
}

.ud-admin-badge{
  display:inline-flex;
  align-items:center;
  padding: .22rem .55rem;
  border-radius: 999px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  font-size: .68rem;
  border: 1px solid rgba(24,40,88,.10);
  background: rgba(255,255,255,.70);
}
.ud-admin-badge--contact{
  color: rgba(24,40,88,.88);
  background: rgba(24,40,88,.06);
  border-color: rgba(24,40,88,.14);
}
.ud-admin-badge--appointment{
  color: rgba(90,74,29,.95);
  background: rgba(218,155,72,.22);
  border-color: rgba(218,155,72,.40);
}

.ud-admin-status{
  display:inline-flex;
  align-items:center;
  padding: .22rem .55rem;
  border-radius: 999px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: .68rem;
  border: 1px solid rgba(24,40,88,.14);
  background: rgba(255,255,255,.70);
}
.ud-admin-status--pending{
  color: rgba(25,81,184,.92);
  background: rgba(52, 121, 255, .12);
  border-color: rgba(52, 121, 255, .30);
}
.ud-admin-status--confirmed{
  color: rgba(14,116,53,.92);
  background: rgba(16, 185, 129, .10);
  border-color: rgba(16, 185, 129, .32);
}
.ud-admin-status--cancelled{
  color: rgba(163, 28, 28, .92);
  background: rgba(239, 68, 68, .10);
  border-color: rgba(239, 68, 68, .32);
}

.ud-admin-accordion .accordion-button{
  font-weight: 900;
  border-radius: 14px !important;
  background: rgba(255,255,255,.66);
  box-shadow: none;
  color: rgba(10,24,52,.90);
}
.ud-admin-accordion .accordion-item{
  border: 0;
  border-radius: 14px;
  background: rgba(255,255,255,.35);
}
.ud-admin-accordion .accordion-body{
  padding: 1rem;
}

.ud-stepper{
  display:flex;
  align-items:center;
  gap: .85rem;
}
.ud-stepper__bar{
  position: relative;
  height: 10px;
  flex: 1 1 auto;
  border-radius: 999px;
  background: rgba(24,40,88,.08);
  border: 1px solid rgba(24,40,88,.10);
  overflow: hidden;
}
.ud-stepper__fill{
  height: 100%;
  width: var(--ud-progress, 33%);
  background: linear-gradient(90deg, rgba(218,155,72,.75), rgba(24,40,88,.55));
  border-radius: 999px;
  box-shadow: 0 14px 34px rgba(218,155,72,.18);
  transition: width .35s ease;
}
.ud-stepper__dots{
  display:flex;
  gap: .45rem;
  flex: 0 0 auto;
}
.ud-dot{
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  text-decoration:none;
  color: rgba(10,24,52,.82);
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(24,40,88,.12);
  box-shadow: 0 16px 44px rgba(18,32,58,.10);
  transition: transform .18s ease, border-color .18s ease, background-color .18s ease;
}
.ud-dot:hover{
  transform: translateY(-2px);
  border-color: rgba(24,40,88,.22);
}
.ud-dot.is-active{
  border-color: rgba(218,155,72,.60);
  background: rgba(218,155,72,.18);
}
.ud-dot.is-done{
  border-color: rgba(24,40,88,.18);
  background: rgba(24,40,88,.06);
}
.ud-dot span{ line-height: 1; }

.ud-step-section{
  scroll-margin-top: 92px;
}

.ud-pick{
  display:flex;
  align-items:center;
  gap: .75rem;
  padding: .9rem .95rem;
  border-radius: 18px;
  text-decoration:none;
  border: 1px solid rgba(24,40,88,.10);
  background: rgba(255,255,255,.72);
  box-shadow: 0 16px 44px rgba(18,32,58,.10);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ud-pick:hover{
  transform: translateY(-3px);
  box-shadow: 0 24px 66px rgba(18,32,58,.16);
  border-color: rgba(24,40,88,.20);
}
.ud-pick.is-selected{
  border-color: rgba(218,155,72,.55);
  box-shadow: 0 24px 66px rgba(218,155,72,.18);
}
.ud-pick img{
  border-radius: 14px;
  background: rgba(24,40,88,.04);
  padding: 6px;
}
.ud-pick__text{ min-width: 0; }
.ud-pick__title{
  font-weight: 900;
  color: rgba(10,24,52,.92);
  line-height: 1.15;
}
.ud-pick__meta{
  font-weight: 700;
  color: rgba(24,40,88,.70);
  font-size: .88rem;
}
.ud-pick__arrow{
  margin-left: auto;
  font-weight: 900;
  color: rgba(24,40,88,.70);
}

@media (max-width: 991.98px){
  .ud-start-steps{ grid-template-columns: 1fr; }
  .ud-stepper{ flex-direction: column; align-items: stretch; }
  .ud-stepper__dots{ justify-content: center; }
}

@media (max-width: 575.98px){
  .ud-hero{
    padding: 1.6rem 0 1rem;
  }
  .ud-chip{
    font-size: .8rem;
  }
  .ud-stats{
    gap: .45rem;
  }
  .ud-stat{
    min-width: 84px;
    padding: .55rem .6rem;
  }
  .ud-service-card--visual-only .ud-service-card__visual{
    min-height: 9rem;
    padding: 0.75rem 0.75rem 0.5rem;
  }
  .ud-service-card--visual-only .ud-service-card__visual-img{
    max-height: min(36vh, 220px);
  }
  .ud-service-card--visual-only .ud-service-card__footer{
    padding: 0 0.85rem 1rem;
  }
  .ud-service-card--visual-only .ud-service-card__home-head{
    padding: 0.45rem 0.65rem 0.35rem;
  }
  .ud-service-card--visual-only .ud-service-card__home-title{
    font-size: 0.92rem;
  }
}

/* Offres & recrutement — même gabarit que Rendez-vous + onglets catalogue */
.ud-page-offres .ud-appt-card{
  padding: 1.35rem 1.25rem 1.2rem;
}
.ud-offres-tile{
  padding: 1.2rem 1.25rem 1.15rem;
  border-radius: 18px;
  border-top: 3px solid rgba(218,155,72,.65);
}
.ud-offres-tile__title{
  font-family: var(--ud-font-display);
  font-weight: 900;
  font-size: 1.05rem;
  line-height: 1.3;
  color: rgba(10,24,52,.94);
  margin-bottom: .5rem;
}
.ud-offres-tile__summary{
  font-size: .92rem;
  line-height: 1.55;
  font-weight: 600;
  color: rgba(18,32,58,.76);
  margin-bottom: 0;
}
.ud-offres-tile__details{
  font-size: .88rem;
}
.ud-offres-tile__more{
  cursor: pointer;
  font-weight: 750;
  color: rgba(24,40,88,.82);
  list-style: none;
}
.ud-offres-tile__more::-webkit-details-marker{ display: none; }
.ud-offres-tile__body{
  margin-top: .65rem;
  padding-top: .65rem;
  border-top: 1px dashed rgba(24,40,88,.12);
  font-weight: 500;
  line-height: 1.58;
  color: rgba(18,32,58,.8);
  font-size: .9rem;
}
.ud-offres-jobs{
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.ud-offres-jobs__item{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.25rem;
  padding: 1.15rem 1.25rem;
  border-radius: 18px;
  border-left: 3px solid rgba(24,40,88,.4);
  scroll-margin-top: calc(6rem + env(safe-area-inset-top, 0px));
}
.ud-offres-jobs__main{
  flex: 1 1 14rem;
  min-width: 0;
}
.ud-offres-jobs__title{
  font-family: var(--ud-font-display);
  font-weight: 900;
  font-size: 1.08rem;
  line-height: 1.3;
  color: rgba(10,24,52,.94);
  margin-bottom: .35rem;
}
.ud-offres-jobs__summary{
  font-size: .92rem;
  font-weight: 600;
  line-height: 1.5;
  color: rgba(18,32,58,.74);
}
.ud-offres-jobs__btn{
  flex: 0 0 auto;
  align-self: center;
  min-width: 8.5rem;
}
.ud-offres-empty{
  border-radius: 18px;
}
.ud-offres-modal{
  border: 0;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 32px 90px rgba(8,14,32,.35);
}
.ud-offres-modal__kicker{
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(24,40,88,.55);
  margin: 0;
}
.ud-offres-modal__title{
  font-family: var(--ud-font-display);
  font-weight: 900;
  font-size: 1.2rem;
  color: rgba(10,24,52,.94);
  line-height: 1.25;
}
.ud-offres-modal .form-label{
  font-weight: 700;
  font-size: .88rem;
  color: rgba(10,24,52,.88);
}
.ud-job-apply-alert{
  border-radius: 14px;
}

/* Page Équipe */
.ud-page-equipe .ud-team-card{
  border-radius: 20px;
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease;
}
.ud-page-equipe .ud-team-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 26px 70px rgba(18,32,58,.14);
}
.ud-team-card__visual{
  aspect-ratio: 1;
  max-height: 280px;
  background: linear-gradient(160deg, rgba(24,40,88,.08), rgba(218,155,72,.12));
  overflow: hidden;
}
.ud-team-card__photo{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ud-team-card__placeholder{
  width: 100%;
  height: 100%;
  min-height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--ud-font-display);
  font-weight: 900;
  font-size: clamp(2.5rem, 12vw, 3.5rem);
  letter-spacing: 0.06em;
  color: rgba(24,40,88,.35);
  background: radial-gradient(circle at 35% 30%, rgba(218,155,72,.35), rgba(24,40,88,.12));
}
.ud-team-card__body{
  padding: 1.2rem 1.25rem 1.35rem;
}
.ud-team-card__name{
  font-family: var(--ud-font-display);
  font-weight: 900;
  font-size: 1.1rem;
  color: rgba(10,24,52,.94);
  margin-bottom: 0.35rem;
  line-height: 1.25;
}
.ud-team-card__role{
  font-weight: 750;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(24,40,88,.62);
  margin-bottom: 0.75rem;
}
.ud-team-card__bio{
  font-weight: 600;
  font-size: 0.94rem;
  line-height: 1.55;
  color: rgba(18,32,58,.78);
}
@media (max-width: 575.98px){
  .ud-page-equipe .ud-team-card:hover{
    transform: none;
  }
}

@media (max-width: 575.98px){
  .ud-offres-jobs__item{
    flex-direction: column;
    align-items: stretch;
  }
  .ud-offres-jobs__btn{
    width: 100%;
    align-self: stretch;
  }
  .ud-page-offres .ud-services-toolbar{
    width: 100%;
    border-radius: 16px;
  }
  .ud-page-offres .ud-services-tab{
    flex: 1;
    justify-content: center;
    padding-left: .5rem;
    padding-right: .5rem;
  }
}

/* --- Admin : layout & tableaux mobiles --- */
.ud-admin-main__content--padded{
  padding-left: 0;
  padding-right: 0;
}
@media (min-width: 576px){
  .ud-admin-main__content--padded{
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
}
@media (min-width: 992px){
  .ud-admin-main__content--padded{
    padding-left: 0;
    padding-right: 0;
  }
}

.ud-table-scroll,
.ud-admin-panel .table-responsive{
  -webkit-overflow-scrolling: touch;
}
.ud-admin-panel .table-responsive{
  max-width: 100%;
}

/* Admin — formulaire Services : sections lisibles */
.ud-admin-form-block{
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid rgba(24,40,88,.12);
}
.ud-admin-form-block:last-child{
  border-bottom: 0;
  margin-bottom: 0;
  padding-bottom: 0;
}
.ud-admin-form-block__title{
  display: block;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(24,40,88,.55);
  margin-bottom: 0.875rem;
}
.ud-admin-panel .ud-admin-form-block .form-label{
  display: block;
  width: 100%;
}
.ud-admin-panel .ud-admin-form-block .form-text{
  display: block;
  line-height: 1.55;
  margin-top: 0.5rem;
}
.ud-admin-form-block__box{
  border: 1px solid rgba(24,40,88,.14);
  border-radius: 0.5rem;
  padding: 1rem;
  height: 100%;
  background: rgba(255,255,255,.55);
}
.ud-admin-panel .ud-admin-form-hint li{
  line-height: 1.55;
}

@media (max-width: 991.98px){
  .ud-admin-dashboard .ud-admin-hero{
    flex-direction: column;
    align-items: stretch !important;
    padding: 1.1rem 1rem;
  }
  .ud-admin-hero__content{
    max-width: 100%;
  }
  .ud-admin-hero__actions{
    width: 100%;
  }
  .ud-admin-hero__actions .btn{
    flex: 0 0 auto !important;
  }
}

@media (max-width: 575.98px){
  .ud-admin-main__top{
    padding: 0.75rem 0.75rem !important;
  }
  .ud-admin-main__top .ud-admin-sub{
    font-size: 0.88rem;
    word-break: break-word;
  }
  .ud-admin-metric__value{
    font-size: clamp(1.45rem, 8vw, 2rem);
  }
  .ud-admin-panel__head{
    flex-direction: column;
    align-items: flex-start !important;
    gap: 0.35rem;
  }
  .ud-admin-panel__meta{
    font-size: 0.8rem;
  }
  .ud-admin-table{
    font-size: 0.8125rem;
  }
  .ud-admin-table thead th{
    font-size: 0.65rem;
  }
  .ud-admin-timeline__time{
    font-size: 0.8rem;
    white-space: normal;
  }
  .ud-admin-timeline__meta{
    font-size: 0.82rem;
    word-break: break-word;
  }
}

/* Bloc « page publique » (admin annonces) */
.ud-admin-public-cta{
  background:
    radial-gradient(520px 120px at 10% 0%, rgba(218,155,72,.14), transparent 55%),
    linear-gradient(180deg, rgba(24,40,88,.06), rgba(24,40,88,.02));
  border-top: 1px solid rgba(24,40,88,.10) !important;
}
.ud-admin-public-cta__inner{
  padding: 1.25rem 1.15rem 1.15rem;
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
}
.ud-admin-public-cta__head{
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}
.ud-admin-public-cta__text{
  min-width: 0;
}
.ud-admin-public-cta__icon{
  width: 48px;
  height: 48px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1;
  color: rgba(24,40,88,.92);
  background: linear-gradient(155deg, #fff, rgba(24,40,88,.07));
  border: 1px solid rgba(24,40,88,.16);
  box-shadow: 0 16px 40px rgba(18,32,58,.12);
  flex-shrink: 0;
}
.ud-admin-public-cta__title{
  font-weight: 950;
  font-size: 1.08rem;
  letter-spacing: .01em;
  color: rgba(10,24,52,.95);
  margin-bottom: 0.4rem;
}
.ud-admin-public-cta__desc{
  font-weight: 650;
  font-size: 0.92rem;
  line-height: 1.5;
  color: rgba(18,32,58,.74);
  max-width: 40rem;
}
.ud-admin-public-cta__btn{
  justify-self: start;
  width: 100%;
  max-width: 100%;
  font-weight: 850;
  padding: 0.75rem 1.25rem;
  border-radius: 14px;
  font-size: 0.95rem;
  letter-spacing: .01em;
  box-shadow: 0 20px 50px rgba(24,40,88,.28);
}
@media (min-width: 576px){
  .ud-admin-public-cta__btn{
    width: auto;
    min-width: min(100%, 320px);
  }
}

/* --------------------------------------------------------------------------
   Responsive: mise en page mobile / tablette, encoches, ancres sous header
   -------------------------------------------------------------------------- */
#services,
#contact{
  scroll-margin-top: calc(5.75rem + env(safe-area-inset-top, 0px));
}

.ud-body{
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.ud-topbar .navbar > .container{
  padding-left: max(0.75rem, env(safe-area-inset-left, 0px));
  padding-right: max(0.75rem, env(safe-area-inset-right, 0px));
}

@media (max-width: 991.98px){
  .ud-topbar{
    padding-top: env(safe-area-inset-top, 0px);
  }
  .ud-navbar__inner{
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: .5rem;
    min-height: 3.25rem;
  }
  .ud-navbar .navbar-brand{
    margin-right: 0;
    min-width: 0;
    flex: 1 1 auto;
    max-width: calc(100% - 3.25rem);
  }
  .ud-navbar .navbar-collapse{
    display: none !important;
  }
  .ud-brand__logo{
    width: 40px;
    height: 40px;
    flex-shrink: 0;
  }
  .ud-brand__name{
    font-size: clamp(0.84rem, 3.8vw, 1rem);
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .ud-mobile-actions .ud-nav-cta{
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .ud-mobile-list .list-group-item{
    min-height: 2.75rem;
    display: flex;
    align-items: center;
    padding: .65rem .5rem;
  }
}

@media (max-width: 767.98px){
  .ud-service-hero__left{
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 575.98px){
  .ud-brand{
    min-width: 0;
    max-width: calc(100% - 3.25rem);
  }
  .ud-brand__name{
    font-size: clamp(0.82rem, 4.2vw, 0.98rem);
  }
  .ud-location__row{
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
  }
  .ud-location__row strong{
    white-space: normal;
    word-break: break-word;
    text-align: left;
  }
  .ud-hero__logo{
    max-height: min(52vw, 280px);
    width: auto;
  }
  .ud-related-card{
    flex-wrap: wrap;
  }
  .ud-related-card__arrow{
    margin-left: 0;
    align-self: flex-end;
  }
}

/* Page fiche service — version épurée (moins de blocs, moins d’effets) */
.ud-service-page__hero{
  background:
    radial-gradient(900px 320px at 0% 0%, rgba(218,155,72,.09), transparent 55%),
    radial-gradient(800px 280px at 100% 20%, rgba(24,40,88,.05), transparent 55%),
    var(--ud-bg-soft);
  border-bottom: 1px solid rgba(24,40,88,.08);
}
.ud-service-page__back{
  font-size: 0.9rem;
  font-weight: 650;
}
.ud-service-page__back a{
  color: rgba(24,40,88,.72);
}
.ud-service-page__back a:hover{
  color: var(--ud-blue);
}
.ud-service-page__head{
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: flex-start;
  max-width: 42rem;
}
.ud-service-page__icon-wrap{
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid rgba(24,40,88,.10);
}
.ud-service-page__icon{
  width: 48px;
  height: 48px;
  object-fit: contain;
}
.ud-service-page__intro{
  flex: 1;
  min-width: 0;
}
.ud-service-page__title{
  font-family: var(--ud-font-display);
  font-weight: 900;
  color: var(--ud-blue);
  font-size: clamp(1.5rem, 4vw, 2rem);
  letter-spacing: -0.02em;
  margin-bottom: 0.5rem;
  line-height: 1.15;
}
.ud-service-page__lead{
  margin: 0 0 1rem;
  font-weight: 500;
  font-size: 1.02rem;
  line-height: 1.5;
  color: rgba(18,32,58,.78);
}
.ud-service-page__actions{
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.ud-service-page__bullets{
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.35rem;
  max-width: 40rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: rgba(18,32,58,.82);
}
.ud-service-page__bullets li{
  padding-left: 1rem;
  position: relative;
}
.ud-service-page__bullets li::before{
  content: "·";
  position: absolute;
  left: 0;
  color: rgba(24,40,88,.45);
  font-weight: 900;
}
.ud-service-page__body{
  background: #fff;
}
.ud-service-page__h2{
  font-family: var(--ud-font-display);
  font-weight: 800;
  font-size: 0.72rem;
  letter-spacing: .12em;
  color: rgba(10,24,52,.72);
  margin-bottom: 1rem;
  text-transform: uppercase;
}
.ud-service-page__h2--small{
  margin-bottom: 0.75rem;
}
.ud-service-page__steps{
  margin: 0;
  padding: 0;
  list-style: none;
  max-width: 36rem;
}
.ud-service-page__step{
  display: flex;
  gap: 0.85rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid rgba(24,40,88,.08);
  font-size: 0.95rem;
  line-height: 1.45;
}
.ud-service-page__step:last-child{
  border-bottom: 0;
}
.ud-service-page__step-num{
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.82rem;
  color: var(--ud-blue);
  background: rgba(24,40,88,.06);
}
.ud-service-page__details-inner{
  font-size: 0.98rem;
}
.ud-service-page__cta-line{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
}
.ud-service-page__related-link{
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
  text-decoration: none;
  color: rgba(10,24,52,.9);
  font-weight: 650;
  font-size: 0.92rem;
  border: 1px solid rgba(24,40,88,.10);
  background: rgba(255,255,255,.9);
  transition: border-color .15s ease, background .15s ease;
}
.ud-service-page__related-link:hover{
  border-color: rgba(24,40,88,.18);
  background: rgba(24,40,88,.03);
  color: var(--ud-blue);
}
.ud-service-page__related-link img{
  flex-shrink: 0;
  border-radius: 8px;
}
.ud-service-page--notfound .ud-service-page__title{
  color: var(--ud-blue);
}
@media (max-width: 575.98px){
  .ud-service-page__head{
    flex-direction: column;
    gap: 1rem;
  }
}

/* AI assistant chat widget */
.ud-ai-chat{
  position: fixed;
  right: max(18px, env(safe-area-inset-right, 0px));
  bottom: max(18px, env(safe-area-inset-bottom, 0px));
  z-index: 1225;
  font-family: var(--ud-font-body);
  pointer-events: none;
}
.ud-ai-chat > *{
  pointer-events: auto;
}
.ud-ai-chat__toggle{
  border: 0;
  border-radius: 999px;
  padding: 12px 18px;
  min-height: 48px;
  background: linear-gradient(135deg, var(--ud-blue), #162a52);
  color: #fff;
  font-weight: 700;
  box-shadow:
    0 12px 28px rgba(8,16,36,.45),
    0 0 0 3px rgba(218,160,72,.42);
  touch-action: manipulation;
}
.ud-ai-chat__panel{
  width: min(370px, calc(100vw - 24px));
  height: 500px;
  max-height: calc(100vh - 110px);
  margin-top: 10px;
  background: rgba(255,255,255,.98);
  border: 1px solid var(--ud-border);
  border-radius: 16px;
  box-shadow: 0 18px 46px rgba(16,28,52,.28);
  display: none;
  overflow: hidden;
  backdrop-filter: blur(10px);
}
.ud-ai-chat.is-open .ud-ai-chat__panel{ display: flex; flex-direction: column; }
.ud-ai-chat__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  background: linear-gradient(135deg, rgba(30,58,110,.96), rgba(22,42,82,.96));
  color: #fff;
}
.ud-ai-chat__title{ font-weight: 700; font-size: .95rem; }
.ud-ai-chat__close{
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 1.45rem;
  line-height: 1;
}
.ud-ai-chat__messages{
  flex: 1;
  overflow: auto;
  padding: 14px;
  background:
    radial-gradient(340px 180px at 20% -5%, rgba(217,160,74,.12), transparent 62%),
    linear-gradient(180deg, #fbfcff, #f6f8fd);
}
.ud-ai-msg{
  max-width: 90%;
  font-size: .93rem;
  line-height: 1.5;
  border-radius: 14px;
  padding: 10px 12px;
  margin-bottom: 10px;
  white-space: normal;
  word-break: break-word;
}
.ud-ai-msg--bot{
  background: #fff;
  border: 1px solid var(--ud-border);
  color: var(--ud-ink);
}
.ud-ai-msg--bot a{
  color: var(--ud-blue);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  word-break: break-all;
}
.ud-ai-msg--bot a:hover{
  color: #152d52;
}
.ud-ai-msg--user{
  margin-left: auto;
  background: #1e3a6e;
  color: #fff;
}
.ud-ai-suggest{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 4px 2px 0;
}
.ud-ai-suggest__btn{
  border: 1px solid rgba(30, 58, 110, .25);
  background: rgba(30, 58, 110, .04);
  color: #1e3a6e;
  border-radius: 999px;
  padding: 6px 11px;
  font-size: .78rem;
  line-height: 1.25;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.ud-ai-suggest__btn:hover,
.ud-ai-suggest__btn:focus-visible{
  background: rgba(217, 160, 74, .14);
  border-color: rgba(217, 160, 74, .55);
  color: #1b1f2b;
  outline: none;
}
.ud-ai-chat__form{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  padding: 10px;
  border-top: 1px solid var(--ud-border);
  background: #fff;
}
.ud-ai-chat__input{
  min-width: 0;
  border: 1px solid var(--ud-border-strong);
  border-radius: 10px;
  padding: 10px 11px;
}
.ud-ai-chat__send{
  border: 0;
  border-radius: 10px;
  padding: 10px 14px;
  background: var(--ud-gold);
  color: #1b1f2b;
  font-weight: 700;
}
@media (max-width: 576px){
  .ud-ai-chat{
    right: max(10px, env(safe-area-inset-right, 0px));
    left: max(10px, env(safe-area-inset-left, 0px));
    bottom: max(12px, env(safe-area-inset-bottom, 0px));
  }
  .ud-ai-chat__toggle{
    width: 100%;
    justify-content: center;
    display: inline-flex;
    align-items: center;
  }
  .ud-ai-chat__panel{ width: 100%; max-height: min(72vh, calc(100dvh - 5.5rem)); }
}
