/* Dumpling grid page: location dock plus the endless field guide. */

.locate-dock{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px 32px;align-items:center;margin-top:24px;padding:22px 26px;border:1px solid var(--line);border-radius:var(--dh-radius-card);background:#fffdf7;box-shadow:var(--dh-shadow-card)}
.locate-copy strong{display:block;margin-top:8px;font-family:var(--brand-heading);font-size:clamp(20px,2.4vw,28px);font-weight:700;letter-spacing:-.03em;color:var(--dh-brown)}
.locate-copy small{display:block;margin-top:5px;color:var(--dh-brown-soft);font-size:13px}
.locate-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}

.locate-button{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 18px;border:0;border-radius:999px;background:var(--dh-red);color:#fff;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.locate-button:hover:not(:disabled){background:var(--dh-red-dark)}
.locate-button:disabled{opacity:.6;cursor:progress}
.locate-button:focus-visible{outline:2px solid var(--dh-brown);outline-offset:2px}
.locate-button svg{width:16px;height:16px}

.zip-inline{display:flex;align-items:center;gap:0;height:46px;border:1px solid var(--dh-tan);border-radius:999px;overflow:hidden;background:var(--dh-cream)}
.zip-inline label{padding:0 4px 0 16px;color:var(--dh-brown-soft);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.zip-inline input{width:88px;height:100%;border:0;background:transparent;color:var(--dh-brown);font-size:15px;font-variant-numeric:tabular-nums;outline:0}
.zip-inline input::placeholder{color:var(--dh-tan)}
.zip-inline button{height:100%;padding:0 20px;border:0;background:var(--dh-brown);color:var(--dh-cream);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.zip-inline button:hover{background:#2a1208}
.zip-inline:focus-within{border-color:var(--dh-brown);box-shadow:0 0 0 3px rgb(63 27 12 / 10%)}

.locate-history{display:inline-flex;align-items:center;min-height:46px;padding:0 16px;border:1px solid var(--dh-tan);border-radius:999px;color:var(--dh-brown);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
.locate-history:hover,.locate-history:focus-visible{background:var(--dh-brown);border-color:var(--dh-brown);color:var(--dh-cream);outline:0}

.zip-error{grid-column:1/-1;margin:0;min-height:16px;color:var(--dh-red-dark);font-size:12px}
.zip-error:empty{min-height:0}

.store-choices{grid-column:1/-1}
.store-choices:empty{display:none}
.choices-heading{margin:0 0 8px;color:var(--dh-brown-soft);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.store-choices ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin:0;padding:0;list-style:none}
.store-choices button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--dh-cream);color:inherit;text-align:left;cursor:pointer}
.store-choices button:hover,.store-choices button:focus-visible{border-color:var(--dh-tan);background:var(--dh-paper);outline:0}
.store-choices strong{display:block;font-size:13px}
.store-choices small{display:block;margin-top:2px;color:var(--dh-brown-soft);font-size:11px}
.store-choices b{color:var(--dh-brown-soft);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}

.card-badge{position:absolute;top:10px;left:10px;padding:5px 10px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.04em}
.card-badge.is-stock{background:var(--dh-stock);color:#fff}
.card-badge.is-out{background:var(--dh-red-dark);color:#fff}
.card-badge.is-none{background:var(--dh-paper);color:var(--dh-brown-soft)}
#productGrid .product-visual{position:relative}

.grid-sentinel{height:1px}
.grid-status{margin:20px 0 0;color:var(--dh-brown-soft);font-size:12px;text-align:center}

@media(max-width:900px){
  .locate-dock{grid-template-columns:1fr;align-items:start}
  .locate-actions{justify-content:flex-start}
}
@media(max-width:560px){
  .locate-dock{padding:18px}
  .locate-actions{display:grid;grid-template-columns:1fr;gap:10px;width:100%}
  .zip-inline{width:100%}
  .zip-inline input{flex:1;width:auto}
  .locate-button,.locate-history{justify-content:center}
}
