.gtg-rest-checkout {
  --gtg-checkout-ink: #25201d;
  --gtg-checkout-paper: #fcf8f2;
  --gtg-checkout-card: #fffdf8;
  --gtg-checkout-soft: #eee5da;
  --gtg-checkout-accent: #ba6548;
  --gtg-checkout-accent-dark: #874431;
  --gtg-checkout-shadow: #25201d;
  --gtg-checkout-muted: #665b54;

  width: min(100%, 1120px);
  margin: 0 auto;
  padding: 0;
  color: var(--gtg-checkout-ink);
}

/*
 * Keep the visible outer page/card frame consistent with the booking page.
 * The important bit here is the full box-shadow declaration:
 *   offset-x offset-y blur colour
 */
.gtg-content-card:has(.gtg-rest-checkout),
.gtg-entry-card:has(.gtg-rest-checkout) {
  box-shadow: 5px 5px 0 rgba(37, 32, 29, .95) !important;
}

/*
 * Do not remove the outer card shadow.
 * Only remove extra spacing from the shortcode/block wrappers.
 */
body .wp-block-shortcode:has(.gtg-rest-checkout),
body .wp-block-group:has(> .gtg-rest-checkout),
body .wp-block-group:has(.wp-block-shortcode .gtg-rest-checkout) {
  margin-block-start: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.gtg-rest-checkout__eyebrow {
  margin: 0 0 .45rem;
  color: var(--gtg-checkout-accent-dark);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.gtg-rest-checkout__shell {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: .15rem 0 clamp(.7rem, 1.8vw, 1.2rem) !important;
}

.gtg-rest-checkout__progress {
  margin-top: 0;
  margin-bottom: 1.25rem;
}

.gtg-rest-checkout__progress span {
  height: 12px;
  border: 3px solid var(--gtg-checkout-ink);
  border-radius: 5px;
  background: #d5cdc5;
}

.gtg-rest-checkout__phone-row {
  grid-template-columns: 96px minmax(0, 1fr) !important;
}

.gtg-rest-checkout__phone-row select[name="phone_country_iso"] {
  padding-left: .5rem;
  padding-right: .45rem;
  font-size: .92rem;
}

.gtg-rest-checkout__item {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: .7rem;
  align-items: start;
}

.gtg-rest-checkout__thumb {
  width: 76px;
}

.gtg-rest-checkout__item-copy {
  grid-column: 2;
  min-width: 0;
}

.gtg-rest-checkout__item-controls {
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: .45rem;
  padding-top: .25rem;
}

.gtg-rest-checkout__item-controls label {
  flex: 0 0 auto;
}

.gtg-rest-checkout__item-controls button[data-action="remove"],
.gtg-rest-checkout__item-controls .gtg-rest-checkout__remove-button {
  min-height: auto !important;
  padding: .2rem .15rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--gtg-checkout-accent-dark, var(--gtg-checkout-accent)) !important;
  font-size: .86rem !important;
  font-weight: 850 !important;
  text-decoration: underline !important;
}

.gtg-rest-checkout__item-controls button[data-action="remove"]:hover,
.gtg-rest-checkout__item-controls .gtg-rest-checkout__remove-button:hover {
  transform: none !important;
  box-shadow: none !important;
}

.gtg-rest-checkout__line-total {
  grid-column: 1 / -1;
  justify-self: end;
  align-self: center;
  margin-top: -.25rem;
}

.gtg-rest-checkout__summary .gtg-rest-checkout__muted {
  display: block;
  margin-top: .85rem;
}

.gtg-rest-checkout__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
}

.gtg-rest-checkout__actions .gtg-rest-checkout__button {
  width: 100%;
}

@media (min-width: 760px) {
  .gtg-rest-checkout__layout {
    grid-template-columns: minmax(0, 1fr) minmax(288px, 342px) !important;
    gap: clamp(1rem, 2.2vw, 1.6rem) !important;
  }
}

@media (min-width: 1024px) {
  .gtg-rest-checkout__layout {
    grid-template-columns: minmax(0, 1fr) 342px !important;
  }
}

@media (max-width: 700px) {
  .gtg-content-card:has(.gtg-rest-checkout),
  .gtg-entry-card:has(.gtg-rest-checkout) {
    padding: .75rem !important;
  }

  body .wp-block-shortcode:has(.gtg-rest-checkout),
  body .wp-block-group:has(> .gtg-rest-checkout),
  body .wp-block-group:has(.wp-block-shortcode .gtg-rest-checkout) {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .gtg-rest-checkout__shell {
    padding: .15rem 0 .75rem !important;
  }

  .gtg-rest-checkout__progress span {
    height: 12px;
  }

  .gtg-rest-checkout__phone-row {
    grid-template-columns: 92px minmax(0, 1fr) !important;
  }

  .gtg-rest-checkout__item {
    grid-template-columns: 58px minmax(0, 1fr);
  }

  .gtg-rest-checkout__thumb {
    width: 58px;
  }
}