/* ===== Shared reservation modal — neutral, works over any version ===== */
.resv-overlay{
  position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;
  background:rgba(20,22,18,.6);backdrop-filter:blur(4px);padding:1.2rem;overflow-y:auto;
}
.resv-overlay[hidden]{display:none}
.resv-card{
  background:#fff;color:#2c2a24;width:100%;max-width:520px;border-radius:16px;
  box-shadow:0 20px 60px rgba(0,0,0,.35);padding:clamp(1.4rem,4vw,2.2rem);
  font-family:'Inter',system-ui,sans-serif;position:relative;margin:auto;
}
.resv-card h2{
  font-family:Georgia,'Times New Roman',serif;font-size:1.7rem;font-weight:600;
  margin:0 0 .2rem;color:#2c2a24;line-height:1.2;
}
.resv-card .resv-sub{color:#6c645a;font-size:.95rem;margin:0 0 1.3rem}
.resv-close{
  position:absolute;top:.8rem;right:.8rem;width:38px;height:38px;border:none;cursor:pointer;
  background:#f0ece3;border-radius:50%;font-size:1.4rem;line-height:1;color:#6c645a;transition:.2s;
}
.resv-close:hover{background:#e2dacd;color:#2c2a24}

.resv-form{display:grid;gap:.9rem}
.resv-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.resv-field{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.resv-field label{font-size:.8rem;font-weight:600;color:#4a453d;letter-spacing:.01em}
.resv-field label .req{color:#a6743c}
.resv-field input,.resv-field select,.resv-field textarea{
  font:inherit;font-size:16px;color:#2c2a24;background:#faf8f4;
  border:1px solid #ddd5c8;border-radius:9px;padding:.6rem .7rem;
  width:100%;min-width:0;max-width:100%;box-sizing:border-box;transition:.15s;
  -webkit-appearance:none;appearance:none;
}
/* keep native date picker indicator, just normalise sizing on iOS */
.resv-field input[type="date"]{-webkit-appearance:none;min-height:2.6rem}
.resv-field input:focus,.resv-field select:focus,.resv-field textarea:focus{
  outline:none;border-color:#a6743c;background:#fff;box-shadow:0 0 0 3px rgba(166,116,60,.14);
}
.resv-field textarea{resize:vertical;min-height:74px}
.resv-submit{
  margin-top:.4rem;background:#33452f;color:#fff;border:none;cursor:pointer;
  padding:.85rem 1rem;border-radius:100px;font:inherit;font-weight:700;font-size:.98rem;transition:.2s;
}
.resv-submit:hover{background:#28351f}
.resv-note{text-align:center;font-size:.8rem;color:#9a9184;margin:.2rem 0 0}

.resv-success{text-align:center;padding:1.5rem .5rem}
.resv-success .tick{
  width:60px;height:60px;border-radius:50%;background:#e7efe1;color:#33452f;
  display:grid;place-items:center;font-size:2rem;margin:0 auto 1rem;
}
.resv-success h2{margin-bottom:.4rem}
.resv-success p{color:#6c645a}

@media(max-width:460px){.resv-row{grid-template-columns:1fr}}
