/* ============================================================
   CNJ 2026 — EPICI · Design System
   Palette conservée de l'existant, direction épurée/moderne
   ============================================================ */

:root {
  /* Palette EPICI (conservée) */
  --clay:        #C2714F;
  --terracotta:  #A8522A;
  --sand:        #F2E8D9;
  --linen:       #EAD9C4;
  --bark:        #3D2B1F;
  --moss:        #5C7040;
  --gold:        #C8A04A;
  --cream:       #FBF5EC;

  /* Dérivés (oklch, même famille chromatique) */
  --terracotta-deep: oklch(0.42 0.10 47);
  --clay-soft:   oklch(0.74 0.07 47);
  --bark-soft:   oklch(0.42 0.03 60);
  --bark-mute:   oklch(0.56 0.02 60);
  --ink:         #2A1D14;
  --line:        oklch(0.86 0.025 75);
  --line-strong: oklch(0.80 0.035 70);
  --surface:     #FFFFFF;
  --surface-2:   #FCF7EF;
  --moss-soft:   oklch(0.92 0.04 130);
  --gold-soft:   oklch(0.93 0.05 90);
  --terracotta-soft: oklch(0.93 0.04 50);

  /* Typographie (variables — tweakables) */
  --font-display: 'Bricolage Grotesque', 'Hanken Grotesk', system-ui, sans-serif;
  --font-body:    'Hanken Grotesk', system-ui, sans-serif;
  --font-mono:    'Space Mono', ui-monospace, monospace;

  /* Rayons & ombres */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-xl: 32px;
  --shadow-sm: 0 1px 2px rgba(61,43,31,.06), 0 2px 8px rgba(61,43,31,.05);
  --shadow-md: 0 4px 14px rgba(61,43,31,.08), 0 10px 30px rgba(61,43,31,.07);
  --shadow-lg: 0 18px 50px rgba(61,43,31,.14);

  /* Layout */
  --maxw: 1200px;
  --nav-h: 74px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-body);
  background: var(--cream);
  color: var(--bark);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  line-height: 1.55;
}
#root { min-height: 100vh; }

h1,h2,h3,h4,h5 { font-family: var(--font-display); font-weight: 700; line-height: 1.05; margin: 0; letter-spacing: -0.02em; color: var(--ink); }
p { margin: 0; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
img { display: block; max-width: 100%; }
::selection { background: var(--clay); color: #fff; }

/* Scrollbar discret */
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 20px; border: 2px solid var(--cream); }
*::-webkit-scrollbar-track { background: transparent; }

/* ---------- Utilitaires ---------- */
.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 28px; }
.eyebrow {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--terracotta);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
}
.eyebrow::before { content: ""; width: 22px; height: 1.5px; background: var(--clay); display: inline-block; }
.eyebrow.on-dark { color: var(--gold); }
.eyebrow.on-dark::before { background: var(--gold); }

.fadein { animation: fadein .7s cubic-bezier(.2,.7,.3,1); }
@keyframes fadein { from { transform: translateY(16px); } to { transform: none; } }
@media (prefers-reduced-motion: reduce) { .fadein { animation: none; } }

/* ---------- Boutons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  border: none; border-radius: 999px;
  padding: 13px 22px; font-size: 15px; font-weight: 700;
  font-family: var(--font-body);
  transition: transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s, border-color .2s;
  white-space: nowrap; line-height: 1;
}
.btn:active { transform: translateY(1px) scale(.99); }
.btn-primary { background: var(--terracotta); color: #fff; box-shadow: 0 6px 18px rgba(168,82,42,.28); }
.btn-primary:hover { background: var(--terracotta-deep); box-shadow: 0 10px 26px rgba(168,82,42,.34); }
.btn-gold { background: var(--gold); color: var(--ink); box-shadow: 0 6px 18px rgba(200,160,74,.30); }
.btn-gold:hover { filter: brightness(1.04); }
.btn-ghost { background: transparent; color: var(--ink); border: 1.5px solid var(--line-strong); }
.btn-ghost:hover { border-color: var(--bark); background: rgba(61,43,31,.03); }
.btn-dark { background: var(--bark); color: var(--cream); }
.btn-dark:hover { background: var(--ink); }
.btn-light { background: #fff; color: var(--ink); border: 1.5px solid var(--line); }
.btn-light:hover { border-color: var(--clay); color: var(--terracotta); }
.btn-sm { padding: 9px 15px; font-size: 13.5px; }
.btn-lg { padding: 16px 28px; font-size: 16px; }
.btn-block { width: 100%; }
.btn[disabled] { opacity: .45; cursor: not-allowed; }

/* ---------- Tags / pills ---------- */
.tag {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: var(--font-mono); font-size: 11px; font-weight: 700;
  letter-spacing: .06em; text-transform: uppercase;
  padding: 5px 10px; border-radius: 999px; white-space: nowrap;
  background: var(--terracotta-soft); color: var(--terracotta-deep);
}
.tag.moss { background: var(--moss-soft); color: var(--moss); }
.tag.gold { background: var(--gold-soft); color: #8a6b1f; }
.tag.bark { background: rgba(61,43,31,.08); color: var(--bark); }
.dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; display: inline-block; }

/* ---------- Cards ---------- */
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); }
.card-pad { padding: 26px; }

/* ---------- Inputs ---------- */
.field { display: flex; flex-direction: column; gap: 7px; }
.field label { font-size: 13.5px; font-weight: 600; color: var(--bark-soft); }
.field .req { color: var(--terracotta); }
.input, .select, .textarea {
  font-family: var(--font-body); font-size: 15px; color: var(--ink);
  background: var(--surface); border: 1.5px solid var(--line-strong);
  border-radius: var(--r-sm); padding: 12px 14px; width: 100%;
  transition: border-color .15s, box-shadow .15s;
}
.input:focus, .select:focus, .textarea:focus {
  outline: none; border-color: var(--clay);
  box-shadow: 0 0 0 4px rgba(194,113,79,.14);
}
.input::placeholder { color: var(--bark-mute); opacity: .65; }
.select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%233D2B1F' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; }
.textarea { resize: vertical; min-height: 92px; }
.hint { font-size: 12.5px; color: var(--bark-mute); }

/* ---------- Image placeholder ---------- */
.imgph {
  position: relative; overflow: hidden;
  background:
    repeating-linear-gradient(135deg, rgba(168,82,42,.07) 0 12px, rgba(168,82,42,.02) 12px 24px),
    var(--linen);
  display: flex; align-items: center; justify-content: center;
  color: var(--bark-mute);
}
.imgph span {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em;
  text-transform: uppercase; background: rgba(251,245,236,.82);
  padding: 5px 11px; border-radius: 999px; border: 1px solid var(--line);
}
.imgph.dark { background:
    repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 12px, rgba(255,255,255,.01) 12px 24px),
    #2c1f16; color: var(--linen); }
.imgph.dark span { background: rgba(0,0,0,.28); border-color: rgba(255,255,255,.12); color: var(--linen); }

/* ---------- Section helpers ---------- */
.section { padding: 92px 0; }
.section.tight { padding: 64px 0; }
.bg-cream { background: var(--cream); }
.bg-sand  { background: var(--sand); }
.bg-surface { background: var(--surface-2); }
.bg-bark  { background: var(--bark); color: var(--cream); }
.bg-bark h1,.bg-bark h2,.bg-bark h3 { color: #fff; }

.divline { height: 1px; background: var(--line); border: 0; }

/* ---------- Stat ---------- */
.stat-num { font-family: var(--font-display); font-weight: 800; font-size: clamp(34px, 4vw, 52px); color: var(--terracotta); line-height: 1; letter-spacing: -.03em; }
.stat-lbl { font-size: 13px; color: var(--bark-soft); margin-top: 6px; }

/* utility text */
.muted { color: var(--bark-soft); }
.mute2 { color: var(--bark-mute); }
.center { text-align: center; }

.navlinks a { white-space: nowrap; }

/* ============ Responsive ============ */
@media (max-width: 1000px) {
  .hero-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
  .hero-grid > div:last-child { max-width: 460px; }
  .two-col, .three-col, .cta-grid { grid-template-columns: 1fr !important; gap: 30px !important; }
  .three-col { grid-template-columns: 1fr 1fr !important; }
  .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 32px !important; }
}
@media (max-width: 860px) {
  .navlinks, .navcta { display: none !important; }
  .navburger { display: block !important; }
  .section { padding: 60px 0; }
  .prog-row { grid-template-columns: 90px 1fr !important; }
  .prog-row > svg { display: none; }
}
@media (max-width: 620px) {
  .wrap { padding: 0 18px; }
  .three-col { grid-template-columns: 1fr !important; }
  .footer-grid { grid-template-columns: 1fr !important; }
  .gallery-grid { grid-template-columns: 1fr 1fr !important; }
  h1 { letter-spacing: -.03em; }
}
@media (min-width: 861px) { .navmobile { display: none; } }

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes slidein { from { transform: translateX(40px); opacity: .4; } to { transform: none; opacity: 1; } }

/* Back-office responsive */
@media (max-width: 1000px) {
  .bo-kpi { grid-template-columns: 1fr 1fr !important; }
  .bo-cards2 { grid-template-columns: 1fr !important; }
}
@media (max-width: 860px) {
  .bo-side { position: fixed !important; left: 0; top: 0; z-index: 40; transform: translateX(-100%); transition: transform .25s; }
  .bo-side.open { transform: translateX(0); box-shadow: var(--shadow-lg); }
  .bo-burger { display: block !important; }
  .bo-search { display: none !important; }
}
@media (max-width: 600px) {
  .bo-kpi { grid-template-columns: 1fr !important; }
  .bo-hide-sm { display: none !important; }
}

@media (max-width: 880px) {
  .insc-grid { grid-template-columns: 1fr !important; }
  .insc-grid aside { position: static !important; order: -1; }
}
@media (max-width: 560px) {
  .grid2 { grid-template-columns: 1fr !important; }
  .pay-grid { grid-template-columns: 1fr 1fr !important; }
}

@media (max-width: 840px) {
  .auth-shell { grid-template-columns: 1fr !important; }
  .auth-brand { display: none !important; }
  .auth-logo-sm { display: block !important; }
}

@media (max-width: 860px) {
  .acc-side { position: fixed !important; left: 0; top: 0; z-index: 40; transform: translateX(-100%); transition: transform .25s; }
  .acc-side.open { transform: translateX(0); box-shadow: var(--shadow-lg); }
  .acc-burger { display: block !important; }
  .acc-cards { grid-template-columns: 1fr !important; }
  .acc-cards2 { grid-template-columns: 1fr !important; }
}
/* assets compilés via Vite — voir resources/js/app.js */

/* ---- Ajouts pour le rendu server-side ---- */
.bo-side, .acc-side { transition: transform .25s; }
@media (max-width: 860px) {
  .bo-side, .acc-side { position: fixed !important; left:0; top:0; z-index:40; transform: translateX(-100%); }
  .bo-side.open, .acc-side.open { transform: translateX(0); box-shadow: var(--shadow-lg); }
}

/* ============ Responsive mobile / tablette (inscription, espace, modals) ============ */
@media (max-width: 880px) {
  /* Inscription : le formulaire d'abord, l'encart récap dessous. */
  .insc-grid aside { order: 1 !important; position: static !important; top: auto !important; }
}
@media (min-width: 561px) and (max-width: 860px) {
  /* Espace : cartes en 2 colonnes sur tablette. */
  .acc-cards { grid-template-columns: 1fr 1fr !important; }
}
@media (max-width: 560px) {
  .insc-card { padding: 20px 16px !important; }
  .insc-steps .insc-step-lbl { font-size: 10px !important; }
  .insc-steps .insc-step > div:first-child { width: 30px !important; height: 30px !important; font-size: 13px !important; }
  .insc-steps .insc-bar { margin: 0 4px 22px !important; }
  .insc-head-tag { display: none !important; }
  .pay-amounts { flex-wrap: wrap !important; }
  .pay-amounts .amt-opt { flex: 1 1 28% !important; }
  .presence-actions { flex-direction: column !important; padding-left: 0 !important; }
  .presence-actions .btn { width: 100% !important; }
  .modal-actions { flex-direction: column-reverse !important; }
  .modal-actions .btn { width: 100% !important; }
}

/* Carrousel intervenants — largeur des cartes selon le viewport */
@media (max-width: 1000px) { .iv-card { flex: 0 0 calc((100% - 20px) / 2) !important; } }
@media (max-width: 620px)  { .iv-card { flex: 0 0 100% !important; } }

/* ============================================================
   CNJ 2026 — Système de notifications (toasts, confirmation,
   bandeaux, validation). Ajouté sans build. Couleurs charte :
   succès=moss, erreur=rouge brique, avertissement=or, info=ardoise.
   ============================================================ */

/* ---------- Toasts ---------- */
.cnj-toast-host{position:fixed;top:18px;right:18px;z-index:9999;display:flex;flex-direction:column;gap:12px;width:min(400px,calc(100vw - 32px));pointer-events:none;}
@media(max-width:640px){.cnj-toast-host{top:12px;left:16px;right:16px;width:auto;}}
.cnj-toast{pointer-events:auto;display:flex;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 16px 38px rgba(61,43,31,.16);position:relative;animation:cnjToastIn .28s cubic-bezier(.2,.8,.2,1);}
@keyframes cnjToastIn{from{opacity:0;transform:translateY(-8px) scale(.98);}to{opacity:1;transform:none;}}
.cnj-toast.cnj-out{opacity:0;transform:translateX(14px);transition:opacity .25s ease,transform .25s ease;}
.cnj-toast-ic{width:52px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;}
.cnj-toast-in{flex:1;padding:13px 40px 15px 15px;position:relative;}
.cnj-toast-title{font-family:var(--font-display);font-weight:800;font-size:14.5px;color:var(--ink);}
.cnj-toast-msg{font-size:13px;color:var(--bark-soft);margin-top:2px;line-height:1.45;}
.cnj-toast-x{position:absolute;top:11px;right:11px;border:none;background:none;color:var(--bark-mute);cursor:pointer;padding:3px;line-height:0;border-radius:6px;}
.cnj-toast-x:hover{background:var(--surface-2);}
.cnj-toast-bar{position:absolute;left:52px;right:0;bottom:0;height:3px;background:var(--surface-2);}
.cnj-toast-bar>i{display:block;height:100%;width:100%;transform-origin:left;animation:cnjBar 5s linear forwards;}
@keyframes cnjBar{from{transform:scaleX(1);}to{transform:scaleX(0);}}
.cnj-toast.is-ok   .cnj-toast-ic{background:linear-gradient(160deg,#5C7040,#47592f);} .cnj-toast.is-ok   .cnj-toast-bar>i{background:#5C7040;}
.cnj-toast.is-err  .cnj-toast-ic{background:linear-gradient(160deg,#BC3B2D,#9c3122);} .cnj-toast.is-err  .cnj-toast-bar>i{background:#BC3B2D;}
.cnj-toast.is-warn .cnj-toast-ic{background:linear-gradient(160deg,#C8A04A,#a8842f);} .cnj-toast.is-warn .cnj-toast-bar>i{background:#C8A04A;}
.cnj-toast.is-info .cnj-toast-ic{background:linear-gradient(160deg,#3E6B7A,#315662);} .cnj-toast.is-info .cnj-toast-bar>i{background:#3E6B7A;}

/* ---------- Modale de confirmation (desktop = D, mobile = C) ---------- */
.cnj-modal-backdrop{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 28% 18%,rgba(200,160,74,.14),transparent 55%),radial-gradient(circle at 82% 88%,rgba(168,82,42,.12),transparent 50%),rgba(42,29,20,.72);animation:cnjFade .2s ease;}
@keyframes cnjFade{from{opacity:0;}to{opacity:1;}}
.cnj-modal{width:540px;max-width:100%;background:#fff;border-radius:26px;box-shadow:0 40px 90px rgba(42,29,20,.42);overflow:hidden;display:flex;animation:cnjPop .26s cubic-bezier(.2,.8,.2,1);}
@keyframes cnjPop{from{opacity:0;transform:translateY(10px) scale(.97);}to{opacity:1;transform:none;}}
.cnj-modal-panel{width:132px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;position:relative;}
.cnj-modal-panel::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0 20px,rgba(255,255,255,.06) 20px 21px);}
.cnj-modal-panel>span{position:relative;width:64px;height:64px;border-radius:18px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;}
.cnj-modal-main{flex:1;padding:28px 28px 24px;min-width:0;}
.cnj-modal-title{font-size:19px;font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);line-height:1.2;}
.cnj-modal-text{font-size:14px;color:var(--bark-soft);line-height:1.6;margin-top:10px;}
.cnj-modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px;}
.cnj-mbtn{height:44px;border-radius:999px;font-weight:700;font-size:14px;padding:0 22px;cursor:pointer;border:1px solid var(--line-strong);background:#fff;color:var(--bark-soft);display:inline-flex;align-items:center;justify-content:center;gap:8px;}
.cnj-mbtn-primary{border:none;color:#fff;padding:0 24px;box-shadow:0 10px 22px rgba(168,82,42,.28);}
.cnj-modal.is-danger   .cnj-modal-panel{background:linear-gradient(160deg,#BC3B2D,#9c3122);} .cnj-modal.is-danger   .cnj-mbtn-primary{background:#BC3B2D;box-shadow:0 10px 22px rgba(188,59,45,.28);}
.cnj-modal.is-standard .cnj-modal-panel{background:linear-gradient(160deg,#A8522A,#8f4522);} .cnj-modal.is-standard .cnj-mbtn-primary{background:var(--terracotta);}
@media(max-width:640px){
  .cnj-modal{flex-direction:column;width:400px;border-radius:28px;text-align:center;}
  .cnj-modal-panel{width:auto;padding:28px 0 0;}
  .cnj-modal-panel::before{display:none;}
  .cnj-modal-panel>span{width:60px;height:60px;border-radius:50%;}
  .cnj-modal.is-danger   .cnj-modal-panel{background:none;color:#BC3B2D;} .cnj-modal.is-danger   .cnj-modal-panel>span{background:#F8E7E2;}
  .cnj-modal.is-standard .cnj-modal-panel{background:none;color:var(--terracotta);} .cnj-modal.is-standard .cnj-modal-panel>span{background:#F3E3D8;}
  .cnj-modal-main{padding:16px 24px 24px;}
  .cnj-modal-actions{flex-direction:column-reverse;gap:9px;}
  .cnj-mbtn{width:100%;height:48px;border-radius:14px;}
}

/* ---------- Bandeaux (x-alert) ---------- */
.cnj-alert{display:flex;align-items:stretch;border-radius:14px;overflow:hidden;border:1px solid;margin:0 0 14px;}
.cnj-alert-accent{width:6px;flex-shrink:0;}
.cnj-alert-in{display:flex;align-items:center;gap:11px;padding:13px 16px;flex:1;font-size:13.5px;line-height:1.45;}
.cnj-alert-in a{margin-left:auto;font-weight:700;white-space:nowrap;text-decoration:none;}
.cnj-alert.is-ok  {background:#EAF0E1;border-color:#cdddb8;color:#3f4f2c;} .cnj-alert.is-ok   .cnj-alert-accent{background:#5C7040;}
.cnj-alert.is-err {background:#F8E7E2;border-color:#eec4bc;color:#8f2e22;} .cnj-alert.is-err  .cnj-alert-accent{background:#BC3B2D;}
.cnj-alert.is-warn{background:#F6EAD0;border-color:#e6cf92;color:#8a6b1f;} .cnj-alert.is-warn .cnj-alert-accent{background:#C8A04A;}
.cnj-alert.is-info{background:#E4EEF0;border-color:#c2dadf;color:#2f5561;} .cnj-alert.is-info .cnj-alert-accent{background:#3E6B7A;}

/* ---------- Validation de champs ---------- */
.input.is-error,.select.is-error,textarea.is-error{border-color:#BC3B2D !important;background:#F8E7E2;box-shadow:0 0 0 3px rgba(188,59,45,.10);}
.cnj-field-err{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#BC3B2D;margin-top:6px;font-weight:600;}

/* ---------- Case à cocher en erreur ---------- */
.cnj-check-err > span{color:#8f2e22;}
.cnj-check-err input[type=checkbox]{accent-color:#BC3B2D;outline:2px solid rgba(188,59,45,.35);outline-offset:2px;border-radius:4px;}

/* ---------- Pagination ---------- */
.cnj-pagination{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.cnj-page{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:36px;height:36px;padding:0 11px;border-radius:10px;border:1px solid var(--line-strong);background:#fff;color:var(--bark-soft);font-size:13.5px;font-weight:600;font-family:var(--font-body);text-decoration:none;transition:background .15s,border-color .15s,color .15s;}
.cnj-page:hover{background:var(--surface-2);border-color:var(--bark-mute);color:var(--ink);}
.cnj-page.is-active{background:var(--terracotta);border-color:var(--terracotta);color:#fff;box-shadow:0 6px 14px rgba(168,82,42,.22);}
.cnj-page.is-active:hover{background:var(--terracotta);color:#fff;}
.cnj-page.is-disabled{opacity:.4;pointer-events:none;}
.cnj-page.is-dots{border:none;background:none;min-width:20px;padding:0;color:var(--bark-mute);}

/* ---------- Omnisearch (Ctrl+K) ---------- */
.omni-item{display:flex;align-items:center;gap:11px;padding:9px 16px;text-decoration:none;color:var(--ink);}
.omni-item:hover,.omni-item.is-sel{background:var(--terracotta-soft,#F3E3D8);}
.omni-av{width:34px;height:34px;border-radius:50%;background:var(--clay);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:12px;flex-shrink:0;}
.omni-badge{border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;white-space:nowrap;}
.omni-act{width:28px;height:28px;border-radius:8px;border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:13px;text-decoration:none;background:#fff;}
.omni-act:hover{background:var(--surface-2);}

/* ---------- Bouton WhatsApp ---------- */
.btn-wa{display:inline-flex;align-items:center;gap:7px;background:#25D366;color:#fff !important;border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:800;text-decoration:none;box-shadow:0 6px 14px rgba(37,211,102,.28);}
.btn-wa svg{flex-shrink:0;}
.btn-wa.btn-wa-ico{width:30px;height:30px;padding:0;justify-content:center;border-radius:8px;}

/* ===== Grilles utilitaires (vague 1) ===== */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
@media (max-width:980px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}
