.tm-bottom-booking__marker { display: none; }

@media (max-width: 1024px) {
  .tm-bottom-booking,
  .tm-bottom-booking__sheet,
  .tm-bottom-booking__inner.content-width { max-width: 100%; box-sizing: border-box; }
  .tm-bottom-booking__inner.content-width { width: 100%; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 14px; }
  .tm-bottom-booking__price,
  .tm-bottom-booking__quantity,
  .tm-bottom-booking__total,
  .tm-bottom-booking .tm-button { min-width: 0; }
  .tm-bottom-booking__price { display: flex; min-height: 92px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 7px; padding: 12px 0; }
  .tm-bottom-booking__price > span,
  .tm-bottom-booking__price > strong { display: block; flex: 0 0 auto; margin: 0; line-height: 1.2; }
  .tm-bottom-booking__quantity { min-height: 92px; gap: 8px; padding-left: 10px; }
  .tm-bottom-booking__quantity .tm-stepper--single { width: min(138px, 100%); grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tm-bottom-booking__total { grid-column: 1 / 2; min-height: 72px; justify-content: center; }
  .tm-bottom-booking .tm-button { grid-column: 2 / 3; align-self: stretch; min-height: 60px; margin: 0; padding-inline: 8px; }
}

@media (max-width: 520px) {
  .tm-bottom-booking__inner.content-width { grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(5, auto); row-gap: 0; }
  .tm-bottom-booking__configuration { grid-column: 1; grid-row: 1; }
  .tm-bottom-booking__price { grid-column: 1; grid-row: 2; width: 100%; min-height: 88px; box-sizing: border-box; }
  .tm-bottom-booking__quantity { grid-column: 1; grid-row: 3; width: 100%; min-height: 64px; box-sizing: border-box; border-bottom: 1px solid var(--tm-detail-border); padding-left: 0; }
  .tm-bottom-booking__total { grid-column: 1; grid-row: 4; width: 100%; min-height: 72px; box-sizing: border-box; }
  .tm-bottom-booking .tm-button { grid-column: 1; grid-row: 5; width: 100%; min-height: 54px; box-sizing: border-box; margin-top: 0; }
  .tm-bottom-booking__price > span,
  .tm-bottom-booking__price > strong { position: static; }
}

@media (max-width: 767px) {
  .tm-bottom-booking:not([open]) {
    border-top-color: var(--accent);
    background: var(--accent);
  }

  .tm-bottom-booking:not([open]) .tm-bottom-booking__summary {
    background: var(--accent);
  }

  .tm-bottom-booking:not([open]) .tm-bottom-booking__summary :is(span, strong, em, b) {
    color: #fff;
  }

  .tm-bottom-booking[open] {
    border-top-color: var(--accent);
    border-top-width: 3px;
  }
}

@media (min-width: 1025px) {
  .tm-travel-detail .content-width { width: min(1024px, calc(100% - 48px)); }
  .tm-bottom-booking { position: fixed !important; z-index: 60 !important; top: auto !important; right: 0 !important; bottom: 26px !important; left: auto !important; width: 54px !important; min-height: 142px !important; overflow: hidden !important; border: 0 !important; border-radius: 4px 0 0 4px !important; background: transparent !important; box-shadow: -8px 10px 26px hsl(209 50% 16% / .14) !important; transform: none !important; transition: width 300ms cubic-bezier(.22, .61, .36, 1), box-shadow 180ms ease !important; }
  .tm-bottom-booking[open] { width: 360px !important; box-shadow: -14px 14px 36px hsl(209 50% 16% / .18) !important; }
  .tm-bottom-booking__summary { position: absolute !important; inset: 0 auto 0 0 !important; z-index: 2 !important; display: block !important; width: 54px !important; border: 0 !important; border-radius: 4px 0 0 4px !important; background: #102a42 !important; cursor: pointer !important; list-style: none !important; }
  .tm-bottom-booking__summary::-webkit-details-marker { display: none !important; }
  .tm-bottom-booking__summary > div { display: flex !important; width: 54px !important; height: 142px !important; min-height: 142px !important; align-items: center !important; justify-content: center !important; padding: 0 !important; }
  .tm-bottom-booking__summary .tm-bottom-booking__marker { display: block !important; color: #fff !important; font-size: 13px !important; font-weight: 800 !important; line-height: 1.45 !important; text-align: center !important; white-space: normal !important; }
  .tm-bottom-booking__summary .tm-bottom-booking__label { display: none !important; }
  .tm-bottom-booking__summary strong,
  .tm-bottom-booking__summary em,
  .tm-bottom-booking__summary b { display: none !important; }
  .tm-bottom-booking__sheet { display: none !important; min-height: 0 !important; margin: 0 0 0 54px !important; border: 0 !important; border-radius: 0 !important; background: #fff !important; }
  .tm-bottom-booking[open] .tm-bottom-booking__sheet { display: block !important; }
  .tm-bottom-booking__sheet > .tm-bottom-booking__inner.content-width { display: grid !important; width: auto !important; min-height: 0 !important; grid-template-columns: minmax(0, 1fr) !important; gap: 0 !important; padding: 18px !important; overflow: visible !important; opacity: 1 !important; transform: none !important; }
  .tm-bottom-booking__price,
  .tm-bottom-booking__quantity { display: flex !important; min-height: 60px !important; align-items: center !important; justify-content: space-between !important; border-bottom: 1px solid var(--tm-detail-border) !important; padding: 0 !important; }
  .tm-bottom-booking__price span,
  .tm-bottom-booking__quantity > span,
  .tm-bottom-booking__total span { color: var(--tm-detail-muted) !important; font-size: 13px !important; }
  .tm-bottom-booking__price strong { margin: 0 !important; font-size: 17px !important; }
  .tm-bottom-booking__total { display: flex !important; min-height: 68px !important; grid-column: 1 !important; align-items: end !important; justify-content: space-between !important; border-left: 0 !important; padding: 15px 0 12px !important; text-align: left !important; }
  .tm-bottom-booking__total strong { margin: 0 !important; font-size: 24px !important; line-height: 1 !important; }
  .tm-bottom-booking .tm-button { width: 100% !important; min-width: 0 !important; min-height: 50px !important; grid-column: 1 !important; margin: 0 !important; font-size: 15px !important; }
}

@media (prefers-reduced-motion: reduce) { .tm-bottom-booking { transition-duration: 1ms !important; } }

.tm-bottom-booking__options {
  min-width: 0;
  border-bottom: 1px solid var(--tm-detail-border);
  padding: 12px 0;
}

.tm-bottom-booking__options > span {
  color: var(--tm-detail-muted);
  font-size: 12px;
}

.tm-bottom-booking__options > strong {
  float: right;
  color: var(--ink);
  font-size: 14px;
}

.tm-bottom-booking__options ul {
  display: grid;
  gap: 4px;
  clear: both;
  margin: 7px 0 0;
  padding: 0;
  color: var(--tm-detail-muted);
  font-size: 12px;
  line-height: 1.4;
  list-style: none;
}

@media (max-width: 1024px) {
  .tm-bottom-booking__options {
    grid-column: 1 / -1;
    min-height: 0;
  }
}

@media (min-width: 1025px) {
  .tm-bottom-booking__options {
    display: block !important;
    min-height: 0;
  }

  .tm-bottom-booking__options[hidden] { display: none !important; }
}

/* 우측 예약 패널과 태블릿 바텀시트가 같은 판매 구성/옵션 상태를 보여준다. */
.tm-bottom-booking__configuration {
  min-width: 0;
  border-bottom: 1px solid var(--tm-detail-border);
  padding: 16px 0;
}

.tm-bottom-booking__field { display: grid; gap: 8px; }
.tm-bottom-booking__field label,
.tm-bottom-booking__option-heading h3 { color: var(--ink); font-size: 14px; font-weight: 750; }

.tm-bottom-booking__field select {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--tm-detail-border-strong);
  border-radius: 2px;
  padding: 0 38px 0 12px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-size: 14px;
}

.tm-bottom-booking__field p,
.tm-bottom-booking__option-heading p {
  margin: 0;
  color: var(--tm-detail-muted);
  font-size: 12px;
  line-height: 1.45;
}

.tm-bottom-booking__option-picker { margin-top: 16px; border-top: 1px solid var(--tm-detail-border); }
.tm-bottom-booking__option-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 13px 0 9px; }
.tm-bottom-booking__option-heading h3 { margin: 0; }
.tm-bottom-booking__option-list { border-top: 1px solid var(--tm-detail-border); }

.tm-bottom-booking__option-list .tm-booking-option {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 12px;
  border-bottom: 1px solid var(--tm-detail-border);
  padding: 12px 0;
}

.tm-bottom-booking__option-list .tm-booking-option.is-selected { margin-inline: -8px; padding-inline: 8px; background: hsl(190 68% 96%); }
.tm-bottom-booking__option-list .tm-booking-option__copy { grid-row: 1 / span 2; }
.tm-bottom-booking__option-list .tm-stepper--booking-option { grid-column: 2; grid-row: 1; grid-template-columns: repeat(3, 34px); }
.tm-bottom-booking__option-list .tm-stepper--booking-option :is(button, output) { min-height: 34px; }
.tm-bottom-booking__option-list .tm-booking-option__amount { grid-column: 2; grid-row: 2; justify-self: end; font-size: 12px; }

.tm-bottom-booking__option-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 13px;
  color: var(--tm-detail-muted);
  font-size: 12px;
}

.tm-bottom-booking__option-total b,
.tm-bottom-booking__option-total output { color: var(--accent); font: inherit; font-weight: 800; }
.tm-bottom-booking__option-total strong { color: var(--ink); font-size: 13px; }

@media (max-width: 1024px) {
  .tm-bottom-booking__configuration { grid-column: 1 / -1; padding: 14px 0; }
  .tm-bottom-booking__sheet { max-height: min(78dvh, 680px); overflow-y: auto; }
}

@media (max-width: 520px) {
  .tm-bottom-booking__option-heading { display: block; }
  .tm-bottom-booking__option-heading p { margin-top: 4px; }
  .tm-bottom-booking__option-list .tm-stepper--booking-option { grid-template-columns: repeat(3, 32px); }
}

@media (min-width: 1025px) {
  .tm-bottom-booking__sheet { max-height: min(78vh, 720px); overflow-y: auto !important; }
  .tm-bottom-booking__configuration { padding: 18px 0; }
}

/* 하단/우측 예약 패널도 상세와 같은 최소 정보 구조로 유지한다. */
.tm-bottom-booking__configuration { padding: 14px 0; }
.tm-bottom-booking__option-picker { margin-top: 14px; }
.tm-bottom-booking__option-list { margin-top: 10px; }
.tm-bottom-booking__option-list:empty { display: none; }
.tm-bottom-booking__option-list .tm-booking-option.is-selected { margin-inline: 0; padding-inline: 0; background: transparent; }
.tm-bottom-booking__option-total { padding-top: 12px; }
.tm-bottom-booking .tm-booking-option-select { width: 100%; min-height: 44px; border-radius: 2px; }
.tm-bottom-booking__option-list .tm-booking-option { align-items: center; }
.tm-bottom-booking__option-list .tm-booking-option__copy { grid-row: auto; }
.tm-bottom-booking__option-list .tm-stepper--booking-option { grid-column: 2; grid-row: auto; }
