/*
Theme Name: GeneratePress Child - VétoProche
Template: generatepress
Version: 2.0
Text Domain: generatepress-child
*/

/* ===== TOKENS ===== */
:root {
  --blanc: #FFFFFF;
  --papier: #F4F7F5;
  --encre: #121A16;
  --vert: #027A48;
  --vert-fonce: #06402B;
  --vert-pale: #E7F5EF;
  --rouge: #E23A32;
  --rouge-pale: #FDECEA;
  --or: #FFB020;
  --or-pale: #FFF4DE;
  --gris: #5E7268;
  --bord: #DCE8E1;
  --radius: 14px;
  --maxw: 1200px;
}

/* ===== BASE ===== */
body {
  font-family: 'Montserrat', system-ui, sans-serif;
  background: var(--papier);
  color: var(--encre);
  -webkit-font-smoothing: antialiased;
  font-size: 14.5px;
}
.mono, .vet-mono { font-family: 'DM Mono', monospace; font-weight: 500; }

/* ===== BOUTONS ===== */
.btn-tel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  background: var(--vert);
  color: #fff;
  border: 0;
  padding: 11px 14px;
  border-radius: 10px;
  font-weight: 700;
  font-size: 13.5px;
  cursor: pointer;
  font-family: inherit;
  text-decoration: none;
}
.btn-tel.big { width: 100%; padding: 15px; font-size: 14.5px; }
.btn-fiche, .btn-itin {
  display: block;
  width: 100%;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1.5px solid var(--bord);
  background: var(--blanc);
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  font-family: inherit;
  color: var(--encre);
  text-align: center;
  text-decoration: none;
}
.btn-itin { padding: 13px; border: 1.5px solid var(--encre); font-weight: 700; font-size: 13.5px; margin-top: 9px; }

/* ===== BADGE STATUT ===== */
.vet-statut {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 9px;
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  padding: 5px 9px;
  border-radius: 6px;
}
.vet-statut.urgences { background: var(--rouge-pale); color: var(--rouge); }
.vet-statut.ouvert   { background: var(--vert-pale);  color: var(--vert);  }
.vet-statut.ferme    { background: var(--papier);     color: var(--gris);  }
.vet-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: currentColor;
  display: inline-block;
  animation: vp-pulse 1.4s infinite;
}
@keyframes vp-pulse {
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.4;transform:scale(.75)}
}

/* ===== ARCHIVE ===== */
.vet-archive-wrap {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 28px 24px 48px;
}
.vet-archive-header {
  margin-bottom: 22px;
}
.vet-archive-header h1 {
  font-weight: 900;
  font-size: 30px;
  letter-spacing: -1px;
}
.vet-archive-header p {
  font-size: 14.5px;
  color: var(--gris);
  margin-top: 6px;
  font-weight: 500;
}
.vet-archive-grid {
  display: grid;
  gap: 12px;
}
.vet-card {
  border: 1px solid var(--bord);
  border-radius: var(--radius);
  padding: 16px;
  background: var(--blanc);
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: center;
  transition: box-shadow .18s;
}
.vet-card:hover { box-shadow: 0 6px 20px -10px rgba(18,26,22,.18); }
.vet-card h2 {
  font-size: 15.5px;
  font-weight: 700;
  letter-spacing: -.25px;
  margin: 0;
}
.vet-card h2 a { color: var(--encre); text-decoration: none; }
.vet-card h2 a:hover { color: var(--vert); }
.vet-card .vet-meta {
  font-size: 12.5px;
  color: var(--gris);
  margin-top: 5px;
  font-weight: 500;
}
.vet-card-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 150px;
}
.vet-archive-pagination { margin-top: 28px; text-align: center; }
.vet-archive-pagination .page-numbers {
  display: inline-flex;
  gap: 6px;
}
.vet-archive-pagination a, .vet-archive-pagination span {
  padding: 8px 14px;
  border-radius: 9px;
  border: 1.5px solid var(--bord);
  font-weight: 700;
  font-size: 13px;
  color: var(--encre);
  text-decoration: none;
  background: var(--blanc);
}
.vet-archive-pagination .current {
  background: var(--encre);
  color: #fff;
  border-color: var(--encre);
}
.vet-empty { padding: 40px; text-align: center; color: var(--gris); }

/* ===== SINGLE FICHE ===== */
.vet-fiche-wrap {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 16px 24px 48px;
}
.vet-fil {
  font-size: 12px;
  color: var(--gris);
  padding: 4px 0 16px;
  font-weight: 500;
}
.vet-fil a { color: var(--vert); font-weight: 700; text-decoration: none; }
.vet-fiche-grid {
  display: grid;
  grid-template-columns: minmax(0,1fr) 370px;
  gap: 28px;
  align-items: start;
}
/* Head */
.vet-fiche-head h1 {
  font-weight: 900;
  font-size: 30px;
  letter-spacing: -1px;
  line-height: 1.1;
}
.vet-fiche-head .vet-meta {
  font-size: 14px;
  color: var(--gris);
  margin-top: 8px;
  font-weight: 500;
}
/* Bandeau garde */
.vet-bandeau-garde {
  margin-top: 16px;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1.5px solid var(--rouge);
  display: grid;
  grid-template-columns: auto 1fr;
}
.vet-bandeau-garde .etat {
  background: var(--rouge);
  color: #fff;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 9px;
  font-weight: 800;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.vet-bandeau-garde .detail {
  background: var(--rouge-pale);
  padding: 12px 16px;
  font-family: 'DM Mono', monospace;
  font-size: 13px;
  color: var(--rouge);
  display: flex;
  align-items: center;
}
/* Tags */
.vet-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
  list-style: none;
  padding: 0;
}
.vet-tag {
  font-size: 12px;
  font-weight: 700;
  padding: 8px 12px;
  border-radius: 8px;
  background: var(--vert-pale);
  color: var(--vert);
  text-decoration: none;
}
.vet-tag.neutre { background: var(--papier); color: var(--gris); }
/* Synthèse */
.vet-avis-synthese {
  margin-top: 20px;
  border-left: 3px solid var(--vert);
  background: var(--vert-pale);
  border-radius: 0 12px 12px 0;
  padding: 14px 16px;
  font-size: 13px;
  color: #14523A;
  line-height: 1.65;
  font-weight: 500;
}
.vet-avis-synthese .label {
  display: block;
  font-family: 'DM Mono', monospace;
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-bottom: 5px;
  color: var(--vert);
}
/* Description */
.vet-desc {
  margin-top: 20px;
  font-size: 14px;
  line-height: 1.72;
  color: #39445A;
  font-weight: 500;
}
.vet-desc h2 { font-weight: 800; font-size: 16.5px; margin: 18px 0 7px; color: var(--encre); letter-spacing: -.3px; }
.vet-desc a { color: var(--vert); font-weight: 700; text-decoration: none; }
.vet-horaires-list { list-style: none; padding: 0; margin: 8px 0 0; }
.vet-horaires-list li { padding: 4px 0; border-bottom: 1px solid var(--bord); font-family: 'DM Mono', monospace; font-size: 12.5px; }
.vet-horaires-list li:last-child { border: 0; }
/* Sidebar */
.vet-side { display: grid; gap: 14px; position: sticky; top: 20px; }
.vet-panel {
  border: 1px solid var(--bord);
  border-radius: var(--radius);
  background: var(--blanc);
  overflow: hidden;
}
.vet-panel .pad { padding: 16px; }
.vet-info-row {
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid var(--bord);
  font-size: 13px;
  align-items: flex-start;
  font-weight: 500;
}
.vet-info-row .ic { flex: 0 0 22px; text-align: center; }
.vet-info-row b { font-weight: 700; display: block; }
.vet-info-row a { color: var(--vert); font-weight: 700; text-decoration: none; }
.vet-note { font-family: 'DM Mono', monospace; font-size: 13px; color: var(--or); }
/* Bloc assurance */
.vet-bloc-assurance {
  border-radius: var(--radius);
  padding: 18px;
  background: linear-gradient(135deg, var(--vert-fonce), #0C5C3D);
  color: #fff;
}
.vet-bloc-assurance .eyebrow { font-family: 'DM Mono', monospace; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.vet-bloc-assurance h3 { font-weight: 800; font-size: 16px; margin-top: 7px; line-height: 1.3; letter-spacing: -.3px; }
.vet-bloc-assurance p { font-size: 12.5px; opacity: .88; margin-top: 7px; line-height: 1.55; font-weight: 500; }
.vet-bloc-assurance a { display: inline-block; margin-top: 12px; background: #fff; color: var(--vert); font-weight: 800; font-size: 13px; padding: 10px 16px; border-radius: 9px; text-decoration: none; }
/* Réclamer */
.vet-reclamer { font-size: 12px; color: var(--gris); text-align: center; padding: 12px; font-weight: 500; }
.vet-reclamer a { color: var(--vert); font-weight: 700; text-decoration: none; }

/* ===== RESPONSIVE ===== */
@media (max-width: 980px) {
  .vet-fiche-grid { grid-template-columns: 1fr; }
  .vet-side { position: relative; top: 0; }
  .vet-card { grid-template-columns: 1fr; }
  .vet-card-actions { flex-direction: row; }
}
@media (prefers-reduced-motion: reduce) {
  .vet-dot { animation: none !important; }
}
