/* ═══════════ Consentement (Loi 25 / RGPD) ═══════════ */
.klc{position:fixed;inset:0;z-index:300;display:flex;align-items:flex-end;justify-content:center;padding:20px;pointer-events:none}
.klc-card{pointer-events:auto;width:min(560px,100%);max-height:100%;display:flex;flex-direction:column;background:#fff;border:1px solid var(--color-border);border-radius:26px;box-shadow:0 36px 90px rgba(12,24,65,.30);overflow:hidden;transform:translateY(26px) scale(.98);opacity:0;transition:transform .5s var(--ease-standard),opacity .4s}
.klc.in .klc-card{transform:none;opacity:1}
.klc-head{flex:none;padding:24px 26px 18px;background:linear-gradient(160deg,var(--color-navy),#101F52);color:#fff;position:relative;overflow:hidden}
.klc-head::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.07) 1.3px,transparent 1.3px);background-size:22px 22px;pointer-events:none}
.klc-badge{position:relative;display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-weight:800;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--color-cyan)}
.klc-dot{width:7px;height:7px;border-radius:50%;background:var(--color-success);box-shadow:0 0 0 0 rgba(52,199,123,.6);animation:klcPulse 2.4s ease-out infinite}
@keyframes klcPulse{70%{box-shadow:0 0 0 9px rgba(52,199,123,0)}100%{box-shadow:0 0 0 0 rgba(52,199,123,0)}}
.klc-head h4{position:relative;font-family:var(--disp,var(--font-display));font-weight:800;font-size:21px;letter-spacing:-.015em;color:#fff;margin:10px 0 8px}
.klc-head p{position:relative;color:rgba(255,255,255,.76);font-size:14px;line-height:1.55;margin:0}
.klc-body{flex:1 1 auto;min-height:0;padding:8px 12px;overflow-y:auto;overscroll-behavior:contain}
.klc-row{display:grid;grid-template-columns:38px 1fr 46px;align-items:center;gap:13px;padding:13px 14px;border-radius:16px;cursor:pointer;transition:background .15s}
.klc-row:hover{background:var(--color-surface)}
.klc-row.lock{cursor:default;opacity:.82}
.klc-ic{width:38px;height:38px;border-radius:12px;background:var(--color-primary-tint);color:var(--color-logo-blue);display:flex;align-items:center;justify-content:center}
.klc-ic svg{width:19px;height:19px}
.klc-txt{min-width:0;display:block}
.klc-txt b{display:block;font-family:var(--disp,var(--font-display));font-weight:800;font-size:14.5px;color:var(--color-navy);line-height:1.25}
.klc-txt em{display:block;font-style:normal;font-size:12.5px;color:var(--color-grey);line-height:1.45;margin-top:3px}
.klc-sw input{position:absolute;opacity:0;width:0;height:0}
.klc-track{display:block;width:46px;height:27px;border-radius:999px;background:var(--color-border-strong);position:relative;transition:background .22s var(--ease-standard)}
.klc-knob{position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(12,24,65,.3);transition:transform .22s var(--ease-standard)}
.klc-sw input:checked+.klc-track{background:var(--color-primary)}
.klc-sw input:checked+.klc-track .klc-knob{transform:translateX(19px)}
.klc-sw input:disabled+.klc-track{background:var(--color-success)}
.klc-sw input:focus-visible+.klc-track{outline:3px solid var(--color-primary-tint);outline-offset:2px}
.klc-foot{flex:none;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:16px 20px;border-top:1px solid var(--color-border);background:var(--color-surface)}
.klc-foot .btn{flex:1 1 auto;font-size:15px;min-height:48px;padding:12px 18px}
.klc-refuse{flex:1 1 100%;background:none;border:none;cursor:pointer;font-family:var(--font-body);font-weight:700;font-size:13px;color:var(--color-grey);text-decoration:underline;text-underline-offset:3px;padding:4px}
.klc-refuse:hover{color:var(--color-navy)}
.klc-legal{flex:none;padding:11px 20px;font-size:11.5px;color:var(--color-grey);text-align:center;background:var(--color-surface);border-top:1px solid var(--color-border)}
.klc-legal a{color:var(--color-logo-blue);text-decoration:none;font-weight:700}
.klc-legal a:hover{text-decoration:underline}

/* ═══════════ Géolocalisation — centre le plus proche ═══════════ */
.klgeo{position:fixed;left:50%;bottom:22px;z-index:290;display:flex;align-items:center;gap:16px;width:min(720px,calc(100vw - 32px));transform:translate(-50%,26px);opacity:0;background:#fff;border:1px solid var(--color-border);border-radius:22px;box-shadow:0 26px 64px rgba(12,24,65,.24);padding:14px 52px 14px 16px;transition:transform .45s var(--ease-standard),opacity .35s}
.klgeo.in{transform:translate(-50%,0);opacity:1}
.klgeo-ic{flex:none;width:46px;height:46px;border-radius:14px;background:var(--color-primary-tint);color:var(--color-logo-blue);display:flex;align-items:center;justify-content:center}
.klgeo-ic svg{width:22px;height:22px}
.klgeo-txt{flex:1 1 auto;min-width:0}
.klgeo-txt b{display:block;font-family:var(--disp,var(--font-display));font-weight:800;font-size:15.5px;color:var(--color-navy);line-height:1.25}
.klgeo-txt em{display:block;font-style:normal;font-size:13px;color:var(--color-grey);line-height:1.45;margin-top:2px}
.klgeo-cta{flex:none;display:flex;gap:9px;align-items:center}
.klgeo-cta .btn{min-height:44px;padding:11px 17px;font-size:14.5px}
.klgeo-x{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;border:none;background:none;color:var(--color-grey);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}
.klgeo-x:hover{background:var(--color-surface);color:var(--color-navy)}
.klgeo-x svg{width:17px;height:17px}
.klgeo-go.busy{opacity:.65;pointer-events:none}
.klgeo-go.busy svg{animation:klgeoSpin .9s linear infinite}
@keyframes klgeoSpin{to{transform:rotate(360deg)}}
.klgeo-inline{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:14.5px;color:var(--color-logo-blue);text-decoration:none;background:var(--color-primary-tint);padding:10px 16px;border-radius:999px}
.klgeo-inline svg{width:17px;height:17px}
.klgeo-inline:hover{background:var(--color-primary);color:#fff}
.klgeo-inline:hover svg{color:#fff}
.foot .bar-links{display:inline}
.foot .bar-links a{display:inline;margin:0;color:var(--text-on-dark-muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.foot .bar-links a:hover{color:#fff}

@media(max-width:760px){
  .klc{padding:0;align-items:flex-end}
  .klc-card{width:100%;border-radius:24px 24px 0 0;border-bottom:none}
  .klc-head{padding:20px 20px 16px}
  .klc-head h4{font-size:19px}
  .klc-body{padding:6px 8px}
  .klc-row{grid-template-columns:34px 1fr 46px;gap:11px;padding:11px}
  .klc-foot{padding:14px}
  .klc-foot .btn{flex:1 1 100%}
  .klgeo{flex-wrap:wrap;bottom:14px;width:calc(100vw - 24px);padding:14px 46px 14px 14px;gap:12px}
  body.has-klgeo .ava-fab{bottom:calc(28px + env(safe-area-inset-bottom) + var(--klgeo-h,168px))}
  body.has-klgeo .totop{bottom:calc(30px + env(safe-area-inset-bottom) + var(--klgeo-h,168px))}
  .klgeo-txt{flex:1 1 140px}
  .klgeo-cta{flex:1 1 100%}
  .klgeo-cta .btn{flex:1 1 auto}
}
@media(prefers-reduced-motion:reduce){.klc-card,.klgeo{transition:none}.klc-dot,.klgeo-go.busy svg{animation:none}}

/* ─ ajustements de taille (desktop −20 %, mobile −50 %) ─ */
.klc-card{width:min(448px,100%);border-radius:22px}
.klc-head{padding:19px 21px 14px}
.klc-head h4{font-size:17px;margin:8px 0 6px}
.klc-head p{font-size:12.5px;line-height:1.5}
.klc-badge{font-size:10.5px}
.klc-body{padding:6px 9px}
.klc-row{grid-template-columns:31px 1fr 38px;gap:11px;padding:10px 11px;border-radius:13px}
.klc-ic{width:31px;height:31px;border-radius:10px}
.klc-ic svg{width:16px;height:16px}
.klc-txt b{font-size:13px}
.klc-txt em{font-size:11.5px;margin-top:2px}
.klc-track{width:38px;height:22px}
.klc-knob{top:3px;left:3px;width:16px;height:16px}
.klc-sw input:checked+.klc-track .klc-knob{transform:translateX(16px)}
.klc-foot{gap:8px;padding:13px 16px}
.klc-foot .btn{font-size:13.5px;min-height:44px;padding:10px 15px}
.klc-refuse{font-size:12px}
.klc-legal{padding:9px 16px;font-size:10.5px}
@media(max-width:760px){
  .klc-card{border-radius:18px 18px 0 0}
  .klc-head{padding:12px 14px 10px}
  .klc-head h4{font-size:15px;margin:5px 0 4px}
  .klc-head p{font-size:11.5px;line-height:1.42}
  .klc-badge{font-size:9.5px;gap:6px}
  .klc-body{padding:4px 6px}
  .klc-row{grid-template-columns:26px 1fr 34px;gap:9px;padding:7px 8px;border-radius:11px}
  .klc-ic{width:26px;height:26px;border-radius:8px}
  .klc-ic svg{width:14px;height:14px}
  .klc-txt b{font-size:12.5px}
  .klc-txt em{font-size:11px;margin-top:1px}
  .klc-track{width:34px;height:20px}
  .klc-knob{top:3px;left:3px;width:14px;height:14px}
  .klc-sw input:checked+.klc-track .klc-knob{transform:translateX(14px)}
  .klc-foot{gap:7px;padding:10px 12px}
  .klc-foot .btn{font-size:13px;min-height:40px;padding:9px 13px}
  .klc-refuse{font-size:11.5px;padding:2px}
  .klc-legal{padding:7px 12px;font-size:10px}
  /* localisateur — mobile −20 % */
  .klgeo{bottom:12px;width:calc(100vw - 26px);padding:11px 38px 11px 11px;gap:10px;border-radius:18px}
  .klgeo-ic{width:37px;height:37px;border-radius:11px}
  .klgeo-ic svg{width:18px;height:18px}
  .klgeo-txt b{font-size:13px}
  .klgeo-txt em{font-size:11.5px}
  .klgeo-cta{gap:7px}
  .klgeo-cta .btn{min-height:38px;padding:9px 13px;font-size:13px}
  .klgeo-x{top:8px;right:8px;width:26px;height:26px}
  .klgeo-x svg{width:15px;height:15px}
}
