/* Inherit the shop scale for the hotel shell, content and illustrations. */
.hotel-view {
  --shop-accent: #2d90b1;
  --shop-burgundy: #035c7a;
  --shop-panel: #f0f2f3;
  --shop-line: #a9cbd8;
  --shop-muted: #444148;
  --shop-ink: #000;
  --color-primary: #035c7a;
  --color-outline-variant: #035c7a;
  --playground-neutral-soft: #444148;
}

.hotel-view .shop-progress-marker .hotel-theme-marker {
  width: 100%;
  height: 100%;
}
.hotel-view .shop-product-button {
  background: var(--shop-burgundy);
  border-color: var(--shop-burgundy);
}
.hotel-view .shop-product-button:hover {
  background: #02485f;
  border-color: #02485f;
}
.hotel-view .shop-progress a:not([href]) {
  cursor: default;
}

.hotel-room-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: 55% center;
}
.hotel-room--premium .hotel-room-image {
  object-position: 71% center;
}
.hotel-room--regular .hotel-room-image {
  object-position: 58% center;
}

.hotel-booking-panel {
  min-height: calc(511 * var(--shop-unit));
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-radius: calc(20 * var(--shop-unit));
  overflow: hidden;
  background: var(--shop-panel);
}
.hotel-booking-panel > .hotel-room-image {
  height: calc(511 * var(--shop-unit));
  object-position: 56% center;
}
.hotel-theme-form, .hotel-summary {
  min-width: 0;
  display: flex;
  flex-direction: column;
  margin: 0;
}
.hotel-theme-form h1, .hotel-summary h1 {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: calc(86 * var(--shop-unit));
  margin: 0;
  padding: calc(8 * var(--shop-unit)) calc(24 * var(--shop-unit));
  border-bottom: calc(2 * var(--shop-unit)) solid #fff;
  font-size: calc(36 * var(--shop-unit));
  line-height: 1.5;
  font-weight: 600;
}
.hotel-theme-form fieldset {
  display: grid;
  gap: calc(22 * var(--shop-unit));
  width: min(calc(100% - calc(48 * var(--shop-unit))), calc(328 * var(--shop-unit)));
  padding: 0;
  margin: calc(77 * var(--shop-unit)) auto 0;
  border: 0;
}
.hotel-theme-option {
  position: relative;
  cursor: pointer;
}
.hotel-theme-option input {
  position: absolute;
  opacity: 0;
  width: calc(1 * var(--shop-unit));
  height: calc(1 * var(--shop-unit));
}
.hotel-theme-option span {
  display: block;
  border-radius: calc(10 * var(--shop-unit));
  background: var(--shop-line);
  padding: calc(4 * var(--shop-unit)) calc(14 * var(--shop-unit));
  font-size: calc(20 * var(--shop-unit));
  line-height: calc(31 * var(--shop-unit));
  font-weight: 600;
  text-align: center;
}
.hotel-theme-option input:checked + span {
  box-shadow: inset 0 0 0 calc(2 * var(--shop-unit)) var(--shop-accent);
}
.hotel-theme-option input:focus-visible + span {
  outline: calc(3 * var(--shop-unit)) solid var(--shop-burgundy);
  outline-offset: calc(4 * var(--shop-unit));
}
.hotel-theme-option:hover span {
  background: #97c1d0;
}
.hotel-panel-actions {
  display: flex;
  justify-content: flex-end;
  padding: calc(24 * var(--shop-unit));
  margin-top: auto;
}
.hotel-panel-actions .shop-product-button, .hotel-summary-footer .shop-product-button {
  min-width: calc(165 * var(--shop-unit));
  min-height: calc(48 * var(--shop-unit));
  padding: calc(6 * var(--shop-unit)) calc(20 * var(--shop-unit));
  border-radius: calc(30 * var(--shop-unit));
  font-size: calc(24 * var(--shop-unit));
  line-height: calc(36 * var(--shop-unit));
}
.hotel-summary-panel {
  max-width: calc(968 * var(--shop-unit));
  grid-template-columns: calc(502 * var(--shop-unit)) 1fr;
}
.hotel-price-lines {
  display: grid;
  gap: calc(16 * var(--shop-unit));
  margin: 0;
  padding: calc(28 * var(--shop-unit)) calc(34 * var(--shop-unit)) calc(32 * var(--shop-unit)) calc(32 * var(--shop-unit));
}
.hotel-price-lines > div, .hotel-price-total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: calc(16 * var(--shop-unit));
}
.hotel-price-lines dt, .hotel-price-lines dd {
  margin: 0;
  font-size: calc(20 * var(--shop-unit));
  line-height: calc(30 * var(--shop-unit));
}
.hotel-price-total {
  margin: 0;
  padding: calc(22 * var(--shop-unit)) calc(34 * var(--shop-unit)) 0 calc(32 * var(--shop-unit));
  border-top: calc(2 * var(--shop-unit)) solid #fff;
  font-size: calc(24 * var(--shop-unit));
  line-height: calc(36 * var(--shop-unit));
  font-weight: 600;
}
.hotel-price-total dt, .hotel-price-total dd {
  margin: 0;
}
.hotel-summary-footer {
  display: flex;
  align-items: flex-end;
  gap: calc(24 * var(--shop-unit));
  margin-top: auto;
  padding: calc(24 * var(--shop-unit));
}
.hotel-summary-footer p {
  margin: 0;
  font-size: calc(18 * var(--shop-unit));
  line-height: calc(24 * var(--shop-unit));
  font-style: italic;
}
.hotel-summary-footer form {
  margin: 0;
}

.hotel-view .shop-age-copy h1 {
  letter-spacing: 0;
  font-weight: 800;
  white-space: pre-line;
}
.hotel-view .hotel-success-card {
  height: auto;
  padding: calc(41 * var(--shop-unit)) calc(24 * var(--shop-unit)) calc(96 * var(--shop-unit)) calc(48 * var(--shop-unit));
}
.hotel-success-copy {
  max-width: calc(780 * var(--shop-unit));
  overflow-wrap: anywhere;
  color: #2b282f;
  letter-spacing: calc(-.264 * var(--shop-unit));
}
.hotel-success-copy h1, .hotel-success-copy p {
  margin: 0;
  font-size: calc(24 * var(--shop-unit));
  font-weight: 400;
  line-height: 1.3;
}
.hotel-success-copy h1 {
  margin-bottom: calc(31 * var(--shop-unit));
}
.hotel-success-copy p:last-child {
  white-space: pre-line;
}
.hotel-success-copy strong, .hotel-guest-details h2, .hotel-guest-details dd {
  font-family: "Boston Bold", "Boston", sans-serif;
  font-weight: 700;
}
.hotel-guest-details {
  width: calc(409 * var(--shop-unit));
  min-width: 0;
  max-width: 100%;
  margin: calc(20 * var(--shop-unit)) 0;
  padding: calc(10 * var(--shop-unit)) calc(11 * var(--shop-unit));
  border: calc(2 * var(--shop-unit)) solid var(--shop-line);
  border-radius: calc(20 * var(--shop-unit));
  color: #000;
  letter-spacing: calc(-.22 * var(--shop-unit));
}
.hotel-guest-details h2 {
  margin: 0 0 calc(8 * var(--shop-unit));
  font-size: calc(20 * var(--shop-unit));
  line-height: calc(26 * var(--shop-unit));
  font-weight: 700;
}
.hotel-guest-details dl {
  display: grid;
  gap: calc(4 * var(--shop-unit));
  margin: 0;
}
.hotel-guest-details dl > div {
  display: grid;
  grid-template-columns: calc(210 * var(--shop-unit)) 1fr;
  gap: calc(24 * var(--shop-unit));
}
.hotel-guest-details dt, .hotel-guest-details dd {
  margin: 0;
  font-size: calc(20 * var(--shop-unit));
  line-height: calc(26 * var(--shop-unit));
  overflow-wrap: anywhere;
}
.hotel-guest-details dd {
  font-weight: 700;
}
.hotel-view .hotel-conclusion-card {
  height: auto;
  padding: calc(94 * var(--shop-unit)) calc(32 * var(--shop-unit)) calc(32 * var(--shop-unit));
}
.hotel-conclusion-card .shop-result-actions {
  position: static;
  display: flex;
  justify-content: flex-end;
  margin-top: calc(38 * var(--shop-unit));
}

.hotel-room-card {
  position: relative;
}
.hotel-room-card > .hotel-room-image {
  position: absolute;
  inset: 0 auto 0 0;
  width: 47%;
}
.hotel-room-copy {
  grid-column: 2;
}
@media (min-width: 64.0625rem) {
  .hotel-room-card > .hotel-room-image {
    width: calc(204 * var(--shop-unit));
  }
}
@media (max-width: 48rem) {
  .hotel-room-card > .hotel-room-image {
    width: calc(148 * var(--shop-mobile-unit));
  }
}
.hotel-room-copy h2 {
  color: var(--shop-accent);
}
.hotel-room-copy .shop-product-button {
  margin-top: auto;
}
.hotel-conclusion-copy {
  position: static;
  max-width: 100%;
  margin: 0 auto;
  transform: none;
}
.hotel-conclusion-copy ul {
  margin: 0;
}

@media (max-width: 64rem) {
  .hotel-booking-panel {
    min-height: 384px;
  }
  .hotel-booking-panel > .hotel-room-image {
    height: 100%;
  }
  .hotel-summary-panel {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
  .hotel-theme-form h1, .hotel-summary h1 {
    font-size: 30px;
  }
  .hotel-theme-form fieldset {
    margin-top: 32px;
  }
  .hotel-summary-footer {
    flex-wrap: wrap;
    justify-content: flex-end;
  }
}

@media (max-width: 48rem) {
  .hotel-booking-panel, .hotel-guest-details {
    --shop-unit: var(--shop-mobile-unit);
  }
  .hotel-booking-panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
  }
  .hotel-booking-panel > .hotel-room-image {
    height: calc(417 * var(--shop-mobile-unit));
    object-position: center;
  }
  .hotel-summary-panel > .hotel-room-image {
    height: calc(181 * var(--shop-mobile-unit));
  }
  .hotel-theme-form h1, .hotel-summary h1 {
    min-height: calc(54 * var(--shop-mobile-unit));
    padding: 0 calc(24 * var(--shop-mobile-unit));
    font-size: clamp(1.125rem, calc(20 * var(--shop-mobile-unit)), 1.25rem);
    line-height: calc(30 * var(--shop-mobile-unit));
  }
  .hotel-theme-form fieldset {
    width: calc(100% - calc(48 * var(--shop-mobile-unit)));
    gap: calc(16 * var(--shop-mobile-unit));
    margin-top: calc(24 * var(--shop-mobile-unit));
  }
  .hotel-theme-option span {
    padding: calc(4 * var(--shop-mobile-unit)) calc(14 * var(--shop-mobile-unit));
    font-size: clamp(.875rem, calc(16 * var(--shop-mobile-unit)), 1rem);
    line-height: calc(24 * var(--shop-mobile-unit));
  }
  .hotel-panel-actions, .hotel-summary-footer {
    padding: calc(24 * var(--shop-mobile-unit));
  }
  .hotel-panel-actions .shop-product-button, .hotel-summary-footer .shop-product-button {
    min-width: calc(117 * var(--shop-mobile-unit));
    min-height: calc(34 * var(--shop-mobile-unit));
    padding: calc(5 * var(--shop-mobile-unit)) calc(12 * var(--shop-mobile-unit));
    font-size: clamp(.875rem, calc(16 * var(--shop-mobile-unit)), 1rem);
    line-height: calc(24 * var(--shop-mobile-unit));
  }
  .hotel-price-lines {
    gap: calc(16 * var(--shop-mobile-unit));
    padding: calc(16 * var(--shop-mobile-unit)) calc(14 * var(--shop-mobile-unit));
  }
  .hotel-price-lines dt, .hotel-price-lines dd {
    font-size: clamp(.8125rem, calc(15 * var(--shop-mobile-unit)), .9375rem);
    line-height: calc(20 * var(--shop-mobile-unit));
  }
  .hotel-price-total {
    padding: calc(24 * var(--shop-mobile-unit)) calc(14 * var(--shop-mobile-unit)) 0;
    font-size: clamp(1rem, calc(18 * var(--shop-mobile-unit)), 1.125rem);
    line-height: calc(23 * var(--shop-mobile-unit));
  }
  .hotel-summary-footer {
    flex-wrap: nowrap;
    gap: calc(6 * var(--shop-mobile-unit));
    padding-left: calc(14 * var(--shop-mobile-unit));
  }
  .hotel-summary-footer p {
    font-size: clamp(.6875rem, calc(12 * var(--shop-mobile-unit)), .75rem);
    line-height: calc(16 * var(--shop-mobile-unit));
  }
  .hotel-view .hotel-success-card {
    padding: calc(28 * var(--shop-mobile-unit)) calc(24 * var(--shop-mobile-unit)) calc(82 * var(--shop-mobile-unit));
  }
  .hotel-success-copy h1, .hotel-success-copy p {
    font-size: clamp(.8125rem, calc(15 * var(--shop-mobile-unit)), .9375rem);
    line-height: calc(22.5 * var(--shop-mobile-unit));
  }
  .hotel-success-copy h1 {
    margin-bottom: calc(22.5 * var(--shop-mobile-unit));
  }
  .hotel-guest-details {
    width: 100%;
    margin: calc(20 * var(--shop-mobile-unit)) 0;
    padding: calc(10 * var(--shop-mobile-unit));
  }
  .hotel-guest-details h2 {
    font-size: clamp(.8125rem, calc(15 * var(--shop-mobile-unit)), .9375rem);
    line-height: calc(22.5 * var(--shop-mobile-unit));
  }
  .hotel-guest-details dl > div {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: calc(12 * var(--shop-mobile-unit));
  }
  .hotel-guest-details dt, .hotel-guest-details dd {
    font-size: clamp(.8125rem, calc(15 * var(--shop-mobile-unit)), .9375rem);
    line-height: calc(22.5 * var(--shop-mobile-unit));
  }
  .hotel-view .hotel-conclusion-card {
    padding: calc(113 * var(--shop-mobile-unit)) calc(25 * var(--shop-mobile-unit)) calc(24 * var(--shop-mobile-unit));
  }
  .hotel-conclusion-card .shop-result-actions {
    margin-top: calc(24 * var(--shop-mobile-unit));
  }
}
