/* Campfire external event shortcode styling only.
 * Root: [campfire_public_event id="..."] -> .qcb-public-booking.
 * Rendered within a Shadow DOM boundary. Elementor owns the shortcode's parent container and the width/position of that container.
 * No global selectors or Member Portal changes are introduced here.
 */
.qcb-public-booking {
  --qcb-external-text:#203b30;
  --qcb-external-muted:#5b6f62;
  --qcb-external-line:#d5dfd8;
  box-sizing:border-box;
  container-type:inline-size;
  display:block;
  width:100%;
  max-width:none;
  min-width:0;
  margin:0;
  padding:clamp(16px,2.5vw,28px);
  border:1px solid var(--qcb-external-line);
  border-radius:14px;
  background:var(--qcb-app-tile, #fff);
  color:var(--qcb-external-text);
  font:400 15px/1.5 "Work Sans",Arial,sans-serif;
  letter-spacing:normal;
  text-align:left;
  box-shadow:0 5px 18px rgba(32,59,48,.04);
}
.qcb-public-booking *,
.qcb-public-booking *::before,
.qcb-public-booking *::after {box-sizing:border-box;}
.qcb-public-booking :is(h1,h2,h3,h4,h5,h6,p,span,label,dt,dd,small,li,div) {
  font-family:"Work Sans",Arial,sans-serif;
  text-transform:none;
  letter-spacing:normal;
}
.qcb-public-booking :is(h1,h2) {
  color:var(--qcb-external-text);
  font-size:clamp(22px,3vw,30px);
  line-height:1.2;
  font-weight:800;
  letter-spacing:-.025em;
  margin:10px 0;
  padding:0;
  text-wrap:pretty;
}
.qcb-public-booking :is(h3,h4) {
  color:var(--qcb-external-text);
  font-size:19px;
  line-height:1.3;
  font-weight:750;
  margin:14px 0 8px;
}
.qcb-public-booking p,
.qcb-public-booking .qcb-public-event-description :is(p,li) {
  font:400 14px/1.6 "Work Sans",Arial,sans-serif;
  color:var(--qcb-external-muted);
  margin:0 0 12px;
}
.qcb-public-booking .qcb-eyebrow {
  font-size:10px;
  line-height:1.45;
  font-weight:750;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:#406c52;
  margin:0 0 6px;
}
.qcb-public-booking .qcb-public-event-hero {
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  aspect-ratio:3/2;
  max-height:none;
  margin:0 0 16px;
  object-fit:cover;
  object-position:center;
  border-radius:9px;
  filter:none;
}
.qcb-public-booking .qcb-public-event-description {margin:4px 0 16px;}
.qcb-public-booking .qcb-public-event-description :is(h1,h2,h3,h4,h5,h6) {
  font-size:17px;line-height:1.35;margin:12px 0 7px;
}
.qcb-public-booking :is(a,a:visited) {
  display:inline;
  width:auto;
  height:auto;
  padding:0;
  margin:0;
  font:650 14px/1.45 "Work Sans",Arial,sans-serif;
  color:#315b43;
  text-decoration:underline;
  text-underline-offset:3px;
  text-transform:none;
  letter-spacing:normal;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  transform:none;
}
.qcb-public-booking a:hover {color:#1b402d;}
.qcb-public-booking :is(a,button,input,select,textarea):focus-visible {
  outline:2px solid #ed821c;
  outline-offset:2px;
}
/* Booking actions are owned by the isolated component. */
.qcb-public-booking :is(a.qcb-public-primary,button.qcb-public-primary),
.qcb-public-booking :is(a.qcb-public-primary,button.qcb-public-primary):visited {
  display:inline-flex;
  flex:0 1 auto;
  align-items:center;
  justify-content:center;
  width:auto;
  min-width:0;
  max-width:100%;
  min-height:43px;
  height:auto;
  padding:11px 18px;
  margin:4px 0 12px;
  background:#395e49;
  border:1px solid #395e49;
  border-radius:8px;
  color:var(--qcb-on-primary, #fff);
  font:700 14px/1.4 "Work Sans",Arial,sans-serif;
  text-decoration:none;
  text-align:center;
  text-transform:none;
  letter-spacing:normal;
  white-space:normal;
  box-shadow:none;
  transform:none;
  cursor:pointer;
}
.qcb-public-booking :is(a.qcb-public-primary,button.qcb-public-primary):hover {
  background:#274631;
  border-color:#274631;
  color:var(--qcb-on-primary, #fff);
}
.qcb-public-booking .qcb-public-form {margin:16px 0 0;background:transparent;border:0;}
.qcb-public-booking .qcb-public-form-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.qcb-public-booking .qcb-public-form label {
  display:grid;
  gap:6px;
  min-width:0;
  margin:10px 0;
  padding:0;
  color:var(--qcb-external-text);
  font:650 13px/1.45 "Work Sans",Arial,sans-serif;
  text-transform:none;
  letter-spacing:normal;
}
.qcb-public-booking .qcb-public-form :is(input:not([type="hidden"]),select,textarea) {
  display:block;
  min-width:0;
  width:100%;
  max-width:100%;
  min-height:44px;
  height:auto;
  margin:0;
  padding:10px 12px;
  border:1px solid #c1cdc5;
  border-radius:8px;
  background:var(--qcb-app-tile, #fff);
  color:#203b30;
  font:400 15px/1.45 "Work Sans",Arial,sans-serif;
  text-transform:none;
  letter-spacing:normal;
  box-shadow:none;
}
.qcb-public-booking .qcb-public-note {font-size:12px;color:#65756a;}
.qcb-public-booking .qcb-public-error {
  padding:12px;margin:12px 0;
  background:#fff2ef;border:1px solid #ebc8bd;
  border-radius:8px;color:#923b2c;
}
.qcb-public-booking .qcb-public-trap {position:absolute;left:-100000px;opacity:0;}
.qcb-public-booking dl>div {display:flex;gap:12px;padding:6px 0;}
.qcb-public-booking dt {flex-shrink:0;width:110px;font-weight:700;}
.qcb-public-booking dd {margin:0;min-width:0;overflow-wrap:anywhere;}
/* Container queries respond to Elementor widget width, not the browser width. */
@container (max-width:550px) {
  .qcb-public-booking .qcb-public-form-grid {grid-template-columns:1fr;gap:0;}
  .qcb-public-booking .qcb-public-event-hero {height:auto;aspect-ratio:3/2;}
}
@media(max-width:550px) {
  .qcb-public-booking {padding:16px;}
  .qcb-public-booking .qcb-public-form-grid {grid-template-columns:1fr;gap:0;}
}

/* Public event price disclosure and secure guest confirmation */
.qcb-public-booking .qcb-public-price-intro{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:12px 14px;margin:12px 0 16px;background:var(--qcb-app-tile, #f6f8f6);border:1px solid #dae3dc;border-radius:9px;}
.qcb-public-booking .qcb-public-price-intro>span{font-size:13px;font-weight:700;}
.qcb-public-booking .qcb-public-price-intro>strong{font-size:19px;color:#203b30;}
.qcb-public-booking .qcb-public-price-intro>small{font-size:12px;color:#617267;}
.qcb-public-booking .qcb-public-price-breakdown{padding:14px 16px;margin:18px 0;border:1px solid #d5dfd8;background:var(--qcb-app-tile, #fff);border-radius:10px;}
.qcb-public-booking .qcb-public-price-breakdown h3{font-size:17px;margin:0 0 8px;}
.qcb-public-booking .qcb-public-price-breakdown dl{margin:0 0 10px;}
.qcb-public-booking .qcb-public-price-breakdown dl>div{display:flex;justify-content:space-between;gap:14px;padding:5px 0;}
.qcb-public-booking .qcb-public-price-breakdown dl>div[hidden]{display:none;}
.qcb-public-booking .qcb-public-price-breakdown dt{width:auto;font-weight:500;}
.qcb-public-booking .qcb-public-price-breakdown dd{font-weight:650;}
.qcb-public-booking .qcb-public-price-breakdown .qcb-public-total{border-top:1px solid #d5dfd8;margin-top:7px;padding-top:12px;}
.qcb-public-booking .qcb-public-price-breakdown .qcb-public-total dt,.qcb-public-booking .qcb-public-price-breakdown .qcb-public-total dd{font-weight:800;font-size:16px;color:#244836;}
.qcb-public-booking .qcb-guest-confirmed{display:flex;gap:16px;align-items:center;margin-bottom:16px;}
.qcb-public-booking .qcb-guest-confirmed h2{margin:0 0 5px;}
.qcb-public-booking .qcb-guest-confirmed p{margin:0;}
.qcb-public-booking .qcb-guest-check{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;background:#e6f3e9;border-radius:50%;color:#285f3c;font:800 25px/1 Arial,sans-serif;}
.qcb-public-booking .qcb-public-pending-progress{background:#f4f7f4;border:1px solid #d5dfd8;border-radius:8px;padding:10px 12px;}

/* RC12 public event and one-page guest booking. Scoped to this shortcode's Shadow DOM. */
.qcb-public-booking.qcb-public-v12 {
  --qcb-public-green:#173f32;
  --qcb-public-orange:#ea6f08;
  container-type:inline-size;
  margin:0 auto;
  padding:clamp(16px,2.4vw,30px);
  max-width:1120px;
  background:#fffdf9;
  border:1px solid #e3e5dd;
  border-radius:16px;
  box-shadow:0 8px 26px rgba(24,53,43,.075);
}
.qcb-public-v12 .qcb-public-intro {
  display:grid;
  grid-template-columns:minmax(0,39fr) minmax(0,61fr);
  gap:clamp(18px,3vw,32px);
  align-items:start;
}
.qcb-public-v12 .qcb-public-poster {min-width:0;width:100%;}
.qcb-public-v12 .qcb-public-poster img {
  display:block;width:100%;max-width:100%;height:auto;
  max-height:420px;aspect-ratio:auto;object-fit:contain;object-position:center top;
  border-radius:12px;background:#f2ecf5;
}
.qcb-public-v12 .qcb-public-event-copy {min-width:0;}
.qcb-public-v12 .qcb-public-event-tag {display:inline-block;background:#ecddf3;color:#4c2762;padding:4px 11px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.05em;}
.qcb-public-v12 .qcb-public-event-copy h2 {font-size:clamp(25px,3vw,38px);letter-spacing:-.045em;line-height:1.12;margin:10px 0 14px;color:#173f32;}
.qcb-public-v12 .qcb-public-event-meta {display:flex;gap:8px 18px;flex-wrap:wrap;font-size:13px;font-weight:650;color:#29483e;margin:0 0 17px;}
.qcb-public-v12 .qcb-public-event-description {margin:0;}
.qcb-public-v12 .qcb-public-event-description :is(p,li) {font-size:14px;line-height:1.65;color:#314b41;margin:0 0 12px;}
.qcb-public-v12 .qcb-public-facts {border-top:1px solid #e3e7e0;margin:22px 0 0;padding:18px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.qcb-public-v12 .qcb-public-facts>div {display:flex;gap:10px;align-items:center;min-width:0;}
.qcb-public-v12 .qcb-public-facts>div>div{display:flex;flex-direction:column;gap:2px;min-width:0;}
.qcb-public-v12 .qcb-public-facts b {font-size:12px;color:#203a2f;}
.qcb-public-v12 .qcb-public-facts span:not(.qcb-public-fact-icon) {font-size:12px;color:#607467;overflow-wrap:anywhere;}
.qcb-public-v12 .qcb-public-fact-icon{font-size:27px;color:#345a46;line-height:1;}
.qcb-public-v12 .qcb-public-form {border-top:1px solid #e0e8e2;margin:22px 0 0;padding:22px 0 0;}
.qcb-public-v12 .qcb-public-booking-heading {margin:0 0 6px;font-size:25px;font-weight:850;letter-spacing:-.025em;color:#193d32;}
.qcb-public-v12 .qcb-public-booking-intro {margin:0 0 18px;color:#647469;font-size:13px;}
.qcb-public-v12 .qcb-public-checkout-grid {display:grid;grid-template-columns:minmax(0,1.48fr) minmax(265px,.9fr);gap:clamp(18px,3vw,32px);align-items:start;}
.qcb-public-v12 .qcb-public-fields {min-width:0;}
.qcb-public-v12 .qcb-public-step {border:0;border-bottom:1px solid #e1e9e2;padding:0 0 20px;margin:0 0 18px;min-width:0;}
.qcb-public-v12 .qcb-public-step legend {display:flex;align-items:center;gap:10px;float:none;margin:0 0 14px;padding:0;font:800 17px/1.3 "League Spartan","Work Sans",sans-serif;color:#173f32;}
.qcb-public-v12 .qcb-public-step-num {width:26px;height:26px;display:grid;place-items:center;background:#2d7146;color:#fff;border-radius:50%;font:800 13px/1 "Work Sans",sans-serif;}
.qcb-public-v12 .qcb-public-ticket-line {display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:1px solid #dbe5dc;border-radius:9px;background:#fbfcfa;}
.qcb-public-v12 .qcb-public-ticket-line>div:first-child {min-width:0;}
.qcb-public-v12 .qcb-public-ticket-line strong {display:block;font-size:13px;color:#203d31;}
.qcb-public-v12 .qcb-public-ticket-line small {display:block;color:#5e7469;margin-top:4px;font-size:12px;}
.qcb-public-v12 .qcb-public-quantity {display:grid;grid-template-columns:38px 42px 38px;align-items:center;border:1px solid #d5dfd9;border-radius:9px;background:#fff;overflow:hidden;flex-shrink:0;}
.qcb-public-v12 .qcb-public-quantity button {all:unset;display:grid;place-items:center;cursor:pointer;min-height:41px;font-size:21px;font-weight:700;color:#234937;background:#fff;}
.qcb-public-v12 .qcb-public-quantity button:hover {background:#eaf1eb;}
.qcb-public-v12 .qcb-public-form .qcb-public-quantity input[type=number] {display:block;min-height:41px;height:41px;border:0;border-left:1px solid #e3e8e4;border-right:1px solid #e3e8e4;border-radius:0;padding:0;text-align:center;font-weight:800;font-size:15px;appearance:textfield;-moz-appearance:textfield;}
.qcb-public-v12 input[type=number]::-webkit-outer-spin-button,.qcb-public-v12 input[type=number]::-webkit-inner-spin-button {appearance:none;margin:0;}
.qcb-public-v12 .qcb-public-contact-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.qcb-public-v12 .qcb-public-form label {font-weight:700;font-size:12px;color:#314b40;}
.qcb-public-v12 .qcb-public-form label>span[aria-hidden="true"] {color:#c35822;}
.qcb-public-v12 .qcb-public-form :is(input:not([type="hidden"]),select) {min-height:42px;background:#fff;border:1px solid #ccd9d0;border-radius:7px;font-size:13px;}
.qcb-public-v12 .qcb-public-form input[readonly]{background:#ecf3ee;color:#4b6354;}
.qcb-public-v12 .qcb-public-attendee-section h4 {font-size:14px;margin:15px 0 2px;}
.qcb-public-v12 .qcb-public-note{margin:4px 0 7px;font-size:12px;color:#657b6c;}
.qcb-public-v12 [data-qcb-public-guests]{display:grid;gap:8px;}
.qcb-public-v12 [data-qcb-public-guests] label {margin:0;}
.qcb-public-v12 .qcb-public-donations{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px;}
.qcb-public-v12 .qcb-public-form .qcb-public-donation-option{display:block;margin:0;}
.qcb-public-v12 .qcb-public-donation-option input {position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;}
.qcb-public-v12 .qcb-public-donation-option span {display:block;border:1px solid #c7d7cd;border-radius:999px;padding:9px 17px;min-width:57px;text-align:center;background:#fff;cursor:pointer;color:#264737;font-size:12px;font-weight:800;}
.qcb-public-v12 .qcb-public-donation-option input:checked+span {background:#215a3b;border-color:#215a3b;color:#fff;}
.qcb-public-v12 .qcb-public-donation-option input:focus-visible+span {outline:2px solid #e87812;outline-offset:2px;}
.qcb-public-v12 .qcb-public-other-donation {max-width:220px;}
.qcb-public-v12 .qcb-public-cancel-box {border:1px solid #dae5dc;border-radius:10px;padding:15px 16px;background:#fbfcfa;margin-bottom:6px;}
.qcb-public-v12 .qcb-public-cancel-box :is(h2,h3) {font-size:15px;margin:0 0 8px;}
.qcb-public-v12 .qcb-public-cancel-box p {font-size:12px;margin:5px 0;}
.qcb-public-v12 .qcb-public-checkout-summary {min-width:0;position:sticky;top:20px;}
.qcb-public-v12 .qcb-public-price-breakdown {border:1px solid #dfe7db;background:#fff;border-radius:12px;padding:0;margin:0 0 13px;overflow:hidden;}
.qcb-public-v12 .qcb-public-price-breakdown h3{font:850 18px/1.25 "League Spartan","Work Sans",sans-serif;background:#eaf3e5;padding:15px;margin:0;}
.qcb-public-v12 .qcb-public-price-breakdown dl{margin:0;padding:10px 14px 0;}
.qcb-public-v12 .qcb-public-price-breakdown dl>div{font-size:12px;padding:7px 0;align-items:center;}
.qcb-public-v12 .qcb-public-price-breakdown dt {font-weight:500;}
.qcb-public-v12 .qcb-public-price-breakdown dd {font-weight:750;}
.qcb-public-v12 .qcb-public-price-breakdown .qcb-public-total {background:#fbefda;border:0;margin:9px -14px 0;padding:14px;}
.qcb-public-v12 .qcb-public-stripe-box {padding:16px;border:1px solid #dce6de;border-radius:12px;background:#fff;}
.qcb-public-v12 .qcb-public-stripe-box h3 {margin:0 0 8px;font-size:17px;}
.qcb-public-v12 .qcb-public-stripe-box p {font-size:12px;line-height:1.5;}
.qcb-public-booking.qcb-public-v12 .qcb-public-primary {width:100%;max-width:100%;display:flex;margin:15px 0 11px;min-height:48px;border-radius:9px;border:1px solid #d56706;background:#e8740a;color:#fff;font-size:14px;font-weight:850;}
.qcb-public-booking.qcb-public-v12 .qcb-public-primary:hover {background:#c96307;border-color:#c96307;color:#fff;}
.qcb-public-v12 .qcb-public-privacy-note {font-size:11px;color:#6b7a70;margin:18px 0 0;}
.qcb-public-v12 .qcb-public-member-option{background:#edf4ee;border-radius:10px;padding:15px;margin:15px 0;}
.qcb-public-v12 .qcb-public-member-option .qcb-public-primary{max-width:260px;}
@container (max-width: 760px) {
  .qcb-public-v12 .qcb-public-intro {grid-template-columns:minmax(0,1fr);gap:14px;}
  .qcb-public-v12 .qcb-public-poster img {max-height:260px;object-position:left center;}
  .qcb-public-v12 .qcb-public-checkout-grid {grid-template-columns:minmax(0,1fr);gap:12px;}
  .qcb-public-v12 .qcb-public-checkout-summary {position:static;}
  .qcb-public-v12 .qcb-public-facts {grid-template-columns:1fr 1fr;}
}
@container (max-width: 520px) {
  .qcb-public-v12 .qcb-public-intro {display:block;}
  .qcb-public-v12 .qcb-public-poster {float:left;width:115px;max-width:37%;margin:0 13px 9px 0;}
  .qcb-public-v12 .qcb-public-poster img {max-height:158px;object-fit:contain;}
  .qcb-public-v12 .qcb-public-event-copy {display:flow-root;}
  .qcb-public-v12 .qcb-public-event-copy h2 {font-size:23px;margin:7px 0;}
  .qcb-public-v12 .qcb-public-event-meta{display:grid;gap:5px;font-size:12px;margin:0 0 10px;}
  .qcb-public-v12 .qcb-public-event-description {clear:both;padding-top:12px;}
  .qcb-public-v12 .qcb-public-facts {grid-template-columns:1fr;gap:9px;margin-top:11px;padding-top:12px;}
  .qcb-public-v12 .qcb-public-fact-icon {font-size:20px;}
  .qcb-public-v12 .qcb-public-contact-grid {grid-template-columns:minmax(0,1fr);gap:0;}
  .qcb-public-v12 .qcb-public-form-grid {grid-template-columns:1fr;gap:0;}
  .qcb-public-v12 .qcb-public-booking-heading {font-size:22px;}
  .qcb-public-v12 .qcb-public-donations {gap:5px;}
  .qcb-public-v12 .qcb-public-donation-option span {min-width:47px;padding:8px 10px;}
}
.qcb-public-booking.qcb-public-v12 [hidden] {display:none!important;}
.qcb-public-v12 .qcb-public-form .qcb-public-donation-option input[type="radio"] {position:absolute;opacity:0;width:1px;min-width:1px;max-width:1px;height:1px;min-height:1px;padding:0;border:0;pointer-events:none;}
.qcb-public-v12 .qcb-public-intro.qcb-public-no-image {grid-template-columns:minmax(0,1fr);}
.qcb-public-v12 .qcb-public-field-label {display:block;font-size:12px;font-weight:700;color:#314b40;}
.qcb-public-v12 .qcb-public-field-label b{color:#bf5926;}
.qcb-public-v12 .qcb-public-svg {display:inline-block;width:19px;height:19px;flex:none;vertical-align:middle;}
.qcb-public-v12 .qcb-public-fact-icon .qcb-public-svg {width:24px;height:24px;}
.qcb-public-v12 .qcb-public-event-meta>span {display:inline-flex;align-items:center;gap:5px;}
.qcb-public-booking.qcb-public-v12 button.qcb-public-primary:disabled {background:#c1cfc4;border-color:#c1cfc4;color:#405548;opacity:.8;cursor:not-allowed;}

/* RC14: public guest confirmation, adapted from QCB's approved email visual language. */
.qcb-public-booking.qcb-guest-success-page {
  padding:0;max-width:920px;margin:0 auto;border:1px solid #dbe5dc;border-radius:16px;
  background:#fff;overflow:hidden;box-shadow:0 12px 30px rgba(24,64,47,.065);
}
.qcb-guest-success-page .qcb-guest-success-top {
  display:flex;justify-content:space-between;align-items:center;gap:18px;padding:15px clamp(18px,3vw,34px);
  background:#fff;
}
.qcb-guest-success-page .qcb-guest-success-top img {display:block;width:155px;max-width:52%;height:auto;object-fit:contain;}
.qcb-guest-success-page .qcb-guest-success-status {
  display:inline-flex;align-items:center;gap:8px;color:#22553d;font-size:11px;font-weight:800;
  letter-spacing:.07em;white-space:nowrap;
}
.qcb-guest-success-page .qcb-guest-success-status>span {
  display:grid;place-items:center;width:25px;height:25px;border-radius:100%;background:#e1f1e8;color:#1c6749;
  font-weight:800;font-size:15px;
}
.qcb-guest-success-page .qcb-guest-success-hero {
  padding:clamp(34px,5vw,57px) clamp(24px,5vw,58px);
  background-color:#174b36;
  background-image:linear-gradient(90deg,rgba(14,58,39,.82),rgba(17,76,49,.54)),url('https://qldcampingbears.com.au/wp-content/uploads/2026/10/Topographic-Lines-rotated.jpg');
  background-size:cover;background-position:center;color:#fff;
}
.qcb-guest-success-page .qcb-guest-success-hero>span {display:block;font-size:11px;letter-spacing:.17em;font-weight:800;color:#f4b06f;margin-bottom:9px;}
.qcb-public-booking.qcb-guest-success-page .qcb-guest-success-hero h1 {
  color:#fff;margin:0 0 5px;font:850 clamp(42px,7vw,62px)/1.04 "League Spartan","Work Sans",Arial,sans-serif;
  letter-spacing:-.035em;
}
.qcb-public-booking.qcb-guest-success-page .qcb-guest-success-hero p {color:#fff;font:750 clamp(18px,3vw,26px)/1.3 "Work Sans",Arial,sans-serif;margin:0;}
.qcb-guest-success-page .qcb-guest-success-content {padding:clamp(22px,4vw,40px) clamp(18px,4vw,42px) 33px;}
.qcb-public-booking.qcb-guest-success-page .qcb-guest-success-content h2 {color:#1d503a;font-size:clamp(24px,3vw,30px);margin:0 0 8px;}
.qcb-public-booking.qcb-guest-success-page .qcb-guest-success-lead {font-size:14px;line-height:1.65;color:#5d6d63;margin:0 0 23px;}
.qcb-guest-success-page .qcb-guest-success-card {border:1px solid #dde5dd;border-radius:13px;overflow:hidden;background:#fff;}
.qcb-guest-success-page .qcb-guest-success-card-head,.qcb-guest-success-page .qcb-guest-success-reference {
  background:#f1f5ef;display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 18px;
}
.qcb-guest-success-page .qcb-guest-success-card-head {font-size:11px;letter-spacing:.12em;color:#68756d;font-weight:800;}
.qcb-guest-success-page .qcb-guest-success-card-head strong {color:#1f6548;font-size:11px;letter-spacing:0;}
.qcb-guest-success-page .qcb-guest-success-card-body {padding:20px;}
.qcb-guest-success-page .qcb-guest-success-event {display:flex;align-items:flex-start;gap:22px;min-width:0;}
.qcb-guest-success-page .qcb-guest-success-event>img {width:160px;max-width:38%;height:180px;object-fit:contain;object-position:center top;border-radius:8px;background:#f4f2f4;flex-shrink:0;}
.qcb-guest-success-page .qcb-guest-success-event>div {min-width:0;flex:1;}
.qcb-public-booking.qcb-guest-success-page .qcb-guest-success-event h3 {font-size:20px;line-height:1.3;margin:0 0 10px;color:#233a2e;}
.qcb-public-booking.qcb-guest-success-page .qcb-guest-success-event p {font-size:13px;margin:0 0 6px;line-height:1.5;color:#627269;}
.qcb-guest-success-page .qcb-guest-success-crew {border-top:1px dashed #d8e1d7;margin-top:18px;padding-top:16px;}
.qcb-public-booking.qcb-guest-success-page .qcb-guest-success-crew h4 {font-size:11px;font-weight:800;letter-spacing:.11em;color:#69766e;margin:0 0 8px;}
.qcb-guest-success-page .qcb-guest-success-crew ul {list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:5px 15px;}
.qcb-guest-success-page .qcb-guest-success-crew li {font-size:13px;line-height:1.6;color:#385044;}
.qcb-guest-success-page .qcb-guest-success-crew li:not(:last-child)::after {content:'·';margin-left:15px;color:#a5afa8;}
.qcb-guest-success-page .qcb-guest-success-reference {font-size:12px;color:#5e6d64;}
.qcb-guest-success-page .qcb-guest-success-reference strong {color:#203f30;overflow-wrap:anywhere;}
.qcb-guest-success-page .qcb-guest-success-payment {margin-top:20px;border:1px solid #e0e7e0;border-radius:13px;padding:18px 20px;background:#fff;}
.qcb-public-booking.qcb-guest-success-page .qcb-guest-success-payment h3 {font-size:18px;color:#214a35;margin:0 0 12px;}
.qcb-guest-success-page .qcb-guest-success-payment dl {padding:0;margin:0;}
.qcb-guest-success-page .qcb-guest-success-payment dl>div {display:flex;justify-content:space-between;gap:16px;padding:6px 0;font-size:13px;}
.qcb-guest-success-page .qcb-guest-success-payment dt {font-weight:500;color:#55685e;}
.qcb-guest-success-page .qcb-guest-success-payment dd {font-weight:700;color:#254b36;margin:0;text-align:right;}
.qcb-guest-success-page .qcb-guest-success-payment .qcb-guest-success-payment-total {border-top:1px solid #e0e6df;margin-top:7px;padding-top:14px;font-size:16px;}
.qcb-guest-success-page .qcb-guest-success-payment-total :is(dt,dd) {color:#173f2d;font-weight:850;}
.qcb-guest-success-page .qcb-guest-success-receipt {display:inline-flex;align-items:center;gap:9px;color:#1f6447;font-size:13px;font-weight:800;text-decoration:underline;margin-top:17px;}
.qcb-guest-success-page .qcb-guest-success-receipt svg {width:21px;height:21px;}
.qcb-public-booking.qcb-guest-success-page .qcb-guest-success-email-note {font-size:12px;line-height:1.6;color:#617268;margin:15px 0 0;overflow-wrap:anywhere;}
.qcb-guest-success-page .qcb-guest-success-footer {display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:24px clamp(18px,4vw,42px);background:#f1f5ef;border-top:1px solid #dfe8dd;color:#59685d;font-size:13px;}
.qcb-guest-success-page .qcb-guest-success-footer strong {color:#24563e;font-size:16px;}
.qcb-guest-success-page .qcb-guest-success-footer a {color:#24563e;font-weight:700;margin-top:10px;}
.qcb-public-booking.qcb-guest-state-page {max-width:900px;margin:0 auto;padding:clamp(24px,4vw,42px);}
.qcb-guest-state-page .qcb-guest-state-icon {width:46px;height:46px;border-radius:50%;background:#eef4eb;color:#315f40;display:grid;place-items:center;margin-bottom:12px;font-size:20px;}
.qcb-guest-state-page .qcb-guest-state-summary {border:1px solid #dce5dc;border-radius:12px;overflow:hidden;margin-top:25px;}
.qcb-guest-state-page .qcb-guest-state-summary>div {display:flex;justify-content:space-between;gap:10px;padding:12px 16px;border-top:1px solid #e6ebe5;font-size:13px;}
.qcb-guest-state-page .qcb-guest-state-summary>div:first-child {border-top:0;}
.qcb-guest-state-page .qcb-guest-state-summary>div span {text-align:right;overflow-wrap:anywhere;}
@container (max-width:630px){
  .qcb-guest-success-page .qcb-guest-success-top{padding:15px 18px;gap:6px;}
  .qcb-guest-success-page .qcb-guest-success-top img{width:118px;}
  .qcb-guest-success-page .qcb-guest-success-status{font-size:9px;gap:5px;letter-spacing:0;}
  .qcb-guest-success-page .qcb-guest-success-status>span{width:21px;height:21px;}
  .qcb-guest-success-page .qcb-guest-success-event{gap:13px;}
  .qcb-guest-success-page .qcb-guest-success-event>img{width:110px;height:147px;max-width:39%;}
  .qcb-guest-success-page .qcb-guest-success-card-body{padding:16px;}
  .qcb-guest-success-page .qcb-guest-success-crew ul{display:block;}
  .qcb-guest-success-page .qcb-guest-success-crew li:not(:last-child)::after{content:none;}
}

/* RC15: Checkout is a two-column workspace while a payment can still be made.
 * The pending-status screen remains separate and must never offer a second payment. */
.qcb-public-booking.qcb-guest-state-page.qcb-guest-checkout-page { max-width:1180px; width:100%; }
.qcb-guest-checkout-page .qcb-guest-checkout-grid { display:grid; grid-template-columns:minmax(0,43%) minmax(0,1fr); align-items:start; gap:clamp(18px,3.2vw,44px); }
.qcb-guest-checkout-page .qcb-guest-checkout-grid>div { min-width:0; }
.qcb-guest-checkout-page .qcb-guest-checkout-info { padding-right:clamp(0px,2vw,20px); }
.qcb-guest-checkout-page .qcb-guest-checkout-payment { border-left:1px solid #dde8dc; padding-left:clamp(18px,3vw,36px); }
.qcb-public-booking.qcb-guest-checkout-page h2 { font-size:clamp(22px,2.7vw,29px); margin:0 0 8px; }
.qcb-guest-checkout-page .qcb-guest-checkout-event { display:flex; align-items:flex-start; gap:16px; margin:22px 0 18px; }
.qcb-guest-checkout-page .qcb-guest-checkout-event>img { display:block; width:min(34%,150px); height:160px; object-fit:contain; object-position:top center; background:#f2f4ef; border-radius:10px; }
.qcb-guest-checkout-page .qcb-guest-checkout-event>div { min-width:0; flex:1; }
.qcb-public-booking.qcb-guest-checkout-page .qcb-guest-checkout-event h3 { margin:0 0 8px; font-size:19px; }
.qcb-guest-checkout-page .qcb-guest-checkout-event p { font-size:13px; margin:0 0 6px; }
.qcb-guest-checkout-page .qcb-guest-state-summary { margin-top:14px; }
.qcb-guest-checkout-page .qcb-guest-state-summary .qcb-guest-summary-total { background:#eff4ec; color:#194a32; font-size:16px; font-weight:800; }
.qcb-guest-checkout-page [data-qcb-public-stripe] { display:block; width:100%; min-width:0; min-height:270px; margin-top:20px; }
.qcb-guest-checkout-page [data-qcb-public-stripe] iframe { max-width:100%; }
/* A single coherent confirmation card, with information left and paid summary right. */
.qcb-public-booking.qcb-guest-success-page { max-width:1090px; }
.qcb-guest-success-page .qcb-guest-success-unified { display:grid; grid-template-columns:minmax(0,55%) minmax(0,45%); border:1px solid #dde5dd; border-radius:13px; overflow:hidden; background:#fff; }
.qcb-guest-success-page .qcb-guest-success-unified>div { min-width:0; }
.qcb-guest-success-page .qcb-guest-success-unified .qcb-guest-success-card { border:0; border-radius:0; min-width:0; }
.qcb-guest-success-page .qcb-guest-success-payment-column { display:flex; flex-direction:column; border-left:1px solid #dde5dd; padding:24px 22px; background:#f9fbf8; }
.qcb-guest-success-page .qcb-guest-success-unified .qcb-guest-success-payment { border:0; margin:0; padding:0; background:transparent; border-radius:0; }
.qcb-guest-success-page .qcb-guest-success-unified .qcb-guest-success-card-body { padding:20px; }
.qcb-guest-success-page .qcb-guest-success-unified .qcb-guest-success-event>img { width:138px; max-width:38%; height:165px; object-fit:contain; }
.qcb-public-booking.qcb-guest-success-page .qcb-guest-success-payment-column .qcb-guest-success-email-note { margin:18px 0 0; padding-top:14px; border-top:1px solid #dae4d8; }
@container (max-width:735px) {
  .qcb-guest-checkout-page .qcb-guest-checkout-grid { grid-template-columns:1fr; gap:24px; }
  .qcb-guest-checkout-page .qcb-guest-checkout-info { padding-right:0; }
  .qcb-guest-checkout-page .qcb-guest-checkout-payment { border-left:0; border-top:1px solid #dde8dc; padding:22px 0 0; }
  .qcb-guest-success-page .qcb-guest-success-unified { grid-template-columns:1fr; }
  .qcb-guest-success-page .qcb-guest-success-payment-column { border-left:0; border-top:1px solid #dde5dd; padding:20px; }
}
@media(max-width:650px) {
  .qcb-guest-checkout-page .qcb-guest-checkout-grid { grid-template-columns:1fr; }
  .qcb-guest-success-page .qcb-guest-success-unified { grid-template-columns:1fr; }
}

/* v3.1.6: public booking component reused unchanged inside the signed-in portal. */
.qcb-portal-public-booking > .qcb-back-link{display:inline-flex;align-items:center;gap:.4rem;margin:0 0 1.2rem;text-decoration:none;}
.qcb-portal-public-booking .qcb-public-booking{width:100%;max-width:100%;}
