/* Mobile-first Christmas market list ([vig_market_list]), stacked market tables, back-to-top. ~4 KB */
.mkt{--mkt-top:72px;margin:8px 0 32px}
.mkt-tools{display:grid;gap:10px;margin-bottom:10px}
.mkt .mkt-q{width:100%;min-height:48px;padding:12px 16px 12px 44px;border:1.5px solid var(--line);border-radius:999px;font:500 1rem var(--sans);color:var(--ink);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%235B6275' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='8.5' cy='8.5' r='6'/%3E%3Cpath d='m13 13 5 5'/%3E%3C/svg%3E") no-repeat 16px 50%;-webkit-appearance:none;appearance:none}
.mkt .mkt-q:focus{border-color:var(--navy);outline:0;box-shadow:0 0 0 3px rgba(252,177,23,.45)}
.mkt-sort{display:grid;grid-template-columns:1fr 1fr;background:var(--sand);border-radius:999px;padding:4px}
.mkt-sort button{min-height:44px;padding:0 8px;white-space:nowrap;border:0;border-radius:999px;background:transparent;font:600 .92rem var(--sans);color:var(--navy);cursor:pointer}
.mkt-sort button[aria-pressed=true]{background:#fff;box-shadow:var(--shadow)}
/* chips: one swipeable row, pinned under the sticky header */
.mkt-chips{position:sticky;top:var(--mkt-top);z-index:20;background:rgba(255,255,255,.97);margin:0 -20px;padding:8px 0;border-bottom:1px solid var(--line)}
.mkt-chips-in{display:flex;gap:8px;overflow-x:auto;padding:0 20px;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.mkt-chips-in::-webkit-scrollbar{display:none}
.mkt-chip{flex:0 0 auto;scroll-snap-align:start;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font:600 .92rem var(--sans);color:var(--navy);text-decoration:none;white-space:nowrap}
.mkt-chip span{font-weight:500;font-size:.8rem;color:var(--muted)}
.mkt-chip[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.mkt-chip[aria-pressed=true] span{color:#cfd6ea}
.mkt-count{font-size:.92rem;color:var(--muted);margin:12px 0}
.mkt-count b{color:var(--ink)}
/* collapsible month / region groups */
.mkt-group{margin:0 0 10px;border:0}
.mkt-group>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:6px 16px;background:var(--cream);border:1px solid var(--line);border-radius:var(--r-s);cursor:pointer;font:650 1.05rem var(--serif);color:var(--navy);scroll-margin-top:calc(var(--mkt-top) + 70px)}
.mkt-group>summary::-webkit-details-marker{display:none}
.mkt-group>summary:after{content:"";width:10px;height:10px;border-right:2.5px solid var(--navy);border-bottom:2.5px solid var(--navy);transform:rotate(45deg);margin:-4px 4px 0 0;transition:transform .2s}
.mkt-group[open]>summary:after{transform:rotate(225deg);margin-top:4px}
.mkt-gt{flex:1}
.mkt-gn{font:600 .8rem var(--sans);color:var(--muted);background:#fff;border-radius:999px;padding:3px 10px}
.mkt-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
/* cards: whole card is the link; Save is its own 44px target */
.mkt-card{position:relative;display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;padding:12px 12px 12px 12px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 1px 2px rgba(30,45,89,.05)}
.mkt-card[hidden]{display:none}
.mkt-date{display:grid;place-items:center;align-content:center;width:52px;height:56px;background:var(--cream);border-radius:10px;line-height:1;text-align:center}
.mkt-date small{font:700 .66rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--red)}
.mkt-date b{font:700 1.45rem var(--serif);color:var(--navy);margin-top:2px}
.mkt-body{display:flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:4px;min-width:0}
.mkt-link{flex:0 0 100%;font:650 1.02rem/1.25 var(--serif);color:var(--navy);text-decoration:none;overflow-wrap:anywhere}
.mkt-link:after{content:"";position:absolute;inset:0;border-radius:var(--r)}
.mkt-link:focus-visible{outline:0}.mkt-link:focus-visible:after{outline:3px solid var(--gold);outline-offset:2px}
.mkt-meta{font-size:.86rem;color:var(--muted)}
.mkt-status{font:700 .72rem var(--sans);letter-spacing:.02em;padding:3px 9px;border-radius:999px;background:var(--sand);color:var(--navy)}
.mkt-status.is-open{background:#E3F1E8;color:var(--pine)}
.mkt-status.is-last{background:#FDE7E7;color:var(--red-d)}
.mkt-status.is-soon{background:#FFF1CF;color:#7A5300}
.mkt-card[data-pick] .mkt-link:before{content:"★ ";color:var(--gold)}
.mkt-save{position:relative;z-index:2;min-width:44px;min-height:44px;padding:0 12px;border:1.5px solid var(--line);border-radius:999px;background:#fff;font:600 .82rem var(--sans);color:var(--navy);cursor:pointer;white-space:nowrap}
.mkt-save[aria-pressed=true]{background:var(--red);border-color:var(--red);color:#fff}
.mkt-empty{padding:18px;background:var(--cream);border-radius:var(--r);text-align:center}
.mkt-more{text-align:center;margin-top:20px}
.mkt-more .btn{min-height:48px}
@media (max-width:420px){.mkt-card{grid-template-columns:46px 1fr auto;gap:10px;padding:10px}.mkt-date{width:46px;height:52px}.mkt-save{padding:0 10px;font-size:.78rem}.mkt-chips{margin:0 -16px}.mkt-chips-in{padding:0 16px}}
@media (min-width:900px){.mkt-tools{grid-template-columns:1fr 360px;align-items:center}.mkt-list{grid-template-columns:1fr 1fr}.mkt-chips{margin:0;padding:8px 0}.mkt-chips-in{padding:0;flex-wrap:wrap}}
/* wide market tables become one card per row on phones (labels added by market-list.js) */
@media (max-width:700px){
 table.vig-stack,table.vig-stack tbody,table.vig-stack tr,table.vig-stack td{display:block;width:100%!important;min-width:0!important}
 table.vig-stack{border:0;background:none}
 table.vig-stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 table.vig-stack tr{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:0 0 10px;box-shadow:0 1px 2px rgba(30,45,89,.05)}
 table.vig-stack td{border:0!important;padding:3px 0!important;background:none!important;text-align:left!important;font-size:.95rem}
 table.vig-stack td:first-child{font:650 1.08rem/1.3 var(--serif);color:var(--navy);padding-bottom:6px!important}
 table.vig-stack td:not(:first-child)[data-label]:before{content:attr(data-label);display:block;font:700 .7rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
 .table-wrap:has(table.vig-stack){overflow:visible}
}
/* back to top */
.vig-top{position:fixed;right:14px;bottom:calc(16px + var(--vig-top-lift,0px));z-index:60;width:48px;height:48px;border-radius:50%;border:0;background:var(--navy);color:#fff;font:700 1.3rem/1 var(--sans);box-shadow:0 6px 18px rgba(30,45,89,.3);cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .2s,transform .2s}
.vig-top.show{opacity:1;transform:none;pointer-events:auto}
@media (prefers-reduced-motion:reduce){.vig-top{transition:none}}
