/* Self-order detail sheet + group selection dock. Keeps V6 calm palette. */
.is-openable{cursor:pointer}
.is-openable:focus-visible{outline:2px solid var(--menu-gold);outline-offset:3px}
.row.is-openable:active,.spot.is-openable:active{opacity:.86}

body.sheet-open{overflow:hidden}
body.has-order-dock .site-footer{padding-bottom:96px}

.order-dock{
  position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));
  z-index:45;display:flex;align-items:center;gap:10px;min-height:52px;padding:10px 16px 10px 18px;
  border:1px solid #3a3934;border-radius:999px;background:#1c1c19;color:var(--menu-text);
  box-shadow:0 10px 30px rgba(0,0,0,.35);cursor:pointer
}
.order-dock[hidden]{display:none}
.order-dock-label{font-size:.78rem;font-weight:500}
.order-dock-count{
  display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:999px;
  background:var(--menu-gold);color:#161512;font-size:.72rem;font-weight:600
}
.order-dock-total{font-size:.8rem;font-weight:500;color:var(--menu-muted)}

.sheet-root{position:fixed;inset:0;z-index:60}
.sheet-root[hidden]{display:none}
.sheet-backdrop{
  position:absolute;inset:0;background:rgba(8,8,7,.42);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  opacity:0;transition:opacity 240ms ease
}
.sheet-root.is-open .sheet-backdrop{opacity:1}

.detail-sheet,.order-sheet{
  position:absolute;left:50%;bottom:0;display:flex;flex-direction:column;
  width:min(560px,100%);max-height:min(92vh,920px);
  border:1px solid var(--menu-line);border-bottom:0;border-radius:22px 22px 0 0;
  background:#141412;color:var(--menu-text);
  transform:translate(-50%,108%);transition:transform 320ms cubic-bezier(.22,1,.36,1)
}
.detail-sheet.is-open,.order-sheet.is-open{transform:translate(-50%,0)}
.detail-sheet[hidden],.order-sheet[hidden]{display:none}

.sheet-grab{
  flex:0 0 auto;width:42px;height:4px;margin:10px auto 0;border-radius:999px;background:#3a3934
}
.sheet-close{
  position:absolute;top:10px;right:10px;z-index:2;display:grid;place-items:center;
  width:44px;height:44px;border:0;border-radius:999px;background:#1d1d1a;color:var(--menu-text);
  font-size:1.35rem;line-height:1;cursor:pointer
}

.detail-scroll,.order-scroll{overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.detail-scroll{padding:8px 20px 28px}
.order-scroll{padding:4px 20px 16px;flex:1 1 auto}

.detail-hero{
  overflow:hidden;width:100%;aspect-ratio:16 / 10;margin:8px 0 18px;border-radius:16px;background:#1d1d1a
}
.detail-hero img{display:block;width:100%;height:100%;object-fit:cover}
.detail-photo-ph,.upsell-thumb .detail-photo-ph{
  display:grid;place-items:center;width:100%;height:100%;color:#a6a397;font-size:.78rem
}

.detail-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.detail-identity{min-width:0;flex:1 1 auto}
.detail-num{margin:0 0 8px;color:var(--menu-muted);font-size:.7rem;font-weight:400;letter-spacing:.02em}
.detail-title{margin:0;font-size:1.55rem;font-weight:500;letter-spacing:-.025em;line-height:1.2;color:var(--menu-text)}
.detail-price{flex:0 0 auto;margin:1.6rem 0 0;color:var(--menu-gold);font-size:1.05rem;font-weight:500;line-height:1.2;white-space:nowrap}
.detail-desc{margin:18px 0 0;max-width:42ch;color:#9f9c94;font-size:.88rem;font-weight:400;line-height:1.6}
.detail-extra{margin:10px 0 0;max-width:42ch;color:#8d8a82;font-size:.8rem;line-height:1.5}
.detail-sub{margin:28px 0 8px;font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#8d8a82}
.detail-allergens-note{margin:0;color:#9f9c94;font-size:.84rem;line-height:1.5}
.detail-seals{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}
.detail-tag-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.detail-tag-list .mark-badge{display:inline-flex}
.detail-tag{padding:7px 11px;border-radius:6px;background:#25231f;color:var(--menu-text);font-size:.76rem}

.detail-upsell-hint{margin:0 0 12px;color:var(--menu-muted);font-size:.8rem;line-height:1.45}
.upsell-rail{
  display:flex;gap:10px;overflow-x:auto;padding:2px 2px 8px;overscroll-behavior-x:contain;scrollbar-width:none
}
.upsell-rail::-webkit-scrollbar{display:none}
.upsell-card{
  flex:0 0 auto;width:148px;padding:0;border:1px solid var(--menu-line);border-radius:14px;
  background:#1a1a18;color:inherit;text-align:left;cursor:pointer;overflow:hidden
}
.upsell-thumb{width:100%;aspect-ratio:4 / 3;background:#1d1d1a}
.upsell-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.upsell-copy{display:flex;flex-direction:column;gap:4px;padding:10px 11px 12px}
.upsell-name{font-size:.8rem;font-weight:500;line-height:1.3}
.upsell-price{color:var(--menu-gold);font-size:.74rem}

.detail-actions{display:flex;flex-direction:column;gap:12px;margin-top:28px}
.detail-person{display:flex;flex-direction:column;gap:6px;color:var(--menu-muted);font-size:.76rem}
.detail-person-input{
  width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--menu-line);border-radius:12px;
  background:#1a1a18;color:var(--menu-text);font:inherit
}
.detail-person-input::placeholder{color:#7d7a72}

.order-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:12px 16px;border-radius:14px;border:1px solid transparent;
  font:inherit;font-size:.9rem;font-weight:500;cursor:pointer
}
.order-btn svg{width:18px;height:18px;flex:0 0 auto}
.order-btn-solid{background:var(--menu-gold);color:#161512}
.order-btn-ghost{background:#1a1a18;border-color:var(--menu-line);color:var(--menu-text)}

.order-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 56px 8px 20px}
.order-kicker{margin:0 0 4px;color:var(--menu-muted);font-size:.7rem;letter-spacing:.04em;text-transform:uppercase}
.order-sheet-head h2{margin:0;font-size:1.25rem;font-weight:500}
.order-empty{margin:24px 0;color:var(--menu-muted);font-size:.9rem;line-height:1.5}
.order-list{display:flex;flex-direction:column;gap:0;margin:0;padding:0;list-style:none}
.order-item{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px 0;border-top:1px solid var(--menu-line)
}
.order-item:first-child{border-top:0}
.order-item-main{min-width:0;flex:1 1 auto}
.order-item-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:4px}
.order-item-nr{color:#8d8a82;font-size:.7rem;font-weight:400}
.order-item-name{margin:0;font-size:1rem;font-weight:500;line-height:1.3;color:var(--menu-text)}
.order-item-meta{margin:6px 0 0;color:#8d8a82;font-size:.76rem;line-height:1.4}
.order-item-price{color:var(--menu-gold);font-size:.9rem;font-weight:500;white-space:nowrap}
.order-qty{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.order-qty-btn{
  display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--menu-line);
  border-radius:999px;background:#1a1a18;color:var(--menu-text);font-size:1.1rem;cursor:pointer
}
.order-qty-count{min-width:22px;text-align:center;font-variant-numeric:tabular-nums;font-size:.88rem}

.order-ticket{margin:28px 0 8px;padding:0;border:0;background:none}
.order-ticket-title{margin:0 0 6px;font-size:1.05rem;font-weight:500;letter-spacing:-.015em;color:var(--menu-text)}
.order-ticket-hint{margin:0 0 16px;color:#8d8a82;font-size:.8rem;line-height:1.45}
.order-ticket-list{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;border-top:1px solid var(--menu-line)}
.order-ticket-row{
  display:grid;grid-template-columns:4.5rem minmax(0,1fr) auto;align-items:baseline;gap:12px;
  padding:14px 0;border-bottom:1px solid var(--menu-line)
}
.order-ticket-nr{color:#8d8a82;font-size:.78rem;font-variant-numeric:tabular-nums}
.order-ticket-mid{min-width:0;display:flex;flex-direction:column;gap:3px}
.order-ticket-name{font-size:.95rem;font-weight:500;line-height:1.35;color:var(--menu-text)}
.order-ticket-for{color:#8d8a82;font-size:.74rem}
.order-ticket-price{font-size:.9rem;font-weight:500;color:var(--menu-gold);white-space:nowrap;font-variant-numeric:tabular-nums}
.order-ticket-sum{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:14px;padding-top:4px;font-size:.95rem;color:var(--menu-text)
}
.order-ticket-sum strong{font-weight:500;color:var(--menu-gold)}

.order-sheet-foot{
  flex:0 0 auto;padding:12px 20px calc(16px + env(safe-area-inset-bottom));
  border-top:1px solid var(--menu-line);background:#141412
}
.order-sum{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-size:.95rem}
.order-sum strong{font-weight:500;color:var(--menu-gold)}
.order-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.order-actions .order-btn-solid{
  position:relative;overflow:hidden;isolation:isolate;
  grid-column:1 / -1;min-height:56px;margin-top:4px;padding:14px 18px;
  border-color:rgba(255,248,236,.3);
  background:linear-gradient(180deg,#ead9b8 0%,var(--menu-gold) 46%,#c4ad87 100%);
  color:#14120e;font-size:.95rem;font-weight:650;letter-spacing:.015em;
  text-wrap:balance;line-height:1.25;
  box-shadow:
    0 0 0 1px rgba(212,193,160,.4),
    0 8px 24px rgba(0,0,0,.42),
    0 0 28px rgba(212,193,160,.24)
}
.order-actions .order-btn-solid::after{
  content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(105deg,transparent 34%,rgba(255,248,236,.42) 50%,transparent 66%);
  transform:translateX(-130%);pointer-events:none
}
.order-actions .order-btn-solid > span{position:relative;z-index:1}
.order-actions .order-btn-solid:focus-visible{
  outline:2px solid #fff8ec;outline-offset:3px
}
.order-actions .order-btn-solid:active{
  transform:translateY(1px);
  box-shadow:
    0 0 0 1px rgba(212,193,160,.35),
    0 4px 14px rgba(0,0,0,.4),
    0 0 18px rgba(212,193,160,.18)
}
.order-note{margin:10px 0 0;color:var(--menu-muted);font-size:.72rem;line-height:1.45}

@keyframes order-cta-pulse{
  0%,100%{
    box-shadow:
      0 0 0 1px rgba(212,193,160,.35),
      0 8px 24px rgba(0,0,0,.42),
      0 0 22px rgba(212,193,160,.18)
  }
  50%{
    box-shadow:
      0 0 0 1px rgba(212,193,160,.55),
      0 10px 28px rgba(0,0,0,.46),
      0 0 38px rgba(212,193,160,.36)
  }
}
@keyframes order-cta-sheen{
  0%,58%{transform:translateX(-130%)}
  78%,100%{transform:translateX(130%)}
}

.order-toast{
  position:fixed;left:50%;bottom:max(88px,calc(env(safe-area-inset-bottom) + 72px));z-index:70;
  padding:10px 14px;border-radius:999px;background:#2a2925;color:var(--menu-text);font-size:.8rem;
  transform:translate(-50%,12px);opacity:0;pointer-events:none;transition:opacity 180ms ease,transform 180ms ease
}
.order-toast.is-on{opacity:1;transform:translate(-50%,0)}

@media(min-width:768px){
  .detail-sheet,.order-sheet{
    top:50%;bottom:auto;max-height:min(88vh,820px);border-radius:20px;border-bottom:1px solid var(--menu-line);
    transform:translate(-50%,-46%) scale(.98);opacity:0;transition:transform 280ms cubic-bezier(.22,1,.36,1),opacity 220ms ease
  }
  .detail-sheet.is-open,.order-sheet.is-open{transform:translate(-50%,-50%) scale(1);opacity:1}
  .sheet-grab{display:none}
  .order-dock{right:max(28px,calc((100vw - 780px) / 2 + 12px))}
}

@media(prefers-reduced-motion:no-preference){
  .order-actions .order-btn-solid{animation:order-cta-pulse 2.8s ease-in-out infinite}
  .order-actions .order-btn-solid::after{animation:order-cta-sheen 3.6s ease-in-out infinite}
}

@media(prefers-reduced-motion:reduce){
  .sheet-backdrop,.detail-sheet,.order-sheet,.order-toast{transition:none}
  .order-actions .order-btn-solid,.order-actions .order-btn-solid::after{animation:none}
}
