/* ════════════════════════════════════════════════════════
   ACM SUITE — Frontend Styles
   Palette : Navy #1a2a4a | Orange #e8820c | Fond #f4f6fa
════════════════════════════════════════════════════════ */
:root{
  --acm-navy:#1a2a4a;
  --acm-navy2:#213260;
  --acm-orange:#e8820c;
  --acm-orange2:#f59520;
  --acm-white:#fff;
  --acm-light:#f4f6fa;
  --acm-mid:#e8ecf3;
  --acm-border:#d8e0ed;
  --acm-text:#2c3a50;
  --acm-muted:#7a8aa0;
  --acm-green:#2a9d4e;
  --acm-shadow:0 4px 24px rgba(26,42,74,.12);
}

/* ─── VEHICLE DATABASE ─── */
.acm-vdb-wrap{font-family:'Open Sans',sans-serif;color:var(--acm-text);background:var(--acm-white);border:1.5px solid var(--acm-border);border-radius:10px;overflow:hidden}
.acm-vdb-toolbar{display:flex;gap:10px;flex-wrap:wrap;padding:18px 18px 0;background:var(--acm-light)}
.acm-vdb-tools{display:flex;gap:8px;flex-wrap:wrap;padding:12px 18px;background:var(--acm-light);border-bottom:1px solid var(--acm-border)}
.acm-tool-btn{font-size:12.5px;font-weight:600;border:1.5px solid var(--acm-border);background:var(--acm-white);color:var(--acm-muted);border-radius:100px;padding:7px 16px;cursor:pointer;display:flex;align-items:center;gap:7px;transition:all .18s}
.acm-tool-btn:hover,.acm-tool-btn.active{background:var(--acm-navy);color:#fff;border-color:var(--acm-navy)}
.acm-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.acm-dot-autel{background:#f97316}.acm-dot-xhorse{background:#22d3ee}.acm-dot-avdi{background:#a78bfa}
.acm-vdb-table-wrap{overflow-x:auto}
.acm-vdb-table{width:100%;border-collapse:collapse;min-width:700px;font-size:13.5px}
.acm-vdb-table thead{background:var(--acm-navy)}
.acm-vdb-table th{color:rgba(255,255,255,.82);font-size:11.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:12px 14px;text-align:left;white-space:nowrap}
.acm-vdb-table tbody tr{border-bottom:1px solid var(--acm-mid);transition:background .12s}
.acm-vdb-table tbody tr:hover{background:var(--acm-light)}
.acm-vdb-table td{padding:11px 14px;vertical-align:middle}
.acm-vdb-table td:first-child{font-weight:700}
.acm-tool-yes{color:var(--acm-green);font-weight:700;font-size:15px}
.acm-tool-no{color:#ccc;font-size:15px}
.acm-tool-tag{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:5px;margin:2px}
.acm-tag-autel{background:rgba(249,115,22,.12);color:#c45e07;border:1px solid rgba(249,115,22,.25)}
.acm-tag-xhorse{background:rgba(34,211,238,.1);color:#0284a3;border:1px solid rgba(34,211,238,.2)}
.acm-tag-avdi{background:rgba(167,139,250,.12);color:#6d28d9;border:1px solid rgba(167,139,250,.25)}
.acm-price-tag{font-family:monospace;font-size:13px;font-weight:700;color:var(--acm-orange);white-space:nowrap}
.acm-price-devis{font-size:12px;font-style:italic;color:var(--acm-muted);white-space:nowrap}
.acm-promo-badge{display:inline-block;background:#e53e3e;color:#fff;font-size:9px;font-weight:800;letter-spacing:.05em;padding:1px 6px;border-radius:4px;vertical-align:middle}
.acm-start-badge{display:inline-block;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:5px;white-space:nowrap}
.acm-start-meca{background:rgba(122,138,160,.15);color:#5a6b85;border:1px solid rgba(122,138,160,.3)}
.acm-start-ml{background:rgba(42,157,78,.12);color:#1e7a3a;border:1px solid rgba(42,157,78,.3)}
.acm-start-both{background:rgba(232,130,12,.12);color:#c45e07;border:1px solid rgba(232,130,12,.3)}
.acm-vdb-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--acm-light);border-top:1px solid var(--acm-border);flex-wrap:wrap;gap:8px}
.acm-vdb-info{font-size:13px;color:var(--acm-muted)}
.acm-vdb-pages{display:flex;gap:5px;flex-wrap:wrap}
.acm-page-btn{background:var(--acm-white);border:1px solid var(--acm-border);color:var(--acm-text);font-size:13px;padding:6px 12px;border-radius:6px;cursor:pointer;transition:all .15s}
.acm-page-btn:hover{border-color:var(--acm-orange);color:var(--acm-orange)}
.acm-page-btn.active{background:var(--acm-orange);border-color:var(--acm-orange);color:#fff}
.acm-loading{text-align:center;padding:40px;color:var(--acm-muted);font-style:italic}

/* Search / Select */
.acm-input,.acm-select{background:var(--acm-white);border:1.5px solid var(--acm-border);color:var(--acm-text);font-size:14px;padding:9px 12px;border-radius:8px;outline:none;transition:border-color .18s;width:100%}
.acm-input:focus,.acm-select:focus{border-color:var(--acm-orange)}
.acm-vdb-search-wrap{position:relative;flex:1;min-width:180px;max-width:320px}
.acm-vdb-search-wrap .acm-ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--acm-muted);pointer-events:none}
.acm-vdb-search-wrap .acm-input{padding-left:38px}

/* ─── TARIFS ─── */
.acm-tarifs-wrap{font-family:'Open Sans',sans-serif;color:var(--acm-text)}
.acm-tarifs-hero{background:linear-gradient(135deg,var(--acm-navy) 0%,var(--acm-navy2) 60%,#2a4a8a 100%);color:#fff;text-align:center;padding:48px 24px 40px;border-radius:10px 10px 0 0;position:relative;overflow:hidden}
.acm-tarifs-hero::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 40px,rgba(255,255,255,.015) 40px,rgba(255,255,255,.015) 80px);pointer-events:none}
.acm-hero-badge{display:inline-block;background:var(--acm-orange);color:#fff;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 14px;border-radius:3px;margin-bottom:14px;position:relative}
.acm-hero-title{font-size:clamp(24px,4vw,40px);font-weight:800;margin:0 0 10px;letter-spacing:-.01em;position:relative}
.acm-hero-sub{color:rgba(255,255,255,.7);font-size:14px;max-width:550px;margin:0 auto 20px;position:relative}
.acm-hero-pills{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;position:relative}
.acm-hero-pill{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:100px;padding:5px 14px;font-size:12.5px;color:rgba(255,255,255,.88)}
.acm-tarifs-tabs{display:flex;gap:0;background:var(--acm-white);border-bottom:2px solid var(--acm-border);overflow-x:auto;scrollbar-width:none}
.acm-tarifs-tabs::-webkit-scrollbar{display:none}
.acm-tarifs-tab{font-size:13.5px;font-weight:700;color:var(--acm-muted);background:none;border:none;border-bottom:3px solid transparent;padding:15px 20px 12px;cursor:pointer;white-space:nowrap;transition:all .18s;margin-bottom:-2px}
.acm-tarifs-tab:hover{color:var(--acm-navy)}
.acm-tarifs-tab.active{color:var(--acm-orange);border-bottom-color:var(--acm-orange)}
.acm-tarifs-section{display:none;padding:28px 0}
.acm-tarifs-section.active{display:block}
.acm-promo-bar{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,var(--acm-orange),var(--acm-orange2));color:#fff;border-radius:8px;padding:18px 22px;margin-bottom:24px;flex-wrap:wrap}
.acm-promo-icon{font-size:28px;flex-shrink:0}
.acm-promo-bar>div{flex:1;min-width:160px;font-size:13.5px}
.acm-promo-bar strong{font-size:15px}
.acm-promo-bar small{color:rgba(255,255,255,.85)}
.acm-price-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}
.acm-grid-2{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.acm-price-card{background:var(--acm-white);border:1.5px solid var(--acm-border);border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;flex-direction:column}
.acm-price-card:hover{transform:translateY(-3px);box-shadow:var(--acm-shadow);border-color:var(--acm-orange)}
.acm-card-featured{border-color:var(--acm-orange);box-shadow:0 0 0 2px rgba(232,130,12,.12)}
.acm-card-head{background:var(--acm-navy);color:#fff;padding:15px 18px;display:flex;align-items:flex-start;gap:10px}
.acm-card-icon{font-size:20px;flex-shrink:0;margin-top:1px}
.acm-card-head-text{flex:1}
.acm-card-title{font-weight:700;font-size:14px;letter-spacing:.02em}
.acm-card-subtitle{font-size:11px;color:rgba(255,255,255,.5);margin-top:2px}
.acm-card-price-block{text-align:right;flex-shrink:0}
.acm-card-price{font-size:24px;font-weight:800;color:var(--acm-orange2);line-height:1}
.acm-card-price sup{font-size:13px;vertical-align:top;margin-top:3px}
.acm-card-price-lbl{font-size:10px;color:rgba(255,255,255,.45);text-align:right;margin-top:2px}
.acm-card-body{padding:14px 18px;flex:1}
.acm-card-features{list-style:none;display:flex;flex-direction:column;gap:7px}
.acm-card-features li{font-size:13px;padding-left:18px;position:relative;color:var(--acm-text);line-height:1.4}
.acm-card-features li::before{content:'✓';position:absolute;left:0;color:var(--acm-green);font-weight:700}
.acm-card-features li:nth-child(n+4)::before{content:'⚠';color:var(--acm-orange)}
.acm-card-foot{padding:11px 18px 14px;border-top:1px solid var(--acm-mid);display:flex;align-items:center;justify-content:space-between;gap:8px}
.acm-delay{font-size:12px;color:var(--acm-muted)}
.acm-price-table{width:100%;border-collapse:collapse;background:var(--acm-white);border:1.5px solid var(--acm-border);border-radius:8px;overflow:hidden;margin-top:4px}
.acm-price-table thead{background:var(--acm-navy)}
.acm-price-table th{color:rgba(255,255,255,.82);font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:12px 16px;text-align:left}
.acm-price-table td{padding:11px 16px;font-size:13.5px;border-bottom:1px solid var(--acm-mid)}
.acm-price-table tbody tr:last-child td{border-bottom:none}
.acm-price-table tbody tr:hover{background:var(--acm-light)}
.acm-price-table td small{display:block;color:var(--acm-muted);font-size:11.5px;margin-top:2px}
.acm-price-val{font-family:monospace;font-size:14px;font-weight:700;color:var(--acm-orange);white-space:nowrap}
.acm-note-box{background:#fff8f0;border:1.5px solid rgba(232,130,12,.25);border-left:4px solid var(--acm-orange);border-radius:6px;padding:13px 16px;font-size:13px;color:#7a4800;margin-top:20px}
.acm-urgence-block{background:var(--acm-navy);color:#fff;border-radius:10px;padding:26px 30px;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;margin-top:28px}
.acm-urgence-title{font-size:20px;font-weight:800;margin-bottom:6px}
.acm-urgence-title span{color:var(--acm-orange)}
.acm-urgence-block p{color:rgba(255,255,255,.65);font-size:13px;margin-bottom:12px}
.acm-urgence-zones{display:flex;flex-wrap:wrap;gap:7px}
.acm-urgence-zones span{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:5px 12px;font-size:12.5px}
.acm-urgence-phones{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.acm-urgence-phone{font-family:monospace;font-size:18px;font-weight:700;color:var(--acm-orange2);text-decoration:none;white-space:nowrap}
.acm-urgence-phone small{display:block;font-size:10px;color:rgba(255,255,255,.45);text-align:right;font-family:'Open Sans',sans-serif;font-weight:400}

/* Button styles */
.acm-btn-sm{display:inline-block;font-size:12.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:8px 16px;border-radius:5px;text-decoration:none;border:none;cursor:pointer;transition:all .18s;white-space:nowrap;flex-shrink:0}
.acm-btn-orange{background:var(--acm-orange);color:#fff}
.acm-btn-orange:hover{background:var(--acm-navy);color:#fff}
.acm-btn-white{background:#fff;color:var(--acm-orange)}
.acm-btn-white:hover{background:var(--acm-navy);color:#fff}

/* ─── VEHICLE LOOKUP ─── */
.acm-lookup-wrap{font-family:'Open Sans',sans-serif;max-width:520px;border-radius:12px;overflow:hidden;margin:0 auto 1.5em}
.acm-theme-dark{background:#111318;border:1px solid #252830;color:#e8eaf0}
.acm-theme-light{background:#fff;border:1.5px solid var(--acm-border);color:var(--acm-text)}
.acm-lookup-title{background:var(--acm-navy);color:#fff;margin:0;padding:16px 20px;font-size:15px;font-weight:700}
.acm-lookup-tabs{display:flex;border-bottom:1px solid;border-color:rgba(255,255,255,.1)}
.acm-theme-light .acm-lookup-tabs{border-color:var(--acm-border)}
.acm-lookup-tab{flex:1;padding:13px 10px;font-size:12.5px;font-weight:700;cursor:pointer;border:none;background:transparent;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .18s;position:relative;color:var(--acm-muted)}
.acm-lookup-tab.active{color:var(--acm-orange)}
.acm-lookup-tab.active::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--acm-orange);border-radius:2px 2px 0 0}
.acm-lookup-panel{display:none;padding:18px 20px 8px}
.acm-lookup-panel.active{display:block}
.acm-lookup-row{display:flex;gap:10px;align-items:flex-end}
.acm-lookup-field{display:flex;flex-direction:column;gap:5px;width:100%}
.acm-lookup-field-wide{flex:2}
.acm-lookup-label{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--acm-muted)}
.acm-plate-input-wrap{display:flex;align-items:stretch;border-radius:8px;overflow:hidden;border:1.5px solid var(--acm-border);transition:border-color .18s}
.acm-theme-dark .acm-plate-input-wrap{border-color:#252830}
.acm-plate-input-wrap:focus-within{border-color:var(--acm-orange)}
.acm-plate-eu{background:#003399;color:#fff;padding:0 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:38px;flex-shrink:0}
.acm-plate-eu-stars{font-size:7px;letter-spacing:1px}
.acm-plate-eu-text{font-size:11px;font-weight:800;letter-spacing:.05em}
.acm-plate-field{flex:1;padding:11px 12px;border:none;font-size:16px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;outline:none;background:transparent;color:inherit}
.acm-theme-dark .acm-plate-field{background:#1a1d25;color:#f8fafc}
.acm-theme-light .acm-plate-field{background:#f8fafc}
.acm-vin-field{font-size:15px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:11px 14px;border-radius:8px;width:100%}
.acm-vin-bar{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--acm-muted);margin-top:4px;padding:0 2px}
.acm-lookup-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:calc(100% - 0px);margin:14px 20px 18px;padding:12px;background:linear-gradient(135deg,var(--acm-orange),var(--acm-orange2));color:#fff;border:none;border-radius:8px;font-size:14.5px;font-weight:700;cursor:pointer;transition:all .2s;letter-spacing:.02em}
.acm-lookup-btn:hover{transform:translateY(-1px);box-shadow:0 4px 18px rgba(232,130,12,.3)}
.acm-lookup-loader{display:none;align-items:center;justify-content:center;gap:12px;padding:20px;font-size:13.5px;color:var(--acm-muted)}
.acm-spinner{width:18px;height:18px;border:2px solid rgba(232,130,12,.2);border-top-color:var(--acm-orange);border-radius:50%;animation:acm-spin .7s linear infinite;flex-shrink:0}
@keyframes acm-spin{to{transform:rotate(360deg)}}
.acm-lookup-result{padding:0 20px 20px;animation:acm-fadein .3s ease}
@keyframes acm-fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.acm-result-card{background:var(--acm-light);border:1.5px solid var(--acm-border);border-radius:10px;padding:16px 18px}
.acm-theme-dark .acm-result-card{background:#1a1d25;border-color:#252830}
.acm-result-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:8px}
.acm-result-title{font-size:18px;font-weight:800;letter-spacing:-.01em}
.acm-source-badge{font-size:10px;font-weight:700;letter-spacing:.07em;padding:3px 10px;border-radius:100px;background:rgba(232,130,12,.15);color:var(--acm-orange);white-space:nowrap}
.acm-result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.acm-result-field{display:flex;flex-direction:column;gap:2px}
.acm-field-lbl{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--acm-muted)}
.acm-field-val{font-size:13.5px;font-weight:600}
.acm-result-note{margin-top:12px;padding:9px 14px;border-radius:7px;font-size:12px;background:rgba(232,130,12,.08);border:1px solid rgba(232,130,12,.2);color:#7a4800}
.acm-theme-dark .acm-result-note{color:#fbbf24}
.acm-error-card{background:rgba(239,68,68,.08);border:1.5px solid rgba(239,68,68,.2);border-radius:8px;padding:14px 16px;display:flex;gap:10px;font-size:13px;color:#dc2626}

/* ─── CHATBOT ─── */
.acm-chatbot-btn{position:fixed;bottom:28px;right:28px;z-index:9999;width:60px;height:60px;background:linear-gradient(135deg,#d6121a,#9e0d13);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 20px rgba(214,18,26,.4);transition:transform .2s}
.acm-chatbot-btn:hover{transform:scale(1.08)}
.acm-chatbot-btn-ico{font-size:26px;line-height:1}
.acm-emoji-img{display:block;pointer-events:none;-webkit-user-select:none;user-select:none}
.acm-chatbot-btn-ico .acm-emoji-img{width:26px;height:26px}
.acm-chat-avatar .acm-emoji-img{width:18px;height:18px}
.acm-chatbot-btn-ico .acm-emoji-img.acm-face{width:var(--acm-face,40px);height:var(--acm-face,40px);max-width:60px;max-height:60px;border-radius:50%}
.acm-chat-avatar .acm-emoji-img.acm-face{width:24px;height:24px;border-radius:50%}
.acm-chatbot-btn-notif{position:absolute;top:-4px;right:-4px;background:#e53e3e;color:#fff;width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #fff;animation:acm-pulse 2s ease infinite}
@keyframes acm-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
.acm-chatbot-btn-notif.hidden{display:none}
.acm-chatbot-window{position:fixed;bottom:100px;right:28px;z-index:9998;width:360px;max-width:calc(100vw - 40px);background:#fff;border-radius:22px;box-shadow:0 8px 40px rgba(0,0,0,.18);display:none;flex-direction:column;overflow:hidden;max-height:520px}
.acm-chatbot-window.open{display:flex}
.acm-chat-header{background:linear-gradient(135deg,var(--acm-navy),var(--acm-navy2));color:#fff;padding:14px 16px;display:flex;align-items:center;justify-content:space-between}
.acm-chat-agent{display:flex;align-items:center;gap:12px}
.acm-chat-avatar{width:38px;height:38px;border-radius:50%;background:var(--acm-orange);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.acm-chat-agent-name{font-weight:700;font-size:14px}
.acm-chat-status{font-size:11px;color:rgba(255,255,255,.65);display:flex;align-items:center;gap:5px;margin-top:2px}
.acm-online-dot{width:7px;height:7px;border-radius:50%;background:#4ade80;flex-shrink:0}
.acm-chat-close{background:none;border:none;color:rgba(255,255,255,.7);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;line-height:1;transition:color .15s}
.acm-chat-close:hover{color:#fff}
.acm-chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--acm-light);scrollbar-width:thin}
.acm-chat-msg{display:flex;flex-direction:column;gap:4px}
.acm-msg-bot .acm-msg-bubble{background:#fff;border:1px solid var(--acm-border);border-radius:0 12px 12px 12px;padding:10px 14px;font-size:13.5px;line-height:1.55;color:var(--acm-text);max-width:90%;align-self:flex-start;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.acm-msg-user .acm-msg-bubble{background:linear-gradient(135deg,var(--acm-orange),var(--acm-orange2));color:#fff;border-radius:12px 12px 0 12px;padding:10px 14px;font-size:13.5px;max-width:90%;align-self:flex-end}
.acm-msg-bot{align-items:flex-start}.acm-msg-user{align-items:flex-end}
.acm-msg-time{font-size:10px;color:var(--acm-muted)}
.acm-chat-typing{display:none;padding:0 16px 8px;align-items:center;gap:4px;background:var(--acm-light)}
.acm-chat-typing span{width:7px;height:7px;border-radius:50%;background:var(--acm-muted);animation:acm-typing 1.2s ease infinite}
.acm-chat-typing span:nth-child(2){animation-delay:.2s}
.acm-chat-typing span:nth-child(3){animation-delay:.4s}
@keyframes acm-typing{0%,80%,100%{transform:scale(.7);opacity:.4}40%{transform:scale(1);opacity:1}}
.acm-chat-input-wrap{display:flex;align-items:center;gap:8px;padding:12px 14px;background:#fff;border-top:1px solid var(--acm-border);min-width:0;flex-wrap:nowrap}
.acm-chat-input{flex:1 1 auto;min-width:0;border:1.5px solid var(--acm-border);border-radius:22px;padding:9px 16px;font-size:14px;outline:none;transition:border-color .18s;color:var(--acm-text)}
.acm-chat-input:focus{border-color:var(--acm-orange)}
.acm-chat-send{background:var(--acm-orange);color:#fff;border:none;border-radius:19px;min-width:38px;height:38px;padding:0 15px;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:13px;font-weight:700;line-height:1;transition:background .18s,transform .1s}
.acm-chat-send:hover{background:var(--acm-navy)}
.acm-chat-send:active{transform:scale(.96)}
.acm-chat-send-label{white-space:nowrap}
@media (max-width:380px){.acm-chat-send-label{display:none}.acm-chat-send{min-width:38px;width:38px;padding:0;border-radius:50%}}
.acm-chat-footer{display:flex;gap:8px;padding:8px 14px 12px;background:#fff}
.acm-chat-quick-btn{flex:1;text-align:center;background:var(--acm-light);border:1px solid var(--acm-border);border-radius:6px;padding:7px;font-size:12px;font-weight:600;color:var(--acm-text);text-decoration:none;transition:all .15s}
.acm-chat-quick-btn:hover{background:var(--acm-navy);color:#fff;border-color:var(--acm-navy)}
.acm-chat-footer .acm-chat-info{font-size:11px;color:var(--acm-muted);background:var(--acm-light);border:1px solid var(--acm-border);cursor:default;text-align:center;line-height:1.3}
.acm-chat-footer .acm-chat-info:hover{background:var(--acm-light);color:var(--acm-muted);border-color:var(--acm-border)}

/* Quick-reply chips in welcome message */
.acm-quick-replies{display:flex;flex-direction:column;gap:7px;margin-top:10px;align-self:flex-start;max-width:92%}
.acm-quick-reply{text-align:left;background:#fff;border:1.5px solid var(--acm-orange);color:var(--acm-navy);border-radius:10px;padding:9px 13px;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;font-family:inherit;line-height:1.3}
.acm-quick-reply:hover{background:var(--acm-orange);color:#fff}
.acm-quick-reply:active{transform:scale(.97)}

@media(max-width:600px){
  .acm-chatbot-window{bottom:90px;right:12px;width:calc(100vw - 24px)}
  .acm-urgence-block{grid-template-columns:1fr}
  .acm-urgence-phones{align-items:flex-start}
  .acm-price-grid,.acm-grid-2{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════
   CHATBOT — Thème ROUGE & NOIR (site Auto Clés Minutes)
   Override des couleurs uniquement pour le chatbot
═══════════════════════════════════════════════ */
:root{
  --acm-red:#d6121a;
  --acm-red2:#a60d14;
  --acm-black:#161616;
  --acm-black2:#242424;
}
/* Bouton flottant — rouge plus clair/vif */
.acm-chatbot-btn{background:linear-gradient(135deg,#d6121a,#9e0d13)!important;box-shadow:0 4px 20px rgba(214,18,26,.5)!important}
/* Options de navigation GPS */
.acm-nav-toggle{cursor:pointer;border:1px solid var(--acm-red)!important;color:var(--acm-black)!important;background:#fff!important;font-weight:600}
.acm-nav-toggle:hover{background:var(--acm-red)!important;color:#fff!important}
.acm-nav-options{display:flex;gap:6px;flex-wrap:wrap;width:100%;margin-top:6px;justify-content:center}
.acm-nav-link{flex:1;min-width:90px;text-align:center;font-size:12px;font-weight:600;padding:7px 8px;border-radius:8px;text-decoration:none;color:#fff;background:var(--acm-black);transition:.15s}
.acm-nav-link:hover{background:var(--acm-red)}
/* En-tête */
.acm-chat-header{background:linear-gradient(135deg,var(--acm-black),var(--acm-black2))!important}
.acm-chat-avatar{background:var(--acm-red)!important}
/* Bulles client */
.acm-msg-user .acm-msg-bubble{background:linear-gradient(135deg,var(--acm-red),var(--acm-red2))!important}
/* Bouton envoyer */
.acm-chat-send{background:var(--acm-red)!important}
.acm-chat-send:hover{background:var(--acm-black)!important}
/* Champ focus */
.acm-chat-input:focus{border-color:var(--acm-red)!important}
/* Boutons de réponse rapide */
.acm-quick-reply{border-color:var(--acm-red)!important;color:var(--acm-black)!important}
.acm-quick-reply:hover{background:var(--acm-red)!important;color:#fff!important}
/* Badge BÊTA */

/* ═══ v1.5.0 — Footer GPS (logos), survol blanc, animation bulle ═══ */
/* Liens GPS : icône + libellé, texte TOUJOURS blanc (même au survol) */
.acm-nav-link{display:flex;align-items:center;justify-content:center;gap:6px}
.acm-nav-link,.acm-nav-link:link,.acm-nav-link:visited{color:#fff!important}
.acm-nav-link:hover,.acm-nav-link:focus,.acm-nav-link:active{color:#fff!important}
.acm-nav-link:hover{background:var(--acm-red)!important}
.acm-nav-ico{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}
.acm-nav-ico svg{display:block}
/* le fond blanc des icônes reste lisible sur fond rouge au survol */
.acm-nav-link:hover .acm-nav-ico svg rect[fill="#5BC8FA"]{filter:none}

/* Animation d'appel sur la bulle flottante : rebond + léger balancement + halo qui respire (attire le client vers le chat) */
.acm-chatbot-btn{animation:acm-attract 2.6s ease-in-out infinite;transform-origin:center}
.acm-chatbot-btn:hover{animation:none}
@keyframes acm-attract{
  0%,58%,100%{transform:translateY(0) scale(1) rotate(0)}
  8%{transform:translateY(-9px) scale(1.07) rotate(-4deg)}
  16%{transform:translateY(0) scale(1.02) rotate(4deg)}
  24%{transform:translateY(-5px) scale(1.04) rotate(-2deg)}
  32%{transform:translateY(0) scale(1) rotate(0)}
}
.acm-chatbot-btn::after{
  content:"";position:absolute;inset:-5px;border-radius:50%;
  border:3px solid rgba(255,77,84,.6);animation:acm-ring 2.6s ease-out infinite;pointer-events:none
}
@keyframes acm-ring{
  0%{transform:scale(1);opacity:.8}
  70%{transform:scale(1.6);opacity:0}
  100%{transform:scale(1.6);opacity:0}
}
/* Accessibilité : si l'appareil demande moins d'animations, on garde un halo doux (opacité seule, sans mouvement) */
@media(prefers-reduced-motion:reduce){
  .acm-chatbot-btn{animation:none}
  .acm-chatbot-btn::after{animation:acm-ring-soft 2.8s ease-in-out infinite;transform:none;inset:-3px}
}
@keyframes acm-ring-soft{0%,100%{opacity:.15}50%{opacity:.7}}

/* ═══ v1.7.2 — Label « Assistant IA » au-dessus de la bulle ═══ */
.acm-chatbot-btn-label{
  position:absolute;bottom:calc(100% + 9px);right:2px;
  background:#d6121a;color:#fff;
  font-size:12px;font-weight:700;letter-spacing:.02em;
  padding:5px 11px;border-radius:10px;white-space:nowrap;
  box-shadow:0 3px 10px rgba(0,0,0,.25);pointer-events:none
}
.acm-chatbot-btn-label::after{
  content:"";position:absolute;top:100%;right:20px;
  border:5px solid transparent;border-top-color:#d6121a
}
/* fenêtre conversationnelle : coins bien arrondis */
.acm-chatbot-window{border-radius:22px}
.acm-chat-header{border-top-left-radius:22px;border-top-right-radius:22px}

/* ═══ v1.10.0 — 5 propositions visibles, avatar animé ═══ */
/* Fenêtre plus haute + propositions toutes visibles sans scroll initial */
.acm-chatbot-window{max-height:min(640px,calc(100vh - 110px))!important}
.acm-quick-replies{gap:6px}
.acm-quick-reply{padding:8px 12px;font-size:12.5px}
/* Avatar "animé" : léger balancement continu (bulle + en-tête) */
@keyframes acm-ava{0%,100%{transform:rotate(0) scale(1)}25%{transform:rotate(-6deg) scale(1.06)}75%{transform:rotate(6deg) scale(1.06)}}
.acm-chatbot-btn-ico{animation:acm-ava 2.8s ease-in-out infinite;display:inline-block}
.acm-chat-avatar{animation:acm-ava 2.8s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.acm-chatbot-btn-ico,.acm-chat-avatar{animation:none}}

/* ═══ v1.13.2 — puces compactes (6 propositions visibles) + liens cliquables ═══ */
.acm-quick-replies{gap:5px}
.acm-quick-reply{padding:6px 10px!important;font-size:12px!important;line-height:1.25}
.acm-msg-bubble a{color:inherit;text-decoration:underline;font-weight:600}

/* ═══ v1.20.0 — bouton géolocalisation ═══ */
.acm-chat-geo{flex:0 0 auto;width:38px;height:38px;border:none;border-radius:50%;background:#f0f0f3;cursor:pointer;font-size:17px;line-height:1;margin-right:6px;transition:background .15s}
.acm-chat-geo:hover{background:#e2e2ea}

/* ═══ Mobile : chatbot en PLEIN ÉCRAN à l'ouverture (optimise le rendu) ═══ */
@media (max-width:600px){
  .acm-chatbot-window.open{
    position:fixed!important;
    top:var(--acm-vvt,0px)!important;left:0!important;right:0!important;bottom:auto!important; /* suit le décalage iOS (clavier) */
    width:100vw!important;max-width:100vw!important;
    /* hauteur = zone RÉELLEMENT visible : 100vh (secours) → 100dvh (barre Safari) → --acm-vvh (JS, suit le clavier) */
    height:100vh!important;
    height:100dvh!important;
    height:var(--acm-vvh,100dvh)!important;
    max-height:none!important;min-height:0!important;
    border-radius:0!important;
    padding-top:env(safe-area-inset-top,0px); /* encoche iPhone */
    box-sizing:border-box;
  }
  .acm-chatbot-window.open .acm-chat-messages{flex:1 1 auto;min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  /* barre de saisie + pied collés au-dessus du clavier / de la barre du bas */
  .acm-chatbot-window.open .acm-chat-input-wrap{padding-bottom:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .acm-chatbot-window.open .acm-chat-input{font-size:16px!important} /* ≥ 16 px : empêche le zoom automatique d'iOS Safari sur le champ */
  .acm-chatbot-window.open .acm-chat-footer{padding-bottom:12px;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  /* la bulle passe en arrière-plan (masquée) tant que le chat est ouvert, pour ne pas gêner */
  #acm-chatbot-btn.acm-bubble-hidden{display:none!important}

  /* Même emoji animé que sur PC, garanti sur mobile (bulle flottante + en-tête du chat) */
  .acm-chatbot-btn{animation:acm-attract 2.6s ease-in-out infinite!important}
  .acm-chatbot-btn-ico{font-size:26px!important;animation:acm-ava 2.8s ease-in-out infinite!important;display:inline-block}
  .acm-chat-avatar{font-size:18px;animation:acm-ava 2.8s ease-in-out infinite!important} /* = PC */
  .acm-chatbot-btn-ico .acm-emoji-img{width:26px!important;height:26px!important}
  .acm-chat-avatar .acm-emoji-img{width:18px!important;height:18px!important}
  .acm-chatbot-btn-ico .acm-emoji-img.acm-face{width:var(--acm-face,40px)!important;height:var(--acm-face,40px)!important;max-width:60px!important;max-height:60px!important}
  .acm-chat-avatar .acm-emoji-img.acm-face{width:24px!important;height:24px!important}
  .acm-chatbot-btn::after{animation:acm-ring 2.6s ease-out infinite!important;display:block!important}

  /* ── Bulles de messages : homogènes, lisibles, sans débordement ── */
  .acm-chat-messages{padding:14px 12px;gap:10px}
  .acm-chat-msg{min-width:0;max-width:100%}
  .acm-msg-bot .acm-msg-bubble,
  .acm-msg-user .acm-msg-bubble{
    font-size:15px!important;line-height:1.5!important;
    padding:11px 14px!important;max-width:85%!important;
    overflow-wrap:break-word;word-break:break-word;hyphens:auto;
  }
  .acm-msg-bubble a{word-break:break-all}
  .acm-msg-time{font-size:11px}
  /* Propositions rapides : même taille de texte, lisibles, repli sur plusieurs lignes si besoin */
  .acm-quick-replies{max-width:92%;gap:7px}
  .acm-quick-reply{
    font-size:14px!important;line-height:1.35!important;padding:10px 13px!important;
    white-space:normal;overflow-wrap:break-word;word-break:break-word;
  }
}

/* ── Carte RÉCAP (tunnel de vente : Copier + Envoyer par SMS) ── */
.acm-recap-card{background:#fff;border:1px solid var(--acm-border);border-left:4px solid var(--acm-red);border-radius:12px;padding:12px 14px;width:100%;max-width:100%;align-self:stretch;box-sizing:border-box;box-shadow:0 2px 8px rgba(0,0,0,.08);margin-top:2px}
.acm-recap-title{font-weight:800;font-size:13.5px;color:var(--acm-text);margin-bottom:8px}
.acm-recap-row{display:flex;gap:8px;font-size:13px;line-height:1.5;padding:2px 0;border-bottom:1px dashed #f0f0f0}
.acm-recap-row:last-of-type{border-bottom:none}
.acm-recap-lab{color:#777;min-width:96px;flex:0 0 auto}
.acm-recap-val{color:var(--acm-text);font-weight:600;overflow-wrap:anywhere}
.acm-recap-cta{font-weight:800;font-size:15px;color:#161616;text-align:center;margin:12px 0 8px;line-height:1.3}
.acm-recap-actions{display:flex;flex-direction:row;gap:8px;margin-top:0}
.acm-recap-sms,.acm-recap-copy,.acm-recap-mail,.acm-recap-photo,.acm-recap-wa{flex:1 1 0;min-width:0;box-sizing:border-box;margin:0;display:flex;align-items:center;justify-content:center;gap:4px;min-height:46px;padding:10px 12px;border-radius:10px;font-family:inherit;font-size:13.5px;font-weight:700;line-height:1.25;text-align:center;white-space:normal;cursor:pointer;text-decoration:none!important;border:none;-webkit-appearance:none;appearance:none;transition:filter .15s ease,transform .1s ease}
.acm-recap-sms,.acm-recap-mail,.acm-recap-photo{background:linear-gradient(135deg,var(--acm-red),var(--acm-red2));color:#fff!important}
.acm-recap-wa{background:#25D366;color:#fff!important}
.acm-recap-copy{background:#161616;color:#fff}
.acm-recap-sms:active,.acm-recap-copy:active,.acm-recap-mail:active,.acm-recap-photo:active,.acm-recap-wa:active{transform:scale(.98)}
.acm-recap-sms:hover,.acm-recap-copy:hover,.acm-recap-mail:hover,.acm-recap-photo:hover,.acm-recap-wa:hover{filter:brightness(1.07)}
.acm-recap-copy.copied{background:#1d8a3a}
.acm-recap-note{margin-top:10px;font-size:12px;color:#555;line-height:1.4;text-align:center;font-weight:700}
@media (max-width:600px){
  .acm-recap-sms,.acm-recap-copy,.acm-recap-mail,.acm-recap-photo,.acm-recap-wa{min-height:48px;font-size:14px}
}

/* ═══ v1.28.14 — verrou de la page derrière le chat plein écran (mobile) ═══ */
html.acm-chat-lock, html.acm-chat-lock body{overflow:hidden!important;height:100%!important;overscroll-behavior:none}

/* ── Support RTL (arabe) : la fenêtre passe en lecture droite→gauche ── */
.acm-chatbot-window[dir="rtl"] .acm-msg-bubble{text-align:right}
.acm-chatbot-window[dir="rtl"] .acm-recap-row{flex-direction:row-reverse}
.acm-chatbot-window[dir="rtl"] .acm-recap-lab{text-align:right}
.acm-chatbot-window[dir="rtl"] .acm-chat-input{text-align:right}
.acm-chatbot-window[dir="rtl"] .acm-quick-replies{direction:rtl}

/* Icône clé de voiture (télécommande) en ligne dans le texte */
.acm-key-ico{height:1em;width:auto;vertical-align:-0.15em;display:inline-block;margin:0 .04em}

/* ===== Assistant intégré dans une page : [acm_assistant] ===== */
.acm-embed{max-width:760px;margin:0 auto}
.acm-embed-title{font-size:18px;font-weight:800;color:#161616;margin:0 0 10px;text-align:center}
.acm-embed-frame{position:relative;height:var(--acm-embed-h,620px);border:1px solid var(--acm-border);border-radius:18px;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.10);background:#fff}
/* Le chat ancré dans le cadre : on neutralise le positionnement flottant */
.acm-chatbot-window.acm-embedded{position:absolute!important;inset:0!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;max-width:100%!important;height:100%!important;max-height:100%!important;transform:none!important;border-radius:18px!important;display:flex!important;box-shadow:none!important}
.acm-chatbot-window.acm-embedded .acm-chat-close{display:none!important} /* pas de croix de fermeture en intégré */
body.acm-embed-mode .acm-chatbot-btn{display:none!important}
@media (max-width:600px){
  .acm-embed-frame{height:78vh;min-height:520px}
  .acm-chatbot-window.acm-embedded{position:absolute!important}
}

/* ===== Fenêtre « Envoyer par photo » (PC) ===== */
.acm-photo-overlay{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:2147483600;display:flex;align-items:center;justify-content:center;padding:20px;animation:acmFade .15s ease}
@keyframes acmFade{from{opacity:0}to{opacity:1}}
.acm-photo-box{position:relative;background:#fff;border-radius:18px;max-width:540px;width:100%;max-height:92vh;overflow:auto;padding:26px 24px 22px;box-shadow:0 24px 70px rgba(0,0,0,.5);font-family:inherit}
.acm-photo-close{position:absolute;top:10px;right:12px;width:34px;height:34px;border:none;background:#f0f0f2;border-radius:50%;font-size:22px;line-height:1;color:#444;cursor:pointer}
.acm-photo-close:hover{background:#e3e3e6}
.acm-photo-head{font-size:19px;font-weight:800;color:#161616;margin:0 30px 4px 0}
.acm-photo-sub{font-size:13.5px;color:#555;line-height:1.5;margin-bottom:16px}
.acm-photo-recap{border:1px solid var(--acm-border);border-left:4px solid var(--acm-red);border-radius:12px;padding:14px 16px;margin-bottom:16px;background:#fff}
.acm-photo-recap .acm-recap-title{font-weight:800;font-size:15px;color:#161616;margin-bottom:10px}
.acm-photo-recap .acm-recap-row{display:flex;gap:8px;font-size:14.5px;line-height:1.6;padding:3px 0;border-bottom:1px dashed #f0f0f0}
.acm-photo-recap .acm-recap-row:last-child{border-bottom:none}
.acm-photo-recap .acm-recap-lab{color:#777;min-width:96px}
.acm-photo-recap .acm-recap-val{color:#161616;font-weight:600}
.acm-photo-contacts{display:flex;gap:10px;margin-bottom:14px}
.acm-photo-ct{flex:1;background:#faf3f3;border:1px solid #f0dcdc;border-radius:10px;padding:10px 12px;text-align:center}
.acm-photo-ct span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#9e0d13;font-weight:700;margin-bottom:2px}
.acm-photo-ct strong{font-size:15px;color:#161616}
.acm-photo-mail{display:flex;align-items:center;justify-content:center;min-height:46px;background:linear-gradient(135deg,var(--acm-red),var(--acm-red2));color:#fff!important;border-radius:10px;font-weight:700;font-size:14px;text-decoration:none!important;margin-bottom:12px}
.acm-photo-mail:hover{filter:brightness(1.07)}
.acm-photo-tip{font-size:12px;color:#888;line-height:1.5;background:#f7f7f8;border-radius:8px;padding:9px 11px}
@media (max-width:600px){ .acm-photo-contacts{flex-direction:column} }

/* QR + e-mail dans la fenêtre photo, et toast */
.acm-photo-row{display:flex;gap:14px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.acm-photo-row .acm-photo-mail{flex:1;margin-bottom:0;min-width:210px}
.acm-photo-qr{flex:0 0 auto;text-align:center;font-size:11px;color:#777;line-height:1.3}
.acm-photo-qr-img{width:96px;height:96px;margin-bottom:4px}
.acm-photo-qr-img svg{display:block;width:100%;height:100%;border:1px solid #eee;border-radius:8px}
.acm-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(12px);background:#161616;color:#fff;padding:11px 18px;border-radius:10px;font-size:13.5px;font-family:system-ui,-apple-system,Arial;z-index:2147483601;opacity:0;transition:opacity .25s ease,transform .25s ease;box-shadow:0 8px 28px rgba(0,0,0,.35);max-width:90vw;text-align:center}
.acm-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media (max-width:600px){ .acm-photo-row{flex-direction:column} .acm-photo-row .acm-photo-mail{width:100%} }

/* Invite proactive (teaser) pres de la bulle flottante */
.acm-teaser{position:fixed;right:24px;bottom:24px;z-index:9998;max-width:320px;display:flex;align-items:center;gap:12px;background:#fff;color:#161616;border:1px solid #ececec;border-radius:18px;padding:12px 32px 12px 12px;box-shadow:0 14px 40px rgba(0,0,0,.22);font-family:system-ui,-apple-system,'Segoe UI',Arial;font-size:13px;line-height:1.4;cursor:pointer;transform-origin:bottom right;opacity:0;transform:scale(.72) translateY(6px);transition:opacity .26s ease,transform .26s cubic-bezier(.2,.8,.2,1)}
.acm-teaser-ava{flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#d6121a,#9e0d13);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 4px 14px rgba(214,18,26,.4);font-size:24px}
.acm-teaser-ava img,.acm-teaser-ava svg,.acm-teaser-ava .acm-emoji-img{width:38px;height:38px;border-radius:50%;display:block}
.acm-teaser-txt{flex:1 1 auto;min-width:0}
.acm-teaser.acm-show{opacity:1;transform:scale(1) translateY(0)}
.acm-teaser strong{color:#d6121a}
#acm-chatbot-btn.acm-teaser-hidden{display:none!important}
.acm-teaser-x{position:absolute;top:5px;right:7px;border:none;background:transparent;font-size:18px;line-height:1;color:#aaa;cursor:pointer;padding:0 3px}
.acm-teaser-x:hover{color:#666}
@media(max-width:480px){.acm-teaser{right:14px;bottom:18px;max-width:78vw}}

/* Carte récap partenaire (Auto Clés Bruxelles) */
.acm-recap-partner{border:1px solid #cfe0ff;border-left:4px solid #1d6fe0;background:#f5f9ff}
.acm-recap-partner .acm-recap-head{color:#12325e}
.acm-recap-partner-wa{background:#25D366;color:#fff}
.acm-recap-partner .acm-recap-note{font-size:12px;color:#5a6b82;padding:6px 12px 10px}

/* Agenda en ligne (bouton sous le récap) */
.acm-book-btn{display:block;margin:0 12px 12px;width:calc(100% - 24px);background:#d6121a;color:#fff;border:none;border-radius:10px;padding:13px 14px;font-weight:800;font-size:17px;cursor:pointer;letter-spacing:.2px}
.acm-book-btn:hover{background:#9e0d13}
.acm-book-panel{background:#fff;border:1px solid #e6e6e6;border-left:4px solid #d6121a;border-radius:12px;padding:14px;margin:8px 0}
.acm-book-title{font-weight:700;margin-bottom:10px}
.acm-book-days,.acm-book-slots{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.acm-book-day,.acm-book-slot{border:1.5px solid #ddd;background:#fafafa;border-radius:999px;padding:7px 12px;font-size:13px;cursor:pointer}
.acm-book-day.acm-sel,.acm-book-slot.acm-sel{background:#d6121a;border-color:#9e0d13;color:#fff;font-weight:700}
.acm-book-slot.acm-busy{opacity:.35;text-decoration:line-through;cursor:not-allowed}
.acm-book-form input{display:block;width:100%;box-sizing:border-box;margin:6px 0;padding:10px 12px;border:1.5px solid #ccc;border-radius:8px;font-size:16px}
.acm-book-go{width:100%;margin-top:8px;background:#0f7a33;color:#fff;border:none;border-radius:10px;padding:12px;font-weight:700;font-size:15px;cursor:pointer}
.acm-book-go:disabled{opacity:.6}
.acm-book-note{font-size:12px;color:#666;margin-top:8px;text-align:center}
.acm-book-msg{color:#9e0d13;font-size:13px;margin-top:6px;min-height:16px}
.acm-book-ok{background:#e6f7ec;border:1px solid #bfe6cd;border-radius:10px;padding:14px;font-size:14px;line-height:1.5}
.acm-book-load{font-size:13px;color:#777}

/* Validation du RDV par messagerie (après réservation) */
.acm-book-okbtns{display:flex;gap:8px;margin-top:10px}
.acm-ok-sms,.acm-ok-wa{flex:1;text-align:center;border-radius:10px;padding:11px;font-weight:700;text-decoration:none;color:#fff}
.acm-ok-sms{background:#d6121a}
.acm-ok-wa{background:#25D366}

/* Boutons-liens du chat : texte blanc forcé sur tous les états (le thème colorait les liens visités en rouge) */
.acm-ok-sms,.acm-ok-sms:link,.acm-ok-sms:visited,.acm-ok-sms:hover,.acm-ok-sms:active,.acm-ok-sms:focus,
.acm-ok-wa,.acm-ok-wa:link,.acm-ok-wa:visited,.acm-ok-wa:hover,.acm-ok-wa:active,.acm-ok-wa:focus,
.acm-recap-sms,.acm-recap-sms:visited,.acm-recap-sms:hover,.acm-recap-sms:active,.acm-recap-sms:focus,
.acm-recap-wa,.acm-recap-wa:visited,.acm-recap-wa:hover,.acm-recap-wa:active,.acm-recap-wa:focus,
.acm-recap-partner-wa,.acm-recap-partner-wa:visited,.acm-recap-partner-wa:hover,.acm-recap-partner-wa:active,.acm-recap-partner-wa:focus{color:#fff !important;text-decoration:none !important}

/* Note « venue libre / RDV prioritaire » sur la carte récap (double) */
.acm-recap-atelier{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:10px 12px;margin:10px 0 0;font-size:13px;line-height:1.45;color:#7c2d12}

/* Envoi de photo de clé (réparations) */
.acm-keyphoto{background:#f0f7ff;border:1px solid #bcdcff;border-radius:12px;padding:12px;margin:10px 0 0}
.acm-keyphoto-h{font-weight:700;font-size:14px;color:#0b4a8f;margin-bottom:4px}
.acm-keyphoto-sub{font-size:12.5px;color:#33506b;line-height:1.45;margin-bottom:10px}
.acm-keyphoto-btn{display:block;width:100%;box-sizing:border-box;text-align:center;background:#0b4a8f;color:#fff;border-radius:10px;padding:10px 16px;font-weight:700;font-size:14px;cursor:pointer}
.acm-keyphoto-btn:hover{background:#083a70}
.acm-keyphoto-msg{font-size:13px;color:#0b4a8f;margin-top:8px}
.acm-keyphoto-ok{background:#e6f7ec;border:1px solid #bfe6cd;color:#0f7a33;border-radius:8px;padding:10px;font-size:13px;margin-top:8px}

/* Anneau de progression d'envoi de photo */
.acm-ring{position:relative;width:72px;height:72px;margin:12px auto 4px}
.acm-ring svg{width:72px;height:72px;transform:rotate(-90deg)}
.acm-ring circle{fill:none;stroke-width:7}
.acm-ring-bg{stroke:#e6e9ef}
.acm-ring-fg{stroke:#d6121a;stroke-linecap:round;transition:stroke-dashoffset .15s linear}
.acm-ring-pct{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;color:#0b2540}
.acm-keyphoto-inline{margin:10px 0;background:#fff}
.acm-book-panel .acm-keyphoto{text-align:center}

/* Nouvelles lignes de la base à valider */
.acm-vdb-new{background:#fff3cd;border:1px solid #ffe08a;color:#7a5b00;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700;white-space:nowrap;margin-left:6px}
.acm-vdb-ok{margin-left:6px;background:#0f7a33;color:#fff;border:0;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700;cursor:pointer}
.acm-vdb-ok:disabled{opacity:.5;cursor:default}

/* Double bouton photo (prise directe / galerie) */
.acm-keyphoto-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.acm-keyphoto-btns .acm-keyphoto-btn{flex:1;min-width:150px}
.acm-keyphoto-gal{background:#0b4a8f}

/* Prochain créneau libre + preuve sociale */
.acm-next-slot{margin:8px 0 2px;text-align:center;font-size:13.5px;color:#0f7a33;background:#e9f8ee;border:1px solid #bfe6cd;border-radius:10px;padding:7px 10px}
.acm-recap-grate{margin-top:6px;text-align:center;font-size:12.5px;color:#8a6d1a;font-weight:600}
.acm-chat-grate{font-size:11.5px;color:#ffd88a;margin-top:1px}


/* Incitation au clic : pulsation douce du bouton de réservation + halo du prochain créneau */
@keyframes acmPulse{0%,100%{transform:scale(1);box-shadow:0 4px 14px rgba(214,18,26,.32)}50%{transform:scale(1.025);box-shadow:0 6px 22px rgba(214,18,26,.5)}}
.acm-book-btn{animation:acmPulse 2.2s ease-in-out infinite}
.acm-book-btn:active{transform:scale(.98)}
@keyframes acmSlotGlow{0%,100%{box-shadow:0 0 0 0 rgba(15,122,51,0)}50%{box-shadow:0 0 0 7px rgba(15,122,51,.12)}}
.acm-next-slot{animation:acmSlotGlow 2.6s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.acm-book-btn,.acm-next-slot{animation:none}}

/* Devis par e-mail (sous le récap) */
.acm-quote-mail{margin-top:8px;text-align:center}
.acm-quote-mail-btn{background:none;border:1.5px solid #0b4a8f;color:#0b4a8f;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700;cursor:pointer}
.acm-quote-mail-btn:hover{background:#eef4fb}
.acm-quote-mail-form{display:flex;gap:6px;justify-content:center;margin-top:6px;flex-wrap:wrap}
.acm-quote-mail-input{flex:1;min-width:170px;max-width:260px;border:1.5px solid #c9ced8;border-radius:9px;padding:8px 10px;font-size:14px}
.acm-quote-mail-send{background:#0b4a8f;color:#fff;border:none;border-radius:9px;padding:8px 14px;font-weight:700;cursor:pointer}
.acm-quote-mail-msg{margin-top:6px;font-size:12.5px;font-weight:600}

/* Montant final du récapitulatif : bandeau rouge, bien visible */
.acm-recap-row.acm-recap-total{background:#d6121a;border-radius:10px;margin-top:8px;padding:11px 12px;border:none;align-items:center}
.acm-recap-row.acm-recap-total .acm-recap-lab{color:#ffd9db;font-weight:800;text-transform:uppercase;letter-spacing:.4px;font-size:12.5px}
.acm-recap-row.acm-recap-total .acm-recap-val{color:#fff;font-weight:900;font-size:19px}

/* Demande de rappel — bloc bien visible sous le récapitulatif */
.acm-callback{margin:10px 12px 4px;padding:12px;border:2px solid #d6121a;border-radius:12px;background:#fff5f5;text-align:center}
.acm-callback-head{font-size:14.5px;font-weight:800;color:#9e0d13;margin-bottom:8px;line-height:1.4}
.acm-callback-btn{display:block;width:100%;background:#fff;border:2px solid #d6121a;color:#d6121a;border-radius:10px;padding:11px 14px;font-size:15.5px;font-weight:800;cursor:pointer}
.acm-callback-btn:hover{background:#d6121a;color:#fff}
.acm-callback-form{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.acm-callback-input{flex:1;min-width:150px;max-width:230px;border:2px solid #d6121a;border-radius:10px;padding:10px 12px;font-size:16px;font-weight:700;text-align:center}
.acm-callback-send{background:#d6121a;color:#fff;border:none;border-radius:10px;padding:10px 16px;font-size:14.5px;font-weight:800;cursor:pointer}
.acm-callback-send:hover{background:#9e0d13}
.acm-callback-msg{margin-top:8px;font-size:13.5px;font-weight:700;line-height:1.45}


/* Récapitulatif compact : tient sur un écran de téléphone sans défilement */
.acm-recap-row{padding:5px 12px}
.acm-recap-title{font-size:14.5px;padding:9px 12px 5px}
.acm-recap-cta{font-size:14px;margin:6px 12px 2px;line-height:1.35}
.acm-recap-warn{margin:4px 12px 0;font-size:11.5px;line-height:1.4;color:#7a8194;text-align:center}
.acm-recap-atelier{margin:6px 12px 4px;padding:8px 10px;font-size:12.5px;line-height:1.4}
.acm-callback{margin:8px 12px 4px;padding:10px}
.acm-callback-head{font-size:13.5px;margin-bottom:6px}
.acm-quote-mail{margin-top:6px}
.acm-next-slot{font-size:13px;padding:8px 10px;margin:6px 12px}


/* Affichage des avis Google — shortcode [acm_avis] (remplace Trust.Reviews) */
.acm-rvd-wrap{margin:16px 0}
.acm-rvd-summary{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-family:inherit}
.acm-rvd-summary-stars{color:#d6121a;font-size:20px;letter-spacing:1px}
.acm-rvd-summary-note{font-size:20px;font-weight:700;color:#1a1a1a}
.acm-rvd-summary-count{font-size:14.5px;color:#666}
.acm-rvd-summary-g{font-size:14.5px;font-weight:600;margin-left:2px}
.acm-rvd-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.acm-rvd-card{border:1px solid #eee;border-radius:12px;padding:14px 16px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.06);transition:box-shadow .15s,transform .15s}
.acm-rvd-card:hover{box-shadow:0 6px 16px rgba(0,0,0,.1);transform:translateY(-2px)}
.acm-rvd-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:6px}
.acm-rvd-photo{border-radius:50%;width:40px;height:40px;object-fit:cover;flex-shrink:0}
.acm-rvd-who{flex:1 1 auto}
.acm-rvd-who strong{font-size:14.5px;display:block}
.acm-rvd-stars{color:#d6121a;font-size:14px;letter-spacing:1px}
.acm-rvd-when{font-size:12px;color:#999;white-space:nowrap;flex-shrink:0}
.acm-rvd-text{font-size:13.5px;line-height:1.5;color:#333;margin:4px 0 0}
.acm-rvd-more{margin:14px 0 0;text-align:center}
.acm-rvd-more a{font-size:13.5px;font-weight:600;color:#d6121a;text-decoration:none}
.acm-rvd-more a:hover{text-decoration:underline}

/* ═══════════════════════════════════════════════════════════════════════════
   MENU MOBILE — PASTILLE DE SOUS-MENU
   ═══════════════════════════════════════════════════════════════════════════
   ALIGNEMENT. Le thème positionne la pastille en absolu avec « left:250px » ET
   « right:0 ». En lecture de gauche à droite, c'est « left » qui l'emporte :
   la pastille se fige à 250 px du bord gauche. Elle tombe donc pile au bord sur
   un menu de 290 px, et en plein milieu de la ligne dès que l'écran est plus
   large — c'est ce qu'on voit sur iPhone, où le carré rouge flotte juste après
   le texte. « left:auto » rend la main à « right:0 » : la pastille colle au
   bord droit quelle que soit la largeur.

   CHEVRON. Il venait de FontAwesome (glyphe U+F105). Sur iOS cette police ne se
   charge pas et le glyphe s'affichait en carré vide — le fameux « tofu ». Il est
   redessiné ici en CSS pur : deux bordures et une rotation, aucune police à
   charger, donc le même rendu partout. */
.res-dropdown > .show-dropdown {
    left: auto !important;
    right: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
}
.res-dropdown > .show-dropdown::after {
    content: "" !important;
    font-family: inherit !important;
    display: block;
    width: 9px;
    height: 9px;
    /* Décalé de 2 px vers la gauche : un chevron pivoté n'est pas centré
       optiquement quand il est centré géométriquement. */
    margin-right: 3px;
    border-right: 2.5px solid currentColor;
    border-bottom: 2.5px solid currentColor;
    transform: rotate(-45deg);
}

/* ═══════════════════════════════════════════════════════════════════════════
   MAX MEGA MENU — INDICATEUR DE SOUS-MENU EN PAGE (mobile)
   ═══════════════════════════════════════════════════════════════════════════
   ALIGNEMENT. Le lien « .mega-menu-link » est en display:flex. Or `float:right`
   est INERTE sur un enfant de conteneur flex : l'indicateur restait donc collé
   au texte au lieu de filer au bord, et le carré rouge se retrouvait au milieu
   de la ligne. `margin-left:auto` est la façon flex de repousser un élément en
   fin de ligne — c'est la seule qui fonctionne ici.

   CHEVRON. Il venait du glyphe dashicons U+F140 (flèche vers le bas). Cette
   police n'est PAS chargée sur le site : seules WooCommerce, Poppins et
   FontAwesome le sont. Le carré rouge était donc vide partout, pas seulement
   sur iPhone. Le chevron est redessiné en CSS pur — deux bordures et une
   rotation — et pointe vers le bas comme le prévoyait le thème. */
@media (max-width: 768px) {
    .mega-menu-item-has-children > .mega-menu-link > .mega-indicator {
        margin-left: auto !important;
        position: relative !important;
    }
    /* SPÉCIFICITÉ. Max Mega Menu cible ses indicateurs avec DEUX identifiants
       (#mega-menu-wrap-category_menu #mega-menu-category_menu …). Entre deux
       déclarations !important, c'est la spécificité qui tranche : un sélecteur
       de classes, même marqué !important, perd contre deux identifiants. Il faut
       donc reprendre les siens et ajouter une classe pour passer devant.
       Si la position du menu était renommée un jour, ces identifiants
       changeraient et la règle générique en dessous prendrait le relais.

       CHEVRON. Le glyphe dashicons U+F140 n'a jamais pu s'afficher : cette
       police n'est pas chargée sur le site. On garde le glyphe — c'est lui qui
       donne sa largeur au carré rouge — mais on le rend transparent, et on
       dessine le chevron en image SVG de fond. Une seule propriété à imposer
       au lieu de six, et rien qui dépende d'une police. */
    #mega-menu-wrap-category_menu #mega-menu-category_menu li.mega-menu-item-has-children.mega-menu-item > a.mega-menu-link > span.mega-indicator::after,
    .mega-menu-item-has-children > .mega-menu-link > .mega-indicator::after {
        color: transparent !important;
        background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9l7 7 7-7' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
        background-repeat: no-repeat !important;
        background-position: center center !important;
        background-size: 12px 12px !important;
    }
}

/* ╔═══════════════════════════════════════════════════════════════════════╗
   ║  REPRISE VISUELLE DE LA PAGE D'ACCUEIL — 30/08/2026                   ║
   ╚═══════════════════════════════════════════════════════════════════════╝
   Cinq corrections issues d'un audit mesuré dans le DOM. Chaque bloc est
   indépendant et commenté : on peut en retirer un sans toucher aux autres. */

/* ── JETONS ──────────────────────────────────────────────────────────────
   La page comptait HUIT rouges (#ee0000, #dd3333, #ff0000, #d6121a, #ff2d37,
   #e53e3e, #c0392b, #c62828) et aucune variable. #d6121a est le seul de la
   palette à passer le contraste WCAG sur blanc (5,30:1) — les autres tombent
   entre 3,76 et 4,30. Unifier sur lui corrige la conformité ET la cohérence. */
:root {
    --acm-red:       #d6121a;   /* 5,30:1 sur blanc */
    --acm-red-dark:  #a80d13;   /* 7,69:1 — survol et focus */
    --acm-ink:       #1f1f1f;
    --acm-ink-muted: #4a4a4a;
}

/* ── 1. BULLE « ASSISTANT IA » — RETIRÉ À LA DEMANDE DU GÉRANT ───────────
   Ce bloc réduisait la bulle à 52 px et masquait son libellé sur mobile.
   Retiré le 30/08/2026 : la bulle reprend son apparence d'origine.
   Conséquence assumée : son empreinte réelle redevient 110 x 103 px, et elle
   recouvre à nouveau le chevron de « Services Clés De Voiture » ainsi que
   quelques liens de villes en bas d'écran. Pour la reprendre, voir la version
   v2.44.1 dans les livraisons. */
/* ── 2. JUSTIFICATION ET LONGUEUR DE LIGNE ───────────────────────────────
   67 % du corps de texte etait justifie avec hyphens:manual — donc sans
   cesure. Sur une colonne de 315 px cela produit les « rivieres » blanches
   visibles sur mobile. Sur desktop, les lignes atteignaient 122 caracteres
   la ou l'optimum de lecture est 55-75. */
.entry-summary p, .wpb_text_column p, .vc_txt_align_justify,
.vc_tta-panel-body p, .acm-zones p {
    text-align: left !important;
    hyphens: none;
}
@media (min-width: 768px) {
    .entry-summary p, .wpb_text_column p { max-width: 68ch; }
}

/* ── 3. ÉCHELLE TYPOGRAPHIQUE MOBILE ─────────────────────────────────────
   Le H1 etait PLUS PETIT que les H2 : clamp(26px, 4.6vw, 44px) bloque le
   titre a son plancher de 26 px sur un ecran de 375 px, pendant que les H2
   restent libres a 30 px. L'echelle desktop (44/30/24/18) est saine — seule
   sa declinaison mobile cassait. Le corps passe de 14 a 16 px : en dessous,
   Safari zoome de lui-meme sur les champs et decale l'ecran. */
@media (max-width: 767px) {
    /* html + .wpb_wrapper porte la specificite a (0,2,2) : la regle du theme
       qui bloquait le titre a 26 px est a (0,2,1) et perdait donc face a elle
       seule, mais gagnait contre mes selecteurs plus courts. */
    html body.home .wpb_wrapper h1,
    body.home .entry-content h1,
    body.home .entry-summary h1,
    body.home h1 {
        font-size: clamp(30px, 8vw, 34px) !important;
        line-height: 1.15;
        letter-spacing: -0.01em;
    }
    h2, .vc_custom_heading h2 { font-size: 23px !important; line-height: 1.25; }
    h3, .vc_tta-panel-title > a, .vc_tta-title-text { font-size: 18px !important; line-height: 1.35; }
    body, p, li, td, .wpb_text_column { font-size: 16px; line-height: 1.6; }
    .entry-summary p, .wpb_text_column p { margin-block-end: 1.15em; }
    /* Les filets decoratifs du separateur a texte se placaient EN TRAVERS de
       la 2e ligne du titre, et lui volaient 63 px des 315 disponibles. */
    .vc_separator-has-text .vc_sep_holder { display: none; }
    .vc_separator-has-text h2, .vc_separator-has-text h4 { width: 100%; text-align: center; }
}

/* ── 4. HIÉRARCHIE ET COULEUR ────────────────────────────────────────────
   Les H2 etaient gris clair en graisse 500, les H3 de la FAQ rouge vif en
   600 : le niveau inferieur criait plus fort que celui qui le domine. On
   assombrit les H2 et on unifie tous les rouges du CONTENU.
   Volontairement PAS de « a { color:… } » global : cela repeindrait aussi le
   menu, blanc sur fond noir, et les boutons WooCommerce. */
h2, .vc_custom_heading h2 { color: var(--acm-ink); font-weight: 700; }
h2 b, h2 strong, h3 b, h3 strong { color: var(--acm-red); }
.vc_tta-panel-title > a, .vc_tta-title-text { color: var(--acm-ink); font-weight: 600; }
.vc_tta-panel.vc_active .vc_tta-title-text { color: var(--acm-red); }

.entry-summary a, .wpb_text_column a, .acm-zones a, .vc_tta-panel-body a { color: var(--acm-red); }
.entry-summary a:hover, .wpb_text_column a:hover, .acm-zones a:hover,
.entry-summary a:focus-visible, .wpb_text_column a:focus-visible { color: var(--acm-red-dark); }
/* Un lien identifie par la SEULE couleur disparait pour un daltonien. */
.entry-summary a, .wpb_text_column a, .acm-zones a {
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}
.vc_icon_element-icon { color: var(--acm-red); }

/* Etoiles d'avis : #ffd500 sur blanc = 1,42:1, quasi invisibles dehors.
   #b7791f passe le 3:1 exige pour un element graphique porteur de sens. */
.acm-rvd-stars, .acm-rvd-summary-stars {
    color: #b7791f;
    -webkit-text-stroke: 0.6px #7a5a00;
}

/* ── 5. CIBLES TACTILES ET APPEL À L'ACTION ──────────────────────────────
   57 elements cliquables sur 117 mesuraient moins de 44 px. Le numero de
   telephone — la conversion principale — faisait 116x20 px, et la page ne
   contenait AUCUN bouton d'action. Les selecteurs restent volontairement
   etroits : transformer tous les liens en blocs casserait les paragraphes. */
@media (max-width: 767px) {
    .acm-zones li > a {
        display: block;
        min-height: 44px;
        padding: 12px 4px;
        line-height: 20px;
    }
    .acm-zones li + li { margin-top: 4px; }
    .vc_tta-controls-icon { width: 24px; height: 24px; }

    /* :not(.vc_icon_element-link) est indispensable : WPBakery pose sur chaque
       icone un lien VIDE de recouvrement qui porte la meme adresse sms:. Sans
       cette exclusion, c'est ce rectangle invisible qui devenait un gros bouton
       rouge par-dessus l'icone. On ne veut habiller que le lien qui porte
       reellement le numero. */
    .entry-summary a[href^="sms:"]:not(.vc_icon_element-link),
    .entry-summary a[href^="tel:"]:not(.vc_icon_element-link),
    .wpb_text_column a[href^="sms:"]:not(.vc_icon_element-link),
    .wpb_text_column a[href^="tel:"]:not(.vc_icon_element-link) {
        white-space: nowrap;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 52px;
        padding: 0 22px;
        border-radius: 10px;
        background: var(--acm-red);
        color: #fff !important;
        font-size: 16px;
        font-weight: 700;
        text-decoration: none !important;
    }
    /* La couleur doit descendre : le numero est parfois enrobe d'un span qui
       porte sa propre couleur, et gagnait sur celle du lien. */
    .entry-summary a[href^="sms:"]:not(.vc_icon_element-link) *,
    .entry-summary a[href^="tel:"]:not(.vc_icon_element-link) *,
    .wpb_text_column a[href^="sms:"]:not(.vc_icon_element-link) *,
    .wpb_text_column a[href^="tel:"]:not(.vc_icon_element-link) * { color: #fff !important; }
    /* NOTE : j'avais reduit ici les cercles d'icones de 76 a 48 px. Retire —
       la hauteur suivait mais pas la largeur du glyphe interne, et les cercles
       devenaient des ovales. A refaire proprement en touchant au reglage
       WPBakery de l'icone, pas en forcant sa boite en CSS. */
}

/* ── 6. ALIGNEMENT DES TITRES ET DES LÉGENDES ────────────────────────────
   Portée limitée à la page d'accueil : les autres pages gardent leur mise en
   page d'origine. */

/* LÉGENDES SOUS LES ICÔNES. Ma règle anti-justification du bloc 2 les avait
   fait basculer à gauche, sous une icône pourtant centrée — d'où le décalage
   visible sur « Devis En Ligne ! », l'adresse, le numéro et les horaires. On
   rétablit le centrage là, et seulement là, où l'icône elle-même est centrée :
   le sélecteur frère « ~ » ne touche que les textes qui suivent une icône
   marquée « align-center » par l'éditeur. */
body.home .vc_icon_element-align-center ~ .wpb_text_column,
body.home .vc_icon_element-align-center ~ .wpb_text_column p,
body.home .vc_icon_element-align-center ~ .wpb_text_column h4,
body.home .vc_icon_element-align-center ~ .wpb_text_column h5,
body.home .vc_icon_element-align-center ~ .wpb_wrapper p {
    text-align: center !important;
}

/* TITRES. La page mélangeait les deux alignements sans logique : H1 centré,
   « Prestation Par Constructeur » et « Foire aux questions » centrés, mais
   « Auto Clés Minutes : Expert… », « Quelles sont nos prestations… » et
   « Une expertise reconnue… » à gauche.

   On tranche par le RÔLE du titre plutôt que par le hasard de la saisie :
     • H1 et H2 ouvrent une section → centrés, comme le titre de la page ;
     • H3 coiffe un paragraphe      → aligné sur CE paragraphe, donc à gauche.
   Centrer un H3 au-dessus d'un texte aligné à gauche décale son premier mot
   de plusieurs dizaines de pixels et casse le fil de lecture. C'est là qu'est
   la cohérence avec le texte : chaque titre s'aligne sur ce qu'il introduit. */
body.home h1,
body.home h2,
body.home .vc_custom_heading h2,
body.home .vc_separator-has-text h2 { text-align: center !important; }

body.home h3,
body.home .vc_custom_heading h3 { text-align: left !important; }

/* COUPURES. « text-wrap: balance » répartit les mots sur des lignes de
   longueur voisine plutôt que de remplir chaque ligne au maximum et de
   laisser un mot seul à la fin — c'est ce qui produisait « Auto Clés Minutes /
   — Serrurier / Automobile Lille / Métropole – Roubaix ». hyphens:none
   interdit la césure, word-break:normal empêche qu'un mot long soit tranché
   net, et le titre de la FAQ repasse en casse normale : 37 caractères en
   capitales dures se cassaient sur trois lignes. */
body.home h1, body.home h2, body.home h3, body.home h4,
body.home .vc_custom_heading, body.home .vc_tta-title-text {
    text-wrap: balance;
    hyphens: none;
    overflow-wrap: normal;
    word-break: normal;
}
body.home h2 { text-transform: none; }

/* ── 7. ÉQUILIBRE OPTIQUE DES ICÔNES ET TAILLE DU TITRE ──────────────────

   ICÔNES. Les quatre glyphes du bandeau partagent la MÊME taille de police
   (39,9 px), et pourtant ils ne pèsent pas pareil à l'œil, parce qu'ils n'ont
   pas la même largeur de dessin :

       fa-file-text-o  34 x 40      fa-map-marker  23 x 40
       fa-clock-o      34 x 40      fa-mobile      17 x 40   ← moitié moins large

   Un glyphe deux fois plus étroit à taille égale paraît deux fois plus petit :
   c'est bien ce qu'on voit sur le smartphone. On corrige donc glyphe par
   glyphe, en visant une SURFACE comparable plutôt qu'une taille de police
   identique — c'est l'équilibre optique, et c'est ce que l'œil lit comme
   « homogène ».

   SPÉCIFICITÉ. WPBakery fixe la taille avec « .vc_icon_element.vc_icon_element-outer
   .vc_icon_element-inner.vc_icon_element-size-xx .vc_icon_element-icon », soit CINQ
   classes et !important. Un sélecteur plus court, même !important, perd : entre
   deux déclarations importantes, c'est la spécificité qui tranche. On reprend
   donc sa chaîne complète et on la préfixe de body.home pour passer devant. */
body.home .vc_icon_element.vc_icon_element-outer .vc_icon_element-inner .vc_icon_element-icon.fa-mobile,
body.home .vc_icon_element.vc_icon_element-outer .vc_icon_element-inner .vc_icon_element-icon.fa-mobile-phone {
    font-size: 54px !important; line-height: 54px !important;
}
body.home .vc_icon_element.vc_icon_element-outer .vc_icon_element-inner .vc_icon_element-icon.fa-clock-o {
    font-size: 45px !important; line-height: 45px !important;
}
body.home .vc_icon_element.vc_icon_element-outer .vc_icon_element-inner .vc_icon_element-icon.fa-map-marker {
    font-size: 44px !important; line-height: 44px !important;
}

/* TITRE DE LA PAGE (« Auto Clés Minutes — Serrurier… ») : RENDU À SA TAILLE
   D'ORIGINE le 30/08/2026, à la demande du gérant. Il repasse donc à 30 px sur
   mobile (règle du bloc 3) et 44 px sur desktop (règle du thème). Ce n'était
   pas ce titre-là qu'il fallait agrandir, mais celui de l'en-tête ci-dessous. */

/* TITRE D'EN-TÊTE « AUTO-CLES-MINUTES.FR ». Il vit dans un span généré hors de
   ce plugin, à 16 px pour 190 px de large dans un lien de 238 : il y a de la
   place, surtout sur mobile. On l'agrandit plus franchement en petit écran,
   où la colonne du logo occupe toute la largeur, et plus sobrement en desktop
   où elle est bornée à un quart de la rangée — au-delà, le texte déborderait
   de sa colonne. */
.acm-logo-built.acm-logo-text, .acm-logo-text {
    /* 18 px et pas davantage en desktop : la colonne du logo est bornée au
       quart de la rangée (270 px) et le texte débordait de 7 px à 19 px. */
    font-size: 18px !important;
    line-height: 1.15 !important;
}
@media (max-width: 767px) {
    .acm-logo-built.acm-logo-text, .acm-logo-text { font-size: 21px !important; }
}
