/* Taste-guided guest joining polish, November 2026.
   Intentionally scoped to the QR guest JOIN view: ticket, staff and admin are unchanged.
   Accessibility and speed take precedence over blanket design-linter rules. */
.qx-join-page.v4-customer {
  background:#08150f;
  padding:25px 0 56px;
}
.qx-join-page.v4-customer .qx-join-grid {
  gap:clamp(25px,3.8vw,55px);
}
.qx-join-page.v4-customer .qx-breadcrumb {
  margin-bottom:18px;
  font-size:14px;
}
.qx-join-page.v4-customer .qx-join-intro {
  padding-top:12px;
}
.qx-join-page.v4-customer .qx-join-intro .qx-eyebrow {
  display:block;
  color:#bcd9c5;
  font-size:15px;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
}
.qx-join-page.v4-customer .qx-join-intro h1 {
  font-size:clamp(34px,4.6vw,62px);
  line-height:1.09;
  letter-spacing:-.043em;
  margin:10px 0 13px;
  text-shadow:none;
  overflow-wrap:anywhere;
}
.qx-join-page.v4-customer .qx-location {
  font-size:14px;
  line-height:1.45;
  margin:0 0 11px;
  color:#c2d7c8;
}
.qx-join-page.v4-customer .qx-queue-open {
  padding:9px 13px;
  font-size:14px;
  line-height:1.4;
  background:#183a28;
  border:0;
  backdrop-filter:none;
}
.qx-join-page.v4-customer .qx-intro-copy {
  max-width:43ch;
  margin:15px 0 0;
  font-size:16px;
  line-height:1.62;
  color:#d0e4d1;
}
.qx-join-page.v4-customer .qx-wait-stats {
  margin-top:21px;
  gap:10px;
}
.qx-join-page.v4-customer .qx-wait-stats>div {
  background:#122b1f;
  border:0;
  padding:16px;
  gap:4px;
  backdrop-filter:none;
}
.qx-join-page.v4-customer .qx-wait-stats span {
  font-size:13px;
  letter-spacing:0;
  line-height:1.35;
  color:#c6ddc8;
}
.qx-join-page.v4-customer .qx-wait-stats small {
  font-size:13px;
  line-height:1.4;
  color:#c3d9c7;
}
.qx-join-page.v4-customer .qx-wait-stats strong {
  font-size:clamp(28px,3vw,34px);
  line-height:1.1;
  letter-spacing:-.03em;
  color:#ecffd7;
}
.qx-join-page.v4-customer .qx-estimate-note {
  font-size:13px;
  line-height:1.55;
  margin:9px 0 0;
  color:#c2d8c6;
}
.qx-join-page.v4-customer .qx-join-panel {
  background:#11291e;
  border:1px solid #325640;
  border-radius:20px;
  box-shadow:none;
  padding:26px;
  backdrop-filter:none;
}
.qx-join-page.v4-customer .qx-form-header {
  margin-bottom:18px;
}
.qx-join-page.v4-customer .qx-form-header h2 {
  font-size:clamp(27px,3.1vw,34px);
  letter-spacing:-.035em;
  line-height:1.15;
  margin:0 0 9px;
}
.qx-join-page.v4-customer .qx-form-header p {
  color:#c3d7c5;
  font-size:14px;
  line-height:1.5;
}
.qx-join-page.v4-customer .qx-join-form>label:not(.qx-consent) {
  font-size:15px;
  line-height:1.4;
  margin-bottom:7px;
}
.qx-join-page.v4-customer .qx-join-form>input:not([type=hidden]) {
  min-height:54px;
  font-size:16px;
  padding:12px 14px;
  background:#0b2017;
  border-color:#54755c;
}
.qx-join-page.v4-customer .qx-input-hint {
  font-size:13px;
  line-height:1.5;
  color:#c2d8c6;
  margin:6px 0 9px;
}
.qx-join-page.v4-customer .qbd-skip-name {
  margin:7px 0 16px;
  min-height:44px;
  font-size:14px;
  font-weight:700;
  border-color:#476e4c;
  background:#1c3b2a;
  color:#e7f8d9;
}
.qx-join-page.v4-customer .qbd-party-chips {
  margin:5px 0 9px;
  gap:7px;
}
.qx-join-page.v4-customer .qbd-party-chips button {
  min-height:47px;
  font-size:16px;
}
.qx-join-page.v4-customer .qbd-party-chips button:is(.active,[aria-pressed="true"]) {
  background:#d7f8a4;
  color:#173422;
  border-color:#d7f8a4;
  box-shadow:none;
}
.qx-join-page.v4-customer .v4-pax-control {
  grid-template-columns:56px minmax(0,1fr) 56px;
  gap:9px;
  margin-bottom:16px;
}
.qx-join-page.v4-customer .v4-pax-control button {
  min-height:56px;
  font-size:29px;
  border-color:#55755e;
}
.qx-join-page.v4-customer .v4-pax-control>div {
  border-color:#55755e;
  gap:8px;
}
.qx-join-page.v4-customer .v4-pax-control strong {
  font-size:30px;
}
.qx-join-page.v4-customer .v4-pax-control span {
  font-size:14px;
}
.qx-join-page.v4-customer .qx-consent,
.qx-join-page.v4-customer .qx-consent span {
  color:#d0e2d1;
  font-size:14px;
  line-height:1.5;
}
.qx-join-page.v4-customer .qx-consent {
  margin:0 0 15px;
  gap:11px;
}
.qx-join-page.v4-customer .qx-consent input {
  width:21px;
  min-height:21px;
}
.qx-join-page.v4-customer .qx-join-submit {
  min-height:58px;
  font-size:17px;
  background:#d7f8a4;
  color:#102819;
  box-shadow:none;
  border-radius:12px;
}
.qx-join-page.v4-customer .qx-join-submit:hover:not(:disabled) {
  background:#e7ffbd;
  color:#102819;
}
.qx-join-page.v4-customer .qx-form-foot {
  color:#c5d9c9;
  font-size:13px;
  margin:12px 0 0;
  line-height:1.4;
}
.qx-join-page.v4-customer .qx-existing {
  font-size:14px;
  margin-bottom:13px;
}
.qx-join-page.v4-customer .qx-closed {
  font-size:14px;
}
.qx-join-page.v4-customer .qx-closed p {
  font-size:14px;
}
.qx-join-page.v4-customer .qbd-next-opening {
  margin-top:10px;
}
.qx-join-page.v4-customer .qbd-next-opening p {
  font-size:13px;
}
/* The first mobile screen prioritizes the join task over marketing copy. */
@media (max-width:880px) {
  .qx-join-page.v4-customer .qx-join-grid {
    max-width:660px;
    gap:17px;
  }
  .qx-join-page.v4-customer .qx-join-intro {padding-top:0}
  .qx-join-page.v4-customer .qx-join-intro h1 {font-size:clamp(32px,5.5vw,42px)}
  .qx-join-page.v4-customer .qx-join-panel {padding:23px}
}
@media (max-width:660px) {
  .qx-join-page.v4-customer {
    padding:12px 0 35px;
  }
  .qx-join-page.v4-customer>.container {
    max-width:none;
    padding-left:16px;
    padding-right:16px;
  }
  .qx-join-page.v4-customer .qx-breadcrumb {display:none}
  .qx-join-page.v4-customer .qx-join-grid {gap:13px}
  .qx-join-page.v4-customer .qx-join-intro .qx-eyebrow {
    font-size:14px;
  }
  .qx-join-page.v4-customer .qx-join-intro h1 {
    font-size:clamp(27px,7.7vw,35px);
    line-height:1.1;
    margin:6px 0 9px;
    letter-spacing:-.035em;
  }
  .qx-join-page.v4-customer .qx-location {
    margin:0 0 7px;
    font-size:13px;
  }
  .qx-join-page.v4-customer .qx-queue-open {
    padding:6px 10px;
    font-size:13px;
  }
  .qx-join-page.v4-customer .qx-intro-copy {
    font-size:14px;
    line-height:1.45;
    margin:9px 0 0;
  }
  .qx-join-page.v4-customer .qx-wait-stats {
    margin-top:11px;
    gap:8px;
    max-width:none;
  }
  .qx-join-page.v4-customer .qx-wait-stats>div {
    min-width:0;
    padding:10px 11px;
    border-radius:11px;
    gap:2px;
  }
  .qx-join-page.v4-customer .qx-wait-stats span,
  .qx-join-page.v4-customer .qx-wait-stats small {
    font-size:12.5px;
    line-height:1.3;
    letter-spacing:0;
  }
  .qx-join-page.v4-customer .qx-wait-stats strong {font-size:28px}
  .qx-join-page.v4-customer .qx-estimate-note {
    font-size:12.5px;
    margin:5px 0 0;
  }
  .qx-join-page.v4-customer .qx-join-panel {
    padding:18px 16px 20px;
    border-radius:17px;
  }
  .qx-join-page.v4-customer .qx-form-header {
    margin-bottom:12px;
  }
  .qx-join-page.v4-customer .qx-form-header h2 {
    font-size:clamp(24px,6.7vw,29px);
    letter-spacing:-.025em;
    margin:0 0 4px;
  }
  .qx-join-page.v4-customer .qx-form-header p {font-size:13px}
  .qx-join-page.v4-customer .qx-join-form>label:not(.qx-consent) {
    font-size:14px;
    margin-bottom:6px;
  }
  .qx-join-page.v4-customer .qx-join-form>input:not([type=hidden]) {
    min-height:50px;
    font-size:16px;
  }
  .qx-join-page.v4-customer .qx-input-hint {
    font-size:12.5px;
    margin:5px 0 6px;
  }
  .qx-join-page.v4-customer .qbd-skip-name {
    min-height:44px;
    margin:5px 0 12px;
    font-size:13.5px;
  }
  .qx-join-page.v4-customer .qbd-party-chips {
    gap:5px;
    margin:5px 0 8px;
  }
  .qx-join-page.v4-customer .qbd-party-chips button {
    min-height:44px;
    font-size:15px;
  }
  .qx-join-page.v4-customer .v4-pax-control {
    grid-template-columns:50px minmax(0,1fr) 50px;
    margin-bottom:13px;
    gap:7px;
  }
  .qx-join-page.v4-customer .v4-pax-control button {
    min-height:50px;
    font-size:28px;
  }
  .qx-join-page.v4-customer .v4-pax-control strong {font-size:26px}
  .qx-join-page.v4-customer .qx-consent,
  .qx-join-page.v4-customer .qx-consent span {font-size:13px}
  .qx-join-page.v4-customer .qx-join-submit {min-height:55px}
  .qx-join-page.v4-customer .qx-form-foot {font-size:12.5px;margin-top:9px}
}
/* Respect user motion and contrast preferences. */
@media (prefers-reduced-motion:reduce) {
  .qx-join-page.v4-customer *,
  .qx-join-page.v4-customer *::before,
  .qx-join-page.v4-customer *::after {animation:none!important;transition:none!important}
}
