/* ===================== modal checkout ===================== */
.modal{
  position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:1rem;
  opacity:0;pointer-events:none;visibility:hidden;
  transition:opacity .3s ease,visibility 0s linear .3s;
}
.modal.open{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .3s ease,visibility 0s}
.modal__card{
  width:min(44rem,100%);max-height:90vh;overflow-y:auto;background:var(--canvas);
  border:1px solid var(--line);border-radius:var(--r-lg);
  transform:translateY(14px) scale(.985);transition:transform .35s cubic-bezier(.2,.8,.3,1);
}
.modal.open .modal__card{transform:none}
.modal__head{display:flex;align-items:start;gap:1rem;padding:1.5rem var(--pad) 0}
.modal__head p{margin:.4rem 0 0;font-size:.9rem;color:var(--ink-soft)}
.form{padding:1.4rem var(--pad) 1.6rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field{display:flex;flex-direction:column;gap:.4rem}
.field--full{grid-column:1/-1}
.field label{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute)}
.field input,.field select,.field textarea{
  padding:.75rem .9rem;border-radius:var(--r-md);border:1px solid var(--line);
  background:var(--surface);color:var(--ink);width:100%;
}
.field textarea{resize:vertical;min-height:4.5rem;font-family:inherit}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--accent);outline-offset:0}
.form__foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.5rem}
.form__sum{font-size:.86rem;color:var(--ink-soft);margin-right:auto}
.form__sum b{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.35rem;color:var(--ink);font-weight:400}/* ===================== toast ===================== */
.toast{
  position:fixed;z-index:80;left:50%;bottom:1.6rem;transform:translate(-50%,calc(100% + 2.4rem));visibility:hidden;
  display:flex;align-items:center;gap:.7rem;max-width:calc(100% - 2rem);
  padding:.85rem 1.2rem;border-radius:999px;
  background:var(--primary-deep);color:var(--bg-100);font-size:.86rem;
  border:1px solid color-mix(in oklab,var(--gold) 35%,transparent);transition:transform .4s cubic-bezier(.2,.8,.3,1),visibility 0s linear .4s;
}
.toast.show{transform:translate(-50%,0);visibility:visible;transition-delay:0s}
.toast .icon{color:var(--gold);width:1.1rem;height:1.1rem}