/* Prisonus NetlinkEnergie — styles du site public et des pages légales */
:root {
  --bleu: #0b5394;
  --bleu-fonce: #073763;
  --bleu-clair: #d6eaf8;
  --bleu-tres-clair: #eaf4fb;
  --encre: #16324f;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--encre);
  background-color: var(--bleu-clair); /* fond bleu clair */
  /* Fond à motif télécom & réseaux (nœuds reliés, ondes) */
  background-image:
    radial-gradient(circle at 12% 18%, rgba(11,83,148,.14) 0 3px, transparent 4px),
    radial-gradient(circle at 32% 64%, rgba(11,83,148,.14) 0 3px, transparent 4px),
    radial-gradient(circle at 58% 30%, rgba(11,83,148,.14) 0 3px, transparent 4px),
    radial-gradient(circle at 80% 70%, rgba(11,83,148,.14) 0 3px, transparent 4px),
    radial-gradient(circle at 90% 15%, rgba(11,83,148,.14) 0 3px, transparent 4px),
    linear-gradient(115deg, rgba(11,83,148,.06) 1px, transparent 1px),
    linear-gradient(245deg, rgba(11,83,148,.06) 1px, transparent 1px),
    linear-gradient(180deg, var(--bleu-tres-clair), var(--bleu-clair));
  background-size: 900px 700px, 900px 700px, 900px 700px, 900px 700px, 900px 700px, 46px 46px, 46px 46px, 100% 100%;
}
.wrap { max-width: 1080px; margin: 0 auto; padding: 0 18px; }
.bandeau { background: linear-gradient(120deg, var(--bleu-fonce), var(--bleu)); color: #fff; padding: 14px 0; }
.bandeau .logo { color: #fff; font-size: 1.45rem; font-weight: 700; text-decoration: none; display: inline-block; }
.bandeau p { margin: 4px 0 0; font-size: .88rem; opacity: .92; }
.pied { margin-top: 40px; padding: 22px 0; font-size: .9rem; }
.nav { background: rgba(255,255,255,.85); border-bottom: 1px solid rgba(11,83,148,.25); }
.nav .wrap { display: flex; flex-wrap: wrap; gap: 4px; padding: 8px 18px; }
.nav a { color: var(--bleu-fonce); text-decoration: none; padding: 7px 12px; border-radius: 8px; font-weight: 600; font-size: .92rem; }
.nav a:hover { background: var(--bleu-clair); }
h1 { color: var(--bleu-fonce); }
h2 { color: var(--bleu); margin-top: 0; }
.carte { background: rgba(255,255,255,.94); border: 1px solid rgba(11,83,148,.18); border-radius: 14px; padding: 26px 30px; margin: 26px auto; box-shadow: 0 6px 22px rgba(7,55,99,.10); }
.hero { text-align: center; padding: 40px 30px; }
.hero h1 { font-size: 2rem; margin: 0 0 10px; }
.hero p.sous { font-size: 1.06rem; max-width: 800px; margin: 0 auto; }
.grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 18px; }
.offre { background: var(--bleu-tres-clair); border: 1px solid rgba(11,83,148,.22); border-radius: 12px; padding: 18px 20px; }
.offre h3 { color: var(--bleu-fonce); margin-top: 0; }
.offre ul { padding-left: 20px; margin: 8px 0; }
.offre li { margin: 4px 0; font-size: .93rem; }
.prix { background: var(--bleu); color: #fff; display: inline-block; border-radius: 8px; padding: 3px 10px; font-weight: 700; font-size: .9rem; margin: 2px 4px 2px 0; }
.btn { display: inline-block; background: var(--bleu); color: #fff; border: none; border-radius: 9px; padding: 11px 20px; font-size: .98rem; font-weight: 600; cursor: pointer; text-decoration: none; }
.btn:hover { background: var(--bleu-fonce); }
.btn.secondaire { background: #fff; color: var(--bleu-fonce); border: 2px solid var(--bleu); }
form label { display: block; font-weight: 600; font-size: .88rem; margin: 12px 0 4px; }
form label .oblig { color: #b91c1c; }
form input, form select, form textarea {
  width: 100%; padding: 9px 11px; border: 1px solid #9db8d2; border-radius: 8px;
  font-size: .95rem; font-family: inherit; background: #fff;
}
form textarea { min-height: 90px; resize: vertical; }
.deux-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
@media (max-width: 700px) { .deux-cols { grid-template-columns: 1fr; } }
.alerte { border-radius: 9px; padding: 12px 15px; margin: 14px 0; font-size: .93rem; display: none; }
.alerte.erreur { display: block; background: #fde8e8; border: 1px solid #f3b4b4; color: #9b1c1c; }
.alerte.succes { display: block; background: #e3f6e8; border: 1px solid #a7dbb5; color: #14622f; }
.info-option { background: #fff8e1; border: 1px solid #f0d67c; border-radius: 9px; padding: 12px 15px; margin: 10px 0; font-size: .9rem; display: none; }
.legale h2 { font-size: 1.05rem; margin-bottom: 4px; }
.legale p { font-size: .93rem; line-height: 1.55; }
.mention { font-size: .85rem; color: #4b5563; }
