/* Prix Vétérinaire — design maison (pas de maquette) : vert sapin rassurant + blanc chaud,
   lecture confortable (18px), tableaux de prix très lisibles. */

:root {
	--vert: #14594a;
	--vert-vif: #1d7a63;
	--fond: #f8faf7;
	--fond-fonce: #e5ece4;
	--corail: #d96c4f;
	--encre: #212a26;
	--gris: #5b6862;
	--rayon: 10px;
}

* { box-sizing: border-box; }
body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 18px; color: var(--encre); background: var(--fond); line-height: 1.7; }
a { color: var(--vert-vif); text-underline-offset: 3px; }
a:hover { color: var(--corail); }
.wrap { max-width: 960px; margin: 0 auto; padding: 0 20px; }

/* header */
.site-header { background: var(--vert); padding: 18px 0; }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.logo { color: #fff; text-decoration: none; font-size: 1.45rem; font-weight: 700; font-family: Georgia, "Times New Roman", serif; letter-spacing: .3px; }
.logo em { font-style: normal; color: #ffcdb8; }
.nav-piliers { display: flex; gap: 4px 18px; flex-wrap: wrap; }
.nav-piliers a { color: #ecf4ef; text-decoration: none; font-weight: 600; font-size: .95rem; }
.nav-piliers a:hover { color: #ffcdb8; }

/* contenus */
main.wrap { padding: 34px 20px 56px; }
h1 { font-family: Georgia, "Times New Roman", serif; font-size: 2.05rem; line-height: 1.25; color: var(--vert); margin: 0 0 8px; }
.sous-titre { color: var(--gris); margin-top: 0; font-size: 1.08rem; }
h2 { font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; color: var(--vert); margin-top: 40px; }
h3 { font-size: 1.1rem; color: var(--vert); }

.encadre { background: #fff; border: 1px solid var(--fond-fonce); border-left: 5px solid var(--corail); border-radius: var(--rayon); padding: 18px 24px; margin: 22px 0; }
.encadre p { margin: 8px 0; }
.encadre.assurance { border-left-color: var(--vert-vif); }

table.bareme { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--rayon); overflow: hidden; margin: 18px 0; font-size: .98rem; }
table.bareme th { background: var(--vert); color: #fff; text-align: left; padding: 10px 14px; }
table.bareme td { border-top: 1px solid var(--fond-fonce); padding: 9px 14px; }
.table-scroll { overflow-x: auto; }

/* grilles de cartes (hubs, home) */
.grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; padding: 0; margin: 18px 0; list-style: none; }
.grille li { background: #fff; border: 1px solid var(--fond-fonce); border-radius: var(--rayon); padding: 18px 20px; }
.grille li a { font-weight: 700; text-decoration: none; font-size: 1.05rem; }
.grille li .meta { color: var(--gris); font-size: .95rem; margin-top: 6px; }

/* CTA */
.cta { margin: 18px 0 8px; }
.cta a { display: inline-block; background: var(--corail); color: #fff; text-decoration: none; font-weight: 700; border-radius: var(--rayon); padding: 13px 24px; font-size: 1.05rem; }
.cta a:hover { background: #b8543a; color: #fff; }

/* simulateur */
.simulateur { background: #fff; border: 2px solid var(--vert); border-radius: var(--rayon); padding: 24px 28px; margin: 26px 0; }
.simulateur label { display: block; font-weight: 700; margin: 16px 0 6px; }
.simulateur input, .simulateur select { font-size: 1.1rem; padding: 10px 14px; border: 2px solid var(--fond-fonce); border-radius: 8px; width: 100%; max-width: 380px; background: var(--fond); color: var(--encre); }
.simulateur button { margin-top: 20px; font-size: 1.1rem; font-weight: 700; background: var(--vert); color: #fff; border: none; border-radius: 8px; padding: 13px 26px; cursor: pointer; }
.simulateur button:hover { background: var(--vert-vif); }
.resultat { display: none; margin-top: 24px; padding: 20px 24px; background: var(--fond); border-radius: var(--rayon); }
.resultat .gros { font-size: 1.7rem; font-weight: 700; color: var(--vert); }
.resultat table { width: 100%; border-collapse: collapse; margin-top: 10px; font-size: .95rem; }
.resultat td { padding: 5px 0; border-top: 1px solid var(--fond-fonce); }
.resultat td:last-child { text-align: right; font-weight: 600; }

/* FAQ */
.faq details { background: #fff; border: 1px solid var(--fond-fonce); border-radius: var(--rayon); padding: 12px 18px; margin: 10px 0; }
.faq summary { font-weight: 700; cursor: pointer; }

/* sources */
.sources { border-top: 2px solid var(--fond-fonce); margin-top: 44px; padding-top: 14px; font-size: .92rem; color: var(--gris); }
.sources a { color: var(--gris); }

/* footer */
.site-footer { background: var(--vert); color: #cfe0d7; padding: 30px 0; margin-top: 48px; font-size: .95rem; }
.site-footer a { color: #fff; }
.footer-nav { display: flex; gap: 6px 18px; flex-wrap: wrap; margin-bottom: 12px; }
.attribution { opacity: .8; }

.note { color: var(--gris); font-size: .92rem; }
.maillage { line-height: 2.1; }

@media (max-width: 640px) {
	body { font-size: 16.5px; }
	h1 { font-size: 1.65rem; }
}
