/* ========== 1) Variables & utilitaires (communs) ========== */
:root{
  --azh-primary:#0a58ca;
  --azh-primary-700:#084298;
  --azh-accent:#21a0ff;
  --azh-navy:#20133A;
  --azh-azur:#38bdf8;
  --azh-bleu:#0ea5e9;
  --azh-gris:#64748b;
  --azh-dark:#0a1b2a;
  --azh-muted:#6c757d;
  --azh-bg:#f7fbff;
  --azh-line:#e5eef7;
  --radius:14px;
  --shadow:0 12px 30px rgba(10,88,202,.15);
  --shadow-md:0 8px 20px rgba(10,88,202,.12);
  --azh-font:'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";
}

/* Utilitaires communs */
body{font-family:var(--azh-font); color:var(--azh-dark); background:var(--azh-bg); letter-spacing:.2px}
.btn-azh{
  --bs-btn-bg:#fff; --bs-btn-color:var(--azh-primary);
  --bs-btn-hover-bg:#f1f5ff; --bs-btn-hover-color:var(--azh-primary-700);
  --bs-btn-border-color:transparent; --bs-btn-hover-border-color:transparent;
  border-radius:999px; padding:.75rem 1.25rem; font-weight:600;
  box-shadow:0 6px 18px rgba(0,0,0,.12);
}
.btn-azh-primary{background:#fff; color:var(--azh-primary)}
.btn-azh-outline{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.6)}
.section-title{font-weight:700; letter-spacing:.25px}

/* ========== 2) Page ACCUEIL (scopée) ========== */
.azh-home .navbar{
  backdrop-filter:saturate(1.2) blur(6px);
  -webkit-backdrop-filter:saturate(1.2) blur(6px);
}

.azh-home .hero{
  position:relative; color:#fff; overflow:hidden;
  background:
    radial-gradient(1000px 600px at 10% 10%, rgba(33,160,255,.20), transparent 60%),
    linear-gradient(135deg, var(--azh-primary), var(--azh-primary-700));
}
.azh-home .hero .container{z-index:2; position:relative}
.azh-home .hero-blob{
  position:absolute; inset:-20% -10% auto auto; width:55vw; aspect-ratio:1/1;
  background:radial-gradient(closest-side, rgba(255,255,255,.18), rgba(255,255,255,0));
  filter:blur(30px); opacity:.8;
}
.azh-home .hero-card{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.25);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  backdrop-filter:blur(8px);
}
.azh-home .feature-card{border:0; border-radius:var(--radius); box-shadow:var(--shadow)}
.azh-home .feature-card .icon{font-size:1.75rem}
.azh-home .cta{background:#fff; border-radius:var(--radius); box-shadow:var(--shadow)}
.azh-home footer a{text-decoration:none}

/* CGV */
/* ========== 3) Pages légales (CGV / Mentions / RGPD) ========== */
.legal { color: var(--azh-dark); }
.legal .section-title { letter-spacing:.2px; }
.legal .legal-meta { font-size:.95rem; }

.legal-card {
  border:1px solid var(--azh-line);
  border-radius: var(--radius);
}

.legal-article { 
  padding: 1.25rem 0; 
  border-top: 1px solid var(--azh-line);
}
.legal-article:first-of-type { border-top: 0; }

.legal-article h2 { 
  font-weight:700; 
  margin-bottom:.5rem; 
}

.legal-ol, .legal-ul { 
  margin: .5rem 0 0 0; 
  padding-left: 1.25rem; 
  line-height: 1.9; 
  color: var(--azh-dark);
}
.legal-ul li + li,
.legal-ol > li + li { margin-top:.35rem; }

.legal-toc {
  padding: 1rem 1.25rem;
  border:1px solid var(--azh-line);
  border-radius: var(--radius);
  background: #f9fbff;
}
.legal-toc ol { 
  margin:0; padding-left:1.25rem; 
}
.legal-toc a { 
  text-decoration: none; 
  color: var(--azh-primary); 
}
.legal-toc a:hover { color: var(--azh-primary-700); text-decoration: underline; }

/* Lisibilité */
.legal p, .legal li { font-size: 1rem; }
@media (min-width: 992px) {
  .legal p, .legal li { font-size: 1.05rem; }
}

/* Impression */
@media print {
  body { background:#fff !important; }
  .navbar, footer { display:none !important; }
  .legal .legal-toc { page-break-inside: avoid; }
  .legal-article { page-break-inside: avoid; }
  a[href]:after { content:" (" attr(href) ")"; font-size:.85em; color:#555; }
}

/* ========== 4) Bandeau cookies (global) ========== */
.cookie-banner {
  position: fixed;
  inset: auto 0 0 0;
  z-index: 1080;
  background: #fff;
  border-top: 1px solid var(--azh-line, #e5eef7);
  box-shadow: 0 -8px 24px rgba(0, 0, 0, .08);
  font-family: var(--azh-font, system-ui);
  color: var(--azh-dark, #0a1b2a);
  animation: slideUp 0.5s ease forwards;
}
.cookie-inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 14px 16px;
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.cookie-text {
  font-size: .95rem;
  line-height: 1.5;
  flex: 1 1 65%;
}
.cookie-link {
  color: var(--azh-primary, #0a58ca);
  text-decoration: none;
  font-weight: 500;
}
.cookie-link:hover {
  text-decoration: underline;
}

/* Boutons */
.cookie-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.cookie-btn {
  border-radius: 999px;
  padding: .55rem .95rem;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all .15s ease-in-out;
}
.cookie-decline {
  background: #f2f4f8;
  color: var(--azh-dark, #0a1b2a);
}
.cookie-customize {
  background: #fff;
  color: var(--azh-dark, #0a1b2a);
  border: 1px solid var(--azh-line, #e5eef7);
  text-decoration: none;
}
.cookie-accept {
  background: var(--azh-primary, #0a58ca);
  color: #fff;
  border-color: var(--azh-primary, #0a58ca);
  box-shadow: 0 6px 18px rgba(10, 88, 202, .18);
}
.cookie-accept:hover {
  filter: brightness(.95);
}

/* Noscript (fallback sans JS) */
.cookie-noscript {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: #fff;
  border-top: 1px solid #e5eef7;
  padding: .75rem 1rem;
  z-index: 1080;
  font-family: system-ui, sans-serif;
  font-size: .9rem;
}

/* Responsive & print */
@media (max-width: 575.98px) {
  .cookie-inner { padding: 12px }
  .cookie-text { font-size: .93rem }
}
@media print {
  .cookie-banner, .cookie-noscript { display: none !important; }
}

/* Animation d’apparition */
@keyframes slideUp {
  from { transform: translateY(100%); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

/* évite que le bouton change de largeur entre idle/loading */
#sendBtn { min-width: 14rem; }
/* accessibilité motion */
@media (prefers-reduced-motion: reduce) {
  .spinner-border { animation-duration: 1.2s; }
}
