/* =====================================================================
   Sites vitrines (indépendants, praticiens) — styles communs + ambiances.
   Chaque ambiance ([data-ambiance]) redéfinit les variables --v-* : polices, fonds, formes.
   Les couleurs viennent du nuancier du site (--pal-primary-*, --pal-accent-*, --club-navy = encre).
   ===================================================================== */

[data-kit="vitrine"] {
  --v-display: 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;
  --v-body: 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;
  --v-bg: #ffffff;
  --v-surface: #f6f8fa;
  --v-surface-2: #eef2f5;
  --v-ink: var(--club-navy);
  --v-muted: 71 85 105;
  --v-line: 226 232 240;
  --v-radius: 1rem;
  --v-radius-lg: 1.75rem;
  --v-btn-radius: 999px;
  --v-title-weight: 700;
  --v-title-case: none;
  --v-title-tracking: -0.02em;
  --v-title-lh: 1.08;
  --v-eyebrow-tracking: .18em;
  --v-shadow: 0 1px 2px rgb(15 23 42 / .04), 0 12px 32px -12px rgb(15 23 42 / .14);
  --v-hero-overlay: linear-gradient(180deg, rgb(var(--club-navy) / .15), rgb(var(--club-navy) / .75));
}

/* Éditorial : capitales à empattements, sable, filets fins (esprit « affiche ») */
[data-ambiance="editorial"] {
  --v-display: 'Cormorant Garamond', 'Times New Roman', Georgia, serif;
  --v-body: 'Jost', ui-sans-serif, system-ui, sans-serif;
  --v-bg: #f5f0e8;
  --v-surface: #fbf8f3;
  --v-surface-2: #ece4d8;
  --v-muted: 87 83 78;
  --v-line: 214 205 192;
  --v-radius: 1.25rem;
  --v-radius-lg: 2rem;
  --v-title-weight: 500;
  --v-title-case: uppercase;
  --v-title-tracking: .04em;
  --v-title-lh: 1;
  --v-shadow: 0 1px 0 rgb(28 25 23 / .04), 0 18px 40px -24px rgb(28 25 23 / .25);
}
/* Clinique douce : clair, arrondi, rassurant */
[data-ambiance="clinique"] {
  --v-bg: #ffffff;
  --v-surface: #f3f8f8;
  --v-surface-2: #e6f1f1;
  --v-radius: 1.25rem;
  --v-radius-lg: 2.25rem;
  --v-title-weight: 800;
}
/* Nature : organique, crème, italiques */
[data-ambiance="nature"] {
  --v-display: 'Fraunces', Georgia, serif;
  --v-body: 'Manrope', ui-sans-serif, system-ui, sans-serif;
  --v-bg: #f7f5ec;
  --v-surface: #fdfcf7;
  --v-surface-2: #ece8d8;
  --v-muted: 82 90 78;
  --v-line: 221 216 196;
  --v-radius: 1.5rem;
  --v-radius-lg: 2.5rem;
  --v-title-weight: 600;
  --v-title-tracking: -0.01em;
}
/* Atelier : massif, angles droits, contrastes */
[data-ambiance="atelier"] {
  --v-display: 'Archivo', ui-sans-serif, system-ui, sans-serif;
  --v-body: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --v-bg: #fafaf9;
  --v-surface: #f1f0ee;
  --v-surface-2: #e7e5e2;
  --v-radius: .25rem;
  --v-radius-lg: .5rem;
  --v-btn-radius: .25rem;
  --v-title-weight: 900;
  --v-title-case: uppercase;
  --v-title-tracking: -0.01em;
  --v-shadow: 6px 6px 0 rgb(var(--club-navy) / .9);
}
/* Énergie : sombre, condensé, vif */
[data-ambiance="energie"] {
  --v-display: 'Barlow Condensed', ui-sans-serif, system-ui, sans-serif;
  --v-body: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --v-bg: #ffffff;
  --v-surface: #f4f4f5;
  --v-surface-2: #e4e4e7;
  --v-radius: .75rem;
  --v-radius-lg: 1.25rem;
  --v-btn-radius: .5rem;
  --v-title-weight: 800;
  --v-title-case: uppercase;
  --v-title-tracking: 0;
  --v-title-lh: .95;
}

/* Aquarelle (galeries d'artistes) : papier brumeux, encre gris de Payne, italiques fines */
[data-ambiance="aquarelle"] {
  --v-display: 'Cormorant Garamond', 'Times New Roman', Georgia, serif;
  --v-body: 'Jost', ui-sans-serif, system-ui, sans-serif;
  --v-bg: #eff2ee;
  --v-surface: #f8f9f6;
  --v-surface-2: #e4e9e4;
  --v-muted: 75 87 99;
  --v-line: 210 217 212;
  --v-radius: 1.25rem;
  --v-radius-lg: 2rem;
  --v-title-weight: 500;
  --v-title-tracking: 0;
  --v-title-lh: 1.04;
  --v-shadow: 0 1px 2px rgb(43 54 64 / .05), 0 18px 40px -24px rgb(43 54 64 / .3);
}
[data-ambiance="aquarelle"] .v-italic { color: rgb(var(--pal-primary-700)); }
/* Pied de page des pages intérieures : petits textes gris clair lisibles (contraste AA sur l'encre gris de Payne) */
[data-ambiance="aquarelle"] .v-footer .text-white\/45, [data-ambiance="aquarelle"] .v-footer .text-white\/50 { color: rgb(255 255 255 / .68); }

/* ------------------------------------------------------------------ Base */
[data-kit="vitrine"] body { background: var(--v-bg); color: rgb(var(--v-ink)); font-family: var(--v-body); -webkit-font-smoothing: antialiased; }
[data-kit="vitrine"] ::selection { background: rgb(var(--pal-primary-200)); color: rgb(var(--v-ink)); }
.v-display, .v-title, .v-hero__title { text-wrap: balance; }
.v-display { font-family: var(--v-display); font-weight: var(--v-title-weight); text-transform: var(--v-title-case); letter-spacing: var(--v-title-tracking); line-height: var(--v-title-lh); }
.v-body { font-family: var(--v-body); }
.v-italic { font-style: italic; text-transform: none; letter-spacing: 0; }
[data-ambiance="editorial"] .v-italic, [data-ambiance="nature"] .v-italic { color: rgb(var(--pal-primary-700)); }
.v-muted { color: rgb(var(--v-muted)); }
.v-ink { color: rgb(var(--v-ink)); }
.v-bg { background: var(--v-bg); }
.v-surface { background: var(--v-surface); }
.v-surface-2 { background: var(--v-surface-2); }
.v-line { border-color: rgb(var(--v-line)); }
.v-accent { color: rgb(var(--pal-primary-600)); }
.v-dark { background: rgb(var(--v-ink)); color: #fff; }
.v-section { padding: clamp(4rem, 9vw, 7.5rem) 0; position: relative; }
.v-section--tight { padding: clamp(2.5rem, 6vw, 4.5rem) 0; }
.v-wrap { width: 100%; max-width: 1180px; margin-left: auto; margin-right: auto; padding-left: 1.25rem; padding-right: 1.25rem; }
@media (min-width: 768px) { .v-wrap { padding-left: 2rem; padding-right: 2rem; } }
.v-narrow { max-width: 760px; }

.v-eyebrow { display: inline-flex; align-items: center; gap: .75rem; font-family: var(--v-body); font-size: .78rem; font-weight: 600; letter-spacing: var(--v-eyebrow-tracking); text-transform: uppercase; color: rgb(var(--pal-primary-700)); }
.v-eyebrow::before { content: ''; width: 1.75rem; height: 1px; background: currentColor; opacity: .6; }
.v-eyebrow--center::after { content: ''; width: 1.75rem; height: 1px; background: currentColor; opacity: .6; }
.v-title { font-family: var(--v-display); font-weight: var(--v-title-weight); text-transform: var(--v-title-case); letter-spacing: var(--v-title-tracking); line-height: var(--v-title-lh); font-size: clamp(2rem, 4.4vw, 3.4rem); color: rgb(var(--v-ink)); }
[data-ambiance="editorial"] .v-title { font-size: clamp(2.3rem, 5vw, 4rem); }
.v-lead { font-size: clamp(1.05rem, 1.4vw, 1.2rem); line-height: 1.7; color: rgb(var(--v-muted)); }
.v-prose p { margin: 0 0 1em; line-height: 1.75; }
.v-prose p:last-child { margin-bottom: 0; }
.v-prose strong, .v-prose b { color: rgb(var(--v-ink)); font-weight: 600; }

/* Filet orné (esprit affiche) : ——— • ——— */
.v-rule { display: flex; align-items: center; justify-content: center; gap: .9rem; color: rgb(var(--v-ink) / .55); }
.v-rule::before, .v-rule::after { content: ''; height: 1px; width: min(26vw, 11rem); background: currentColor; opacity: .45; }
.v-rule > i { width: 5px; height: 5px; border-radius: 9999px; background: currentColor; display: block; }

/* ------------------------------------------------------------------ Boutons */
.v-btn { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; padding: .95rem 1.6rem; border-radius: var(--v-btn-radius); font-weight: 600; font-size: .98rem; line-height: 1; letter-spacing: .01em; transition: transform .2s ease, background-color .2s ease, color .2s ease, box-shadow .2s ease, border-color .2s ease; white-space: nowrap; }
.v-btn:focus-visible { outline: 3px solid rgb(var(--pal-primary-300)); outline-offset: 3px; }
.v-btn--primary { background: rgb(var(--pal-primary-600)); color: #fff; box-shadow: 0 10px 24px -12px rgb(var(--pal-primary-700) / .8); }
.v-btn--primary:hover { background: rgb(var(--pal-primary-700)); transform: translateY(-2px); }
.v-btn--dark { background: rgb(var(--v-ink)); color: #fff; }
.v-btn--dark:hover { background: rgb(var(--pal-primary-700)); transform: translateY(-2px); }
.v-btn--ghost { border: 1.5px solid rgb(var(--v-ink) / .2); color: rgb(var(--v-ink)); background: transparent; }
.v-btn--ghost:hover { border-color: rgb(var(--v-ink)); background: rgb(var(--v-ink) / .04); }
.v-btn--light { background: #fff; color: rgb(var(--v-ink)); }
.v-btn--light:hover { background: rgb(var(--pal-primary-50)); transform: translateY(-2px); }
.v-btn--outline-light { border: 1.5px solid rgb(255 255 255 / .55); color: #fff; }
.v-btn--outline-light:hover { background: rgb(255 255 255 / .12); border-color: #fff; }
[data-ambiance="editorial"] .v-btn { text-transform: uppercase; letter-spacing: .14em; font-size: .8rem; font-weight: 500; padding: 1.05rem 1.9rem; }
[data-ambiance="atelier"] .v-btn, [data-ambiance="energie"] .v-btn { text-transform: uppercase; letter-spacing: .06em; font-weight: 700; }
[data-ambiance="atelier"] .v-btn--primary { box-shadow: 4px 4px 0 rgb(var(--v-ink)); }
[data-ambiance="atelier"] .v-btn--primary:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 rgb(var(--v-ink)); }

/* ------------------------------------------------------------------ Cartes */
.v-card { background: var(--v-surface); border-radius: var(--v-radius); padding: 1.75rem; position: relative; transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.v-card--outline { background: transparent; border: 1px solid rgb(var(--v-line)); }
.v-card--raised { background: #fff; box-shadow: var(--v-shadow); }
.v-card--hover:hover { transform: translateY(-4px); box-shadow: var(--v-shadow); }
[data-ambiance="atelier"] .v-card--raised { border: 2px solid rgb(var(--v-ink)); }
[data-ambiance="editorial"] .v-card--raised { background: rgb(255 255 255 / .55); backdrop-filter: blur(6px); box-shadow: none; border: 1px solid rgb(var(--v-line)); }

.v-icon-ring { width: 3.5rem; height: 3.5rem; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: 9999px; border: 1px solid rgb(var(--v-ink) / .25); color: rgb(var(--v-ink)); }
.v-icon-soft { width: 3.25rem; height: 3.25rem; flex: none; display: inline-flex; align-items: center; justify-content: center; border-radius: calc(var(--v-radius) * .8); background: rgb(var(--pal-primary-100)); color: rgb(var(--pal-primary-700)); }
[data-ambiance="atelier"] .v-icon-soft { background: rgb(var(--pal-primary-500)); color: #fff; }
[data-ambiance="energie"] .v-icon-soft { background: rgb(var(--v-ink)); color: rgb(var(--pal-primary-400)); }

.v-chip { display: inline-flex; align-items: center; gap: .5rem; padding: .55rem 1rem; border-radius: 999px; background: #fff; border: 1px solid rgb(var(--v-line)); font-size: .92rem; color: rgb(var(--v-ink)); }
[data-ambiance="atelier"] .v-chip { border-radius: .25rem; }

.v-photo { border-radius: var(--v-radius-lg); overflow: hidden; background: var(--v-surface-2); }
.v-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.v-arch { border-radius: 999px 999px var(--v-radius-lg) var(--v-radius-lg); }
/* Illustration de remplacement (pas encore de photo) : halos de couleur + grand pictogramme au trait */
.v-art { position: relative; isolation: isolate; background: linear-gradient(160deg, rgb(var(--pal-primary-50)), var(--v-surface-2)); }
.v-art__orb { position: absolute; border-radius: 999px; filter: blur(2px); z-index: -1; }
.v-art__orb--a { width: 70%; aspect-ratio: 1; right: -18%; top: -12%; background: radial-gradient(circle at 35% 35%, rgb(var(--pal-primary-200)), rgb(var(--pal-primary-400) / .55) 60%, transparent 72%); }
.v-art__orb--b { width: 55%; aspect-ratio: 1; left: -12%; bottom: -10%; background: radial-gradient(circle at 60% 40%, rgb(var(--pal-accent-200) / .9), rgb(var(--pal-accent-300) / .35) 58%, transparent 72%); }
.v-art__icon { position: absolute; inset: 22%; color: rgb(var(--v-ink) / .78); }
[data-ambiance="editorial"] .v-art { background: linear-gradient(170deg, #efe7da, #e2d6c5); }
[data-ambiance="editorial"] .v-art__orb--a { background: radial-gradient(circle at 35% 35%, rgb(255 255 255 / .9), rgb(255 255 255 / .2) 60%, transparent 72%); }
.v-placeholder {display: flex; align-items: center; justify-content: center; color: rgb(var(--v-ink) / .25); background: repeating-linear-gradient(135deg, var(--v-surface) 0 14px, var(--v-surface-2) 14px 28px); }

/* ------------------------------------------------------------------ Barre de navigation */
.v-nav { position: fixed; inset: 0 0 auto 0; z-index: 50; transition: background-color .3s ease, box-shadow .3s ease, padding .3s ease; padding: 1.1rem 0; }
.v-nav.is-solid, .v-nav[data-variant="page"] { background: color-mix(in srgb, var(--v-bg) 92%, transparent); backdrop-filter: saturate(1.4) blur(12px); box-shadow: 0 1px 0 rgb(var(--v-line)); padding: .7rem 0; }
.v-nav__links { flex: 1 1 auto; min-width: 0; overflow: hidden; padding-bottom: 3px; }
.v-nav.is-compact .v-nav__links { visibility: hidden; position: absolute; pointer-events: none; }
.v-nav.is-compact .v-nav__burger { display: inline-flex; }
.v-nav__cta-short, .v-nav.is-tight:not(.is-compact) .v-nav__cta-long { display: none; }
.v-nav.is-tight:not(.is-compact) .v-nav__cta-short { display: inline; }
.v-nav.is-tight:not(.is-compact) .v-brand small { display: none; }
.v-nav a.v-nav__link { white-space: nowrap; flex: none; font-size: .93rem; color: rgb(var(--v-ink) / .8); position: relative; padding: .25rem 0; transition: color .2s; }
.v-nav a.v-nav__link:hover { color: rgb(var(--v-ink)); }
.v-nav a.v-nav__link::after { content: ''; position: absolute; left: 0; right: 0; bottom: -2px; height: 1.5px; background: rgb(var(--pal-primary-600)); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.v-nav a.v-nav__link:hover::after { transform: scaleX(1); }
[data-ambiance="editorial"] .v-nav a.v-nav__link { text-transform: uppercase; letter-spacing: .14em; font-size: .74rem; }
.v-nav.on-dark:not(.is-solid) a.v-nav__link, .v-nav.on-dark:not(.is-solid) .v-brand, .v-nav.on-dark:not(.is-solid) .v-nav__icon { color: #fff; }
.v-nav.on-dark:not(.is-solid) .v-brand small { color: rgb(255 255 255 / .75); }
.v-brand { display: flex; align-items: center; gap: .75rem; color: rgb(var(--v-ink)); flex: 0 1 auto; min-width: 0; }
@media (min-width: 1024px) { .v-nav .v-brand { flex: none; max-width: 22rem; } }
.v-brand__name, .v-brand small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v-brand > span:last-child { min-width: 0; }
.v-brand__name { font-family: var(--v-display); font-weight: var(--v-title-weight); font-size: 1.35rem; line-height: 1.05; letter-spacing: var(--v-title-tracking); }
[data-ambiance="editorial"] .v-brand__name { font-size: 1.6rem; text-transform: none; letter-spacing: 0; }
.v-brand small { display: block; font-family: var(--v-body); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: rgb(var(--v-muted)); margin-top: .15rem; }
.v-brand__logo { width: 2.75rem; height: 2.75rem; border-radius: 999px; object-fit: cover; flex: none; }
.v-brand__mono { width: 2.75rem; height: 2.75rem; border-radius: 999px; flex: none; display: inline-flex; align-items: center; justify-content: center; font-family: var(--v-display); font-weight: 600; font-size: 1.05rem; border: 1px solid currentColor; }
.v-nav__icon { color: rgb(var(--v-ink)); }
.v-mobile-menu { position: fixed; inset: 0; z-index: 60; background: var(--v-bg); display: flex; flex-direction: column; padding: 1.25rem; transform: translateY(-100%); transition: transform .35s cubic-bezier(.2,.8,.2,1); visibility: hidden; }
.v-mobile-menu.is-open { transform: none; visibility: visible; }
.v-mobile-menu a.v-mm-link { font-family: var(--v-display); font-weight: var(--v-title-weight); font-size: 2rem; text-transform: var(--v-title-case); letter-spacing: var(--v-title-tracking); padding: .6rem 0; border-bottom: 1px solid rgb(var(--v-line)); color: rgb(var(--v-ink)); }

/* ------------------------------------------------------------------ Bannière */
.v-hero { position: relative; min-height: 92vh; display: flex; align-items: center; padding: 8.5rem 0 4.5rem; overflow: hidden; }
.v-hero__title { font-family: var(--v-display); font-weight: var(--v-title-weight); text-transform: var(--v-title-case); letter-spacing: var(--v-title-tracking); line-height: var(--v-title-lh); font-size: clamp(2.6rem, 7vw, 5.6rem); color: rgb(var(--v-ink)); }
[data-ambiance="editorial"] .v-hero__title { font-size: clamp(3rem, 9vw, 7.25rem); letter-spacing: .03em; }
[data-ambiance="energie"] .v-hero__title { font-size: clamp(3.4rem, 10vw, 8.5rem); }
/* Texte + visuel : le titre partage la largeur, il reste plus mesuré. */
.v-hero--split .v-hero__title, .v-hero--arch .v-hero__title { font-size: clamp(2.6rem, 5.2vw, 4.6rem); }
.v-hero--full, .v-hero--block { color: #fff; }
.v-hero--full .v-hero__title, .v-hero--full .v-lead { color: #fff; }
.v-hero__bg { position: absolute; inset: 0; z-index: 0; }
.v-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.v-hero__bg::after { content: ''; position: absolute; inset: 0; background: var(--v-hero-overlay); }
.v-hero--editorial .v-hero__bg::after { background: linear-gradient(90deg, var(--v-bg) 0%, color-mix(in srgb, var(--v-bg) 88%, transparent) 45%, color-mix(in srgb, var(--v-bg) 35%, transparent) 100%); }
@media (max-width: 767px) { .v-hero--editorial .v-hero__bg::after { background: color-mix(in srgb, var(--v-bg) 86%, transparent); } }
.v-badge-float { position: absolute; display: flex; align-items: center; gap: .75rem; background: #fff; border-radius: var(--v-radius); box-shadow: var(--v-shadow); padding: .9rem 1.1rem; font-size: .88rem; }
.v-stars { color: #f5b301; letter-spacing: .08em; }

/* ------------------------------------------------------------------ Tarifs « registre » (esprit affiche) */
.v-ledger { border-radius: var(--v-radius-lg); padding: 2.25rem 2rem; background: rgb(255 255 255 / .5); border: 1px solid rgb(var(--v-line)); backdrop-filter: blur(8px); box-shadow: 0 30px 60px -40px rgb(var(--v-ink) / .35); }
.v-ledger__row { text-align: center; padding: 1.6rem 0; }
.v-ledger__row + .v-ledger__row { border-top: 1px solid rgb(var(--v-line)); }
.v-ledger__price { font-family: var(--v-display); font-size: clamp(3.2rem, 6vw, 4.4rem); line-height: 1; font-weight: 500; color: rgb(var(--v-ink)); }
.v-ledger__price sup { font-size: .5em; top: -.7em; margin-left: .06em; }
.v-ledger__label { margin-top: .6rem; text-transform: uppercase; letter-spacing: .16em; font-size: .8rem; color: rgb(var(--v-ink) / .85); }
.v-ledger__note { margin-top: .3rem; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: rgb(var(--v-muted)); }

/* Liste « atouts » à filets (esprit affiche) */
.v-list-ruled > li { display: flex; gap: 1.25rem; align-items: flex-start; padding: 1.4rem 0; }
.v-list-ruled > li + li { border-top: 1px solid rgb(var(--v-line)); }

/* Étapes numérotées */
.v-step-num { font-family: var(--v-display); font-weight: var(--v-title-weight); font-size: 2.5rem; line-height: 1; color: rgb(var(--pal-primary-600)); }
[data-ambiance="editorial"] .v-step-num, [data-ambiance="nature"] .v-step-num { font-style: italic; font-weight: 400; }

/* FAQ */
.v-faq details { border-bottom: 1px solid rgb(var(--v-line)); }
.v-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.35rem 0; font-weight: 600; font-size: 1.06rem; color: rgb(var(--v-ink)); }
.v-faq summary::-webkit-details-marker { display: none; }
.v-faq summary .v-faq__icon { transition: transform .25s ease; flex: none; }
.v-faq details[open] summary .v-faq__icon { transform: rotate(45deg); }
.v-faq .v-faq__a { padding: 0 0 1.4rem; color: rgb(var(--v-muted)); line-height: 1.75; max-width: 62ch; }

/* Horaires */
.v-hours { width: 100%; border-collapse: collapse; font-size: .95rem; }
.v-hours td { padding: .55rem 0; border-bottom: 1px dashed rgb(var(--v-line)); }
.v-hours td:last-child { text-align: right; color: rgb(var(--v-muted)); }
.v-hours tr.is-today td { color: rgb(var(--v-ink)); font-weight: 600; }

/* Apparition douce au défilement */
@media (prefers-reduced-motion: no-preference) {
  [data-kit="vitrine"] .v-reveal { opacity: 0; transform: translateY(18px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1); }
  [data-kit="vitrine"] .v-reveal.is-in { opacity: 1; transform: none; }
}

/* Barre d'action mobile (appel / rendez-vous) */
.v-mobile-cta { position: fixed; left: .75rem; right: .75rem; bottom: .75rem; z-index: 40; display: flex; gap: .5rem; padding: .5rem; border-radius: calc(var(--v-btn-radius) + .5rem); background: color-mix(in srgb, var(--v-bg) 90%, transparent); backdrop-filter: blur(10px); box-shadow: 0 10px 30px -10px rgb(15 23 42 / .35); }
[data-ambiance="atelier"] .v-mobile-cta { border-radius: .5rem; }
@media (min-width: 768px) { .v-mobile-cta { display: none; } }

/* Textes en couleur sur fond sombre (bandeau rendez-vous, bannière photo) */
.v-on-dark .v-italic { color: rgb(var(--pal-primary-200)); }

/* Pied de page */
.v-footer { background: rgb(var(--v-ink)); color: rgb(255 255 255 / .78); }
.v-footer a:hover { color: #fff; }
.v-footer .v-display { color: #fff; }

/* ------------------------------------------------------------------ Prise de rendez-vous */
.rdv-steps { display: grid; gap: 1rem; counter-reset: rdv; }
.rdv-step { border: 1px solid rgb(var(--v-line)); border-radius: var(--v-radius); background: #fff; overflow: hidden; }
.rdv-step__head { display: flex; align-items: center; gap: .9rem; padding: 1.1rem 1.3rem; }
.rdv-step__num { width: 2rem; height: 2rem; border-radius: 999px; flex: none; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: .9rem; background: var(--v-surface-2); color: rgb(var(--v-ink)); }
.rdv-step.is-done .rdv-step__num { background: rgb(var(--pal-primary-600)); color: #fff; }
.rdv-step__title { font-weight: 600; font-size: 1.05rem; color: rgb(var(--v-ink)); flex: 1; }
.rdv-step__value { font-size: .9rem; color: rgb(var(--v-muted)); text-align: right; }
.rdv-step__body { display: none; padding: 0 1.3rem 1.4rem; }
.rdv-step.is-open .rdv-step__body { display: block; }
.rdv-step:not(.is-open) { opacity: .65; }
.rdv-option { display: flex; flex-direction: column; gap: .2rem; text-align: left; padding: 1rem 1.1rem; border-radius: calc(var(--v-radius) * .8); border: 1.5px solid rgb(var(--v-line)); background: #fff; transition: border-color .15s, background .15s, transform .15s; }
.rdv-option:hover { border-color: rgb(var(--pal-primary-400)); }
.rdv-option.is-on { border-color: rgb(var(--pal-primary-600)); background: rgb(var(--pal-primary-50)); box-shadow: inset 0 0 0 1px rgb(var(--pal-primary-600)); }
.rdv-slot { padding: .55rem .4rem; border-radius: .6rem; border: 1px solid rgb(var(--pal-primary-200)); background: rgb(var(--pal-primary-50)); color: rgb(var(--pal-primary-800)); font-weight: 600; font-size: .9rem; transition: background .15s, color .15s, transform .15s; }
.rdv-slot:hover { background: rgb(var(--pal-primary-100)); transform: translateY(-1px); }
.rdv-slot.is-on { background: rgb(var(--pal-primary-600)); border-color: rgb(var(--pal-primary-600)); color: #fff; }
.rdv-input { width: 100%; border-radius: calc(var(--v-radius) * .6); border: 1px solid rgb(var(--v-line)); background: #fff; padding: .75rem 1rem; font-size: .95rem; outline: none; transition: border-color .15s, box-shadow .15s; }
.rdv-input:focus { border-color: rgb(var(--pal-primary-500)); box-shadow: 0 0 0 4px rgb(var(--pal-primary-100)); }
.rdv-choice { position: relative; display: inline-flex; }
.rdv-choice input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.rdv-choice span { padding: .5rem .95rem; border-radius: 999px; border: 1px solid rgb(var(--v-line)); background: #fff; font-size: .92rem; transition: all .15s; }
.rdv-choice input:checked + span { background: rgb(var(--v-ink)); color: #fff; border-color: rgb(var(--v-ink)); }
.rdv-choice input:focus-visible + span { outline: 3px solid rgb(var(--pal-primary-300)); outline-offset: 2px; }
.rdv-selfie { width: 4.5rem; height: 4.5rem; flex: none; border-radius: 999px; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background: var(--v-surface-2); color: rgb(var(--v-muted)); }
.rdv-tabs { display: inline-flex; padding: .3rem; border-radius: 999px; background: var(--v-surface-2); gap: .25rem; }
.rdv-tabs button { padding: .55rem 1.1rem; border-radius: 999px; font-size: .92rem; font-weight: 600; color: rgb(var(--v-muted)); }
.rdv-tabs button[aria-selected="true"] { background: #fff; color: rgb(var(--v-ink)); box-shadow: 0 1px 3px rgb(15 23 42 / .12); }
.rdv-badge { display: inline-flex; align-items: center; gap: .35rem; padding: .2rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 700; }
.rdv-badge--emerald { background: #d1fae5; color: #065f46; } .rdv-badge--amber { background: #fef3c7; color: #92400e; }
.rdv-badge--slate { background: #e2e8f0; color: #334155; } .rdv-badge--sky { background: #e0f2fe; color: #075985; } .rdv-badge--rose { background: #ffe4e6; color: #9f1239; }
.rdv-msg { max-width: 80%; padding: .7rem 1rem; border-radius: 1rem; font-size: .95rem; line-height: 1.5; white-space: pre-wrap; }
.rdv-msg--me { margin-left: auto; background: rgb(var(--pal-primary-600)); color: #fff; border-bottom-right-radius: .3rem; }
.rdv-msg--them { background: var(--v-surface-2); color: rgb(var(--v-ink)); border-bottom-left-radius: .3rem; }
.rdv-slot[hidden] { display: none; }
.v-btn.hidden, .v-btn[hidden] { display: none; }

/* Civique : institutionnel et chaleureux (mairies, collectivités) — voir aussi assets/css/mairie.css */
[data-ambiance="civique"] {
  --v-display: 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;
  --v-body: 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;
  --v-bg: #ffffff;
  --v-surface: #f3f6fa;
  --v-surface-2: #e6ecf4;
  --v-muted: 71 85 105;
  --v-line: 220 228 238;
  --v-radius: 1rem;
  --v-radius-lg: 1.5rem;
  --v-btn-radius: .8rem;
  --v-title-weight: 800;
  --v-title-tracking: -0.025em;
  --v-title-lh: 1.08;
  --v-shadow: 0 1px 2px rgb(15 23 42 / .05), 0 14px 34px -14px rgb(15 23 42 / .18);
}
