/* Legatis — systeme de design institutionnel
   Titres: Frank Ruhl Libre (gravite editoriale/juridique)
   Texte:  Public Sans (concu pour les services numeriques publics)
   Palette: encre bleu-noir + papier chaud + accent bordeaux sourd */

@import url('https://fonts.googleapis.com/css2?family=Frank+Ruhl+Libre:wght@400;500;700;900&family=Public+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap');

:root{
  /* encre (texte, fonds sombres) */
  --ink-950: oklch(19% 0.025 258);
  --ink-900: oklch(24% 0.03 258);
  --ink-700: oklch(38% 0.03 258);
  --ink-500: oklch(52% 0.025 258);

  /* papier (neutres teintes chaud) */
  --paper-0:  oklch(98.5% 0.006 75);
  --paper-50: oklch(96.5% 0.008 75);
  --paper-100:oklch(93% 0.01 75);
  --paper-200:oklch(88% 0.012 75);
  --paper-300:oklch(78% 0.014 75);

  /* accent bordeaux sourd */
  --accent-700: oklch(30% 0.09 22);
  --accent-600: oklch(38% 0.11 22);
  --accent-500: oklch(45% 0.13 22);
  --accent-100: oklch(92% 0.03 22);
  --accent-50:  oklch(96% 0.018 22);

  --success-600: oklch(45% 0.1 155);

  --surface-page: var(--paper-0);
  --surface-card: oklch(99.3% 0.004 75);
  --text-primary: var(--ink-950);
  --text-secondary: var(--ink-700);
  --text-muted: var(--ink-500);
  --border: var(--paper-200);
  --border-strong: var(--paper-300);

  --font-display: 'Frank Ruhl Libre', ui-serif, Georgia, serif;
  --font-body: 'Public Sans', ui-sans-serif, system-ui, sans-serif;

  --space-xs: 4px; --space-sm: 8px; --space-md: 12px; --space-lg: 16px;
  --space-xl: 24px; --space-2xl: 32px; --space-3xl: 48px; --space-4xl: 64px; --space-5xl: 96px;

  --radius-sm: 4px; --radius-md: 8px;
  --max-line: 72ch;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  background:var(--surface-page);
  color:var(--text-primary);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  font-feature-settings:"kern" 1,"liga" 1;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }

h1,h2,h3{
  font-family:var(--font-display);
  font-weight:500;
  line-height:1.15;
  margin:0;
  color:var(--ink-950);
}
h1{ font-size:clamp(2rem, 1.5rem + 2vw, 3.4rem); letter-spacing:-0.01em; }
h2{ font-size:clamp(1.4rem, 1.2rem + 1vw, 2rem); }
h3{ font-size:clamp(1.1rem, 1rem + 0.4vw, 1.35rem); font-weight:600; font-family:var(--font-body); }

p{ margin:0 0 var(--space-lg); max-width:var(--max-line); color:var(--text-secondary); }
.lede{ font-size:1.15rem; color:var(--text-secondary); max-width:60ch; }

.container{
  max-width:1180px;
  margin-inline:auto;
  padding-inline:var(--space-xl);
}

/* -- masthead -- */
.masthead{
  border-bottom:1px solid var(--border);
  background:var(--surface-card);
}
.masthead-top{
  display:flex; align-items:center; justify-content:space-between;
  padding-block:var(--space-lg);
  gap:var(--space-xl);
}
.brand{
  display:flex; align-items:center; gap:var(--space-sm);
  text-decoration:none;
}
.brand-icon{
  width:28px; height:28px; flex:none; color:var(--ink-950);
}
.brand-mark{
  font-family:var(--font-display); font-weight:700; font-size:1.5rem;
  color:var(--ink-950); letter-spacing:-0.01em;
}
.brand-mark em{
  font-style:normal; color:var(--accent-600);
}
.lang-switch{
  display:flex; gap:2px; border:1px solid var(--border-strong); border-radius:var(--radius-sm); overflow:hidden;
}
.lang-switch a{
  display:block; padding:6px 10px; font-size:0.78rem; font-weight:600; text-decoration:none;
  color:var(--text-muted); text-transform:uppercase; letter-spacing:0.04em;
}
.lang-switch a[aria-current="true"]{ background:var(--ink-950); color:var(--paper-0); }
.lang-switch a:not([aria-current="true"]):hover{ background:var(--paper-100); color:var(--text-primary); }

.masthead-nav{
  display:flex; gap:var(--space-xl); padding-block:var(--space-md);
  border-top:1px solid var(--border);
  font-size:0.92rem;
}
.masthead-nav a{ text-decoration:none; color:var(--text-secondary); }
.masthead-nav a:hover{ color:var(--accent-600); }

/* -- breadcrumb -- */
.breadcrumb{
  font-size:0.82rem; color:var(--text-muted); padding-block:var(--space-lg) 0;
}
.breadcrumb a{ text-decoration:none; color:var(--text-muted); }
.breadcrumb a:hover{ color:var(--accent-600); }
.breadcrumb .sep{ margin-inline:var(--space-xs); color:var(--border-strong); }

/* -- hero -- */
.hero{
  padding-block:var(--space-3xl) var(--space-3xl);
  border-bottom:1px solid var(--border);
}
.hero-eyebrow{
  font-size:0.78rem; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--accent-600); margin-bottom:var(--space-md);
}
.hero h1{ max-width:16ch; }
.hero .lede{ margin-top:var(--space-lg); }

.search-box{
  margin-top:var(--space-2xl);
  display:flex; max-width:640px; border:1px solid var(--ink-950); border-radius:var(--radius-md);
  overflow:hidden;
}
.search-box input{
  flex:1; border:0; padding:14px 16px; font-family:var(--font-body); font-size:0.98rem;
  background:var(--surface-card); color:var(--text-primary);
}
.search-box input:focus{ outline:none; }
.search-box button{
  border:0; background:var(--ink-950); color:var(--paper-0); font-weight:600; font-size:0.9rem;
  padding-inline:var(--space-xl); cursor:pointer;
}
.search-box button:hover{ background:var(--accent-700); }

/* -- stat strip -- */
.stat-strip{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:var(--space-2xl);
  padding-block:var(--space-2xl);
  border-bottom:1px solid var(--border);
}
.stat{ }
.stat-value{ font-family:var(--font-display); font-size:2.2rem; font-weight:600; color:var(--ink-950); }
.stat-label{ font-size:0.85rem; color:var(--text-muted); margin-top:2px; }

/* -- section -- */
.section{ padding-block:var(--space-4xl); }
.section-head{
  display:flex; align-items:baseline; justify-content:space-between; gap:var(--space-lg);
  margin-bottom:var(--space-2xl);
  border-bottom:1px solid var(--border-strong);
  padding-bottom:var(--space-lg);
}
.section-head a{ font-size:0.88rem; text-decoration:none; color:var(--accent-600); font-weight:600; white-space:nowrap; }
.section-head a:hover{ text-decoration:underline; }

/* -- registry list (avocats) : vraie liste, pas des cartes -- */
.registry{ border-top:1px solid var(--border-strong); }
.registry-row{
  display:grid; grid-template-columns:1.6fr 1.4fr auto; gap:var(--space-xl);
  align-items:start;
  padding-block:var(--space-lg);
  border-bottom:1px solid var(--border);
  text-decoration:none; color:inherit;
}
.registry-row:hover{ background:var(--paper-50); }
.registry-name{ font-family:var(--font-display); font-size:1.08rem; font-weight:500; color:var(--ink-950); }
.registry-role{ font-size:0.82rem; color:var(--text-muted); margin-top:2px; }
.registry-firm{ font-size:0.92rem; color:var(--text-secondary); }
.registry-meta{ font-size:0.82rem; color:var(--text-muted); }
.registry-city{ text-align:right; font-size:0.88rem; color:var(--text-secondary); white-space:nowrap; }

/* -- tags / domaines -- */
.tag-list{ display:flex; flex-wrap:wrap; gap:var(--space-sm); }
.tag{
  display:inline-block; padding:5px 12px; font-size:0.8rem; font-weight:500;
  border:1px solid var(--border-strong); border-radius:100px; text-decoration:none; color:var(--text-secondary);
}
.tag:hover{ border-color:var(--accent-500); color:var(--accent-600); }
.tag.is-accent{ background:var(--accent-50); border-color:var(--accent-100); color:var(--accent-700); }

/* -- boutons d'action (contact/appel/site) -- */
.cta-row{ display:flex; flex-wrap:wrap; gap:var(--space-sm); margin:var(--space-md) 0; }
.cta-btn{
  display:inline-block; padding:9px 18px; font-size:0.88rem; font-weight:600;
  border:1px solid var(--border-strong); border-radius:6px; text-decoration:none; color:var(--text-secondary);
}
.cta-btn:hover{ border-color:var(--accent-500); color:var(--accent-600); }
.cta-btn.is-primary{ background:var(--accent-600); border-color:var(--accent-600); color:#fff; }
.cta-btn.is-primary:hover{ background:var(--accent-700); border-color:var(--accent-700); color:#fff; }

/* -- simulateur assistance juridique -- */
.calc-box{
  border:1px solid var(--border-strong); border-radius:var(--radius-md);
  padding:var(--space-xl); margin:var(--space-xl) 0; background:var(--surface-card);
}
.calc-disclaimer{ font-size:0.86rem; color:var(--text-secondary); margin-bottom:var(--space-lg); }
.calc-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:var(--space-lg); margin-bottom:var(--space-lg); }
.calc-field{ display:flex; flex-direction:column; gap:6px; font-size:0.88rem; color:var(--text-primary); font-weight:500; }
.calc-field select, .calc-field input{
  font-family:var(--font-body); font-size:0.95rem; padding:9px 10px; border:1px solid var(--border-strong);
  border-radius:6px; background:var(--surface-page); color:var(--text-primary);
}
.calc-field select:focus, .calc-field input:focus{ outline:none; border-color:var(--accent-500); }
.calc-result{ margin-top:var(--space-lg); padding:var(--space-lg); border-radius:6px; font-size:0.92rem; }
.calc-result.is-eligible{ background:oklch(96% 0.04 155); border:1px solid var(--success-600); color:var(--ink-950); }
.calc-result.is-not-eligible{ background:var(--accent-50); border:1px solid var(--accent-500); color:var(--ink-950); }
.calc-result p{ margin:4px 0; }
.calc-footnote{ font-size:0.82rem; color:var(--text-secondary); margin-top:var(--space-sm) !important; }
.calc-source{ font-size:0.78rem; color:var(--text-muted); margin-top:var(--space-lg); }

/* -- grille cantons/domaines (grille reelle, pas des cartes a icones) -- */
.index-grid{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:0;
  border-top:1px solid var(--border-strong);
  border-left:1px solid var(--border-strong);
}
.index-cell{
  padding:var(--space-lg) var(--space-xl);
  border-right:1px solid var(--border-strong);
  border-bottom:1px solid var(--border-strong);
  text-decoration:none; color:inherit;
}
.index-cell:hover{ background:var(--paper-50); }
.index-cell .name{ font-family:var(--font-display); font-size:1.05rem; color:var(--ink-950); }
.index-cell .count{ font-size:0.8rem; color:var(--text-muted); margin-top:2px; }

/* -- profil avocat / etude -- */
.profile-head{
  display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-2xl);
  padding-block:var(--space-2xl);
  border-bottom:1px solid var(--border-strong);
}
.profile-title{ font-size:clamp(1.6rem,1.3rem + 1.2vw,2.4rem); }
.profile-sub{ font-size:1.02rem; color:var(--text-secondary); margin-top:var(--space-sm); }
.profile-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-size:0.78rem; font-weight:600; color:var(--success-600);
  border:1px solid currentColor; border-radius:100px; padding:4px 10px; margin-top:var(--space-md);
}

.info-table{ width:100%; border-collapse:collapse; margin-block:var(--space-xl); }
.info-table tr{ border-bottom:1px solid var(--border); }
.info-table td{ padding:12px 0; vertical-align:top; }
.info-table td:first-child{ width:180px; font-size:0.85rem; color:var(--text-muted); font-weight:600; }
.info-table td:last-child{ font-size:0.98rem; color:var(--text-primary); }
.info-table a{ color:var(--accent-600); text-decoration:none; }
.info-table a:hover{ text-decoration:underline; }

.presentation{
  font-size:1.02rem; color:var(--text-secondary); line-height:1.75; max-width:var(--max-line);
  padding-block:var(--space-xl);
  border-bottom:1px solid var(--border);
}

/* -- bandeau bientot disponible -- */
.notice{
  border:1px solid var(--border-strong); background:var(--paper-50);
  border-radius:var(--radius-md); padding:var(--space-2xl);
  margin-block:var(--space-2xl);
}
.notice h2{ font-size:1.3rem; }
.notice p{ margin-top:var(--space-sm); margin-bottom:0; }

/* -- footer -- */
.site-footer{
  border-top:1px solid var(--border-strong);
  background:var(--ink-950); color:var(--paper-100);
  padding-block:var(--space-3xl) var(--space-2xl);
  margin-top:var(--space-4xl);
}
.site-footer a{ color:var(--paper-200); text-decoration:none; }
.site-footer a:hover{ color:#fff; }
.footer-grid{
  display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:var(--space-2xl);
  padding-bottom:var(--space-2xl); border-bottom:1px solid var(--ink-700);
}
.footer-grid h4{
  font-size:0.78rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--paper-300);
  margin:0 0 var(--space-md); font-weight:600;
}
.footer-grid ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; font-size:0.9rem; }
.footer-bottom{
  display:flex; justify-content:space-between; padding-top:var(--space-lg);
  font-size:0.8rem; color:var(--paper-300);
}

/* -- badge / revendication de fiche -- */
.badge-box{
  display:flex; gap:var(--space-lg); align-items:flex-start; flex-wrap:wrap;
  margin-top:var(--space-lg); padding:var(--space-lg);
  background:var(--surface-card); border:1px solid var(--border-strong); border-radius:12px;
}
.badge-box-preview img{ display:block; border-radius:6px; }
.badge-box-copy{ flex:1; min-width:220px; }
.badge-box-title{ font-family:var(--font-display); font-size:1rem; font-weight:600; color:var(--text-primary); margin:0 0 4px; }
.badge-box-text{ font-size:0.86rem; color:var(--text-secondary); margin:0 0 var(--space-sm); }
.badge-embed-code{
  width:100%; box-sizing:border-box; resize:vertical; font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:0.78rem; color:var(--text-secondary); background:var(--surface-page);
  border:1px solid var(--border-strong); border-radius:6px; padding:8px 10px;
}

@media (max-width:760px){
  .registry-row{ grid-template-columns:1fr; gap:4px; }
  .registry-city{ text-align:left; }
  .profile-head{ flex-direction:column; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .badge-box{ flex-direction:column; }
}

/* -- bandeau presse (etude AJ) -- */
.press-band{
  background:var(--ink-950);
  color:var(--paper-0);
  border-bottom:3px solid var(--accent-600);
}
.press-band-inner{
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-2xl);
  padding-block:var(--space-2xl);
  flex-wrap:wrap;
}
.press-band-text{ max-width:62ch; }
.press-band-kicker{
  font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase;
  color:oklch(78% 0.12 75); margin-bottom:var(--space-sm);
}
.press-band-title{
  font-family:var(--font-display); font-size:1.5rem; font-weight:700; color:#fff;
  margin:0 0 var(--space-sm) 0; line-height:1.25;
}
.press-band-desc{
  font-size:0.95rem; color:var(--paper-200); margin:0 0 var(--space-sm) 0; line-height:1.55;
}
.press-band-meta{
  font-size:0.78rem; color:var(--paper-300); font-weight:500; letter-spacing:0.01em;
}
.press-band-cta{
  display:inline-block; flex-shrink:0; white-space:nowrap;
  background:var(--accent-600); color:#fff; text-decoration:none;
  font-weight:600; font-size:0.92rem; padding:14px 28px; border-radius:6px;
  border:1px solid var(--accent-600);
}
.press-band-cta:hover{ background:var(--accent-500); border-color:var(--accent-500); }

@media (max-width:760px){
  .press-band-inner{ flex-direction:column; align-items:flex-start; }
  .press-band-cta{ width:100%; text-align:center; }
}


/* -- page dediee etude AJ (interactive) -- */
.study-hero{ padding-bottom:var(--space-xl); }
.study-cover-caption{ font-size:0.85rem; color:var(--text-muted); font-style:italic; margin-top:-8px; }

.study-nav{
  display:flex; flex-wrap:wrap; gap:var(--space-md);
  padding-block:var(--space-lg);
  border-bottom:1px solid var(--border-strong);
  position:sticky; top:0; background:var(--surface-page); z-index:5;
  overflow-x:auto;
}
.study-nav a{
  flex-shrink:0; font-size:0.82rem; font-weight:600; text-decoration:none;
  color:var(--text-secondary); padding:6px 12px; border-radius:100px; border:1px solid var(--border-strong);
  white-space:nowrap;
}
.study-nav a:hover{ color:var(--accent-600); border-color:var(--accent-500); }

.study-digest{ background:var(--paper-50); border-radius:12px; padding:var(--space-2xl); }
.digest-list{ margin:0 0 var(--space-lg); padding-left:1.3em; }
.digest-list li{ margin-bottom:var(--space-sm); color:var(--text-secondary); line-height:1.6; }
.digest-contact{ font-size:0.85rem; color:var(--text-muted); font-style:italic; margin:0; }

.study-prose p{ font-size:1rem; }
.study-intro{ font-size:1rem; color:var(--text-secondary); max-width:70ch; margin-bottom:var(--space-xl); }

/* -- graphique en barres CSS -- */
.rate-chart{ display:flex; flex-direction:column; gap:var(--space-md); }
.rate-chart-row{
  display:grid; grid-template-columns:1fr; row-gap:4px; align-items:center;
}
.rate-chart-label{ font-size:0.88rem; color:var(--text-primary); font-weight:500; }
.rate-chart-code{ color:var(--text-muted); font-weight:400; }
.rate-chart-track{
  background:var(--paper-200); border-radius:6px; height:14px; overflow:hidden;
}
.rate-chart-bar{ height:100%; border-radius:6px; transition:width 0.3s ease; }
.rate-chart-value{ font-size:0.8rem; font-weight:600; color:var(--text-secondary); text-align:right; }

/* -- cartes canton (details/summary) -- */
.canton-list{ display:flex; flex-direction:column; gap:var(--space-md); }
.canton-card{
  border:1px solid var(--border-strong); border-radius:10px; padding:var(--space-lg) var(--space-xl);
  background:var(--surface-card);
}
.canton-card.is-muted{ background:var(--paper-50); }
.canton-card summary{
  cursor:pointer; display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-md);
  list-style:none; font-weight:500;
}
.canton-card summary::-webkit-details-marker{ display:none; }
.canton-card-head{
  display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-md);
}
.canton-card-name{ font-family:var(--font-display); font-size:1.05rem; color:var(--ink-950); }
.canton-card-code{ color:var(--text-muted); font-family:var(--font-body); font-size:0.85rem; }
.canton-rate-badge{
  display:inline-block; padding:3px 12px; border-radius:100px; color:#fff;
  font-weight:700; font-size:0.85rem;
}
.canton-rate-badge.is-muted{ background:var(--ink-500); }
.canton-rate-badge.is-range{ background:var(--ink-700); font-weight:600; }
.canton-card-count{ font-size:0.82rem; color:var(--text-muted); }
.canton-card-toggle{
  margin-left:auto; font-size:0.78rem; color:var(--accent-600); font-weight:600;
}
.tag.is-warn{ background:var(--accent-50); border-color:var(--accent-100); color:var(--accent-700); font-weight:600; }
.canton-card-body{ margin-top:var(--space-lg); padding-top:var(--space-lg); border-top:1px solid var(--border); }
.canton-card-body.is-open{ margin-top:var(--space-md); padding-top:0; border-top:none; }
.canton-note{ font-size:0.9rem; color:var(--text-muted); font-style:italic; margin-bottom:var(--space-sm); }
.decision-item{ margin-bottom:var(--space-lg); }
.decision-meta{ font-size:0.82rem; font-weight:600; color:var(--text-secondary); margin-bottom:2px; }
.decision-quote{ font-size:0.92rem; color:var(--text-primary); margin-bottom:4px; }
.decision-link{
  font-size:0.78rem; color:var(--accent-600); text-decoration:none; word-break:break-all;
}
.decision-link:hover{ text-decoration:underline; }

/* -- tableau simulation -- */
.case-table-wrap{ overflow-x:auto; margin-bottom:var(--space-xl); }
.case-table{ border-collapse:collapse; width:100%; min-width:560px; }
.case-table th, .case-table td{
  padding:10px 14px; text-align:center; border:1px solid var(--border-strong); font-size:0.88rem;
}
.case-table th{ background:var(--ink-950); color:#fff; font-weight:600; }
.case-table td:first-child, .case-table th:first-child{ text-align:left; }
.case-table tbody tr:nth-child(even){ background:var(--paper-50); }

.study-note-pdf{ font-size:0.9rem; color:var(--text-secondary); }

@media (max-width:760px){
  .canton-card-toggle{ margin-left:0; }
  .rate-chart-value{ text-align:left; }
}

/* -- vitrines avocat (pages personnelles, demande via formulaire) -- */
.vitrine-badge-request{
  display:inline-block; font-size:0.72rem; font-weight:700; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--accent-600); margin-bottom:var(--space-sm);
}

/* Template "prestige" : hero sombre, formel, symetrique */
.vp-hero{
  background:var(--ink-950); color:var(--paper-0);
  padding-block:var(--space-4xl); text-align:center;
}
.vp-hero-photo{
  width:148px; height:148px; border-radius:50%; object-fit:cover;
  border:3px solid oklch(78% 0.12 75); margin:0 auto var(--space-xl);
  display:block;
}
.vp-hero-kicker{
  font-size:0.75rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase;
  color:oklch(78% 0.12 75); margin-bottom:var(--space-md);
}
.vp-hero h1{ color:#fff; max-width:none; font-size:clamp(1.8rem,1.4rem + 1.6vw,2.8rem); }
.vp-hero-tagline{ color:var(--paper-200); font-size:1.1rem; font-style:italic; max-width:44ch; margin:var(--space-md) auto 0; }
.vp-hero-meta{ color:var(--paper-300); font-size:0.88rem; margin-top:var(--space-lg); }
.vp-body{ max-width:68ch; margin-inline:auto; padding-block:var(--space-3xl); text-align:left; }
.vp-quote{
  font-family:var(--font-display); font-size:1.3rem; font-style:italic; color:var(--ink-950);
  text-align:center; max-width:52ch; margin:var(--space-2xl) auto; line-height:1.5;
  border-top:1px solid var(--border-strong); border-bottom:1px solid var(--border-strong);
  padding-block:var(--space-xl);
}

/* Template "moderne" : minimaliste, asymetrique, beaucoup de blanc */
.vm-hero{
  display:grid; grid-template-columns:1fr 1.4fr; gap:var(--space-3xl); align-items:center;
  padding-block:var(--space-4xl); border-bottom:1px solid var(--border-strong);
}
.vm-hero-photo{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:4px; }
.vm-hero-kicker{ font-size:0.75rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--accent-600); margin-bottom:var(--space-md); }
.vm-hero h1{ max-width:none; font-size:clamp(2rem,1.5rem + 2vw,3.2rem); }
.vm-hero-tagline{ font-size:1.05rem; color:var(--text-secondary); margin-top:var(--space-md); }
.vm-body{ max-width:66ch; padding-block:var(--space-2xl); }
.vm-quote{
  font-size:1.1rem; color:var(--accent-700); border-left:3px solid var(--accent-600);
  padding-left:var(--space-lg); margin:var(--space-xl) 0; font-style:italic;
}
@media (max-width:760px){ .vm-hero{ grid-template-columns:1fr; } }

/* Template "chaleureux" : chaud, humain, arrondi */
.vc-hero{
  background:var(--paper-100); border-radius:20px; padding:var(--space-3xl);
  display:flex; gap:var(--space-2xl); align-items:center; flex-wrap:wrap; margin-block:var(--space-2xl);
}
.vc-hero-photo{ width:160px; height:160px; border-radius:24px; object-fit:cover; flex-shrink:0; }
.vc-hero-kicker{ font-size:0.75rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--accent-600); margin-bottom:var(--space-sm); }
.vc-hero h1{ max-width:none; }
.vc-hero-tagline{ font-size:1.05rem; color:var(--text-secondary); margin-top:var(--space-sm); }
.vc-body{ max-width:66ch; margin-inline:auto; padding-block:var(--space-2xl); }
.vc-quote{
  background:var(--accent-50); border-radius:16px; padding:var(--space-xl);
  font-style:italic; color:var(--accent-700); font-size:1.05rem; margin:var(--space-xl) 0;
}

.vitrine-distinctions{ list-style:none; margin:var(--space-lg) 0; padding:0; }
.vitrine-distinctions li{
  padding:8px 0; border-bottom:1px solid var(--border); font-size:0.92rem; color:var(--text-secondary);
}
.vitrine-distinctions li::before{ content:"\2726  "; color:var(--accent-600); }

/* -- formulaire de demande de vitrine -- */
.vform-block{ margin-block:var(--space-2xl); padding-top:var(--space-xl); border-top:1px solid var(--border-strong); }
.vform-block:first-child{ border-top:none; padding-top:0; }
.vform-block h2{ margin-bottom:var(--space-sm); }
.vform-search-input{
  width:100%; box-sizing:border-box; padding:12px 14px; font-size:1rem; font-family:var(--font-body);
  border:1px solid var(--border-strong); border-radius:6px; margin-top:var(--space-sm);
}
.vform-search-results{ margin-top:4px; }
.vform-search-row{
  padding:10px 14px; border:1px solid var(--border); border-top:none; cursor:pointer; font-size:0.92rem;
}
.vform-search-row:first-child{ border-top:1px solid var(--border); border-radius:6px 6px 0 0; }
.vform-search-row:last-child{ border-radius:0 0 6px 6px; }
.vform-search-row:hover{ background:var(--paper-50); }
.vform-selected{
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-md);
  padding:12px 16px; background:var(--accent-50); border:1px solid var(--accent-100); border-radius:6px;
  margin-top:var(--space-sm); font-size:0.92rem;
}
.vform-template-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:var(--space-md); margin-top:var(--space-md); }
.vform-template-card{
  display:flex; flex-direction:column; gap:4px; padding:var(--space-lg); border:2px solid var(--border-strong);
  border-radius:8px; cursor:pointer; position:relative;
}
.vform-template-card input{ position:absolute; top:12px; right:12px; }
.vform-template-card:has(input:checked){ border-color:var(--accent-600); background:var(--accent-50); }
.vform-template-name{ font-family:var(--font-display); font-weight:600; font-size:1.05rem; }
.vform-template-desc{ font-size:0.85rem; color:var(--text-muted); }
.vform-checkbox-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:8px; margin-top:6px; }
.vform-checkbox{ display:flex; align-items:center; gap:6px; font-size:0.88rem; font-weight:400; }
.vform-consent{ display:flex; align-items:flex-start; gap:10px; font-size:0.88rem; color:var(--text-secondary); margin:var(--space-xl) 0; }
.vform-error{
  background:oklch(95% 0.05 25); border:1px solid oklch(75% 0.15 25); color:oklch(35% 0.15 25);
  padding:12px 16px; border-radius:6px; margin-bottom:var(--space-lg); font-size:0.9rem;
}
.vform-success{
  background:var(--accent-50); border:1px solid var(--accent-100); border-radius:8px;
  padding:var(--space-xl); margin-top:var(--space-lg);
}
