html.scroll-lock {
  overflow: hidden;
  height: 100%;
}

body {
  font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC",
    "Helvetica Neue", "Helvetica", "Arial", sans-serif;
  font-style: normal;
  font-size: 14px;
  font-weight: 400;
  line-height: 140%;
  color: var(--color-font);
  width: 100%;
  margin: 0px;
  display: flex;
  flex-direction: column;
  background-color: var(--color-body);
}

main {
  min-height: 740px;
  padding-bottom: 60px;
}

section {
  /*width: 100%;
  display: flex;*/
  justify-content: center;
  align-items: center;
}

.container {
  min-width: 300px;
  width: 100%;
  margin: 0 20px;
  padding-bottom: 0;
}

/*Martin add 讓TOP按鈕置右*/
.wrapper__scrolltop {
    text-align: -webkit-right;
}

@media (min-width: 768px) {
  .container {
    max-width: 840px;
  }
}

@media (min-width: 992px) {
  .container {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  .container {
    max-width: 100%;/*1140px;*/
  }
}

@media (min-width: 1400px) {
    .container {
        max-width: 100%; /*1140px;*/
    }
}

.container.mt {
  margin-top: 20px;
}

@media (min-width: 992px) {
  .container.mt {
    margin-top: 32px;
  }
}

img {
  width: 100%;
}

/* frame */
.frame-primary {
  background-color: var(--color-white);
  box-shadow: var(--color-shadow-primary);
}

.frame-product-card {
  background-color: var(--color-white);
  box-shadow: var(--color-shadow-primary);
}

.frame-summary-card,
.frame-item-card {
  background-color: var(--color-white);
  box-shadow: var(--color-shadow-primary);
}

p,
img,
span {
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding-left: 20px;
}

/*Font_end*/

/*dialog*/

.dialog-wrapper {
  margin: 12px 0;
}

.dialog {
  padding: 8px 12px;
  border: 1px solid;
}

.dialog.dialog-icon {
  display: flex;
  align-items: flex-start;
  gap: 4px;
}

.dialog.dialog-alert {
  background-color: var(--color-danger-light);
  color: var(--color-danger);
  border-color: var(--color-danger-200);
}

.dialog.dialog-success {
  background-color: var(--color-success-light);
  color: var(--color-success);
  border-color: var(--color-success-200);
}

.dialog.dialog-warning {
  background-color: var(--color-warning-light);
  color: var(--color-warning);
  border-color: var(--color-warning-200);
}

.dialog.dialog-info {
  background-color: var(--color-info-light);
  color: var(--color-info);
  border-color: var(--color-info-200);
}

.dialog.dialog-primary {
  background-color: var(--color-primary-light);
  color: var(--color-primary);
  border-color: var(--color-primary);
}

.dialog .dialog-link {
  color: inherit;
  font-weight: 600;
  text-decoration: underline;
  /* 和字之間距離 */
  text-underline-offset: 2.4px;
  /* 底線粗細 */
  text-decoration-thickness: 1.2px;
}

.dialog .icon {
  padding-top: 2px;
  width: 1rem;
  height: 1rem;
}

.dialog .text-point {
  font-weight: 600;
}

/*button & link_start*/
a {
  text-decoration: none;
  color: var(--color-primary);
  cursor: pointer;
}

.text-link-primary {
  text-decoration: underline;
  /* 和字之間距離 */
  text-underline-offset: 2.4px;
  /* 底線粗細 */
  text-decoration-thickness: 1.2px;
  color: var(--color-primary);
}

.text-link-primary:hover {
  color: var(--color-primary-dark);
}

.text-link-secondary {
  text-decoration: underline;
  /* 和字之間距離 */
  text-underline-offset: 2.4px;
  /* 底線粗細 */
  text-decoration-thickness: 1.2px;
  color: var(--color-gray-900);
}

.text-link-secondary:hover {
  color: var(--color-dark);
}

button {
  border: none;
  padding: 0;
  background-color: inherit;
  cursor: pointer;
}

button.btn,
a.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  white-space: nowrap;
  padding: 0px 16px;
  height: 36px;
  border-radius: 0px;
  font-size: 0.875rem;
  transition: all 0.3s ease;
}

.btn.btn-small {
  font-size: 0.75rem;
  line-height: 20px;
  padding: 0px 16px;
  height: 28px;
}

.btn-primary {
  background-color: var(--color-primary);
  outline: 1px solid var(--color-primary);
  outline-offset: -1px;
  color: var(--color-white);
}

.btn-primary:hover {
  background-color: var(--color-primary-dark);
  outline: 1px solid var(--color-primary-dark);
}

.btn-primary:active {
  background-color: var(--color-primary);
  outline: 1px solid var(--color-primary);
}

.btn-primary:disabled,
.btn-primary[disabled] {
  color: var(--color-white);
  background-color: var(--color-gray-400);
  outline: 1px solid var(--color-gray-400);
  cursor: initial;
  cursor: not-allowed;
}

.btn-primary.expand {
  outline: 1px solid var(--color-primary);
  background-color: var(--color-white);
  color: var(--color-primary);
}

.btn-primary.expand:hover {
  outline: 1px solid var(--color-primary-dark);
  background-color: var(--color-white);
  color: var(--color-primary-dark);
}

.btn-primary.expand:active {
  outline: 1px solid var(--color-primary);
  background-color: var(--color-primary);
  color: var(--color-white);
}

.btn-secondary {
  outline: 1px solid var(--color-primary);
  outline-offset: -1px;
  background-color: var(--color-white);
  color: var(--color-primary);
}

.btn-secondary:hover {
  outline: 1px solid var(--color-primary-dark);
  background-color: var(--color-white);
  color: var(--color-primary-dark);
}

.btn-secondary:active {
  outline: 1px solid var(--color-primary);
  background-color: var(--color-primary-light);
  color: var(--color-primary);
}

.btn-secondary.active {
  outline: 1px solid var(--color-primary);
  background-color: var(--color-primary);
  color: var(--color-white);
}

.btn-secondary.active:hover {
  outline: 1px solid var(--color-primary);
  background-color: var(--color-primary);
  color: var(--color-white);
}

.btn-secondary.active:active {
  outline: 1px solid var(--color-primary);
  background-color: var(--color-primary);
  color: var(--color-white);
}

.btn-third {
  outline: 1px solid var(--color-gray-400);
  outline-offset: -1px;
  background-color: var(--color-white);
  color: var(--color-gray-800);
}

.btn-third:hover {
  outline: 1px solid var(--color-gray-700);
  background-color: var(--color-white);
  color: var(--color-gray-900);
}

.btn-third:active,
.btn-third.active {
  outline: 1px solid var(--color-gray-900);
  background-color: var(--color-gray-900);
  color: var(--color-white);
}

.btn-secondary:disabled,
.btn-secondary[disabled],
.btn-third:disabled,
.btn-third[disabled] {
  color: var(--color-gray-400);
  background-color: var(--color-gray-200);
  outline: 1px solid var(--color-gray-400);
  cursor: initial;
  pointer-events: none;
}

/*button & link_end*/

/*op-modal_start*/

.op-modal {
  position: fixed;
  margin: 0;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  opacity: 0;
  transition: opacity linear 0.2s;
}

.op-modal .overlay-close {
  position: absolute;
  width: 100%;
  height: 100%;
  cursor: default;
}

.op-modal.active {
  visibility: visible;
  opacity: 1;
}

.op-modal-overlay {
  background-color: rgba(16, 56, 112, 0.8);
}

.op-modal .modal-dialog {
  position: relative;
  background-color: var(--color-white);
}

@media(min-width:300px) {
  .op-modal .modal-dialog {
    margin: 20px 20px;
  }
}

@media(min-width:768px) {
  .op-modal .modal-dialog {
    margin: 20px 80px;
  }
}

.op-modal .modal-s {
  /* width: 300px; */
  width: 100%;
  max-width: 300px;
}

.op-modal .modal-m {
  /* width: 500px; */
  width: 100%;
  max-width: 500px;
}

.op-modal .modal-xl {
  /* width: 700px; */
  width: 100%;
  max-width: 700px;
}

.op-modal .modal-lg {
  /* width: 1000px; */
  width: 100%;
  max-width: 1000px;
}

.op-modal .modal-header {
  display: grid;
  grid-template-columns: 9fr 1fr;
  justify-content: space-between;
  align-items: flex-start;
  /* gap: 8px; */
  padding: 12px 16px;
  border-bottom: 1px solid var(--color-gray-300);
}

.op-modal .modal-header .modal-title {
  margin: 0;
  word-break: break-all;
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-black);
}

.op-modal .modal-subtitle {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
}

.op-modal .modal-close-btn {
  grid-column: 2;
  border: none;
  padding: 10px;
  background-image: url(https://cdn.gobooking.com.tw/Hotel/img/icon_close.svg);
  background-repeat: no-repeat;
  background-size: 16px auto;
  background-position: bottom 0% right 0px;
  cursor: pointer;
}

.op-modal .modal-body {
  padding: 20px 16px;
  overflow-y: auto;
}

.op-modal .modal-body:has(.tabs-primary) {
  height: 60vh;
}

@media(min-width:300px) {
  .op-modal .modal-body {
    max-height: 440px;
  }
}

@media(min-width:922px) {
  .op-modal .modal-body {
    max-height: 552px;
  }
}

.op-modal .modal-footer {
  padding: 16px;
  border-top: 1px solid var(--color-gray-300);
  gap: 8px;
}

.op-modal .modal-footer-wrapper {
  display: flex;
  flex-direction: row;
  align-items: center;
}

/* 變更專案 modal */
.op-product-sleeparea-list-wrapper {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

@media(min-width:768px) {
  .op-product-sleeparea-list-wrapper {
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
}

.op-product-sleeparea-list-wrapper .op-package-card.row,
.op-product-sleeparea-list-wrapper .op-sleeparea-card {
  padding: unset;
  padding-bottom: 20px;
  border-bottom: solid 1px var(--color-gray-300);
}

.op-product-sleeparea-list-wrapper .op-package-card.row:last-child,
.op-product-sleeparea-list-wrapper .op-sleeparea-card:last-child {
  padding-bottom: unset;
  border-bottom: unset;
}

.op-product-sleeparea-list-wrapper .op-card-photos-wrapper {
  flex: 3;
}

@media(min-width:768px) {
  .op-product-sleeparea-list-wrapper .op-card-photos-wrapper {
    flex: 3;
    min-width: 140px;
    max-height: 84px;
  }
}

.op-product-sleeparea-list-wrapper .op-package-card-body {
  flex: 7;
  padding: unset;
}

.op-product-sleeparea-list-wrapper .op-card-action {
  display: flex;
  align-items: flex-end;
  padding: unset;
}

.op-product-sleeparea-list-wrapper .op-card-cta {
  width: 100%;
  flex-grow: 1;
}


/* 加購商品 modal */
.op-extraproduct-content-wrapper {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.op-extraproduct-content-head {
  display: flex;
  gap: 12px;
}

.op-extraproduct-content-head .op-swiper-wrapper {
  flex: 3;
}

.op-extraproduct-content {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 2;
}

.op-extraproduct-content .title {
  font-size: 1rem;
  font-weight: 600;
}

.op-extraproduct-content .number {
  font-size: 0.875rem;
  color: var(--color-gray-600);
}

.op-extraproduct-content .price {
  color: var(--color-primary);
  font-weight: 600;
}

.op-extraproduct-content-body {
  padding-top: 12px;
  border-top: solid 1px var(--color-gray-300);
}

/*op-modal_end*/

/*tooltip_start*/

.tooltip {
  position: relative;
  display: inline-block;
  border-bottom: 1px dotted;
  ;
}

.tooltip .icon {
  width: 0.875rem !important;
  height: 0.875rem !important;
}

.tooltip .tooltip-wrapper {
  visibility: hidden;
  min-width: 160px;
  max-width: 250px;
  background-color: var(--color-white);
  box-shadow: var(--color-shadow-secondary);
  border-radius: 0px;
  padding: 8px 12px;
  z-index: 1;
  position: absolute;
  left: 50%;
  bottom: 150%;
  transform: translate(-50%);
  transition: 0.3s;
  opacity: 0;
  text-align: center;
  line-height: 1.8;
  width: 100%;
}

.tooltip .tooltip-wrapper::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: var(--color-white) transparent transparent transparent;
}

.tooltip:hover .tooltip-wrapper {
  visibility: visible;
  opacity: 1;
}

/*tooltip_end*/

/*collapse_start*/
.collapse {
  background-color: var(--color-white);
  box-shadow: var(--color-shadow-secondary);
  cursor: pointer;
  padding: 20px 16px;
}

.collapse.active {
  background-color: var(--color-gray-200);
}

.collapse-btn {
  gap: 8px;
}

.collapse-btn .collapse-btn-name {
  margin: 0;
}

.collapse-btn .collapse-btn-icon {
  transition: transform 0.25s ease-in-out;
  width: 16px;
}

.collapse-btn .collapse-btn-icon.active {
  transform: rotate(-180deg);
}

.collapse-content {
  display: none;
}

.collapse-content p {
  margin: 0;
}

/* collapse-info */
.collapse.collapse-info {
  background-color: var(--color-info-light);
  color: var(--color-info);
  box-shadow: none;
  border: 1px solid var(--color-info);
}

.collapse.collapse-info .collapse-btn-icon {
  filter: invert(50%) sepia(81%) saturate(728%) hue-rotate(184deg) brightness(100%) contrast(91%);
}

.collapse.collapse-info .collapse-content p {
  margin-top: 20px;
}

.collapse.collapse-info .collapse-content img {
  margin-top: 8px;
  max-width: 600px;
}

/*collapse_end*/

/* label & input_start*/
select {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  background-image: url(/img/icon_select-down.svg) !important;
  background-repeat: no-repeat;
  background-size: 12px auto;
  background-position: bottom 48% right 8px;
}


input[type="date"] {
  display: flex;
  position: relative;
  color: var(--color-gray-800);
  /* border: none; */
  padding-right: 4px;
  cursor: text;
  -webkit-appearance: none;
}

input[type="date"]::-webkit-calendar-picker-indicator {
  position: absolute;
  right: 6px;
  padding: 6px;
}

.form-wrapper {
  display: flex;
  flex-direction: row;
  gap: 12px;
}

/* .op-form-frame {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  width: 100%;
} */

.op-form-label {
  font-size: 0.875rem;
  line-height: 1.6rem;
}

.op-form-label:has(+ .op-form-control[required])::after,
.op-form-label:has(+ div .op-form-control[required])::after {
  content: "*";
  color: var(--color-primary);
  font-weight: 800;
}

.op-form-control {
  font-size: 0.875rem;
  padding: 4px 8px;
  width: 100%;
  height: 36px;
  border-radius: 0;
  box-sizing: border-box;
  border: 1px solid var(--color-gray-400);
  background-color: var(--color-white);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.op-form-control:focus {
  box-shadow: none;
  outline: none;
  border: 1px solid var(--color-gray-600);
}

.op-form-control:disabled,
.op-form-control[readonly] {
  background-color: var(--color-gray-300);
}

.op-form-control[readonly]:focus {
  border: 1px solid var(--color-gray-400);
}

.op-form-control::-moz-placeholder,
.op-form-control::-webkit-input-placeholder {
  color: var(--color-gray-500);
  font-size: 0.875rem;
}

.form-remind {
  font-size: 0.875rem;
  margin-top: 8px;
  color: var(--color-gray-700);
  text-align: initial;
}

.form-remind.field-validation-valid {
  margin-top: 0;
}

.form-remind.field-validation-error {
  margin-top: 8px;
}

.form-btn-control {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  width: 100%;
}

.form-group-id {
  display: grid;
  grid-template-columns: 4fr 6fr;
}

.form-group-phone {
  display: grid;
  grid-template-columns: 2fr 1fr 6fr;
}

.form-group-phonenumber {
  display: grid;
  grid-template-columns: 2fr 5fr 2fr;
}

.form-group-phone select,
.form-group-phonenumber select {
  background-image: none !important;
}

.form-tel-control,
.form-address-control {
  display: grid;
  grid-template-columns: 3fr 7fr;
}

.form-tel-control .op-form-control:last-child,
.form-address-control .op-form-control:last-child {
  border-left: none;
}

.form-tel-control .op-form-control:last-child:focus,
.form-address-control .op-form-control:last-child:focus {
  border-left: solid 1px var(--color-gray-600);
}

.op-form-frame.alert .op-form-control {
  border-color: var(--color-danger-400);
}

.op-form-frame.alert .form-remind {
  color: var(--color-danger);
}

/* label & input_end*/

/*checkbox & radio_start*/
.form-check {
  display: block;
  position: relative;
  margin-top: 8px;
}

.custom-check-label,
.custom-radio-label {
  display: block;
  position: relative;
  padding: 0px 0px 0px 24px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.custom-check-label.active,
.custom-radio-label.active {
  background-color: var(--color-primary-light);
}

.custom-check-label.disabled,
.custom-radio-label.disabled {
  color: var(--color-gray-600);
  background-color: var(--color-gray-200);
  pointer-events: none;
  opacity: 0.75;
  cursor: initial;
}

.custom-select-label {
  display: block;
  position: relative;
  padding: 8px 24px 8px 24px;
  width: fit-content;
  height: auto;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.custom-select-label input {
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

.custom-select-label .checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 14px;
  width: 14px;
  margin: 1px 0px 0px 1px;
}

.custom-select-label:hover input~.checkmark {
  background-color: transparent;
  border: 1px solid transparent;
}

/* When the checkbox is checked, add a blue background */
.custom-select-label input:checked~.checkmark {
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
}

/* Show the checkmark when checked */
.custom-select-label input:checked~.checkmark:after {
  display: flex;
}

.custom-select-label input:checked+.form-select {
  border: 1px solid var(--color-primary);
  background-color: var(--color-primary-light);
  color: var(--color-primary);
}

/* Style the checkmark/indicator */
.custom-select-label .checkmark:after {
  left: 5px;
  top: 1px;
  width: 3px;
  height: 8px;
  border: solid white;
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

/* Hide the browser's default checkbox */
.custom-check-label input,
.custom-radio-label input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

/*checkbox*/
/* Create a custom checkbox & radio */
.checkmark,
.radiomark {
  position: absolute;
  top: 0;
  left: 0;
  height: 14px;
  width: 14px;
  background-color: var(--color-white);
  border: 1px solid var(--color-gray-500);
  margin-top: 1px;
}

.radiomark {
  border-radius: 50px;
  border: 1px solid var(--color-gray-500);
  /* margin-left: 8px; */
}

.form-check.alert label,
.form-check.alert .checkmark,
.form-check.alert .radiomark,
.form-check.alert .form-remind {
  color: var(--color-danger);
  border-color: var(--color-danger);
}

/* On mouse-over, add a grey background color */
.custom-check-label:hover input~.checkmark {
  background-color: var(--color-white);
  border: 1px solid var(--color-gray-400);
}

/* When the checkbox is checked, add a blue background */
.custom-check-label input:checked~.checkmark {
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
}

.custom-check-label input:checked~.checkmark-border {
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */
.custom-check-label input:checked~.checkmark:after {
  display: block;
}

/* Style the checkmark/indicator */
.custom-check-label .checkmark:after {
  left: 5px;
  top: 1px;
  width: 3px;
  height: 8px;
  border: solid white;
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

.custom-check-label :active,
.custom-check-label .active {
  background-color: var(--color-white);
  border: 1px solid var(--color-gray-400);
}

/*radio*/
/* On mouse-over, add a grey background color */
.custom-radio-label:hover input~.radiomark {
  background-color: var(--color-white);
  border: 1px solid var(--color-gray-400);
}

/* When the checkbox is checked, add a blue background */
.custom-radio-label input:checked~.radiomark {
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
}

/* Create the checkmark/indicator (hidden when not checked) */
.radiomark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */
.custom-radio-label input:checked~.radiomark:after {
  display: block;
}

/* Style the checkmark/indicator */
.custom-radio-label .radiomark:after {
  left: 3px;
  top: 3px;
  width: 8px;
  height: 8px;
  border-radius: 10px;
  background-color: var(--color-white);
}

input[type="checkbox"]:disabled~.checkmark,
input[type="checkbox"][disabled]~.checkmark,
input[type="radio"]:disabled~.radiomark,
input[type="radio"][disabled]~.radiomark {
  border-color: var(--color-gray-500);
  background-color: var(--color-gray-300);
  cursor: initial;
}

/* 點選後背景無底色_start */
.form-select {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  width: fit-content;
  border: solid 1px var(--color-gray-400);
  background-color: transparent;
  cursor: pointer;
}

.form-select:hover {
  border: 1px solid var(--color-primary);
  background-color: var(--color-primary-light);
  color: var(--color-primary);
}

.custom-select-img-wrapper {
  display: flex;
  width: auto;
  height: 1.5rem;
}

.custom-select-label {
  display: flex;
  justify-content: space-between;
  position: relative;
  padding: 8px 24px 8px 24px;
  width: inherit;
  height: auto;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  cursor: pointer;
}

.custom-select-label input {
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

.custom-select-label .checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 14px;
  width: 14px;
  margin: 1px 0px 0px 1px;
  border: none;
}

.custom-select-label:hover input~.checkmark {
  background-color: transparent;
  border: 1px solid transparent;
}

.custom-select-label input:checked~.checkmark {
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
}

.custom-select-label input:checked~.checkmark:after {
  display: flex;
}

.checkbox-input {
  /* Code to hide the input */
  clip: rect(0 0 0 0);
  clip-path: inset(100%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.checkbox-input:checked+.checkbox-tile {
  border-color: var(--color-primary);
  color: var(--color-gray--500);
}

.checkbox-input:checked+.checkbox-tile:before {
  transform: scale(1);
  opacity: 1;
  background-color: var(--color-primary);
  border-color: var(--color-primary);
}

.checkbox-input:focus+.checkbox-tile {
  border-color: var(--color-primary);
  background-color: var(--color-primary-light);
}

.checkbox-input:checked+.checkbox-tile .checkbox-icon,
.checkbox-input:checked+.checkbox-tile .checkbox-label {
  color: var(--color-primary);
}

.checkbox-tile {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  height: auto;
  padding: 4px 28px;
  border: solid 1px var(--color-gray-400);
  background-color: transparent;
  transition: 0.15s ease;
  cursor: pointer;
  position: relative;
}

.checkbox-input:checked+.checkbox-tile:after {
  content: "";
  position: absolute;
  left: 5px;
  top: 1px;
  width: 3px;
  height: 8px;
  border: solid white;
  border-width: 0 2px 2px 0;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

.checkbox-tile:hover {
  background-color: var(--color-primary-light);
  border: 1px solid var(--color-primary);
}

.checkbox-tile:before {
  content: "";
  position: absolute;
  display: block;
  width: 0.8rem;
  height: 0.8rem;
  border: 1px solid var(--color-primary);
  background-color: var(--color-white);
  top: 0px;
  left: 0px;
  opacity: 0;
  transition: 0.25s ease;
}

/* 點選後背景無底色_end */

/*form-check-optional*/

.form-check-optional .ui-button {
  padding: 7px 16px 9px 16px;
  border: 1px solid var(--color-gray-400);
  border-radius: 0px;
}

.form-check-optional .ui-corner-all {
  display: flex;
  background-color: inherit;
}

.form-check-optional .ui-state-active,
.form-check-optional .ui-widget-content .ui-state-active,
.form-check-optional .ui-widget-header .ui-state-active,
.form-check-optional a.ui-button:active,
.form-check-optional .ui-button:active,
.form-check-optional .ui-button.ui-state-active:hover {
  border: 1px solid var(--color-primary);
  border-radius: 0;
  background: var(--color-primary-light);
  color: var(--color-black);
}

.form-check-optional .ui-icon-blank.ui-icon-blank.ui-icon-blank {
  position: absolute;
  top: 12px;
}

/*點擊陰影*/
.form-check-optional .ui-state-focus {
  box-shadow: none;
}

.form-check-optional .optional-content-wrapper {
  display: flex;
  flex-direction: column;
  flex: 2;
  text-align: start;
  padding-left: 24px;
}

.form-check-optional .optional-title {
  margin: 0;
  font-size: 1rem;
}

.form-check-optional .optional-content {
  margin: 6px 0 0 0;
}

.form-check-optional .ui-checkboxradio-radio-label .ui-icon-background {
  border-color: none;
  box-shadow: none;
  border: 1px solid var(--color-gray-400);
  width: 14px;
  height: 14px;
}

.option-choice-wrapper .full-alert {
  font-size: 0.75rem;
  border: 1px solid var(--color-danger-400);
  background-color: var(--color-danger-light);
  color: var(--color-danger);
  padding: 2px 4px;
  margin-top: 4px;
  width: fit-content;
}

/*radio 符號 noraml*/
.form-check-optional.radio-optional .ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,
.form-check-optional.radio-optional .ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {
  border-color: none;
  box-shadow: none;
  background-color: var(--color-white);
  width: 14px;
  height: 14px;
}

/*radio 符號 active*/
.form-check-optional.radio-optional .ui-checkboxradio-radio-label.ui-checkboxradio-checked.ui-state-active .ui-icon,
.form-check-optional.radio-optional .ui-checkboxradio-radio-label.ui-checkboxradio-checked.ui-state-active:hover .ui-icon {
  border-color: none;
  box-shadow: none;
  border: 4px solid var(--color-primary);
  width: 8px;
  height: 8px;
}

/*checkbox 符號*/
.form-check-optional.checkbox-optional .ui-icon-blank.ui-icon-blank.ui-icon-blank {
  background-image: none;
  box-shadow: none;
  border: 1px solid var(--color-gray-400);
  border-radius: 0;
  width: 14px;
  height: 14px;
  position: absolute;
  top: 14px;
}

.form-check-optional.checkbox-optional .ui-button.ui-state-active .ui-icon,
.form-check-optional.checkbox-optional .ui-button.ui-state-active:hover .ui-icon {
  background-image: url(https://cdn.gobooking.com.tw/Hotel/img/icon_checkbox_checkwhite.svg);
  background-size: 16px;
  background-repeat: no-repeat;
  background-position: 50%;
  width: 14px;
  height: 14px;
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
  border-radius: 0;
  box-shadow: none;
  position: absolute;
  top: 14px;
}

/*checkbox & radio_end*/

/*tabs_start*/
.op-tabs-primary {
  display: flex;
  flex-wrap: wrap;
  justify-content: left;
}

.op-tab-head-primary {
  display: none;
}

.op-tab-label-primary {
  margin: 0 0px 2px 0;
  padding: 10px 16px;
  border-radius: 0px;
  background: var(--color-white);
  color: var(--color-gray-600);
  cursor: pointer;
  z-index: 1;
}

.op-tab-content-primary {
  order: 1;
  display: none;
  width: 100%;
  line-height: 1.6;
  padding: 16px;
  border-top: 1px solid var(--color-gray-300);
}

.op-tab-head-primary:checked+.op-tab-label-primary,
.op-tab-label-primary:hover {
  font-weight: 400;
  color: var(--color-primary);
  border-bottom: 2px solid var(--color-primary);
  margin: 0;
}

.op-tab-head-primary:checked+.op-tab-label-primary+.op-tab-content-primary {
  display: initial;
}

/*tabs_end*/


/* OP-HOME */
.op-section-title {
  font-size: 1.5rem;
  font-weight: 600;
  margin-top: 2rem;
  margin-bottom: 2rem;
  text-align: center;
}

.op-package-section{
  overflow: hidden;
}

.op-more-packages{
  display: flex;
  justify-content:center;
}

.op-more-packages-btn{
 margin: 12px 0px;
 width: 30%;
 min-width: 260px;
}

.op-package-card-wrapper {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

@media(min-width:768px) {
  .op-package-card-wrapper {
    /* flex-direction: row; */
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
  }

  /* 活動流程及QA */
  .external-links .op-package-card-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
}

.external-links .op-card-photos-wrapper .photo{
  max-height: unset;
}

.op-package-card {
  display: flex;
  flex-direction: column;
  background-color: var(--color-white);
  box-shadow: var(--color-shadow-primary);
}

.featured .op-package-card,
.external-links .op-package-card {
  cursor: pointer;
}

.op-card-photos-wrapper {
  position: relative;
  display: flex;
}

.op-card-photos-wrapper .photo {
  height: 100%;
  object-fit: cover;
  aspect-ratio: 5 / 3;
  max-height: 128px;
}

@media(min-width:768px) {
  .op-card-photos-wrapper .photo {
    /*max-height: 128px;*/
  }
}


/* 預訂頁 product page */
/* 橫式方案卡片 */
.op-package-card.row {
  box-shadow: none;
  gap: 16px;
  padding: 20px 24px 0px 24px;
}

@media(min-width:768px) {
  .op-package-card.row {
    flex-direction: row;
    padding: 16px 16px 0px 16px;
  }
}


/* 活動流程、QA遮罩 */
.op-card-photos-wrapper.overlay::before {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(16, 56, 112, 0.46);
  /* 半透明深藍遮罩 */
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--color-white);
  font-size: 1.75rem;
  text-align: center;
  pointer-events: none;
}

.op-package-card-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  flex-grow:1;
}

.op-card-title {
  position: relative;
  font-size: 1rem;
  font-weight: 600;
  display: flex;
  gap: 12px;
}

.featured .op-card-title::after {
  content: "⟩";
  position: absolute;
  right: 0px;
  color: var(--color-gray-800);
  font-weight: 300;
}

.op-card-outline {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.op-card-outline .icon,
.op-label .icon {
  width: 1rem;
  min-width: 1rem;
  height: 1rem;
}

.op-label {
  display: flex;
  gap: 2px;
  /* flex-wrap: wrap; */
  color: var(--color-gray-800);
}

.op-content-tag-wrapper {
  display: flex;
  gap: 6px 12px;
  flex-wrap: wrap;
  padding: 8px 12px;
  background-color: var(--color-gray-light);
}

.op-content-tag {
  display: flex;
  gap: 2px;
  color: var(--color-primary);
}

.op-card-action {
  padding: 0px 12px 12px 12px;
}


/* 睡眠區介紹 */
.op-back-wrapper {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 1rem;
  color: var(--color-primary);
}

.op-back-wrapper .icon {
  width: 1rem;
  height: 1rem;
}

/* 睡眠區 */
.op-sleeparea-card-wrapper {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* 睡眠區卡片 */
.op-sleeparea-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
}

@media(min-width:768px) {
  .op-sleeparea-card {
    flex-direction: row;
  }
}

.op-sleeparea-card .op-card-photos-wrapper {
  flex: 3;
}

.op-sleeparea-card-body {
  flex: 7;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.op-sleeparea-label-wrapper {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

@media(min-width:768px) {
  .op-sleeparea-label-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
}

.op-sleeparea-introbrief {
  color: var(--color-gray-800);
}

.op-sleeparea-card .op-card-action {
  /* flex: 2; */
  display: flex;
  align-items: flex-end;
  padding: unset;
}

.op-sleeparea-card .op-card-action .op-card-cta {
  width: 100%;
}

/* 特色、睡眠區介紹 */
.op-sleeparea-intro-wrapper {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.op-sleeparea-intro {
  padding-bottom: 16px;
  border-bottom: solid 1px var(--color-gray-300);
}

.op-sleeparea-intro:last-child {
  padding-bottom: 0px;
  border-bottom: none;
}

.op-sleeparea-intro li {
  margin-bottom: 2px;
}

.op-sleeparea-intro .title {
  font-weight: 600;
  margin-bottom: 6px;
}

/* 方案頁 */
.op-package-info {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 16px;
}

.op-package-info h1 {
  font-size: 1.75rem;
  line-height: 160%;
  margin: 8px 0px;
}

.op-package-label-wrapper {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.op-package-label-wrapper .icon {
  width: 1.125rem;
  min-width: 1rem;
  height: 1.125rem;
}

/* 方案頁-日曆 calendar */
.op-sleeparea-card-calendar-wrapper {
  display: none;
  padding: 0px 16px;
}

.op-sleeparea-card-calendar-wrapper.active {
  display: block;
}

.op-calendar-wrapper {
  padding: 20px 0px;
  border-top: solid 1px var(--color-gray-300);
}

.op-calendar-head-wrapper {
  position: sticky;
  top: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: var(--color-primary-dark);
  color: var(--color-white);
  z-index: 1;
}

@media(min-width:300px) {
  .op-calendar-head-wrapper {
    padding: 8px 0px;
  }
}

@media(min-width:768px) {
  .op-calendar-head-wrapper {
    height: 36px;
    padding: 0px 24px;
  }
}

.op-calendar-head-prev,
.op-calendar-head-next {
  color: var(--color-white);
  padding: 4px;
  cursor: pointer;
}

.op-calendar-head-prev.disabled,
.op-calendar-head-next.disabled {
  color: var(--color-gray-600);
  cursor: not-allowed;
}

.op-calendar-head-month .op-form-control {
  background-color: var(--color-primary-dark);
  border: none;
  color: var(--color-white);
  padding-right: 26px;
  text-align: center;

  font-size:22px;
}

/*無上個月份 tooltips 提示_start*/
.op-calendar-wrapper .tooltip {
  text-decoration: none;
}

.op-calendar-wrapper .tooltip .tooltip-wrapper {
  min-width: 100px;
  max-width: 160px;
  left: 50px;
  top: 120%;
  bottom: inherit;
}

.op-calendar-wrapper .tooltip .tooltip-wrapper::after {
  top: -11px;
  left: 30%;
  border-width: 6px;
  border-color: transparent transparent var(--color-white) transparent;
}

/*無上個月份 tooltips 提示_end*/


.op-calendar-week-pc {
  /* display: flex; */
  position: sticky;
  top: 36;
  display: none;
  font-size: 0.75rem 12px;
  border-bottom: 1px solid var(--color-gray-500);
}

@media (min-width: 768px) {
  .op-calendar-week-pc {
    display: flex;
    background-color: var(--color-white);
    height: unset;
  }
}

.op-calendar-week-pc li {
  padding: 4px 0px;
}

.op-calendar-day {
  border: unset;
  background-color: unset;
  height: 616px;
  overflow: scroll;
}

@media (min-width: 768px) {
  .op-calendar-day {
    border: solid 0.5px var(--color-white);
    background-color: var(--color-gray-300);
    height: auto;
    overflow: visible;
  }
}

.op-calendar-wrapper ul {
  list-style: none;
  padding-inline-start: 0px;
  margin: 0px;
}

@media (min-width: 768px) {
  .op-calendar-wrapper ul {
    list-style: none;
    padding-inline-start: 0px;
    margin: 0px;
    display: grid;
    gap: 1px;
    grid-template-columns: repeat(7, 1fr);
  }
}

.op-calendar-wrapper li {
  display: flex;
  justify-content: center;
  text-align: center;
  align-items: flex-start;
}

.op-calendar-date-wrapper {
  display: flex;
  flex-direction: row;
  width: 100%;
  min-height: 72px;
  max-height: 72px;
  gap: 36px;
  align-items: center;
  padding: 8px 4px;
  box-shadow: inset 0 1px var(--color-gray-300);
}

@media (min-width: 768px) {
  .op-calendar-date-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: stretch;
    min-height: 120px;
    max-height: unset;
    height: -webkit-fill-available;
    gap: 12px;
    padding: 6px 2px;
  }
}

.op-calendar-date {
  display: flex;
  flex: 1;
  font-size: 1rem;
  text-align: left;
  margin: 0px;
  color: var(--color-black);
}

@media (min-width: 768px) {
  .op-calendar-date {
    flex: unset;
    padding-left: 4px;
    font-size: 1rem;/*0.75*/
  }
}

@media (min-width: 768px) {
  .date-week {
    display: none;
  }
}

.op-calendar-content {
  display: flex;
  flex: 4;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

@media (min-width: 768px) {
  .op-calendar-content {
    flex: unset;
    flex-direction: column;
    gap: 12px;
  }
}

.op-calendar-availbility {
  font-size: 1rem;
  text-decoration-line: underline;
  text-underline-offset: 4px;
}

.op-calendar-rate-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

@media (min-width: 768px) {
  .op-calendar-rate-wrapper {
    flex-direction: column;
  }
}

.op-calendar-rate {
  font-size: 1rem;
}

@media (min-width: 768px) {
  .op-calendar-rate {
    font-size: 0.875rem;
  }
}

/* calendar class */
/* 可預訂 .avalible */
.op-calendar-date-wrapper.avalible {
  background-color: var(--color-white);
}

.op-calendar-date-wrapper.avalible:hover {
  background-color: var(--color-primary-light);
}

.op-calendar-date-wrapper.avalible .op-calendar-availbility {
  color: var(--color-primary);
}

.op-calendar-rate {
  color: var(--color-black);
}


/* 不可訂 .unable */
.op-calendar-date-wrapper.unable {
  background-color: var(--color-gray-200);
}

.op-calendar-date-wrapper.unable .op-calendar-availbility {
  color: var(--color-gray-500);
  padding: 5px 4px;
}

.op-calendar-date-wrapper.unable .op-calendar-date {
  color: var(--color-gray-500);
}

.op-calendar-date-wrapper.unable .op-calendar-rate {
  display: none;
}

/* 已客滿 .fully */
.op-calendar-date-wrapper.fully {
  background-color: var(--color-gray-200);
}

.op-calendar-date-wrapper.fully .op-calendar-availbility {
  color: var(--color-gray-500);
  font-weight: 400;
  padding: 5px 6px;
  text-decoration: none;
}

.op-calendar-date-wrapper.fully .op-calendar-date {
  color: var(--color-gray-500);
}

.op-calendar-date-wrapper.fully .op-calendar-rate {
  display: none;
}

/*product page_start*/
.op-card-wrap {
  display: flex;
  flex-direction: column;
}

.op-card-top {
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 12px 16px;
  border-bottom: 1px solid var(--color-gray-300);
}

.op-card-top .title {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  font-size: 1.125rem;
  font-weight: 500;
}

.op-card-top .icon {
  width: 1.125rem;
}

.op-card-content {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.op-card-end {
  display: flex;
  justify-content: end;
  padding: 16px;
  border-top: 1px solid var(--color-gray-300);
}

.op-check-info {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: 1rem;
}

.op-check-info .arrival-date {
  display: flex;
  align-items: center;
}

.op-check-info .arrival-date .icon {
  width: 1rem;
  height: 1rem;
  padding: 4px;
  margin-right: 4px;
  background-color: var(--color-gray-200);
  border-radius: 50%;
  overflow: visible;
}

.op-check-info .date {
  display: flex;
  align-items: center;
  gap: 4px;
}

.op-product-selected .op-card-photos-wrapper {
  flex: 3;
}

.op-product-selected .op-package-card-body,
.op-product-selected .op-sleeparea-card-body {
  flex: 7;
  padding: unset;
}

.op-btn-edit-wrapper {
  display: flex;
  gap: 8px;
}

.op-btn-edit-wrapper a {
  color: var(--color-gray-800);
}

.op-btn-edit {
  font-size: 0.875rem;
  font-weight: 400;
  /* display: flex; */
}

.op-btn-edit a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
}

.op-btn-edit .icon {
  width: 1rem;
  min-width: 0.875rem;
  height: 1rem;
}

.op-selection-people {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.op-counter-box-wrapper {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
}

/* .op-btn-minus,
.op-btn-plus{
  margin-top: 16px;
} */
.op-product-quantity {
    text-align:left;
}
.op-counter-box {
    text-align: left;
    margin: 8px 0px;
}

.op-counter {
  font-size: 0.75rem;
  border: solid 1px var(--color-primary);
  border-radius: 100%;
  color: var(--color-primary);
  padding: 6px;
}

.op-btn-quantity {
  font-size: 1rem;
  width: 2rem;
  text-align: center;
  border: none;
}

.op-selection-people-description {
  font-size: 0.875rem;
  color: var(--color-gray-800);
  margin-left: 8px;
}

/* 加購商品 */
.op-extraproduct-wrapper {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(1, 1fr);
}

@media (min-width: 768px) {
  .op-extraproduct-wrapper {
    grid-template-columns: repeat(2, 1fr);
  }
}

.op-extraproduct {
  display: flex;
  gap: 8px;
}

.op-extraproduct-photos-wrapper {
  display: flex;
  flex-grow: 1;
  max-width: 120px;
  max-height: 80px;
}

.op-extraproduct-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-grow: 4;
}

.op-extraproduct-body .title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-black);
  text-decoration: underline;
  /* 和字之間距離 */
  text-underline-offset: 2.4px;
  /* 底線粗細 */
  text-decoration-thickness: 1.2px;
}

.op-extraproduct-body .title::after {
  content: "〉";
}

.op-current-price {
  color: var(--color-primary);
  font-weight: 600;
}

.op-original-price {
  color: var(--color-gray-700);
  font-weight: 400;
  font-size: 0.75rem;
  margin-left: 6px;
  text-decoration: line-through;
}

.op-cta-wrapper {
  display: flex;
  justify-content: center;
  gap: 16px;
}

.op-cta-wrapper .btn {
  width: 45%;
  min-width: 124px;
  padding: 8px 24px;
}

/* 購物車 checkout */
.op-reservation-content-wrapper {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.op-reservation-content-wrapper .title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-primary);
  background-color: var(--color-primary-light);
  padding: 12px 12px;
}

.op-reservation-content-wrapper .subtitle {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-black);
  background-color: var(--color-gray-200);
  padding: 4px 12px;
}

.op-reservation-content {
  display: flex;
  gap: 12px;
  flex-direction: column;
}

.op-reservation-content .op-card-photos-wrapper {
  flex: 3;
}

.op-reservation-content .op-product-selected-wrapper {
  flex: 7;
}

@media (min-width: 768px) {
  .op-reservation-content {
    flex-direction: row;
  }

}

.op-product-selected {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.op-product-selected-title {
  display: flex;
  justify-content: space-between;
  margin-top: 12px;
}

.op-product-selected-title:first-child {
  margin-top: 0px;
}

/* cta */
.op-btn-edit-wrapper.mobile {
  display: flex;
  justify-content: space-around;
}

.op-btn-edit-wrapper.mobile .op-btn-edit {
  padding: 8px 8px;
  width: 100%;
  border: solid 1px var(--color-gray-400);
}


.op-btn-edit-wrapper.desktop {
  display: none;
}

@media (min-width: 768px) {
  .op-btn-edit-wrapper.mobile {
    display: none;
  }

  .op-btn-edit-wrapper.desktop {
    display: flex;
    gap: 16px;
  }
}

.op-price-wrapper {
  width: 100%;
  text-align: end;
  font-weight: 600;
}

/* information 資料頁 */
.op-guest-information-wrapper {
  display: flex;
  flex-direction: column;
}

.op-guest-information {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: solid 1px var(--color-gray-300);
}

.op-guest-information:last-child {
  margin-bottom: unset;
  padding-bottom: unset;
  border-bottom: none;
}

.op-guest-information .title {
  font-size: 1rem;
  font-weight: 600;
}

.op-guest-form-wrapper {
  display: flex;
  flex-direction: column;
  gap: 16px;
  grid-template-columns: repeat(1, 1fr);
}

@media (min-width: 768px) {
  .op-guest-form-wrapper {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
  }
}

.op-guest-form-wrapper .op-form-frame.op-form-long {
  grid-column: span 2;
}

.op-form-check-wrapper {
  display: flex;
  justify-content: center;
  width: 100%;
}

/* 選擇付款方式 */
.op-payment-wrapper {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.op-payment-wrapper .form-select {
  width: 100%;
}

.op-payment-notice {
  color: var(--color-danger);
}

/* Confirm 確認頁 */
/* 訂單資訊表格 */
.op-reservation-info-wrapper {
  font-size: 1rem;
  border-top: solid 1px var(--color-gray-300);
  padding: 16px 0px;
}

.op-reservation-info-wrapper:first-child {
  padding-top: 0;
  border-top: none;
}

.op-reservation-info-wrapper .list {
  display: grid;
  gap: 12px 40px;
  list-style-type: none;
  margin: 0;
  padding: 16px 0px;
  grid-template-rows: unset;
}

.op-reservation-info-wrapper .list:first-child {
  padding: 0px;
}


@media (min-width: 768px) {
  .op-reservation-info-wrapper .list {
    grid-template-columns: 1fr 1fr;
  }
}

.op-reservation-info-wrapper>.title {
  font-weight: 600;
}

.op-reservation-info-wrapper .list .item {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 4px;
  color: var(--color-black);
}