.qe-shell{
  --qe-bg: color-mix(in srgb, var(--bg, #f7f4ef) 96%, white);
  --qe-ink: var(--ink, #0f172a);
  --qe-soft: color-mix(in srgb, var(--qe-ink) 60%, white);
  --qe-line: color-mix(in srgb, var(--qe-ink) 10%, transparent);
  --qe-accent: var(--c2, #111827);
  width: min(100%, 88rem);
  margin: 0 auto;
  padding: 0 24px;
  background: transparent;
  font-family: var(--font-body);
}

.qe-shell *{ box-sizing:border-box; }

.qe-stage{
  position: relative;
}

.qe-inner{
  min-height: 620px;
  width: min(100%, 56rem);
  margin: 0 auto;
}

.qe-left{
  width: 100%;
  max-width: none;
  padding: 40px 32px 48px;
}

.qe-sidecar{
  position: absolute;
  top: 40px;
  right: 0;
  width: 12rem;
  display: flex;
  justify-content: flex-end;
}

.qe-progress{
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 28px;
}

.qe-progress-bar{
  flex: 1;
  height: 4px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--qe-ink) 8%, white);
  overflow: hidden;
}

.qe-progress-fill{
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: var(--c1, var(--qe-accent));
  transition: width .24s ease;
}

.qe-step-count{
  flex: 0 0 auto;
  min-width: 48px;
  text-align: right;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 700;
  color: color-mix(in srgb, var(--qe-ink) 52%, white);
}

.qe-question{
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.qe-question-title{
  max-width: 20ch;
  margin: 0 auto;
  text-align: center;
  font-size: clamp(2rem, 5vw, 4.2rem);
  line-height: .95;
  letter-spacing: -.04em;
  font-weight: 900;
  color: var(--c1);
  font-family: var(--font-heading);
}

.qe-question-copy{
  max-width: 42ch;
  margin: 14px auto 0;
  text-align: center;
  font-size: 14px;
  line-height: 1.65;
  color: var(--qe-soft);
}

.qe-info-slide{
  align-items: center;
}

.qe-info-eyebrow{
  margin: 0 auto 10px;
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 800;
  color: color-mix(in srgb, var(--qe-ink) 52%, white);
}

.qe-info-media-wrap{
  width: 100%;
  max-width: 52rem;
  margin: 28px auto 0;
  display: grid;
  gap: 18px;
}

.qe-info-media,
.qe-info-embed{
  margin: 0;
  overflow: hidden;
  border-radius: 28px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
  background: color-mix(in srgb, var(--bg, white) 84%, white);
  box-shadow: 0 18px 36px rgba(15, 23, 42, .08);
}

.qe-info-image{
  display: block;
  width: 100%;
  height: min(50vw, 22rem);
  object-fit: cover;
  object-position: 0% 70%;

}

.qe-info-embed iframe{
  display: block;
  width: 100%;
  height: min(42vw, 20rem);
  border: 0;
}

.qe-info-caption{
  padding: 12px 14px;
  font-size: 12px;
  line-height: 1.5;
  color: color-mix(in srgb, var(--qe-ink) 58%, white);
}

.qe-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 30px;
}

.qe-grid--single{
  grid-template-columns: minmax(0, 1fr);
  max-width: 34rem;
  margin-left: auto;
  margin-right: auto;
}

.qe-grid--extras{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.qe-grid--quantity{
  grid-template-columns: minmax(0, 1fr);
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
}

.qe-grid--extras.qe-grid--single{
  grid-template-columns: minmax(0, 1fr);
  max-width: 28rem;
}

.qe-grid--extras.qe-grid--single .qe-card--extra{
  justify-self: center;
  width: auto;
  min-width: min(100%, 24rem);
}

.qe-card{
  position: relative;
  min-height: 122px;
  padding: 18px;
  border-radius: 24px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
  background: color-mix(in srgb, var(--bg, white) 82%, white);
  text-align: left;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
  box-shadow: 0 18px 36px rgba(15, 23, 42, .08);
}

.qe-card--extra{
  min-height: 0;
  padding: 10px 14px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--bg, white) 90%, white);
  box-shadow: 0 10px 22px rgba(15, 23, 42, .06);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.qe-card--counted{
  padding: 16px 18px;
  border-radius: 28px;
  align-items: flex-start;
}

.qe-card--extra:hover{
  transform: translateY(-1px);
  box-shadow: 0 18px 34px rgba(15, 23, 42, .12);
}

.qe-extra-pill-main{
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.qe-counted-pill-main{
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.qe-counted-pill-copy{
  min-width: 0;
  display: grid;
  gap: 6px;
}

.qe-counted-pill-title{
  margin-top: 0;
  line-height: 1.2;
}

.qe-counted-pill-desc{
  font-size: 13px;
  line-height: 1.55;
  color: var(--qe-soft);
}

.qe-extra-pill-inner{
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.qe-extra-pill-copy{
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.qe-extra-pill-emoji{
  flex: 0 0 auto;
  font-size: 1rem;
  line-height: 1;
}

.qe-extra-pill-title{
  min-width: 0;
  font-size: 14px;
  line-height: 1.35;
  font-weight: 500;
  color: var(--qe-ink);
}

.qe-extra-pill-side{
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.qe-extra-pill-price{
  flex: 0 0 auto;
  font-size: 13px;
  line-height: 1;
  font-weight: 500;
  color: color-mix(in srgb, var(--qe-ink) 78%, white);
}

.qe-extra-stepper{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
  background: color-mix(in srgb, var(--bg, white) 94%, white);
}

.qe-extra-stepper-btn{
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 999px;
  background: color-mix(in srgb, var(--qe-ink) 8%, white);
  color: var(--qe-ink);
  font-size: 16px;
  font-weight: 800;
  cursor: pointer;
}

.qe-extra-stepper-btn[disabled]{
  opacity: .45;
  cursor: not-allowed;
}

.qe-extra-stepper-value{
  min-width: 18px;
  text-align: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--qe-ink);
}

.qe-card:hover{
  transform: translateY(-1px);
  box-shadow: 0 26px 46px rgba(15, 23, 42, .14);
}

.qe-card.is-selected,
.qe-choice-pill.is-selected{
  border-color: color-mix(in srgb, var(--c1, var(--qe-accent)) 40%, white);
  background: color-mix(in srgb, var(--c1, var(--qe-accent)) 8%, var(--bg, white));
}

.qe-card-badge{
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 6px 10px;
  background: color-mix(in srgb, var(--qe-ink) 6%, white);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--qe-ink) 64%, white);
}

.qe-card-title{
  margin-top: 6px;
  font-size: 1rem;
  font-weight: 800;
  color: var(--qe-ink);
}

.qe-option-title{
  color: var(--c3);
}

.qe-card-price{
  margin-top: 6px;
  font-size: 13px;
  font-weight: 800;
  color: var(--c2, var(--qe-accent));
}

.qe-card-emoji{
  margin-top: 12px;
  font-size: 1.5rem;
  line-height: 1;
}

.qe-card-copy{
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.55;
  color: var(--qe-soft);
}

.qe-choice-list{
  display: grid;
  gap: 12px;
  margin-top: 28px;
}

.qe-choice-allocation{
  margin: 16px auto 0;
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  color: color-mix(in srgb, var(--qe-ink) 64%, white);
}

.qe-choice-list--single{
  max-width: 34rem;
  margin-left: auto;
  margin-right: auto;
}

.qe-choice-list--rich{
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
}

.qe-choice-pill{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-radius: 22px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
  background: color-mix(in srgb, var(--bg, white) 82%, white);
  padding: 16px 18px;
  text-align: left;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
  box-shadow: 0 14px 30px rgba(15, 23, 42, .07);
}

.qe-choice-pill--rich{
  align-items: flex-start;
  padding: 8px 20px;
}

.qe-choice-pill-copy{
  min-width: 0;
  flex: 1 1 auto;
}

.qe-choice-pill-status{
  flex: 0 0 auto;
  align-self: center;
}

.qe-choice-pill--rich .qe-choice-pill-status{
  align-self: flex-start;
  margin-top: 2px;
}

.qe-choice-pill:hover{
  transform: translateY(-1px);
  box-shadow: 0 22px 40px rgba(15, 23, 42, .11);
}

.qe-counter{
  margin-top: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}

.qe-contact-card{
  width: 100%;
  max-width: 36rem;
  margin: 28px auto 0;
  display: grid;
  gap: 14px;
  padding: 22px;
  border-radius: 28px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
  background: color-mix(in srgb, var(--bg, white) 84%, white);
  box-shadow: 0 18px 36px rgba(15, 23, 42, .08);
}

.qe-field{
  display: grid;
  gap: 8px;
}

.qe-field-label{
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 800;
  color: color-mix(in srgb, var(--c3) 52%, white);
}

.qe-input{
  width: 100%;
  min-height: 50px;
  border-radius: 16px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
  background: color-mix(in srgb, var(--bg, white) 92%, white);
  color: var(--qe-ink);
  padding: 0 14px;
  font: inherit;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .06);
}

.qe-textarea{
  min-height: 110px;
  padding: 14px;
  resize: vertical;
}

.qe-input:focus{
  outline: none;
  border-color: color-mix(in srgb, var(--c1, var(--qe-accent)) 40%, white);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--c1, var(--qe-accent)) 10%, transparent);
}

.qe-counter-btn{
  width: 54px;
  height: 54px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
  background: color-mix(in srgb, var(--bg, white) 88%, white);
  color: var(--qe-ink);
  font-size: 24px;
  font-weight: 700;
}

.qe-counter-value{
  min-width: 110px;
  text-align: center;
}

.qe-counter-number{
  font-size: clamp(2.25rem, 5vw, 4rem);
  line-height: .92;
  font-weight: 900;
  color: var(--qe-ink);
  font-family: var(--font-heading);
}

.qe-counter-label{
  margin-top: 8px;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--qe-ink) 52%, white);
}

.qe-summary-card{
  width: 80%;
  max-width: 48rem;
  margin: 8px auto 0;
  padding: 22px;
  border-radius: 28px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
  background: color-mix(in srgb, var(--bg, white) 84%, white);
  box-shadow: 0 18px 36px rgba(15, 23, 42, .08);
}

.qe-booking-box{
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
}

.qe-booking-box--question{
  width: 100%;
  max-width: 52rem;
  margin: 30px auto 0;
  padding-top: 0;
  border-top: 0;
}

.qe-date-label,
.qe-slots-title{
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 800;
  color: color-mix(in srgb, var(--qe-ink) 52%, white);
}

.qe-cal-root{
  width: min(100%, 36rem);
  margin: 10px auto 0;
}

.qe-cal-pop{
  position: relative;
  width: 100%;
  margin-top: 10px;
  border-radius: 24px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
  background: color-mix(in srgb, var(--bg, white) 92%, white);
  padding: 12px;
  box-shadow: 0 18px 36px rgba(15, 23, 42, .08);
}

.qe-cal-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.qe-cal-month{
  font-size: 12px;
  font-weight: 700;
  color: var(--qe-ink);
  text-transform: capitalize;
}

.qe-cal-nav{
  display: flex;
  align-items: center;
  gap: 8px;
}

.qe-cal-arrow{
  width: 36px;
  height: 36px;
  border-radius: 18px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
  background: color-mix(in srgb, var(--bg, white) 92%, white);
  color: var(--qe-ink);
  font-size: 18px;
  font-weight: 700;
}

.qe-cal-weekdays,
.qe-cal-grid{
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
}

.qe-cal-weekdays{
  margin-top: 12px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--qe-soft);
  text-align: center;
}

.qe-cal-grid{
  margin-top: 8px;
}

.qe-cal-blank{
  height: 36px;
}

.qe-cal-day{
  height: 56px;
  width: 56px;
  border-radius: 99px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
  background: color-mix(in srgb, var(--bg, white) 92%, white);
  color: var(--qe-ink);
  font-size: 12px;
  font-weight: 600;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}

.qe-cal-day:hover{
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(15, 23, 42, .08);
}

.qe-cal-day.is-selected{
  background: var(--c2, var(--qe-accent));
  color: white;
  border-color: color-mix(in srgb, var(--c2, var(--qe-accent)) 55%, white);
}

.qe-cal-day.is-today:not(.is-selected){
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--c3, var(--qe-accent)) 35%, white);
}

.qe-cal-day.is-disabled{
  opacity: .45;
  cursor: not-allowed;
  box-shadow: none;
}

.qe-slots-wrap{
  width: min(100%, 36rem);
  margin-top: 16px;
  margin-left: auto;
  margin-right: auto;
}

.qe-slots-note,
.qe-slot-picked{
  margin-top: 10px;
  font-size: 13px;
  color: var(--c3);
}

.qe-slot-picked{
  text-align: center;
}

.qe-slots-grid{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.qe-slot{
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 12%, white);
  background: color-mix(in srgb, var(--bg, white) 88%, white);
  color: var(--qe-ink);
  min-height: 40px;
  padding: 0 14px;
  font-size: 13px;
  font-weight: 700;
  box-shadow: 0 10px 22px rgba(15, 23, 42, .06);
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.qe-slot:hover{
  transform: translateY(-1px);
}

.qe-slot.is-selected{
  border-color: color-mix(in srgb, var(--c1, var(--qe-accent)) 40%, white);
  background: color-mix(in srgb, var(--c1, var(--qe-accent)) 8%, var(--bg, white));
}

.qe-summary-topbar{
  width: 100%;
}

.qe-summary-topbar > div{
  width: 100%;
}

.qe-question--summary{
  width: 100%;
  max-width: 48rem;
  margin: 0 auto;
}

.qe-summary-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
    align-items: center;

}

.qe-reset-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 16px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--qe-ink) 12%, white);
  background: color-mix(in srgb, var(--ink, white) 90%, white);
  font: inherit;
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--c3) 54%, white);
  cursor: pointer;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .06);
}

.qe-summary-title{
  margin-top: 12px;
  padding-right: 10rem;
  font-size: clamp(1.3rem, 2vw, 2rem);
  line-height: 1.02;
  font-weight: 800;
  color: var(--c3);
  font-family: var(--font-heading);
}

.qe-people-chip{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding: 8px 12px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--c1, var(--qe-accent)) 12%, var(--bg, white));
  border: 1px solid color-mix(in srgb, var(--c1, var(--qe-accent)) 22%, white);
  color: var(--qe-ink);
  font-size: 12px;
  font-weight: 700;
}

.qe-people-chip-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--c3, var(--qe-accent)) 18%, white);
}

.qe-summary-list{
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.qe-summary-contact{
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid color-mix(in srgb, var(--qe-ink) 10%, white);
}

.qe-summary-row{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.qe-summary-row--warning{
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid color-mix(in srgb, var(--c3, var(--qe-accent)) 22%, white);
  background: color-mix(in srgb, var(--c3, var(--qe-accent)) 8%, var(--bg, white));
}

.qe-summary-key{
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 800;
  color: color-mix(in srgb, var(--qe-ink) 48%, white);
}

.qe-summary-note{
  margin-top: 6px;
  margin-left: 10px;
  font-size: 14px;
  line-height: 1.45;
  font-weight: 600;
  color: var(--qe-ink);
}

.qe-summary-meta{
  margin-top: 5px;
  font-size: 11px;
  margin-left: 10px;
  line-height: 1.45;
  color: var(--qe-soft);
}

.qe-summary-subline{
  margin-left: 1.35rem;
}

.qe-summary-value{
  text-align: right;
  font-size: 14px;
  font-weight: 700;
  color: var(--qe-ink);
}

.qe-summary-value--soft{
  font-size: 12px;
  font-weight: 700;
  color: color-mix(in srgb, var(--qe-ink) 58%, white);
}

.qe-money{
  font-size: clamp(1.5rem, 2.2vw, 2.25rem);
  line-height: 1;
  font-weight: 900;
  color: var(--c3);
  font-family: var(--font-heading);
}

.qe-nav{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 24px;
}

.qe-actions{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.qe-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  transition: transform .18s ease, opacity .18s ease, background .18s ease;
}

.qe-btn:hover{ 
    background: var(--ink, var(--qe-accent));
  color: var(--bg, white);
  transform: translateY(-1px); }

.qe-btn-primary{
  background: var(--c3, var(--qe-accent));
  color: var(--bg, white);
}

.qe-btn-ghost{
  background: transparent;
  color: var(--qe-ink);
  border: 1px solid color-mix(in srgb, var(--qe-ink) 12%, white);
}

.qe-btn[disabled]{ opacity: .4; pointer-events: none; }
.qe-btn.is-disabled{ opacity: .4; pointer-events: none; }

@media (max-width: 1100px){
  .qe-sidecar{
    position: static;
    width: auto;
    justify-content: center;
    margin: 0 0 14px;
  }
}

@media (max-width: 720px){
  .qe-shell{
    width: min(100%, 64rem);
    padding: 0 12px;
  }

  .qe-left{
    padding: 22px 18px 24px;
  }

  .qe-question{
    min-height: 0;
  }

  .qe-question-title{
    max-width: none;
  }

  .qe-grid{
    grid-template-columns: 1fr;
  }

  .qe-grid--extras{
    grid-template-columns: 1fr;
  }

  .qe-card--extra{
    flex-wrap: wrap;
  }

  .qe-extra-pill-main,
  .qe-extra-pill-inner,
  .qe-extra-pill-side{
    width: 100%;
  }

  .qe-extra-pill-inner,
  .qe-extra-pill-side{
    justify-content: space-between;
  }

  .qe-cal-root,
  .qe-slots-wrap{
    width: 100%;
    max-width: none;
  }

  .qe-cal-pop{
    width: 100%;
    max-width: none;
  }

  .qe-summary-head,
  .qe-nav,
  .qe-summary-topbar{
    flex-direction: column;
    align-items: stretch;
  }

  .qe-summary-title{
    padding-right: 0;
  }

  .qe-actions{
    justify-content: stretch;
  }

  .qe-btn{
    width: 100%;
  }
}
