.join-taster-banner{border-block:1px solid #f2c45e;background:linear-gradient(100deg,#3b3018,#202928)}
.join-taster-banner-inner{display:flex;gap:2rem;align-items:center;justify-content:space-between;padding-block:1.25rem}
.join-taster-banner h2,.join-taster-banner p{margin:.25rem 0;max-width:54rem}
.join-taster-banner .button{flex:0 0 auto}
.taster-hero{padding-bottom:var(--space-4)}
.taster-hero h1{max-width:18ch}
.taster-task-header{padding-top:clamp(2rem,5vw,4rem)}
.taster-task-header h1{max-width:24ch;margin-bottom:0}
.taster-disclaimer,.taster-footnote,.taster-privacy-note{max-width:72ch;color:var(--colour-muted)}
.taster-page{padding-top:var(--space-3)}
.taster-notice{margin-bottom:var(--space-4)}
.taster-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.taster-slot,.taster-flow-card,.taster-current{border:var(--border-subtle);border-radius:var(--card-radius,var(--radius-card-outer));padding:var(--space-4);background:var(--colour-surface-raised)}
.taster-slot{display:flex;flex-direction:column;border-top:.35rem solid #79d39e}
.taster-slot-filling{border-top-color:#f2c45e}
.taster-slot-over{border-top-color:#ff806f}
.taster-slot-selected{box-shadow:0 0 0 .16rem #81e7f0}
.taster-current,.taster-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
.taster-slot-heading{position:relative;display:grid;grid-template-rows:2rem 2rem;align-items:center}
.taster-slot-badges{position:absolute;top:0;right:0;display:grid;grid-template-rows:2rem 2rem;justify-items:end;align-items:center;min-width:0;white-space:nowrap}
.taster-quiet{grid-row:1}
.taster-best{grid-row:2}
.taster-slot-heading h2{grid-row:1;margin:0}
.taster-slot-heading-has-quiet h2{padding-right:7.25rem}
.taster-time{grid-row:2;margin:0 0 var(--space-2);font-family:var(--font-data);font-size:1.15rem}
.taster-slot-heading-has-best .taster-time{padding-right:9rem}
.taster-count{display:grid;gap:.2rem;place-content:center;justify-items:center;min-height:5.5rem;margin:var(--space-2) 0;border-block:var(--border-subtle);text-align:center}
.taster-count dt{color:var(--colour-muted);font-family:var(--font-data);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase}
.taster-count dd{margin:0;font-family:var(--font-display);font-size:clamp(2.5rem,4vw,3.2rem);font-weight:400;line-height:1}
.taster-slot-footer{display:grid;gap:var(--space-2);margin-top:auto}
.taster-availability{display:flex;gap:.55rem;align-items:center;min-height:2.5rem;margin:0}
.taster-availability span{width:.7rem;height:.7rem;border-radius:50%;background:#79d39e}
.taster-slot-filling .taster-availability span{background:#f2c45e}
.taster-slot-over .taster-availability span{background:#ff806f}
.taster-best,.taster-warning,.taster-quiet{border:1px solid #f2c45e;border-radius:999px;padding:.25rem .5rem;color:#ffe4a0;font-family:var(--font-data);font-size:.72rem;text-transform:uppercase}
.taster-quiet{border-color:#81e7f0;color:#b8f7fb}
.taster-current{margin-bottom:var(--space-4);border-left:.3rem solid #81e7f0}
.taster-current h2{margin:.2rem 0}
.taster-actions{flex-wrap:wrap;justify-content:flex-end}
.taster-flow-card{max-width:58rem;margin-inline:auto}
.taster-flow-card h2{margin-top:0}
.taster-flow-warning{border-left:.3rem solid #ff806f}
.taster-danger{border-color:#ff806f;background:#662a25;color:#fff}
.taster-danger:hover{background:#7c332d;color:#fff}
.taster-search{max-width:44rem}
.taster-search>div{display:flex;gap:var(--space-2)}
.taster-roster-card{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) auto}
@media(max-width:64rem){.taster-roster-card{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}.taster-roster-card>.private-inline-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:55rem){.taster-slot-grid{grid-template-columns:1fr}.taster-current,.join-taster-banner-inner{align-items:flex-start;flex-direction:column}.taster-actions{justify-content:flex-start}.taster-roster-card{grid-template-columns:1fr}.taster-roster-card>.private-inline-actions{grid-column:auto}}
@media(max-width:36rem){.taster-slot,.taster-flow-card,.taster-current{padding:var(--space-3)}.taster-search>div{display:grid}.join-taster-banner .button,.taster-actions,.taster-actions .button{width:100%}}
@media(forced-colors:active){.taster-slot,.taster-current,.taster-best,.taster-quiet{border-color:CanvasText}}

.join-compact-header { padding-block: 1.5rem 1rem; }
.join-compact-header h1 { font-family: var(--font-display); font-weight: 400; letter-spacing: .015em; text-transform: uppercase; margin: 0; }
.join-compact-header p { margin-bottom: 0; }
.join-taster-selector { padding-bottom: 2rem; }
.join-taster-selector > .taster-disclaimer { margin-top: var(--space-3); }
.join-taster-selector > h2 { margin-top: 0; }
.join-membership-note { padding-block: 0 2rem; }
.taster-progress { font-size: .85rem; margin: 0; }
.taster-arrival { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 2rem; padding: 1.5rem; margin-bottom: 2rem; background: var(--colour-surface); border: 1px solid var(--colour-accent); border-radius: var(--radius-card-outer); }
.taster-safety h2 { font-size: clamp(1.5rem, 3vw, 2rem); margin-top: 0; }
.taster-safety li { margin-block: .8rem; }
.taster-venue-photo { margin: 0; }
.taster-venue-photo img { width: 100%; height: auto; border-radius: var(--radius-card-inner); }
.taster-venue-photo figcaption { margin-block: .75rem; }
.taster-venue-photo .button { white-space: normal; }
.taster-session-management { grid-template-columns: 1fr; gap: 1.25rem; }
.taster-session-management .taster-management-values { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.taster-management-values > div { display: grid; gap: .4rem; }
.taster-management-values dd { font-size: 1.1rem; }
.taster-session-management > .private-inline-actions { justify-content: flex-start; flex-wrap: wrap; }
.taster-page .summary-list > div { gap: .5rem 1.5rem; }
.taster-current p { margin-bottom: var(--space-2); overflow-wrap: anywhere; }
.taster-current .taster-booking-detail { color: var(--colour-muted); font-size: .9375rem; }
.taster-page > .taster-disclaimer { margin-top: var(--space-3); }
@media(max-width:55rem) { .taster-arrival { grid-template-columns: 1fr; } .taster-session-management .taster-management-values { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media(max-width:36rem) { .taster-session-management .taster-management-values { grid-template-columns: 1fr; } }

.taster-slot-ended { border-top-color: #9ba6a1; }
.taster-slot-ended .taster-availability span { background: #9ba6a1; }
.taster-hero .taster-kind { color: inherit; margin-right: 0; }
@media(max-width:55rem) {
  .taster-hero { padding-block: 1rem .5rem; }
  .taster-hero h1 { margin-bottom: .5rem; }
  .taster-hero > p:not(.eyebrow) { font-size: .9375rem; line-height: 1.5; margin-bottom: .5rem; }
  .taster-hero .eyebrow { margin-bottom: .5rem; }
  .taster-hero .taster-kind { display: none; }
  .join-compact-header { padding-block: 1rem .75rem; }
  .join-compact-header p,
  .join-taster-selector > p { font-size: .9375rem; line-height: 1.5; }
  .join-taster-selector > h2 { font-size: 1.25rem; margin-bottom: .5rem; }
  .join-taster-selector > p { margin-block: .5rem; }
  .join-taster-selector > .taster-slot-grid { margin-top: 1rem; }
  .taster-slot-closed { order: 1; }
  .taster-slot-ended { order: 2; gap: .5rem; border-top-width: .2rem; }
  .taster-slot-ended .taster-count,
  .taster-slot-ended .taster-slot-badges,
  .taster-slot-ended .taster-unavailable { display: none; }
  .taster-slot-ended .taster-slot-heading { grid-template-rows: auto auto; gap: .25rem; }
  .taster-slot-ended .taster-slot-heading h2,
  .taster-slot-ended .taster-time { padding-right: 0; }
  .taster-slot-ended .taster-time { margin: 0; font-size: 1rem; }
  .taster-slot-ended .taster-availability { min-height: 0; }
}
@media(max-width:22rem) {
  .join-taster-selector > h2 { font-size: 1.125rem; }
  .taster-hero { padding-block: .75rem 0; }
  .taster-hero h1 { margin-bottom: .25rem; }
  .taster-hero > p { margin-bottom: .25rem; }
  .taster-page { padding-top: 0; }
}
@media(max-width:26rem) {
  .taster-slot-heading { grid-template-rows: auto auto auto; gap: .25rem; }
  .taster-slot-badges { position: static; grid-row: 3; display: flex; flex-wrap: wrap; gap: .4rem; }
  .taster-slot-heading h2 { font-size: 1.35rem; padding-right: 0; }
  .taster-slot-heading .taster-time { margin: 0; padding-right: 0; }
}
