/* ═══ Dentalab Péi — habillage premium (géré par Consult7ng) ═══
   v9 : direction artistique « Labo Smile » — charbon #141414, blanc,
   or mat #ab8b3f. Titres serif Bitter (300/700), corps Manrope.
   Boutons rectangulaires uppercase. Sections alternées noir/blanc. */

:root {
  --c7-noir: #141414;
  --c7-noir-2: #1c1c1c;
  --c7-or: #ab8b3f;
  --c7-or-clair: #d4b96a;
  --c7-gris: #f4f4f4;
  --c7-line: #e8e8e8;
  --c7-texte: #262626;
  --c7-texte-2: #555;
  /* ── Nouveaux tokens DA « atelier » (ajoutés, ne remplacent pas les --c7-*) ── */
  --ink: #101312;
  --ink-soft: #2A2E2C;
  --gold: #B99A5B;
  --gold-soft: #D8C296;
  --paper: #F7F5F0;
  --paper-text: #1C1E1D;
  --muted: #6E7570;
}

/* ── Typographie : Bitter pour les titres, Manrope pour tout le reste ── */
body, main, main p, main li, main a, main button, main span, main div,
main input, main textarea, main select, header, footer {
  font-family: 'Manrope', Inter, system-ui, sans-serif;
}
main h1, main h2, main h3, main h4, .c7-h2 {
  font-family: 'Bitter', Georgia, serif !important;
}
main h2 { font-weight: 300 !important; letter-spacing: 0; }
main h2 strong, main h2 b { font-weight: 700 !important; }
main h3 { font-weight: 700 !important; }
main section[id]:not(#home) { padding-top: 110px !important; padding-bottom: 110px !important; }
main section[id] h2 {
  font-size: clamp(2rem, 3.6vw, 2.7rem) !important;
  line-height: 1.2 !important;
}
main section[id] h2 + p, .c7-sub {
  font-size: 1.02rem !important; max-width: 640px;
  margin-left: auto !important; margin-right: auto !important;
  color: var(--c7-texte-2) !important;
}

/* ── Header : charbon, nav blanche, hover or ── */
header.fixed {
  background: rgba(20, 20, 20, .92) !important;
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .06);
  transition: background .3s ease;
}
header.fixed img { height: 48px !important; transition: height .3s ease; }
header.c7-scrolled img { height: 40px !important; }
header nav a, header nav button {
  font-weight: 600; font-size: .92rem;
  color: #e8e8e8 !important;
  transition: color .2s ease;
  position: relative;
}
header nav a:hover, header nav button:hover { color: var(--c7-or-clair) !important; }
header nav a::after, header nav button::after {
  content: ''; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 1px;
  background: var(--c7-or);
  transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
header nav a:hover::after, header nav button:hover::after { transform: scaleX(1); }
/* pilule active du bundle : neutralisée sur fond noir */
header nav [class*="bg-"]:not(.c7-btn-login):not(.c7-btn-call) { background: transparent !important; }
header [class*="bg-"]:not(.c7-btn-login):not(.c7-btn-call):not(img):not(nav *) { background: transparent !important; }

/* Wordmark : blanc, serif */
header .h-16.flex.items-center::after {
  content: 'Dentalab Péi';
  margin-left: 12px;
  font-family: 'Bitter', Georgia, serif;
  font-weight: 700;
  font-size: 1.25rem;
  letter-spacing: .01em;
  white-space: nowrap;
  color: #fff;
}
@media (max-width: 480px) {
  header .h-16.flex.items-center::after { font-size: 1rem; margin-left: 8px; }
}
/* nav serrée entre 481 et 1280px : wordmark masqué (chevauchait « Accueil ») */
@media (min-width: 481px) and (max-width: 1280px) {
  header .h-16.flex.items-center::after { display: none; }
}

/* Boutons header : rectangles uppercase (Appeler = contour or, Connexion = or plein) */
.c7-btn-call, .c7-btn-login {
  border-radius: 2px !important;
  text-transform: uppercase; letter-spacing: .08em;
  font-weight: 700 !important; font-size: .78rem !important;
}
.c7-btn-call {
  background: transparent !important;
  border: 1.5px solid var(--c7-or) !important;
  box-shadow: none !important;
}
.c7-btn-call, .c7-btn-call * { color: var(--c7-or-clair) !important; }
.c7-btn-call:hover { background: rgba(171, 139, 63, .14) !important; }
.c7-btn-login { background: var(--c7-or) !important; border: 1.5px solid var(--c7-or) !important; box-shadow: none !important; }
.c7-btn-login, .c7-btn-login * { color: #fff !important; }
.c7-btn-login:hover { background: #96792f !important; }

/* ── Hero : photo du bundle + voile charbon (recette Labo Smile) ── */
#home > div.absolute.inset-0 > div {
  display: block !important;
  background: linear-gradient(160deg,
    rgba(8, 8, 8, .84) 0%,
    rgba(8, 8, 8, .55) 52%,
    rgba(8, 8, 8, .74) 100%) !important;
  backdrop-filter: none !important;
  overflow: hidden;
}
#home > div.absolute.inset-0 > div::before,
#home > div.absolute.inset-0 > div::after { content: none; }
/* Si la photo Firebase ne charge pas : fond charbon de secours sur le wrapper */
#home > div.absolute.inset-0 { background-color: #141414; }

/* Grain photographique léger (esprit photo studio) */
#home::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  opacity: .07; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
}
#home .container { position: relative; z-index: 2; }

/* Titre hero : Bitter léger, mots forts en gras blanc, trait or */
#home h2, #home h2 * { -webkit-text-fill-color: initial; }
#home h2 {
  color: #fff;
  font-family: 'Bitter', Georgia, serif !important;
  font-weight: 300 !important;
  font-size: clamp(2.4rem, 4.6vw, 3.8rem) !important;
  line-height: 1.15 !important;
}
#home [class*="bg-clip-text"] {
  background: none !important;
  -webkit-background-clip: initial !important; background-clip: initial !important;
  -webkit-text-fill-color: #fff !important;
  color: #fff !important;
  font-weight: 700 !important;
  animation: none !important;
}
#home h2::after {
  content: ''; display: block; width: 72px; height: 1px;
  margin-top: 26px; background: var(--c7-or);
}
#home [class*="text-orange"], #home [class*="text-amber"],
#home [class*="text-pink"], #home [class*="text-rose"] { color: var(--c7-or-clair) !important; }
#home p { color: #c9c9c9; font-size: 1.08rem; }

/* Chips hero : étiquettes sombres lisibles sur photo */
.c7-hero-chip {
  background: rgba(14, 14, 14, .72) !important;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(171, 139, 63, .5);
  border-radius: 2px !important;
  padding: 8px 16px 8px 8px !important;
  transition: border-color .25s ease, background .25s ease;
}
.c7-hero-chip:hover { border-color: var(--c7-or); background: rgba(171, 139, 63, .08) !important; }
.c7-hero-chip, .c7-hero-chip * { color: #e8e8e8 !important; font-size: .88rem; }

/* CTA hero : rectangles uppercase (contour blanc + lien or) */
#home a[class*="rounded-full"], #home button[class*="rounded-full"],
main a[class*="rounded-full"], main button[class*="rounded-full"] {
  border-radius: 2px !important;
  text-transform: uppercase; letter-spacing: .1em;
  font-weight: 700 !important; font-size: .85rem !important;
}
#home .c7-hero-cta a[class*="rounded"], #home .c7-hero-cta button[class*="rounded"] {
  background: transparent !important;
  border: 2px solid #fff !important;
  box-shadow: none !important;
}
#home .c7-hero-cta a[class*="rounded"], #home .c7-hero-cta a[class*="rounded"] *,
#home .c7-hero-cta button[class*="rounded"], #home .c7-hero-cta button[class*="rounded"] * {
  color: #fff !important;
}
#home .c7-hero-cta a[class*="rounded"]:hover, #home .c7-hero-cta button[class*="rounded"]:hover {
  background: rgba(255, 255, 255, .12) !important;
}
.c7-btn-ghost {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 26px; border-radius: 2px;
  border: none; color: var(--c7-or-clair);
  font: 700 .85rem 'Manrope', sans-serif; text-decoration: none;
  text-transform: uppercase; letter-spacing: .1em;
  transition: color .25s ease;
}
.c7-btn-ghost:hover { color: #fff; }
.c7-hero-cta { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }

/* Composition visuelle hero : retirée — la vraie photo du labo EST le visuel */
#c7-hero-visual { display: none !important; }
#c7-hero-visual {
  position: absolute; right: 7vw; top: 50%;
  transform: translateY(-52%);
  width: 320px; height: 320px; z-index: 2;
}
#c7-hero-visual .c7-glass {
  width: 100%; height: 100%; border-radius: 4px;
  background: rgba(255, 255, 255, .04);
  border: 1px solid rgba(171, 139, 63, .35);
  box-shadow: 0 40px 90px rgba(0, 0, 0, .5);
  display: flex; align-items: center; justify-content: center;
  animation: c7float 9s ease-in-out infinite;
}
#c7-hero-visual .c7-glass img {
  width: 70%; filter: drop-shadow(0 24px 44px rgba(0, 0, 0, .5));
}
#c7-hero-visual .c7-chip {
  position: absolute; padding: 8px 14px; border-radius: 2px;
  background: #141414; border: 1px solid rgba(171, 139, 63, .55);
  font: 600 .78rem 'Manrope', sans-serif; color: #e8e8e8; white-space: nowrap;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .5);
  animation: c7float 8s ease-in-out infinite;
}
@keyframes c7float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
@media (max-width: 1180px) { #c7-hero-visual { display: none; } }

/* ── Barre de progression : or ── */
#c7-progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 0; z-index: 9999;
  background: var(--c7-or);
}

/* ── Sections : blanc / gris clair alternés, titres serif + trait or ── */
main section[id] { scroll-margin-top: 96px; }
main section:not(#home) { position: relative; overflow: hidden; isolation: isolate; }
main section:not(#home)::before { content: none; }
main section[class*="from-"]:not(#home) { background: #fff !important; }
#about { background: #fff !important; }
#services { background: var(--c7-gris) !important; }
#technologies { background: #fff !important; }
#pricing { background: var(--c7-gris) !important; }
#contact { background: #fff !important; }
main section:not(#home) h2:not([class*="text-white"]) {
  background: none !important;
  -webkit-background-clip: initial !important; background-clip: initial !important;
  -webkit-text-fill-color: initial !important;
  color: var(--c7-noir) !important;
}
main section:not(#home) h2:not([class*="text-white"])::after {
  content: ''; display: block; width: 64px; height: 1px;
  margin: 20px auto 0;
  background: var(--c7-or);
}
main section:not(#home) h2 span,
main section:not(#home) h2 [class*="bg-clip-text"] {
  background: none !important;
  -webkit-background-clip: initial !important; background-clip: initial !important;
  -webkit-text-fill-color: initial !important;
  color: var(--c7-or) !important;
  animation: none !important;
  font-weight: 700 !important;
}
main section:not(#home) [class*="text-transparent"] {
  -webkit-text-fill-color: initial !important;
  color: var(--c7-noir) !important;
}
.c7-kill { display: none !important; }
main section:not(#home) div[class~="h-1"][class*="bg-gradient"],
main section:not(#home) div[class~="h-1.5"][class*="bg-gradient"],
main section:not(#home) div[class~="h-2"][class*="bg-gradient"],
main section:not(#home) div[class*="via-secondary"][class*="to-accent"] { display: none !important; }
main section h3 { color: var(--c7-noir) !important; }

/* ── Cartes : rectangles sobres, ombre légère ── */
main [class*="rounded-xl"], main [class*="rounded-2xl"] { border-radius: 4px !important; }
main [class*="shadow-lg"], main [class*="shadow-xl"], main [class*="shadow-md"] {
  box-shadow: 0 6px 24px rgba(0, 0, 0, .06) !important;
  border: 1px solid var(--c7-line);
  transition: transform .35s cubic-bezier(.2, .65, .3, 1), box-shadow .35s ease !important;
}
main section [class*="shadow-lg"]:hover, main section [class*="shadow-xl"]:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .10) !important;
}
[data-c7tilt] { position: relative; }
[data-c7tilt]::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: var(--c7-or);
  opacity: 0; transition: opacity .3s ease;
}
[data-c7tilt]:hover::before { opacity: 1; }

/* Icônes : médaillons ronds OR (signature Labo Smile) */
.c7-icon {
  background: var(--c7-or) !important;
  border-radius: 50% !important;
  box-shadow: none !important;
}
.c7-icon, .c7-icon * { color: #fff !important; stroke: #fff; }

/* Puces / liens d'accent */
main section a[class*="text-"], main section [class*="text-teal"], main section [class*="text-emerald"] {
  color: var(--c7-or) !important;
}
main [class*="text-purple"], main [class*="text-violet"], main [class*="text-fuchsia"],
main [class*="text-pink"]:not(#home *), main [class*="text-rose"]:not(#home *),
main [class*="text-orange"]:not(#home *), main [class*="text-amber"]:not(#home *),
main [class*="text-indigo"], main [class*="text-blue"] {
  color: var(--c7-texte) !important;
}

/* ── Tarifs : prix serif or, cartes nettes ── */
.c7-price {
  background: transparent !important;
  color: var(--c7-or) !important; -webkit-text-fill-color: var(--c7-or) !important;
  border-radius: 0 !important; padding: 0 !important;
  font-family: 'Bitter', Georgia, serif !important;
  font-weight: 800 !important; font-size: 1.5rem !important;
  box-shadow: none !important;
}
#pricing [data-c7tilt]:hover { border-left-color: transparent; }

/* ── Sections injectées ── */
.c7-wrap { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.c7-h2 {
  font: 300 clamp(2rem, 3.6vw, 2.7rem)/1.2 'Bitter', Georgia, serif;
  text-align: center; margin-bottom: 16px;
  color: var(--c7-noir);
}
.c7-h2 strong { font-weight: 700; }
.c7-h2::after {
  content: ''; display: block; width: 64px; height: 1px;
  margin: 20px auto 0; background: var(--c7-or);
}
.c7-sub { text-align: center; margin-bottom: 64px; }
.c7-reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s ease; }
.c7-reveal.on { opacity: 1; transform: none; }

/* ── « Comment ça marche » : blanc, numéros ronds or ── */
#c7-process { background: #fff; padding: 110px 0 !important; border-top: 1px solid var(--c7-line); }
.c7-steps {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px;
  position: relative;
}
/* Fil de liaison retiré : les pastilles se suffisent à elles-mêmes. */
.c7-steps::before { display: none !important; }
.c7-step { z-index: 1; }
.c7-step > span { z-index: 2; }
.c7-step {
  background: #fff; border-radius: 4px; padding: 54px 24px 30px;
  border: 1px solid var(--c7-line);
  box-shadow: 0 6px 24px rgba(0, 0, 0, .05);
  position: relative; text-align: center;
  transition: transform .35s cubic-bezier(.2, .65, .3, 1), box-shadow .35s ease;
}
.c7-step:hover { transform: translateY(-5px); box-shadow: 0 18px 44px rgba(0, 0, 0, .09); }
.c7-step > span {
  position: absolute; top: -27px; left: 50%; transform: translateX(-50%);
  width: 54px; height: 54px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--c7-or);
  color: #fff; font: 700 1.05rem 'Bitter', Georgia, serif;
  box-shadow: 0 0 0 6px #fff;
}
.c7-step h3 { font: 700 1.08rem 'Bitter', Georgia, serif; color: var(--c7-noir); margin-bottom: 8px; }
.c7-step p { font-size: .92rem; line-height: 1.7; color: var(--c7-texte-2); }
@media (max-width: 900px) {
  .c7-steps { grid-template-columns: 1fr 1fr; gap: 40px 20px; }
  .c7-steps::before { display: none; }
}
@media (max-width: 520px) { .c7-steps { grid-template-columns: 1fr; } }

/* ── Bande CTA praticiens : charbon + or ── */
#c7-cta {
  background:
    radial-gradient(60% 90% at 85% 15%, rgba(171, 139, 63, .12), transparent 60%),
    linear-gradient(160deg, #101010 0%, #181818 100%);
  padding: 96px 24px !important;
}
#c7-cta::before { content: none; }
#c7-cta .c7-wrap { text-align: center; }
#c7-cta h2 {
  font: 300 clamp(1.9rem, 3.2vw, 2.5rem)/1.25 'Bitter', Georgia, serif;
  color: #fff !important; margin-bottom: 6px;
}
#c7-cta h2::after {
  content: ''; display: block; width: 64px; height: 1px;
  margin: 22px auto 0; background: var(--c7-or);
}
#c7-cta p { color: #c9c9c9; font-size: 1.04rem; margin: 22px 0 36px; }
#c7-cta .c7-cta-actions { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }
.c7-btn-white {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 15px 34px; border-radius: 2px;
  background: transparent; border: 2px solid #fff; color: #fff;
  font: 700 .85rem 'Manrope', sans-serif; text-decoration: none;
  text-transform: uppercase; letter-spacing: .1em;
  transition: background .25s ease;
}
.c7-btn-white:hover { background: rgba(255, 255, 255, .12); }
#c7-cta .c7-btn-ghost { color: var(--c7-or-clair); border: 2px solid var(--c7-or); padding: 15px 30px; }
#c7-cta .c7-btn-ghost:hover { background: rgba(171, 139, 63, .12); color: #fff; }

/* ── Contact : tuiles blanches, formulaire net, envoi or ── */
#contact [class*="from-"]:not(button):not([class*="rounded-full"]) {
  background: #fff !important;
  border: 1px solid var(--c7-line) !important;
}
main input, main textarea, main select {
  border-radius: 2px !important;
  border-color: #d9d9d9 !important;
  transition: border-color .2s ease, box-shadow .2s ease !important;
}
main input:focus, main textarea:focus, main select:focus {
  outline: none !important; border-color: var(--c7-or) !important;
  box-shadow: 0 0 0 3px rgba(171, 139, 63, .15) !important;
}
.c7-send {
  background: var(--c7-or) !important;
  box-shadow: none !important;
  border-radius: 2px !important;
  text-transform: uppercase; letter-spacing: .1em;
  font-weight: 700 !important; font-size: .85rem !important;
}
.c7-send:hover { background: #96792f !important; }

/* ── Footer : charbon, colonnes or ── */
footer { background: var(--c7-noir) !important; text-align: center; }
footer[class*="bg-"] { background: var(--c7-noir) !important; }
#c7-footer {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 36px; max-width: 1120px; margin: 0 auto;
  padding: 64px 24px 40px; text-align: left;
}
#c7-footer h4 {
  font: 700 .82rem 'Manrope', sans-serif; color: var(--c7-or-clair);
  margin-bottom: 14px; letter-spacing: .14em; text-transform: uppercase;
}
#c7-footer p { font-size: .92rem; line-height: 1.9; color: rgba(232, 232, 232, .75); }
#c7-footer .c7-brand img {
  height: 52px; background: #fff; border-radius: 4px; padding: 6px;
  margin-bottom: 14px;
}
#c7-footer .c7-word {
  font: 700 1.25rem 'Bitter', Georgia, serif; color: #fff; margin-bottom: 6px;
}
footer > *:last-child { border-top: 1px solid rgba(255, 255, 255, .1); }
footer > *:last-child, footer > *:last-child * { color: rgba(160, 160, 160, .9) !important; }

/* ── Micro-interactions boutons (reflet discret) ── */
main a[class*="rounded-full"], main button[class*="rounded-full"] {
  position: relative; overflow: hidden;
  transition: transform .25s ease, background .25s ease !important;
}
main a[class*="rounded-full"]:hover, main button[class*="rounded-full"]:hover {
  transform: translateY(-2px);
}

/* ── Divers ── */
main img { object-fit: contain; }
::selection { background: var(--c7-or-clair); color: var(--c7-noir); }

/* ── Accessibilité ── */
@media (prefers-reduced-motion: reduce) {
  #c7-hero-visual .c7-glass, #c7-hero-visual .c7-chip { animation: none !important; }
  .c7-reveal { opacity: 1; transform: none; }
}

/* Priorité finale : médaillons d'icônes toujours ronds (bat la règle des cartes) */
main .c7-icon.c7-icon { border-radius: 50% !important; }

/* ── Signature « Propulsé par Consult7ng » — minimaliste, une ligne ── */
#c7-powered {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 20px 0 26px; text-decoration: none;
  border-top: 1px solid rgba(255, 255, 255, .08);
  opacity: .92; transition: opacity .25s ease, transform .25s ease;
}
#c7-powered:hover { opacity: 1; transform: translateY(-1px); }
#c7-powered .c7-pw-label {
  font: 500 12px 'Manrope', sans-serif;
  letter-spacing: .02em;
  color: #9aa0af;
}
#c7-powered .c7-pw-copy {
  font: 600 .78rem 'Manrope', sans-serif;
  letter-spacing: .08em; text-transform: uppercase;
  color: #cbd5e1;
}
#c7-powered .c7-pw-sep { color: rgba(255, 255, 255, .25); font-size: .82rem; }
#c7-powered .c7-pw-logo {
  height: 14px; width: auto; display: block;
  object-fit: contain;
  transform-origin: left center;
  transition: transform .4s cubic-bezier(.34, 1.56, .64, 1), filter .3s ease;
}
#c7-powered:hover .c7-pw-logo {
  transform: scale(1.2);
  filter: drop-shadow(0 2px 7px rgba(94, 242, 228, .5));
}
/* le séparateur du bloc « Créé avec ❤ » reste sur lui, pas sur la signature */
footer > *:last-child { border-top: none; }

/* ═══ 13. Bloc « Nous trouver » — carte Google Maps + infos ═══ */
#c7-map { background: var(--c7-gris); padding: 64px 20px; }
#c7-map .c7-wrap { max-width: 1100px; margin: 0 auto; }
#c7-map .c7-h2 { text-align: center; }
#c7-map .c7-sub { text-align: center; }
.c7-map-card {
  display: grid; grid-template-columns: 1.15fr .85fr; margin-top: 28px;
  background: #fff; border: 1px solid var(--c7-line); border-radius: 20px;
  overflow: hidden; box-shadow: 0 24px 55px -30px rgba(20, 20, 20, .38);
}
.c7-map-embed { position: relative; min-height: 360px; background: #eee; }
.c7-map-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.12); }
.c7-map-info { padding: 32px 36px; display: flex; flex-direction: column; gap: 15px; justify-content: center; }
.c7-map-brand { display: flex; align-items: center; gap: 12px; }
.c7-map-brand img { height: 40px; width: auto; }
.c7-map-brand span { font-weight: 800; font-size: 18px; color: var(--c7-noir); letter-spacing: -.01em; }
.c7-map-list { list-style: none; margin: 0; padding: 0; }
.c7-map-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; color: var(--c7-texte); padding: 10px 0; border-bottom: 1px solid var(--c7-line); }
.c7-map-list li:last-child { border-bottom: 0; }
.c7-map-list a { color: var(--c7-texte); font-weight: 600; text-decoration: none; }
.c7-map-list a:hover { color: var(--c7-or); }
.c7-mi { flex: 0 0 20px; text-align: center; }
.c7-map-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.c7-mapbtn { display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; padding: 11px 20px; font-size: 14px; font-weight: 700; text-decoration: none; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.c7-mapbtn.go { background: var(--c7-or); color: #fff; box-shadow: 0 12px 24px -12px rgba(171, 139, 63, .8); }
.c7-mapbtn.go:hover { transform: translateY(-2px); box-shadow: 0 16px 30px -12px rgba(171, 139, 63, .9); }
.c7-mapbtn.ghost { background: #fff; color: var(--c7-noir); border: 1.5px solid var(--c7-line); }
.c7-mapbtn.ghost:hover { border-color: var(--c7-or); color: var(--c7-or); }
.c7-map-google { align-self: flex-start; color: var(--c7-or); font-weight: 700; font-size: 13px; text-decoration: none; margin-top: 2px; }
.c7-map-google:hover { text-decoration: underline; }
@media (max-width: 760px) {
  #c7-map { padding: 48px 16px; }
  .c7-map-card { grid-template-columns: 1fr; }
  .c7-map-embed { min-height: 240px; order: -1; }
  .c7-map-info { padding: 24px 22px; }
}

/* ═══ 14. Modernisation — moins « carré », plus de profondeur & d'or unifié ═══ */
/* Cartes : arrondi généreux (annule le 4px trop carré) + ombre douce + bordure or discrète */
main section [class*="rounded-xl"], main section [class*="rounded-2xl"], main section [class*="rounded-lg"] { border-radius: 22px !important; }
main section [class*="shadow-sm"], main section [class*="shadow-md"], main section [class*="shadow-lg"], main section [class*="shadow-xl"], main section [class*="shadow"] {
  box-shadow: 0 20px 46px -28px rgba(20, 20, 20, .30) !important;
  border: 1px solid rgba(171, 139, 63, .12) !important;
  transition: box-shadow .32s ease, border-color .32s ease !important;
}
main section [class*="shadow"]:hover {
  box-shadow: 0 34px 64px -30px rgba(171, 139, 63, .40) !important;
  border-color: rgba(171, 139, 63, .30) !important;
}
/* Puces turquoise → or (cohérence de marque) */
main section li [class*="bg-primary"] { background-color: var(--c7-or) !important; }
/* Badges d'icônes : dégradé or + halo (plus premium que le plat) */
main .c7-icon.c7-icon {
  background: linear-gradient(135deg, var(--c7-or-clair), var(--c7-or)) !important;
  box-shadow: 0 12px 24px -10px rgba(171, 139, 63, .55) !important;
}
/* Boutons : pilule (annule le 2px trop carré) */
.c7-btn-call, .c7-btn-login, .c7-send, .c7-btn-white, .c7-btn-ghost,
#c7-cta .c7-btn-white, #c7-cta .c7-btn-ghost { border-radius: 999px !important; }
main section button, main section a[class*="bg-primary"] { border-radius: 999px !important; }
/* Champs du formulaire arrondis */
main section input, main section textarea, main section select { border-radius: 13px !important; }
/* Sections : fond très légèrement dégradé (moins plat) */
#services, #technologies, #pricing { background: linear-gradient(180deg, #ffffff, #faf9f6) !important; }

/* ═══ 15. Typo moderne — titres en sans (Manrope) au lieu du serif Bitter ═══ */
main h1, main h2, main h3, main h4, main h5, .c7-h2 {
  font-family: 'Manrope', 'Inter', system-ui, -apple-system, sans-serif !important;
  letter-spacing: -.022em !important;
}
main section h2, .c7-h2 { font-weight: 800 !important; }
main h3, main h4 { font-weight: 700 !important; }
/* Titre hero : sans, poids medium (le serif fin faisait « classique ») */
#home h2 { font-family: 'Manrope', 'Inter', sans-serif !important; font-weight: 400 !important; letter-spacing: -.025em !important; }
#home h2 b, #home h2 strong, #home h2 [class*="font-bold"], #home h2 [class*="font-semibold"], #home h2 [class*="font-extrabold"] { font-weight: 800 !important; }
/* Wordmarks header + footer en sans */
header .h-16.flex.items-center::after { font-family: 'Manrope', 'Inter', sans-serif !important; font-weight: 800 !important; letter-spacing: -.02em; }
.c7-word { font-family: 'Manrope', 'Inter', sans-serif !important; font-weight: 800 !important; }

/* ═══ 16. Hero : vidéo de fond (machine FAO / impression 3D) ═══ */
#c7-hero-vid { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 10%; z-index: 0; pointer-events: none; }
/* Fond du hero : charbon immédiat + photo cabinet stock du bundle SUPPRIMÉE dès le 1er
   rendu (CSS render-blocking dans <head>) → plus de flash de la photo avant la vidéo. */
#home .absolute.inset-0.z-0 { background-color: #141414 !important; background-image: none !important; }

/* ═══ 17. Hero moins « carré » + menu affiné ═══ */
/* Chips (Fabrication / Matériaux / Excellence) : arrondies (annule le 2px) */
.c7-hero-chip { border-radius: 16px !important; padding: 12px 18px !important; }
/* Boutons CTA du hero en pilule (bouton « Espace praticien » inclus) */
#home .c7-hero-cta a[class*="rounded"], #home .c7-hero-cta button[class*="rounded"],
#home .c7-hero-cta a, #home .c7-hero-cta button, #c7-ghost-cta { border-radius: 999px !important; }

/* Menu : libellés sur UNE ligne, plus compacts, header en verre dépoli */
header nav a, header nav button { white-space: nowrap !important; }
header nav a:not(.c7-btn-call):not(.c7-btn-login) { font-size: 13.5px !important; letter-spacing: -.01em; padding-left: 9px !important; padding-right: 9px !important; }
header.fixed {
  background: rgba(18, 18, 18, .66) !important;
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid rgba(255, 255, 255, .07);
}
header.c7-scrolled { background: rgba(14, 14, 14, .92) !important; }

/* ═══ 18. Bouton WhatsApp flottant ═══ */
#c7-wa {
  position: fixed; right: 20px; bottom: 20px; z-index: 60;
  width: 58px; height: 58px; border-radius: 50%;
  background: #25D366; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 14px 30px -8px rgba(37, 211, 102, .55); text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease;
}
#c7-wa svg { width: 30px; height: 30px; display: block; }
#c7-wa::before {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
  animation: c7wa-pulse 2.4s cubic-bezier(.66, 0, 0, 1) infinite;
}
@keyframes c7wa-pulse {
  0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, .45); }
  70% { box-shadow: 0 0 0 16px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}
#c7-wa:hover { transform: scale(1.07); box-shadow: 0 18px 36px -8px rgba(37, 211, 102, .7); }
@media (max-width: 600px) { #c7-wa { width: 54px; height: 54px; right: 15px; bottom: 15px; } }

/* ═══ 19. Hero TOUJOURS visible ═══ */
/* Le bundle enrobe titre/sous-titre/chips dans des wrappers d'apparition (opacity:0 +
   translateY) qui restaient bloqués sur les grandes fenêtres → contenu invisible.
   On force la visibilité (au prix du fondu d'entrée du hero, acceptable). */
#home .container * { opacity: 1 !important; }
#home .container [style*="translate"], #home .container [style*="matrix"] { transform: none !important; }

/* ═══ 20. Anti-flash boutons — style final dès le 1er paint (par classes du bundle,
   sans attendre que le JS pose .c7-btn-*). Supprime le flash « anciens boutons ». ═══ */
/* Header — « Appeler » (bundle bg-primary → contour or, pilule) */
header a[class*="bg-primary"] { background: transparent !important; border: 1.5px solid var(--c7-or) !important; border-radius: 999px !important; box-shadow: none !important; }
header a[class*="bg-primary"], header a[class*="bg-primary"] * { color: var(--c7-or-clair) !important; }
/* Header — « Connexion » (bundle bg-secondary → or plein, pilule) */
header button[class*="bg-secondary"] { background: var(--c7-or) !important; border: 1.5px solid var(--c7-or) !important; border-radius: 999px !important; box-shadow: none !important; }
header button[class*="bg-secondary"], header button[class*="bg-secondary"] * { color: #fff !important; }
/* Hero — « Espace praticien » (bundle bg-white rounded-full → contour blanc transparent, pilule) */
#home a[class*="bg-white"][class*="rounded-full"], #home button[class*="bg-white"][class*="rounded-full"] {
  background: transparent !important; border: 2px solid #fff !important; border-radius: 999px !important; box-shadow: none !important;
}
#home a[class*="bg-white"][class*="rounded-full"], #home a[class*="bg-white"][class*="rounded-full"] *,
#home button[class*="bg-white"][class*="rounded-full"], #home button[class*="bg-white"][class*="rounded-full"] * { color: #fff !important; }

/* ═══ 21. Header plus fin — hauteur réduite (Alban 13/08) ═══ */
header .h-16 { height: 50px !important; min-height: 50px !important; }
header.fixed img { height: 38px !important; }
header.c7-scrolled .h-16 { height: 46px !important; min-height: 46px !important; }
header.c7-scrolled img { height: 32px !important; }
header nav a:not(.c7-btn-call):not(.c7-btn-login) { padding-top: 5px !important; padding-bottom: 5px !important; }
.c7-btn-call, .c7-btn-login { padding-top: 6px !important; padding-bottom: 6px !important; }
header .h-16.flex.items-center::after { font-size: 1.08rem !important; }

/* ═══ 22. Sections dynamiques — spotlight « pub » : la carte active passe au
        1er plan (zoom + gros halo doré + fond doré), les autres s'estompent.
        Un balayage rotatif, pas une pulsation. Pause au survol. ═══ */
.c7-dyn-item {
  border-radius: 22px;
  transition: opacity .55s ease, filter .55s ease,
              transform .55s cubic-bezier(.2,.8,.2,1),
              box-shadow .55s ease, background-color .55s ease !important;
}
.c7-dyn-item .c7-icon { transition: transform .55s cubic-bezier(.2,.8,.2,1), box-shadow .55s !important; }
.c7-dyn-item h3, .c7-dyn-item h4 { transition: color .5s; }
/* cartes NON actives : estompées → l'œil va sur l'active */
.c7-dyn-item:not(.c7-dyn-active):not(:hover) { opacity: .46; filter: saturate(.68); }
.c7-dyn-item:hover { opacity: 1 !important; filter: none !important; }
/* carte ACTIVE : forte mise en avant */
.c7-dyn-active {
  opacity: 1 !important;
  filter: none !important;
  transform: translateY(-8px) scale(1.035);
  box-shadow: 0 30px 58px -24px rgba(171,139,63,.8), 0 0 0 1px rgba(171,139,63,.35) !important;
  background-color: rgba(171,139,63,.055);
}
.c7-dyn-active .c7-icon {
  transform: scale(1.2) !important;
  box-shadow: 0 0 0 6px rgba(171,139,63,.2), 0 16px 34px -8px rgba(171,139,63,.75) !important;
}
.c7-dyn-active h3, .c7-dyn-active h4 { color: var(--c7-or) !important; }
/* « Comment ça marche » : pastille numéro (garde son translateX de centrage) */
.c7-step.c7-dyn-item > span { transition: transform .55s, box-shadow .55s; }
.c7-step.c7-dyn-active > span {
  transform: translateX(-50%) scale(1.16) !important;
  box-shadow: 0 0 0 6px #fff, 0 0 0 9px rgba(171,139,63,.28), 0 12px 26px -6px rgba(171,139,63,.6) !important;
}
/* pendant le tilt (survol) : pas de transition transform → tilt réactif */
[data-c7tilt].c7-tilting { transition: none !important; }

/* ═══ 23. Page de connexion / auth — thème or (fini le vert/teal du bundle) ═══ */
/* Bouton principal « Se connecter » / « S'inscrire » → or plein, pilule */
main form button, main form [type="submit"],
main button[class*="bg-primary"], main button[class*="bg-teal"],
main button[class*="bg-emerald"], main button[class*="bg-green"],
main a[class*="bg-primary"], main a[class*="bg-teal"], main a[class*="bg-emerald"], main a[class*="bg-green"] {
  background: var(--c7-or) !important;
  border-color: var(--c7-or) !important;
  border-radius: 999px !important;
  box-shadow: 0 14px 28px -14px rgba(171,139,63,.78) !important;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease !important;
}
main form button, main form button *, main form [type="submit"], main form [type="submit"] * { color: #fff !important; }
main form button:hover, main form [type="submit"]:hover,
main button[class*="bg-primary"]:hover, main button[class*="bg-teal"]:hover,
main button[class*="bg-emerald"]:hover, main button[class*="bg-green"]:hover {
  background: #96792f !important; transform: translateY(-1px);
  box-shadow: 0 18px 34px -14px rgba(171,139,63,.9) !important;
}
/* Liens d'accent (Mot de passe oublié, S'inscrire) → or */
main a[class*="text-teal"], main a[class*="text-emerald"], main a[class*="text-green"],
main a[class*="text-primary"], main a[class*="text-secondary"] { color: var(--c7-or) !important; }
main a[class*="text-teal"]:hover, main a[class*="text-emerald"]:hover, main a[class*="text-green"]:hover,
main a[class*="text-primary"]:hover, main a[class*="text-secondary"]:hover { color: #96792f !important; }
/* Champs de la carte de connexion : focus or (cohérence) — déjà global, renforcé */
main form input:focus, main form input:focus-visible {
  outline: none !important; border-color: var(--c7-or) !important;
  box-shadow: 0 0 0 3px rgba(171,139,63,.16) !important;
}

/* ═══ 22. Admin premium — socle scopé /admin (Alban 13/08) ═══ */
body.c7-admin .min-h-screen.bg-gray-50 { background: radial-gradient(120% 80% at 50% -8%, #ffffff 0%, #f5f3ec 58%, #efece2 100%) !important; }
body.c7-admin input[type="text"], body.c7-admin input[type="search"] { border-radius: 12px !important; border: 1.5px solid #e7e3d8 !important; box-shadow: 0 1px 2px rgba(20,20,20,.04) !important; }
body.c7-admin input[type="text"]:focus, body.c7-admin input[type="search"]:focus { border-color: var(--c7-or, #ab8b3f) !important; box-shadow: 0 0 0 3px rgba(171,139,63,.16) !important; outline: none !important; }
body.c7-admin select { border-radius: 12px !important; border: 1.5px solid #e7e3d8 !important; font-weight: 600 !important; box-shadow: 0 1px 2px rgba(20,20,20,.04) !important; }
body.c7-admin select:focus { border-color: var(--c7-or, #ab8b3f) !important; box-shadow: 0 0 0 3px rgba(171,139,63,.16) !important; outline: none !important; }
/* Bandeau KPI */
.c7-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 0 0 18px; }
@media (max-width: 640px) { .c7-kpis { grid-template-columns: repeat(2, 1fr); } }
.c7-kpi { background: #fff; border: 1px solid #ece8dd; border-radius: 16px; padding: 14px 16px; cursor: pointer; transition: transform .15s, border-color .15s, box-shadow .15s; box-shadow: 0 1px 2px rgba(20,20,20,.05); }
.c7-kpi:hover { transform: translateY(-2px); border-color: var(--c7-or, #ab8b3f); box-shadow: 0 12px 26px -16px rgba(20,20,20,.4); }
.c7-kpi .n { font-size: 27px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.c7-kpi .l { font-size: 11px; color: #8a8578; margin-top: 5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.c7-kpi.k-pending .n { color: #6b7280; } .c7-kpi.k-processing .n { color: #2563eb; }
.c7-kpi.k-completed .n { color: #15803d; } .c7-kpi.k-cancelled .n { color: #b91c1c; }
.c7-kpi.on { border-color: var(--c7-or, #ab8b3f); box-shadow: 0 0 0 2px rgba(171,139,63,.28); }

/* ═══ 23. Admin — finitions ciblées (Alban 13/08) ═══ */
/* « Administration » lisible sur le header sombre */
body.c7-admin header :where(span, h1, h2, h3, p) { color: #f4f1ea !important; }
/* Bouton « Ouvrir » : pilule raffinée encre+cyan (fini le blob doré) */
body.c7-admin [class*="bg-primary/10"] {
  background: #16221f !important; color: #eafffb !important;
  border: 1px solid rgba(94,242,230,.42) !important; border-radius: 10px !important;
  padding: 7px 15px !important; font-weight: 600 !important; letter-spacing: .01em;
  box-shadow: 0 8px 18px -10px rgba(14,158,144,.55) !important; transition: transform .16s ease, background .16s ease, border-color .16s ease !important;
}
body.c7-admin [class*="bg-primary/10"]:hover { background: #0e9e90 !important; border-color: #0e9e90 !important; transform: translateY(-1px); }
body.c7-admin [class*="bg-primary/10"] svg { color: #5ef2e6 !important; }
/* Champs & selects : rayon cohérent 12px */
body.c7-admin [class*="rounded-lg"][class*="border-2"] { border-radius: 12px !important; }
/* Carte statut select : un poil plus premium */
body.c7-admin select { background-image: none; }
/* KPI : liseré d'accent coloré en haut */
.c7-kpi { position: relative; overflow: hidden; }
.c7-kpi::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; }
.c7-kpi.k-pending::before { background: #9ca3af; } .c7-kpi.k-processing::before { background: #2563eb; }
.c7-kpi.k-completed::before { background: #15803d; } .c7-kpi.k-cancelled::before { background: #b91c1c; }

/* ═══ 24. Admin — carte commande premium (Alban 13/08) ═══ */
body.c7-admin .rounded-lg.shadow-sm.border.cursor-pointer {
  border-radius: 16px !important;
  border-left-width: 4px !important;
  box-shadow: 0 1px 2px rgba(20,20,20,.04), 0 16px 34px -22px rgba(20,20,20,.30) !important;
  transition: transform .18s ease, box-shadow .18s ease !important;
}
body.c7-admin .rounded-lg.shadow-sm.border.cursor-pointer:hover {
  transform: translateY(-3px);
  box-shadow: 0 2px 5px rgba(20,20,20,.05), 0 26px 50px -24px rgba(20,20,20,.36) !important;
}
/* Patient plus affirmé, réf discrète */
body.c7-admin .rounded-lg.shadow-sm.border.cursor-pointer .font-medium.text-gray-900 { font-weight: 800 !important; letter-spacing: -.01em; }
/* Ligne fichier : fond neutre propre */
body.c7-admin .rounded-lg.shadow-sm.border.cursor-pointer .bg-white, 
body.c7-admin .rounded-lg.shadow-sm.border.cursor-pointer [class*="bg-gray-50"] { border-radius: 12px !important; }

/* ═══ 25. Admin — cartes Utilisateurs (même premium que Commandes) ═══ */
body.c7-admin .rounded-lg.shadow-sm.border {
  border-radius: 16px !important;
  box-shadow: 0 1px 2px rgba(20,20,20,.04), 0 16px 34px -22px rgba(20,20,20,.28) !important;
  transition: transform .18s ease, box-shadow .18s ease !important;
}
body.c7-admin .rounded-lg.shadow-sm.border:hover {
  transform: translateY(-3px);
  box-shadow: 0 2px 5px rgba(20,20,20,.05), 0 26px 50px -24px rgba(20,20,20,.34) !important;
}

/* ═══ 26. Admin — bouton Export CSV ═══ */
.c7-exportbar { display: flex; justify-content: flex-end; margin: 0 0 12px; }
.c7-export { display: inline-flex; align-items: center; gap: 7px; font: inherit; font-size: 13px; font-weight: 700;
  cursor: pointer; padding: 9px 16px; border-radius: 12px; border: 1.5px solid var(--c7-or, #ab8b3f);
  background: #fff; color: #8a6d1f; transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
  box-shadow: 0 1px 2px rgba(20,20,20,.05); }
.c7-export:hover { transform: translateY(-1px); background: var(--c7-or, #ab8b3f); color: #fff; box-shadow: 0 10px 22px -12px rgba(171,139,63,.6); }

/* ═══ 27. Admin — compteur de commandes (barre export) ═══ */
.c7-exportbar { justify-content: space-between; align-items: center; }
.c7-count { font-size: 13px; color: #8a8578; font-weight: 700; }

/* ═══ 28. Section « Avis Google » réels (auto /reviews.php) ═══ */
.c7-avis-sec { background: linear-gradient(180deg,#fbfaf7 0%, #f4f1ea 100%); }
.c7-avis-wrap { max-width: 1120px; margin: 0 auto; padding: 0 20px; }
.c7-avis-head { text-align: center; margin-bottom: 34px; }
.c7-avis-eyebrow { display:inline-block; font-size:.72rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--c7-or); margin-bottom:10px; }
.c7-avis-sec h2 { margin: 0 0 16px; }
.c7-avis-badge { display:inline-flex; align-items:center; gap:9px; background:#fff; border:1px solid var(--c7-line); border-radius:999px; padding:8px 16px; box-shadow:0 6px 22px rgba(20,20,20,.06); }
.c7-avis-note { font-size:1.15rem; font-weight:800; color:var(--c7-texte); }
.c7-avis-stars { color:#f5b301; letter-spacing:1px; font-size:1rem; }
.c7-avis-count { font-size:.86rem; color:var(--c7-texte-2); font-weight:600; }
.c7-avis-g { display:inline-grid; place-items:center; width:22px; height:22px; border-radius:50%; background:#fff; border:1px solid #e6e3db; color:#4285F4; font-weight:800; font-family:Arial,sans-serif; font-size:13px; }
.c7-avis-g.sm { width:16px; height:16px; font-size:10px; border-width:1px; }

.c7-avis-grid { display:flex; flex-wrap:wrap; justify-content:center; gap:20px; }
.c7-avis-card { flex:1 1 320px; max-width:360px; background:#fff; border:1px solid var(--c7-line); border-radius:18px; padding:24px 22px; box-shadow:0 10px 30px rgba(20,20,20,.05); display:flex; flex-direction:column; text-align:left; transition:transform .25s, box-shadow .25s; }
.c7-avis-card:hover { transform:translateY(-4px); box-shadow:0 16px 40px rgba(20,20,20,.10); }
.c7-avis-srow { color:#f5b301; letter-spacing:2px; font-size:1.05rem; margin-bottom:12px; }
.c7-avis-txt { color:var(--c7-texte); font-size:.96rem; line-height:1.6; margin:0 0 18px; }
.c7-avis-author { display:flex; align-items:center; gap:12px; margin-top:auto; padding-top:14px; border-top:1px solid #f0ede6; }
.c7-avis-ava { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,var(--c7-or),var(--c7-or-clair)); color:#fff; font-weight:800; font-size:1rem; flex:0 0 auto; }
.c7-avis-meta b { display:block; font-size:.95rem; color:var(--c7-texte); }
.c7-avis-src { display:inline-flex; align-items:center; gap:5px; font-size:.78rem; color:var(--c7-texte-2); margin-top:2px; }
.c7-avis-cta { text-align:center; margin-top:34px; }
.c7-avis-more { display:inline-flex; align-items:center; gap:8px; background:var(--c7-or); color:#fff !important; font-weight:700; padding:13px 26px; border-radius:999px; text-decoration:none; box-shadow:0 8px 24px rgba(171,139,63,.28); transition:transform .2s, box-shadow .2s; }
.c7-avis-more:hover { transform:translateY(-2px); box-shadow:0 12px 30px rgba(171,139,63,.38); }

/* Mobile : section condensée, cartes pleine largeur, moins d'air */
@media (max-width: 760px) {
  main section#c7-avis { padding-top: 56px !important; padding-bottom: 56px !important; }
  .c7-avis-head { margin-bottom: 22px; }
  .c7-avis-grid { gap: 14px; }
  .c7-avis-card { flex-basis:100%; max-width:100%; padding:18px 16px; border-radius:14px; }
  .c7-avis-txt { font-size:.92rem; line-height:1.55; margin-bottom:14px; }
  .c7-avis-badge { padding:7px 13px; gap:7px; }
  .c7-avis-note { font-size:1.05rem; }
  .c7-avis-cta { margin-top:22px; }
}

/* ═══ 29. DENSIFICATION MOBILE — moins d'espace mort, plus « pub » ═══ */
@media (max-width: 760px) {
  /* moins d'air vertical entre/dans les sections */
  main section[id]:not(#home) { padding-top: 54px !important; padding-bottom: 54px !important; }
  main section[id] h2 { font-size: 1.6rem !important; margin-bottom: 6px !important; }
  main section[id] h2 + p, .c7-sub { font-size: .92rem !important; margin-bottom: 22px !important; }

  /* grilles 1 colonne → 2 colonnes serrées (fin de l'espace perdu) */
  #about .grid, #made-in-france .grid, #technologies .grid, #pricing .grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 11px !important;
    max-width: 100% !important;
  }
  /* cartes : padding réduit (wrappers portant leur padding : made-in-france, pricing) */
  #made-in-france .grid > *, #pricing .grid > * { padding: 15px 13px !important; }
  /* cartes à padding interne (about, technologies) */
  #about .grid > * > *, #technologies .grid > * > * { padding: 15px 13px !important; }

  /* titres/desc de cartes plus compacts */
  #about h3, #made-in-france h3, #technologies h3, #pricing h3 { font-size: 1rem !important; line-height: 1.25 !important; margin-bottom: 3px !important; }
  #about .grid p, #made-in-france .grid p, #technologies .grid p, #pricing .grid p {
    font-size: .8rem !important; line-height: 1.4 !important; margin-bottom: 0 !important;
  }

  /* icônes rondes réduites dans les blocs de cartes */
  #about .c7-icon, #made-in-france .c7-icon, #technologies .c7-icon, #services .c7-icon, #pricing .c7-icon {
    width: 42px !important; height: 42px !important; margin-bottom: 8px !important;
  }
  #about .c7-icon svg, #made-in-france .c7-icon svg, #technologies .c7-icon svg,
  #services .c7-icon svg, #pricing .c7-icon svg { width: 19px !important; height: 19px !important; }

  /* badges flottants "100% certifiés / 24-48h" : petits et contenus dans la carte */
  #about .absolute { top: -9px !important; right: 8px !important; padding: 2px 8px !important; font-size: .62rem !important; }

  /* Tarifs : prix bien visible (effet catalogue) */
  #pricing .grid [class*="text-2xl"], #pricing .grid [class*="text-xl"], #pricing .grid .text-primary {
    font-size: 1.1rem !important;
  }
  #pricing .grid [class*="flex"][class*="justify-between"] { margin-bottom: 8px !important; }

  /* Services : on garde 1 colonne (plus de texte) mais on resserre */
  #services .grid { gap: 12px !important; }
  #services .grid > * { padding: 15px !important; }
}

/* ═══ 30. Section Instagram @dentalab.pei (feed auto Behold) ═══ */
.c7-insta-sec { background: radial-gradient(120% 100% at 50% 0%, #1c1c1c 0%, #141414 60%); }
.c7-insta-wrap { max-width: 1280px; margin: 0 auto; padding: 0 20px; }
.c7-insta-head { text-align: center; margin-bottom: 30px; }
.c7-insta-sec .c7-insta-eyebrow { display:inline-block; font-size:.74rem; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:#e6c574 !important; -webkit-text-fill-color:#e6c574 !important; opacity:1 !important; margin-bottom:10px; }
#c7-insta h2, .c7-insta-sec h2 { color:#fff !important; -webkit-text-fill-color:#fff !important; opacity:1 !important; margin:0 0 10px; font-size:clamp(1.7rem,3vw,2.4rem) !important; text-shadow:0 2px 40px rgba(0,0,0,.45); }
#c7-insta .c7-insta-head, #c7-insta .c7-insta-head * { opacity:1 !important; transform:none !important; }
.c7-insta-handle { display:inline-block; font-weight:800; font-size:1.02rem; text-decoration:none; background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.c7-insta-grid { display:flex; gap:16px; align-items:stretch; }
.c7-insta-tile { flex:1 1 0; min-width:0; position:relative; aspect-ratio:1/1; border-radius:18px; background:#222 center/cover no-repeat; overflow:hidden; display:block; box-shadow:0 12px 30px rgba(0,0,0,.35); transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
.c7-insta-tile:hover { transform:translateY(-6px) scale(1.02); box-shadow:0 22px 48px rgba(0,0,0,.5); z-index:2; }
.c7-insta-ov { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,0) 45%,rgba(0,0,0,.4)); opacity:0; transition:opacity .3s; }
.c7-insta-tile:hover .c7-insta-ov { opacity:1; }
.c7-insta-play { position:absolute; top:8px; right:9px; z-index:2; color:#fff; font-size:.7rem; text-shadow:0 1px 4px rgba(0,0,0,.5); }
.c7-insta-cta { text-align:center; margin-top:30px; }
.c7-insta-btn { display:inline-flex; align-items:center; gap:9px; color:#fff !important; font-weight:700; padding:14px 30px; border-radius:999px; text-decoration:none; background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); box-shadow:0 10px 30px rgba(220,39,67,.34); transition:transform .2s, box-shadow .2s; }
.c7-insta-btn:hover { transform:translateY(-2px); box-shadow:0 16px 38px rgba(220,39,67,.5); }
@media (max-width:760px) {
  main section#c7-insta { padding-top:54px !important; padding-bottom:54px !important; }
  .c7-insta-grid { gap:10px; overflow-x:auto; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .c7-insta-grid::-webkit-scrollbar { display:none; }
  .c7-insta-tile { flex:0 0 46%; scroll-snap-align:center; border-radius:12px; }
  .c7-insta-head { margin-bottom:20px; }
  .c7-insta-cta { margin-top:22px; }
}

/* ═══ 24. « Made in France » — section éditoriale sombre (refonte DA « atelier ») ═══ */
.c7-mif-hidden { display: none !important; }
#c7-mif { background: var(--ink) !important; color: var(--paper); padding: 120px 0 !important; border: 0; border-radius: 0; overflow: hidden; }
#c7-mif::before, #c7-mif::after { content: none !important; }
#c7-mif .c7-mif-wrap { max-width: 1160px; margin: 0 auto; padding: 0 32px; }
/* En-tête 2 colonnes : titre à gauche, chiffres à droite alignés bas */
#c7-mif .c7-mif-head { display: grid; grid-template-columns: 7fr 5fr; gap: 48px; align-items: end; margin-bottom: 60px; }
#c7-mif .c7-kicker { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); margin: 0 0 18px; }
#c7-mif .c7-mif-title {
  font-family: 'Fraunces', 'Bitter', Georgia, serif !important;
  font-weight: 500 !important; letter-spacing: -.01em !important;
  font-size: clamp(30px, 4vw, 54px) !important; line-height: 1.08 !important;
  color: var(--paper) !important; -webkit-text-fill-color: var(--paper) !important;
  margin: 0 !important; max-width: 16ch;
}
#c7-mif .c7-mif-title::after { content: none !important; }
#c7-mif .c7-mif-stats { display: flex; gap: 48px; justify-content: flex-end; }
#c7-mif .c7-mif-stat { display: flex; flex-direction: column; gap: 6px; text-align: right; }
#c7-mif .c7-mif-figure { display: flex; align-items: baseline; justify-content: flex-end; }
#c7-mif .c7-mif-num { font-family: 'Fraunces','Bitter',Georgia,serif; font-weight: 540; font-size: 34px; line-height: 1; color: var(--gold); }
#c7-mif .c7-mif-num-txt { font-size: 27px; letter-spacing: .01em; }
#c7-mif .c7-mif-unit { font-family: 'Fraunces','Bitter',serif; color: var(--gold); font-weight: 540; font-size: 24px; margin-left: 2px; }
#c7-mif .c7-mif-lbl { font-size: 12px; letter-spacing: .04em; color: var(--muted); }
/* Liste éditoriale */
#c7-mif .c7-mif-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ink-soft); }
#c7-mif .c7-mif-row { border-bottom: 1px solid var(--ink-soft); }
#c7-mif .c7-mif-rowinner {
  display: grid; grid-template-columns: 52px 4fr 6fr 40px; align-items: center; gap: 28px;
  padding: 26px 6px; text-decoration: none; color: inherit;
  opacity: 0; transform: translateY(12px);
  transition: opacity .5s ease, transform .5s ease, background-color .25s ease;
}
#c7-mif .c7-mif-row.on .c7-mif-rowinner { opacity: 1; transform: none; }
#c7-mif .c7-mif-n { font-family: 'Fraunces','Bitter',serif; font-size: 15px; color: var(--gold); letter-spacing: .06em; }
#c7-mif .c7-mif-t { font-family: 'Fraunces','Bitter',serif; font-weight: 500; font-size: clamp(18px, 1.6vw, 22px); color: var(--paper); transition: color .2s ease; }
#c7-mif .c7-mif-d { font-size: 15px; line-height: 1.6; color: var(--muted); }
#c7-mif .c7-mif-arrow { justify-self: end; color: var(--gold); font-size: 18px; opacity: 0; transform: translate(-4px, 4px); transition: opacity .2s ease, transform .2s ease; }
#c7-mif a.c7-mif-rowinner { cursor: pointer; }
#c7-mif a.c7-mif-rowinner .c7-mif-arrow { opacity: .55; }
#c7-mif .c7-mif-rowinner:hover .c7-mif-t { color: var(--gold-soft); }
#c7-mif .c7-mif-rowinner:hover .c7-mif-arrow { opacity: 1; transform: translate(0, 0); }
#c7-mif a.c7-mif-rowinner:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; border-radius: 2px; }
/* Responsive */
@media (max-width: 900px) {
  #c7-mif .c7-mif-head { grid-template-columns: 1fr; gap: 30px; align-items: start; }
  #c7-mif .c7-mif-stats { justify-content: flex-start; }
  #c7-mif .c7-mif-stat { text-align: left; }
  #c7-mif .c7-mif-figure { justify-content: flex-start; }
}
@media (max-width: 768px) {
  #c7-mif { padding: 64px 0 !important; }
  #c7-mif .c7-mif-rowinner { grid-template-columns: 44px 1fr; grid-auto-rows: auto; gap: 4px 16px; padding: 20px 4px; }
  #c7-mif .c7-mif-n { grid-row: 1 / span 2; align-self: start; }
  #c7-mif .c7-mif-d { grid-column: 2; }
  #c7-mif .c7-mif-arrow { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  #c7-mif .c7-mif-rowinner { opacity: 1 !important; transform: none !important; }
}

/* ═══ 25. Made in France — correctifs : titre lisible + aucune box parasite ═══ */
/* Titre clair (bat la règle générique main section h2, spécificité (1,2,1)) */
#c7-mif .c7-mif-head-l h2.c7-mif-title {
  color: var(--paper) !important;
  -webkit-text-fill-color: var(--paper) !important;
}
/* Reset : aucune bordure / ombre / halo / arrondi / pseudo sur l'en-tête */
#c7-mif .c7-mif-wrap, #c7-mif .c7-mif-head, #c7-mif .c7-mif-head-l,
#c7-mif .c7-mif-head-l > *, #c7-mif .c7-mif-stats, #c7-mif .c7-mif-stat,
#c7-mif .c7-mif-figure, #c7-mif h2.c7-mif-title {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  border-radius: 0 !important;
}
#c7-mif .c7-mif-head-l > *::before, #c7-mif .c7-mif-head-l > *::after,
#c7-mif h2.c7-mif-title::before, #c7-mif h2.c7-mif-title::after { content: none !important; }

/* ═══ 26. « Nos Technologies » — section éditoriale CLAIRE (--paper) ═══ */
#c7-tech { background: var(--paper) !important; color: var(--paper-text); padding: 120px 0 !important; border: 0; border-radius: 0; overflow: hidden; }
#c7-tech::before, #c7-tech::after { content: none !important; }
#c7-tech .c7-mif-wrap { max-width: 1160px; margin: 0 auto; padding: 0 32px; }
#c7-tech .c7-tech-head { max-width: 760px; margin: 0 0 56px; }
#c7-tech .c7-kicker { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gold); margin: 0 0 16px; }
#c7-tech .c7-tech-head h2.c7-mif-title {
  font-family: 'Fraunces', 'Bitter', Georgia, serif !important;
  font-weight: 500 !important; letter-spacing: -.01em !important;
  font-size: clamp(30px, 4vw, 52px) !important; line-height: 1.08 !important;
  color: var(--paper-text) !important; -webkit-text-fill-color: var(--paper-text) !important;
  margin: 0 !important; max-width: 18ch;
  background: transparent !important; border: 0 !important; box-shadow: none !important;
}
#c7-tech .c7-mif-title::after { content: none !important; }
#c7-tech .c7-tech-sub { margin: 16px 0 0; font-size: 16px; line-height: 1.6; color: var(--muted) !important; max-width: 56ch; }
#c7-tech .c7-mif-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(28,30,29,.12); }
#c7-tech .c7-mif-row { border-bottom: 1px solid rgba(28,30,29,.12); }
#c7-tech .c7-mif-rowinner { display: grid; grid-template-columns: 52px 4fr 6fr; align-items: center; gap: 28px; padding: 26px 6px; opacity: 0; transform: translateY(12px); transition: opacity .5s ease, transform .5s ease; }
#c7-tech .c7-mif-row.on .c7-mif-rowinner { opacity: 1; transform: none; }
#c7-tech .c7-mif-n { font-family: 'Fraunces','Bitter',serif; font-size: 15px; color: var(--gold); letter-spacing: .06em; }
#c7-tech .c7-mif-t { font-family: 'Fraunces','Bitter',serif; font-weight: 500; font-size: clamp(18px, 1.6vw, 22px); color: var(--paper-text) !important; transition: color .2s ease; }
#c7-tech .c7-mif-d { font-size: 15px; line-height: 1.6; color: var(--muted); }
#c7-tech .c7-mif-rowinner:hover .c7-mif-t { color: var(--gold); }
@media (max-width: 768px) {
  #c7-tech { padding: 64px 0 !important; }
  #c7-tech .c7-mif-rowinner { grid-template-columns: 44px 1fr; grid-auto-rows: auto; gap: 4px 16px; padding: 20px 4px; }
  #c7-tech .c7-mif-n { grid-row: 1 / span 2; align-self: start; }
  #c7-tech .c7-mif-d { grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) { #c7-tech .c7-mif-rowinner { opacity: 1 !important; transform: none !important; } }

/* ═══ 27. Map « labo » — présentation pleine largeur + barre flottante (façon dentalpei) ═══ */
#c7-map { position: relative !important; padding: 0 !important; background: var(--paper) !important; }
#c7-map .c7-map-frame { position: relative; width: 100%; height: 520px; overflow: hidden; background: #e9e6df; }
#c7-map .c7-map-iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; filter: grayscale(.08); }
#c7-map .c7-map-bar {
  position: absolute; left: 50%; bottom: 28px; transform: translateX(-50%);
  width: min(1080px, calc(100% - 48px));
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  background: #fff; border: 1px solid var(--c7-line); border-radius: 22px;
  box-shadow: 0 26px 64px -26px rgba(20,20,20,.45);
  padding: 16px 22px; z-index: 2;
}
#c7-map .c7-map-bar-main { display: flex; align-items: center; gap: 16px; min-width: 0; }
#c7-map .c7-map-logo { height: 46px; width: auto; flex: 0 0 auto; }
#c7-map .c7-map-txt { min-width: 0; }
#c7-map .c7-map-name { margin: 0; font-weight: 800; font-size: 16px; color: var(--c7-noir); letter-spacing: -.01em; line-height: 1.3; }
#c7-map .c7-map-addr { font-weight: 500; color: var(--c7-texte-2); font-size: 14.5px; }
#c7-map .c7-map-meta { margin: 3px 0 0; font-size: 14px; color: var(--c7-texte-2); }
#c7-map .c7-map-meta a { color: var(--c7-or); font-weight: 700; text-decoration: none; border-bottom: 1px solid rgba(171,139,63,.4); }
#c7-map .c7-map-meta a:hover { border-bottom-color: var(--c7-or); }
#c7-map .c7-map-dot { margin: 0 8px; color: #c9c9c9; }
#c7-map .c7-map-actions { display: flex; gap: 12px; flex: 0 0 auto; }
#c7-map .c7-mapbtn { display: inline-flex; align-items: center; gap: 7px; border-radius: 999px; padding: 12px 22px; font-size: 14px; font-weight: 700; text-decoration: none; white-space: nowrap; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease; }
#c7-map .c7-mapbtn.go { background: var(--c7-or); color: #fff; box-shadow: 0 12px 26px -12px rgba(171,139,63,.85); }
#c7-map .c7-mapbtn.go:hover { transform: translateY(-2px); box-shadow: 0 18px 34px -12px rgba(171,139,63,.95); }
#c7-map .c7-mapbtn.ghost { background: #fff; color: var(--c7-noir); border: 1.5px solid var(--c7-line); }
#c7-map .c7-mapbtn.ghost:hover { border-color: var(--c7-or); color: var(--c7-or); }
@media (max-width: 820px) {
  #c7-map .c7-map-frame { height: 480px; }
  #c7-map .c7-map-bar { flex-direction: column; align-items: stretch; bottom: 16px; gap: 14px; padding: 16px; border-radius: 18px; }
  #c7-map .c7-map-actions { }
  #c7-map .c7-map-actions .c7-mapbtn { flex: 1; justify-content: center; }
  #c7-map .c7-map-addr { display: block; margin-top: 2px; }
}

/* ═══ 28. Filets éditoriaux premium — hairline dégradé (fade aux bouts), pas d'orphelin ═══ */
#c7-mif .c7-mif-list, #c7-tech .c7-mif-list { position: relative; border-top: 0 !important; }
#c7-mif .c7-mif-row, #c7-tech .c7-mif-row { position: relative; border-bottom: 0 !important; }
#c7-mif .c7-mif-list::before, #c7-tech .c7-mif-list::before {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 1px;
}
#c7-mif .c7-mif-row:not(:last-child)::after, #c7-tech .c7-mif-row:not(:last-child)::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
}
/* Version claire (Technologies) : filet encre très doux */
#c7-tech .c7-mif-list::before, #c7-tech .c7-mif-row::after {
  background: linear-gradient(90deg, transparent 0%, rgba(28,30,29,.13) 5%, rgba(28,30,29,.13) 95%, transparent 100%);
}
/* Version sombre (Made in France) : filet or discret */
#c7-mif .c7-mif-list::before, #c7-mif .c7-mif-row::after {
  background: linear-gradient(90deg, transparent 0%, rgba(216,194,150,.20) 5%, rgba(216,194,150,.20) 95%, transparent 100%);
}

/* ═══ 29. Avis « Ils nous recommandent » — passage ultra premium (CSS seul) ═══ */
#c7-avis.c7-avis-sec {
  background:
    radial-gradient(1100px 380px at 50% -8%, rgba(185,154,91,.07), transparent 70%),
    linear-gradient(180deg, #FBFAF7 0%, #F5F2EB 100%);
}
#c7-avis .c7-avis-eyebrow { letter-spacing:.24em; font-size:.7rem; color:var(--gold); }
/* Titre éditorial en Fraunces */
#c7-avis .c7-avis-head h2 {
  font-family:'Fraunces', Georgia, serif !important;
  font-weight:500 !important; font-size:clamp(2rem,3.6vw,3rem) !important;
  letter-spacing:-.015em !important; color:var(--ink) !important; line-height:1.05 !important;
}
/* Filet or centré sous le titre */
#c7-avis .c7-avis-head h2::after {
  content:''; display:block; width:54px; height:2px; margin:18px auto 0;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}
/* Pastille note Google — plus fine et raffinée */
#c7-avis .c7-avis-badge {
  background:linear-gradient(180deg,#fff,#FCFAF6);
  border:1px solid rgba(185,154,91,.28);
  box-shadow:0 10px 30px -12px rgba(20,20,20,.18), 0 1px 0 #fff inset;
  padding:9px 18px;
}
#c7-avis .c7-avis-note { color:var(--ink); }

/* Grille + cartes */
/* Hauteur naturelle : la carte courte ne s'étire plus à la hauteur de la longue */
#c7-avis .c7-avis-grid { gap:26px; align-items:flex-start; }
#c7-avis .c7-avis-card {
  position:relative; overflow:hidden;
  background:#fff;
  border:1px solid rgba(185,154,91,.16);
  border-radius:20px;
  padding:30px 32px 24px;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 22px 50px -26px rgba(30,26,18,.28);
  transition:transform .4s cubic-bezier(.2,.65,.3,1), box-shadow .4s ease, border-color .4s ease;
}
#c7-avis .c7-avis-card:hover {
  transform:translateY(-6px);
  border-color:rgba(185,154,91,.4);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset, 0 34px 64px -28px rgba(30,26,18,.4);
}
/* Grande guillemet décorative en Fraunces */
#c7-avis .c7-avis-card::before {
  content:'\201C'; position:absolute; top:6px; left:20px;
  font-family:'Fraunces', Georgia, serif; font-weight:500;
  font-size:78px; line-height:1; color:rgba(185,154,91,.15);
  pointer-events:none;
}
/* Liseré doré fin en haut de carte */
#c7-avis .c7-avis-card::after {
  content:''; position:absolute; top:0; left:26px; right:26px; height:2px;
  background:linear-gradient(90deg, transparent, rgba(185,154,91,.55), transparent);
}
#c7-avis .c7-avis-srow { position:relative; z-index:1; color:#E0A81E; letter-spacing:3px; font-size:1.05rem; margin-bottom:14px; }
#c7-avis .c7-avis-txt {
  position:relative; z-index:1;
  color:var(--ink-soft); font-size:.97rem; line-height:1.68; margin-bottom:18px;
  /* Aperçu compact : avis longs tronqués à 6 lignes (le lien Google donne la suite) */
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:6; overflow:hidden;
}
#c7-avis .c7-avis-author { padding-top:18px; border-top:1px solid rgba(185,154,91,.16); }
#c7-avis .c7-avis-ava {
  width:44px; height:44px;
  background:linear-gradient(135deg,#C6A768,#9F8038);
  box-shadow:0 0 0 3px rgba(185,154,91,.16), 0 6px 14px -4px rgba(159,128,56,.5);
}
#c7-avis .c7-avis-meta b { font-weight:700; color:var(--ink); letter-spacing:-.01em; }

/* CTA doré premium avec brillance au survol */
#c7-avis .c7-avis-cta { margin-top:44px; }
#c7-avis .c7-avis-more {
  position:relative; overflow:hidden;
  background:linear-gradient(135deg,#C6A768,#A2823B);
  padding:15px 30px; font-weight:700; letter-spacing:.01em;
  box-shadow:0 14px 34px -12px rgba(159,128,56,.6), 0 1px 0 rgba(255,255,255,.25) inset;
}
#c7-avis .c7-avis-more::after {
  content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent);
  transform:skewX(-18deg); transition:left .6s ease;
}
#c7-avis .c7-avis-more:hover::after { left:130%; }
#c7-avis .c7-avis-more:hover { transform:translateY(-3px); box-shadow:0 20px 44px -14px rgba(159,128,56,.72); }

/* ═══ 30. Avis tronqués : popup au survol avec l'avis complet ═══ */
#c7-avis .c7-avis-card.c7-avis-clamped { cursor:pointer; }
/* Hint « lire l'avis complet » injecté en JS comme frère du texte (pas via
   ::after, déjà pris par le liseré doré du haut, et pour ne pas chevaucher). */
#c7-avis .c7-avis-more-hint {
  display:inline-flex; align-items:center; gap:5px;
  margin:-4px 0 16px; font-size:.74rem; font-weight:700; letter-spacing:.01em;
  color:var(--gold); opacity:.85; transition:opacity .25s, gap .25s;
}
#c7-avis .c7-avis-card:hover .c7-avis-more-hint { opacity:1; gap:8px; }

#c7-avis-pop {
  position:fixed; z-index:99999; max-width:420px; max-height:64vh; overflow:auto;
  background:#fff; color:var(--ink-soft);
  border:1px solid rgba(185,154,91,.32); border-radius:18px;
  padding:26px 28px 24px; font-size:1rem; line-height:1.72;
  box-shadow:0 34px 80px -22px rgba(30,26,18,.55);
  opacity:0; visibility:hidden; transform:translateY(8px) scale(.98);
  transition:opacity .22s ease, transform .22s cubic-bezier(.2,.7,.3,1), visibility .22s;
}
#c7-avis-pop.on { opacity:1; visibility:visible; transform:translateY(0) scale(1); }
#c7-avis-pop .c7-avis-pop-q {
  display:block; font-family:'Fraunces', Georgia, serif; font-weight:500;
  font-size:46px; line-height:.4; color:rgba(185,154,91,.5); margin-bottom:8px;
}
#c7-avis-pop p { margin:0; }
@media (max-width:640px){ #c7-avis-pop { font-size:.94rem; padding:20px 20px 18px; } }

/* ═══ 31. Apple-design pass (fluid motion, materials, typo, a11y) ═══
   D'après le skill apple-design (WWDC « Designing Fluid Interfaces »). */
:root {
  --ease-quart: cubic-bezier(.25, 1, .5, 1);   /* critically-damped : sobre, sans rebond */
  --ease-spring: cubic-bezier(.34, 1.18, .42, 1); /* léger overshoot : réservé au momentum */
}

/* §1 Response — retour instantané au press (pointer-down), sur TOUT ce qui se clique.
   Scopé à nos composants + au menu pour ne pas toucher le bundle. */
header nav a:active, header nav button:active,
.c7-btn-call:active, .c7-btn-login:active,
#c7-avis .c7-avis-more:active, .c7-send:active, .c7-wa:active,
.c7-btn-white:active, .c7-btn-ghost:active, .c7-map-btn:active,
#c7-avis .c7-avis-card:active {
  transform: scale(.966) !important;
  transition: transform .1s ease-out !important;
}

/* §4/§11 — easing type « ressort critique » sur les survols premium (au lieu de ease linéaire) */
#c7-avis .c7-avis-card, .c7-step, .c7-btn-call, .c7-btn-login,
#c7-avis .c7-avis-more, .c7-wa {
  transition-timing-function: var(--ease-quart) !important;
}

/* §15 Typography — tracking dépendant de la taille : grands titres = tracking négatif,
   optical sizing activé. Le corps reste proche de 0. */
main h1, main h2,
#c7-mif .c7-mif-title, #c7-tech .c7-mif-title, #c7-avis .c7-avis-head h2 {
  letter-spacing: -.021em;
  font-optical-sizing: auto;
}
.c7-kicker, .c7-avis-eyebrow { letter-spacing: .22em; } /* petit texte = tracking positif */

/* §12 Materials & depth — header = calque translucide (verre) plus prononcé,
   arête supérieure claire (lumière qui accroche le matériau), bord de scroll doux. */
header.fixed {
  -webkit-backdrop-filter: saturate(180%) blur(20px) !important;
  backdrop-filter: saturate(180%) blur(20px) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 10px 30px -18px rgba(0,0,0,.5) !important;
}
header.c7-scrolled { background: rgba(17,16,14,.72) !important; } /* plus translucide : le contenu passe dessous */

/* §12 « Materialize, don't just fade » — le popup d'avis est un vrai matériau verre
   qui arrive (blur + échelle ensemble), pas un simple fondu. */
#c7-avis-pop {
  background: rgba(255,255,255,.82) !important;
  -webkit-backdrop-filter: saturate(180%) blur(26px);
  backdrop-filter: saturate(180%) blur(26px);
  transform-origin: 50% 100%;
  transform: translateY(10px) scale(.955);
}
#c7-avis-pop.on { transform: translateY(0) scale(1); }

/* §14 Accessibilité — trois signaux indépendants */
@media (prefers-reduced-motion: reduce) {
  header nav a:active, header nav button:active,
  .c7-btn-call:active, .c7-btn-login:active,
  #c7-avis .c7-avis-more:active, #c7-avis .c7-avis-card:active, .c7-wa:active {
    transform: none !important;
  }
  #c7-avis-pop { transition: opacity .18s ease !important; transform: none !important; }
}
@media (prefers-reduced-transparency: reduce) {
  header.fixed { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; background: rgba(16,15,13,.98) !important; }
  header.c7-scrolled { background: rgba(16,15,13,.98) !important; }
  #c7-avis-pop { background: #fff !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@media (prefers-contrast: more) {
  #c7-avis .c7-avis-card { border-color: rgba(28,30,29,.45); }
  #c7-avis-pop { background: #fff !important; border-color: rgba(28,30,29,.5); }
  header.fixed { background: #0e0e0e !important; }
}

/* ═══ 32. Carrousel d'avis swipeable (physique fluide Apple) ═══ */
#c7-avis-grid.c7-carousel {
  display:block; position:relative; overflow:hidden;
  touch-action:pan-y; padding:4px 2px 8px; margin:0 auto;
  max-width:1180px; outline:none;
}
#c7-avis-grid.c7-carousel:focus-visible { box-shadow:0 0 0 3px rgba(185,154,91,.4); border-radius:22px; }
#c7-avis-grid.c7-carousel .c7-track {
  display:flex; gap:22px; align-items:flex-start;
  cursor:grab; will-change:transform; touch-action:pan-y;
}
#c7-avis-grid.c7-carousel .c7-track:active { cursor:grabbing; }
#c7-avis-grid.c7-carousel .c7-avis-card {
  flex:0 0 auto; width:min(360px, 82vw); max-width:none;
  -webkit-user-select:none; user-select:none;
}
/* Flèches — pastilles en verre (§12 materials) */
.c7-cnav {
  position:absolute; top:44%; transform:translateY(-50%); z-index:5;
  width:44px; height:44px; border-radius:50%; border:1px solid rgba(185,154,91,.3);
  display:grid; place-items:center; font-size:22px; line-height:1; color:var(--ink);
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:saturate(180%) blur(18px); backdrop-filter:saturate(180%) blur(18px);
  box-shadow:0 14px 34px -14px rgba(30,26,18,.4), inset 0 1px 0 rgba(255,255,255,.6);
  cursor:pointer; transition:transform .18s var(--ease-quart), opacity .18s, box-shadow .18s;
}
.c7-cnav.c7-prev { left:6px; } .c7-cnav.c7-next { right:6px; }
.c7-cnav:hover { box-shadow:0 18px 40px -14px rgba(30,26,18,.5), inset 0 1px 0 rgba(255,255,255,.6); }
.c7-cnav:active { transform:translateY(-50%) scale(.92); }
.c7-cnav:disabled { opacity:0; pointer-events:none; }
/* Dots pilule */
.c7-dots { display:flex; gap:8px; justify-content:center; align-items:center; margin-top:22px; }
.c7-dot {
  width:8px; height:8px; padding:0; border:none; border-radius:99px; cursor:pointer;
  background:rgba(185,154,91,.3); transition:width .28s var(--ease-quart), background .28s;
}
.c7-dot.on { width:24px; background:var(--gold); }
@media (hover:none) { .c7-cnav { display:none; } }  /* tactile : on swipe, pas de flèches */
@media (prefers-reduced-motion: reduce) {
  #c7-avis-grid.c7-carousel .c7-track { will-change:auto; }
  .c7-dot { transition:none; }
}
