.contact-entete{position:relative;overflow:hidden;margin-bottom:30px;padding:36px 40px;border-radius:var(--radius);background:linear-gradient(125deg,var(--primary-dark),var(--primary));color:#fff;box-shadow:var(--shadow)}
.contact-entete::after{content:"";position:absolute;right:-50px;top:-90px;width:250px;height:250px;border:1px solid rgba(255,255,255,.18);border-radius:50%;box-shadow:0 0 0 42px rgba(255,255,255,.05)}
.contact-surtitre{position:relative;z-index:1;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.85}
.contact-entete h1{position:relative;z-index:1;max-width:760px;margin:8px 0 12px;font-size:clamp(27px,3vw,38px);line-height:1.2}
.contact-entete p{position:relative;z-index:1;max-width:640px;margin:0;font-size:15px;line-height:1.6;opacity:.92}
.contact-section-entete{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:16px}
.contact-section-entete h2{margin:0;font-size:22px}
.contact-section-entete span{color:var(--muted);font-size:13px;font-weight:700}
.contact-carte-section{margin-bottom:30px}
.contact-map{position:relative;isolation:isolate;height:390px;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#e8edf2;cursor:grab;touch-action:none;box-shadow:0 6px 20px rgba(15,23,42,.04)}
.contact-map-deplacement{cursor:grabbing}
.contact-map-tuiles,.contact-map-reperes{position:absolute;inset:0}
.contact-map-tuiles{pointer-events:none}
.contact-map-tuiles img{position:absolute;display:block;width:256px;height:256px;max-width:none;user-select:none}
.contact-map-reperes{pointer-events:none}
.contact-map-repere{position:absolute;z-index:2;display:grid;place-items:center;width:34px;height:34px;transform:translate(-50%,-50%);border:2px solid #fff;border-radius:50%;background:var(--primary);color:#fff;font-size:13px;font-weight:800;line-height:1;cursor:pointer;box-shadow:0 3px 10px rgba(15,23,42,.35);pointer-events:auto}
.contact-map-repere:hover,.contact-map-repere:focus-visible{z-index:3;background:var(--primary-dark);outline:2px solid var(--primary);outline-offset:2px}
.contact-map-info{position:absolute;z-index:4;display:grid;gap:6px;width:230px;max-width:calc(100% - 20px);padding:13px 15px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:var(--shadow);font-size:13px;line-height:1.35;pointer-events:auto}
.contact-map-info strong{font-size:14px;color:var(--text)}
.contact-map-info span{color:var(--muted)}
.contact-map-info a{color:var(--primary);font-weight:800}
.contact-map-commandes{position:absolute;z-index:5;top:14px;right:14px;display:grid;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 3px 10px rgba(15,23,42,.12)}
.contact-map-commandes button{display:grid;place-items:center;width:38px;height:38px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--text);font-size:23px;cursor:pointer}
.contact-map-commandes button:last-child{border-bottom:0}
.contact-map-commandes button:hover{background:var(--soft);color:var(--primary)}
.contact-map-commandes .material-icons{font-size:19px}
.contact-map-attribution{position:absolute;z-index:5;right:0;bottom:0;padding:3px 7px;border-radius:6px 0 0 0;background:rgba(255,255,255,.9);color:#374151;font-size:10px;line-height:1.3}
.contact-map-attribution:hover{text-decoration:underline}
.contact-grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.contact-agence{min-width:0;padding:25px 28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:0 6px 20px rgba(15,23,42,.04)}
.contact-agence-principale{border-color:var(--primary);box-shadow:0 8px 26px rgba(15,23,42,.08)}
.contact-agence-entete{display:flex;align-items:flex-start;gap:13px;margin-bottom:18px}
.contact-agence-entete>.material-icons{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border-radius:11px;background:var(--soft);color:var(--primary);font-size:22px}
.contact-agence-entete small{display:block;margin:1px 0 4px;color:var(--primary);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
.contact-agence h3{margin:0;font-size:19px;line-height:1.3}
.contact-agence address{display:grid;gap:3px;margin:0 0 16px;color:var(--text);font-size:14px;font-style:normal;line-height:1.5}
.contact-interlocuteur{margin:0 0 16px;color:var(--muted);font-size:13px;line-height:1.5}
.contact-agence-liens{display:grid;gap:8px;padding-top:16px;border-top:1px solid var(--line)}
.contact-agence-liens a{display:inline-flex;align-items:center;gap:10px;width:max-content;max-width:100%;color:var(--primary);font-size:14px;font-weight:700;overflow-wrap:anywhere}
.contact-agence-liens a:hover{text-decoration:underline}
.contact-agence-liens .material-icons{font-size:18px;flex:0 0 auto}
.contact-voir-carte{display:inline-flex;align-items:center;gap:7px;margin-top:16px;padding:0;border:0;background:transparent;color:var(--primary);font-size:13px;font-weight:800;cursor:pointer}
.contact-voir-carte:hover{text-decoration:underline}
.contact-voir-carte .material-icons{font-size:17px}
.contact-vide{padding:25px 28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--muted)}
@media(max-width:740px){.contact-entete{padding:28px 24px}.contact-map{height:320px}.contact-grille{grid-template-columns:1fr}.contact-agence{padding:22px}.contact-section-entete h2{font-size:20px}}
