/* Widget de réservation — front */
.kine-resa{max-width:760px;margin:0 auto}
.kr-loading{text-align:center;color:var(--grey);padding:40px 0}
.kr-steps{display:flex;flex-direction:column;gap:26px}
.kr-panel{background:var(--paper2);border:1px solid var(--line);border-radius:18px;padding:22px 24px;box-shadow:0 22px 44px -36px rgba(23,36,48,.4)}
.kr-panel h3{font-family:var(--serif),serif;font-weight:400;color:var(--slate);font-size:1.25rem;margin:0 0 4px}
.kr-panel .kr-sub{color:var(--grey);font-size:.92rem;margin:0 0 16px}

/* Calendrier */
.kr-calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.kr-calhead strong{font-family:var(--serif),serif;font-size:1.15rem;color:var(--ink);text-transform:capitalize}
.kr-nav{background:var(--mist);border:1px solid var(--line);border-radius:10px;width:38px;height:38px;font-size:18px;cursor:pointer;color:var(--ink);line-height:1}
.kr-nav[disabled]{opacity:.35;cursor:not-allowed}
.kr-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.kr-dow{text-align:center;font-family:'Jost',sans-serif;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--grey);padding-bottom:4px}
.kr-day{position:relative;aspect-ratio:1;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--ink);font-size:.95rem;cursor:default;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}
.kr-day.kr-empty{color:#b9c3c0;opacity:.55;text-decoration:line-through}
.kr-day.kr-has{background:var(--mist);border-color:var(--line);cursor:pointer;font-weight:600}
.kr-day.kr-has:hover{border-color:var(--terra);color:var(--terra)}
.kr-day.kr-sel{background:var(--terra);border-color:var(--terra);color:#fff}
.kr-day.kr-sel .kr-cnt{background:rgba(255,255,255,.35);color:#fff}
.kr-cnt{font-size:.6rem;font-weight:600;line-height:1;background:var(--terra);color:#fff;border-radius:8px;padding:1px 5px;letter-spacing:.02em}

/* Heures */
.kr-times{display:flex;flex-wrap:wrap;gap:8px}
.kr-time{border:1px solid var(--line);background:var(--paper2);color:var(--ink);border-radius:10px;padding:9px 14px;cursor:pointer;font-size:.95rem;transition:.15s}
.kr-time:hover{border-color:var(--terra);color:var(--terra)}
.kr-time.kr-sel{background:var(--terra);border-color:var(--terra);color:#fff}

/* Type (présentiel/visio) */
.kr-types{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.kr-type{border:1px solid var(--line);background:var(--paper2);border-radius:14px;padding:18px;cursor:pointer;text-align:left;transition:.15s}
.kr-type:hover{border-color:var(--terra)}
.kr-type.kr-sel{border-color:var(--terra);box-shadow:0 0 0 2px var(--terra) inset}
.kr-type b{display:block;color:var(--slate);font-size:1.05rem;margin-bottom:2px}
.kr-type .kr-price{font-family:var(--serif),serif;color:var(--terra);font-size:1.4rem}
.kr-type small{color:var(--grey)}

/* Formulaire */
.kr-form label{display:block;font-family:'Jost',sans-serif;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--grey);margin:14px 0 5px}
.kr-form input,.kr-form textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;color:var(--ink)}
.kr-form input:focus,.kr-form textarea:focus{outline:none;border-color:var(--terra);box-shadow:0 0 0 3px rgba(184,94,51,.14)}
.kr-form textarea{min-height:96px;resize:vertical}
.kr-row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.kr-consent{display:flex;gap:10px;align-items:flex-start;margin:16px 0 4px;font-size:.86rem;color:var(--grey)}
.kr-consent input{width:auto;flex:none;margin-top:3px}
.kr-recap{background:var(--mist);border-radius:12px;padding:12px 16px;margin-bottom:8px;color:var(--ink);font-size:.95rem}
.kr-recap b{color:var(--terra)}
.kr-btn{margin-top:16px;border:0;background:var(--terra);color:#fff;border-radius:12px;padding:14px 26px;font-weight:600;font-size:1rem;cursor:pointer;transition:.2s}
.kr-btn:hover{background:var(--terra-d)}
.kr-btn[disabled]{opacity:.5;cursor:wait}
.kr-back{background:none;border:0;color:var(--grey);cursor:pointer;font-size:.88rem;text-decoration:underline;padding:0;margin-bottom:4px}
.kr-error{color:#b3261e;font-size:.9rem;margin-top:10px}

/* Confirmation */
.kr-done{text-align:center;padding:30px 10px}
.kr-done .kr-check{width:64px;height:64px;border-radius:50%;background:var(--terra);color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 16px}
.kr-done h3{font-family:var(--serif),serif;color:var(--slate);font-size:1.6rem;margin:0 0 8px}
.kr-done p{color:var(--grey)}

@media(max-width:560px){.kr-types,.kr-row2{grid-template-columns:1fr}}
