/* Renodiag — compléments au CSS Tailwind d'origine (renodiag.vercel.app) : vidéo du hero, menu, cartes avec photo,
   accordéon, carrousel, galerie, pages services. Couleurs du site : vert #173024 / #27684a, or #d09d25. */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
.rd-cache { position: absolute; left: -9999px; }

/* Navigation : transparente sur le hero, blanche au défilement (comme l'original) */
.rd-nav { background: hsl(var(--background) / .95); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 10px 15px -3px rgb(0 0 0 / .1); border-bottom: 1px solid hsl(var(--border) / .5); }
.rd-nav .rd-navlink { color: hsl(var(--foreground) / .8); }
.rd-nav .rd-navlink:hover { color: hsl(var(--primary)); }
.rd-nav .rd-burger { color: hsl(var(--foreground)); }
.rd-nav.rd-nav-hero:not(.rd-solide) { background: transparent; box-shadow: none; border-color: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
.rd-nav.rd-nav-hero:not(.rd-solide) .rd-navlink { color: hsl(var(--primary-foreground) / .9); }
.rd-nav.rd-nav-hero:not(.rd-solide) .rd-burger { color: hsl(var(--primary-foreground)); }
.rd-logo img { height: 46px; width: auto; }
.rd-logo .rd-logo-clair { display: none; }
.rd-nav.rd-nav-hero:not(.rd-solide) .rd-logo-sombre { display: none; }
.rd-nav.rd-nav-hero:not(.rd-solide) .rd-logo-clair { display: block; }
.rd-menu { position: relative; }
.rd-menu > a { display: inline-flex; align-items: center; gap: .3rem; }
.rd-sous { position: absolute; top: 100%; left: 50%; transform: translate(-50%, 8px); width: 560px; display: grid; grid-template-columns: 1fr 1fr; gap: 2px;
  padding: 12px; background: hsl(var(--background)); border-radius: 16px; box-shadow: 0 24px 60px rgb(23 48 36 / .18); border: 1px solid hsl(var(--border));
  opacity: 0; visibility: hidden; transition: opacity .2s, transform .2s, visibility .2s; }
.rd-menu:hover .rd-sous, .rd-menu:focus-within .rd-sous { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.rd-sous::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.rd-sous a { display: flex; align-items: center; gap: .6rem; padding: .6rem .75rem; border-radius: 10px; font-size: .875rem; color: hsl(var(--foreground) / .85); }
.rd-sous a:hover { background: hsl(var(--muted)); color: hsl(var(--primary)); }
.rd-mobile { display: none; background: hsl(var(--background)); border-top: 1px solid hsl(var(--border)); padding: 8px 16px 20px; max-height: calc(100vh - 80px); overflow-y: auto; box-shadow: 0 20px 40px rgb(0 0 0 / .12); }
.rd-mobile.rd-ouvert { display: block; }
.rd-mobile a, .rd-mobile summary { display: block; padding: .85rem .25rem; font-weight: 500; color: hsl(var(--foreground)); border-bottom: 1px solid hsl(var(--border) / .6); cursor: pointer; }
.rd-mobile details a { padding-left: 1rem; font-weight: 400; font-size: .95rem; color: hsl(var(--muted-foreground)); }
.rd-mobile .rd-mobile-tel { margin-top: 14px; display: flex; align-items: center; justify-content: center; gap: .5rem; border: 0; border-radius: .375rem; background: hsl(var(--copper)); color: hsl(var(--slate-dark)); font-weight: 600; }
@media (min-width: 1024px) { .rd-mobile { display: none !important; } }

/* Hero vidéo */
.rd-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
#hero .rd-voile { background: hsl(var(--slate-dark) / .55); }
.rd-page-hero { min-height: 720px; }
.rd-fil { font-size: .8rem; color: hsl(var(--primary-foreground) / .6); margin-bottom: 1.25rem; }
.rd-fil a { color: hsl(var(--primary-foreground) / .75); }
.rd-fil a:hover { color: hsl(var(--copper)); }
.rd-inline { display: inline-block; vertical-align: -3px; }

/* Formulaire de devis */
.rd-devis { scroll-margin-top: 100px; }
.rd-select { color: hsl(var(--muted-foreground)); }
.rd-select:valid, .rd-select.rd-choisi { color: hsl(var(--foreground)); }
.rd-form input, .rd-form select, .rd-form textarea { font-size: 16px; }
.rd-form .h-10 { height: 2.75rem; }
.rd-erreur { display: none; color: #b42318; font-size: .8rem; text-align: center; }
.rd-form.rd-err .rd-erreur { display: block; }
.rd-form button[disabled] { opacity: .65; cursor: wait; }
.rd-ok { display: none; text-align: center; padding: 1.5rem 0 .5rem; }
.rd-ok-ico { width: 64px; height: 64px; border-radius: 9999px; background: hsl(var(--primary) / .1); display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; }
.rd-ok a { color: hsl(var(--primary)); font-weight: 600; }
.rd-form.rd-envoye .rd-champs { display: none; }
.rd-form.rd-envoye .rd-ok { display: block; }

/* Cartes de services avec photo */
.rd-carte { display: flex; flex-direction: column; overflow: hidden; padding: 0; text-decoration: none; }
.rd-carte-img { aspect-ratio: 16 / 10; overflow: hidden; }
.rd-carte-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.rd-carte:hover .rd-carte-img img { transform: scale(1.06); }
.rd-carte-corps { padding: 0 2rem 2rem; display: flex; flex-direction: column; flex: 1; }
.rd-carte-corps > span:last-child { margin-top: auto; }
.rd-carte-ico { margin-top: -28px; position: relative; box-shadow: 0 10px 24px rgb(23 48 36 / .3); border: 3px solid hsl(var(--background)); }

/* Galerie (cadre 8/5 pour garder les étiquettes AVANT / APRÈS) */
.rd-gal { aspect-ratio: 8 / 5; padding: 0; border: 0; display: block; width: 100%; }
.rd-lb { position: fixed; inset: 0; z-index: 100; background: hsl(var(--slate-dark) / .95); display: flex; align-items: center; justify-content: center; padding: 16px; }
.rd-lb[hidden] { display: none; }
.rd-lb figure { max-width: 92vw; text-align: center; margin: 0; }
.rd-lb img { max-width: 100%; max-height: 78vh; border-radius: 12px; }
.rd-lb figcaption { color: #fff; font-family: "Playfair Display", serif; font-weight: 700; margin-top: 1rem; font-size: 1.1rem; }
.rd-lb button { position: absolute; width: 44px; height: 44px; border-radius: 9999px; border: 1px solid rgb(255 255 255 / .2); background: rgb(255 255 255 / .1); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.rd-lb-x { top: 16px; right: 16px; } .rd-lb-p { left: 12px; top: 50%; transform: translateY(-50%); } .rd-lb-s { right: 12px; top: 50%; transform: translateY(-50%); }

/* Carrousel d'avis */
.rd-avis-boite { position: relative; }
.rd-avis { display: none; animation: rdAvis .4s ease; }
.rd-avis.rd-actif { display: block; }
@keyframes rdAvis { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }
.rd-point { width: 8px; height: 8px; border-radius: 9999px; background: hsl(var(--muted-foreground) / .3); border: 0; padding: 0; cursor: pointer; transition: all .3s; }
.rd-point.rd-actif { width: 32px; background: hsl(var(--primary)); }

/* FAQ */
.rd-faq-rep { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .3s ease; }
.rd-faq-rep > div { overflow: hidden; min-height: 0; padding-bottom: 0 !important; }
.rd-faq.rd-ouvert .rd-faq-rep > div { padding-bottom: 1.25rem !important; }
.rd-faq.rd-ouvert .rd-faq-rep { grid-template-rows: 1fr; }
.rd-faq.rd-ouvert .rd-faq-chev { transform: rotate(180deg); }

/* Pages services */
.rd-photo { width: 100%; border-radius: 1rem; box-shadow: 0 25px 50px -12px rgb(23 48 36 / .25); aspect-ratio: 4 / 3; object-fit: cover; }
.rd-etapes { display: grid; gap: 1.5rem; grid-template-columns: repeat(4, 1fr); }
.rd-num { display: inline-flex; width: 44px; height: 44px; border-radius: 12px; align-items: center; justify-content: center; font-family: "Playfair Display", serif; font-weight: 700; font-size: 1.25rem;
  background: linear-gradient(135deg, hsl(var(--primary)), hsl(var(--slate-dark))); color: #fff; }
.rd-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; }
.rd-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .5rem .9rem; border-radius: 9999px; background: hsl(var(--muted) / .7); font-size: .875rem; color: hsl(var(--foreground) / .85); }
.rd-logo-pied { height: 52px; width: auto; }
.rd-404 { padding-top: 10rem; }
@media (max-width: 1023px) { .rd-etapes { grid-template-columns: 1fr 1fr; } .rd-sous { display: none; } }
@media (max-width: 640px) {
  .rd-etapes { grid-template-columns: 1fr; }
  .rd-page-hero { min-height: 0; }
  .rd-carte-corps { padding: 0 1.5rem 1.5rem; }
  .rd-logo img { height: 40px; }
  #hero h1 { font-size: 2.25rem; }
}

/* Apparition au défilement (réversible, comme sur les autres sites) */
.rd-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.rd-reveal.rd-vu { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .rd-reveal { opacity: 1; transform: none; transition: none; } }

/* le formulaire du haut des pages services est plus haut que le texte : place pour le bandeau de badges */
.rd-page-hero > .relative { padding-bottom: 8rem !important; }
@media (max-width: 1023px) { .rd-page-hero > .relative { padding-bottom: 6rem !important; } }
