/* =========================================================
   CLICK & COLLECT — fenêtre de commande
   ========================================================= */
.oc-overlay{position:fixed;inset:0;z-index:200;display:none;align-items:flex-end;justify-content:center}
.oc-overlay.open{display:flex}
.oc-backdrop{position:absolute;inset:0;background:rgba(28,34,24,.55);backdrop-filter:blur(4px);
  opacity:0;transition:opacity .35s var(--ease)}
.oc-overlay.open .oc-backdrop{opacity:1}
.oc-panel{position:relative;width:100%;max-width:820px;max-height:84vh;max-height:84dvh;background:var(--paper);
  display:flex;flex-direction:column;border-radius:22px 22px 0 0;box-shadow:0 -20px 60px -20px rgba(0,0,0,.5);
  transform:translateY(30px);opacity:0;transition:transform .4s var(--ease),opacity .4s var(--ease)}
.oc-overlay.open .oc-panel{transform:none;opacity:1}
/* Poignée de glissement (mobile) */
.oc-panel::before{content:"";position:absolute;top:8px;left:50%;transform:translateX(-50%);
  width:44px;height:5px;border-radius:3px;background:var(--line);z-index:3;pointer-events:none}
@media(min-width:760px){.oc-overlay{align-items:center}.oc-panel{border-radius:18px;max-height:88vh;max-height:88dvh}
  .oc-panel::before{display:none}}

.oc-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:26px 22px 18px;
  border-bottom:1px solid var(--line);flex:0 0 auto;touch-action:none;-webkit-user-select:none;user-select:none}
@media(min-width:760px){.oc-head{padding:22px 26px}}
.oc-head .t{font-family:var(--display);font-size:1.35rem;letter-spacing:.14em;text-transform:uppercase}
.oc-head .s{font-size:.8rem;color:var(--stone);margin-top:2px}
.oc-close{background:var(--paper);border:1px solid var(--line);border-radius:50%;width:42px;height:42px;cursor:pointer;
  font-size:1.15rem;color:var(--ink);transition:.25s var(--ease);flex:0 0 auto;display:grid;place-items:center;
  -webkit-tap-highlight-color:transparent}
.oc-close:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}

.oc-body{overflow-y:auto;padding:20px 26px 8px;flex:1 1 auto}
.oc-cat{font-family:var(--display);font-size:1.05rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--sage-deep);margin:22px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.oc-cat:first-child{margin-top:0}
.oc-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0}
.oc-item .n{flex:1;min-width:0}
.oc-item .n b{font-weight:500;font-size:1rem}
.oc-item .n .d{display:block;font-size:.82rem;color:var(--ink-soft);margin-top:2px}
.oc-item .p{font-family:var(--display);color:var(--sage-deep);white-space:nowrap}
.oc-step{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:30px;overflow:hidden;flex:0 0 auto}
.oc-step button{width:34px;height:34px;background:var(--paper);border:none;cursor:pointer;font-size:1.1rem;color:var(--sage-deep);transition:.2s}
.oc-step button:hover{background:var(--cream)}
.oc-step .q{min-width:26px;text-align:center;font-family:var(--display);font-size:1rem}
.oc-item.has .oc-item-inner .p{color:var(--ink)}

.oc-foot{flex:0 0 auto;border-top:1px solid var(--line);padding:18px 26px;
  padding-bottom:max(18px,env(safe-area-inset-bottom));background:var(--paper);isolation:isolate;
  display:flex;align-items:center;justify-content:space-between;gap:16px;border-radius:0 0 18px 18px}
.oc-total{font-family:var(--display);font-size:1.05rem}
.oc-total b{font-size:1.35rem;margin-left:8px}
.oc-btn{font-family:var(--display);border:1px solid var(--sage-deep);background:var(--sage-deep);color:var(--cream);
  padding:14px 30px;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;border-radius:30px;
  -webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;
  transform:translateZ(0);-webkit-transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden;
  transition:background-color .3s var(--ease),color .3s var(--ease)}
.oc-btn[disabled]{opacity:.4;pointer-events:none}
.oc-btn.ghost{background:transparent;color:var(--sage-deep)}
@media (hover:hover){
  .oc-btn:hover{background:transparent;color:var(--sage-deep)}
  .oc-btn.ghost:hover{background:var(--sage-deep);color:var(--cream)}
}

/* Checkout */
.oc-checkout{padding:22px 26px}
.oc-back{background:none;border:none;color:var(--sage-deep);cursor:pointer;font-family:var(--display);
  letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;margin-bottom:16px}
.oc-sec{margin-bottom:24px}
.oc-sec h4{font-family:var(--display);font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-deep);margin-bottom:12px}
.oc-recap{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:16px 18px}
.oc-recap .r{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:.95rem}
.oc-recap .r span:first-child{color:var(--ink-soft)}
.oc-recap .tot{border-top:1px solid var(--line);margin-top:8px;padding-top:10px;font-family:var(--display);font-size:1.1rem}
.oc-select{width:100%;padding:13px 40px 13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--paper);
  color:var(--ink);font:inherit;font-family:var(--display);letter-spacing:.05em;font-size:1rem;cursor:pointer;
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236d7a61' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center;background-size:12px}
.oc-select:focus{outline:none;border-color:var(--sage)}
.oc-empty{color:var(--stone);font-size:.9rem}
.oc-field{margin-bottom:12px}
.oc-field label{display:block;font-size:.8rem;color:var(--ink-soft);margin-bottom:5px}
.oc-field input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--paper);
  font:inherit;color:var(--ink)}
.oc-field input:focus{outline:none;border-color:var(--sage)}
.oc-note{font-size:.78rem;color:var(--stone);margin-top:10px;line-height:1.5}
.oc-pay{width:100%;justify-content:center;margin-top:6px}

/* Click & Collect — écran "arrive bientôt" */
.oc-soon{text-align:center;padding:14px 26px 40px;display:flex;flex-direction:column;align-items:center}
.oc-soon-cup{width:96px;height:96px;border-radius:50%;overflow:hidden;border:3px solid #fff;
  box-shadow:0 12px 30px -10px rgba(40,44,36,.5);margin:12px 0 22px}
.oc-soon-cup img{width:100%;height:100%;object-fit:cover}
.oc-soon-tag{font-family:var(--display);font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--sage-deep)}
.oc-soon h3{font-family:var(--display);font-size:1.5rem;letter-spacing:.02em;margin:10px 0 12px;color:var(--ink)}
.oc-soon p{color:var(--ink-soft);max-width:40ch;line-height:1.6;margin-bottom:26px}
.oc-soon-btn{font-family:var(--display);border:1px solid var(--sage-deep);color:var(--sage-deep);
  padding:13px 30px;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;border-radius:30px;transition:.3s var(--ease)}
.oc-soon-btn:hover{background:var(--sage-deep);color:var(--cream)}
