/*
 * Charte graphique Courtoisville Notaires — reprise de courtoisville.fr
 * Polices : Inter (corps) + Onest (titres), auto-hébergées dans /fonts (copie du site).
 * Couleurs : or de la vague du logo, ardoise du bandeau, bleu-ardoise des liens.
 */

:root {
  --cn-encre: #101010;       /* titres, texte foncé */
  --cn-texte: #444444;       /* corps */
  --cn-or: #af9777;          /* vague du logo */
  --cn-or-fonce: #8f7a5c;    /* or au survol, texte sur clair */
  --cn-ardoise: #1f2a2e;     /* bandeau sombre, pied de page */
  --cn-ardoise-claire: #2c3a40;
  --cn-accent: #546e7a;      /* bleu-ardoise (liens) */
  --cn-accent-clair: #90a4ae;
  --cn-ligne: #e6e2da;
  --cn-fond: #f4f2ee;        /* fond de page, sable clair */
  --cn-fond-2: #ebe7e0;
  --cn-carte: #ffffff;
  --cn-ok: #2f6b4f;
  --cn-ok-fond: #e8f1ec;
  --cn-non: #7a4a4a;
  --cn-non-fond: #f3ebe8;
  --cn-alerte: #a4262c;
  --cn-alerte-fond: #fbeaea;

  --cn-police-corps: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --cn-police-titre: "Onest", "Inter", sans-serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--cn-police-corps);
  font-size: 16px;
  line-height: 1.7;
  color: var(--cn-texte);
  background: var(--cn-fond);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--cn-police-titre); color: var(--cn-encre); font-weight: 600; line-height: 1.3; margin: 0 0 0.6em; }
a { color: var(--cn-accent); text-decoration: none; }
a:hover { color: var(--cn-encre); }
p { margin: 0 0 1.1em; }
[hidden] { display: none !important; }

/* Boutons, style du site : capitales, interlettrage, angles droits */
.cn-bouton {
  display: inline-block;
  font-family: var(--cn-police-titre);
  font-weight: 600;
  font-size: 0.8rem;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  padding: 14px 28px;
  border: 2px solid var(--cn-ardoise);
  background: var(--cn-ardoise);
  color: #fff;
  border-radius: 0;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.15s;
  text-align: center;
}
.cn-bouton:hover:not(:disabled) { background: var(--cn-ardoise-claire); border-color: var(--cn-ardoise-claire); color: #fff; }
.cn-bouton:disabled { opacity: 0.55; cursor: wait; }
.cn-bouton.contour { background: transparent; color: var(--cn-ardoise); }
.cn-bouton.contour:hover:not(:disabled) { background: var(--cn-ardoise); color: #fff; }
.cn-bouton.contour.actif { background: var(--cn-ardoise); color: #fff; }
.cn-bouton.or { background: var(--cn-or); border-color: var(--cn-or); color: #fff; }
.cn-bouton.or:hover:not(:disabled) { background: var(--cn-or-fonce); border-color: var(--cn-or-fonce); }
.cn-bouton.petit { padding: 9px 16px; font-size: 0.72rem; letter-spacing: 1.2px; }
.cn-bouton.discret { background: transparent; border-color: var(--cn-ligne); color: var(--cn-texte); }
.cn-bouton.discret:hover:not(:disabled) { border-color: var(--cn-ardoise); color: var(--cn-encre); background: transparent; }
.cn-bouton.danger { background: transparent; border-color: var(--cn-alerte); color: var(--cn-alerte); }
.cn-bouton.danger:hover:not(:disabled) { background: var(--cn-alerte); color: #fff; }

.cn-surtitre {
  font-family: var(--cn-police-titre);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--cn-or);
}
.cn-discret { font-size: 0.85rem; line-height: 1.6; color: #6f6a62; }
