/* Campaign giveaway pickup page only: reuses the site palette, type and buttons. */
.merch-page{--merch-ink:#6356a3;--merch-ink-deep:#3f3572;--merch-muted:#5d5868;--merch-line:#d9d5e6;--merch-tint:#f4f2f9;--merch-paper:#f7f6ef;--merch-accent:#f5cc46;overflow-wrap:anywhere}
.merch-page h2{font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.4;margin:0 0 20px;color:var(--merch-ink-deep)}
.merch-page h3{font-size:1.25rem;line-height:1.5;margin:0;color:var(--merch-ink-deep)}
.merch-page h4{font-size:1.08rem;line-height:1.5;margin:0 0 6px;color:var(--ink)}
.merch-page :focus-visible{outline:3px solid var(--merch-ink);outline-offset:3px}
.merch-page [id]{scroll-margin-top:170px}
.merch-page .section{padding-block:44px}
.merch-page .button-outline{border:1px solid #8f82bc;color:var(--merch-ink-deep);background:#fff}

/* Head: what this page settles, its current state and when it was last updated. */
.merch-page .merch-head{padding-bottom:8px}
.merch-lead{font-size:clamp(1.05rem,1.8vw,1.25rem);line-height:1.85;max-width:34em;margin:0 0 20px;color:var(--ink)}
.merch-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 4px;font-size:.92rem;color:var(--merch-muted)}
.merch-notice{margin:18px 0 0;padding:14px 18px;border-left:4px solid var(--merch-ink);background:var(--merch-tint);max-width:44em;font-weight:650}
.merch-jump{display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:22px;padding-top:6px;border-top:1px solid var(--merch-line)}
.merch-jump a{display:inline-flex;align-items:center;min-height:44px;font-weight:650;color:var(--merch-ink)}
.merch-jump a:hover,.merch-chip-list a:hover{text-decoration:underline;text-underline-offset:4px}

/* One state vocabulary for the page, a pickup point, a session and an item. */
.merch-state{display:inline-flex;align-items:center;gap:7px;padding:4px 12px;border-radius:999px;font-size:.85rem;font-weight:700;line-height:1.6;white-space:nowrap;background:#e7f3ea;color:#1d5733}
.merch-state::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.merch-state[data-merch-state="paused"],.merch-state[data-merch-state="out"],.merch-state[data-merch-state="cancelled"]{background:#f6e9e4;color:#7d3126}
.merch-state[data-merch-state="closed"],.merch-state[data-merch-state="ended"]{background:#ececf0;color:#4a4853}

/* Fraud warning sits before everything a reader could act on. */
.merch-safety{margin-top:20px;padding:24px 28px;background:#fff8e6;border:1px solid #ecd9a2;border-left:6px solid var(--merch-accent);border-radius:4px 14px 14px 4px}
.merch-page .merch-safety h2{font-size:1.25rem;margin-bottom:10px;color:#5c4407}
.merch-safety p{margin:0;line-height:1.8;max-width:60em}
.merch-safety-short{display:none}
.merch-safety a{font-weight:700;text-decoration:underline;text-underline-offset:4px}

/* Pickup points */
.merch-point-list{display:grid;gap:20px}
.merch-point{background:#fff;border:1px solid var(--merch-line);border-radius:18px;padding:28px 30px}
.merch-point header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:18px}
.merch-point header h3{font-size:1.5rem}
.merch-facts{display:grid;grid-template-columns:minmax(0,7em) minmax(0,1fr);gap:14px 20px;margin:0;line-height:1.8}
.merch-facts dt{font-weight:700;color:var(--merch-ink)}
.merch-facts dd{margin:0;min-width:0}
.merch-hours{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.merch-hours li{display:grid;grid-template-columns:minmax(0,6.5em) minmax(0,1fr);gap:12px;font-variant-numeric:tabular-nums}
.merch-hours li span:first-child{font-weight:650}
.merch-slot{white-space:nowrap}
.merch-facts-note{display:block;margin-top:6px;font-size:.9rem;color:var(--merch-muted)}
/* Supply kind sits on its own line above the item name, so names and text line up across a row
   whatever the name length: how it is given out, not whether it is left. */
.merch-item-body h4{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.merch-item-body h4 .merch-kind{order:-1}
.merch-kind{display:inline-block;padding:1px 9px;border:1px solid #8f82bc;border-radius:6px;font-size:.78rem;font-weight:700;line-height:1.7;color:var(--merch-ink-deep);vertical-align:middle;white-space:nowrap}
.merch-kind[data-merch-kind="timed"],.merch-kind[data-merch-kind="limited"],.merch-kind[data-merch-kind="event"]{border-color:#c9a23a;background:#fff6dc;color:#5c4407}
.merch-heading-note{display:inline-block;margin-left:6px;font-size:.6em;font-weight:500;color:var(--merch-muted);letter-spacing:0}
.merch-chip-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.merch-chip-list li{padding:4px 12px;border-radius:999px;background:var(--merch-tint);color:var(--merch-ink-deep);font-size:.92rem;font-weight:650;line-height:1.7}
.merch-point-note{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--merch-line);color:var(--merch-muted)}
.merch-page .merch-actions{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;margin:20px 0 0}
.merch-page .merch-actions .button{margin:0;min-height:48px;padding:11px 18px;gap:12px;font-size:.92rem;white-space:normal}
.merch-action-short{display:none}
.merch-sessions{margin-top:32px}
.merch-sessions h3{margin-bottom:12px}
.merch-empty{margin:0;padding:18px 20px;border:1px dashed #b9b2d1;border-radius:14px;color:var(--merch-muted);background:#fff}
.merch-session-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.merch-session-list li{display:grid;grid-template-columns:minmax(0,13em) minmax(0,1fr) auto;gap:8px 20px;align-items:start;padding:18px 20px;background:#fff;border:1px solid var(--merch-line);border-radius:14px}
.merch-session-time{margin:0;font-weight:700;color:var(--merch-ink-deep);font-variant-numeric:tabular-nums}
.merch-session-list p{margin:0 0 8px}

/* Items */
.merch-page .merch-items{background:var(--merch-tint);margin-top:28px;padding-block:44px}
.merch-group + .merch-group{margin-top:36px}
.merch-group-intro{margin:6px 0 0;color:var(--merch-muted)}
.merch-item-grid{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}
.merch-item{display:flex;flex-direction:column;background:#fff;border:1px solid var(--merch-line);border-radius:16px;overflow:hidden;min-width:0}
.merch-item-media{margin:0;aspect-ratio:1/1;background:var(--merch-paper);display:grid;place-items:center;position:relative;overflow:hidden}
/* contain, never cover: a product photo must show the whole item, whatever its shape. */
.merch-item-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;background:var(--merch-paper)}
.merch-item-media img[hidden],.merch-item-media img[hidden] + figcaption{display:none}
.merch-item-media figcaption{position:absolute;right:8px;bottom:6px;padding:1px 8px;border-radius:999px;background:rgba(255,255,255,.88);font-size:.72rem;color:#4a4853}
.merch-item-icon{color:var(--merch-ink)}
.merch-item-icon svg{width:72px;height:72px}
.merch-item-body{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 18px 18px;flex:1}
.merch-item-body p{margin:0 0 8px;font-size:.95rem;line-height:1.75;color:#3d3a47}
.merch-item-body .merch-item-pickup{font-size:.88rem;color:var(--merch-muted)}
.merch-item-pickup span{display:inline-block;margin-right:8px;font-weight:700;color:var(--merch-ink)}
.merch-item-body .merch-state{margin-top:auto}
.merch-gone{padding-top:28px;border-top:1px solid #cfc9e2}
.merch-gone .merch-item{background:#fbfafd}
.merch-gone .merch-item h4{color:#4a4853}
.merch-item[data-merch-state="out"] .merch-item-media,.merch-item[data-merch-state="ended"] .merch-item-media{filter:grayscale(1);opacity:.6}

/* Rules, FAQ, contact */
.merch-rules ol{margin:0;padding-left:1.4em;display:grid;gap:10px;max-width:46em;line-height:1.85}
.merch-rules li::marker{font-weight:700;color:var(--merch-ink)}
.merch-faq{max-width:900px}
.merch-faq summary{min-height:48px;padding:8px 4px;font-weight:650}
.merch-faq details p{margin:12px 4px 0;line-height:1.85}
.merch-page .merch-contact{border-top:1px solid var(--merch-line);padding-bottom:64px}
.merch-contact h3{margin:32px 0 8px;font-size:1.05rem}
.merch-sources{list-style:none;margin:0;padding:0}
.merch-page .merch-contact .text-link,.merch-page .merch-sources .text-link{color:var(--merch-ink);text-decoration:underline;text-underline-offset:4px}
.merch-page .merch-contact .source-note{border-top:0;padding-top:0;margin-top:12px;font-size:.92rem}

@media(max-width:780px){
 .merch-page [id]{scroll-margin-top:90px}
 /* Phones: everything above the item list is kept short so the items start within about one screen. */
 .merch-lead{display:none}
 .merch-meta{font-size:.85rem}
 /* One swipeable row instead of two wrapped rows. */
 .merch-jump{margin-top:10px;padding-top:0;flex-wrap:nowrap;gap:0 18px;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
 .merch-jump::-webkit-scrollbar{display:none}
 .merch-jump a{flex:none;font-size:.92rem}
 .merch-safety{margin-top:10px;padding:10px 14px;border-radius:4px 12px 12px 4px;font-size:.88rem}
 .merch-page .merch-safety h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .merch-safety p{line-height:1.65}
 .merch-safety-full{display:none}
 .merch-safety-short{display:block}
 .merch-pickup > .eyebrow,.merch-items .eyebrow,.merch-group-intro{display:none}
 .merch-page .section{padding-block:28px}
 .merch-page .merch-pickup{padding-block:16px 20px}
 .merch-page .merch-pickup h2{font-size:1.2rem;margin-bottom:10px}
 .merch-point{padding:14px 16px;border-radius:16px}
 .merch-point header{margin-bottom:8px}
 .merch-point header h3{font-size:1.15rem}
 .merch-facts{grid-template-columns:minmax(0,4.5em) minmax(0,1fr);gap:6px 12px;font-size:.95rem;line-height:1.65}
 .merch-hours li{grid-template-columns:minmax(0,5.5em) minmax(0,1fr);gap:8px}
 .merch-page .merch-point .merch-actions{flex-wrap:nowrap;gap:8px;margin-top:14px}
 .merch-page .merch-point .merch-actions .button{flex:1 1 0;min-width:0;justify-content:center;padding:8px 6px;font-size:.85rem;min-height:44px;gap:4px}
 .merch-action-long{display:none}
 .merch-action-short{display:inline;font-size:inherit}
 .merch-page .merch-point .merch-actions .button span{font-size:inherit}
 .merch-page .merch-contact .merch-actions{flex-direction:column}
 .merch-page .merch-contact .merch-actions .button{justify-content:space-between}
 .merch-session-list li{grid-template-columns:1fr}
 .merch-page .merch-items{margin-top:0;padding-block:14px 24px}
 .merch-page .merch-items h2{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .merch-item-grid{margin-top:10px}
 .merch-group + .merch-group{margin-top:24px}
 /* Two columns of upright cards: the photo stays whole and the list is half as long. */
 .merch-item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .merch-item{border-radius:14px}
 .merch-item-icon svg{width:52px;height:52px}
 .merch-item-body{padding:10px 12px 12px}
 .merch-page .merch-item-body h4{font-size:1rem}
 .merch-item-body p{font-size:.85rem;line-height:1.6;margin-bottom:6px}
 .merch-item-body .merch-item-pickup{font-size:.8rem}
 .merch-item-body .merch-state{font-size:.78rem;padding:3px 10px}
 .merch-page .merch-contact{padding-bottom:40px}
}
@media(prefers-reduced-motion:reduce){.merch-page .button{transition:none;transform:none}}
