/* Playground Workshops: Programm-Seite (nach Design-Handoff) + Kasse im Theme-Look.
   Nutzt die Laufzeit-Farben des Themes (--pg-bg / --pg-ink). */

[hidden] { display: none !important; }

.pop-wc { width: 100%; max-width: 1240px; }

.pop-ws-sr {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* ---- Workshops-Seite ------------------------------------------------------ */

.pop-ws-main { display: block; }

.pop-ws-page {
  padding: clamp(118px, 17svh, 190px) clamp(20px, 4vw, 56px) clamp(60px, 10vh, 120px);
  display: flex;
  flex-direction: column;
  gap: clamp(34px, 6vh, 64px);
  align-items: center;
  font-family: "BasisMono", ui-monospace, monospace;
  color: var(--pg-ink);
}
.pop-ws-page > * { width: 100%; max-width: 1440px; }
.pop-ws-page button { appearance: none; -webkit-appearance: none; }

.pop-ws-h1 {
  margin: 0;
  font-family: "NeueMontreal", ui-sans-serif, sans-serif;
  font-weight: 500;
  font-size: max(46px, min(8.5vw, 12vh, 96px));
  line-height: 1;
  letter-spacing: -.02em;
}
.pop-ws-lead {
  font-size: clamp(12.5px, 1.4vmin, 13px);
  letter-spacing: .045em;
  line-height: 1.6;
  margin-top: clamp(18px, 3vh, 34px);
  max-width: 640px;
}

.pop-ws-filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(8px, 1.4vw, 14px);
  border-top: 1px solid var(--pg-ink);
  border-bottom: 1px solid var(--pg-ink);
  padding: clamp(14px, 2.2vh, 22px) 0;
}
.pop-ws-filter-label {
  font-size: clamp(10.5px, 1.2vmin, 11px);
  letter-spacing: .2em;
  opacity: .6;
  margin-right: clamp(4px, 1vw, 12px);
}
.pop-ws-pill {
  font-family: "BasisMono", ui-monospace, monospace;
  font-size: clamp(11.5px, 1.3vmin, 12px);
  letter-spacing: .14em;
  cursor: pointer;
  min-height: 44px;
  padding: clamp(11px, 1.4vh, 12px) clamp(16px, 2vw, 20px);
  border: 1.5px solid var(--pg-ink);
  border-radius: 52% 48% 43% 57% / 57% 42% 58% 43%;
  transition: background .25s ease, color .25s ease;
  background: transparent;
  color: var(--pg-ink);
}
.pop-ws-pill:hover { opacity: .75; }
.pop-ws-pill.is-active { background: var(--pg-ink); color: var(--pg-bg); }
.pop-ws-count {
  margin-left: auto;
  font-size: clamp(10.5px, 1.2vmin, 11px);
  letter-spacing: .14em;
  opacity: .6;
}

.pop-ws-months {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
  gap: clamp(20px, 2.4vw, 34px);
  align-items: start;
}
.pop-ws-col { display: flex; flex-direction: column; gap: clamp(12px, 1.8vh, 18px); }
.pop-ws-col-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--pg-ink);
  padding-bottom: clamp(8px, 1.2vh, 12px);
}
.pop-ws-col-name {
  font-family: "NeueMontreal", ui-sans-serif, sans-serif;
  font-weight: 500;
  font-size: clamp(22px, 2.6vw, 34px);
  line-height: 1;
  letter-spacing: -.015em;
}
.pop-ws-col-count { font-size: clamp(10.5px, 1.2vmin, 11px); letter-spacing: .16em; opacity: .6; }
.pop-ws-empty {
  font-size: clamp(11.5px, 1.25vmin, 12px);
  letter-spacing: .1em;
  opacity: .45;
  padding: clamp(14px, 2vh, 20px) 0;
}

.pop-ws-card {
  width: 100%;
  text-align: left;
  cursor: pointer;
  background: transparent;
  color: var(--pg-ink);
  font-family: "BasisMono", ui-monospace, monospace;
  border: 1px solid var(--pg-ink);
  border-radius: 14px;
  padding: clamp(17px, 2vh, 20px) clamp(16px, 1.6vw, 20px);
  display: flex;
  flex-direction: column;
  gap: 11px;
  transition: background .25s ease, color .25s ease;
}
.pop-ws-card:hover { background: var(--pg-ink); color: var(--pg-bg); }
.pop-ws-card.is-soldout { opacity: .6; }
.pop-ws-card-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-size: 10.5px;
  letter-spacing: .2em;
}
.pop-ws-card-cat { opacity: .65; }
.pop-ws-card-title {
  font-family: "NeueMontreal", ui-sans-serif, sans-serif;
  font-weight: 500;
  font-size: clamp(17px, 1.9vw, 23px);
  line-height: 1.12;
  letter-spacing: -.01em;
}
.pop-ws-card-when { font-size: clamp(11.5px, 1.25vmin, 12px); letter-spacing: .09em; }
.pop-ws-card-desc {
  font-size: clamp(11.5px, 1.25vmin, 12px);
  line-height: 1.6;
  letter-spacing: .03em;
  opacity: .82;
}
.pop-ws-card-with { font-size: clamp(11.5px, 1.25vmin, 12px); letter-spacing: .03em; }
.pop-ws-card-seats { font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; }
.pop-ws-card-cta { font-size: 10.5px; letter-spacing: .2em; margin-top: 2px; }

.pop-ws-ongoing {
  border-top: 1px solid var(--pg-ink);
  padding-top: clamp(24px, 4vh, 46px);
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 2.2vh, 22px);
}
.pop-ws-ongoing-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.pop-ws-ongoing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: clamp(12px, 1.8vw, 20px);
}

.pop-ws-insta {
  border-top: 1px solid var(--pg-ink);
  padding-top: clamp(34px, 6vh, 70px);
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.6vh, 26px);
}
.pop-ws-insta-title {
  font-family: "NeueMontreal", ui-sans-serif, sans-serif;
  font-weight: 500;
  font-size: clamp(28px, 5vw, 64px);
  line-height: 1.02;
  letter-spacing: -.02em;
  max-width: 16em;
}
.pop-ws-insta-links { display: flex; flex-wrap: wrap; gap: clamp(10px, 1.6vw, 16px); }

.pop-ws-page a.pop-ws-blob,
.pop-ws-page button.pop-ws-blob {
  display: inline-block;
  font-family: "BasisMono", ui-monospace, monospace;
  color: var(--pg-ink);
  background: transparent;
  border: 1.5px solid var(--pg-ink);
  border-radius: 52% 48% 43% 57% / 57% 42% 58% 43%;
  animation: pgBlob 11s ease-in-out infinite;
  padding: clamp(14px, 2.2vh, 20px) clamp(20px, 3vw, 34px);
  font-size: clamp(11.5px, 1.3vmin, 12px);
  letter-spacing: .2em;
  cursor: pointer;
  transition: background .3s ease, color .3s ease;
}
.pop-ws-page a.pop-ws-blob--b { border-radius: 44% 56% 58% 42% / 45% 55% 45% 55%; animation-duration: 13s; }
.pop-ws-page a.pop-ws-blob:hover,
.pop-ws-page button.pop-ws-blob:hover { background: var(--pg-ink); color: var(--pg-bg); opacity: 1; }

.pop-ws-foot {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(18px, 4vw, 56px);
  font-size: clamp(12.5px, 1.4vmin, 13px);
  letter-spacing: .045em;
  line-height: 1.6;
  border-top: 1px solid var(--pg-ink);
  padding-top: clamp(24px, 4vh, 44px);
}
.pop-ws-foot-label { opacity: .6; }

/* Detail-Sheet */
.pop-ws-lock { overflow: hidden; }
.pop-ws-sheet {
  position: fixed;
  inset: 0;
  z-index: 70;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.pop-ws-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .45); }
.pop-ws-panel {
  position: relative;
  width: 100%;
  max-width: 720px;
  max-height: 92svh;
  overflow: auto;
  background: var(--pg-bg);
  color: var(--pg-ink);
  border: 1.5px solid var(--pg-ink);
  border-bottom: none;
  border-radius: 20px 20px 0 0;
  padding: clamp(22px, 3.4vh, 38px) clamp(18px, 3.4vw, 44px) calc(clamp(28px, 4vh, 44px) + env(safe-area-inset-bottom));
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 2.2vh, 22px);
  font-family: "BasisMono", ui-monospace, monospace;
}
.pop-ws-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.pop-ws-panel-cat { font-size: 10.5px; letter-spacing: .2em; opacity: .65; margin-bottom: 8px; }
.pop-ws-panel-title {
  font-family: "NeueMontreal", ui-sans-serif, sans-serif;
  font-weight: 500;
  font-size: clamp(24px, 3.4vw, 40px);
  line-height: 1.05;
  letter-spacing: -.015em;
}
.pop-ws-x {
  flex: 0 0 auto;
  background: transparent;
  border: 1.5px solid var(--pg-ink);
  color: var(--pg-ink);
  font-family: "BasisMono", ui-monospace, monospace;
  font-size: 14px;
  width: 44px;
  height: 44px;
  border-radius: 52% 48% 43% 57% / 57% 42% 58% 43%;
  cursor: pointer;
}
.pop-ws-x:hover { background: var(--pg-ink); color: var(--pg-bg); }
.pop-ws-facts {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(14px, 3vw, 34px);
  font-size: clamp(11.5px, 1.25vmin, 12px);
  letter-spacing: .09em;
  line-height: 1.5;
  border-top: 1px solid var(--pg-ink);
  border-bottom: 1px solid var(--pg-ink);
  padding: clamp(12px, 1.8vh, 18px) 0;
}
.pop-ws-facts-label { opacity: .6; }
.pop-ws-long {
  font-size: clamp(12.5px, 1.4vmin, 13px);
  line-height: 1.7;
  letter-spacing: .035em;
  white-space: pre-line;
}
.pop-ws-leader {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  font-size: clamp(12.5px, 1.4vmin, 13px);
  line-height: 1.6;
  letter-spacing: .035em;
}
.pop-ws-leader img { width: 72px; height: 72px; object-fit: cover; border-radius: 50%; flex: none; }
.pop-ws-leader .pop-ws-facts-label { font-size: 11px; letter-spacing: .09em; }
.pop-ws-leader-name { font-weight: 500; }
.pop-ws-sent {
  display: flex;
  flex-direction: column;
  gap: 14px;
  border: 1px solid var(--pg-ink);
  border-radius: 14px;
  padding: clamp(16px, 2.4vh, 24px);
}
.pop-ws-sent-title {
  font-family: "NeueMontreal", ui-sans-serif, sans-serif;
  font-weight: 500;
  font-size: clamp(18px, 2.2vw, 26px);
  line-height: 1.15;
}
.pop-ws-sent-body { font-size: clamp(12.5px, 1.4vmin, 13px); line-height: 1.7; letter-spacing: .035em; white-space: pre-line; }
.pop-ws-sent a.pop-ws-blob { align-self: flex-start; animation-duration: 10s; padding: clamp(14px, 2.2vh, 18px) clamp(20px, 3vw, 30px); }

.pop-ws-form { display: flex; flex-direction: column; gap: clamp(12px, 1.8vh, 16px); }
.pop-ws-form-head { font-size: 10.5px; letter-spacing: .2em; opacity: .65; }
.pop-ws-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: clamp(10px, 1.6vw, 14px);
}
.pop-ws-input {
  background: transparent;
  color: var(--pg-ink);
  border: 1px solid var(--pg-ink);
  border-radius: 12px;
  padding: 15px 16px;
  font-family: "BasisMono", ui-monospace, monospace;
  font-size: 16px;
  letter-spacing: .04em;
  outline: none;
  width: 100%;
  min-height: 52px;
}
.pop-ws-form-sub { grid-column: 1 / -1; font-size: 10.5px; letter-spacing: .2em; opacity: .65; margin-top: 6px; }
.pop-ws-pair { display: grid; grid-template-columns: minmax(90px, 1fr) 2fr; gap: inherit; }
.pop-ws-fields > .pop-ws-hint,
.pop-ws-slots { grid-column: 1 / -1; }
.pop-ws-slots { display: flex; flex-wrap: wrap; gap: 8px; }
.pop-ws-slot {
  font-family: "BasisMono", ui-monospace, monospace;
  font-size: 13px;
  letter-spacing: .08em;
  min-height: 44px;
  min-width: 76px;
  padding: 10px 14px;
  border: 1.5px solid var(--pg-ink);
  border-radius: 12px;
  background: transparent;
  color: var(--pg-ink);
  cursor: pointer;
}
.pop-ws-slot.is-active { background: var(--pg-ink); color: var(--pg-bg); }
select.pop-ws-input { cursor: pointer; }
.pop-ws-input::placeholder { color: var(--pg-ink); opacity: .45; }
.pop-ws-input:focus-visible { outline: 2px solid var(--pg-ink); outline-offset: 2px; }
.pop-ws-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid var(--pg-ink);
  border-radius: 12px;
  padding: 8px 10px 8px 16px;
}
.pop-ws-stepper-label { font-size: 12px; letter-spacing: .1em; }
.pop-ws-stepper-ctl { display: flex; align-items: center; gap: 10px; }
.pop-ws-step {
  background: transparent;
  border: 1px solid var(--pg-ink);
  color: var(--pg-ink);
  width: 44px;
  height: 44px;
  border-radius: 50%;
  cursor: pointer;
  font-family: "BasisMono", ui-monospace, monospace;
  font-size: 14px;
  line-height: 1;
}
.pop-ws-step:hover { background: var(--pg-ink); color: var(--pg-bg); }
.pop-ws-qty-n { font-size: 13px; min-width: 1.2em; text-align: center; }
.pop-ws-agb {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: var(--pg-ink);
  font-family: "BasisMono", ui-monospace, monospace;
}
.pop-ws-agb-box {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  padding: 0;
  margin-top: 1px;
  background: transparent;
  color: var(--pg-ink);
  border: 1.5px solid var(--pg-ink);
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "BasisMono", ui-monospace, monospace;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
}
.pop-ws-agb-box:focus-visible { outline: 2px solid var(--pg-ink); outline-offset: 2px; }
.pop-ws-agb-text { cursor: pointer; font-size: clamp(11.5px, 1.2vmin, 11.5px); letter-spacing: .06em; line-height: 1.55; }
.pop-ws-agb-text a { position: relative; }
.pop-ws-submit-row { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(12px, 2vw, 20px); }
.pop-ws-submit {
  font-family: "BasisMono", ui-monospace, monospace;
  font-size: clamp(11.5px, 1.3vmin, 12px);
  letter-spacing: .2em;
  border: 1.5px solid var(--pg-ink);
  border-radius: 52% 48% 43% 57% / 57% 42% 58% 43%;
  animation: pgBlob 9s ease-in-out infinite;
  padding: clamp(15px, 2.4vh, 20px) clamp(22px, 3.4vw, 34px);
  cursor: pointer;
  transition: background .3s ease, color .3s ease;
  background: transparent;
  color: var(--pg-ink);
  opacity: .55;
}
.pop-ws-submit.is-ready { background: var(--pg-ink); color: var(--pg-bg); opacity: 1; }
.pop-ws-submit:hover { opacity: 1; }
.pop-ws-submit:disabled { cursor: progress; }
.pop-ws-hint { font-size: clamp(10.5px, 1.15vmin, 11px); letter-spacing: .1em; line-height: 1.5; opacity: .6; max-width: 26em; }
.pop-ws-hint.is-error { opacity: 1; }
.pop-ws-noreg {
  border: 1px solid var(--pg-ink);
  border-radius: 14px;
  padding: clamp(16px, 2.4vh, 24px);
  font-size: clamp(12.5px, 1.4vmin, 13px);
  line-height: 1.7;
  letter-spacing: .035em;
}

@media (max-width: 600px) {
  .pop-ws-count { margin-left: 0; width: 100%; }
}

/* ---- WooCommerce: cart, checkout, order received ------------------------- */

.pop-wc { font-size: 13px; letter-spacing: .04em; line-height: 1.7; }
.pop-wc .woocommerce { max-width: 760px; }
.pop-wc h2,
.pop-wc h3 {
  font-family: "NeueMontreal", ui-sans-serif, sans-serif;
  font-weight: 500;
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.1;
  letter-spacing: -.015em;
  margin: clamp(28px, 4vh, 44px) 0 14px;
}
.pop-wc label { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; opacity: .75; margin-bottom: 6px; }
.pop-wc .required { text-decoration: none; border: 0; }
.pop-wc .form-row { margin: 0 0 16px; }
.pop-wc .form-row-first,
.pop-wc .form-row-last { width: 100%; }
@media (min-width: 640px) {
  .pop-wc .form-row-first { float: left; width: calc(50% - 8px); }
  .pop-wc .form-row-last { float: right; width: calc(50% - 8px); }
  .pop-wc .form-row-wide { clear: both; }
}
.pop-wc .woocommerce-input-wrapper,
.pop-wc input[type="text"],
.pop-wc input[type="email"],
.pop-wc input[type="tel"] { width: 100%; }
.pop-wc .clear { clear: both; }
.pop-wc #customer_details::after { content: ""; display: block; clear: both; }

.pop-wc table.shop_table {
  width: 100%;
  border-collapse: collapse;
  border: 0;
  margin: 0 0 24px;
}
.pop-wc table.shop_table th,
.pop-wc table.shop_table td {
  text-align: left;
  padding: 14px 0;
  border: 0;
  border-top: 1px solid var(--pg-ink);
  font-weight: 400;
  vertical-align: top;
}
.pop-wc table.shop_table thead th { border-top: 0; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; opacity: .75; }
.pop-wc table.shop_table tfoot th { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; opacity: .75; }
.pop-wc table.shop_table .product-total,
.pop-wc table.shop_table .product-subtotal,
.pop-wc table.shop_table .product-price,
.pop-wc table.shop_table tfoot td { text-align: right; }
.pop-wc .product-thumbnail { display: none; }
.pop-wc .product-quantity { white-space: nowrap; }
.pop-wc td.product-quantity input.qty { width: 76px; }
.pop-wc a.remove {
  display: inline-block;
  width: 28px; height: 28px;
  line-height: 24px;
  text-align: center;
  border: 1px solid var(--pg-ink);
  border-radius: 50%;
  font-size: 16px;
}
.pop-wc a.remove:hover { background: var(--pg-ink); color: var(--pg-bg); opacity: 1; }
.pop-wc td.actions { text-align: right; }
.pop-wc td.actions .coupon { float: left; display: flex; gap: 10px; flex-wrap: wrap; }
.pop-wc .cart-collaterals .cart_totals { max-width: 420px; margin-left: auto; }
.pop-wc .wc-proceed-to-checkout { margin-top: 18px; }
.pop-wc .wc-proceed-to-checkout a.checkout-button { display: block; text-align: center; }

.pop-wc #payment { background: transparent; border-radius: 0; margin-top: 8px; }
.pop-wc #payment ul.payment_methods { list-style: none; margin: 0; padding: 0; border: 0; }
.pop-wc #payment ul.payment_methods li { border-top: 1px solid var(--pg-ink); padding: 14px 0; }
.pop-wc #payment ul.payment_methods li label { display: inline; font-size: 13px; letter-spacing: .06em; text-transform: none; opacity: 1; }
.pop-wc #payment div.payment_box { background: transparent; color: var(--pg-ink); border: 1px solid var(--pg-ink); padding: 14px; margin-top: 10px; font-size: 12px; }
.pop-wc #payment div.payment_box::before { display: none; }
.pop-wc #payment .place-order { padding: 18px 0 0; }
.pop-wc .woocommerce-terms-and-conditions-wrapper { margin: 14px 0; font-size: 12px; }
.pop-wc .woocommerce-privacy-policy-text { font-size: 12px; opacity: .75; }
.pop-wc .woocommerce-form__label-for-checkbox { text-transform: none; letter-spacing: .04em; font-size: 12px; opacity: 1; }
.pop-wc input[type="checkbox"],
.pop-wc input[type="radio"] { accent-color: var(--pg-ink); margin-right: 8px; }

.pop-wc .woocommerce-message,
.pop-wc .woocommerce-info,
.pop-wc .woocommerce-error {
  list-style: none;
  margin: 0 0 24px;
  padding: 14px 18px;
  border: 1px solid var(--pg-ink);
  background: transparent;
  color: var(--pg-ink);
}
.pop-wc .woocommerce-message::before,
.pop-wc .woocommerce-info::before,
.pop-wc .woocommerce-error::before { display: none; }
.pop-wc .woocommerce-message .button { float: right; margin-left: 12px; }

.pop-wc .woocommerce-order-overview {
  list-style: none;
  margin: 18px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 14px 36px;
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.pop-wc .woocommerce-order-overview strong { display: block; margin-top: 4px; font-size: 13px; letter-spacing: .04em; text-transform: none; font-weight: 400; }
.pop-wc .woocommerce-customer-details address { font-style: normal; border: 0; padding: 0; }
